View Single Post
  #1075  
Old 01-28-2009, 04:29 AM
cynthetiq's Avatar
cynthetiq cynthetiq is offline
 
Join Date: Jul 2005
Location: NYC
Posts: 190
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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'];
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01061 seconds
  • Memory Usage 1,787KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete