vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Template conditional (https://vborg.vbsupport.ru/showthread.php?t=101693)

tommykjensen 11-27-2005 01:47 PM

Template conditional
 
I am trying to create a small plugin that add the possiblity to add a simple global annmouncement in the header of all pages.

I got everything working except for the conditional in the template.

Here is the plugin code
Code:

<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="simpleglobalannouncement" title="Global announcement" description="Display simple global announcement in the header." version="1.0.0" active="1">
 <templates>
                <template name="simple_global_announcement" templatetype="template" date="1124952989" username="Tommy Jensen" version="1.0"><![CDATA[

<if condition="THIS_SCRIPT != 'register' AND THIS_SCRIPT != 'login'">

<if condition="$vboptions[enableglobalannouncement]">
        <!-- global announcement -->

        <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
        <thead>
        <tr>
                <td class="alt1">
                        <phrase 1="$bbuserinfo[username]" 2="$vboptions[bbtitle]">$vboptions[globalannouncementtext]</phrase>
                </td>
        </tr>
        </thead>
        </table>
        <br />
        <!-- / global announcement -->
</if>

        ]]></template>
        </templates>
        <plugins>
                <plugin active="1">
                        <title><![CDATA[Global announcement [Alteration]]]></title>
                        <hookname>parse_templates</hookname>
                        <phpcode><![CDATA[
                                eval('$simple_global_announcement = "' . fetch_template('simple_global_announcement') . '";');
                        ]]></phpcode>
                </plugin>
                <plugin active="1">
                        <title><![CDATA[Global announcement [Template Cache]]]></title>
                        <hookname>cache_templates</hookname>
                        <phpcode><![CDATA[
                                $globaltemplates[] = 'simple_global_announcement';
                        ]]></phpcode>
                </plugin>
        </plugins>
        <phrases>
                <phrasetype name="GLOBAL" fieldname="global">
                </phrasetype>
                <phrasetype name="vBulletin Settings" fieldname="vbsettings">
                        <phrase name="settinggroup_simpleglobalannouncement"><![CDATA[Simple Global announcement]]></phrase>
                        <phrase name="setting_enableglobalannouncement_title"><![CDATA[Enable Simple Global announcement]]></phrase>
                        <phrase name="setting_enableglobalannouncement_desc"><![CDATA[Enable Simple Global announcement]]></phrase>
                        <phrase name="setting_globalannouncementtext_title"><![CDATA[Announcement]]></phrase>
                        <phrase name="setting_globalannouncementtext_desc"><![CDATA[Text for announcement]]></phrase>
                </phrasetype>
        </phrases>
       
        <options>
                <settinggroup name="simpleglobalannouncement" displayorder="2000">
                        <setting varname="enableglobalannouncement" displayorder="10">
                                <datatype>number</datatype>
                                <optioncode><![CDATA[<span class=\"smallfont\" style=\"white-space:nowrap\">
        <label for=\"qr0\"><input type=\"radio\" name=\"setting[$settingid]\" id=\"qr0\" value=\"0\" tabindex=\"1\"" . ($setting['value'] == 0 ? ' checked="checked"' : '') . " />$vbphrase[no]</label><br />
        <label for=\"qr1\"><input type=\"radio\" name=\"setting[$settingid]\" id=\"qr1\" value=\"1\" tabindex=\"1\"" . ($setting['value'] == 1 ? ' checked="checked"' : '') . " />$vbphrase[yes]</label><br />
</span>]]></optioncode>
                                <defaultvalue>0</defaultvalue>
                        </setting>

                        <setting varname="globalannouncementtext" displayorder="20">
                                <datatype>free</datatype>
                                <optioncode>textarea</optioncode>
                        </setting>

                </settinggroup>
        </options>
       
       
</product>

I have also tried

<if condition="$vboptions[enableglobalannouncement]==1">

but no matter what the announcement is diplayed always.

How should the conditional be ?

------------------------------

I figured it out.

I removed the conditional from the template and changed the plugin code to

Code:

if ($vbulletin->options['enableglobalannouncement'])
                        {
                                eval('$simple_global_announcement = "' . fetch_template('simple_global_announcement') . '";');
                        }


noppid 11-27-2005 03:46 PM

In your first example, you didn't close the first <if> it seems.

Code:

<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="simpleglobalannouncement" title="Global announcement" description="Display simple global announcement in the header." version="1.0.0" active="1">
 <templates>
                <template name="simple_global_announcement" templatetype="template" date="1124952989" username="Tommy Jensen" version="1.0"><![CDATA[

<if condition="THIS_SCRIPT != 'register' AND THIS_SCRIPT != 'login'">

<if condition="$vboptions[enableglobalannouncement]">
        <!-- global announcement -->

        <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
        <thead>
        <tr>
                <td class="alt1">
                        <phrase 1="$bbuserinfo[username]" 2="$vboptions[bbtitle]">$vboptions[globalannouncementtext]</phrase>
                </td>
        </tr>
        </thead>
        </table>
        <br />
        <!-- / global announcement -->
</if>
</if> <!-- Close First <if> -->
        ]]></template>
        </templates>
        <plugins>
                <plugin active="1">
                        <title><![CDATA[Global announcement [Alteration]]]></title>
                        <hookname>parse_templates</hookname>
                        <phpcode><![CDATA[
                                eval('$simple_global_announcement = "' . fetch_template('simple_global_announcement') . '";');
                        ]]></phpcode>
                </plugin>
                <plugin active="1">
                        <title><![CDATA[Global announcement [Template Cache]]]></title>
                        <hookname>cache_templates</hookname>
                        <phpcode><![CDATA[
                                $globaltemplates[] = 'simple_global_announcement';
                        ]]></phpcode>
                </plugin>
        </plugins>
        <phrases>
                <phrasetype name="GLOBAL" fieldname="global">
                </phrasetype>
                <phrasetype name="vBulletin Settings" fieldname="vbsettings">
                        <phrase name="settinggroup_simpleglobalannouncement"><![CDATA[Simple Global announcement]]></phrase>
                        <phrase name="setting_enableglobalannouncement_title"><![CDATA[Enable Simple Global announcement]]></phrase>
                        <phrase name="setting_enableglobalannouncement_desc"><![CDATA[Enable Simple Global announcement]]></phrase>
                        <phrase name="setting_globalannouncementtext_title"><![CDATA[Announcement]]></phrase>
                        <phrase name="setting_globalannouncementtext_desc"><![CDATA[Text for announcement]]></phrase>
                </phrasetype>
        </phrases>
       
        <options>
                <settinggroup name="simpleglobalannouncement" displayorder="2000">
                        <setting varname="enableglobalannouncement" displayorder="10">
                                <datatype>number</datatype>
                                <optioncode><![CDATA[<span class=\"smallfont\" style=\"white-space:nowrap\">
        <label for=\"qr0\"><input type=\"radio\" name=\"setting[$settingid]\" id=\"qr0\" value=\"0\" tabindex=\"1\"" . ($setting['value'] == 0 ? ' checked="checked"' : '') . " />$vbphrase[no]</label><br />
        <label for=\"qr1\"><input type=\"radio\" name=\"setting[$settingid]\" id=\"qr1\" value=\"1\" tabindex=\"1\"" . ($setting['value'] == 1 ? ' checked="checked"' : '') . " />$vbphrase[yes]</label><br />
</span>]]></optioncode>
                                <defaultvalue>0</defaultvalue>
                        </setting>

                        <setting varname="globalannouncementtext" displayorder="20">
                                <datatype>free</datatype>
                                <optioncode>textarea</optioncode>
                        </setting>

                </settinggroup>
        </options>
       
       
</product>


merk 11-27-2005 08:56 PM

You should also try to use {$vbulletin->options['optionname']} instead of $vboptions


All times are GMT. The time now is 09:39 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01087 seconds
  • Memory Usage 1,757KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete