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
(ortiki_p_view_trackers_pending
ortiki_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 fieldIntroduced 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:
{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.
{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
{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
{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:
{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:
{TRACKERITEMFIELD(trackerId="1" fields="")}Thank you your form is complete{TRACKERITEMFIELD}
It is also possible to test an alternative:
{TRACKERITEMFIELD(fieldId="1" test="1")}OK{ELSE}NOT OK{TRACKERITEMFIELD}
It is possible to have multiple levels of ELSE:
{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".
{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:
itemId={display name="object_id"}
Related