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¬editable[]=name¬editable[]=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))