1. ZenTao API development guides
1.1 Configuration and FAQ
1.2 Examples of the calling SDK
1.3. Department interface
1.3.1 Get the department list
1.3.2 Batch create departments
1.4. User interface
1.4.1 Get patameters of adding users
1.4.2 Add a single user
1.4.3 Get the user list
1.5. Product interface
1.5.1 Get the product list
1.5.2 Optional information for adding a single product
1.5.3 Create a single product
1.6. Project interface
1.6.1 Get the project list
1.6.2 Optional information for adding a single project
1.6.3 Create a single project
1.7. Task interface
1.7.1 Get the task list
1.7.2 Optional information for adding a single task
1.7.3 Create a single task
1.7.4 Optional information for finishing a single task
1.7.5 Finish a single task
1.8. Bug interface
1.8.1 Get the bug list
1.8.2 Optional information for reporting a single bug
1.8.3 Report a single bug
1.8.4 Optional information for resolving a single bug
1.8.5 Resolve a single bug
2. ZenTao API documents (V1.0)
2.1. Token
2.1.1 Get Token
2.2. Department
2.2.1 Get the department list
2.2.2 Get department details
2.3. User
2.3.1 Access to my profile
2.3.2 Get the user list
2.3.3 Get user information
2.3.4 Edit user information
2.3.5 Delete users
2.3.6 Create users
2.4. Program
2.4.1 Get the program list
2.4.2 Edit programs
2.4.3 Access to program details
2.4.4 Delete programs
2.4.5 Create programs
2.5. Product
2.5.1 Get the product list
2.5.2 Create products
2.5.3 Get product details
2.5.4 Edit products
2.5.5 Delete products
2.6. Product plan
2.6.1 Get the list of product plans
2.6.2 Create plans
2.6.3 Get plan details
2.6.4 Edit plans
2.6.5 Delete plans
2.6.6 Link the stories to the product plan
2.6.7 Cancel the link between the product plans and stories
2.6.8 Link the bugs to the product plan
2.6.9 Cancel the link between the product plan and bugs
2.7. Release
2.7.1 Get the release list of product
2.7.2 Get the release list of project
2.8. Story
2.8.1 Get the story list of product
2.8.2 Get the story list of project
2.8.3 Get the story list of execution
2.8.4 Create story
2.8.5 Get story details
2.8.6 Change a story
2.8.7 Change some other fileds of story
2.8.8 Delete a story
2.9. Project
2.9.1 Get project list
2.9.2 Create a project
2.9.3 Get project details
2.9.4 Modify a project
2.9.5 Delete a project
2.10. Build
2.10.1 Get the build list of project
2.10.2 Get the build list of execution
2.10.3 Create a build
2.10.4 Get build details
2.10.5 Modify a build
2.10.6 Delete a build
2.11. Execution
2.11.1 Get the execution list of project
2.11.2 Create execution
2.11.3 Check the details of execution
2.11.4 Modify execution
2.11.5 Delete execution
2.12. Task
2.12.1 Get the task list of execution
2.12.2 Create task
2.12.3 Get task details
2.12.4 Modify task
2.12.5 Delete task
2.12.6 Start task
2.12.7 Suspend task
2.12.8 Continue task
2.12.9 Finish task
2.13. Bug
2.13.1 Get the bug list of product
2.13.2 Create bug
2.13.3 Get bug details
2.13.4 Modify bug
2.13.5 Delete bug
2.14. Use case
2.14.1 Get use case list of product
2.14.2 Create use case
2.14.3 Get use case details
2.14.4 Modify test case
2.14.5 Delete test case
2.14.6 Run test case
2.15. Test request
2.15.1 Get test request list
2.15.2 Get the test request of project
2.15.3 Get the details of test reuqest
2.16. Feedback
2.16.1 Create feedback
2.16.2 Assign feedback
2.16.3 Close feedback
2.16.4 Delete feedback
2.16.5 Modify feedback
2.16.6 Get feedback details
2.16.7 Get feedback list
2.17. Ticket
2.17.1 Get the ticket list
2.17.2 Get the ticket details
2.17.3 Modify a ticket
2.17.4 Create a ticket
2.17.5 Delete a ticket
3. Customized development
3.1 Secondary development mechanism
3.2 The directory structure of ZenTao
3.3 Find your target file to be modified
3.4 The database structure of ZenTao
3.5 Public module - common
3.6 How to register on menu
3.7 How to register on permission
3.8 Example: how to modify the prompt
3.9 Example: priority field setting when creating bugs
3.10 The online extension editor
3.11 Secondary development editor and translation function restrictions instructions
3.12 ZenTao project management software packaging specification (V1.1)

