The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
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 ? |
#2
|
||||
|
||||
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 |
#3
|
|||
|
|||
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.
|
#4
|
||||
|
||||
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']); } You should be able to very easily change my mod to do exactly what you need just by changing the preg_replace Rich |
#5
|
|||
|
|||
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] |
#6
|
||||
|
||||
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> |
#7
|
|||
|
|||
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:
|
#8
|
||||
|
||||
no probs m8
I'm happy to have helped Rich |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|