Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Prevent Doubleposting Details »»
Prevent Doubleposting
Version: 1.0, by Xenon Xenon is offline
Developer Last Online: Oct 2023 Show Printable Version Email this Page

Version: 3.5.3 Rating:
Released: 09-19-2005 Last Update: 01-15-2007 Installs: 877
Uses Plugins
 
No support by the author.

When a User posts into a thread where he already has the lastpost, no new post will be added. The lastpost of him will be edited and the new text is put after his first message.
This will be done until the old post is older than 24 hours (you can change this timespan yourself)

Nothing more to say about that, it's the quite same as my vb3.0 version.

This Mod should run with 3.6 as well


** Please make sure you ENABLE this product after you install it - it is disabled by default. **

For vb 3.8 there are two alternative updates ;

https://vborg.vbsupport.ru/showthread.php?t=203705
https://vborg.vbsupport.ru/showthread.php?t=204177

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
inphoenix

Comments
  #762  
Old 11-08-2007, 04:45 PM
eoc_Jason's Avatar
eoc_Jason eoc_Jason is offline
 
Join Date: Dec 2001
Location: Houston, TX
Posts: 493
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
i would love it if when someone double posts and it is merged it would time stamp the merge
The problem with that is whatever time would only be relevant to a particular time zone. So people in other TZ's would only be confused. You might want to consider that. Some people suggested adding the time difference so it would be like (added 1hr later...)
Reply With Quote
  #763  
Old 11-08-2007, 04:59 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 Timezone problem can be got around (like here for example).
Reply With Quote
  #764  
Old 11-09-2007, 03:53 PM
eoc_Jason's Avatar
eoc_Jason eoc_Jason is offline
 
Join Date: Dec 2001
Location: Houston, TX
Posts: 493
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The only way though would be to NOT cache the posts though. Because otherwise whoever viewed the post it would be parsed & cached for their time zone.

About the only way I can see doing this and leaving caching on would be to make some sort of javascript?
Reply With Quote
  #765  
Old 11-09-2007, 06:20 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 system we use works whether posts are cached or not, and has no reliance on Javascript.
Reply With Quote
  #766  
Old 11-12-2007, 04:07 AM
too_cool_3's Avatar
too_cool_3 too_cool_3 is offline
 
Join Date: Sep 2007
Location: ON, Canada
Posts: 108
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Kalina View Post
I achieved what you're looking for by editing the "Main Doublepost Prevent Engine" plugin. You can replace all the code in it with the following.

PHP Code:
// ########### Xenon's prevent doublepost modification #########

$vbulletin->GPC['xen_isdoublepost'] = false;

// parse custom conditions
$custcond true;
if (
trim($vbulletin->options['xen_dp_custcond']) != '')
{
    eval(
'$custcond = ((' $vbulletin->options['xen_dp_custcond'] . ') ? true : false);');
}


