应用方法调用
通过C()函数可以调用应用主文件与应用模块内的方法,ClassCMS内的钩子也是通过C函数实现的.
模板内可以不通过C函数调用应用方法,详见:模板内应用方法调用
调用当前应用主文件内的方法
C('this:xxxx');
$return=C('this:xxxx');//将xxxx方法返回的内容赋值给$return
带参数调用
C('this:xxxx',1,2);
调用当前应用模块内的方法
C('this:module:xxxx');
C('this:module:xxxx',1,2);
调用目标应用方法
C('otherclass:xxxx');
C('otherclass:xxxx',1,2);
C('otherclass:module:xxxx',1,2);
禁用方法钩子
如果目标方法已被挂载钩子,则C函数内会运行钩子,如果不需要运行钩子,则使用以下语法
C('this:xxxx:-');
C('otherclass:xxxx:-');
C('otherclass:module:xxxx:-');
应用方法后加上:-,则不会运行方法的钩子,直接调用目标方法.
关于钩子的运行流程,详见:钩子
虚拟方法调用
虚拟方法调用只会调用方法所挂载的钩子,并不会执行方法本身
C('this:xxxx:~');
C('otherclass:xxxx:~');
应用方法后加上:~,只会运行这个方法的钩子,如果不存在钩子,则什么都不会运行.
某些模板中,需要埋入钩子,方便制作第三方应用插件,如ClassCMS后台中,几乎每个模板页面都存在 {this:head:~()} {this:body:~()}
通过这些代码,可以使第三方应用在两个方法上挂载钩子,可以很方便的在后台页面插入JS代码,完成对应的功能.