phpcms v9框架的目录结构分析:  
  
了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识

打开"mycms"项目,有如下文件和目录  
  
使用协议说明文档、英文版的用户手册,这两项不是项目所必须的,可暂时将其删除

|-----api  接口文件目录

|-----caches 缓存文件目录  
    |-----configs
系统配置文件目录  
    
   |-----database.php  数据库配置文件

|-----route.php 
   路由配置文件

|-----system.php 
 
系统配置文件  
    
   |-----cache.php 
   缓存配置文件

|-----configs_* 
  
  
 系统缓存文件目录

|-----configs_commons/caches_data 
 主要用来存放后台设置的配置信息

|-----category_content.cache.php栏目与站点映射所对应的配置文件

|-----category_content_1.cache.php站点1下所有栏目的详细配置信息

|-----category_item_1.cache.php
文章模型下各栏目所对应的数据量  
    
  
  
 |-----category_item_2.cache.php
下载模型下各栏目所对应的数据量  
    
  
  
 |-----category_item_3.cache.php
图片模型下各栏目所对应的数据量  
    
  
  
 |-----keylink.cache.php 
   关联链接配置缓存文件

|-----model.cache.php 
    
三大模型配置缓存文件  
    
  
  
 |-----mood_program.cache.php 
 
表情配置缓存文件  
    
  
  
 |-----position.cache.php 
 
推荐位配置缓存文件  
    
  
  
 |-----poster_template_1.cache.php广告位模板配置缓存文件

|-----sitelist.cache.php 
 
站点列表配置文件,主要缓存所有站点的基本配置信息

|-----type_content.cache.php 
 
多个站点下的类别配置信息  
    
  
  
 |-----type_content_1.cache.php  当前站点下类别配置信息缓存文件

|-----urlrules.cache.php 
 
url规则配置信息缓存文件  
    
  
  
 |-----urlrules_detail.cache.php
url规则详细配置信息缓存文件  
    
  
  
 |-----special.cache.php 
   专题配置信息缓存文件

|-----role.cache.php 
  
   角色配置缓存文件

|-----link.cache.php 
  
   友情链接缓存文件

|-----configs_model/caches_data

|-----content_form.class.php 
 
生成表单的类库缓存文件  
    
  
  
 |-----content_input.class.php 
 入库时,对表单数据进行验证的类库缓存文件

|-----content_output.class.php  对从数据表中查询出来的数据进行处理的函数

|-----content_update.class.php  对要更新的数据进行有效性验证的函数

|-----model_field_1.cache.php 
 文章模型所有模型字段的缓存信息

|-----model_field_2.cache.php 
 下载模型所有模型字段的缓存信息

|-----model_field_3.cache.php 
 图片模型所有模型字段的缓存信息

|-----phpcms    
  
  
  
  
  
  
 phpcms框架主目录

|-----languages 
  
  
  
  
  
 框架语言包目录

|-----libs 
  
  
  
  
    
框架主类库、主函数库目录  
    
   |-----classes

|-----form.class.php 
 
表单生成类库文件  
    
  
  
 |-----application.class.php
应用程序类库文件  
    
  
  
 |-----image.class.php 
    
图片处理类库文件  
    
  
  
 |-----attachment.class.php  附件处理类库文件

|-----param.class.php 
    
URL参数处理类库文件  
    
   |-----functions

|-----global.func.php 
    
公共函数库文件  
    
  
  
 |-----extension.class.php 
 扩展函数库文件

|-----model 
  
  
  
  
  
 框架数据库模型目录

|-----content_model.class.php 
    
内容模型文件  
    
   |-----admin_model.class.php 
   管理员模型文件

|-----attachment_model.class.php 
 
附件模型文件  
    
  |-----modules 
  
  
  
  
  
   框架模块目录

|-----admin 
  
  
    
admin模块   
    
  
  
 |-----index.php 
  
  
 index.php控制器文件

|-----content 
  
  
  
  
 content模块

|-----classes 
  
  
   content模块通用类库

|-----fields 
  
  
  
 content模块模型字段

|-----functions 
  
  
 content模块通用函数库

|-----templates 
  
  
 content模块后台模板文件

|-----index.php 
  
  
 index.php控制器文件

|-----templates 
  
  
  
  
  
 框架系统前台模板目录

|-----default 
  
  
  
  
 默认的模板风格

|-----content 
  
  
   content模块模板目录

