The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Advanced Templates: Dynamic Templates Changing according to different conditions Details »» | |||||||||||||||||||||||||||
Advanced Templates: Dynamic Templates Changing according to different conditions
Developer Last Online: Nov 2023
This hack allows you to design dynamic vb templates which change themselves according to different conditions. Thus you can customize your board very powerfully with "intelligent/interactive" templates. It uses the same "conditional concept" just like my Webtemplates and Dynamic Forum Announcements Hack. With conditionals you can program your templates to:
The Hack's Features:
Vbulletin v.3 has been announced to have "conditional" concept in templates, however my hack wasn't inspired by it at all, because I'm using the conditionals in my Webtemplates hack since March 2002 so in fact vb developers might be inspired by me. My Dynamic Forum Announcements hack uses the same concept for forum home announcements too.. (Wait for my other hacks depending on conditionals cause I really like them, they are really powerful and customizable) Performance Issues The hack does NOT add any MYSQL connections. It just process your already retrieved templates in a function to parse the hack conditionals. Thus the performance is IMO quite bearable. However please notice that if a template has a conditional in it, the hack have to parse it before displaying it and technically this parsing is done with PHP's preg_match command which is known as a powerful but slow command. So does it cause any performance problems? In most cases no. But if the conditionals are applied in a very frequently used and/or long template and/or you used too many conditionals in one template AND your traffic or server load is high, this MAY increase your PHP processing time whenever this template is displayed as the hack has to deal with the conditionals everytime this template is called. I suggest applying Teck's Microstat's hack and observe the PHP running time with that hack after you applied a conditional especially in a frequently used template (eg. postbit). If it slows down the display, simply reduce your conditional count in that template or delete the conditional or remove the hack altogether. Personally I dont have any performance problems in my own board related to this hack but just wanted to give my 2 cents anyway especially for high-traffic boards.. If you liked the hack (I guess you will), I strongly suggest checking out my Webtemplates hack which provides exactly the same feature for your NON-VB pages. Also please click INSTALL if you use the hack, thank you.. 09.Sep.2002 Bug Fix: If you installed the hack before 09.Sep.2002 please download the instructions again and reapply step 2, since I made an update for a small bug fix. There was a variable name collision which causes a problem with email validation screen which uses the same variable so I changed my variable's name. If you are downloading the hack now, go ahead.. The code you download is already fixed.. 07.Oct.2002 UPDATE: I updated the hack code, so that people who have enabled template debugging in their Admin CP/vb Settings can also use the hack. Also small modification applied to increase template parsing time. If you installed the hack before my update, you may choose to reinstall (not necessary). If you are a new hack user, the instructions you download is already new version's. Enjoy! Logician \\=^)) Show Your Support
|
Comments |
#82
|
||||
|
||||
Quote:
And actually I cant think a reason the hack will behave like this either. Technically the hack does not interfere the loading of the template, it just interferes when the already-loaded template is returned to the vb so the behaviour you describe does not fit its algorithm.. I dont know how I can help you about this problem you encountered. I suspect you might applied a step wrong while installing and changed a section which you shouldn't touch. However this still does not explain how come you have the same problem when you reverted the function.php though.. |
#83
|
||||
|
||||
I can't believe this hack isn't hack of the year, no doubt the most powerful I've seen, excellent work!
Please excuse the noob question, but... 1) I understand the conditional formating 2) I'm not sure where to place the conditional in the template. 3) Here's the goal: Usergroup X can not see the "Change Style" portion of their user options. Usergroups A, b and C can. 4) I assume a copy (modify options2) of modify options needs to be made, then a conditional put in the original. If usergroup x goes to modify, the conditional sends them to the copy ("modify options2") Someone help me out with this? Thanks! |
#84
|
||||
|
||||
Quote:
edit template "modifyoptions" and find: PHP Code:
PHP Code:
|
#85
|
||||
|
||||
Oh man, that's sweet
Thanks! Again, great hack. |
#86
|
|||
|
|||
I voted for the warning system hack for the HOTM, but that's because I hadn't installed this...but now that I have, I vote this hack of the millenium, Logician, you've done one great job here! This tiny change to some code adds so much functionality to my forum!
Just a thumbs up for this, this is truly brilliant, well done. |
#87
|
|||
|
|||
Question: Can the ismoderator function somehow be used?
|
#88
|
||||
|
||||
Quote:
|
#89
|
|||
|
|||
How do I set it up so a group of IPs can see a message? For example say I want everyone from 192.168.1.x to see a message, or say IPs from 192.168.1.x and 255.255.255.x to see a message?
|
#90
|
||||
|
||||
Quote:
[[(substr($REMOTE_ADDR, 0, strlen(X))==192.168.1)]] your template content for users whose IP is starting with 192.168.1 [[/(substr($REMOTE_ADDR, 0, strlen(X))==192.168.1)]] Replace X with the character length of IP you used at the end. For example: if you use "192.168.1.255" X is 13 if you use "192.168.1" X is 9 if you use "192.168" X is 7 if you use "192" X is 3 etc. |
#91
|
|||
|
|||
I installed this hack on vbb2.2.9
ever since i have been getting PH memory leaks and over 60mb's worth of leak is somethig to worry about when i removed (quoted out) the announcements funtion in /admin/functions.php the errors stopped anything you can guess at that would be causing this problem? PS - i really love thjis hack and have been using it loads.. until the errorsa started.. i would like to use it again |
#92
|
||||
|
||||
Quote:
|
#93
|
||||
|
||||
Would there be a way to use this to make a forum appear in a different style for different users?
|
#94
|
||||
|
||||
Quote:
Edit global.php, find: PHP Code:
(If you want to apply different style set for specific user) PHP Code:
PHP Code:
It works like this: If user is X and he visited forum Z, his style will change to Y |
#95
|
||||
|
||||
Sinan, is there a way to only have the "Edit Post" button appear to those who "candeleteposts" with this hacK? I have been working on this for 2 days now trying to figure out the right variable to work with this. Can it be done or am I missing something? If not with this hack, is there a way this can be done another way? Great hack, buddy!
|
#96
|
||||
|
||||
Quote:
Edit postbit template, find: PHP Code:
PHP Code:
|
#97
|
||||
|
||||
noce hack
|
#98
|
||||
|
||||
Thanks, Sinan. I have a hack that does that already. What i am looking for is to have it not show up to anyone besides the admin and Supermod unless they are either the poster of the message or a mod that has edit rights to that message. Not all of my mods can edit messages everywhere on the board. I tried the ismoderator variable and it didn't work. Is there another way around this?
I think I will take the hack out and replace it with your code. Quote:
|
#99
|
||||
|
||||
Thank you Logician
|
#100
|
|||
|
|||
This is an extremely fine hack.
Is there some "CanPostReply" variable, I can use to hide the "quote" and "post reply"-buttons if a user isn't allowed to post in a thread (either because it is locked, oe because of their user group). |
#101
|
|||
|
|||
i just used your similar hacks in march 2002 .. and it was very great.... i might install this also !..
great work.. the should make you to be one of the master VB code designers ! |
#102
|
|||
|
|||
how can i make it so that my top_stats button still shows but will tell a guest he needs to register the same way the forum defaults do when you set permissions to have guests not see certain forums?
I dont want guests to be able to see my forum stats. |
#103
|
||||
|
||||
Quote:
|
#104
|
|||
|
|||
the top_stats button links to vbstats.php
Its a hack i got off these forums. my website is www.ar-racing.com |
#105
|
|||
|
|||
I am having trouble with the hack.
I don't want UserGroup 19 not to see a certin html code in the footer template so I added ----------- [[($bbuserinfo[usergroupid]==4 OR[usergroupid]==17 OR[usergroupid]==18 OR[usergroupid]==9 OR[usergroupid]==8 OR[usergroupid]==2 OR[usergroupid]==1 OR[usergroupid]==3 OR[usergroupid]==5 OR $bbuserinfo[usergroupid]==6 OR $bbuserinfo[usergroupid]==7)]] HTML CODE HERE [[/($bbuserinfo[usergroupid]==4 OR[usergroupid]==17 OR[usergroupid]==18 OR[usergroupid]==9 OR[usergroupid]==8 OR[usergroupid]==2 OR[usergroupid]==1 OR[usergroupid]==3 OR[usergroupid]==5 OR $bbuserinfo[usergroupid]==6 OR $bbuserinfo[usergroupid]==7)]] --------------------------- But it hides the html code from everyone |
#106
|
||||
|
||||
Then why don't you just use this and save some code?
[[($bbuserinfo[usergroupid]!=19)]] HTML CODE HERE [[/($bbuserinfo[usergroupid]!=19)]] and you need to add spaces after the OR in your code. |
#107
|
||||
|
||||
This:
[[($bbuserinfo[usergroupid]==4 OR[usergroupid]==17 OR[usergroupid]==18 OR[usergroupid]==9 OR[usergroupid]==8 OR[usergroupid]==2 OR[usergroupid]==1 OR[usergroupid]==3 OR[usergroupid]==5 OR $bbuserinfo[usergroupid]==6 OR $bbuserinfo[usergroupid]==7)]] HTML CODE HERE [[/($bbuserinfo[usergroupid]==4 OR[usergroupid]==17 OR[usergroupid]==18 OR[usergroupid]==9 OR[usergroupid]==8 OR[usergroupid]==2 OR[usergroupid]==1 OR[usergroupid]==3 OR[usergroupid]==5 OR $bbuserinfo[usergroupid]==6 OR $bbuserinfo[usergroupid]==7)]] should be this: [[($bbuserinfo[usergroupid]==4 OR $bbuserinfo[usergroupid]==17 OR $bbuserinfo[usergroupid]==18 OR $bbuserinfo[usergroupid]==9 OR $bbuserinfo[usergroupid]==8 OR $bbuserinfo[usergroupid]==2 OR $bbuserinfo[usergroupid]==1 OR $bbuserinfo[usergroupid]==3 OR $bbuserinfo[usergroupid]==5 OR $bbuserinfo[usergroupid]==6 OR $bbuserinfo[usergroupid]==7)]] HTML CODE HERE [[/($bbuserinfo[usergroupid]==4 OR $bbuserinfo[usergroupid]==17 OR $bbuserinfo[usergroupid]==18 OR $bbuserinfo[usergroupid]==9 OR $bbuserinfo[usergroupid]==8 OR $bbuserinfo[usergroupid]==2 OR $bbuserinfo[usergroupid]==1 OR $bbuserinfo[usergroupid]==3 OR $bbuserinfo[usergroupid]==5 OR $bbuserinfo[usergroupid]==6 OR $bbuserinfo[usergroupid]==7)]] |
#108
|
|||
|
|||
thank you very very much
|
#109
|
||||
|
||||
You're welcome. Just curious, which code are you using? The first one I posted or the second one?
|
#110
|
|||
|
|||
The secound code because because I want to hide an add for 1 user group but have the rest see it.
|
#111
|
|||
|
|||
My visitors have said they would be interesting in paying to visit the site. So I said I would offer an ads free version of the site for those who pay. Lets see if they do
|
#112
|
||||
|
||||
Quote:
|
#113
|
|||
|
|||
I want to hide it from every group except 19
|
#114
|
|||
|
|||
What would be the correct variable for new private messages? I know that I use this to call the number of new messages: $unreadpm[messages]. I would like to simply use this hack to turn text red when there are more than 0 new messages. Thanks in advance.
JakeC |
#115
|
||||
|
||||
Quote:
[[($bbuserinfo[usergroupid]==19)]] HTML CODE HERE [[/($bbuserinfo[usergroupid]==19)]] |
#116
|
||||
|
||||
Quote:
[[($unreadpm[messages]!=0)]] HTML CODE HERE [[/($unreadpm[messages]!=0)]] |
#117
|
|||
|
|||
wont someone please help me out with my question. What code should I use to make unregistered user group not able to access the top_stats link to vbstats.php. I want them to still be able to see the button but just when they click on it, it takes them to the user not registered page, please log in screen.
Im not sure what template to put this code in as it needs to be always used say if they are in another forum and are unregisterd, i still want them to not be able to access vbstats. And I need the code for this too. Thanks |
#118
|
|||
|
|||
Boofo,
It worked with >0 . I tried it with the !=0 and it didn't work. Thanks for pointing me in the right direction. JakeC |
#119
|
||||
|
||||
Quote:
PHP Code:
PHP Code:
|
#120
|
|||
|
|||
well in stead of userid how about usergroupid to block whole groups from seeing it. Also please double check me, is it usergroupid or just usergroups? Also I want to include more than 1 usergroupid in the list of people not being able to see the stats. I try and put numbers like
if ($bbuserinfo[usergroupid]==1,3,4,11,12) { show_nopermission(); } but that gives me an error. What am i doing wrong. I know if i use the code below it works fine to block guests. if ($bbuserinfo[usergroupid]==1) { show_nopermission(); } |
#121
|
||||
|
||||
Quote:
Code:
if ($bbuserinfo[usergroupid]==1,3,4,11,12) { show_nopermission(); } Code:
if (in_array($bbuserinfo['usergroupid'], array(1,3,4,11,12))) { show_nopermission(); } |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|