Loading...
 
Skip to main content

History: PluginListExecute

Source of version: 62

Copy to clipboard
            See also ((Front-ends to Tracker data))

! Plugin List Execute
Introduced in ((Tiki11)), the LISTEXECUTE plugin is an extensible plugin allowing administrators to set-up listings and custom actions that can be executed on objects, allowing to support complex workflows and perform some level of automation.

The LISTEXECUTE plugin uses the ((Search and List from Unified Index)) to extract lists of objects. All filters available in ((PluginList)) can also be used with LISTEXECUTE. Results are presented as a list with checkboxes for each row. Actions can be performed on selected objects.

{CODE(caption="Sample usage" colors="tiki")}
{LISTEXECUTE()}
    {filter type="trackeritem"}
    {filter content="p" field="tracker_status"}

    {ACTION(name="Expire Issue" group="Triage Team")}
        {step action="change_status" from="p" to="c"}
        {step action="email" subject="Issue closed" content_field="email_content" to_field="tracker_field_senderEmail"}
    {ACTION}
    
    {FORMAT(name="email_content")}
Hello,

We are sorry to announce that we have closed issue #{display name="object_id"} automatically.

Summary: {display name="tracker_field_summary"}

The issue has been pending additional information for too long. Feel free to answer pending questions and re-open it.

--
Acme Software Team
{FORMAT}
{LISTEXECUTE}
{CODE}

As you can see, the plugin uses a structure of fake plugins to define the behavior.
* Filters are used to select which objects will be displayed
* FORMAT is used to defined composed blocks of content, the email body in the above example
* ACTION defines sequences of steps to be performed. The name is required. Group name is optional.

Each step must defined the action attribute, which is associated with a specific behavior. Each action defines a set of parameters it can accept. The value for those parameters can be set statically in the definition or taken dynamically from the search results, or custom FORMAT blocks by using the -+_field+- suffix.

In the example, the -+content+- parameter for the -+email+- action is set using -+content_field+- to -+email_content+- , which is defined in the FORMAT block. The -+subject+- parameter is set directly, but it would be possible to define a custom, dynamic subject using -+subject_field+- . In the following snippet, the summary field is set directly into the email -+subject_field+- :

{CODE(caption="Sample usage: custom subject" colors="tiki")}

    {ACTION(name="Expire Issue" group="Triage Team")}
        {step action="change_status" from="p" to="c"}
        {step action="email" subject_field="subject_content" content_field="email_content" to_field="tracker_field_senderEmail"}
    {ACTION}
    
    {FORMAT(name="subject_content")}
        Summary: {display name="tracker_field_summary"}
    {FORMAT}

{CODE}

Additionally, multiple fields can be provided.
* Using the -+_field_coalesce+- suffix: A comma-separated list of fields can be provided. The first non-empty field will be used.
* Using the -+_field_multiple+- suffix: A comma-separated list of fields can be provided. All non-empty fields will be provided. When used on a field that does not allow multiple values, the behavior will be the same as using coalesce.

!! Actions
Fields with a -+++- sign allow multiple values to be provided using the -+_field_multiple+- suffix.

!!! -+change_status+-
Applies to tracker items. Allows to change the status from one state to an other.
* -+object_type+- : Taken directly from the search results
* -+object_id+- : Taken directly from the search results
* -+tracker_status+- : Taken directly from the search results. Used to validate the initial state before attempting to change the status.
* -+from+- : Must be set, defined the initial state (o=open, p=pending, c=closed)
* -+to+- : Must be set, defined the final state (o=open, p=pending, c=closed)


!!! -+delete+-
Removes the object from Tiki. 
* -+object_type+- : Taken directly from the search results
* -+object_id+- : Taken directly from the search results

Supported object types:
||__Type__|__Version__
file|((Tiki12))
trackeritem|((Tiki18))
aggregate|((Tiki18)) - see ((PluginList)) for more info on aggregating results
||

{CODE(caption="Sample usage: delete" colors="tiki")}

{LISTEXECUTE()}
 	{filter type="trackeritem"}
 	{filter field="tracker_id" content="4"}
	{filter content="c" field="tracker_status"}
	{OUTPUT(template="table")}
  		{column label="First Name" field="contactFirstName"}
  		{column label="Last Name" field="contactLastName"}
{OUTPUT}
	{FORMAT(name="contactFirstName")}{display name="tracker_field_contactFirstName" default=" " }{FORMAT}
	{FORMAT(name="contactLastName")}{display name="tracker_field_contactLastName" default=" "}{FORMAT}
{ACTION(name="Delete closed items" group="Registered")}
		{step action="delete"}
    {ACTION}
{LISTEXECUTE}

{CODE}

!!! -+filegal_image_overlay+-
Added in ((Tiki17)). Overlays some text on top of jpeg images attached to a tracker item which are stored in a file gallery.
Requirements:
{CODE(colors="shell")}
# Ubuntu/Debian
sudo apt-get install imagemagick php-imagick
sudo service apache2 restart
# ClearOS/CentOS (install as root)
yum install ImageMagick
yum install [--enablerepo=remi] php-pecl-imagick
service httpd restart
{CODE}

Parameters:
* -+field+- : Must be set. Permanent name of the tracker field where the file was uploaded to/selected in.
* -+value+- : Must be set. Some key(s) from the available list below.

Replacement keys for filegal_image_overlay:
{CODE(colors="tiki")}
%file_name%
%file_id%
%parts_filename%
%parts_extension%
%gallery_name%
%gallery_id%
%tracker_id%
%item_id%
%field_id%
%field_perm_name%
%field_name%
%exif_date%
%exif_gps%
%exif_gps_lat%
%exif_gps_lon%
%exif_gps_dms%
%exif_gps_dms_lat%
%exif_gps_dms_lon%
 {CODE}

Example of usage:
{CODE(colors="tiki")}
{step action="filegal_image_overlay" field="_2PhotoAttachments" value="%exif_date% - %exif_gps%"}
{CODE}

!!! -+filegal_change_filename+-
Added in ((Tiki17)). Renames files attached to a tracker item which are stored in a file gallery.
* -+field+- : Must be set. Permanent name of the tracker field where the file was uploaded to/selected in.
* -+value+- : Must be set. Some key(s) from the available list below.
* -+in_place++- : Must be set. y/n. If y, the renamed file replaces the original file. If n, a new file version is created with the new filename, leaving the source file intact.

Replacement keys for filegal_change_filename:
{CODE(colors="tiki")}
%file_name%
%file_id%
%parts_filename%
%parts_extension%
%gallery_name%
%gallery_id%
%tracker_id%
%item_id%
%field_id%
%field_perm_name%
%field_name%
 {CODE}


Example of usage:
{CODE(colors="tiki")}
{step action="filegal_change_filename" field="_2PhotoAttachments" value="%item_id%-%file_id%-%file_name%" in_place="y"}
{CODE}

!!! -+email+-
Sends an email to the specified recipient.
* -+subject+- : Must be set.
* -+to_field+- (if email in a field of the tracker item) or -+to+- (if email in plain text) must be set as the recipient of the email message. Since Tiki18.4, you can indicate a user field in the -+to_field+-
Optional fields:
* -+pdf_page_attachment+- : Since ((Tiki17)), to be able to send pdf versions of wiki pages as email attachments.
* -+from_field+- (or -+from+-): Since ((Tiki18)), to be able to set the __from__ field of the email based on the email associated to a user field in the tracker
* -+cc_field+- (or -+cc+-): Since ((Tiki18)), like the from_field above but for the __cc__ of the email
* -+bcc_field+- (or -+bcc+-): Since ((Tiki18)), like the from_field above but for the __bcc__ of the email
* -+is_html+-: Allow html content for the email body