Configuration and FAQ

2022-12-21 10:00:42
Last edited by Yujia Li on 2022-12-26 14:23:37
Share links
Summary : This article will introduce how to integrate and use this SDK in PHP. It only needs to be configured and referred to.

1. Configuration parameters

The ZenTao PHP-SDK was added to the zentao framework directory after ZenTao open source version 12.0.1, and the ZenTao PHP-SDK file is located under zentao project directory/sdk/php/. Before using the SDK (zentao.php) file, you need to fill in some necessary configuration information in the referenced Zentao SDK file. The domain name of the ZenTao installation and deployment, the ZenTao user account, the ZenTao user password, and the parameter request method of the ZenTao configuration.

const ztUrl        = 'http://zentao.*****.com';    // domain that ZenTao is installed
const ztAccount    = 'admin';                      // ZenTao login username
const ztPassword   = '123456';                     // ZenTao login password
const ztAccessMode = 'PATH_INFO';                  // ZenTao request method [ GET | PATH_INFO ] 


2. List of available APIs for ZenTao SDK

  • Get a list of departments
  • Batch add departments
  • Get a list of users
  • Add individual user optional information
  • Add a single user
  • Get a list of products
  • Add a single product with optional information
  • Add a single product
  • Get a list of projects
  • Add a single item with optional information
  • Add a single project
  • Get a list of tasks
  • Add a single task with optional information
  • Add a single task
  • Complete a single task optional information
  • Complete a single task
  • Get a list of bugs
  • Add single bug optional information
  • Add a single bug
  • Resolve a single bug optional information
  • Resolve a single bug


3. Instructions and examples

3.1 Instructions

Before use the ZenTao SDK, make sure that the configuration is correct, and that the login account has the right permissions and that the password is not weak. All requested API results are returned in JSON format. You can decide whether the request was successful based on the status in the request result. If the request fails, APIs will give corresponding prompts. In requesting the API, take [Get Department Lists] as an example. $params contains the request parameters that can be passed. It can be an empty array. This parameter can be omitted when required parameters are not passed in the parameter. $extraFields is a customized field, which can be returned according to the required results. The customized fields are not limited to the fields as showed in the example, and it cannot be passed.

3.2 Examples

Below is an example using the zentaoPHP framework. Place the SDK files in tools/zentao/. ThinkPHP, Laravel, and other mainstream frameworks can be placed in the framework directory according to your needs, and the directory should follow the ZenTao framework specification as much as possible.

 * Get a department list
 * @access public
 * @return void
public function getDeptList()
    $zentao      = new zentao();    // Initiate the class. If failed, change it to "\new zentao();"
    $params      = array('deptID' => 1);    // the parameter requested
    $extraFields = array('title', 'deptID', 'parentDepts', 'sons', 'tree');    // fields returned
    $result      = $zentao->getDeptList($params, $extraFields);    // revoke SDK
    echo $result;


4. FAQ

Q: An error message "Trying to get property of non-object" appears when calling a method in the ZenTao SDK class.

A: Print the result of the request ($result) in the SDK and check the returned information for the reason.

Solution 1: Change the password settings.

Log in ZenTao and select Admin-> Security-> Password settings. Turn off Password Strength, Force to change weak password, and Force to change password after first login.

<html><meta charset='utf-8'/>

Solution 2: Assign the user permission.

Log in ZenTao and select Admin-> Privilege to set the privileges for users.

<html><meta charset='utf-8'/>

Solution 3: Missing parameters.

Find the relavant method in the API list and check whether the passed parameters match that in the document list.


Q: An error message "Fatal error: Uncaught Error: Call to undefined function curl_init()" appears when calling a method in the ZenTao SDK class.

A: The reason for this error is that PHP is missing the curl extension, so install this PHP extension and it will be back in business.


Write a Comment
Comment will be posted after it is reviewed.