vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   Prevent Doubleposting (https://vborg.vbsupport.ru/showthread.php?t=96602)

snowbizx 01-28-2009 12:38 AM

Quote:

Originally Posted by Leo Brazil (Post 1726175)
I've install it but nothing happens at all on 3.8.0

I've enabled the products that was disabled by default but nothing so far.

Any tips ?

edit: disregard, i looked a little further back and found out :P

cynthetiq 01-28-2009 01:10 AM

it worked, then it stopped working.... i'm reinstalling again, and trying them one mod at a time.

snowbizx 01-28-2009 01:16 AM

i'm not getting any time notations between the posts... help please!

cynthetiq 01-28-2009 04:29 AM

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', $vbulletin, ERRTYPE_ARRAY, 'threadpost');
  $dpdataman->set_existing($doublepost);
  $doublepost['message'] = $doublepost['pagetext'] . "\n[SIZE=\"1\"][COLOR=\"DarkSlateGray\"]" . '-----Added '.date("j/n/Y"). ' at '.Date("h : i : s").'-----'.$vbulletin->options['xen_dp_spacer'] . "[/color][/size]\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', $vbulletin, ERRTYPE_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']);
  }
 }
}

I added

$doublepost['message'] = $doublepost['pagetext'] . "\n[SIZE=\"1\"][COLOR=\"DarkSlateGray\"]" . '-----Added '.date("j/n/Y"). ' at '.Date("h : i : s").'-----'.$vbulletin->options['xen_dp_spacer'] . "[/color][/size]\n" . $post['message'];

RedHacker 01-28-2009 04:01 PM

Import in manage products..!!!I must anything else....?

Paul M 01-28-2009 04:42 PM

Read the big red note in the first post ;)

cynthetiq 01-28-2009 05:26 PM

Quote:

Originally Posted by Paul M (Post 1727369)
Read the big red note in the first post ;)

Nice to see you still follow this thread :) It's much appreciated.

Can I ask you where you did the dirty part for the AJAX?

Does this mean that instead of the screen pausing saying it will merge the post, and then does so upon refresh, it just merges at that point?

Where do I insert that code? In the same place I did the first edit?

Paul M 01-28-2009 09:12 PM

Yes, it merges the post instantly (like here at vb.org).

It involves changes to the actual plugin code and also vbulletin_quick_reply.js

Voltar 01-28-2009 09:46 PM

Quote:

Originally Posted by Paul M (Post 1727561)
Yes, it merges the post instantly (like here at vb.org).

It involves changes to the actual plugin code and also vbulletin_quick_reply.js

Care to share those improvements? :D

Leo Brazil 01-29-2009 10:30 AM

Quote:

Originally Posted by Voltar (Post 1727587)
Care to share those improvements? :D

I'm glad to see I'm not the only one on this....lol....I was about say the same thing....lol...

I've seen something similar to this working pretty good on vB.org and I always feel like I really need something like it on my board. But after reading tons of pages I just can't figure out how.

As Xenon seems to be out of this for a long time why not take over it for improvements ?


All times are GMT. The time now is 09:17 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02140 seconds
  • Memory Usage 1,755KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (4)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (3)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete