Thread: New Posting Features - [hide] hack incl post thank you "addon"
View Single Post
  #260  
Old 01-02-2007, 10:13 PM
itsid itsid is offline
 
Join Date: Oct 2006
Posts: 253
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yes it is.. a huge difference
if you thanked this hack won't do a db query if you (as you have it) can thank each post and not only the first one.
but in your case that won't do somehow.
so replace your fetch hide tag plugin by this code:
PHP Code:
if ($this->registry->options['sid_hide_active'] == '1' AND stristr($post['message'],'[hide]')){
            global 
$vbulletin$vboptions$bbuserinfo$db$threadid$hide_call$postid;
            
$bbuserinfo $this->registry->userinfo;
            
$post $this->post;
            
$hide_read false;
            
$hide_img_set 0;
            
$hide_replied '';
            
$hide_thanked '';
            
$hide_stop 0;
            if (!empty(
$this->registry->options['sid_hide_notforum'])){
                
$sid_hide_forum_stop explode(",",$this->registry->options['sid_hide_notforum']);
                if(
in_array($thread['forumid'],$sid_hide_forum_stop)){
                    
$post['message'] = preg_replace('/\\[hide\\](.*)\\[\/hide\\]/siU''\\1'$post['message']);
                    
$hide_stop 1;
                }
            }
            if(
$post['userid'] == $bbuserinfo['userid'] AND $hide_stop == 0){
                
$post['message'] = preg_replace('/\\[hide\\](.*)\\[\/hide\\]/siU''<fieldset><legend><span class="highlight">'.$vbphrase[sid_hide_post_own].'</span></legend>\\1</fieldset>'$post['message']);
                
$hide_stop 1;
            }
            if (
$hide_stop != 1){
                if (
$this->registry->options['sid_hide_showadmin'] AND $bbuserinfo[usergroupid]==6){
                    
$hide_read true;
                }elseif (
$this->registry->options['sid_hide_showmod'] AND can_moderate($thread['forumid'])){
                    
$hide_read true;
                }elseif (!empty(
$this->registry->options['sid_hide_showusergroup'])){
                    
$hide_groups_see explode(",",$this->registry->options['sid_hide_showusergroup']);
                    if (
in_array($bbuserinfo['usergroupid'], $hide_groups_see)){
                        
$hide_read true;
                    }
                }
                if (
$vbulletin->options['sid_hide_showthanked'] AND $hide_read==false){
                    
$hide_img_set $hide_img_set 1;
                    if(
$vbulletin->options['post_thanks_forum_first_all'] == 1){
                        
$hide_thanked $db->query_first("SELECT userid FROM "TABLE_PREFIX ."post_thanks WHERE postid='$threadinfo[firstpostid]' AND userid='$bbuserinfo[userid]'");
                        if(
$hide_thanked !=''){
                            
$hide_read true;
                        }
                    } elseif (!empty(
$vbulletin->options['post_thanks_forum_first'])){
                        
$post_thanks_only_first explode("|",$vbulletin->options['post_thanks_forum_first']);
                        if (
in_array($threadinfo['forumid'], $post_thanks_only_first)){
                            
$hide_thanked $db->query_first("SELECT userid FROM "TABLE_PREFIX ."post_thanks WHERE postid='$threadinfo[firstpostid]' AND userid='$bbuserinfo[userid]'");
                            if(
$hide_thanked !=''){
                                
$hide_read true;
                            }
                        }else{
                            
$hide_thanked $db->query_first("SELECT userid FROM "TABLE_PREFIX ."post_thanks WHERE postid='$post[postid]' AND userid='$bbuserinfo[userid]'");
                            if(
$hide_thanked !=''){
                                
$hide_read true;
                            }
                        }
                    } else{
                        
$hide_thanked $db->query_first("SELECT userid FROM "TABLE_PREFIX ."post_thanks WHERE postid='$post[postid]' AND userid='$bbuserinfo[userid]'");
                        if(
$hide_thanked !=''){
                            
$hide_read true;
                        }
                    }
                }
                if (
$this->registry->options['sid_hide_showposted'] AND $hide_read==false){
                    
$hide_img_set $hide_img_set ;
                    
$hide_replied $db->query("SELECT COUNT(postid) AS count FROM "TABLE_PREFIX "post WHERE userid='$bbuserinfo[userid]' AND visible = 1 AND threadid='$post[threadid]'");
                    
$myreplies 0;
                    if(
$db->num_rows($hide_replied)){
                        while (
$h_post $db->fetch_array($hide_replied)){
                            
$myreplies += $h_post['count'];
                        }
                        
$myreplies vb_number_format($myreplies);
                    }
                    if(
$myreplies 0){
                        
$hide_read['userid'] = true;
                    }
                }
                if (!
$hide_call){
                    
$hide_call =$post['postid'];
                } else {
                    
$hide_call .=",".$post['postid'];
                }
                if(
$hide_img_set == 3){
                    
$hide_img $vbphrase[sid_hide_img_pot];
                } elseif (
$hide_img_set == 2){
                    
$hide_img $vbphrase[sid_hide_img_post];
                } elseif (
$hide_img_set == 1){
                    
$hide_img $vbphrase[sid_hide_img_thank];
                } else {
                    
$hide_img $vbphrase[sid_hide_img_sorry];
                }
                if(!
$bbuserinfo[userid]){
                    
$hide_read false;
                }
                if (
$hide_read == true){
                    
$post['message'] = preg_replace('/\\[hide\\](.*)\\[\/hide\\]/siU''<fieldset><legend><span class="highlight">'.$vbphrase[sid_hide_post_show].'</span></legend>\\1</fieldset>'$post['message']);
                } else {
                    eval(
'$hide_fetch = "' fetch_template('sid_hide_noaccess') . '";');
                    
$post['message'] = preg_replace('/\\[hide\\](.*)\\[\/hide\\]/siU'$hide_fetch$post['message']);
                }
            }
        } 
that'll add an own db query for thanked posts and is not using the original array.

This one will surely work.

(I hat to have unnecessary querys, but I see no other chance right now to get this to work in your forums.)

'sid

ps don't forget to delete the debug plugin! that's causing a lot of querys too
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03724 seconds
  • Memory Usage 1,888KB
  • 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_php
  • (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