让这个模块跑起来,太费劲了,多半原因是自己太粗心,opencmf.php中“uid”写成了“pid”,de了好几天的bug也没有搞出来,又加上最近发生了些事(brokenhearted)。。。

上报错图:

显示147行错误。而且打开那个页面apache占用率能到了100%+

上正事,让这个模块跑起来:

1.编辑Equip/opencmf.php给后台列表添加url

    <?php
// 模块信息配置
return array(
// 模块信息
'info' => array(
'name' => 'Equip',
'title' => '设备',
'icon' => 'fa fa-newspaper-o',
'icon_color' => '#9933FF',
'description' => 'BZU网络设备模块',
'developer' => 'pangPython',
'website' => 'http://www.bzu.edu.cn',
'version' => '1.0.0',
'dependences' => array(
'Admin' => '1.1.0',
),
), // 用户中心导航
'user_nav' => array( ), // 模块配置
'config' => array( 'show_equip' => array(
'title' => '前台设备总体情况',
'type' => 'radio',
'options' => array(
'1' => '显示',
'0' => '关闭',
),
'value' => '1',
), 'show_repaire' => array(
'title' => '是否开启前台报修',
'type' => 'radio',
'options' => array(
'1' => '开启',
'0' => '关闭',
),
'value' => '1',
), 'show_repaire_phone_num' => array(
'title' => '报修手机号',
'type' =>'textarea',
'value' => '',
), ), // 后台菜单及权限节点配置
'admin_menu' => array( '1' => array(
'id' => '1',
'pid' => '0',
'title' => '设备',
'icon' => 'fa fa-newspaper-o',
), '2' => array(
'pid' => '1',
'title' => '操作列表',
'icon' => 'fa fa-folder-open-o',
), '3' => array(
'pid' => '2',
'title' => '模块配置',
'icon' => 'fa fa-wrench',
'url' => 'Equip/Test/index',
), '4' => array(
'pid' => '2',
'title' => '设备管理',
'icon' => 'fa fa-dashboard',
'url' => 'Equip/DeviceManage/index',
), '5' => array(
'pid' => '4',
'title' => 'add',
'url' => 'Equip/DeviceManage/add',
), '6' => array(
'pid' => '2',
'title' => '设备类型',
'icon' => 'fa fa-th-large',
'url' => 'Equip/DeviceManage/index',
), '7' => array(
'pid' => '2',
'title' => '设备报修',
'icon' => 'fa fa-user',
), '8' => array(
'pid' => '2',
'title' => '设备概况',
'icon' => 'fa fa-area-chart',
), '9' => array(
'pid' => '2',
'title' => '拓展',
'icon' => 'fa fa-cogs',
), '10' => array(
'pid' => '2',
'title' => '关于模块',
'icon' => 'fa fa-commenting-o',
), ), );

  2.建立页面的控制器

新建DeviceManageAdmin.class.php

Equip/Admin/DeviceManageAdmin.class.php

    <?php
/**
* Created by PhpStorm.
* User: root
* Date: 16-3-23
* Time: 下午10:10
*/
namespace Equip\Admin;
use Admin\Controller\AdminController;
use Common\Util\Think\Page;
class DeviceManageAdmin extends AdminController { public function index(){
//使用Builder快速建立列表页面
$builder = new \Common\Builder\ListBuilder();
$builder->setMetaTitle('设备管理') //设置页面标题
->addTableColumn('id', 'ID')
->addTableColumn('create_time', '设备名称', 'time')
->addTableColumn('sort', '排序', 'text')
->addTableColumn('status', '状态', 'status')
->addTableColumn('right_button', '操作', 'btn')
->setExtraHtml('<div class="alert alert-success">请点击左侧的列表树进行操作</div>')
->display(); } public function add(){ } }

  效果图:

完成了。

其实思路也不难:在配置文件中添加按钮的跳转链接,创建控制器,这里的控制器事opencmf重写的命名为abcdAdmin.class.php,Model可以不写,试图可以使用opencmf的Builder创建。