If email value comes from field that are itemLink, itemList or DynamicItemList type you'll need to add the parameter _text at the end of the  permname.

{CODE(color="tiki")}tracker_field_email_text instead of tracker_field_email{CODE}

!!!! File and Email
Emailing a link to the file is not currently possible via ItemsList field and it may be not advised (due to security and anti-spam consideration). Instead, you can insert a link to the file with the "&display" parameter to display an image or without to initiate a download (if required user must be logged), something like this to the email content:

{CODE(colors="tiki")}http://your-tiki-site/tiki-download_file.php?fileId={display name="tracker_field_picture"}&display{CODE}

You may also consider to insert a link that will display your image or file or any other information. (see below)

!!!! Dynamic Link in the Email
Thanks to ((Wiki Argument Variables)) it is possible to include a link to a page to display part of the information related to the object_id or any wiki dynamic variable you set and that will display filtered tracker item information. It can also inforce security or add validation options (page to display the data may require login and it can be tracked)

IE: You want to display a member ID card that include text (name, adresse and a photo).

# Enable "Wiki argument variables", Control Panel; Editing and Plugins; Wiki syntax (tiki-admin.php?page=textarea)
# Create a page that will be used as template with a plugin List.
** Set a plugin List with all the information you want to display including sorting and filtering
** Add a filter on the variable like {filter field="object_id" content="{{memberId}}"} (you can name it how you want)
# Set your plugin ListExecute
** Insert in the email content an url that will set the Wiki Argument Variables and send the value to your template to display the specific member item fields:
++{CODE(tiki="colors")}http://domain.com/memberIdCard?memberId={display name="tracker_field_memberid"}{CODE}

This is one example and there are many ways for you to use it.

!!! -+snapshot+-
New in ((Tiki23)): http://sourceforge.net/p/tikiwiki/code/78296


!!! -+tracker_item_modify+-
Modifies a single field out of a tracker item.

* -+object_type+- : Taken directly from the search results
* -+object_id+- : Taken directly from the search results
* -+field+- : Must be set, permanent name of the field to modify, __without the "~~red:tracker_field_~~" prefix__ at the permanent name. 
** This is counterintuitive since elsewhere in the list plugin you need to set that prefix to the permanent names when filtering for those fields, etc, but this is the way it works as of version ((Tiki15|Tiki 15.2)) in July 2016 {sign user="xavi" datetime="2016-07-16T00:36:39+00:00"}.
* -+value+- : Optional, a value (value or calc) can be set for different fields as hardcoded string (be aware when changing the value of a pre-defined field like dropdown).
* -+calc+- :Optional (but either value or calc must be set, see above). target value, as a result of a mathematical calculation (based on the ((Calculations)) syntax, used also in the ((Mathematical Calculation Tracker Field)). check there the list of available functions and logic operators, etc).
* -+ignore_errors+- (New in ((Tiki21)) and backported to 20.3 and 18.6) allows modifications of items ignoring mandatory and other validation failures.
** {CODE()}{step action="tracker_item_modify" field="OwnerUser" ignore_errors="y"}
{CODE}
* New in ((Tiki20)) (and later backported to 19.2): -+add+-/-+remove+- items This is useful for multivalue fields like User Selector, Category, Relation, Freetags, etc.
** Initial commit: https://sourceforge.net/p/tikiwiki/code/68197
** Example: {CODE()}{step action="tracker_item_modify" field="TimeSheetVisibleTo" add="rodrigo"}
{step action="tracker_item_modify" field="TimeSheetVisibleTo" add="jonny"}
{step action="tracker_item_modify" field="TimeSheetVisibleTo" remove="luci"}
{CODE}

To let the end user pick a value to be removed
{CODE()}
{step action="tracker_item_modify" field="TimeSheetVisibleTo" method="remove"}
{CODE}

To let the end user pick a value to be added
{CODE()}
{step action="tracker_item_modify" field="TimeSheetVisibleTo" method="add"}
{CODE}


