欢迎您“为梦者”,WMCMS帮助中心首页

系统模块如何进行二次开发不影响升级?

本程序为二次开发预留了开发文件,并且不会影响程序原功能。

如果想要开发某个模块的功能,本文以小说模块为例子。


  1. 在小说模块novel文件夹下面建立二次开发文件novel.plugin.php,文件内容如下即可。

  2. 如果调用方法是public类型的循环方法,在前置和后置方法时候必须接受传入的参数,参数个数和public循环方法的个数一致。

  3. 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之后回调这个方法。


NYVDRJD86`9[5W)$T){[[O8.png