Plugin Tracker Item Field

Introduced in Tiki2

Use this wiki plugin to display or test the value of a field of a tracker item.

Requirements

  • The field must not be hidden
  • To test or display a field, you must have the tiki_p_view_trackers (or tiki_p_view_trackers_pending or tiki_p_view_trackers_closed permission depending on the status of the item
  • The status can be tested without permission

Parameters

Display or test the value of a tracker item field
Introduced in Tiki 2.
Go to the source code
Preferences required: wikiplugin_trackeritemfield, feature_trackers

Parameters Accepted Values Description Default Since
(body of plugin) Wiki text containing an {ELSE} marker.
value text Value to compare against. 2.0
itemId digits Numeric value representing the item ID. Default is the user tracker item for the current user. 2.0
list_mode (blank)
y
n
csv
Set output format. Yes (y) displays tracker item field with truncated values (default); No (n) displays in tracker item field view; Comma Separated Values (csv) outputs without any HTML formatting. y 25.0
status (blank)
o
p
c
op
oc
pc
opc
Status of the tracker item 2.0
test (blank)
1
0
Set to Yes (1) to test whether a field is empty (if value parameter is empty) or has a value the same as the value parameter. 2.0
trackerId digits Numeric value representing the tracker ID. 2.0
fieldId digits Numeric value representing the field ID displayed or tested 2.0
fields text
separator: :
Colon-separated list of field IDs. Default is all fields 2.0

Limitation

The field must be a simple value (not computed, not item list). The tracker item can be specified by its ID with the itemId plugin param. If it is not specified and the url used to access the page has a itemId parameter, the value of itemId parameter will be used. If after this test is not set and if the User Tracker feature is set on, the user item of the user will be selected.

Examples

For example, you have a user tracker with a field containing the phone number of the user, you can use this plugin with the fieldId=phone_field_id to display in the page the phone number of the user looking at the page:

Copy to clipboard
{trackeritemfield fieldId="1"}


Another example, you want to add a link in a page to a page where a user can fill his user tracker only if the user has no user tracker. You can use this plugin with the fieldId that is the user selector field.

Copy to clipboard
{TRACKERITEMFIELD(fieldId="1" test="1")}Welcome new member, please visit ((this_page)) to fill up your information{TRACKERITEMFIELD}

A field can be tested against a value

Copy to clipboard
{TRACKERITEMFIELD(fieldId="1" test="1" value="toto")}Yes your name is toto{TRACKERITEMFIELD}

See Tracker Field Types for values to match for special fields such as checkboxes.

If you want to do the same thing with a tracker that is not the user tracker but has only one item per user and has a field user selector/1, you can specify the tracker ID like this

Copy to clipboard
{trackeritemfield trackerId="1" fieldId="1"} {TRACKERITEMFIELD(trackerId="1" fieldId="1" test="1")}Please fill out your review{TRACKERITEMFIELD}


It is also possible to test the status of the user item. For instance if you want to display something only if the item is pending or closed:

Copy to clipboard
{TRACKERITEMFIELD(status="pc")}Sorry, your survey is being processed{TRACKERITEMFIELD}


It is also possible to test if all the fields of as item are not empty:

Copy to clipboard
{TRACKERITEMFIELD(trackerId="1" fields="")}Thank you your form is complete{TRACKERITEMFIELD}


It is also possible to test an alternative:

Copy to clipboard
{TRACKERITEMFIELD(fieldId="1" test="1")}OK{ELSE}NOT OK{TRACKERITEMFIELD}


It is possible to have multiple levels of ELSE:

Copy to clipboard
{TRACKERITEMFIELD(fieldId="1" test="1")}OK{ELSE}{TRACKERITEMFIELD(fieldId="2" test="2")}super ok{ELSE}NOT OK{TRACKERITEMFIELD}{TRACKERITEMFIELD}

Note the order the other test with always be in the ELSE part.

This plugin is also very useful when you want to show only some filtered values from a tracker field and for empty ones - to hide the messy warnings like "No value for 'tracker_field_xxx".

Copy to clipboard
{LIST()} {pagination max=10} {filter field="tracker_id" content="2"} {OUTPUT(template="table")} {column label="Id" field="itemid" class="text-left" mode="raw"} {column label="object_id" field="object_id"} {column label="Name" field="name" sort="name" class="text-nowrap"} {column label="Discount" field="discount"} {OUTPUT} {FORMAT(name="itemid")}{display name="tracker_field_shopProductId" format="trackerrender"}{FORMAT} {FORMAT(name="object_id")}{display name="object_id"}{FORMAT} {FORMAT(name="name")}{display name="tracker_field_shopProductName"}{FORMAT} {FORMAT(name="discount")} {TRACKERITEMFIELD(trackerId="2" fieldId="143" itemId={display name="object_id"} test="0" value="")} {display name="tracker_field_shopProductDiscount" format="trackerrender"} {TRACKERITEMFIELD} {FORMAT} {LIST} 


The trick here is to assign itemId value like this:

Copy to clipboard
itemId={display name="object_id"}

Aliases