Loading...
 

PluginList format control block


The FORMAT control block is used to create individually formatted objects that can then be used in any of the individual OUTPUT methods.

Available filters

Name Description Boolean Sample Tiki Version
default Display a default value or a default file when no value is available no "empty", "1140" (fileId) -
format format the displayed value to something different that the db value (human readable) no "trackerrender", "date", "objectlink", etc. (see format parameters here) -
editable Make the field editable so the value can be changed from the results display. Inline editing (found in admin control panels => trackers) must be enable. Must be used in conjunction with the trackerrender format (see above) and may require mode="raw" when using it with the table output template} editable="inline" -


Note that in some cases the field that will be displayed has its own behavior and it can clash with the format you selected.
IE: A tracker field that is a "title" is pre-formatted as a link. If you set the format as "objectlink" (or you set the display inside a link) the display will end broken as Tiki will try to display a link inside a link.

For the default parameter, it's important to remember that the tracker field "Files" works a bit differently than the others with this parameter. The tracker field Files expect an Id from the File Gallery. When most of the other fields type will display the text of the default parameters the default for "Files" must be an existing file in a gallery. The file can be an "anonymous" portrait file or a plain white image or an image with only the text "Not Available", etc. Whatever you feel right for your usage.

Basic example

In most of the examples shown in PluginList output control block and PluginList advanced output control block you will see a FORMAT control block have been used. E.g. in the example shown for Table output as below, two FORMAT control blocks are used:

Sample using the default table formatting
Copy to clipboard
{LIST()} {filter type="trackeritem"} {filter content="water"} {OUTPUT(template="table")} {column field="title_link" sort="title" label="Title" mode="raw"} {column field="description" label="Description"} {column field="event_date" sort="tracker_field_18" label="Event Date"} {OUTPUT} {FORMAT(name="title_link")}{display name="title" format="objectlink"}{FORMAT} {FORMAT(name="event_date")}{display name="tracker_field_18" format="date"}{FORMAT} {LIST}


The first FORMAT control block defines an object with the name title_link that is displayed in a specific way - this object reference is then used in the column control block in the body of the table OUTPUT. Similarly the second FORMAT control block defines the event_date object which is also used in a column control block.

A similar use of the FORMAT control block allows the normal set of Smarty variables, eg {user} etc, to be made available in Smarty templates - for example:

Format example to reference a normal smarty variable
Copy to clipboard
{FORMAT(name="theuser")} { {user} } {FORMAT}
 Note
The double brackets ( {{}} ) around user should have no spaces between them. Spaces are used here only to keep the user variable from being interpreted.

This creates a reference object theuser with the userId of the current user which can then be invoked in a server stored smarty template using the variable {$row.theuser}.

Examples of the use of the FORMAT control block (format and default value)

Copy to clipboard
{LIST()} {filter field="tracker_id" content="1"} {filter field="tracker_status" content="o"} {OUTPUT()} {DIV(class="h3")}{display name="name"}{DIV} {display name="photo"}%%% {display name="email"} {OUTPUT} {FORMAT(name="name")}{display name="tracker_field_userName"}{FORMAT} {FORMAT(name="photo")}{display name="tracker_field_userPhoto" format="trackerrender" default="1140"}{FORMAT} {FORMAT(name="location")}{display name="tracker_field_userLocation" format="trackerrender" default="Unknown"}{FORMAT} {LIST}


Default parameter applied on the "photo" field will display a default generic image if not file found.
Default parameter applied on the "location" field will display the text "Unknown" if the field is empty.

Example with comments


You might want to display all comments, and this script will retrieve them:

Wiki Output Sample
Copy to clipboard
{LIST(cache="n")} {filter type="comment"} {pagination max="10"} {OUTPUT( template="table")} {column field="title"} {column field="comment_content"} {column field="object_link" mode="raw"} {column field="date"} {OUTPUT} {FORMAT( name="object_link")} {display name="object_id" format="objectlink"} {FORMAT} {sort mode="date_desc"} {LIST}

The FORMAT control block defines an object with the name object_link which is displayed in such a way that it is object_id which is displayed and formatted as objectlink; which makes the id clickable. This object reference is then used in the column control block in the body of the OUTPUT table.
This gives us the following result:

Title Comment Thread Id Date
Here is a comment about targeted comments notePermits targeted comments Here is a test to demonstrate inline comments. 852 2023-04-28T17:17:20+00:00
feature_userPreferences must be enabled In order to have this page working, it must be enabled the Community > User features > feature_userPreferences "User Preferences Screen". If it is disabled, at the moment the page throws an error "ERR_EMPTY_RESPONSE". 851 2022-12-19T13:58:10+00:00
Setting' → Mail Notifications? I found this in Settings → Mail Notifications 850 2021-12-13T13:50:20+00:00
Slightly different The procedure explained here would not precisely work this way. Also, I would highly advise to shut down the old Tiki into Maintenance Mode first, so that no "last minute changes" would get lost when the DB gets transferred. After you transferred the files and the DB, you will see a seemingly (!) fully operational Tiki under the new URL, but beware, this is because the new Tiki will reach into the old DB, because it has server/user name and password to do so, and unless your ISP provides some protection against cross-accessing (or you switched ISPs) you get the illusion (!) that it works. It does, but it will continue to use the old DB. The transfer of a working Tiki means pointing to /tiki will not bring up the installation, because it gets disabled when Tiki goes into operational mode! So either you have to re-activate the install script (which gets deactivated for a VERY good reason: Security!) or you have to enter the new DB access data in the "working" Tiki... 849 2021-09-25T09:07:31+00:00
How to activate Roles? In order to get the Roles fields in the group creation, I had to activate features Categories and Templated Groups. Is that how it is meant to be? Nothing seems to be called Roles. 848 2020-10-08T15:40:04+00:00
This is exactly what I needed Very helpful info! Thank you! 847 2020-07-10T05:08:15+00:00
Most popular Web Monetization with Coil is not popular as yet. It's a new way to monetize content and it does not work in the traditional way of monetizing the contents with the ads. 846 2020-06-13T23:49:02+00:00
Any wiki syntax whatever you want in the content of the slide. 845 2020-04-03T08:39:57+00:00
body of plugin What is the syntax of the body? 844 2020-03-31T13:21:04+00:00
Missing info I had no clue (honestly) what XRP is (probably a currency for the context?; but remember that readers of this page are from anywhere in the world, so that we/they might not know; you could add some link the first time you use this word/acronym/whatever. And in most documentation pages, we refer to the Tiki version where this feature will show up (if you committed to svn-trunk or git-master, that feature will be shown in teh next Tiki version, etc. E.g., if you committed to git master now, I understand that the feature will be available in Tiki22 (if no plans of backporting are done, etc) Does it make sense? But above all, thanks for your work (dev, doc, ...): it's really appreciated! 843 2020-03-24T18:01:29+00:00


We see that this only gives us the information about the object (the comment in this case), but what if I want to have more information before visiting the comment?

One way to do this is to add a column which indicates the item being commented on. It is typically a wiki page or tracker item which is clickable and takes me there.

So let's make some changes and see what we have:

Wiki Output Sample
Copy to clipboard
{LIST(cache="n")} {filter type="comment"} {pagination max="10"} {OUTPUT( template="table")} {column field="contributors"} {column field="title"} {column field="comment_content"} {column field="parent_object_title" mode="raw"} {column field="object_link" mode="raw"} {column field="date"} {OUTPUT} {FORMAT( name="object_link")} {display name="object_id" format="objectlink"} {FORMAT} {FORMAT( name="parent_object_title")} {display name="parent_object_type"}: {display name="wikiplugin_objectlink" format="wikiplugin" type="parent_object_type" id="parent_object_id"} {FORMAT} {sort mode="date_desc"} {LIST}

Here we have just added a new column whose label is "Parent Object".
The new FORMAT control block formats the parent_object_title field, which is the title of the comment's parent object, then with {display} tag we first display the name of the parent object, which is stored in the parent_object_type field. For example, if the parent object is a trackeritem, it will display "trackeritem:", and finally we display the link to the parent object, using the wikiplugin_objectlink plugin. This plugin allows you to create a link to a Tiki object according to its type and its identifier. Here you specify the link format as "wikiplugin", the object type as parent_object_type, and the object id as parent_object_id. For example, if the parent object is a trackeritem with id 1, this will generate a link to "tiki-view_tracker_item.php?itemId=1".
So you get a field that displays the name and link of the comment's parent object. For example, if the comment is linked to an item called "This is my first item", you display "trackeritem: This is my first item".
This gives us the following result:

Title Comment Parent Object Thread Id Date
Here is a comment about targeted comments notePermits targeted comments Here is a test to demonstrate inline comments. wiki page: Inline comments 852 2023-04-28T17:17:20+00:00
feature_userPreferences must be enabled In order to have this page working, it must be enabled the Community > User features > feature_userPreferences "User Preferences Screen". If it is disabled, at the moment the page throws an error "ERR_EMPTY_RESPONSE". wiki page: User Preferences 851 2022-12-19T13:58:10+00:00
Setting' → Mail Notifications? I found this in Settings → Mail Notifications wiki page: Mail notifications 850 2021-12-13T13:50:20+00:00
Slightly different The procedure explained here would not precisely work this way. Also, I would highly advise to shut down the old Tiki into Maintenance Mode first, so that no "last minute changes" would get lost when the DB gets transferred. After you transferred the files and the DB, you will see a seemingly (!) fully operational Tiki under the new URL, but beware, this is because the new Tiki will reach into the old DB, because it has server/user name and password to do so, and unless your ISP provides some protection against cross-accessing (or you switched ISPs) you get the illusion (!) that it works. It does, but it will continue to use the old DB. The transfer of a working Tiki means pointing to /tiki will not bring up the installation, because it gets disabled when Tiki goes into operational mode! So either you have to re-activate the install script (which gets deactivated for a VERY good reason: Security!) or you have to enter the new DB access data in the "working" Tiki... wiki page: Move Tiki to a new server 849 2021-09-25T09:07:31+00:00
How to activate Roles? In order to get the Roles fields in the group creation, I had to activate features Categories and Templated Groups. Is that how it is meant to be? Nothing seems to be called Roles. wiki page: Roles 848 2020-10-08T15:40:04+00:00
This is exactly what I needed Very helpful info! Thank you! wiki page: Pretty Tracker 847 2020-07-10T05:08:15+00:00
Most popular Web Monetization with Coil is not popular as yet. It's a new way to monetize content and it does not work in the traditional way of monetizing the contents with the ads. wiki page: Web Monetization 846 2020-06-13T23:49:02+00:00
Any wiki syntax whatever you want in the content of the slide. wiki page: PluginSlideshowSlide 845 2020-04-03T08:39:57+00:00
body of plugin What is the syntax of the body? wiki page: PluginSlideshowSlide 844 2020-03-31T13:21:04+00:00
Missing info I had no clue (honestly) what XRP is (probably a currency for the context?; but remember that readers of this page are from anywhere in the world, so that we/they might not know; you could add some link the first time you use this word/acronym/whatever. And in most documentation pages, we refer to the Tiki version where this feature will show up (if you committed to svn-trunk or git-master, that feature will be shown in teh next Tiki version, etc. E.g., if you committed to git master now, I understand that the feature will be available in Tiki22 (if no plans of backporting are done, etc) Does it make sense? But above all, thanks for your work (dev, doc, ...): it's really appreciated! wiki page: Web Monetization 843 2020-03-24T18:01:29+00:00

Using Font Awesome icons instead of content depending on the value of the field content


Tweaking the sample above and using font awesome (integrated in Tiki) you can display corresponding icons for a content.
In this demo case we have a tracker with a "gender" field that hold 2 values, "male" or "female". There is a "male" and a "female" icon in Font Awesome and as both use the same term we can assign it to a div type icon and class.

Copy to clipboard
{LIST()} {filter field="tracker_id" content="42"} {OUTPUT(template="table")} {column label="Title" field="title" sort="title"} {column label="Gender" field="gender"} {OUTPUT} {FORMAT(name="gender")}{DIV(type=i class=fa fa-{display name="tracker_field_gender"})}{DIV}{FORMAT} {LIST}

Editable inline sample using the table template

Copy to clipboard
{column label="First Name" field="firstName" mode=raw} ... {FORMAT(name="firstName")}{display name="tracker_field_firstName" format=trackerrender editable=inline}{FORMAT}

Editable inline sample in a smarty (or wiki) template

In this wikiplugin embedded in a smarty (or wiki) template the field is set to be editable inline (note: format="trackerrender" is required ad well as the Inline editing (found in admin control panels=>trackers)

Copy to clipboard
{wikiplugin _name=list} {literal} {filter content="2" field="tracker_id"} {output(template="mytemplate.tpl")} {ALTERNATE()} empty {ALTERNATE} {FORMAT(name="name")}{display name="tracker_field_name" editable="inline" format="trackerrender" default=""}{FORMAT} {/literal} {/wikiplugin}


So the 2nd column uses a FORMAT plugin where the contents of the field in question, tracker_field_data, is used as the class for a div but the default (used if the data field is empty) is set to be the bootstrap class "hidden" so the contents, the check mark, only appears if there is some data.

Obviously if the data is the name of some other class weird stuff might happen, but for most usual cases, it works as expected and saves having to make a new smarty template just for this simple list.

(Tip and example taken from a message from JonnyB in the developers list - thanks!)

Using Font Awesome icons instead of content depending on the value of the field content


Tweaking the sample above and using font awesome (integrated in Tiki) you can display corresponding icons for a content.
In this demo case we have a tracker with a "gender" field that hold 2 values, "male" or "female". There is a "male" and a "female" icon in Font Awesome and as both use the same term we can assign it to a div type icon and class.

Copy to clipboard
{LIST()} {filter field="tracker_id" content="42"} {OUTPUT(template="table")} {column label="Title" field="title" sort="title"} {column label="Gender" field="gender"} {OUTPUT} {FORMAT(name="gender")}{DIV(type=i class=fa fa-{display name="tracker_field_gender"})}{DIV}{FORMAT} {LIST}

It will display a
if the content of the field = male and a
if the content of the field = female.


When you use a template to display your plugin list you want other item related or linked to the item to open using the same template (or another it doesn't matter) but not to open the trackers built-in system. For this you need to enable the Alias feature and set it to use the template to display the tracker item, "record-" for this sample.

When you use an item link to link an item to other item (related, friend of, etc.) this is a kind of a problem.
Item link has 2 option to display and item link. Value and Link.
Value display the id of the content (ie: 6).
Link display the value of the content linked to the tracker item (ie: Bernard).

Your link should be like:

Copy to clipboard
[record-6|Bernard]

So it open the item "Id6" in the "record-" template showing the value "Bernard" for the link.
To achieve this you need to create and use 2 row.

Copy to clipboard
{FORMAT(name="name")}{display name="tracker_field_contact" format=trackerrender}{FORMAT} {FORMAT(name="id")}{display name="tracker_field_contact"}{FORMAT}


The first one with format=trackerrender will display the content of the tracker Item Link field as it is shown in the tracker (Bernard).
The second one without the format=trackerrender will show the real value for this field (6).

The assemble your link as follow:

Copy to clipboard
[record-{display name="id"}|{display name="name"}]

It will complete the trick and open the item 6 using the record- template while the link displayed will show the right value, Bernard.

All the LIST Plugin control blocks

doc.tiki.org

Get Started

Admin Guide User Guide

Keywords

Keywords serve as "hubs" for navigation within the Tiki documentation. They correspond to development keywords (bug reports and feature requests):

Accessibility (WAI and 508)
Accounting
Articles and Submissions
Backlinks
Banners
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Link Cache
Calendar
Category
Chat
Clean URLs
Comments
Communication Center
Compression (gzip)
Contacts (Address Book)
Contact us
Content Templates
Contribution
Cookie
Copyright
Credit
Custom Home and Group Home Page
Date and Time
Debugger Console
Directory of hyperlinks
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
Draw
Dynamic Content
Dynamic Variable
External Authentication
FAQ
Featured links
File Gallery
Forum
Friendship Network (Community)
Gmap Google maps
Groups
Hotword
HTML Page
i18n (Multilingual, l10n)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
Kaltura video management
Karma
Live Support
Login
Logs (system & action)
Look and Feel
Mail-in
Map with Mapserver
Menu
Meta Elements
Mobile Tiki and Voice Tiki
Module
MultiTiki
MyTiki
Newsletter
Notepad
Payment
Performance Speed / Load
Permissions
Platform independence (Linux-Apache, Windows/IIS, Mac, BSD)
Polls
Profiles
Profile Manager
Report
Toolbar
Quiz
Rating
Feeds
Score
Search engine optimization
Search
Search and Replace
Security
Semantic links
Shadowbox
Shadow Layers
Share
Shopping cart
Shoutbox
Slideshow
Smiley
Social Networks
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Stats
Surveys
Tags
Task
Tell a Friend, alert + Social Bookmarking
TikiTests
Theme CSS & Smarty
Tiki Manager
Trackers
Transitions
User Administration including registration and banning
User Files
User Menu
Watch
WebDAV
Webmail
Web Services
Wiki History, page rename, etc
Wiki Syntax
Wiki structure (book and table of content)
Workspace
WSOD
WYSIWYCA
WYSIWYG
XMLRPC

Tiki Newsletter

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