Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 04-07-2011, 07:17 AM
humour humour is offline
 
Join Date: Jul 2010
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Need to hide some specific URLs from Guests

I need to hide some specific URLs from Guests. Say hiding all the links of imdb.com from the thread only for the guest

Can anyone recommend me the way to do it. I will use preg_match to get every IMDB link in the thread but how to replace it with blank text only for guest ?
Reply With Quote
  #2  
Old 04-07-2011, 09:20 AM
richy96's Avatar
richy96 richy96 is offline
 
Join Date: Apr 2008
Location: England
Posts: 93
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I do something similar to stop search engines (guests) from indexing members usernames from forum posts, while leaving the forums visible for earch engines to index the posts content

In my case I added the code to do this to forumdisplay.php

The loop handling the display of forum threads starts

while ($thread = $db->fetch_array($threads))

It executes once for each post in the thread


This would be a good point to enter your code. Here is mine (which reverses the characters in usernames and sets them all to lowercase) you could do something similar to replace your unwanted URLs with blank space, or some other text like 'veiwable only to members'

I determine if a user is guest from if (!$show['member'])


Code:
		while ($thread = $db->fetch_array($threads))
		{ // AND $counter++ < $perpage)
			// jumble up poster and last poster name for guests/search engines
			if (!$show['member'])
			{
				$thread['postusername'] = strtolower(strrev($thread['postusername']));
				$thread['lastposter'] = strtolower(strrev($thread['lastposter']));
			}

Hope that helps
Rich
Reply With Quote
  #3  
Old 04-07-2011, 02:13 PM
humour humour is offline
 
Join Date: Jul 2010
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

can u tell me which variable hold the actual thread content? I will replace the value which i dont want along with showthread_start hook.
Reply With Quote
  #4  
Old 04-07-2011, 08:33 PM
richy96's Avatar
richy96 richy96 is offline
 
Join Date: Apr 2008
Location: England
Posts: 93
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

HI humour



--------------- Added [DATE]1302252988[/DATE] at [TIME]1302252988[/TIME] ---------------

Edit - Sorry I told you wrong there

That was part of the mod I used to stop usernames showing to guests during display of forum thread lists - not forum threads

I did something similar to stop attachments from showing to guests within threads


The file you want to look at is showthread.php and the thread text is stored in $post['pagetest_html']


I just had a look to see how I did this on my site

I actually put the mod into the file includes/class_postbit.php which contains code that is called from showthread for each post, parses any bbcode and returns the html for the post text.


There is a hook in this file called postbit_display_complete

You could use that hook however my mod was put inline directly after the hook call

Code:
		($hook =& vBulletinHook::fetch_hook('postbit_display_complete')) ? eval($hook) : false;
		$hidemessage = "Only registered users can view images";
		if($show['guest'])
		{
		$this->post['message'] = preg_replace("/<img.+?\>/i", $hidemessage, $this->post['message']);
		}
That replaces any image tag in the thread post with the $hidemessage

You should be able to very easily change my mod to do exactly what you need just by changing the preg_replace

Rich
Reply With Quote
  #5  
Old 04-08-2011, 10:01 AM
humour humour is offline
 
Join Date: Jul 2010
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

well isnt it possible using plugin manager ?

$this->post['message'], doesnt show up when i used it with plugin

may be some another workaround to make it work in plugin system.
Code:
$GLOBALS[postcache][$FIRSTPOSTID][message]
^ I dumped all variables & step by step got to know that this variable has message content, but when i change content in this variable it is not reflected in thread, dunno y
Reply With Quote
  #6  
Old 04-08-2011, 02:04 PM
richy96's Avatar
richy96 richy96 is offline
 
Join Date: Apr 2008
Location: England
Posts: 93
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK I found some plug in on here that does basically what I did (hide attachments in threads) but don't recall what it is called - and that plugin uses the same hook location (though as I said I put my code inline instead)

I am sure my own mod and this plugin do the exactly same thing if you look a the code

If you want to use a plugin, maybe this one can easily be modified to your purpose

Rich

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

<product productid="hideimg_guests" active="1">
	<title>Hide Images from Guests</title>
	<description>Allows you to show a message to guests instead of images.</description>
	<version>1.0</version>
	<url>http://www.vbstyle.org/</url>
	<versioncheckurl />
	<dependencies>
	</dependencies>
	<codes>
	</codes>
	<templates>
	</templates>
	<plugins>
		<plugin active="1" executionorder="5">
			<title>Hide Images from Guests</title>
			<hookname>postbit_display_complete</hookname>
			<phpcode><![CDATA[if($vbulletin->options['hideimg_enabled'] AND $show['guest'])
{
$this->post['message'] = preg_replace("/<img.+?\>/i", $vbulletin->options['hideimg_message'], $this->post['message']);
}]]></phpcode>
		</plugin>
	</plugins>
	<phrases>
		<phrasetype name="vBulletin Settings" fieldname="vbsettings">
			<phrase name="setting_hideimg_enabled_desc" date="1248758309" username="vB Style" version="1.0"><![CDATA[Enable Hide Images from Guests?]]></phrase>
			<phrase name="setting_hideimg_enabled_title" date="1248758309" username="vB Style" version="1.0"><![CDATA[Enable Hide Images from Guests]]></phrase>
			<phrase name="setting_hideimg_message_desc" date="1248758579" username="vB Style" version="1.0"><![CDATA[Insert the message here to be displayed to guests instead of images (You can use HTML):]]></phrase>
			<phrase name="setting_hideimg_message_title" date="1248758579" username="vB Style" version="1.0"><![CDATA[Hide Images from Guests Message]]></phrase>
		</phrasetype>
	</phrases>
	<options>
		<settinggroup name="showthread" displayorder="430">
			<setting varname="hideimg_enabled" displayorder="320">
				<datatype>free</datatype>
				<optioncode>yesno</optioncode>
				<defaultvalue>yes</defaultvalue>
			</setting>
			<setting varname="hideimg_message" displayorder="330">
				<datatype>free</datatype>
				<defaultvalue><![CDATA[<font color="red">Guests cannot see images in the messages. Please register to forum by clicking <a href="register.php"><strong>here</strong></a> to see images.</font>]]></defaultvalue>
			</setting>
		</settinggroup>
	</options>
	<helptopics>
	</helptopics>
	<cronentries>
	</cronentries>
	<faqentries>
	</faqentries>
</product>
Reply With Quote
  #7  
Old 04-09-2011, 07:56 AM
humour humour is offline
 
Join Date: Jul 2010
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

well dude thanks for all ur help & assistance. My friend did this work for me & it is pretty much same as the code in the above post

PHP Code:
if ($show['guest'])
{
$this->post['message'] = str_ireplace("Text1","Hidden for guests",$this->post['message']); 

thanks anyways
Reply With Quote
  #8  
Old 04-09-2011, 01:10 PM
richy96's Avatar
richy96 richy96 is offline
 
Join Date: Apr 2008
Location: England
Posts: 93
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

no probs m8
I'm happy to have helped

Rich
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:04 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04632 seconds
  • Memory Usage 2,235KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (4)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (8)post_thanks_box
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (8)post_thanks_postbit_info
  • (8)postbit
  • (8)postbit_onlinestatus
  • (8)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete