知识学习

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3492|回复: 0

Destoon 自定义模块

[复制链接]

升级   100%

152

主题

0

回帖

752

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
752
发表于 2021-4-2 22:02:22 | 显示全部楼层 |阅读模式
1、先在 module 目录下,新建模型目录,如:book -> admin -> config.inc.php

config.inc.php 配置如下:

<?php
defined('IN_DESTOON') or exit('Access Denied');
$MCFG = array();
$MCFG['module'] = 'book';
$MCFG['name'] = '图书';
$MCFG['author'] = 'bananaplan';
$MCFG['homepage'] = 'www.baidu.com';
$MCFG['copy'] = true;
$MCFG['uninstall'] = true;
$MCFG['moduleid'] = xxx;

$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']['recycle'] = '回收站';

$CT = true;
?>
2、在 file/setting 下,新建 module-xxx.php 和 book.sql 文件,内容如下:

<?php
defined('IN_DESTOON') or exit('Access Denied');
return array(
    'moduleid' => xxx,
    'name' => '图书',
    'moduledir' => 'read',
    'module' => 'book',
    'ismenu' => '0',
    'domain' => '',
    'linkurl' => 'http://xxx.xx/read/',
);
?>
DROP TABLE IF EXISTS `destoon_book`;
CREATE TABLE `destoon_book` (
  `itemid` bigint(20) unsigned NOT NULL auto_increment,
  `catid` int(10) unsigned NOT NULL default '0',
  `title` varchar(100) NOT NULL default '',
  `introduce` varchar(255) NOT NULL default '',
  `price` decimal(10,2) unsigned NOT NULL default '0.00',
  `tag` varchar(100) NOT NULL default '',
  `keyword` varchar(255) NOT NULL default '',
  `hits` int(10) unsigned NOT NULL default '0',
  `thumb` varchar(255) NOT NULL default '',
  `thumb1` varchar(255) NOT NULL default '',
  `thumb2` varchar(255) NOT NULL default '',
  `addtime` int(10) unsigned NOT NULL default '0',
  `adddate` date NOT NULL default '0000-00-00',
  `edittime` int(10) unsigned NOT NULL default '0',
  `editdate` date NOT NULL default '0000-00-00',
  `status` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`itemid`)
) TYPE=MyISAM COMMENT='图书';

DROP TABLE IF EXISTS `destoon_book_data`;
CREATE TABLE `destoon_book_data` (
  `itemid` bigint(20) unsigned NOT NULL default '0',
  `content` mediumtext NOT NULL,
  PRIMARY KEY  (`itemid`)
) TYPE=MyISAM COMMENT='图书内容';
3、在 module/book/admin 下,新建 install.inc.php,内容如下:

<?php
defined('IN_DESTOON') or exit('Access Denied');
$setting = include(DT_ROOT.'/file/setting/module-xxx.php');
update_setting($moduleid, $setting);
$sql = file_get(DT_ROOT.'/file/setting/'.$module.'.sql');
sql_execute($sql);
include DT_ROOT.'/module/'.$module.'/admin/remkdir.inc.php';
?>
4、在 module/book/admin 下,新建 remkdir.inc.php,内容如下:

<?php
defined('IN_DESTOON') or exit('Access Denied');
file_copy(DT_ROOT.'/api/ajax.php', DT_ROOT.'/'.$dir.'/ajax.php');
install_file('index', $dir, 1);
install_file('list', $dir, 1);
install_file('show', $dir, 1);
?>
5、最后,在 module/book/admin 下,新建 menu.inc.php,内容如下:

<?php
defined('IN_DESTOON') or exit('Access Denied');
$menu = array(
        array("添加".$name, "?moduleid=$moduleid&action=add"),
        array($name."列表", "?moduleid=$moduleid"),
        array("审核".$name, "?moduleid=$moduleid&action=check"),
        array("分类管理", "?file=category&mid=$moduleid"),
        array("更新数据", "?moduleid=$moduleid&file=html"),
        array("模块设置", "?moduleid=$moduleid&file=setting"),
);
?>
至此,已配置完毕新的模型,基于此模型创建模块的一切数据和配置准备就绪:模型基本配置【config.inc.php】、模块设置模版【module-xxx.php】、数据库创建脚本【book.sql】、安装程序【install.inc.php、remkdir.inc.php】和 后台模块管理菜单【menu.inc.php】。下面可以新建模块了。

在模块管理中,新建继承 book 模型的模块,如新建了一个叫 读书 的模块,模块目录为 read。

模块创建成功后,系统会创建 read 前台文件夹,里面有 config.inc.php 等前台代码文件,同时,book 模型的安装程序会设置模块配置到 file/cache/module-xxx.php,并同步 yzmg_setting 数据表,执行数据表创建脚本,新建此模块所需的所有表结构,安装完毕。

虽然基于新模型的模块安装完毕了,但是后台管理和前台功能都还没有,所以下面就要进入先开发后台功能,再开发前台功能的过程了:

例如:

在 module/book/admin 下新建 index.inc.php,它是 book 模块后台功能的入口文件,在此文件中,编写后台逻辑代码,后台模版放在 module/book/admin/template 下。

在 module/book 下,一般要新建如 common.inc.php、global.func.php、book.class.php 的代码文件,以实现前后台统一的数据配置和业务逻辑代码的复用。

最后,基于此模块框架,完成后台和前台功能的开发。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|知识学习 ( 鲁ICP备20015483号 )

GMT+8, 2026-5-13 21:59 , Processed in 0.113354 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表