vBulletin Template Conditionals List

Discussion in 'vBulletin Discussions' started by Brandon, Feb 1, 2010.

Thread Status:
Not open for further replies.
  1. Brandon

    Brandon Regular Member

    Joined:
    Jun 1, 2009
    Messages:
    6,602
    Likes Received:
    1,706
    Location:
    Topeka, Kansas
    First Name:
    Brandon
    vBulletin is an excellent product that gives the admin amazing control over their vBulletin Forum directly from the templates themselves. You can use PHP if conditionals directly within the template system thanks to vBulletin.

    There are too many possible ways to use conditionals to be able to list every single way but we can tackle some of the most popular ones.

    I will first explain what the conditional is doing and then list the conditional below it.

    If Viewer is a Member
    --------------------------------------------------
    If you want to show a link only to registered members you would use this conditional.
    HTML:
    <if condition="$show['member']"></if>
    If Viewer is in the Following Usergroups Array. Enter the Usergroup Number(s) Seperated by a Comma
    --------------------------------------------------
    If you want to show an advertisement to viewers that are unregistered, registered members and awaiting email confirmation you would use the usergroup ids 1,2,3 within the array.
    HTML:
    <if condition="is_member_of($vbulletin->userinfo, 1, 2, 3)"></if>
    If This Script Is or Is Not XXX
    --------------------------------------------------
    If this script is index (as used in the example below) then it will show the code within the conditional. You can use it to show a piece of code only on Forumhome if you have to put it in a template that is global such as the header. To find out what the script is per page open up the php file that loads the page like for instance showthread.php and look for
    PHP:
    define('THIS_SCRIPT''showthread');
    and the showthread part is what you would use.
    HTML:
    <if condition="THIS_SCRIPT == 'index'"></if>
    and here you can show information on every page but the index page by using this conditional
    HTML:
    <if condition="THIS_SCRIPT != 'index'"></if>
    If this user equals or does not equal xxx
    --------------------------------------------------
    What this conditional will do is only show certain information if the person viewing the page has the same userid as defined within the conditional. So if you put userid 667 inside the conditional below and put a link inside the conditional tags only the user that has the userid 667 will see that link.
    HTML:
    <if condition="$bbuserinfo['userid'] == 667"></if>
    and it works the opposite way as well if you do not want information to show for 667 but you want it to show for everyone else you would use
    HTML:
    <if condition="$bbuserinfo['userid'] != 667"></if>
    Display Information To Guests Only
    --------------------------------------------------
    The following conditional will display information only to guests and no one else. This is helpful in displaying a welcome message that you only wish for guests to see.
    HTML:
    <if condition="$show['guest']"></if>
    Display Information On a Per Forum Basis
    --------------------------------------------------
    This conditional allows you to display information on a per forum basis. This can be helpful if you wish to display different advertisements depending on what forum that the user is in. You would simply replace X with the forum id that you wish the information to appear in.
    HTML:
    <if condition="$forum[forumid] == X"></if>
    and on the other hand you can use the ! to do the opposite and display the information in every forum but the id you list
    HTML:
    <if condition="$forum[forumid] != X"></if>
    or if you have multiple forums you wish to include something with you can use an array such as this
    HTML:
    <if condition="in_array($forum['forumid'], array(1,2,3,6))"></if>
    If Usergroup Is or Is Not X
    --------------------------------------------------
    If the user is a member of the x usergroup then show the code
    HTML:
    <if condition="$post['usergroupid'] == 6"></if>
    and then you can use the ! to tell it to not show it to the x usergroup but show it to everyone else.
    HTML:
    <if condition="$post['usergroupid'] != 6"></if>
    If Users Birthday is Less Than or Greater Than XXXX-XX-XX Do Something
    --------------------------------------------------
    Just to show the power of vBulletin here is a cool conditional that will show information based on the birthday of the user. The one below will show "Too Young" if they were born after 01-01-1980.
    HTML:
    <if condition="$bbuserinfo['birthday_search'] > '1980-01-01'">Too Young</if>
    and this one will show you "Too Young" if the user was born before 01-01-1980
    HTML:
    <if condition="$bbuserinfo['birthday_search'] < '1980-01-01'">Too Young</if>
    If Thread is or is not in X Forum Execute Code
    --------------------------------------------------
    For instance if you want a piece of code to appear within thread in a particular forum you can do so with this conditional.
    HTML:
    <if condition="$thread['forumid'] == X"></if>
    If you want to show the piece of code on every new reply on every thread but 1 forum you can use this which says if thread is in forum x do not show the code but show it for all the other threads out side of forum x.
    HTML:
    <if condition="$thread['forumid'] != X"></if>
    and of course you can define multiple forum ids with the array
    HTML:
    <if conditional="in_array($thread['forumid'], array(1,2,3,6))"></if>
    Is user moderator of any forum?
    --------------------------------------------------
    If the user is a moderator execute code.
    HTML:
    <if condition="can_moderate()"></if>
    Is user moderator of current forum?
    --------------------------------------------------
    If the user is a moderator of the current forum execute code
    HTML:
    <if condition="can_moderate($forum['forumid'])"></if>
    Is user moderator of x Forum?
    --------------------------------------------------
    If the user is a moderator of x forum execute code.
    HTML:
    <if condition="can_moderate($forum['x'])"></if>
    Note: can_moderate() may add queries to your page.

    Is user the thread starter?
    --------------------------------------------------
    Is the user the thread creator? If so execute code.
    HTML:
    <if condition="$threadinfo['postuserid'] == $bbuserinfo['userid']"></if>
    Is user the thread starter?
    --------------------------------------------------
    If the thread is closed execute code.
    HTML:
    <if condition="!$show['closethread']"></if>
    Place Information After First Post
    --------------------------------------------------
    Useful for adding a advertisement or other information after the first post on every page.
    HTML:
    <if condition="!$GLOBALS['FIRSTPOSTID']"></if>
    Place Information After x Post On Every Page
    --------------------------------------------------
    This will add your code directly after the post number you define on each page. If you put 2 in place of x the code will appear on every page after the second post.
    HTML:
    <if condition="$post['postcount'] % $vboptions['maxposts'] == x"></if>
    Using If Else in Templates
    --------------------------------------------------
    You can also use If Else conditionals within your templates. The below shows you how to correctly do this.
    HTML:
    <if condition="$show['guest']">
        Show Guest This Message
    <else />
        Show Everyone but guests this message
    </if>
    
    Contributors:
    - Chroder
    - SirAdrian

    Other Useful Sources:
    - vBulletin Manual - Template Conditionals
    - vBulletin Community Forum - View Single Post - How to do 3 if conditionials?
     
Thread Status:
Not open for further replies.

Share This Page