多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
新提供某个页面的自定义模板给用户使用的话,需要给系统添加相应的字段。方法有两个,第一个是需要用户自己动手,如下 图所示。按下面的方法添加完之后,还需要进入相应的频道或插件参数设置那里添加上你的模板路径。相对来说这样的操作,对用户体验不是太好。太麻烦了。 ![](https://img.kancloud.cn/ca/04/ca047118cd77e1ebd142cdb474e9a618_1184x664.png) 第二种方法就是开发者麻烦些,用户不需要做任何设置。进入频道或者是插件的程序目录下面找到upgrade目录,如果此目录不存在就新建这样一个目录,比如 `\plugins\form\upgrade\` 这是万能表单插件的目录 `\application\cms\upgrade\` 这是CMS频道的目录 `\application\common\upgrade\` 这是系统的目录 然后在相应的目录下面新建一个PHP文件,文件名首字母大写,比如`Abc.php`,为避免文件名冲突,建议以自己的个性用户名字母命名。效果如下图所示: ![](https://img.kancloud.cn/95/9e/959e34195bbae0b6a986cb245b32e388_1822x868.png) 代码如下,大家可以复制回去,对应的修改5处位置,如上图所示的位置 ~~~ <?php namespace plugins\form\upgrade ; //插件的话,就是 plugins\插件目录\upgrade; 频道的话就是 app\频道目录名\upgrade; 系统就换成 app\common\upgrade; use think\Db; class Abc{ //文件名,首字母写大写 protected static $sysname = 'form'; //插件或频道目录名 系统就使用index protected static $template = 'pc_index_signin_index_index'; //自定义模板变量名 protected static $path = 'index_style/default/abc.htm'; //你所制作的模板路径,前台风格就index_style开头,会员中心就 member_style 开头 后台是 admin_style 开头 protected static $title = '登录页PC模板路径'; //自定义模板的页面名称 public static function up(){ if (self::$sysname!='index') { if (modules_config(self::$sysname)) { $sysid = modules_config(self::$sysname)['id']; }else{ $sysid = plugins_config(self::$sysname)['id']; $sysid = -$sysid; } } $ifsys = $type = 0; $template = self::$template; if (self::$sysname!='index') { $type = Db::name('config_group')->where('sys_id',$sysid)->value('id'); } if (!$type || self::$sysname=='index') { $type = 1; $sysid = 0; } $path = self::$path; $title = self::$title; if (!Db::name('config')->where('sys_id',$sysid)->where('c_key',$template)->find()) { into_sql("INSERT INTO `qb_config` (`id`, `type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`) VALUES(0, {$type}, '{$title}', '{$template}', '{$path}', 'text', '', $ifsys, '', '一般留空,index_style/开头,比如index_style/abc.htm', 0, '{$sysid}'); "); }else{ Db::name('config')->where('sys_id',$sysid)->where('c_key',$template)->update([ 'c_value'=>$path, ]); } } } ~~~ 这个文件创建好后,你可以本机测试看看有没有报错。 修改 `\application\index\controller\Index.php` 查找`return $this->fetch('../index');` 在他上面一行添加如下代码 `\plugins\form\upgrade\Abc::up();` 如下图所示,保存后,刷新几次网站主页,看看页面是否报错,没报错的话,就查看一下后台,是否自动加上了这个字段。 ![](https://img.kancloud.cn/24/86/2486bc3cf93b37af8de86ee9d9cb9844_1389x870.png) 特别提醒一下,`\plugins\form\upgrade\Abc::up();` 这个代码需要做相应的修改,如下图所示,必须有反斜杠开头,结尾`::up();`结尾 ![](https://img.kancloud.cn/03/28/032881dd229c3ff32f3e569e9b9ac900_1562x681.png) > 后续多人制作个性模板风格的话,我们会考虑提供一个插件,让他自动生成上面的升级文件。