来自:http://blog.csdn.net/yanhui_wei/article/category/1220735

<?php思路:一、目前在企业中使用比较多的cms内容管理有如下几种:1、dedecms
2、phpcms二、我们选择学习v9版本的phpcms,主要有以下几点原因:1、基于MVC模式的内容管理系统2、碎片技术三、下面,我们就来进行phpcms v9的安装:ci框架的安装,我们只需要按照如下步骤进行操作就可以了
1、官网:http://www.phpcms.cn 去下载phpcms v9最新的版本2、下载完毕后,解压,并将其复制粘贴到程序的主目录(d:/wamp/xmall/),然后再将其重命名为"mycms",那么"mycms" 就作为cms的项目名称存在了3、为我们的cms项目搭建一个虚拟主机:首先,找到httpd.conf配置文件,开启虚拟主机的配置然后,找到httpd-vhosts.conf配置文件,进行虚拟主机的配置最后,找到hosts配置文件,为我们的ci项目添加dns映射4、在浏览器中输入 http://www.mycms.com/install/ 回车,就可进行phpcms v9内容管理系统的安装
四、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=content&c=index&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}//相当于 <?php echo JS_PATH; ?> 或者 <?=JS_PATH?>,不带php标识,说明是在输出

(2)变量语法:{$title}//会被解析成<?php echo $title;?>,不带php标识,说明是输出

(3)单行php解析语法{php $i=10;}//相当于 <?php $i=10;?> ,带php标识,说明在处理逻辑,而不是输出

(4)条件判断:{if $a > $b}{/if}解析为:<?phpif($a>$b){}
?>(5)循环:{loop $data $key $val}{/loop}解析为:<?phpforeach($data as $key=>$val){}?>(6)自增自减:通常跟循环一起使用{php $i=10;}
{loop $a $b}{$i++}    //自增自减,会解析为赋值操作,而不是输出操作,如:<?php $i++;?>
{/loop}(7)包含模板文件:{template "content","header"}//包含 "templates/default/content/header.html" 模板文件6、内容详情页中的变量从何而来?找到phpcms/modules/content/index.php控制器中的show()方法,在方法中随意定义一些变量,然后,看一下是否能够从模板文件中获取到值,答案是肯定的{title}、{$content}从哪里来?技巧:如果在控制器方法中不能直接搜到模板文件中的变量,那么此变量必定在extract($data);中extract($data);//主要用来将数组中个元素转化为变量,

总结:当模板文件中的变量不能在对应的方法中找到的话,那么此变量必定是从$data数组元素中转化而来的内容页面的变量:(1)包含模板文件{template "content","header"}(2)生成站点首页url的函数{siteurl($siteid)}(3)面包屑导航{catpos($catid)}(4)来源{$copyfrom}(5)发布时间{$inputtime}(6)文章描述{if $description}<div class="summary" >{$description}</div>{/if}(7)内容{if $allow_visitor==1}{$content}<!--内容关联投票-->{if $voteid}<script language="javascript" src="{APP_PATH}index.php?m=vote&c=index&a=show&action=js&subjectid={$voteid}&type=2"></script>{/if}{else}<CENTER><a href="{APP_PATH}index.php?m=content&c=readpoint&allow_visitor={$allow_visitor}"><font color="red">阅读此信息需要您支付 <B><I>{$readpoint} {if $paytype}元{else}点{/if}</I></B>,点击这里支付</font></a></CENTER>
{/if}(8)短标题:{if $titles}<fieldset><legend class="f14">本文导航</legend><ul class="list blue row-2">{loop $titles $r}<li>{$n}、<a href="{$r[url]}">{$r[title]}</a></li>{/loop}</ul></fieldset>
{/if}(9)分页代码:{$pages}(10)相关搜索词:<p style="margin-bottom:10px"><strong>相关热词搜索:</strong>{loop $keywords $keyword}<a        href="{APP_PATH}index.php?m=content&c=tag&catid={$catid}&tag={urlencode($keyword)}" class="blue">{$keyword}</a>     {/loop}
</p>(11)上一篇、下一篇<p class="f14">
<strong>上一篇:</strong><a href="{$previous_page[url]}">{$previous_page[title]}</a>
<strong>下一篇:</strong><a href="{$next_page[url]}">{$next_page[title]}</a>
</p>(12)统计点击量:<script language="JavaScript" src="{APP_PATH}api.php?op=count&id={$id}&modelid={$modelid}"></script>(13)网页标题:{$SEO['title']}{$SEO['site_title']}(14)网页描述:{$SEO['description']}(15)网页关键子:{$SEO['keyword']}7、pc标签的使用:在v9中,我们将使用pc标签作为获取数据的主要方式pc标签分模块来使用,今天,主要来学习内容模块pc标签的使用内容模块的pc标签可用来完成如下功能:(1)获取内容列表:lists(2)获取点击排行榜:hits(3)获取相关文章:relation(4)获取栏目列表:category8、自定义pc标签:pc标签的源代码在 phpcms/modules/模块名/classes/模块名_tag.class.php中我们可根据项目需求,为pc标签增加额外的功能,以满足项目的需要9、get万能标签:通过sql语句来获取数据10.碎片标签:碎片功能允许我们将网页分为若干块儿,每一块儿都可以在后台像修改文章内容一样由编辑人员来可视化的维护,并可实时替换每一块儿的内容{pc:block pos="daohang"}{/pc}碎片:碎片其实就是一段HTML代码,只不过这段html代码如果作为碎片的话,就可以由编辑人员在后台任意更改了11、扩展函数库:phpcms/libs/functions/global.func.phpphpcms/libs/functions/extend.func.php12、二次开发:扩展控制器:MY_index.php?>

