本程序为二次开发预留了开发文件,并且不会影响程序原功能。
如果想要开发某个模块的功能,本文以小说模块为例子。
在小说模块novel文件夹下面建立二次开发文件novel.plugin.php,文件内容如下即可。
如果调用方法是public类型的循环方法,在前置和后置方法时候必须接受传入的参数,参数个数和public循环方法的个数一致。
class novellabelplugin extends novellabel { function __construct(){} function PublicNovelBefore($data,$blcode,$level='') { //循环数据 foreach ($data as $k => $v) { //在前置方法进行前置标签设置 $arr2=array( 'aa'=>'这是aa', '唯一'=>$v['novel_name'].rand(1000,9999).time(), ); //调用标签设置方法,这里设置后会在novel:PublicNovel读取设置好的标签进行替换。 //第一个参数为方法名字,第二个为多维数组的键名【可以为空进行一维数组保存】,第三个为标签数组 tpl::SetBeforeLabel('PublicNovel',$k, $arr2); } } //前置方法 function ReadLabelBefore() { } //后置方法 function ReadLabelAfter() { } }
特别说明:ReadLabel是novel.label.php 里面的方法,对应阅读页面。
ReadLabelBefore:程序执行novellabel->ReadLabel之前先调用这个方法。
在前置方法return false,将不会运行主要方法novellabel->ReadLabel。
ReadLabelAfter:程序执行novellabel->ReadLabel之后回调这个方法。