Go Back   vb.org Archive > vBulletin Modifications > Archive > Modification Graveyard
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Doublepost Prevention Details »»
Doublepost Prevention
Version: 3.8.005, by Paul M Paul M is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Category: New Posting Features - Version: 3.8.x Rating:
Released: 01-30-2009 Last Update: 06-12-2009 Installs: 855
Uses Plugins Auto-Templates
Translations  
No support by the author.

As of 24 Nov 2017 this modification has been withdrawn.

This is an updated version of the popular modification, previously released by Xenon. It is released with his kind permission.

Basically, if member posts in a thread where they were the previous last poster, then if the conditions are met, their new post will be auto-merged into the previous post instead of creating a new "double" post.

A number of options are provided ;

Time Limit - if more than xxx minutes have passed since the last post, no merge is done.

Timestamp Spacer - if enabled, a timestamped spacer is added between the old post text and the new post text.

Post Timestamp Update - if enabled the newly merged post will have its post time updated to the new time, otherwise it retains the time of the original post.

Spacer Colour - allows you to set the colour of the spacer between merged posts.

Usergroup exceptions - Allows you to exempt certain usergroups from the doublepost merges.

Forum exceptions - Allows you to exempt certain forums form the doublepost merges.

All settings are located in vBulletin Options > Doublepost Prevention.


To install just unzip the XML and import into vB using the ACP Product Manager.


History:

v3.8.001 : First Release for vB 3.8.
v3.8.002 : Phrased the post separater.
v3.8.003 : Added JS Template - removing need to edit quick reply javascript file.
v3.8.004 : Updated spacer options.
v3.8.005 : Updated timestamp spacer to fix issue with large merge times.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
2 благодарности(ей) от:
s2lo7

Comments
  #12  
Old 01-31-2009, 02:52 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by jshg46 View Post
be nice to see something like this for attachments, but have it if any member post an attachment with the same name it will not let them post it.
Posts with attachments are not merged by design, I have no plans to alter that.

Quote:
Originally Posted by Subah View Post
Thanks a lot Paul but what about attached the file that you say it is need to edit ?
i can not edit !! or i mean i do not know how to !!
Sorry, but free support does not extend to to teaching you how to edit files.

Quote:
Originally Posted by Rat1972 View Post
I searched in the javascript, but no such code to replace with.
You are doing something wrong then, the code is there.

Quote:
Originally Posted by nexialys View Post
thanks Paul... looks like the harrasments to release this version finally gave a result.. LOL!
Yes, thought about it a while ago, and decided on it the other day.
Reply With Quote
  #13  
Old 01-31-2009, 03:36 PM
RedHacker RedHacker is offline
 
Join Date: Jan 2009
Posts: 878
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Find the following code ; in the txt.file not found....
Reply With Quote
  #14  
Old 01-31-2009, 03:51 PM
Rat1972 Rat1972 is offline
 
Join Date: Jun 2005
Posts: 146
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M View Post


You are doing something wrong then, the code is there.
I have searched the whole file, there is no such a code what like in the readme file. I am sure about that,
Reply With Quote
  #15  
Old 01-31-2009, 04:05 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The code is there (in vbulletin_quick_reply.js)

I just looked for it again ;

Code:
function qr_do_ajax_post(ajax)
{
	if (ajax.responseXML)
	{
		document.body.style.cursor = 'auto';
		fetch_object('qr_posting_msg').style.display = 'none';
		var i;

		if (fetch_tag_count(ajax.responseXML, 'postbit'))
		{
			ajax_last_post = ajax.responseXML.getElementsByTagName('time')[0].firstChild.nodeValue;
			qr_disable_controls();
			qr_hide_errors();

			var postbits = ajax.responseXML.getElementsByTagName('postbit');
			for (i = 0; i < postbits.length; i++)
			{
				var newdiv = document.createElement('div');
				newdiv.innerHTML = postbits[i].firstChild.nodeValue;
				var lp = fetch_object('lastpost');
				var lpparent = lp.parentNode;
				var postbit = lpparent.insertBefore(newdiv, lp);

				PostBit_Init(postbit, postbits[i].getAttribute('postid'));
			}

			// unfocus the qr_submit button to prevent a space from resubmitting
			if (fetch_object('qr_submit'))
			{
				fetch_object('qr_submit').blur();
			}
		}
		else
		{
			if (!is_saf)
			{
				// this is the nice error handler, of which Safari makes a mess
				var errors = ajax.responseXML.getElementsByTagName('error');
				if (errors.length)
				{
					var error_html = '<ol>';
					for (i = 0; i < errors.length; i++)
					{
						error_html += '<li>' + errors[i].firstChild.nodeValue + '</li>';
					}
					error_html += '</ol>';

					qr_show_errors('<ol>' + error_html + '</ol>');

					return false;
				}
			}

			qr_resubmit();
		}
	}
	else
	{
		qr_resubmit();
	}
}
Reply With Quote
  #16  