转载于:https://www.cnblogs.com/cblx/p/4281356.html

【转】phpcms授课学习相关推荐

  1. PHPCMS V9 学习总结(转)

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

  2. 【转】关于phpcms的学习

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

  3. PHPCMS V9学习笔记(配置): 后台界面模板在线编辑

    1.进入phpcms根目录下,找到\caches\configs目录下的system.php文件 2.用编辑器打开system.php文件,找到第20行默认为'tpl_edit'=> 0 ,将0 ...

  4. phpcms 模板学习

    1.phpcms\modules\content 里面可以自己定义常量变量,常量在魔板不用$,变量要用 2.\phpcms_v9_UTF8\caches\configs system.php 设置魔板 ...

  5. php+vue网上培训课程直播授课学习平台

    运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vue.js 服务器:apache 数据库:mysql 1.优智学在线授课平台主要是针对 ...

  6. 电脑雕刻教程_理性看待手工雕刻和电脑雕刻,手工并不代表精品,电脑雕刻也不代表战五渣...

    手工作品 *随拍* 很多人神话手工雕刻作品 更多的人贬低电脑雕刻作品 其实 雕刻刀和鼠标 都只是工具 我们不要拿手工精品来压制批量生产的工业产品 毕竟我们还是见过太多精美的电脑模型 近期震撼我的 是一 ...

  7. 山东大学教授建议:让博士生先回学校

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:冯大诚科学网博客 本文转载自:双一流高校 新冠肺炎猖獗,给全国 ...

  8. 教授呼吁:应当让博士生先回学校

    新冠肺炎猖獗,给全国各行各业都带来了巨大的损失,各类学校都推迟了开学上课. 随着各地抗击新冠肺炎取得的成绩,人们纷纷期盼着什么时候能够让学生回到学校学习. 2月28日的<中共教育部党组关于统筹做 ...

  9. Ronald Van Loon/Greg White带你领略Hadoop/Spark大数据CCA175认证(一)

    目录 圣普伦Simplilearn课程概述: 圣普伦的Hadoop/Spark大数据CCA175认证培训课程特点: 上课模式: 预修课程: 适合人群 主要学习成果: 认证考试: 认证条件: 课程设置: ...

最新文章

  1. 聚焦第三届世界智能大会|大佬们讲了哪些干货?
  2. Matlab-创建文字云
  3. 设计模式C++实现(13)——中介者模式
  4. java异常——分析堆栈跟踪元素+使用异常机制的技巧
  5. 前端学习(3241):react生命周期forceUpdate
  6. js关闭setInterval及终止ajax请求
  7. OpenCV人脸识别类FaceRecognizer
  8. Uncaught TypeError: this.canvas.getContext is not a function
  9. Eclipse 乱码 解决方案总结(UTF8 -- GBK)
  10. 「leetcode」46.全排列【回溯算法】详细图解!
  11. hdu 4908 BestCoder Sequence
  12. adb通过usb连接手机
  13. 【python】简单的车辆管理系统
  14. python分页查询_python | MySQL分页查询优化
  15. 计算机控制技术廖道争答案,2017年三峡大学电气与新能源学院专业目录及考试科目...
  16. 推荐一款鼠标手势的软件,开源且免费
  17. 操作系统之调度 (十) --- 处理机调度、高级调度、中级调度、低级调度...
  18. STM32L151缓慢上断电-电源控制模块的使用(PVD、BOR、POR/PDR)
  19. 语音控制Office
  20. 配置activiti控制台打印SQL

热门文章

  1. Android进程保活——双进程守护
  2. SAP BAPI BAPI_PO_CREATE1创建采购订单
  3. input,checkbox启用禁用
  4. CentOS网络时钟同步协议-- NTP, PTP
  5. 图的存储 —— 邻接矩阵
  6. UEFI与 Legacy BIOS两种启动模式详解
  7. [翻译]如何用YII写出安全的WEB应用
  8. 雨听 | 英语学习笔记(九)~作文范文:父母应该送孩子出国留学吗?
  9. 亚马逊海外购SAMSUNG 三星T7上手初体验
  10. 什么是Unity技术美术