// at first check if there is at least the possibility to be a doublepost
if ($custcond AND $type != 'thread'
    
AND $dp_threadinfo['lastpost'] > TIMENOW $vbulletin->options['xen_dp_timespan'] * 60
    
AND $dp_threadinfo['lastposter'] == $vbulletin->userinfo['username']
    AND 
$dataman->fetch_field('attach') == 0)
{
    
// we are here, so we may have a doublepost -> do more exact checkings
    
$doublepost $vbulletin->db->query_first("
        SELECT post.*
        FROM " 
TABLE_PREFIX "post AS post
        LEFT JOIN " 
TABLE_PREFIX "deletionlog AS deletionlog ON(deletionlog.primaryid = post.postid AND type = 'post')
        WHERE post.threadid = 
$threadinfo[threadid]
            AND post.dateline > " 
. (TIMENOW $vbulletin->options['xen_dp_timespan'] * 60) . "
            AND post.visible = 1 AND deletionlog.primaryid IS NULL
            AND post.postid <> 
$post[postid]
        ORDER BY post.dateline DESC
        LIMIT 1
    "
);

    if (
$doublepost['userid'] == $vbulletin->userinfo['userid'] AND $doublepost['attach'] == 0)
    {
        
// we truely have a doublepost, now check if the merged post still fits the rules!
        
$dpdataman =& datamanager_init('Post'$vbulletinERRTYPE_ARRAY'threadpost');
        
$dpdataman->set_existing($doublepost);
        
$doublepost['message'] = $doublepost['pagetext'] . "\n\n[SIZE="1"][COLOR="Silver"]" $vbulletin->userinfo['username'] . ' added ' intval((TIMENOW $doublepost['dateline'])/60) . ' Minutes and ' . ((TIMENOW $doublepost['dateline']) % 60). ' Seconds later...' $vbulletin->options['xen_dp_spacer'] . "[/color][/size]\n\n" $post['message'];

        
// set info
        
$dpdataman->set_info('preview'$post['preview']);
        
$dpdataman->set_info('parseurl'$post['parseurl']);
        
$dpdataman->set_info('posthash'$post['posthash']);
        
$dpdataman->set_info('forum'$foruminfo);
        
$dpdataman->set_info('thread'$dp_threadinfo);

        
// set options
        
$dpdataman->setr('showsignature'$post['signature']);
        
$dpdataman->setr('allowsmilie'$post['enablesmilies']);

        
// set data
        
$dpdataman->setr('pagetext'$doublepost['message']);
        
$dpdataman->setr('iconid'$post['iconid']);

        
$dpdataman->pre_save();
        if (!
$dpdataman->errors)
        {
            
// merged post is ok, so actually do the merging by editing old post
            
$vbulletin->GPC['xen_isdoublepost'] = true;

            if (
$vbulletin->options['xen_dp_bumpthread'])
            {
                
// bump thread, so change the post's dateline
                
$doublepost['dateline'] = TIMENOW;
                
$dpdataman->setr('dateline'$doublepost['dateline']);
            }
            
$dpdataman->save();

            
// as we have edited an old post, we can now delete the new created post
            
$postman =& datamanager_init('Post'$vbulletinERRTYPE_SILENT'threadpost');
            
$postman->set_existing($post);
            
$postman->delete($foruminfo['countposts'], $threadinfo['threadid'], $removaltype true, array('userid' => $vbulletin->userinfo['userid'], 'username' => $vbulletin->userinfo['username'], 'reason' => $vbulletin->options['xen_dp_editedby'], 'keepattachments' => false), false);
            unset(
$postman);

            
$doublepost['oldmessage'] = $post['message'];
            
$post $doublepost;
            
$id $post['postid'];

            
//now add edited by message
            
if ($vbulletin->options['xen_dp_editedby'] != '')
            {
                
$vbulletin->db->query_write("
                    REPLACE INTO " 
TABLE_PREFIX "editlog (postid, userid, username, dateline, reason)
                    VALUES (
$post[postid], " $vbulletin->userinfo['userid'] . ", '" addslashes($vbulletin->userinfo['username']) . "', " TIMENOW ", '" addslashes($vbulletin->options['xen_dp_editedby']) . "')
                "
);
            }

            
// last step update counters
            
build_thread_counters($post['threadid']);
            
build_forum_counters($foruminfo['forumid']);
        }
    }

Thank you SO much Kalina for solving my problem. Just tried your method and it works perfect!

My double posts now show up as:

MarcGSR added 1 Minutes and 2 Seconds later...

But still no one has answer if there is a way to time stamp them like this:

--------------- Added 17 Oct 2007 at 7:17pm ---------------

???
Reply With Quote
  #767  
Old 11-12-2007, 12:48 PM
eoc_Jason's Avatar
eoc_Jason eoc_Jason is offline
 
Join Date: Dec 2001
Location: Houston, TX
Posts: 493
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M View Post
The system we use works whether posts are cached or not, and has no reliance on Javascript.
Could you please elaborate, or better yet post some code?
Reply With Quote
  #768  
Old 11-20-2007, 03:31 AM
Mafialife Chris Mafialife Chris is offline
 
Join Date: Nov 2006
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can someone give me a step by step in dummies terms to make this happen on my forum. This includes any actions i would need to do with my FTP and files on the server. I just do not know what to do, sorry. help?
Reply With Quote
  #769  
Old 11-20-2007, 12:25 PM
eoc_Jason's Avatar
eoc_Jason eoc_Jason is offline
 
Join Date: Dec 2001
Location: Houston, TX
Posts: 493
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Install the product via the XML upload. Configure settings in your new additional admincp options. That's it...
Reply With Quote
  #770  
Old 11-21-2007, 10:34 AM
coolgus coolgus is offline
 
Join Date: May 2004
Posts: 47
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

any fix for the quick reply refresh problem ?
Reply With Quote
  #771  
Old 11-24-2007, 09:25 PM
Jikdor Jikdor is offline
 
Join Date: Oct 2007
Location: Sweden
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

*installed*
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 03:10 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.07513 seconds
  • Memory Usage 2,373KB
  • 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
  • (1)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (3)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