Message Board Quick Reply

From KickApps Documentation

Jump to: navigation, search

Description

The following code snippet will easily add a Quick Reply feature to your message boards. This code snippet uses the Javascript Event API.

Code

Ka.events.listen('mb-view-discussion-page-load', function() {
	if (Ka.Info.USERID != '') {
		// construct the URL for the displayNewDiscussion page
		var url = "/service/displayNewDiscussionThread.kickAction?as=" + Ka.Info.AFFILIATESITEID  
			+ "&w=" + Ka.Util.getLocationParam('w')
			+ "&d=" + Ka.Util.getLocationParam('d')
			+ "&dt=new"
			+ "&pg=dtpage"
			+ " #ka_msgb_newForm";

		// create the div that will hold our new form
		$j('<div id="quickReply"><fieldset><legend>Quick Reply</legend><div class="inner"></div></fieldset></div>')
			.insertAfter('#ka_repliesContainer');
			
		// load the content from the displayNewDiscussion page and store it in the new div
		$j("#quickReply .inner").load(url, function() { 
			$j("#ka_msgb_newForm")
				.find('#optionalMedia, label[for=ka_discussionSubject], #ka_discussionSubject').remove().end()
				.find('#ka_DiscussionName').hide().end()
				.find('.ka_formControl input').click(function() {
					var content = ($j('#quickReplyContent').val());
					if (content.length == 0) {
						return false;
					}
					$j('#ka_DiscussionName').val(content.replace('\n', '<br />', 'ig'));
					return true;
				}).val("Post Quick Reply").end()
			$j("<textarea id='quickReplyContent'></textarea>").insertAfter("#ka_msgb_newForm #ka_DiscussionName")
		});
	}
});