Old 01-31-2009, 04:06 PM
Magnumutz's Avatar
Magnumutz Magnumutz is offline
 
Join Date: Feb 2006
Location: Romania
Posts: 731
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Awesome Paul, good job mate !

Later edit: What the hell, i can't find any of those phrases in the js file...

A bit Later edit: I'm using 3.8.1
Reply With Quote
  #17  
Old 01-31-2009, 04:12 PM
Rat1972 Rat1972 is offline
 
Join Date: Jun 2005
Posts: 146
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M View Post
The code is there (in vbulletin_quick_reply.js)

I just looked for it again ;

Code:
function qr_do_ajax_post(ajax)
{
	if (ajax.responseXML)
	{
		document.body.style.cursor = 'auto';
		fetch_object('qr_posting_msg').style.display = 'none';
		var i;

		if (fetch_tag_count(ajax.responseXML, 'postbit'))
		{
			ajax_last_post = ajax.responseXML.getElementsByTagName('time')[0].firstChild.nodeValue;
			qr_disable_controls();
			qr_hide_errors();

			var postbits = ajax.responseXML.getElementsByTagName('postbit');
			for (i = 0; i < postbits.length; i++)
			{
				var newdiv = document.createElement('div');
				newdiv.innerHTML = postbits[i].firstChild.nodeValue;
				var lp = fetch_object('lastpost');
				var lpparent = lp.parentNode;
				var postbit = lpparent.insertBefore(newdiv, lp);

				PostBit_Init(postbit, postbits[i].getAttribute('postid'));
			}

			// unfocus the qr_submit button to prevent a space from resubmitting
			if (fetch_object('qr_submit'))
			{
				fetch_object('qr_submit').blur();
			}
		}
		else
		{
			if (!is_saf)
			{
				// this is the nice error handler, of which Safari makes a mess
				var errors = ajax.responseXML.getElementsByTagName('error');
				if (errors.length)
				{
					var error_html = '<ol>';
					for (i = 0; i < errors.length; i++)
					{
						error_html += '<li>' + errors[i].firstChild.nodeValue + '</li>';
					}
					error_html += '</ol>';

					qr_show_errors('<ol>' + error_html + '</ol>');

					return false;
				}
			}

			qr_resubmit();
		}
	}
	else
	{
		qr_resubmit();
	}
}
The whole block is missing in my script... Strange.
Reply With Quote
  #18  
Old 01-31-2009, 04:18 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Are you sure you have the correct file (vbulletin_quick_reply.js, 3.8 version, uncompressed).

There is no way that can be missing
Reply With Quote
  #19  
Old 01-31-2009, 04:22 PM
Magnumutz's Avatar
Magnumutz Magnumutz is offline
 
Join Date: Feb 2006
Location: Romania
Posts: 731
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Dude, i just downloaded 3.8.1 from the vBulletin Member's Area, and the code is not there.
vBulletin gets downloaded with uncompressed js's by default, right?
Reply With Quote
  #20  
Old 01-31-2009, 04:23 PM
Rat1972 Rat1972 is offline
 
Join Date: Jun 2005
Posts: 146
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M View Post
Are you sure you have the correct file (vbulletin_quick_reply.js, 3.8 version, uncompressed).

There is no way that can be missing
I am absolute sure and it was missing. But i added (the block) it the vbulletin_quick_reply and it work like charm. Strange it was missing, but now its working! Thanks Paul!


*click* install
Reply With Quote
  #21  
Old 01-31-2009, 04:23 PM
Rat1972 Rat1972 is offline
 
Join Date: Jun 2005
Posts: 146
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Magnumutz View Post
Dude, i just downloaded 3.8.1 from the vBulletin Member's Area, and the code is not there.
vBulletin gets downloaded with uncompressed js's by default, right?
Same here
But i added it, and it worked
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:47 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04856 seconds
  • Memory Usage 2,320KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (8)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (1)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete