The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
vB4 Template Conditionals List
I put this together because it seems lots of people are having problems with the new syntax for conditionals. First off remember you can not use {vb:raw var} in template conditionals. Show only members: Code:
<vb:if condition="$show['member']">Show this to members only</vb:if> Show only guest: Code:
<vb:if condition="$show['guest']">Show this to guest only</vb:if> Show specific user groups : Code:
<vb:if condition="is_member_of($bbuserinfo, 1,2,3)">Show this to user group 1, 2, and 3</vb:if> Show one member: Code:
<vb:if condition="$bbuserinfo['userid'] == 318713">Show this only to the member with the user id of 318713</vb:if> Show every one but one member: Code:
<vb:if condition="$bbuserinfo['userid'] != 318713">Show this to every one but the member with the user id of 318713</vb:if> Show only moderators of any forum: Code:
<vb:if condition="can_moderate()">Show this to all moderators</vb:if> Code:
<vb:if condition="can_moderate($forum['x])">Show this if moderator is moderator of the forum with the id of x</vb:if> Show Moderator of current forum: Code:
<vb:if condition="can_moderate($forum['forumid'])">Show this to the moderator of the current forum</vb:if> Show in one forum: Remember to change x Code:
<vb:if condition="$forum[forumid] == x">Show this if forum id is x</vb:if> Show is every forum but one: Remember to change x Code:
<vb:if condition="$forum[forumid] != x">Show this if forum id is not x</vb:if> Show in several forums: Code:
<vb:if condition="in_array($forum['forumid'], array(1,2,3))">Show this to forum 1, 2 and 3</vb:if> Show in only one file: Look for define('THIS_SCRIPT', 'calendar'); in the top of the php file you want it to show in. Code:
<vb:if condition="THIS_SCRIPT == 'calendar'">Show this only on calendar.php</vb:if> Show in every file but one: Look for define('THIS_SCRIPT', 'calendar'); in the top of the php file you do not want it to show in. Code:
<vb:if condition="THIS_SCRIPT != 'calendar'">Show this only on calendar.php</vb:if> If $customvar is set: Code:
<vb:if condition="$customvar">Show this if $customvar is set</vb:if> If $customvar equals: Code:
<vb:if condition="$customvar == blah">Show this if $customvar equals blah</vb:if> If $customvar does not equal: Code:
<vb:if condition="$customvar != blah">Show this if $customvar does not equal blah</vb:if> vBulletin else statement: Code:
<vb:if condition="$show['guest']"> Show this to only guest. <vb:else /> Show this to all registered users </vb:if> vBulletin else if statement: Code:
<vb:if condition="$show['guest']"> Show this to only guest. <vb:elseif condition="is_member_of($bbuserinfo, 5,6)" /> Show this to user group 5 and 6 which is mods and admins <vb:else /> Show this to all registered users </vb:if> This is all that I can think of right now off the top of my head. Please feel free to add any I forgot and I will add them to this list and give you credit. |
#152
|
|||
|
|||
Hello there Thank you Digital Jedi!
I'm currently running a board under vB3.8 and will be upgrading shortly to the vB4.1.x series. Right now, we use a fluid banner. We would like to approach our upgrade with a new design but still retain certain features that our members love, one of which - the fluid banner. I've created a radio button in the user profile fields, so members can switch between which header style they'd like. This is the code I've edited/changed in the header template. Code:
<vb:if condition="$post[field8] == 'Yes'"> <div id="headerFill"><div id="headerL"></div><div id="headerR"></div></div> <vb:else /> <div><a name="top" href="{vb:raw vboptions.forumhome}.php{vb:raw session.sessionurl_q}" class="logo-image"><img src="{vb:stylevar titleimage}" alt="{vb:rawphrase x_powered_by_vbulletin, {vb:raw vboptions.bbtitle}}" /></a></div> </vb:if> Any help appreciated! Greg |
#153
|
||||
|
||||
$post won't work in the header, $post is only defined inside a post... Also it the value of the poster not the value of the person viewing.
What you want is $bbuserinfo[field8], that holds the value of field8 for the user currently logged in. As for the logic it would show Code:
<div id="headerFill"><div id="headerL"></div><div id="headerR"> Code:
<div><a name="top" href="{vb:raw vboptions.forumhome}.php{vb:raw session.sessionurl_q}" class="logo-image"><img src="{vb:stylevar titleimage}" alt="{vb:rawphrase x_powered_by_vbulletin, {vb:raw vboptions.bbtitle}}" /></a></div> This is good logic if you want users to have to "opt in" to this. If you wan't them to "opt-out" though (that is, display the first line unless they specifically said "No" then you'd be better off using the condition: Code:
<vb:if condition="$bbuserinfo[field8] != 'No'"> |
#154
|
|||
|
|||
I would like to thank Valter for his contribution to solving my problem, even though he does not realize he helped! (I will PM him a thank you, as i found my working solution while browsing through a plugin written by him), and to you BirdOfPrey for your help as well.
My Solution: First, i added another table with the data for the <select>. This will actually serve 2 purposes, 1st being solving my issue, and the 2nd allows me to create another admin page that will allow me to update the data in that table. Inside the plugin code i added Code:
... $vbulletin->db->hide_errors(); $getlist= $vbulletin->db->query_read(" SELECT class_id, class_desc FROM " . TABLE_PREFIX . "class AS class ORDER BY class_desc ASC "); $vbulletin->db->show_errors(); while ($class = $vbulletin->db->fetch_array($getlist)) { $class_id = $class['class_id']; $class_name = $class['class_desc']; eval('$class_selector .= " <option value=\"'.$class['class_id'].'\" " . iif($rkc_variable1[class_1]==$class[class_id]," selected=\"selected\"","").">'.htmlspecialchars($class['class_desc']).'</option> ";'); } ... $templater->register('class_selector', $class_selector); $templater->register('class_name', $class_name); $templater->register('class_id', $class_id); Code:
<td> {vb:rawphrase class1_phrase}: <select id="set_class1" name="set_class1">{vb:raw class_selector}</select> </td> |
#155
|
|||
|
|||
Thank you so much, BirdOPrey5 - That worked perfect
|
#156
|
|||
|
|||
Nice post, very useful thank you very much
I just updated again to vb 4 and things got a little complicated, thanks for this great post |
#157
|
|||
|
|||
How would you clean this up into an array?
Code:
<vb:if condition="$vbulletin->nodeid != 1 AND THIS_SCRIPT != 'blog' AND THIS_SCRIPT != 'entry' AND THIS_SCRIPT != 'misc' AND THIS_SCRIPT != 'group' AND THIS_SCRIPT != 'calendar' AND THIS_SCRIPT != 'member' AND THIS_SCRIPT != 'usercp' AND THIS_SCRIPT != 'profile' AND THIS_SCRIPT != 'sendmessage' AND THIS_SCRIPT != 'register' "> |
#158
|
||||
|
||||
try...
Code:
<vb:if condition="$vbulletin->nodeid != 1 AND !in_array(THIS_SCRIPT, array('blog' , 'entry', 'misc', 'group'))"> |
#159
|
|||
|
|||
Thanks!
|
#160
|
|||
|
|||
i have been trying to use $threadinfo[forumid] and $forum[forumid] in threadbit in a condition but it doesnt work .. is there any other vars i can use ?
|
#161
|
||||
|
||||
In threadbit it looks like the variable is just:
Code:
$thread['forumid'] |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|