首页 > CMS > PhpCMS > 正文

PHPCMS模块的安装和卸载

2024-09-10 07:16:06
字体:
来源:转载
供稿:网友

PHPCMS模块的安装和卸载

假设我安装的模块名为 "mytest"

步骤如下:

1.新建文件夹 /phpcms/modules/mytest,在 mytest 下新建3个文件夹和2个文件,如上图红色线框.

install:安装文件存放文件夹

uninstall:卸载文件存放文件夹

templates:后台模板文件存放文件夹

index.php:前台控制器

mytest_admin.php:后台控制器

index.php 文件内容:

  1. <?php   
  2. defined('IN_PHPCMS'or exit('No permission resources.');   
  3. class index {   
  4.     public function init(){   
  5.         echo '模块mytest前台控制器的默认方法';   
  6.     }   
  7.     public function test(){   
  8.         include template('mytest''1'); // 输出模板:mytest 模块下的 1.html (1.html内容请往下看!)   
  9.     }   
  10. }  
  11. ?> 

mytest_admin.php 文件内容:

  1. <?php   
  2. defined('IN_PHPCMS'or exit('No permission resources.');   
  3. pc_base::load_app_class('admin''admin', 0);   
  4. class mytest_admin extends admin {   
  5.        
  6.     public function __construct() {   
  7.         parent::__construct(); // 必须先执行父类 admin 的构造方法   
  8.     }   
  9.        
  10.     public function init(){   
  11.         include $this->admin_tpl('index'); // 模块mytest的后台菜单---默认页:mytest/templates/index.tpl.php   
  12.     }   //Vevb.com  
  13.        
  14.     public function setting(){   
  15.         include $this->admin_tpl('setting'); // 模块mytest的后台菜单---设置页:mytest/templates/setting.tpl.php   
  16.     }   
  17.        
  18. }   
  19. ?> 

templates/index.tpl.php

  1. <?php defined('IN_ADMIN'or exit('No permission resources.');?>   
  2. <?php include $this->admin_tpl('header''admin');?>   
  3. 模块mytest的后台菜单---默认页   
  4. </body>   
  5. </html> 

templates/setting.tpl.php

  1. <?php defined('IN_ADMIN'or exit('No permission resources.');?>   
  2. <?php include $this->admin_tpl('header''admin');?>   
  3. 模块mytest的后台菜单---设置页   
  4. </body>   
  5. </html> 

2.在 mytest/install/ 下,新建 languages/zh-cn/mytest.lang.php、templates/1.html、config.inc.php、extension.inc.php、model.php、module.sql、mytest.sql 文件.

/phpcms/modules/mytest/install/languages/zh-cn/mytest.lang.php:语言文件,此文件将被复制到 /phpcms/languages/zh-cn/mytest.lang.php.

  1. <?php 
  2. $LANG['setting_updates_successful'] = '配置更新完成'
  3. ?> 

/phpcms/modules/mytest/install/templates/1.html:前台模板,此文件将被复制到 /phpcms/templates/default/mytest/1.html

前台页面访问测试:www.Vevb.com/index.php?m=mytest&c=index&a=test  

/phpcms/modules/mytest/install/config.inc.php:模块相关介绍信息

  1. <?php    
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('INSTALL'or exit('Access Denied');   
  4. $module = 'mytest';   
  5. $modulename = '我的测试模块';   
  6. $introduce = '我的测试模块cccccc';   
  7. $author = 'malinjie66 team';   
  8. $authorsite = 'http://www.Vevb.com';   
  9. $authoremail = 'malinjie66@126.com';   
  10. ?> 

/phpcms/modules/mytest/install/extension.inc.php:模块后台管理的菜单

  1. <?php   
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('INSTALL'or exit('Access Denied');   
  4. $parentid = $menu_db->insert(array('name'=>'mytest''parentid'=>'29''m'=>'mytest''c'=>'mytest_admin''a'=>'init''data'=>'''listorder'=>0, 'display'=>'1'), true); // 这个菜单会显示在左侧   
  5. $menu_db->insert(array('name'=>'mytest_setting''parentid'=>$parentid'm'=>'mytest''c'=>'mytest_admin''a'=>'setting''data'=>'''listorder'=>0, 'display'=>'1')); // 这个菜单会显示在右侧页签   
  6. $language = array('mytest'=>'测试XX''mytest_setting'=>'设置'); // 给菜单设置中文显示词   
  7. ?> 

/phpcms/modules/mytest/install/model.php:模型文件(该文件返回一个数组,所以可以有多个模型文件)

  1. <?php     
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('INSTALL'or exit('Access Denied');   
  4. return array('mytest'); // 模型文件 /phpcms/model/mytest_model.class.php 必须手动建立!内容如下:   
  5. ?> 

/phpcms/model/mytest_model.class.php

  1. <?php   
  2. defined('IN_PHPCMS'or exit('No permission resources.');   
  3. pc_base::load_sys_class('model''', 0);   
  4. class mytest_model extends model {   
  5.     function __construct() {   
  6.         $this->db_config = pc_base::load_config('database'); // 加载数据库配置   
  7.         $this->db_setting = 'default'// 连接默认数据库   
  8.         $this->table_name = 'mytest';  // 设置表名   
  9.         parent::__construct();         // 执行 model 类的构造方法   
  10.     }    
  11. }   
  12. ?> 

/phpcms/modules/mytest/install/module.sql:在module表中插入一条记录(mytest模块相关的信息)

  1. INSERT INTO `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`) VALUES ('mytest''我的测试模块''mytest/', 0, '1.0''我的测试模块''', 0, 0, '2013-10-05''2013-10-12');  

/phpcms/modules/mytest/install/mytest.sql:mytest模块要用到的表结构

  1. DROP TABLE IF EXISTS `phpcms_mytest`;   
  2. CREATE TABLE IF NOT EXISTS `phpcms_mytest` (   
  3.   `id` int(10) unsigned NOT NULL auto_increment,   
  4.   `catid` int(10) unsigned NOT NULL default '0' COMMENT '栏目id',   
  5.   `siteid` mediumint(6) unsigned NOT NULL default '0' COMMENT '站点ID',   
  6.   `contentid` int(10) unsigned NOT NULL default '0' COMMENT '文章id',   
  7.   `total` int(10) unsigned NOT NULL default '0' COMMENT '总数',   
  8.   `n1` int(10) unsigned NOT NULL default '0',   
  9.   `n2` int(10) unsigned NOT NULL default '0',   
  10.   `n3` int(10) unsigned NOT NULL default '0',   
  11.   `lastupdate` int(10) unsigned NOT NULL default '0' COMMENT '最后更新时间',   
  12.   PRIMARY KEY  (`id`),   
  13.   KEY `total` (`total`),   
  14.   KEY `lastupdate` (`lastupdate`),   
  15.   KEY `catid` (`catid`,`siteid`,`contentid`)   
  16. ) TYPE=MyISAM;   

3.在 mytest/uninstall/ 下,新建 extension.inc.php、model.php、mytest.sql.

extension.inc.php 文件内容:

  1. <?php   
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('UNINSTALL'or exit('Access Denied');   
  4. ?> 

model.php 文件内容:

  1. <?php   
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('UNINSTALL'or exit('Access Denied');    
  4. return array('mytest');   
  5. ?> 

mytest.sql 文件内容:

DROP TABLE IF EXISTS `phpcms_mytest`;  

访问效果:

PHPCMS模块的安装和卸载

PHPCMS模块的安装和卸载

extention.inc.php  千万不要写成 extension.inc.php.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表