Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 4 Articles
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
vB4 Template Conditionals List
BBR-APBT's Avatar
BBR-APBT
Join Date: Feb 2009
Posts: 946

 

Maryland
Show Printable Version Email this Page Subscription
BBR-APBT BBR-APBT is offline 12-28-2009, 10:00 PM

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>
Show Moderator of one forum: Remember to change x
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.
Reply With Quote
  #142  
Old 01-18-2011, 11:54 AM
smooth-c smooth-c is offline
 
Join Date: Jan 2008
Posts: 226
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Code:
<vb:if condition="$bbuserinfo[field7] == 'No'">
<vb:else />
<!-- Wy MyFav Album Start -->
<vb:if condition="$post['field6']"><style="text-align:left"></dt> <img src="{vb:stylevar imgdir_misc}/myfavalbum/{vb:raw post.field6}.png" align="middle" alt="Members Fav Album" border="" /></vb:if>  
<!-- Wy MyFav Album End -->
</vb:if>
I have a user profile field - No or Yes.

This doesn't seem to be working (it's in my postbit)

Any ideas?
Reply With Quote
  #143  
Old 01-18-2011, 03:52 PM
Digital Jedi's Avatar
Digital Jedi Digital Jedi is offline
 
Join Date: Oct 2006
Location: PopCulturalReferenceLand
Posts: 5,171
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

In your postbit, you would use $post, not $bbuserinfo. $bbuserinfo is for showing you your own information anyway.
Reply With Quote
  #144  
Old 01-19-2011, 06:07 PM
Edrondol Edrondol is offline
 
Join Date: Aug 2009
Posts: 92
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm attempting to create a tab with sublinks, with appropriate security.

I have the tab (Special access), with the drop down box (sublink 1, 2, 3) using this code:

I had to create a plugin with this code:

Code:
global $template_hook;
    $newTemplate = vB_Template::create('dropdown');
    $template_hook['navtab_end'] .= $newTemplate->render();
and a new template:

Code:
<li class="popupmenu">
    <a href="javascript://" class="popupctrl navtab" style="background:transparent url({vb:stylevar imgdir_misc}/arrow.png) no-repeat {vb:stylevar right} center; padding-right: 15px">Special Access</a>
    <ul class="popupbody popuphover">
    <li><a style="text-indent: 0px; color:{vb:stylevar navbar_selected_popup_body_a_Color}" href="http://domain.com.com/">Sublink 1</a></li>
    <li><a style="color:{vb:stylevar navbar_selected_popup_body_a_Color}" href="sublink2.php">SubLink 2</a></li>
    <li><a style="color:{vb:stylevar navbar_selected_popup_body_a_Color}" href="sublink3.php">SubLink 3</a></li>
    </ul>
    </li>

My question is how can I use a conditional where only those in the admin group can access it?
Reply With Quote
  #145  
Old 01-20-2011, 03:12 AM
Digital Jedi's Avatar
Digital Jedi Digital Jedi is offline
 
Join Date: Oct 2006
Location: PopCulturalReferenceLand
Posts: 5,171
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Edrondol View Post
I'm attempting to create a tab with sublinks, with appropriate security.

I have the tab (Special access), with the drop down box (sublink 1, 2, 3) using this code:

I had to create a plugin with this code:

Code:
global $template_hook;
    $newTemplate = vB_Template::create('dropdown');
    $template_hook['navtab_end'] .= $newTemplate->render();
and a new template:

Code:
<li class="popupmenu">
    <a href="javascript://" class="popupctrl navtab" style="background:transparent url({vb:stylevar imgdir_misc}/arrow.png) no-repeat {vb:stylevar right} center; padding-right: 15px">Special Access</a>
    <ul class="popupbody popuphover">
    <li><a style="text-indent: 0px; color:{vb:stylevar navbar_selected_popup_body_a_Color}" href="http://domain.com.com/">Sublink 1</a></li>
    <li><a style="color:{vb:stylevar navbar_selected_popup_body_a_Color}" href="sublink2.php">SubLink 2</a></li>
    <li><a style="color:{vb:stylevar navbar_selected_popup_body_a_Color}" href="sublink3.php">SubLink 3</a></li>
    </ul>
    </li>

My question is how can I use a conditional where only those in the admin group can access it?
Just use the conditional for usergroups as shown in the first post and wrap it around the code you want that group to have access to in your template.
Reply With Quote
  #146  
Old 01-20-2011, 06:24 AM
Dan2k3k4 Dan2k3k4 is offline
 
Join Date: Apr 2006
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Subbed
Reply With Quote
  #147  
Old 02-01-2011, 09:12 PM
wpeloquin wpeloquin is offline
 
Join Date: May 2006
Location: Behind you...
Posts: 143
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by TalkVirginia View Post
I don't know if anyone has answered this or if you have already figured it out but you would need to handle this logic in your php code then render the variable accordingly.
how would one do this?

i have in my plugin the following code:
Code:
$rkc_getobject = $vbulletin->input->clean_gpc('r', 'rkc_object', TYPE_UINT);