!!! -+wiki_approval+-
Marks the page as approved.
* -+object_type+- : Taken directly from the search results
* -+object_id+- : Taken directly from the search results
* -+wiki_approval_state+- : Taken directly from the search results


!! Batch processing
You may want to use this plugin to automate jobs on your site. To do so, you can use the command line cURL tool to post a request to the page. Or since ((Tiki17)), the action can be run through ((Console|console.php)) avoiding to use http authentication and the credentials in clear in the command line.

Before Tiki17:
{CODE(colors="shell")}curl "http://example.com/YourActionPage" --form "list_action=ActionName" --form "objects~0=ALL"{CODE}

If your action requires elevated access rights, you can enable HTTP Basic Authentication in Tiki, create a user in tiki with enough permissions to run the action from listexecute, and use the authentication options in curl, so that the command would be like:

{CODE(colors="shell")}curl -u myusername:mypassword "http://example.com/YourActionPage" --form "list_action=ActionName" --form "objects~0=ALL"{CODE}

Since ((Tiki15)) - Backported from ((Tiki17)):
{CODE()}
php console.php list:execute "Page Name" "Action Name"
{CODE}

If you see this type of error message:
{CODE()}
[root@server]# php console.php list:execute "Batch Sync Users" "SyncUsersTrackers"
Command not available at this stage. Complete required installation steps.
[root@server]# 
{CODE}

You may need to update the database schema first, with the usual:
{CODE()}
[root@server]# php console.php d:u
{CODE}

!! Automatisation using  Tiki Scheduler

Since ((Tiki17)) you can use Tiki ((Scheduler)) to automatise plugin List Execute actions.

Note if you use the url parameter you have to use a shell command and curl;
{CODE()}curl -u admin:12345 "http://example.com/tiki-index.php?page=Expiration-Notification&alert=1&days=30" --form "list_action=Alert" --form "objects~0=ALL"{CODE}

Since ((Tiki18)) you can use the url parameter with the console command;
{CODE()}php console.php list:execute "listexecute profile test" Alert --request="days=30&alert=1"{CODE}

If you use tracker fields output with Email action and it contains relative links (to tracker items, for example), you can work around it from ((Tiki18)), this way:

{CODE(tiki="colors")}HTTP_HOST=domain.com php console.php list:execute WikiPage ActionName{CODE}

!! Output
Since ((Tiki16)) (backported to ((Tiki15|Tiki 15.3)) ) you can use the same syntax to define columns, output, alternative results, etc, as it's possible with ((PluginList)) to customize the columns you want to display for each record shown.

You can see and play with a working example by means of ((Profiles|applying the profile)) ((pr:Execute on List)). 

!! See also
* This plugin can also be used in ((Flagged Revisions)) or ((Files Tracker Field))

!! Some examples

!!! Display a list base on expiry date, with mass action to send an email

Before Tiki17:
In this sample we used a tracker with a field "endDate" (contract expiration), a flag field "alert1Sent" to set if the email was sent or not yet (so it move away the item from this list if it was sent), a field "email_to" to set to who should be send the alert email.

In the listExecute plugin we list all the contract where "endDate" is in the date range we want (30 days from now) and where the field  "alert1Sent" is not equal to "y".

The output give us a display of the results. This  to test and monitor that all work ok or to manually select items on which the action will be applied.

