zoukankan      html  css  js  c++  java
  • phpcms 新建模块安装

    1.安装配置---小问题:

     

    估计就我这么傻 T-T  ,改成自己的目录名。

    2.模块的目录:

    模块存放在modules文件夹里,打开这个文件夹,里面的一个文件夹代表一个模块。

    3.建立模块以及其基本目录结构。

    现在新建个test模块,要在phpcms/modules目录下新建个myself目录(这个test目录就是模块)

    再依次新建classesfunctionsinstalltempldatesuninstall目录

    4.创建了模块的基本目录以后,需要为新建模块做安装准备

    4.1 新建myself模块的配置文件

    install目录下新建一个config.inc.php文件,

    defined('IN_PHPCMS') or exit('Access Denied');

    defined('INSTALL') or exit('Access Denied');

    $module = 'myself'; //模块的标识符,唯一性,不可重名,应该和目录同名

    $modulename = '挂件'; 

    $introduce = '测试模块,用来测试的';

    $author = '挂件';

    $authorsite = 'http://www.guajian.com';

    $authoremail = 'guajian@sina.com';

    配置好了以后保存,然后回到后台,更新缓存,点击模块管理,可以看到:

    不用点击安装。

    4.2 将模块添加到左侧菜单栏

    在新建的myself模块目录下的install目录里,新建个extention.inc.php文件,,填写以下代码,注意,parentid中的29是上面一级菜单 模块 这个菜单的Id号,如果要在主菜单显示,可以parentid的值改为0,如果要在指定菜单中显示,可以把parentid改成对应菜单id 的值即可,菜单的id可以在扩展中的菜单管理中查看。

     

    <?php

    defined('IN_PHPCMS') or exit('Access Denied');

    defined('INSTALL') or exit('Access Denied');

    $parentid=$menu_db->insert(array('name'=>'myself',

    'parentid'=>29,

    'm'=>'myself',

    'c'=>'myself',

    'a'=>'init',

    'data'=>'',

    'listorder'=>0,

    'display'=>'1'

    ),true);

    // 这里可以生成管理菜单,也就是生成当前菜单的子菜单

    $language=array('myself'=>'挂件');

    ?>

    4.3新建模块后台类文件(类文件就是控制器) 和 模板文件(就是视图)-MVC

    phpcmsurl是这样的index.php?m=admin&c=index&a=public_main,

    m的值表示是模块名,c表示是类名,a表示的是类的方法名,在上一步中,我们已经 向菜单表中插入一条模块名为test,类名为test,方法名为init的条菜单记录。所以就 必需在myself模块(myself根目录)中新建一个myself类文件,并添加init方法,代码如下。

     

    <?php

    defined('IN_PHPCMS') or exit('No permission resources.');

    pc_base::load_app_class('admin','admin',0);

    class myself extends admin {

           function __construct() {

               parent::__construct();

           }

          public function init() {

               include $this->admin_tpl('myself');

         }

    }

    ?>

    上述init方法调用了myself模版,所以必需要在myself/templdates目录下新建对应模块,现在新建个myself.tpl.php文件,  命名规则是 .tpl.php

     

    <?php

    defined('IN_ADMIN') or exit('No permission resources.');

    include $this->admin_tpl('header','admin');

    ?>

    <div class="pad_10">

    我可是你的挂件啊

    </div>

    </body>

    </html>

     4.4最后一步,安装模块:

    安装模块就要往数据库表单里添加信息,所以先写一个插入模块信息的sql文件

    install文件夹里新建个modules.sql文件,代码如下

    INSERT INTO `v9_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`)  VALUES ('myself', '挂件', 'myself/', '0', '1.0', '', '挂件', '0', '0', '2017-05-03', '2017-05-03');

     

    iscore如果为1,表示是系统内置模块,是必选模块,对于二次开发来说,写为0即可。disabled如果为1表示禁止卸载,如果为0表示可卸载,根据需求,当前要实现的是可安装和卸载。setting是模块的配置变量,用来设置模块的一些基本信息,值为一个字符串数组。例如,表单向导中的模块配置功能。

    4.5创建数据表模型类

    各模块的数据表模型位于:phpcms/model/ 目录下。

    数据模型文件的命名规则建议为:数据表名称 + '_model.class.php'

    打开install目录,新建model.php文件.

    写上以下代码

    defined('IN_PHPCMS') or exit('Access Denied');

    defined('INSTALL') or exit('Access Denied');

    return array('myself');

     

    作用是用来定义模块的表名,在安装时模块时,系统会根据这个数组的值调用同目录下的同名sql文件。

    而在phpcms中,一个表对应一个模型类文件。因为,上面在model文件中的返回数组中添加了一个值 arraymyself),对应的,就要新建一个同名的sql文件和一个model文件。

    先在install目录下新建一个myself.sql文件

     

    DROP TABLE IF EXISTS `v9_test`;

    CREATE TABLE `v9_test (

      `id` mediumint(8) unsigned DEFAULT '0',

      `name` char(20) NOT NULL,

      PRIMARY KEY (`id`),

      KEY `id` (`id`)

    ) TYPE=MyISAM COMMENT '挂件表';

    作用:在数据库生成了一张当前模块需要使用的名为myself的表

    然后在phpcms/model目录新建个myself_model.class.php文件

     

    <?php

      defined('IN_PHPCMS') or exit('No permission resources.');

      pc_base::load_sys_class('model', '', 0);

      class myself_model extends model

      {

         public function __construct()

          {

             $this->db_config = pc_base::load_config('database');

             $this->db_setting = 'default';

             $this->table_name = 'myself';

             parent::__construct();

         }

      }

     ?>

    5.安装

    做好了上述准备,进入后台,更新缓存,点击模块管理,找到添加的模块点击安装

     

    确定以后,安装成功后会自动更新栏目缓存。 等待更新完成后,退出登录,重新登录后台。

     

    点击 挂件栏目

     

    就可以看到刚才我们设置的模版的内容,

    myself/templdates目录下myself.tpl.php文件。

    6.卸载自己添加的模块

    uninstall 目录里 新建  extention.inc.php 以及 model.php

     

    Extention 里代码如下

     

    Model

     

    因为用到了表 myself, 在install里有myself.sql  创建了表,在unstall里也应该有mysql.Sql用于删除表.

     

    配置好以后就可以进行模块的卸载了,卸载掉以后,逃退出重新登录才能看到左侧菜单栏的效果。

    注意:

    install 里面还有两个文件夹,模块的语言文件名和模块的名称一样,在模块的install目录下的languages目录对应的语言新建一个mysql.lang.php文件,在安装时,系统会自动把文件拷贝到phpcms/languages下对应的语言目录下。

    templates 用于存放前台模版,在安装前把前台所需要的模板,全部放在这个目录。模块安装时,系统会自动在网站根目录下的templdates目录中,新建一个和模块名一样的目录,把install/templates目录下的模板文件拷贝一份进来。

    前台的逻辑处理文件直接在模块根目录下新建即可。

     

    7.接下来就是模版的开发了。

    有些时候可能会用到bootstrap,那么bootstrap应该放到哪里呢? 放到static文件夹里吗?

    这个时候要看情况了, 有两种方法

    1.直接放在和static同级的目录下,因为phpcms前台都是通过入口文件index.php 访问的,staticindex.php同级,放在一起就可以直接引用

     

    bs 是文件夹名字。

    2.既然有JS_PATH,CSS_PATH ,那就造一个BS_PATH

    phpcms目录下有base.php,里面定义了JS_PATH,复制一份修改,

    因为加载了配置文件system,找到caches/configs/system.php 大概30行,复制修改,这样bs路径就设置好了。

     

    然后把文件放到指定位置(static目录里,我命名是bs),再到模版里引入就可以了。

     

    这是在前台模版里引入的样式。

     

    参考视频: 网易云课堂里有phpcms二次开发教程,主要是安装和模版开发,但是也是用的pc标签,但是实际开发中很少用pc,比如我就是用php,

    开发新模块算是一个大的项目需求,正常的项目需求就是对已有的模块进行功能的增删改。

  • 相关阅读:
    【算法】Kruskal算法(解决最小生成树问题) 含代码实现
    POJ 1182 食物链 (并查集解法)(详细注释)
    APICloud关闭Key Building Resolve
    ubuntu配置国内源
    缓存穿透、缓存击穿、缓存雪崩概念及解决方案
    POST请求和GET请求的区别
    ibatis 中#和 $ 符号的区别
    自动装箱和自动拆箱理解
    回文串算法说明(带注释)
    Object 对象有哪些方法?
  • 原文地址:https://www.cnblogs.com/benpaodelulu/p/6874201.html
Copyright © 2011-2022 走看看