Thread: Show Thread Enhancements - MARCO1 BBCODE Hide Tags [ hide] [/ hide]
View Single Post
  #222  
Old 09-03-2010, 02:33 AM
metalguy639 metalguy639 is offline
 
Join Date: Dec 2008
Posts: 501
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by xtremecoders View Post
SORRY for the MISTAKE.

I was wrong and Problem was appears again.

SO, i found the Problem, and ALL is OK now.



PROBLEM FIXED !!!!!!

Its an array function Syntax Problem and was easy to fix it....

all you have to do is to find and replace inside the script all in_array function with the correct syntax.

Marco uses syntax like ...
in_array($vbulletin->userinfo['usergroupid'],$MARCO1_NoHideUSG) , which is wrong and lead to array corruption.

The Correct is in_array($vbulletin->userinfo['usergroupid'], $MARCO1_NoHideUSG, true))

Steps :

1: Open the
Product MARCO1 BBCODE Hide vB4.xml using an editor like wordpad
2: Edit -> Select all & Delete
3: Paste the next Script.


Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="marco1_hidebbcode" active="1">
	<title>MARCO1 Hide BBCODE</title>
	<description>Hide X Area From your threads With BBCODES</description>
	<version>2.0</version>
	<url />
	<versioncheckurl />
	<dependencies>
	</dependencies>
	<codes>
	</codes>
	<templates>
	</templates>
	<stylevardfns>
	</stylevardfns>
	<stylevars>
	</stylevars>
	<plugins>
		<plugin active="1" executionorder="126">
			<title>MARCO1 Hide BBCODE Functions</title>
			<hookname>postbit_display_complete</hookname>
			<phpcode><![CDATA[if ($_REQUEST['do'] == 'whatever'){
			global $vbulletin, $vboptions, $bbuserinfo, $db, $threadid, $postid;
			$bbuserinfo = $this->registry->userinfo;
			$postid = $_REQUEST['p'];
			$hide_call = $_REQUEST['all'];
			$hide_read = false;
			$hide_replied = '';
			$hide_thanked = '';
			
				$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 = true;
				}
			
			if(!$bbuserinfo[userid]){
				$hide_read = false;
			}
			if( $hide_read == true){
				$hide_post = $db->query_first("SELECT pagetext as 'message' FROM ". TABLE_PREFIX ."post WHERE postid='$postid'");
				$hide_string = "#\[hide\](.*)\[\/hide\]#siU";
	            require_once(DIR . '/includes/class_bbcode.php');
	            $parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
	            $hide_post['message'] = $parser->do_parse($hide_post['message'],true);
				if(preg_match_all($hide_string, $hide_post['message'], $hide_match)) {
					for($i=0; $i<count($hide_match[0]); $i++) {
						$hide_replace[$i] ="<fieldset>".$hide_match[1][$i]."</fieldset>";
						$hide_post['message']= str_replace($hide_match[0][$i],$hide_replace[$i],$hide_post['message']);
					}
				}
			}
			$ajax_on = true;
			$output = $hide_post['message'];
			echo "$output";
			exit;
		}]]></phpcode>
		</plugin>
		<plugin active="1" executionorder="126">
			<title>MARCO1 Hide BBCODE Functions (M)</title>
			<hookname>postbit_display_complete</hookname>
			<phpcode><![CDATA[if ($this->registry->options['MARCO1_BBHideon'] == '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_replied = '';
		
                        
			$hide_stop = 0;
			if (!empty($this->registry->options['MARCO1_HideForumID'])){
				$MARCO1_Forum_NOHIDE = explode(" ",$this->registry->options['MARCO1_HideForumID']);
				if(in_array($thread['forumid'], $MARCO1_Forum_NOHIDE, true)){
					$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>\\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;
				}
				$MARCO1_NoHideUSG = split(',',$vbulletin->options['MARCO1_NoHideUSG']);
if ($vbulletin->options['MARCO1_BBHideon'] AND in_array($vbulletin->userinfo['usergroupid'], $MARCO1_NoHideUSG, true)){
						$hide_read = true;
					}
				}
				
					$hide_img_set = $hide_img_set + 2 ;
					$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(!$bbuserinfo[userid]){
					$hide_read = false;
				}
				if ($hide_read == true){
					$post['message'] = preg_replace('/\\[hide\\](.*)\\[\/hide\\]/siU', '<fieldset>\\1</fieldset>', $post['message']);
				} else {
					
				$hide_fetch = $vbulletin->options['MARCO1_HIDEMESSAGE']; 

					$post['message'] = preg_replace('/\\[hide\\](.*)\\[\/hide\\]/siU', $hide_fetch, $post['message']);
				}
			}]]></phpcode>
		</plugin>
		<plugin active="1" executionorder="5">
			<title>MARCO1 Print Pages Hide BBCODE Functions</title>
			<hookname>printthread_post</hookname>
			<phpcode><![CDATA[if($vbulletin->options['MARCO1_BBHideon']AND stristr($post['message'],'[hide]')){
			global $vbulletin, $vboptions, $bbuserinfo, $db;
			$bbuserinfo = $vbulletin->userinfo;
			$hide_read = false;
			$hide_stop = 0;
			$hide_img_set = 0;
			if (!empty($vbulletin->options['MARCO1_HideForumID'])){
				$MARCO1_hide_forum_stop = explode(" ",$vbulletin->options['MARCO1_HideForumID']);
				if(in_array($threadinfo['forumid'], $MARCO1_hide_forum_stop, true)){
					$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', '\\1', $post['message']);
				$hide_stop = 1;
			} 
			if ($hide_stop != 1){
			
					$MARCO1_NoHideUSG = split(',',$vbulletin->options['MARCO1_NoHideUSG']);
if ($vbulletin->options['MARCO1_BBHideon'] AND in_array($vbulletin->userinfo['usergroupid'], $MARCO1_NoHideUSG, true)){
						$hide_read = true;
					}
				
				
					$hide_img_set = $hide_img_set + 2 ;
					$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(!$bbuserinfo[userid]){
					$hide_read = false;
				}
				
				 $hide_img = $vbulletin->options[MARCO1_HIDEMESSAGE];
				 
				if($hide_read == true){
					$post['message'] = preg_replace('/\\[hide\\](.*)\\[\/hide\\]/siU', '\\1', $post['message']);
				} else {
					$post['message'] = preg_replace('/\\[hide\\](.*)\\[\/hide\\]/siU', $hide_img, $post['message']);
				}
			}
		}]]></phpcode>
		</plugin>
	</plugins>
	<phrases>
		<phrasetype name="vBulletin Settings" fieldname="vbsettings">
			<phrase name="setting_MARCO1_BBHideon_desc" date="1265211380" username="MARCO1" version="1.1"><![CDATA[Choose yes if you want to enable Hide BBCODE]]></phrase>
			<phrase name="setting_MARCO1_BBHideon_title" date="1265211380" username="MARCO1" version="1.1"><![CDATA[Enable MARCO1 Hide BBCODE ?]]></phrase>
			<phrase name="setting_MARCO1_HIDEMESSAGE_desc" date="1265211504" username="MARCO1" version="1.1"><![CDATA[That's the Hide content message that's will appear when you hide something using the Mod.]]></phrase>
			<phrase name="setting_MARCO1_HIDEMESSAGE_title" date="1265211504" username="MARCO1" version="1.1"><![CDATA[What's the Hide Message ?]]></phrase>
			<phrase name="setting_MARCO1_HideForumID_desc" date="1265675231" username="MARCO1" version="1.1"><![CDATA[Add Forum ID's of forums that you will not need to use BBCODE Hide Content on it.]]></phrase>
			<phrase name="setting_MARCO1_HideForumID_title" date="1265675231" username="MARCO1" version="1.1"><![CDATA[Excluding Forum of BBCODE Hide]]></phrase>
			<phrase name="setting_MARCO1_NoHideUSG_desc" date="1265677222" username="MARCO1" version="1.1"><![CDATA[<p>What's the Usergroups that's can view the hidden content without reply ?<br>
	<strong>Separate with ","</strong><br>
	<strong>By Default I allow Moderators, Admins and Super Moderators to see 
	hidden content without reply</strong></p>]]></phrase>
			<phrase name="setting_MARCO1_NoHideUSG_title" date="1265677222" username="MARCO1" version="1.1"><![CDATA[Usergroups Permissions]]></phrase>
			<phrase name="settinggroup_MARCO1_HIDEBBCODE_SETTINGS" date="1265211320" username="MARCO1" version="1.1"><![CDATA[MARCO1 Hide BBCODE Settings]]></phrase>
		</phrasetype>
	</phrases>
	<options>
		<settinggroup name="MARCO1_HIDEBBCODE_SETTINGS" displayorder="65535">
			<setting varname="MARCO1_BBHideon" displayorder="10">
				<datatype>free</datatype>
				<optioncode>yesno</optioncode>
				<defaultvalue>1</defaultvalue>
			</setting>
			<setting varname="MARCO1_HIDEMESSAGE" displayorder="20">
				<datatype>free</datatype>
				<optioncode>textarea</optioncode>
				<defaultvalue><![CDATA[<img src="images/hide.gif">]]></defaultvalue>
			</setting>
			<setting varname="MARCO1_HideForumID" displayorder="30">
				<datatype>free</datatype>
				<defaultvalue>0</defaultvalue>
			</setting>
			<setting varname="MARCO1_NoHideUSG" displayorder="40">
				<datatype>free</datatype>
				<defaultvalue>5,6,7</defaultvalue>
			</setting>
		</settinggroup>
	</options>
	<helptopics>
	</helptopics>
	<cronentries>
	</cronentries>
	<faqentries>
	</faqentries>
</product>


4: Save the file
5: Upload again the new file using as always vb product manager and install it.

You can see a sample of a working mod HERE

Now all working as it should.

Do it and inform me if is OK...

Xtremecoders.org


Did this now all the tags are unhidden! Help. We had changed the tags to a different word instead of hide before this "fix". Is there a way to get all the hidden content hidden again, there are thousands of threads!
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03972 seconds
  • Memory Usage 1,847KB
  • 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)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