Description
Dynamo, or ZetaBoards Dynamo as it's most commonly reffered to is ZetaBoard's most impressive modification. This modification gives you the ability to further extend your forum by adding multiple new features such as a "money system", where users can earn virtual money by posting, and then collect interest and donate to other users. Other popular features include a lottery and a level & experience mod.

More information can be found on the official Dynamo Website.
Preview
Official Support Forum - You will need to register an account to access the User CP. The Dynamo Admin CP cannot be accessed in this preview.
Add to your forum
Please head over to the official Dynamo Website to install Dynamo on your forum.
Description
This adds the option for all admins to edit/ delete all topics and posts by any user. This can be used to mass delete a user's posts if they have requested it, or more commonly to prune all posts and topics by a spambot by a few clicks of a button. You are given the option to differentiate between topics with replies, and topics without replies. This allows you to 'save' topics which have replies from other users as deleting a topic would normally delete those replies as well.This adds the option for all admins to edit/ delete all topics and posts by any user. This can be used to mass delete a user's posts if they have requested it, or more commonly to prune all posts and topics by a spambot by a few clicks of a button. You are given the option to differentiate between topics with replies, and topics without replies. This allows you to 'save' topics which have replies from other users as deleting a topic would normally delete those replies as well.
Preview
A preview video can be found here.
Add to your forum
To add this modification to your forum, please click the "Buy Now" button above and wait for an email with installation instructions.
Description
Adds a field on registration to allow the new member to input who referred them to the forum (they can leave it blank, it's optional). Upon registering, a user of your choice (i.e the root admin) will be sent a PM to notify them of the referral. The code will always ensure that the username given as the referrer is a real user on the forum.
Notes
This is a very simple code. A more advanced version will be released in the future on Dynamo where each user will have a "referral count" (which can show in profiles etc).
Modification Instructions [Advanced Users]
The first section can be edited (comments have been given to aid you with this if you wish). Make sure you change "Admin username here" to the actual username of the admin you want to be PMed. Make sure to keep the speech marks!
Code [Select All]
Admin CP >> Themes >> Board Template >> Above the Board
<script type="text/javascript">
//<![CDATA[
// Created by Viral of http://viralsmods.com
var referral = {
	field : { // information regarding the referral registration field
		title : "Referred By", // title
		desc : "Username of the member that referred you", // small description (can be blank)
	},
	pm_info : { // information regarding the PM which will be sent when a new user registers and fills in the referral field
		username : "Admin username here", // username of the person you want to send the message to
		title : "I've been referred by %REFERRER%", // title of the PM. Use %REFERRER% to place the referrer's name
		message : "[b]%REFERRER%[/b] referred me to this forum!" // PM message. Use %REFERRER% to place the referrer's name. BB Code allowed.
	},
	/* NO MORE EDITS */
	checking : {
		can_register : true,
		query : false
	},
	get_username : function() {
		return $("#top_info a[href*=/profile/]").text();
	},
	ini : function() {
		if($.zb.logged_in) {
			var username = this.get_username();
			var my_referrer = $.zb.get("referrer_" + username);
			if(my_referrer.length) {
				this.send_pm(my_referrer);
			}
		} else if($("table.register").size() && new RegExp("^" + main_url + "register/").test(location.href)) {
			var holder = $("table.register tr:contains(Optional Information)");
			var colspan = +holder.next().find("td:eq(1)").attr("colspan"); // get colspan // don't assume constant val
			holder.after('<tr><td class="c_desc">' + this.field.title + '<small>' + this.field.desc + '</small></td><td colspan="' + colspan + '"><input type="text" name="referrer" id="referrer" /></td></tr>');
			$("#referrer").bind("propertychange keyup input paste", function() {
				clearTimeout(referral.checking.query);
				referral.checking.query = window.setTimeout((function(that) {
					return function() {
						var username = that.val();
						$("#referral_response").remove();
						that.after('<span id="referral_response">Checking username...</span>');
						if(username.length) {
							$.getJSON(main_url + "tasks/?name=" + username + "&mode=1&task=7", function(d){
								$("#referral_response").text(d.lang);
								if(d.ok) { // member found
									$("#referrer").closest("tr").removeClass("referral_fail").addClass("referral_success");
									referral.checking.can_register = true;
								} else {
									$("#referrer").closest("tr").addClass("referral_fail").removeClass("referral_success");
									referral.checking.can_register = false;
								}
							});
						} else {
							referral.checking.can_register = true;
						}
					};
				})($(this)), 1000);
			});
			$("table.register").closest("form").submit(function(e) {
				if(!referral.checking.can_register) {
					e.preventDefault();
					$("#referrer").focus();
				} else {
					$.zb.set("referrer_" + $("table.register input[name=name]").val(), $("#referrer").val());
				}
			});
		}
	},
	send_pm : function(referrer) {
		var options = this.pm_info;
		options.title = options.title.replace(/%REFERRER%/g, referrer);
		options.message = options.message.replace(/%REFERRER%/g, referrer);
		$.get(main_url + "msg/?c=2&force_ads", function(d){
			var form = $(d).find("form[name=posting]");
			form.find("input[name=name]").val(options.username);
			form.find("input[name=title]").val("title" in options ? options.title : "No Title");
			form.find("#c_post-text").val("message" in options ? options.message : "No message.");
			var data = form.serializeArray();
			$.post(main_url + "msg/?c=3&sd=1&force_ads", data, function() {
				$.zb.del("referrer_" + referral.get_username()); // delete cookie so no more pms are sent
			});
		});
	}
}

referral.ini();
//]]>
</script>
Description
Adds a table to the forum which shows various different statistics and board feeds (aka modules, or sections). The modules available are:
  • Overall Top Posters
    • Username
    • Group
    • Last Activity
    • Join Date
    • Posts

  • Today's Top Posters
    • Username
    • Join Date
    • Posts Made Today
    • Percentage of Posts Made Today

  • Newest Members
    • Username
    • Group
    • Last Activity
    • Join Date
    • Posts

  • Most Recently Active Members (a.k.a last online)
    • Username
    • Group
    • Last Activity
    • Join Date
    • Posts

  • Newest Replies
    • Topic Title
    • Username
    • Number of Replies

  • Active Topics
    • Topic Title
    • Topic Starter
    • Forum
    • Number of Replies
    • Number of Views
    • Topic Info (last post date, and member who posted)

Admins can disable any of the sections (and sub-sections), or just set them so they don't show by default. In the table, there is a settings panel where members can then configure the settings for themselves. For example, if an admin turned "Active Topics" off by default, a member can go to the panel and turn it on, and then set it so under this section it shows "Topic Title" and "Topic Starter". Your settings can be configured separately across different devices, so on your small-screen smartphone you could enable only one section instead of three, for example. There is a "reset all" link in the settings panel which will reset all settings to whatever the Admin has set as default.

There is a refresh button which refreshes all sections (and shows some loading text during the process). Alternatively, you can just click the section name to refresh just one section instead of them all (each section also has a loading symbol).

There is also a collapse/ expand button, similar to what forums have. Members can collapse the table if they do not want to see the statistics and expand it again at a later date if they wish. Again, this is device specific - so you can collapse the table on smart phones, and expand it on your laptop (for example). Admins set the table to either expand or collapse by default.

Finally, you can also move the table from the top of the page to the bottom of the page, and vice versa. Admins can choose where the table appears by default.

As you can see, Admins have a lot of control over the default settings of the table - its position, whether its collapsed/ expanded, which modules to show and hide (or even disable). Admins can also change the titles of all sections (and their sub-sections), the loading text, refresh text, title and even how many rows should be shown. For example, you could set the title to "Top 10 Statistics" and tell the table to show 10 rows of data instead of 5.
Preview
A live preview of this modification can be found at the official support forum. Please make sure you are logged in to see the addition.

All sections and sub-sections have been enabled, but some have been turned off by default. Feel free to mess around in the settings panel to see how it works. Of course, in your own version you can disable some sections and sub-sections completely if you wish. The preview on this board has been set to show '5' rows of statistics, appear at the top and be expanded (by default).
Notes
This is the only working "Top 'x' Statistics" code available for ZetaBoards now after a recent update caused all similar codes to stop working. The code has also been set up to add extra modules for different statistics and feeds. This option is there for developers to maximise the usefulness of this modification.
Add to your forum
To add this modification to your forum, please click the "Buy Now" button above and wait for an email with installation instructions.
Description
When you hover over the title of a topic on a forum page it will bring up a preview of the topics' first post so you can decide whether or not you want to actually click into the topic or not! It even retains all BB code from the topic.
Preview
topic-preview-preview
Notes
You must be using ZetaBoards Dynamo for this modification to work.
Modification Instructions [Advanced Users]
The first four lines can be edited (so you can change the title of the little box that appears, change the loading text and also increase or decrease the maximum width and height of the box). Please make sure you keep the speech marks otherwise it will not work. If you don't want any title to appear, then leave it empty (var title = "";).
Code [Select All]
Admin CP >> Themes >> Board Template >> Below the Board
<script type="text/javascript">
//<![CDATA[
// Topic previews on hover by Viral of http://viralsmods.com/
// Requires ZetaBoards Dynamo to function. http://dynamo.viralsmods.com/
$("body").on("dynamo_onbeforeload", function() {
	var title = "Topic Preview";
	var loading_text = "Loading...";
	var max_width = '400px';
	var max_height = '50px';
	// no more editing!
	$("table.posts td.c_cat-title a").filter(function(a) {
		return /topic/.test($(this).attr("href"));
	}).each(function() {
		dynamo.tip.tooltip.show({
			selector : $(this),
			title : title,
			message : loading_text,
			hide : {
				fixed : true,
				delay : 200
			}
		});
	}).hover(function() {
		(function(that) {
			$.get(that.attr("href") + "?forceads", function(d) {
				var content = $("#topic_viewer td.c_post:first", d);
				content.find(".editby").remove();
				content = content.html();
				that.qtip("api").set("content.text", '<div style="max-width:' + max_width + ';max-height:' + max_height + ';overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">' + content + '</div>');
			});
		})($(this));
	});
})();
//]]>
</script>
1