1. ZenTao API development guides
- 1.1 Configuration and FAQ
- 1.2 Examples of the calling SDK
- 1.3. Department interface
- 1.4. User interface
- 1.5. Product interface
- 1.6. Project interface
- 1.7. Task interface
- 1.8. Bug interface
2. ZenTao API documents (V1.0)
- 2.1.1 Get Token
- 2.2. Department
- 2.3. User
- 2.4. Program
- 2.5. Product
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.8. Story
- 2.9. Project
- 2.10. Build
- 2.11. Execution
- 2.12. Task
- 2.13. Bug
- 2.14. Use case
- 2.15. Test request
- 2.16. Feedback
- 2.17. Ticket
- 2.1. Token
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)
To make changes to ZenTao, you must know where the target code is located. After understanding the directory structure of ZenTao, let's see how to find the target code to be changed.
1. Positioning of the "control" method
"control" method is the entrance of each page. Let's take bug-browse-1.html and /?m=bug&f=browse&productID=1&t=html as examples.
- bug-browse-1.html: It means that it's the browse method of accessing the bug module, the first parameter passed is 1, and the page type accessed is html.
- /?m=bug&f=browse&productID=1&t=html: "m" indicates the module name, "f" indicates the method name, and the rest indicates the parameter list.
So, we could find the source code of ZenTao, module/bug/control.php in the browse method:
2. Calls in the control method
OK, now that we know where the entry function is, let's take a look inside.
$this->bug indicates calling the model object of the bug module, so, where is its corresponding files? Yes, it's in module/bug/model.php!
this->loadmodel('tree')->xxx indicates loading the model object of the tree module, and its corresponding file is in module/tree/model.php.
$this->app->loadClass('pager') indicates loading a lid class, and its corresponding file is in lib/pager/pager.class.php.
$this->lang->bug->xxx, which is defined in module/bug/lang/zh-cn.php. "zh-cn" at the end depends on the language of the current user.
Now let's have a look to the module files. After $this->display(), the template file under the view directory with the same name as the current method is called. For example, for bug's browse method, its corresponding template file is module/bug/view/browse.html.php