Loading...
 
Skip to main content

History: PluginTrackerItemField

Source of version: 39

Copy to clipboard
            ! 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
{pluginmanager plugin="trackeritemfield"}
!!! 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:
{CODE(colors="tiki")}
{trackeritemfield fieldId="1"}
{CODE}

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.
{CODE(colors="tiki")}
{TRACKERITEMFIELD(fieldId="1" test="1")}Welcome new member, please visit ((this_page)) to fill up your information{TRACKERITEMFIELD}
{CODE}
A field can be tested against a value
{CODE(colors="tiki")}
{TRACKERITEMFIELD(fieldId="1" test="1" value="toto")}Yes your name is toto{TRACKERITEMFIELD}
{CODE}
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
{CODE(colors="tiki")}
{trackeritemfield trackerId="1" fieldId="1"}
{TRACKERITEMFIELD(trackerId="1" fieldId="1" test="1")}Please fill out your review{TRACKERITEMFIELD}
{CODE}

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:
{CODE(colors="tiki")}
{TRACKERITEMFIELD(status="pc")}Sorry, your survey is being processed{TRACKERITEMFIELD}
{CODE}

It is also possible to test if all the fields of as item are not empty:
{CODE(colors="tiki")}
{TRACKERITEMFIELD(trackerId="1" fields="")}Thank you your form is complete{TRACKERITEMFIELD}
{CODE}

It is also possible to test an alternative:
{CODE(colors="tiki")}
{TRACKERITEMFIELD(fieldId="1" test="1")}OK{ELSE}NOT OK{TRACKERITEMFIELD}
{CODE}

It is possible to have multiple levels of ELSE:
{CODE(colors="tiki")}
{TRACKERITEMFIELD(fieldId="1" test="1")}OK{ELSE}{TRACKERITEMFIELD(fieldId="2" test="2")}super ok{ELSE}NOT OK{TRACKERITEMFIELD}{TRACKERITEMFIELD}
{CODE}
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". 

{CODE(colors="tiki")}
{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} 
{CODE}

The trick here is to assign itemId value like this:
{CODE}
itemId={display name="object_id"}
{CODE}

!!Related
* ((PluginTrackerIf))
* ((PluginTrackerToggle))
!!Aliases
* (alias(Mod trackeritemfield))

        

History

Information Version
Marc Laporte 42
Aris Bernotas 41
Aris Bernotas 40
Aris Bernotas added info how to assign itemId value from object_id 39
Yves Kipondo 38
lindon 37
lindon 36
Marc Laporte 35
Marc Laporte 34
pianoliv +link to ((Tracker Field Type)) 33
lindon 31
lindon 30
Marc Laporte 29
Marc Laporte 28
Marc Laporte 27
Marc Laporte 26
Marc Laporte 25
Scot Wilcoxon description 24
lindon 23
Marc Laporte 22
Marc Laporte 21
gcosilveira 20
sylvie 19
sylvie 18
sylvie 17
sylvie 16
sylvie 15
sylvie 14
sylvie 13
sylvie 12
sylvie 11
sylvie 10
sylvie 9
sylvie 8
sylvie 7
sylvie 6
Jürgen Heckes 5
mlpvolt 4
mlpvolt 3
Jürgen Heckes 2
sylvie 1