Loading...
 

History: Template Tricks

Preview of version: 73

About

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.

Custom CSS and JS

Starting in Tiki5, in Admin > Look & Feel (tiki-admin.php?page=look) > Miscellaneous, there is a Custom Code section to add custom CSS and JavaScript.

You can create styles/custom.js or styles/yourtheme/custom.js and that should get included automatically. You may need to empty your Tiki cache.

Change size of subtitle

custom CSS
#sitesubtitle { font-size: 24px; }



Help - I broke my theme

Apparently, a problem with my custom theme is preventing me from accessing my site normally.

Reset the theme "manually": If you can't access the admin pages to set your site's theme back to one that is known to work, you can reset the theme from the back end, so to speak.

Database method: Use phpmyadmin on your server to access your Tiki database. In the table "tiki_preferences", find the row for "site_style". Edit this row by replacing the custom theme name with a standard theme, such as thenews.css.

FTP method (easier): Using your FTP client, go to the styles directory of your Tiki installation and rename the theme currently set as the site theme, such as by changing its ".css" file extension to ".txt". Tiki will revert to the default. Log in using the default theme and fix what is wrong. Also clear the site caches.

When trying out a new theme, it is much better to use the "switch theme" module to select it. Don't make a new and untried theme the site theme without first trying it out from the switch-theme module.

I am stuck in a theme

To change themes, you can point your browser to a non faulty theme:

  1. Point your browser to: tiki-switch_theme.php?theme=fivealive.css
  2. Then, also check to Clear the cache with tiki-admin_system.php?do=all

If anything doesn't change

For some unknown reason the theme doesnt change. Look directly in the database in 'tiki_preferences' look at:

UPDATE `tiki_preferences` SET `value` = 'fivealive.css' WHERE `tiki_preferences`.`name` = 'style';

Howto

Adding a print button only if current page is a wiki page

{if $page neq ''} <a title="{tr}Print{/tr}" href="tiki-print.php?page={$page|escape:"url"}"> <img src="https://themes.tiki.org/show_image.php?id=54"/>{tr}Print{/tr} </a> {/if}

Adding some HTML (ex.: a logo) to the print version of wiki pages

Admin - Look and Feel - Customization - HTML
{if $SCRIPT_NAME eq '/tiki-print.php'} <img src="http://themes.tiki.org/show_image.php?id=53" alt="Site Logo" style="border: none"> {/if}

...page...

Adding a "Hello John" indication

{if $user} Hello {$user} {/if}

Adding content only for a group

In content

In a template

{if $group eq "Admins"} You are a member of the group {$group} {/if}

Adding content only for a permission

{if $tiki_p_admin eq 'y'} You have full admin rights {/if}

Adding content only for a preference

{if $prefs.feature_wiki eq "y"} The Wiki feature is on {/if}

Adding content only for a category

{if isset($objectCategoryIds) and in_array(257, $objectCategoryIds)} show this {/if}

Display content conditional to current language

{if $prefs.language eq "fr"} <a href="accueil"> {elseif $prefs.language eq "es"} <a href="inicio"> {else} <a href="tiki-index.php"> {/if}{tr}Home{/tr}</a>


This is an Smarty block to display only if language matches.
It's one quick hack like PluginLang, but to use in modules and templates.

Example:
{translation lang="en"}Hello{/translation}
{translation lang="pt-br"}Olá{/translation}

If the current language is en, Hello will be displayed. If it is pt-br, Olá.

To make users switch language, you can add Module switch_lang or hard code some links such as:

{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}
...page...

How to know where something is in a template?

Admin > Look & Feel > Add HTML comment at start and end of each Smarty template (TPL). Then, clear your template cache (tiki-admin_system.php?do=templates_c)

The system name for this feature is "log_tpl". Then, when you "view source" with your browser, you will see which template 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/features. Ex.: tiki-searchresults.php

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

{if $mid eq "tiki-searchresults.tpl"} bla bla {/if}

Add a Banner for each Blog, like a personal logo header

add the following code in Site Ads and Banners Content:in Site Ads and Banners section in Administration menu. http://www.yoursite.com/tiki-admin.php?page=ads
this exemple shown a banner set in zone 'ZoneName' if the blogid #2 is active.

{if $blogId eq '2'} {banner zone=ZoneName} {/if}


How to force switch Theme for Anonymous

