用destoon 作为二次开发的小伙伴,可能会遇到destoon的模块不够用的情况,于是想自己自定义新建一个新模块,下面就让我新建一个模块:
我们一文章(article)模块为例新建一个rename模块:
1、在module模块下复制一个article文件夹,重名为rename,找到rename\admin\config.inc.php 文件,打开后修改文本内容,将其文件下的所有“文章”替换为“新模块”
<?php
defined('DT_ADMIN') or exit('Access Denied');
$MCFG['module'] = 'article'; //修改为rename
$MCFG['name'] = '新模块'; //将"文章"全部替换为"新模块"
$MCFG['author'] = 'DESTOON.COM';
$MCFG['homepage'] = 'www.destoon.com';
$MCFG['copy'] = true; //修改为false
$MCFG['uninstall'] = true;
$MCFG['moduleid'] = 0;//修改为100
$RT = array();
$RT['file']['index'] = '新模块管理';
$RT['file']['html'] = '更新网页';
$RT['action']['index']['add'] = '添加新模块';
$RT['action']['index']['edit'] = '修改新模块';
$RT['action']['index']['delete'] = '删除新模块';
$RT['action']['index']['check'] = '审核新模块';
$RT['action']['index']['expire'] = '过期新模块';
$RT['action']['index']['reject'] = '未通过';
$RT['action']['index']['recycle'] = '回收站';
$RT['action']['index']['move'] = '移动文章';
$RT['action']['index']['level'] = '品牌级别';
$CT = true;
?>
2、在同目录下的html.inc.php文件大概65~70行,将所有的“article”全部替换为“rename”
if($update) {
require MD_ROOT.'/article.class.php';//修改为“rename”
$do = new article($moduleid);//修改为“rename”
}
3、在同目录下的index.inc.php文件大概在3行,将所有的“article”全部替换为“rename”
defined('DT_ADMIN') or exit('Access Denied');
require MD_ROOT.'/rename.class.php';
$do = new rename($moduleid);
4、在moudle文件下找到 rename\article.class.php,并将所有的article全部替换为“rename”,而且还要将article.class.php文件重命名为rename.class.php
5、在moudle文件下找到 rename\my.inc.php,并将所有的article全部替换为“rename”。
6、在模板文件中复制brand文件夹(默认在template\brand),使其重命名为rename,然后在template\member文件夹中找到my_article.php,复制粘贴,使其重命为my_rename.php。
7、在根目录下找到一个lang\zh-ch\article.inc.php,复制粘贴一份使其重命名为rename.inc.php(语言包)
8、登录后台--》系统维护》模块管理》添加模块
模块目录填写“新模块”,所属模型:下来选择我们自定义的“新模块”,安装目录就写"rename",点击确定后更新缓存。
9、复制dt_article_21和的dt_article_data_21数据表并重名为dt_rename_100,dt_rename_data_100,
10、增加了新的模块后,如果使用tag的标签来调用,会出现调用的表格不对的情况,所以要在global.func.php中加入新的模块
function get_table($moduleid, $data = 0) {
global $DT_PRE, $MODULE;
$module = $MODULE[$moduleid]['module'];
$C = array('article', 'brand', 'buy', 'down', 'info', 'photo', 'sell', 'video','rename','xxxxxx','xxxxx');
if($data) {
return in_array($module, $C) ? $DT_PRE.$module.'_data_'.$moduleid : $DT_PRE.$module.'_data';
} else {
return in_array($module, $C) ? $DT_PRE.$module.'_'.$moduleid : $DT_PRE.$module;
}
}