■补课:

1.phpcms v9帮助文件,上面会写关于二次开发的一些方法。
http://v9.help.phpcms.cn/

2.找一个后台还没安装的模块,先把代码看一边。比如dianping模块
 
3.为你的phpcms创建一个模块的一般开发流程是:
  1. 创建数据库和数据表;(没有数据库操作可略过)
  2. 创建模块目录
  3. 创建模块控制器类;
  4. 创建模块类与模块函数;(如果只是简单的模块可以不必创建)
  5. 创建模板文件;
  6. 运行和调试。
 
■文件目录结构

根目录

|  –  api  接口文件目录
|  –  caches 缓存文件目录
       |  – configs 系统配置文件目录
       |  – caches_* 系统缓存目录
|  –  phpcms  phpcms框架主目录
       |  – languages 框架语言包目录
       |  – libs 框架主类库、主函数库目录
       |  – model 框架数据库模型目录
       |  – modules 框架模块目录
       |  – templates 框架系统模板目录
|  –  phpsso_server  phpsso主目录
|  –  statics  系统附件包
       |  – css 系统css包
       |  – images 系统图片包
       |  – js 系统js包
|  –  uploadfile  网站附件目录
|  –  admin.php  后台管理入口
|  –  index.php  程序主入口
|  –  crossdomain.xml  FLASH跨域传输文件
|  –  robots.txt 搜索引擎蜘蛛限制配置文件
|  –  favicon.ico  系统icon图标
 
■模块实例(modules 和model )

 
一、modules:上面是公告模块的截图,看地址栏,所有的模块都放在modules这个目录里面,announce是公告模块,这里介绍一下这些目录和文件,这是一个比较标准的模块,四个目录两个文件,下面分别介绍一下:
  1. classes: 模块类库包,里面定义公告的pc标签使用方法;
  2. install: 安装包,这里配置的是安装数据,包块前台模版和模型、后台菜单等等;
  3. templates: 模块模版,这里通常放置含有权限控制的控制器模板,也就是后台模板;
  4. uninstall: 卸载包,里面通常有四个文件,第一个html是防止列目录的;sql文件是删除数据表的;extention.inc.php删除安装时添加的菜单,如果存在则执行;另一个model制定删除的model
  5. admin_announce.php: 后台管理控制器,后台操作的方法,可以打开看看里面都是些什么好东西。
  6. index.php: 前台控制器,里面是各种方法,比如show、list等。
二、model:在phpcms系统文件下,找到model文件夹,下面放的是各个模块的模型,也就是操作数据库的接口和方法,比如数据查询、删除等等方法。
 
这样一个完整的模块就形成了,可以在后台模块管理安装、删除操作。(注意这里有些模块的内容可能不一定有,请分别参考多几个模块,发现少了functions这个文件夹,可以自己添加上。)
 
■做一个自己的模块
也说不上做吧,最多也就是模仿,但是也别无他法,呵呵。下面以我建立的一个模块qiye为例。
 
1.)把announce复制一份,改成我们自己的模块名字,请注意现在开始要注意命名规则了,在官方的帮助文件中就有详细说明,自己可以去参考一下,这也是必须这样做,不然系统不认得你写的文件之间的关系。
 
2.)记得在model下面也复制一份文件修改名字和里面的内容为你的模块名,然后按照下面的流程开始做。
 
第一步:安装目录文件修改(install)
 
1.template里面新建自己的模版,这个需要看前台需要用到哪几个方法就建几个模版文件,懒得写头部就调用content的头部进来,比较通用的都可以,特殊页面自己分别写内容到模版文件里。
 
2.现在按照补课里面的流程来做事,我按照一般需要前后台和数据库的操作建立一个模版。
 
3.创建数据库,可以用软件先创建你需要的数据库,字段自己定义,可以写上比较通用的几个字段,比如id、siteid、catid、inputtime、updatetime等等。创建好了数据库,导出创建的语句,把内容替换到install目录里面的以你的模块名称的sql文件里面,比如我的qiye.sql,把里面的第二行开始的内容替换成你的,这是你的创建数据库语句。
 
4.修改module.sql里面的内容,这个是向系统模型控制里面写如你这个模型的sql语句,修改里面的字段,修改成你的,具体字段对应的意思你可以看系统数据库的module表,表的字段分别代表什么就很清楚了。
 
5.修改model.php,很简单的把array里面的名字修改成你的模块名字,比如我的qiye。
 
6.修改extention.inc.php,里面是我们在后台的菜单,这个在安装的时候会在后台生成控制菜单。
 

+上面第五行的代码,是安排他在模块管理菜单里的语句,看29这个数字,是模块管理的id,这个可以查看系统数据库的menu表的内容,看看id=29是什么你就知道了。
 
+第七到第十行的内容是我的后台方法的菜单,它是居于parentid之下的,意思是在刚才第一条的里面的子菜单。
 
+最后一行,也就是菜单的中文名字了,显示出来的内容,第一个是主菜单名字,下面是各个子菜单名字,数量对应上面的行数。
 