You could use the Group Theme feature but it seems broken currently in Tiki 5 so here's a workaround using Javascript code in Admin > Look & Feel > General Layout > Custom HTML <head> Content ("Registered users can switch themes" - preference name change_theme - must be enabled):

{if !$user and $prefs.style ne "jqui.css"}<script type="text/javascript"> <!-- window.location = "tiki-switch_theme.php?theme=jqui.css" //--> </script>{/if}

Add wiki syntax in Custom code text areas of Look & Feel

{wiki}{literal} ::My __wiki__ code:: {/literal}{/wiki}


This works until Tiki6, because starting in Tiki7, all the zones are now drag & drop modules

Add javascript tracking code

See Piwik example.

Add your own PHP code

You can add PHP to Smarty using the php smarty tag, but for this to work, you need to deactivate the Smarty Security (which is on by default). A safer and better way is to Create your own Smarty plugin.

Add Post-It Notes

See Custom Code HowTo - Post-It Notes

Add a top-level menu

Until Tiki6

tiki-admin.php?page=look -> General Layout options -> Secondary site menu custom code

replace 47 with your actual menu ID
{menu id=47 css=y type=horiz}

Tiki7 and above

This is easier now, and you can use Module menu, which you can drag & drop (and double click to edit parameters) at tiki-admin_modules.php

You need to set the params to the module such as nobox=y, etc...

Timed content

Dynamic content

show the content without columns

point your browser like this example: tiki-index_p.php?page=i18n

Or use PluginAppFrame

Add a wiki page in module

How to Add Custom jQuery Code Using the Custom Code Textareas

Debug

Put in a template or in Look & Feel custom code to have a popup with information on all the variables, at each page refresh.

{debug}


To avoid driving your users mad :-)

{if $user eq 'admin'} {debug} {/if}
...page...

Categories used in templates

Admin -> Category -> Categories used in templates (TPL)
(categories_used_in_tpl)

How to use? Something like
http://doc.tiki.org/Category+Admin#Using_the_current_object_categories_in_a_tpl
another

To determine if an object is categorized, use:

{if !empty($objectCategoryIds)} NOT categorized {else} AM categorized {/if}

Show or hide modules by category

This is a new native feature in Tiki8. Just admin any module and indicate when to hide/show as you would edit any module param...

Section

{if $section eq "blogs"} text shown just when in one of the blog pages {/if}

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.

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}

Variables

Dynamic variables

Dynamic variables

Use current page name as content

How to display URL param in a page or the page name or the user name

Alternate view of wiki content

Raw

http://themes.tiki.org/tiki-index_raw.php?page=Template+Tricks

Middle only, useful to include in an iframe

http://themes.tiki.org/tiki-index_p.php?page=Template+Tricks

Fullscreen

works for all features, not just wiki pages
http://themes.tiki.org/tiki-index.php?page=Template+Tricks&fullscreen=y

related:
doc:Fullscreen
dev:Fullscreen

Slideshow

Mobile

Clearing cache

Improve communication for planned maintenance


If your site changes hosts, you may have time to plan a nice message on the maintenance page of the old host. The maintenance mode only permits a short sentence, as the maintenance page should work even if the database is unavailable.

This is the part of tiki-error_simple.php you are looking for.

Section of tiki-error_simple.php
echo '</p> <form name="loginbox" action="tiki-login.php?page=tikiIndex" method="post">

Note that all is into a <pre> tag, so don't forget the line breaks. Also, handle single quotes with care.
new example message
echo '</p> The site xxxxxx.xxx is being transferred between servers between 19:30 and ca. 21:00 GMT today, 29 December 2011. Access during this time may be interrupted for short periods. No editing of pages and no posting will be possible during this time. While the new location is being propagated over the Internet (can take hours) you can <a href="http://new-xxxx.xxx">reach the site here.</a> <form name="loginbox" action="tiki-login.php?page=tikiIndex" method="post">

Related

Templates Best Practices
Advanced Wiki Syntax usage examples

History