$rkc_variable1 = $vbulletin->db->query_first("
    SELECT id, name, class_1, class_1_level
    FROM " . TABLE_PREFIX . "rkc_table AS rkc_table
    WHERE id = '" . $vbulletin->db->escape_string($rkc_getobject) . "'
");
$rkc_variable1['name'] = htmlspecialchars($rkc_variable1['name']);
$rkc_variable1['class_1'] = htmlspecialchars($rkc_variable1['class_1']);
$rkc_variable1['class_1_level'] = htmlspecialchars($rkc_variable1['class_1_level']);
And i want to display a conditional to accoplish something like the following:
Code:
<vb:if condition"($rkc_variable1['class_1']) == ClassType1">
    selected code goes here
</vb:if>
now, i know i can use
Code:
{vb:raw rkc_variable1.class_1}
to post the contents in a template, but if i cannot use {vb:raw} in a conditional, how would this goal be accomplished?
Reply With Quote
  #148  
Old 02-01-2011, 09:25 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

When displaying the output of a variable you use:
Code:
{vb:raw rkc_variable1.class_1}
When testing in a condition you use:
Code:
$rkc_variable1['class_1']
Reply With Quote
  #149  
Old 02-01-2011, 09:51 PM
wpeloquin wpeloquin is offline
 
Join Date: May 2006
Location: Behind you...
Posts: 143
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have tried many combinations using that, including what seems to be the most likely (for comparing a string to a string)
Code:
<vb:if condition"($rkc_variable1['class_1']='ClassType1')">Success <vb:else />Failure </vb:if>
Now, if i change it to ='' then it will return "Failure", but if anything at all is there, then it returns "Success".

My goal is to use a <select> menu for set options when editing an object currently saved to the database. Example:
Code:
Choose Class Type:  
<select name="set_class1" id="set_class1" value="{vb:raw rkc_variable.class_1}">
<option value="">Choose Class</option>
<option value="ClassType1"<vb:if condition"($rkc_variable1['class_1']='ClassType1')"> selected="selected"</vb:if>>ClassType1</option>
<option value="ClassType2"<vb:if condition"($rkc_variable1['class_1']='ClassType2')"> selected="selected"</vb:if>>ClassType2</option>
</select>
Every combination of conditional i have tried just returns the bottom value that has the conditional in it, in this example ClassType2 would show even if the set value in the database was ClassType1. My guess is its just a syntax issue on getting the conditional phrased just right.

if it helps, i have the following code in the plugin to register it:
Code:
$templater = vB_Template::Create('rkc_customtemplate');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('rkc_getobject', $rkc_getobject);
$templater->register('rkc_variable1', $rkc_variable1);
print_output($templater->render());
Reply With Quote
  #150  
Old 02-01-2011, 10:15 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You definitely need equal signs in the conditionals...

Code:
<select name="set_class1" id="set_class1" value="{vb:raw rkc_variable.class_1}">
<option value="">Choose Class</option>
<option value="ClassType1"<vb:if condition="($rkc_variable1['class_1']='ClassType1')"> selected="selected"</vb:if>>ClassType1</option>
<option value="ClassType2"<vb:if condition="($rkc_variable1['class_1']='ClassType2')"> selected="selected"</vb:if>>ClassType2</option>
</select>
If that gives you an error try it without the single quotes around 'class_1' - sometimes they don't work right in templates.
Reply With Quote
  #151  
Old 02-02-2011, 06:45 PM
wpeloquin wpeloquin is offline
 
Join Date: May 2006
Location: Behind you...
Posts: 143
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i apologize for the inaccurate entry in my code. the code in my template did have the "=". However, the same problem exists. if i put the conditional only on the ClassType2 option, then no matter what ClassType is actually in the database, ClassType2 will always be the selected option.

Example: say the options range from 1-5. If i put the conditional on 2, and then choose 4, 4 will be stored in the database, but when bringing up that object to edit, option 2 will be the default choice in the select menu. Clicking to edit the object should show all default data currently stored, so that if you choose to edit and then 'save' without making any changes, no changes will be made. in this scenario, option 4 is in the database, but if you choose edit and then save w/o physically making any changes, option 2 will replace option 4.
Code:
<select type="text" name="set_class1" id="set_class1" value="{vb:raw rkc_variable1.class1}" class="primary">
<option value="">Choose Class1</option>
<option value="Option1">Option1</option>
<option value="Option2">Option2</option>
<option value="Option3">Option3</option>
<option value="Option4">Option4</option>
<option value="Option5">Option5</option>
<option value="Option6"<vb:if condition="($rkc_variable1['class1']='Option6')"> selected="selected"</vb:if>>Option6</option>
<option value="Option7">Option7</option>
<option value="Option8">Option8</option>
</select>
this code will always default the <select> to Class6, regardless of what the actual data in the table is. This is the problem i am having.
Reply With Quote
Reply


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 01:18 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.07720 seconds
  • Memory Usage 2,375KB
  • Queries Executed 26 (?)
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
  • (33)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (40)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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_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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete