Loading...
 
Skip to main content

History: API Tracker

Source of version: 14 (current)

Copy to clipboard
            {syntax type="markdown"  editor="wysiwyg"} # API Tracker

Tiki supports URL arguments and they can be used to interact with the Trackers and the plugins displaying or creating items. For example you can define a default value for a field in a customSearch or force the insertion of a value when creating an item.

## Examples

### Allow creation, edition and deletion of tracker items in a modal pop-up


This is the html syntax for use in a smarty template file.

{CODE(caption="Creation of an item in tracker 1")}
<a class="click-modal tips" title=":Create new item" data-role="button" data-inline="true" href="tiki-tracker-insert_item?trackerId=1">Create new item</a>
{CODE} 
{CODE(caption="Edition of item 3 in tracker 1")}
<a class="click-modal tips" title=":Edit item" data-role="button" data-inline="true" href="tiki-tracker-update_item?trackerId=1&itemId=3">Edit item 3</a>
{CODE} 
{CODE(caption="Deletion of item 3 in tracker 1")}
<a class="click-modal tips" title=":Remove item" data-role="button" data-inline="true" href="tiki-tracker-remove_item?trackerId=1&itemId=3">Remove item 3</a>
{CODE}

### Create/Update some fields of an item using *editable*


If you want to update two fields which permanentNames are *name* and *surname* and leave the other fields unchanged: 
{CODE(caption="Edition of two fields of item 3 in tracker 1")}
tiki-tracker-update_item?trackerId=1&itemId=3&editable[]=name&editable[]=surname
{CODE} 
(same principle for item creation)

### Hide some fields of an item on the creation/edition using *noteditable*


If you want to hide two fields which permanentNames are name and surname and edit the other fields: 
{CODE(caption="Hiding of two fields of item 3 in tracker 1")}
tiki-tracker-update_item?trackerId=1&itemId=3&noteditable[]=name&noteditable[]=surname
{CODE} 
(same principle for item creation)

### Pre-fill field values using *fields*

Note: once you use *fields*, only the fields which you specifically mention will be available for edition. 
{CODE(caption="Edition of three fields of item 3 in tracker 1 with a prefilled value")}
tiki-tracker-update_item?trackerId=1&itemId=3&fields~name&fields~surname&fields~education=None
{CODE} 
{CODE(caption="Creation of item 3 in tracker 1 with a prefilled value and two extra fields")}
tiki-tracker-insert_item?trackerId=1&itemId=3&fields~name&fields~surname&fields~education=None
{CODE} 
This will prefill the "education" field and it will display fields *name* and *surname* as empty fields. It is probably perfect for creating a new item but not what you would expect for editing an existing item (loss of previous values).

A better solution which does not lose previously entered content: 
{CODE(caption="Edition of three fields of item 3 in tracker 1 with one prefilled value")}
tiki-tracker-update_item?trackerId=1&itemId=3&editable[]=name&editable[]=surname&editable[]=school&fields~education=None
{CODE}

### To set a link that will create a new item and force-insert and hide a value for a field

Here we use it to create an item with a specific category Id. 
(replace "childrenIdNumber" with your category field permaname) 
{CODE()}
tiki-tracker-insert_item?trackerId=2&next=tiki-tracker-insert_item%3FtrackerId%3D3&forced~childrenIdNumber=17
{CODE} 
All fields can be edited except the one which is forced which will not be shown.

This can be used with a variable like a field from a plugin list. Here we prefill the (user)name and hide it.*The smarty replace modifier is required to remove extra space(s) added to the value(s)*
{CODE()}
tiki-tracker-insert_item?trackerId=11&forced~paymentsFamilyName={$row.name|replace:' ':''}
{CODE}

### To set a link that will open the update modal for an existing item and insert a value for a field

Here we use it to create an item with a specific category Id. 
(replace "permaname" with your category field permaname) 
{CODE()}
tiki-tracker-update_item?trackerId=2&itemId=178&fields~childrenIdNumber=17
{CODE}

### Status control with tiki-tracker-insert_item and tiki-tracker-update_item

| **code** | **status of saved item** | **is status selector displayed in pop-up window?** |
|---|---|---|
| status=open | open | yes |
| status=pending | pending | yes |
| status=closed | closed | yes |
| status=0 | default value in tracker properties | No |
| nothing about status | default value in tracker properties | only if "show status" is set in tracker properties |

{CODE(caption="Example" theme="default")}tiki-tracker-insert_item?trackerId=57&editable[]=inscrContenuCmdCommande&status=closed{CODE}

## Updating a tracker field using POST

((API Tracker Update Demo))