■补课:

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. 【转】JAVA字符串格式化-String.format()的使用

    原文网址:http://blog.csdn.net/lonely_fireworks/article/details/7962171 常规类型的格式化 String类的format()方法用于创建格式 ...

  2. cryptopp开源库的使用(零):windows下使用visual studio编译

    编译相当简单:打开目录下的sln文件直接编译即可,官方支持到vc2012,我使用vs2013也没有错误,优秀的开源库总是便于使用. 编译的时候注意运行库得选择需要跟使用该库的保持一致,否则会出现重定义 ...

  3. 解读sample5

    说明 被测试代码文件 sample1.h.sample1.cc和sample3-inl.h 测试代码文件 sample5_unittest.cc 官网上如是描述sample5: Sample #5 i ...

  4. python:redis简单操作

    一,安装redis-py pip install redis easy_install redis 二,简单用法 import redis # 连接redis服务器 def conn_redis(): ...

  5. js用for循环为对象添加事件并传递参数

    var objArr = getObjArr(id);   for(var i=0; i<objArr.length; i++){    var param=objArr.param    ad ...

  6. Java并发编程:进程和线程的由来(转)

    Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通 ...

  7. python Eve RESTFul 尝试笔记

    0.前言 最近重点研究了yeelink平台的原理和使用,yeelink平台和多数云平台设计一样应用了RESTFul框架.嵌入式侧(或者是客服端侧)的相关技术研究的比较充分(个人这么认为),是不是该弄弄 ...

  8. android系统的日志查看

    日志跟踪(alog) 在我们开发手机软件的过程中,常常需要通过USB线连接电脑看日志.但在windows下,我们要安装驱动.有的android板子,就不支持USB调试.所以我开发了这个小工具.方便打开 ...

  9. hdu 3642 Get The Treasury (三维的扫描线)

    题目大意: 给出N个立方体. 求一个三维空间中被包围三次的空间的体积之和. 思路分析: 发现Z的范围非常小.那么我们能够枚举Z轴,然后对 x y做扫描线. 并且不用枚举全部的Z ,仅仅须要将Z离散化之 ...

  10. hdu 1685 Booksort (IDA*)

    Booksort Time Limit: 10000/10000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Others) Tot ...