In the format we add the listExecute action and steps. Step 1 will set the "alert1Sent" flag to "y" (so the item will be move away from list and the email won't be sent each time action is initiate). Step 2 will send an email with a proper subject and body (set below) to "alertTo" destination mail.

^Note: I tried to add a variable in the subject like the "contractTitle" or "objectId" but it is not working.^

Also in the format we have the "email_content", the body of your email that work fine with text and variables.

{CODE(colors="tiki")}
{LISTEXECUTE()}
  {filter field="tracker_id" content="4"}
  {filter type="trackeritem"}
  {filter range="tracker_field_endDate" from="now" gap="2592000"}
  {filter field="tracker_field_alert1Sent" content="NOT y"}
  {sort mode="tracker_field_endDate_asc"}

{OUTPUT(template="table")}
  {column label="Contract Title" field="contract_title" mode="raw"}
  {column label="Contract Expiration" field="contract_exp"}
  {column label="To" field="email_to"}
{OUTPUT}
{FORMAT(name="contract_title")}{display name="tracker_field_contractTitle" format="objectlink"}{FORMAT}
{FORMAT(name="contract_exp")}{display name="tracker_field_endDate" format="date" default=""}{FORMAT}
{FORMAT(name="email_to")}{display name="tracker_field_alertTo" default=""}{FORMAT}

  {ACTION(name="Alert 1")}
        {step action="tracker_item_modify" field="alert1Sent" value="y"}
        {step action="email" subject="Contract expiration alert" content_field="email_content" to_field="tracker_field_alertTo"}
  {ACTION}
  {FORMAT(name="email_content")}
Hello,

This is an automatic email from the Tiki Contract Management system.

The contract {display name="tracker_field_contractTitle"} will expire in 30 days from now.
You can check the item at: http://example.org/tiki-view_tracker_item.php?itemId={display name="object_id"}

--
Signature

{FORMAT}
{LISTEXECUTE}
{CODE}

You can use this page manually (opening the page and checking item then applying action) or you can set a cronjob (like explained above). 

!!!! Using a cronjob to automatise the alert email process

To use this listExecute within a cronjob you need to go to "tiki-admin.php?page=login" and to enable "HTTP Basic Authentication" (Preference name: login_http_basic). Then in a terminal you can use the following;

{CODE(colors="shell")}curl -u admin:adminpassword "http://example.org/YourActionPage" --form "list_action=ActionName" --form "objects~0=ALL"{CODE}

!!! List of all tickets, with mass action to re-open
{CODE(colors="tiki")}
{LISTEXECUTE()}
    {filter content="4532 4512 2919" field="object_id"}
    {filter type="trackeritem"}

    {ACTION(name="Re-open")}
        {step action="change_status" from="c" to="o"}
    {ACTION}
{LISTEXECUTE}
{CODE}

!!! Display open items with empty date + set current timestamp or change category + change status
The syntax below for filtering on empty fields (exact="") assumes you are using MYSQL as ((Search and List from Unified Index|unified search index engine)).

{CODE(colors="tiki")}
{LISTEXECUTE()}
	{pagination max=25}
    {filter type="trackeritem"}
    {filter content="6" field="tracker_id"}
    {filter content="o" field="tracker_status"}
    {filter field="tracker_field_trAppMyApprovalDate"  exact=""}

    {ACTION(name="Add my pre-approval + change tracker item status from Open to Pending" group="Registered")}
        {step action="tracker_item_modify" field="trAppMyApprovalDate" calc="(date)"}
        {step action="change_status" from="o" to="p"}
    {ACTION}
	{ACTION(name="Set ApprovalStatus as Denied + change tracker item status from Open to Closed" group="Registered")}
        {step action="tracker_item_modify" field="trAppApprovalStatus" value="4"}
        {step action="change_status" from="o" to="c"}
    {ACTION}

{LISTEXECUTE}
{CODE}

!!! Display custom columns with table sorter and inline edition
Example taken from the profile ((pr:Execute on List)).
{CODE(caption="Display custom columns with table sorter and inline edition" colors="tiki")}
{LISTEXECUTE()}
    {filter type="trackeritem"}
    {filter content="1" field="tracker_id"}
    {filter content="o OR p" field="tracker_status"}
    {filter content="NOT " field="tracker_field_trAppApprovalDate"}
{sort mode="tracker_field_trAppID_asc"}
{OUTPUT(template="table")}
    {column field="trAppID" label="ID" mode="raw"}
    {column field="trAppEmail" label="Email" mode="raw"}
    {column field="trAppFullName" label="Full Name" mode="raw"}
    {column field="trAppGCPreApprovalDate" label="GC Pre-approval"  mode="raw"}
    {column field="trAppCEOPreApprovalDate" label="CEO Pre-approval"  mode="raw"}
    {column field="trAppYouCanTradeUntil" label="You can trade until"  mode="raw"}
    {column field="trAppApprovalDate" label="Approval date"  mode="raw"}
    {column field="trAppApprovalStatus" label="Approval status"  mode="raw"}
	{tablesorter server="n" sortable="y" tsfilters="type:nofilter|type:nofilter|type:text|type:text|type:date;format:yy-mm-dd|type:date;format:yy-mm-dd|type:date;format:yy-mm-dd|type:date;format:yy-mm-dd|type:dropdown" tscolselect="critical|critical|4|6|6|2|6|5"}
{OUTPUT}
	{FORMAT(name="trAppID")}{display name="tracker_field_trAppID" format="objectlink"  default=""}{FORMAT}
	{FORMAT(name="trAppEmail")}{display name="tracker_field_trAppEmail"  default=""}{FORMAT}
	{FORMAT(name="trAppFullName")}{display name="tracker_field_trAppFullName"  default=""}{FORMAT}	{FORMAT(name="trAppGCPreApprovalDate")}{display name="tracker_field_trAppGCPreApprovalDate" format="datetime" default=""}{FORMAT}
	{FORMAT(name="trAppCEOPreApprovalDate")}{display name="tracker_field_trAppCEOPreApprovalDate" format="datetime" default=""}{FORMAT}
	{FORMAT(name="trAppYouCanTradeUntil")}{display name="tracker_field_trAppYouCanTradeUntil" format="datetime" default=""}{FORMAT}
	{FORMAT(name="trAppApprovalDate")}{display name="tracker_field_trAppApprovalDate" format="datetime" default=""}{FORMAT}
	{FORMAT(name="trAppApprovalStatus")}{display name="tracker_field_trAppApprovalStatus" format="trackerrender" default=""}{FORMAT}
{ALTERNATE()}{TR()}There are no requests pending your processing.{TR}{ALTERNATE}

    {ACTION(name="Set as APPROVED + send email + close item status" group="Registered")}
        {step action="tracker_item_modify" field="trAppApprovalStatus" value="2"}
        {step action="change_status" from="p" to="c"}
        {step action="email" subject="Request Approved" content_field="email_content_approved" to_field="tracker_field_trAppEmail"}
        {step action="email" subject="Request Approved" content_field="email_content_cs_approved" to="info@example.com"}
    {ACTION}
    {ACTION(name="Set as DENIED + send email + close item from pending status" group="Registered")}
        {step action="tracker_item_modify" field="trAppApprovalStatus" value="3"}
        {step action="change_status" from="p" to="c"}
        {step action="email" subject="Request Denied" content_field="email_content_denied" to_field="tracker_field_trAppEmail"}
    {ACTION}
    {ACTION(name="Set as DENIED + send email + close item from open status" group="Registered")}
        {step action="tracker_item_modify" field="trAppApprovalStatus" value="3"}
        {step action="change_status" from="o" to="c"}
        {step action="email" subject="Request Denied" content_field="email_content_denied" to_field="tracker_field_trAppEmail"}
    {ACTION}

    {FORMAT(name="email_content_approved")}
Dear {display name="tracker_field_trAppFullName" format="trackerrender"}

Your request (internal Id #{display name="tracker_field_trAppID"}, submitted on {display name="creation_date"  format="datetime"}) has been approved. 

Yours sincerely,

--
ACME Ltd.
Platform to Request XXX
http://example.com
{FORMAT}
{FORMAT(name="email_content_denied")}
Dear {display name="tracker_field_trAppFullName" format="trackerrender"}

Your request submitted on  {display name="creation_date" format="datetime"} is not approved.

Please contact acme@example.com for more information.


Yours sincerely,

--
ACME Ltd.
Platform to Request XXX
http://example.com
{FORMAT}
{FORMAT(name="email_content_cs_approved")}
Dear Management Department,

Please find below details from a person who has been approved a request in ACME Ltd.:

{FANCYTABLE(head="Name of Employee (Employee ID) | Request Date | Approval Date | Last Exercise Date")}
{display name="tracker_field_trAppFullName" format="trackerrender"} | {display name="creation_date"  format="date"} | {display name="tracker_field_trAppApprovalDate" format="date" default=""} | {display name="tracker_field_trAppYouCanTradeUntil" format="datetime" default=""}
{FANCYTABLE}
''Please note that Last Window Open Date is {display name="tracker_field_trAppTradingPeriodEndDate" format="raw" default=""}''

If you have any questions, please contact acme@example.com .

Yours sincerely,

--
ACME Ltd.
Platform to Request XXX
http://example.com
{FORMAT}
{LISTEXECUTE}
{CODE}

!! Related pages
* [http://sourceforge.net/p/tikiwiki/code/44384|Initial commit]
        

History

Advanced
Information Version
Adrien 89
Adrien 88
Adrien 87
Joël MPUNGA 86
Bernard Sfez / Tiki Specialist Fixing error 85
Marc Laporte 84
Baraka Kinywa 83
Jonny Bradley 82
Jonny Bradley added note about custom output templates 81
Bernard Sfez / Tiki Specialist Improving documentation for tracker_item_modify and tracker_item_clone 80
Bernard Sfez / Tiki Specialist Adding sample for status action 79
Eutyche ODIMBA 78
Eutyche ODIMBA 77
Bernard Sfez / Tiki Specialist Adding information about the clone option 76
Eutyche ODIMBA 75
Eutyche ODIMBA 74
Jean-Marc Libs 73
Bernard Sfez / Tiki Specialist 72
Bernard Sfez / Tiki Specialist autotoc Plugin modified by editor. 71
Bernard Sfez / Tiki Specialist autotoc Plugin modified by editor. 70
Bernard Sfez / Tiki Specialist autotoc Plugin modified by editor. 69
Bernard Sfez / Tiki Specialist 68
Bernard Sfez / Tiki Specialist Documentation and sample about tracker_item_clone added 67
Bernard Sfez / Tiki Specialist Adding user_group_modify documentation, cleaning a bit the page 66
Bernard Sfez / Tiki Specialist 65
Bernard Sfez / Tiki Specialist Add information and a little warning about hardcode string on tracker-item-modify 64
Bernard Sfez / Tiki Specialist Added sample 63
Bernard Sfez / Tiki Specialist Improving the tracker-modify information and added examples 62
Mike Finko [Rollback by Bsfez to version 58] 61
Bernard Sfez / Tiki Specialist 60
Bernard Sfez / Tiki Specialist 59
Mike Finko 58
Marc Laporte 57
Marc Laporte 56
Roberto Kirschbaum Improve example for subject_field 55
Jonny Bradley 54
Jonny Bradley added ignore_errors param 53
Marc Laporte 52
Marc Laporte Updating documentation with something that works locally 51
Marc Laporte AutoTOC 50
Jonny Bradley Added missing email params 49
Marc Laporte 48
Xavier de Pedro as discussed with Victor kroky6 47
Xavier de Pedro as discussed with Victor kroky6 46
Marc Laporte Thank you Victor! 45
Roberto Kirschbaum Corrected: "tracker_field_email_text instead of tracker_field_email_text" by removing second _text 44
Bernard Sfez / Tiki Specialist Tagging Tiki version for a sample 43
Victor Emanouilov 42
Victor Emanouilov 41
Bernard Sfez / Tiki Specialist 40
  • «
  • 1 (current)
  • 2