要想对ZDOO进行修改,就必须知道对应的代码在什么地方。在了解了ZDOO的目录结构之后,我们来看下ZDOO的请求是如何对应到代码的。
一、control方法的定位
control方法是每一个页面的入口,顺藤摸瓜,让我们先来看个例子: crm/ order-browse- assignedTo.html 或者是crm/index.php?m=order&f=browse&mode=assignedTo。这里面有什么玄机呢?让我们来揭晓。
crm/
order-browse-
assignedTo.html,表示是访问
crm应用
order这个模块的
browse方法,传递的第一个参数为
assignedTo,访问的页面类型是
html。
同样,
crm/index.php?m=order&f=browse&mode=assignedTo,
crm代表应用名
,m代表了模块名称,
f代表了方法名称,后面的则是参数列表。
那么我们就可以对应ZDOO的源代码,app/crm/order/control.php中的browse方法:
二、control方法里面的调用
ok,我们现在已经知道了入口的函数在什么地方,我们来跟到里面看看吧。
$this->order,
表示的是调用order模块的model对象,那么它对应的文件在什么地方呢?聪明的你,应该已经猜到了吧。在
app/crm/order/model.php
this->loadmoel('order', 'crm')->xxx,表示加载crm应用order模块的model对象,它对应的文件在app/crm/order/model.php
$this->app->loadClass('pager'),表示加载一个lib类,它对应的文件则在lib/pager/pager.class.php
$this->lang->order->xxx,它的定义在app/crm/order/lang/zh-cn.php。后面的zh-cn根据当前用户的语言而定。
后来看模块文件。$this->display()之后,调用的是view目录下面和当前方法同名的模板文件。比如order的browse方法,它对应的模板文件是app/order/view/browse.html.php
三、应用
ZDOOapp目录下的几个目录分别对应CRM、OA、CASH、TEAM应用,sys下是公用模块。