Thread: New Posting Features - [hide] hack incl post thank you "addon"
View Single Post
  #340  
Old 02-22-2007, 11:44 AM
bollie's Avatar
bollie bollie is offline
 
Join Date: Jun 2006
Location: Zele (Belgium)
Posts: 259
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by itsid View Post
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
Thx work nice
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01176 seconds
  • Memory Usage 1,929KB
  • 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)bbcode_quote
  • (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