ClassCMS

应用方法调用

通过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代码,完成对应的功能.