corethink功能模块探索开发(四)让这个模块跑起来的更多相关文章

  1. corethink功能模块探索开发(十四)后台编辑按钮

    效果图: 1.添加下图55&58行代码 2.实现edit方法 位于Equip/Admin/DeviceRepaireAdmin.class.php中 public function edit( ...

  2. corethink功能模块探索开发(一)根据已有模块推测目录结构

    corethink是opencmf的一个开源版本,如果自己要进行二次开发,开发模块等,需要在官方开一个中级会员(50大洋吧),官网的一个“一键生成demo”就能给你最基础的目录结构,从而可以在此基础上 ...

  3. corethink功能模块探索开发(十七)opencmf.php 配置文件

    图样: opencmf.php存在于每个模块的根目录,是模块配置文件. 能进行持久化配置参数保存,一开始我以为是写文件或者做缓存,后来在数据库中发现admin_module表,存储了每个模块的配置参数 ...

  4. corethink功能模块探索开发(三)让这个模块可见

    感觉corethink把thinkphp的思想复用到淋漓尽致. 1.把opencmf.php文件配置好了后台该模块的菜单就能在安装后自动读取(分析好父子关系,否则页面死循环,apache资源占用率10 ...

  5. corethink功能模块探索开发(二)让这个模块可安装

    要想让这个模块可安装,只需要在opcmf.php文件中写一些配置数据就行 随便写点 Equip/opencmf.php <?php // 模块信息配置 return array( // 模块信息 ...

  6. corethink功能模块探索开发(六)让这个模块在前台显示

    效果图:(注意右上角) 实现模块的前台显示只需要在模块目录中的Controller目录建立IndexController.class.php,实现index方法.继承HomeController.就能 ...

  7. corethink功能模块探索开发(五)开启这个模块的配置

    上图: 主要就是两点. 1.在opencmf.php中填写好配置页面的按钮还是文本域 Equip/opencmf.php只需要注意主要的配置数组的内容 <?php // 模块信息配置 retur ...

  8. corethink功能模块探索开发(十八)前台页面插入jit前端数据可视化库

    效果图: 1.静态文件放入View目录中 在View目录下新建Public目录,在Public目录下新建js.css目录. 把jit的资源放入对应目录中 2.在html中引入jit Applicati ...

  9. corethink功能模块探索开发(十六)后台搜索功能

    效果图: 代码很简单,就是添加搜索框,搜索字段,在初始化页面查询的时候添加查询条件. 1.添加搜索框 添加到删除按钮后边. ->setSearch('请输入设备名称/MAC/宿舍号', U('i ...

随机推荐

  1. Atitit.js this错误指向window的解决方案

    Atitit.js this错误指向window的解决方案 1.1. 出现地点and解决之道1 1.2. call,apply和bind这三个方法2 1.2.1. Function.prototype ...

  2. [容器]gcr.io镜像下载

    下载gcr.io的镜像hosts文件  把下面两行加入到/etc/hosts中. 更多在这里http://wst.so/files/hosts 61.91.161.217 gcr.io 61.91.1 ...

  3. SQLServer 存储过程中不拼接SQL字符串实现多条件查询

    以前拼接的写法 set @sql=' select * from table where 1=1 ' if (@addDate is not null) set @sql = @sql+' and a ...

  4. python模块学习之re

    正则表达式本质就是表示某种规则的一串字符. 匹配的规则叫做模式(pattern),模式作用于对象. 模式和对象可以是Unicode或者字节,但是,不能够混用,比如:模式为Unicode,对象为字节,像 ...

  5. java获取真实的ip地址

    直接上代码,获取请求主机的IP地址,如果通过代理进来,则透过防火墙获取真实IP地址 public class IPUtil { private static final Logger logger = ...

  6. linux 免密登录

    ssh-keygen -t rsa -P "" ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器地址

  7. 第一百七十六节,jQuery,插件

    jQuery,插件 学习要点: 1.插件概述 2.验证插件 3.自动完成插件 4.自定义插件 插件(Plugin)也成为 jQuery 扩展(Extension),是一种遵循一定规范的应用程序接口编 ...

  8. 没有Promise的时候自己处理复合异步请求

    function getList(options){ $.ajax(success:funciton(){ if(options.callback) options.callback.call(); ...

  9. java MD5工具类

    package com.common.tools; import java.security.MessageDigest; /** * MD5加密工具类 * <功能详细描述> * * @a ...

  10. staitc_cast,const_cast....

    #include <iostream> using namespace std; int main() { //1.const_cast //const int a = 10; //int ...