|-----category.html
频道页模板文件  
    
  
  
    
|-----list.html 
   列表页模板文件

|-----show.html 
   内容页模板文件

|-----config.php 
  
   模板配置文件

|-----phpsso_server 
  
  
  
  
   phpsso主目录

|-----statics 
  
  
  
  
  
  
   网站素材文件目录

|-----css 
  
  
  
  
  
  
  
  
  
  
   css文件

|-----images 
  
  
  
  
  
   images文件

|-----js 
  
  
  
  
  
   js文件

|-----uploadfile 
  
  
  
  
  
   上传附件

|-----admin.php 
  
  
  
  
  
  
 后台入口文件

|-----index.php 
  
  
  
  
  
  
 前台入口文件

phpcms v9中的url路由规则:  
  
  
浏览器中输入 http://www.mycms.com/index.php?m
...
;a=list&catid=1  回车时,默认情况下会找到

phpcms    
  
  
  
  
 框架主目录

|-----modules 
  
  
  
  
 模块目录

|-----content 
  
  
   content模块

|-----index.php 
   index.php控制器中list方法来显示列表页面

到底是不是呢?我们打开index.php控制器文件,并在index方法中添加一些代码,运行输出,证明确实如我们所料

我们可以将浏览器中的url归纳如下:  
http://域名/入口文件?m=模块名&c=控制器&a=方法名&catid=参数值

当我们在浏览器中输入http://www.myshop.com/index.php 后面没有跟任何参数,
回车时,默认情下会将首页显示出来  
  
这是因为phpcms
v9为我们指定了一个默认执行的模块、控制器和方法

默认控制器的设置在 "caches/configs/routes.php"
配置文件中进行设置的,我们可以重新设置默认的控制器

六、栏目的添加  
  
1、pc设计者认为,栏目详情页的数据都应该属于一个模型,所以在添加栏目时,必须给栏目指定一个模型,至于要选择什么模型,完全取决于栏目详情页要显示什么类型的内容

详情页:文章信息类的内容 
   文章模型

详情页:图片类信息 
  
  
  
 图片模型

详情页:下载东西 
  
  
 下载模型

详情页:播放视频 
  
  
 视频模型

2、如果以上模型还不能满足项目的需要,那么我们还可以自定义模型,通常情况下,一个网站是由多种模型的数据来组成的

3、栏目添加选项:  
  
栏目名称:在网站静态化时,创建一个以此目录名命名的目录来存放当前栏目下相关的模板文件

4、pc的设计者认为,每个栏目会对应当前所选模型的三个模板文件:

频道页模板文件  
  
列表页模板文件  
  
内容页模板文件  
  
  
这些模板文件所在位置:phpcms/templates/default/content/
目录下,如果想修改模板文件,只需要到此目录下找到对应的模板文件进行修改就可以了

频道页:category_*.html  
列表页:list_*.html  
内容页:show_*.html  
  
至此,栏目各页面与模型的三个模板文件对应起来了

注意:频道页面的显示是有条件的(当前栏目必须有子栏目才可以)

5、栏目添加成功后,栏目信息被存储到了v9_category数据表中,同时还被缓存到了phpcms/caches/caches_common
/category_content.cache.php文件中,这个缓存文件非常重要,一定要引起足够的重视,前台的很多数据都是直接从此缓存文件中获
取来的

七、项目的部署:  
  
1、素材文件:  
  
statics  
   
|-----images  
    
   |-----cmsimages 
   项目图片文件

|-----js  
    
   |-----cmsjs 
   项目js文件

|-----css  
    
   |-----cmscss 
  
   项目css文件

phpcms  
   
|-----templates  
    
   |-----new 
    
新的模板风格  
    
  
  
 |-----content 
 内容模块模板文件

|-----category.html
频道页模板文件  
    
  
  
    
|-----list.html 
   列表页模板文件

|-----show.html 
   内容页模板文件

|-----config.php 
  
   添加模板文件的配置

或者

|-----default

|-----content 
 内容模块模板文件

|-----category_shetu.html 
 频道页模板文件

|-----list_shetu.html 
    
列表页模板文件  
    
  
  
    
|-----show_shetu.html 
    
内容页模板文件  
    
  
  
 |-----config.php 
  
  
  
 配置新添加的模板文件

注意:模板文件的命名规范  
  
  
2、进入后台,将栏目与模板文件对应起来  
  
