Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 4 Articles

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
  #222  
Old 06-12-2011, 06:19 PM
kether1 kether1 is offline
 
Join Date: Jun 2006
Posts: 232
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BirdOPrey5 View Post
You could do a condition to show code only to the user who posted it...

Code:
<vb:if condition="$bbuserinfo['userid'] == $post['userid']">
(will work in the postbit)


But you'd still need to make the extra field to hold the data and everything else needed to process it. The conditional is the easy part.
Thanks Joe. I was able to create the extra field, just couldn't figure out how to show it's contents only to the member who posted and admin instead of everyone who could see the post.

I will give you code a go. Thanks for your quick help. I appreciate it very much.

Kether

--------------- Added [DATE]1307976670[/DATE] at [TIME]1307976670[/TIME] ---------------

Quote:
Originally Posted by kether1 View Post
Thanks Joe. I was able to create the extra field, just couldn't figure out how to show it's contents only to the member who posted and admin instead of everyone who could see the post.

I will give you code a go. Thanks for your quick help. I appreciate it very much.

Kether

Well, I am still having trouble getting this to work. I guess I need a conditional to show a field only to the admin user group and the individual who posted the information.

So, I use the following code to identify a field, but need help with the conditional to make it only be seen by the admin group and the individual who posted the information:

<vb:if condition="$field['fieldid'] == 6">

Any suggestions? Thanks again.
Kether
Reply With Quote
  #223  
Old 06-13-2011, 06:17 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The important thing about the conditional I gave you is it only works in posts/the postbit.

You could show it to admins OR the user who's viewing his own post with:


Code:
<vb:if condition="($bbuserinfo['userid'] == $post['userid']) OR (is_member_of($bbuserinfo, 6))">
Where 6 is the usual usergroup for admins.

But the fact your mentioning fields makes me think this code isn't for the postbit.

If you're using custom profile fields you can mark them as private to limit who sees them.
Reply With Quote
  #224  
Old 06-13-2011, 06:29 PM
kether1 kether1 is offline
 
Join Date: Jun 2006
Posts: 232
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BirdOPrey5 View Post
The important thing about the conditional I gave you is it only works in posts/the postbit.

You could show it to admins OR the user who's viewing his own post with:


Code:
<vb:if condition="($bbuserinfo['userid'] == $post['userid']) OR (is_member_of($bbuserinfo, 6))">
Where 6 is the usual usergroup for admins.

But the fact your mentioning fields makes me think this code isn't for the postbit.

If you're using custom profile fields you can mark them as private to limit who sees them.

No actually, I am editing the SHOWENTRY template in vbadvanced dynamics. I have added custom fields and would like to specify who can see one or two specific private fields. Sorry I did not make that clear in the first place.

The bit of code I put in my previous 'merged' post:

<vb:if condition="$field['fieldid'] == 6">

Tells the forum to put the information in field 6 in that location in the SHOWENTRY. I want to wrap a conditional around it to only display the information in field '6' to the admin group and the person who actually posted the information in the first place.

I believe it should be fairly simple to wrap a conditional around this conditional, but so far I have not been able to figure it out.

Thanks for your response.

Kether
Reply With Quote
  #225  
Old 06-13-2011, 06:42 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kether1 View Post
No actually, I am editing the SHOWENTRY template in vbadvanced dynamics. I have added custom fields and would like to specify who can see one or two specific private fields. Sorry I did not make that clear in the first place.

The bit of code I put in my previous 'merged' post:

<vb:if condition="$field['fieldid'] == 6">

Tells the forum to put the information in field 6 in that location in the SHOWENTRY. I want to wrap a conditional around it to only display the information in field '6' to the admin group and the person who actually posted the information in the first place.

I believe it should be fairly simple to wrap a conditional around this conditional, but so far I have not been able to figure it out.

Thanks for your response.

Kether
Well this will limit it to administrators but I would have no way of knowing the conditional vbadvanced dynamics might use to know which user posted it- that would be a question better asked at their own forums- they'll know what's possible with their product.

Code:
<vb:if condition="$field['fieldid'] == 6 AND is_member_of($bbuserinfo, 6)">
The combined code, assuming you can find a conditional from vb advanced would be something like:

Code:
<vb:if condition="$field['fieldid'] == 6 AND (is_member_of($bbuserinfo, 6) OR OTHER_CONDITION_HERE)">
Reply With Quote
  #226  
Old 06-13-2011, 07:38 PM
Bisha's Avatar
Bisha Bisha is offline
 
Join Date: Mar 2006
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Why, this code is now working for me on postbit_legacy template:

Code:
         
           <vb:if condition="$onlinestatus==1">Online</vb:if>
           <vb:if condition="$onlinestatus==0">Offline</vb:if>
           <vb:if condition="$onlinestatus==2">Privat</vb:if>
I get only OFFLINE :S even the user is online.
Reply With Quote
  #227  
Old 06-13-2011, 07:51 PM
kether1 kether1 is offline
 
Join Date: Jun 2006
Posts: 232
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BirdOPrey5 View Post
Well this will limit it to administrators but I would have no way of knowing the conditional vbadvanced dynamics might use to know which user posted it- that would be a question better asked at their own forums- they'll know what's possible with their product.

Code:
<vb:if condition="$field['fieldid'] == 6 AND is_member_of($bbuserinfo, 6)">
The combined code, assuming you can find a conditional from vb advanced would be something like:

Code:
<vb:if condition="$field['fieldid'] == 6 AND (is_member_of($bbuserinfo, 6) OR OTHER_CONDITION_HERE)">
Thanks again. I have posted for help at vbadvanced, but no one has replied over there. I just replied to myself there with your suggestion so maybe that will encourage someone to offer up the missing bit of code. Still looking.

Much appreciative,
Kether
Reply With Quote
  #228  
Old 06-13-2011, 10:28 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Bisha View Post
Why, this code is now working for me on postbit_legacy template:

Code:
         
           <vb:if condition="$onlinestatus==1">Online</vb:if>
           <vb:if condition="$onlinestatus==0">Offline</vb:if>
           <vb:if condition="$onlinestatus==2">Privat</vb:if>
I get only OFFLINE :S even the user is online.
Try using $post['onlinestatus'] instead of $onlinestatus. Not sure it's the same data but I can see $onlinestatus is never used in the postbit template so if $post['onlinestatus'] doesn't work you'll need to make a plugin to register $onlinestatus in the postbit.
Reply With Quote
  #229  
Old 06-14-2011, 08:58 AM
Bisha's Avatar
Bisha Bisha is offline
 
Join Date: Mar 2006
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

$post['onlinestatus'] is not working to

Can you help me how to register a variable for template?

Or can I make something like, if POSTBIT A, else B??

Thank you!
Reply With Quote
  #230  
Old 06-14-2011, 11:05 AM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Unfortunately preregistering variables was never something I mastered, one of the big reasons I prefer VB 3.x over VB 4.x. I just try to avoid doing anything where I have to preregister.

This is the article that is supposed to help: https://vborg.vbsupport.ru/showthread.php?t=228078

I'm not sure what yo mean by POSTBIT A and B?
Reply With Quote
  #231  
Old 06-14-2011, 04:32 PM
Bisha's Avatar
Bisha Bisha is offline
 
Join Date: Mar 2006
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you!
Reply With Quote
Reply

Thread Tools

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 05:49 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.04756 seconds
  • Memory Usage 2,367KB
  • 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
  • (27)bbcode_code
  • (6)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