7.修改config.inc.php文件,里面的内容,顾名思义,就是配置文件了,里面就是配置对应的模块、模块名称、模块介绍、作者、作者站点、主站邮箱等等信息。
 
8.language文件夹,语言文件,在后台模版要用到的,比如提示或者其他说明的文字,如果你需要用到的直接配置即可,记得修改名字。

PHPCMS v9构建模块的更多相关文章

  1. PHPCMS v9构建模块 - 实例之企业服务模块

    下面开始第一个实例,企业服务模块,这是个比较简单的模块,做一个抛砖的作用.   模块功能分析:企业服务,企业填写招聘申请表,管理审核之后,展示作为招聘通知的功能.   ■1.文件分布 modules文 ...

  2. 关于phpcms v9投票模块选项排序listorder设定问题

    关于phpcms v9投票模块选项排序listorder设定问题修改,主要修改了三个文件三处地方. 主要修改三个文件: .phpcms\modules\vote\templates\vote_edit ...

  3. phpcms V9 添加模块

    为phpcms创建一个模块的开发流程 [1]创建模块目录 通过前面的学习,我们已经知道phpcms V9框架中的模块位于phcms/modules目录中,每一个目录称之为一个模块. 如果要创建一个模块 ...

  4. phpcms V9 添加模块(转)

    转自:http://www.cnblogs.com/Braveliu/p/5101345.html 为phpcms创建一个模块的开发流程 [1]创建模块目录 通过前面的学习,我们已经知道phpcms ...

  5. 设置phpcms v9黄页模块作为首页方法

    如果我们根据需要,想把黄页作为单独的网站,我们可以用模块化安装,并且首页设置,那么仿站网就说说详细的步骤.首先,我们需要安装最新版本的phpcms V9其次,下载黄页模块,然后进行根目录的替换.再次, ...

  6. phpcms V9 广告模块中广告模板修改

    广告模块模板位置 \phpcms\modules\poster\install\templates\*.html 我的需求: 去掉边框控制代码,是否显示边框我将在页面模板中设置,因些需要删除模板中的以 ...

  7. phpcms V9 MVC模式 与 URL访问解析

    [1]URL访问解析 观察访问网页时的网址,可以得出模块访问方法,如下示例: http://www.abcd.com.cn/phpcms/index.php?m=content&c=index ...

  8. phpcms(1)phpcms V9 MVC模式 与 URL访问解析(转)

    [1]URL访问解析 观察访问网页时的网址,可以得出模块访问方法,如下示例: http://www.abcd.com.cn/phpcms/index.php?m=content&c=index ...

  9. PHPCMS V9 模块开发 二次开发实例 留言本

    鄙人实现了PHPCMS V9 产品开发权威指南(2011官方最新版).doc中的留言板实例,并加上模块安装和卸载功能, 程序可以运行,但只实现基本功能,目的是想让和我一样徘徊在PHPCMS门口不知道从 ...

随机推荐

  1. BZOJ 1023 [SCOI2009]生日快乐

    1024: [SCOI2009]生日快乐 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1729  Solved: 1219[Submit][Statu ...

  2. 跑马灯js

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Robot Framework 项目搭建

    首先新建一个项目“RobotDemo".项目Type一般选择“Directory”形式. 项目第一层可以放3种文件:Test Suite.Directory 和 Resource File. ...

  4. 高性能JSON工具-FastJson处理超大JSON文本

    使用阿里开源类库FastJson,当需要处理超大JSON文本时,需要Stream API,在fastjson-1.1.32版本中开始提供Stream API.文档参考GitHub:https://gi ...

  5. label标签的属性

    //label标签的属性 - (void)viewDidLoad { //初始化一个label1标签对象,初始化有很多方法,最原始的就是init,此处用带有frame的方法 UILabel *labe ...

  6. 如何给DropDownList控件设置样式(ASP.NET MVC)

    前话: 应学校领导要求,要给后台管理系统添加一个搜索功能,提供可选择选项.我选择使用DropDownList去实现,熟悉.net控件的都知道,DropDownList的样子非常丑,不论是边框长宽还是里 ...

  7. ngnix 一 入门指南

    翻译自:ngnix--Beginner Guide ##ngnix入门指南 本指南给出了nginx的基本介绍,并介绍了可以使用它的完成一些简单任务. 它假定nginx已经安装在读者的机器上. 如果不是 ...

  8. poj 2749 Building roads (二分+拆点+2-sat)

    Building roads Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6229   Accepted: 2093 De ...

  9. [转] Java内部类之闭包(closure)与回调(callback)

    闭包(closure)是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域.通过这个定义,可以看出内部类是面向对象的闭包,因为它 不仅包含外围类对象(创建内部类的作用域)的信息,还自动拥 ...

  10. Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?

    ThumbnailUtils.extractThumbnail(bitmap, width, height); 压缩图片到指定大小的方法,以前都是一次次的createbitmap,然后用matrix去 ...