History: Template Tricks
Source of version: 13
- «
- »
Copy to clipboard
Below, we will document some little template ((tricks)). Typically show content depending on something. Can be done directly in templates/*.tpl files or in Admin -> Look & Feel -> {maketoc} !!Adding a print button only if current page is a wiki page {CODE()} {if $page neq ''} <a title="{tr}Print{/tr}" href="tiki-print.php?page={$page|escape:"url"}"> <img src="pics/icons/printer.png"/>{tr}Print{/tr} </a> {/if} {CODE} !!Adding a "Hello John" indication {CODE(ishtml="1")} {if $user} Hello {$user} {/if} {CODE} !!Adding content only for a group !!! In content *((doc:PluginGroup)) !!! In a template {CODE()} {if $group eq "Admins"} You are a member of the group {$group} {/if} {CODE} !!Adding content only for a permission !!Adding content only for a preference {CODE()} {if $prefs.feature_wiki eq "y"} The Wiki feature is on {/if} {CODE} !!Display content conditional to current language {CODE()} {if $prefs.language eq "fr"} <a href="accueil"> {elseif $prefs.language eq "es"} <a href="inicio"> {else} <a href="tiki-index.php"> {/if} {CODE} To make users switch language, you can add ((doc:Module switch_lang)) or hard code some links such as: {CODE()} {if $prefs.language eq "fr"} <a href="tiki-switch_lang.php?language=fr">-English-</a> -Français- <a href="tiki-switch_lang.php?language=es">-Español-</a> {elseif $prefs.language eq "es"} <a href="tiki-switch_lang.php?language=en">-English-</a> <a href="tiki-switch_lang.php?language=fr">-Français-</a> -Español- {else} -English- <a href="tiki-switch_lang.php?language=fr">-Français-</a> <a href="tiki-switch_lang.php?language=es">-Español-</a> {/if} {CODE} !! How to know where something is in a template? Admin -> Look & Feel Add HTML comment at start and end of each Smarty template (TPL) New in 3.0, turn on "log_tpl" to add comments in templates (if you click view source, you can see which tpl was used to create it. Make sure to turn off once you go into production, or else your email notifications will also have a note! !! How do I change the email messages? Look in: templates/mail/ !! How to show content just when in certain pages So if you want to modify tiki-searchresults.php, you find templates/tiki-searchresults.tpl !!! For the container templates/tiki.tpl is the master container. Say you want to affect the master container based on the current page, you can do {CODE()} {if $mid eq "tiki-searchresults.tpl"} bla bla {/if} {CODE} !! Debug Put in a template or in Site Identity to have a popup with information on all the variables, at each page refresh. {CODE()} {debug} {CODE} To avoid driving your users mad :-) {CODE()} {if $user eq 'admin'} {debug} {/if} {CODE} !! Categories used in templates Admin -> Category -> Categories used in templates (TPL) (categories_used_in_tpl) How to use? Something like http://doc.tikiwiki.org/Category+Admin#Using_the_current_object_categories_in_a_tpl http://dev.tikiwiki.org/Hello+World#To_do_something_specific_in_a_template_ex.:_tiki.tpl_conditional_to_the_current_item_being_in_a_category._Ex.:_different_header_picture. !!Section {CODE()} {if $section eq "blogs"} text shown just when in one of the blog pages {/if} {CODE} !! Perspective The current perspective ID is not available to the templates. However, you can simply use the value of something that was overriden in this template. This could be in one of the Site identity fields. {CODE(caption="To change the menu depending on the Site title")}{if $prefs.sitetitle eq "Workspace Sales"} {phplayers id=45 type=horiz css=y} {else} {phplayers id=47 type=horiz css=y} {/if} {CODE} !! Variables !!! Dynamic variables ((doc:Dynamic variables)) !!! Use current page as content http://doc.tikiwiki.org/Advanced+Wiki+Syntax+usage+examples#How_to_display_URL_param_in_a_page_or_the_page_name_or_the_user_name !Related ((dev:Templates Best Practices)) ((doc:Advanced Wiki Syntax usage examples))