上期说了最简单最原始的模块制作 哪个方法是简单方便快捷,弊端就是不够个性化因为都是继承了 C M F S等我们不方便修改那么这期咱们就说说怎么个性化不用去集成那些类去做模块。
以下教程起码有一定的基础才能看得懂 文字会很少代码量比较大,看不懂的就不要看了看懂的点个赞就好。
以搜索模块为例:
`Info.php`
~~~
<?php
namespace app\search; //命名空间到 search 目录
class Info{
public static $keyword; //关键字,也是目录名
}
~~~
`config.php`
~~~
<?php
return [
//注意到没 这里就仅仅一行就足够了 不需要的配置项之间咔嚓掉就可以了 更权威的等待官方文档
'system_dirname' =>basename(__DIR__),
];
~~~
`admin\_menu.php` 和常规模块配置一样的方法就不注释了 请看上一篇文章
~~~
<?php
return [
'search'=>[
'title'=>'search',
'sons' =>[
[
'title'=>'功能设置',
'sons' =>[
[
'title'=>'参数设置',
'link' =>'setting/index',
],
[
'title'=>'热搜词管理',
'link' =>'content/index',
],
],
],
],
],
];
~~~
admin目录
Setting.php
~~~
<?php
namespace app\search\admin;
use app\common\controller\admin\Setting AS _Setting; //导入app\common\controller\admin\Setting 命名为 _Setting
//继承_Setting
class Setting extends _Setting{
/**
* 参数设置
* {@inheritDoc}
* @see \app\common\controller\admin\Setting::index()
调用父类的index方法
*/
public function index($group=null){
return parent::index($group);
}
}
~~~
熟悉TP的人会问 这里应该是 `return $this->fetch(); `才对 但是我可以很高兴的告诉你 这里吧需要 只要调用
~~~
parent::index
~~~
即可 他会输出模板 读取你的配置 配置参数下面会讲 当然了你要想自己输出一个模板也是可以的 创建对应的文件夹和文件即可
Content.php
~~~
<?php
namespace app\search\admin;
use app\common\controller\AdminBase;
use app\search\model\Content AS Model;
use app\common\traits\AddEditList;
class Content extends AdminBase{
use AddEditList;
protected $model;
protected $form_items=[];
protected $list_items;
protected $tab_ext;
protected function _initialize(){
parent::_initialize();
$this->model=new Model();
$this->form_items=[['text','keyword','关键词'],['text','searchnums','搜索次数'],];
}
/**
* 首页
* @return mixed|string
*/
public function index(){
$this->tab_ext=['page_title'=>'热搜管理',];
$this->list_items=[['keyword','关键词名称','text.edit'],['searchnums','搜索次数','text.edit'],];
$data=$this->model->order('searchnums','desc')->select();
return $this->getAdminTable($data);
}
/**
* 添加
* @return mixed|string
*/
public function add(){
$this->tab_ext=['page_title'=>'添加热搜词',];
return $this->addContent();
}
/**
* 修改
* @param null $id
* @return mixed|string
*/
public function edit($id=null){
$this->tab_ext=['page_title'=>'修改热搜词',];
if(empty($id)) $this->error('缺少参数');
$info=$this->getInfoData($id);
return $this->editContent($info,auto_url('index'));
}
/**
* 删除
* @param $ids
*/
public function delete($ids){
if(empty($ids)){
$this->error('ID有误');
}
$ids=is_array($ids)?$ids:[$ids];
if($this->model->destroy($ids)){
$this->success('删除成功','index');
}else{
$this->error('删除失败');
}
}
}
~~~
要是你看过插件教程 这里肯定不陌生 几乎一模一样
都是导入了`app\common\traits\AddEditList` 我们的个性化模块主要就是靠这个实现的 因为他有20多种字段供我们使用并且不需要去创建模型功能
下期我们着重分析下这个文件 因为现在我也不大会![](http://img.baidu.com/hi/jx2/j_0009.gif)其实还是等着官方教材比较好![](http://img.baidu.com/hi/jx2/j_0056.gif)
model 目录
Content.php 没啥介绍的就是定义了表前缀 这个可以不要 只要把 上面文件中的 `$this->model `改为db类即可 不过后台还是建议用模型功能 纯属个人习惯
install目录
info.php 模块信息定义了各种信息 自己打开就可以看到有注释
Install.php 安装文件没有安装流程的可以去掉
install.sql 安装的SQL 定义了我们的设置参数和表信息
Uninstall.php 卸载
hook 目录 模块钩子目录 也可以放到`application\common\hook ` 我个人觉得模块中的钩子调用放到自己的模块下好维护
关于钩子的下期继续分析 因为钩子太强大了
- 空白目录
- 平日使用的小应用,小技巧.
- 小技巧,二级域名绑定
- 需要的按年月日发帖量和点击排序的使用
- 每周赚取的积分排行使用
- 齐博x1第三季《模板风格的制作》系列
- 导航的高亮处理
- Default下index中的模板分析
- 005-新建一个空模板并在后台选择
- 008-模板页面之间的继承
- 010-对比系统布局模板添加一些必要代码
- 015-栏目的调用3
- 017-栏目的调用5
- 019-模块的路径访问
- 002-前台模板index_style目录的分析
- 004-风格样式资源目录public/static
- 006-增加一个布局模板layout
- 007-用{block}标记来分割布局模板
- 011-加一个导航把系统后台的菜单调出
- 013-栏目的调用1
- 014-栏目的调用2
- 016-栏目的调用4
- 018-栏目的终极方法get_sort
- 020-插件的路径访问
- 神盾工具箱007-标签云
- 标签云上线啦
- 云标签(更新版本1.2)
- 云标签(更新版本1.3)
- 标签云(更新1.4)
- 标签云(更新1.8)
- 标签云(更新3.0)
- 标签云(更新3.1)
- 标签云(更新3.3)
- 齐博x1第一季《新手入门》系列
- 001-下载安装x1
- 002-认识齐博x1的后台
- 003-系统设置之基本设置
- 004-系统设置之会员注册
- 005-系统设置之邮箱接口设置
- 006-系统设置之水印设置
- 007-系统设置之联系方式
- 008-系统设置之短信接口
- 009-系统设置之登录接口
- 010-系统设置之其它设置
- 011-数据库工具
- 012-会员管理
- 013-模块的简单说明
- 014-伪静态的相关设置
- 齐博x1第二季《基本数据操作》系列
- 001-标签的使用
- 002-标签的使用
- 003系统参数的调用
- 004-列表页的内置变量
- 005-内容页的内置变量
- 齐博X1《实用技巧》
- 任意页调用用户的收藏列表
- 巧用字段后面js属性来获取表单内容
- 给标题栏加个按钮,点击获取内容里文字截取一段做标题
- 简单的模块制作说明---初级
- V系列转换程序重新起航 支持v全系列转X系列(v7转换支持添加到搜索)
- 简单插件制作流程---友情链接解说版
- 钩子简单制作-tag加连接解说版
- 织梦转X1程序
- 简单的模块制作说明---进阶篇(更新中)
- 模型字段内容页面调用小技巧
- 水平凡、lvyecms转X1
- fun 函数 来个抛砖引玉 最简单的分类信息显示手机号归属地
- 再来个抛砖引玉 内容页根据关键词调用相关内容 新功能哦!
- 序列号使用图文教程
- OSS有巨大的优惠活动 特此开启一篇免流量教程帖
- 搜索结果调用其他字段的办法
- 关于安装七牛、腾讯、OSS等云储存无法上传提示没参数的解答(必看)
- 鉴于很多人问列表的筛选怎么放到首页、内容页等等地方 贴出方法
- 下面根据运营经验给大家讲下服务器一般配置
- 一段不错的小js提高一点点阅读体验 计算本文阅读所需的时长
- 自定义时间插件更新了!新增编辑的时候自定义时间(已经安装过的请看修改教程
- 制作好的应用导出上架教程
- 支付插件卸载后无法重新安装的解决办法
- 任意位置调用万能表单的方法 顺便借楼说下purl的作用
- 新版圈子店铺类实例和详细接口教程附模板文件
- 新版圈子专题类的数据教程
- 滑动门+下滑加载更多详细图解
- 使用宝塔面板php7.3的用户如果无法安装应用的解决办法
- V系列如果发现被黑的排查方法附修复办法
- 电脑版直播OBS Studio简单教程
- 站内引用添加到编辑器后在编辑器显示错乱?一招告诉你怎么解决
- linux 宝塔面板安装rtmp简陋教程 (已加视频版教程)
- 内容页上传MP3加载播放器简单教程
- 免费的导播台Mshow简单的使用攻略
- 万能fun 调用任意数据表 任意字段就是这么任性调用
- bui框架前端自定义配色基础属性
- 关于自定义时间或者其他钩子安装后无效的一个解决办法
- 网站后台上传的logo图丢失的一个排除解决办法
- 插件如何做前台风格切换的功能详解
- 齐博X1--标签变量大全
- 齐博X1--应用实例收集
- 嵌套-循环栏目,并列出子栏目下的内容
- 齐博X1--+关注,私信,TA的圈子
- 齐博X1--栏目多图字段的循环调用
- 任意位置调用当前用户提交的表单
- 循环栏目并调用栏目信息内容
- 头部底部菜单高亮设置
- 万能表单
- 全站调用验证码
- 万能导出excel数据教程
- 如何重新模块索引