3、常量的定义:phpcms/base.php文件

4、系统类库、函数库、模型文件及配置文件的加载

pc_base::load_sys_class();//加载系统类库

pc_base::load_sys_func();//加载系统函数库

pc_base::load_model();//加载模型

pc_base::load_config();//加载配置文件或配置选项信息

pc_base::load_app_func();//加载应用程序函数库

pc_base::load_app_class();//加载应用程序类库

全局范围可用,也可以直接在模板文件中使用,在二次开发时,很有用

5、模板语法:  
  
(1)常量表示:  
  
{JS_PATH}//相当于 或者

phpcms v9框架的目录结构分析的更多相关文章

  1. phpcms V9 框架目录结构

    phpcms v9框架的目录结构分析:      了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识 打开"mycms"项目,有如下文件和目录      使用 ...

  2. PHPCMS V9 框架代码分析(入口程序)

    PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口. 入口程序是在前期处理用户请求的引导程序.它是 ...

  3. PHPCMS V9 学习总结

    在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1]PHPCMS V9系统目录简析 在研究所有问题之前,请先了解一下系统的文件目录结构,具体如下图所示 ...

  4. PHPCMS V9 学习总结(转)

    转自:http://www.cnblogs.com/Braveliu/p/5074930.html 在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1 ...

  5. phpcms V9 栏目管理

    关于phpcms V9框架系统后台管理之栏目管理,请参见下文的源码分析(添加栏目和修改栏目): 参照添加栏目的界面图示,便于对源代码的理解: <?php // 文件路径:phpcms/modul ...

  6. phpcms V9 添加模块

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

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

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

  8. phpcms v9二次开发笔记

    phpcms是基于MVC结构的. 安装: 下载phpcms_v9.5.9_UTF8.zip:新建目录phpcms,将压缩包里install_package目录下所有文件复制到phpcms目录.浏览器输 ...

  9. phpcms V9 添加模块(转)

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

随机推荐

  1. 基于特定值来推断隐藏显示元素的jQuery插件

    jQuery-Visibly是一款小巧简单的jQuery隐藏显示元素插件.该插件依据某个元素的值,例如以下拉框的值.输入框的值等来推断是否显示某个指定的元素. 用于推断的值能够是单个值,或者是多个值, ...

  2. 禁用viewstate

    <asp:Dropdownlist/>禁用viewstate以后 public partial class _Default : System.Web.UI.Page     {      ...

  3. 开发人员福利!ChromeSnifferPlus 插件正式登陆 Chrome Web Store

    今天(2014-10-30)下午,ChromeSnifferPlus 插件正式登陆 Chrome Web Store. 在线安装地址: https://chrome.google.com/websto ...

  4. unity中怎样获取全部子物体的组件

    public GameObject[] obj;     void Awake()     {             for (int i = 0; i < obj.Length; i++) ...

  5. 与众不同 windows phone (32) - Communication(通信)之任意源组播 ASM(Any Source Multicast)

    原文:与众不同 windows phone (32) - Communication(通信)之任意源组播 ASM(Any Source Multicast) [索引页][源码下载] 与众不同 wind ...

  6. 14.5.2 Changing the Number or Size of InnoDB Redo Log Files 改变InnoDB Redo Log Files的数量

    14.5.2 Changing the Number or Size of InnoDB Redo Log Files 改变InnoDB Redo Log Files的数量 改变InnoDB redo ...

  7. Oracle dump 分析secondary key

    验证secondary key 含有主键列数据 SQL> select object_name,object_id,OBJECT_TYPE from user_objects; OBJECT_N ...

  8. virus.win32.parite.H病毒的查杀方法

    virus.win32.parite.H病毒的查杀方法 昨天电脑中了virus.win32.parite.H病毒,搞了2个多小时最终搞定了.以下记录下我的解决方法. 第一步:下载Win32.Parit ...

  9. opencv MAT数据操作

    1.存取单个像素值 最通常的方法就是 img.at<uchar>(i,j) = 255; img.at<Vec3b>(i,j)[0] = 255; 2.用指针扫描一幅图像 对于 ...

  10. ZOJ 1654 二分匹配基础题

    题意: 给你一副图, 有草地(*),空地(o)和墙(#),空地上可以放机器人, 机器人向上下左右4个方向开枪(枪不能穿墙),问你在所有机器人都不相互攻击的情况下能放的最多的机器人数. 思路:这是一类经 ...