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 |
#122
|
||||
|
||||
Quote:
|
#123
|
||||
|
||||
This is a wonderful hack. Thanks Logician
|
#124
|
||||
|
||||
This is a outstanding hack. It basically lets you use PHP in your templates. I believe everyone should install this. Would make hacking ALOT easier.
|
#125
|
|||
|
|||
While the example in the text file worked flawlessly (the code that goes in forumhome), whenever I attempt to put the code inside postbit, it simply prints out the code itself and completely ignores it. For example, if I put:
[[($bbuserinfo[usergroupid]==6)]] Hello [[/($bbuserinfo[usergroupid]==6)]] It doesn't print out "Hello," but it prints out that entire code. Is there a switch or something somewhere that I have to turn off or on? I'm not good with vB, so any help would be most appreciated. Thanks! |
#126
|
||||
|
||||
Quote:
|
#127
|
||||
|
||||
Quote:
|
#128
|
|||
|
|||
We just downgraded back to version 2.2.6, and it works fine now. So sorry for posting that prematurely and thanks for the help!
|
#129
|
||||
|
||||
What version were you running where you had problems? I am running 2.2.9 and it works fine.
|
#130
|
||||
|
||||
It should work for all versions. Works for my 2.2.9..
|
#131
|
||||
|
||||
I don't know how I ever got along without this hack. I think I hack my templates more than I do my php files anymore.
|
#132
|
||||
|
||||
Quote:
|
#133
|
||||
|
||||
Awesome hack, Logician! Thank you so much! You should be on the vB dev team! I'm already making use of conditional templates by showing a special message to guests in my header, encouraging them to join. I'm also making use of it in my headinclude template, so that pop-up advertising code is only inserted for guests, but not members!
I know that you would rather not answer questions about creating conditionals, but I would just like confirmation on whether or not this is possible... Can a conditional be created so that it displays the code only once every 12 hours per visitor? |
#134
|
||||
|
||||
Quote:
[[(date("H", time())>0 AND date("H", time())<13)]] condition [[/(date("H", time())>0 AND date("H", time())<13)]] This will apply when time is between 00.00 to 12.00 (server time). |
#135
|
||||
|
||||
Quote:
|
#136
|
|||
|
|||
does this hack work with vbhome lite?
here is my intended result. stop me at the point where I screwed up... in the index.php for vbhome lite I added forumid to this select statement... Code:
$articlebits = ''; $articlemaxnumber = iif ( $articlemax!=0 , 'LIMIT ' . $articlemax , '' ); $articles = $DB_site->query(" SELECT thread.threadid,thread.title,thread.lastpost,thread.forumid,thread.rep\lycount,thread.postusername,thread.postuserid, thread.lastposter,thread.dateline,thread.views,post.pagetext as pagetext so then in the aritcle bit of vbhome lite I put in [[($articlebits[thread.forumid='3'])]]foo[[(/$articlebits[thread.forumid='3'])]] I have tried numerous concatenations of articlebits articles article as such. I cant figure it out. mostly because Im newbie to all of this... any help? is this possible? |
#137
|
|||
|
|||
If your looking for a similar hack like this but works in posts as a vB Code, try here:
https://vborg.vbsupport.ru/showthrea...threadid=48492 |
#138
|
|||
|
|||
Logician,
The hack is awesome and works (in 2.2.9) so far ... but this is the effect I'm trying to achieve and was hoping you might offer some insight: I'd like to show certain data in a template on "X" date and show alternative data in a template if the current date is not "X". Any hints? |
#139
|
||||
|
||||
Quote:
template content to display if date is 02.19.2003 (server time!) [[/(date("m.d.Y")=="02.19.2003")]] [[(date("m.d.Y")!="02.19.2003")]] template content to display if date is NOT 02.19.2003 (server time!) [[/(date("m.d.Y")!="02.19.2003")]] |
#140
|
|||
|
|||
Something is up, it isn't working it is only printing out the lines and not restricting anything.
Running 2.2.9, somewhat modified, it was working earlier. |
#141
|
||||
|
||||
try to reapply.. a recent hack might have overwrited the hack somehow..
|
#142
|
|||
|
|||
It was because I was putting the first part after not before the code.
Works now. Thanks. |
#143
|
||||
|
||||
can u use this in a postbit?
meaning some1 already posted something and use a condition in the post? l8er sonic |
#144
|
||||
|
||||
I use it there for all sorts of things.
|
#145
|
||||
|
||||
Quote:
|
#146
|
||||
|
||||
This is the best hack ive installed for a long time!!!
Thank you so much logician!! /me klicks install! |
#147
|
||||
|
||||
I don't understand. So I have to use commands to get it to work? Well if I just want an entire catagory to change for all users, it would probably be easier to just create a new template and apply it to that catagory instead of using this hack right?
|
#148
|
|||
|
|||
Have there been any thought on what will happen when we go to 3.0? Should the same basic hack work in 3.0? How do you all plan on making the switch, if you do? Thanks
Jake |
#149
|
|||
|
|||
Quote:
Hmm by what i read on the forum, 3.0 already supports it. |
#150
|
||||
|
||||
Quote:
Quote:
|
#151
|
|||
|
|||
Quote:
The vBulletin 3.0 one supports multiple conditionals and there syntax is: Code:
<if condition="condition"> // stuff <else /> // stuff </if> Code:
<table> <tr> <if condition="$vboptions['$vbversion'] == 3.0"> <td>vB 3.0 is here!</td> <else /> <td>Still waiting...</td> </if> </tr></table> |
#152
|
|||
|
|||
Ok, thanks. Kind of a shame. This has to be the most clever hack to come out and I hate to see it gobbled up. I would be happy to see all my other hacks incorporated, but not this one. Thanks for your work getting this out to us logician!
JakeC |
#153
|
||||
|
||||
I encountered some problems here..
Code:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/soccerwi/public_html/forum/admin/functions.php on line 860 Fatal error: Call to undefined function: vbsetcookie() in /home/soccerwi/public_html/forum/admin/sessions.php on line 183 Thanks in advance. |
#154
|
||||
|
||||
*Bump*
Quote:
|
#155
|
||||
|
||||
Quote:
|
#156
|
||||
|
||||
Sinan, I have to ask. I've seen some of what they say is the conditionals for 3.0 and to tell you the truth, I don't like them as much as I do yours for this hack. Will you, by chance, be updating this for 3.0 for those of us that are used to your conditionals and the way of doing them like we are now?
|
#157
|
||||
|
||||
Quote:
|
#158
|
||||
|
||||
Words cannot express the absolute amazement that I have in this extremely awesome hack. Congratulations, Logician - this is absolutely brilliant.
Kaelon |
#159
|
||||
|
||||
Logician is a magician.
|
#160
|
||||
|
||||
Ya, I did replaced instead of add.
Quote:
PHP Code:
thanks.. |
#161
|
||||
|
||||
I say check step 1.. After you applied it, the line should look like this:
PHP Code:
PHP Code:
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|