Advanced
Information Version
Tue 16 of Mar, 2021 16:41 GMT marclaporte 88
Sat 14 of Nov, 2020 11:27 GMT jonnybradley more colours 87
Sat 14 of Nov, 2020 11:25 GMT jonnybradley adding code block colours 86
Sat 14 of Nov, 2020 11:22 GMT jonnybradley code Plugin modified by editor. 85
Sat 14 of Nov, 2020 11:21 GMT jonnybradley $group is only the default group (sometimes) but the in_group modifier checks all the groups a user might be in 84
Wed 04 of Sep, 2019 14:21 GMT marclaporte Remove ...page... that makes the page harder to use 83
Wed 04 of Sep, 2019 14:19 GMT marclaporte AutoTOC 82
Thu 03 of Nov, 2016 09:10 GMT xavi 81
Fri 26 of Jun, 2015 11:55 GMT koth 80
Tue 12 of May, 2015 21:07 GMT marclaporte 79
Tue 22 of Apr, 2014 16:37 GMT marclaporte Linking to existing docs 78
Tue 22 of Apr, 2014 16:15 GMT marclaporte Code Plugin modified by editor. 77
Tue 22 of Apr, 2014 16:07 GMT marclaporte 76
Wed 19 of Mar, 2014 01:30 GMT marclaporte How do I know which template to modify to affect the look & feel of a specific URL? 75
Wed 19 of Mar, 2014 01:23 GMT marclaporte Cosmetic 74
Tue 02 of Apr, 2013 05:41 GMT Torsten 73
Tue 09 of Oct, 2012 09:57 GMT kstingel updated image path from 'pics/...' to 'img/...' 72
Sun 29 of Jul, 2012 16:48 GMT Torsten deleted the "," and "!" from a headline (help - I broke my theme 71
Mon 28 of May, 2012 23:42 GMT marclaporte 70
Mon 28 of May, 2012 22:13 GMT marclaporte 69
Thu 09 of Feb, 2012 18:51 GMT marclaporte 68
Thu 09 of Feb, 2012 18:09 GMT marclaporte 67
Sat 04 of Feb, 2012 03:42 GMT marclaporte Code Plugin modified by editor. 66
Sat 04 of Feb, 2012 03:40 GMT marclaporte 65
Sat 04 of Feb, 2012 03:09 GMT marclaporte 64
Sat 04 of Feb, 2012 03:05 GMT marclaporte utf-8 bad conversion 63
Tue 31 of Jan, 2012 20:49 GMT Jyhem 62
Tue 31 of Jan, 2012 20:48 GMT Jyhem Code Plugin modified by editor. 61
Tue 31 of Jan, 2012 20:47 GMT Jyhem 60
Wed 09 of Nov, 2011 19:30 GMT marclaporte 59
Wed 09 of Nov, 2011 19:25 GMT marclaporte From a discussion on the mailing list (should work) 58
Thu 13 of Oct, 2011 13:02 GMT marclaporte 57
Sat 24 of Sep, 2011 17:58 GMT marclaporte 56
Sat 24 of Sep, 2011 17:54 GMT marclaporte 55
Sat 24 of Sep, 2011 17:50 GMT marclaporte 54
Tue 14 of Jun, 2011 01:48 GMT marclaporte 53
Tue 14 of Jun, 2011 01:22 GMT tinomartinez 52
Mon 13 of Jun, 2011 11:21 GMT marclaporte 51
Wed 27 of Apr, 2011 19:25 GMT marclaporte not working for some reason 50
Thu 24 of Feb, 2011 18:45 GMT marclaporte 49
Tue 11 of Jan, 2011 19:25 GMT marclaporte Thanks luci for documenting 48
Fri 05 of Nov, 2010 03:06 GMT marclaporte 47
Tue 02 of Nov, 2010 03:09 GMT marclaporte 46
Tue 02 of Nov, 2010 03:04 GMT marclaporte oups 45
Thu 28 of Oct, 2010 20:32 GMT marclaporte 44
Mon 20 of Sep, 2010 06:44 GMT marclaporte For Gaston: http://tiki.org/tiki-view_forum_thread.php?forumId=4&comments_parentId=38602 43
Sat 18 of Sep, 2010 06:28 GMT chibaguy Removed some ...page... tags - clicking 22 times to see page content isn't good usability IMHO. 42
Wed 15 of Sep, 2010 16:09 GMT ricks99 41
Thu 02 of Sep, 2010 02:09 GMT chibaguy tikiwiki to tiki in urls. 40
Sun 15 of Aug, 2010 13:02 GMT luci 39
  • «
  • 1 (current)
  • 2

Switch Theme

Layout

Latest Changes

No records to display ...more

Subscribe to Tiki Newsletters!

Delivered fresh to your email inbox!
Newsletter subscribe icon
Don't miss major announcements and other big news!
Contribute to Tiki

Site Config