zoukankan      html  css  js  c++  java
  • 邓_phpcms_phpcms授课思路复习

      1. 思路:  
      2.   
      3. 一、目前在企业中使用比较多的cms内容管理有如下几种:  
      4.   
      5. 1、dedecms  
      6. 2、phpcms  
      7.   
      8.   
      9. 二、我们选择学习v9版本的phpcms,主要有以下几点原因:  
      10.   
      11. 1、基于MVC模式的内容管理系统  
      12.   
      13. 2、碎片技术    
      14.   
      15.   
      16. 三、下面,我们就来进行phpcms v9的安装:  
      17.   
      18. ci框架的安装,我们只需要按照如下步骤进行操作就可以了  
      19. 1、官网:http://www.phpcms.cn 去下载phpcms v9最新的版本  
      20.   
      21. 2、下载完毕后,解压,并将其复制粘贴到程序的主目录(d:/wamp/xmall/),然后再将其重命名为"mycms",那么"mycms" 就作为cms的项目名称存在了  
      22.   
      23. 3、为我们的cms项目搭建一个虚拟主机:  
      24.   
      25.    首先,找到httpd.conf配置文件,开启虚拟主机的配置  
      26.   
      27.    然后,找到httpd-vhosts.conf配置文件,进行虚拟主机的配置  
      28.   
      29.    最后,找到hosts配置文件,为我们的ci项目添加dns映射  
      30.   
      31. 4、在浏览器中输入 http://www.mycms.com/install/ 回车,就可进行phpcms v9内容管理系统的安装  
      32.   
      33.   
      34. 四、phpcms v9框架的目录结构分析:  
      35.   
      36. 了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识  
      37.   
      38. 打开"mycms"项目,有如下文件和目录  
      39.   
      40. 使用协议说明文档、英文版的用户手册,这两项不是项目所必须的,可暂时将其删除  
      41.   
      42. |-----api  接口文件目录  
      43. |-----caches 缓存文件目录  
      44.     |-----configs 系统配置文件目录  
      45.         |-----database.php  数据库配置文件  
      46.         |-----route.php     路由配置文件  
      47.         |-----system.php    系统配置文件  
      48.         |-----cache.php     缓存配置文件  
      49.     |-----configs_*         系统缓存文件目录  
      50.         |-----configs_commons/caches_data   主要用来存放后台设置的配置信息  
      51.             |-----category_content.cache.php栏目与站点映射所对应的配置文件  
      52.             |-----category_content_1.cache.php站点1下所有栏目的详细配置信息  
      53.             |-----category_item_1.cache.php 文章模型下各栏目所对应的数据量  
      54.             |-----category_item_2.cache.php 下载模型下各栏目所对应的数据量  
      55.             |-----category_item_3.cache.php 图片模型下各栏目所对应的数据量  
      56.             |-----keylink.cache.php     关联链接配置缓存文件  
      57.             |-----model.cache.php       三大模型配置缓存文件  
      58.             |-----mood_program.cache.php    表情配置缓存文件  
      59.             |-----position.cache.php    推荐位配置缓存文件  
      60.             |-----poster_template_1.cache.php广告位模板配置缓存文件  
      61.             |-----sitelist.cache.php    站点列表配置文件,主要缓存所有站点的基本配置信息  
      62.             |-----type_content.cache.php    多个站点下的类别配置信息  
      63.             |-----type_content_1.cache.php  当前站点下类别配置信息缓存文件  
      64.             |-----urlrules.cache.php    url规则配置信息缓存文件  
      65.             |-----urlrules_detail.cache.php url规则详细配置信息缓存文件  
      66.             |-----special.cache.php     专题配置信息缓存文件  
      67.             |-----role.cache.php        角色配置缓存文件  
      68.             |-----link.cache.php        友情链接缓存文件  
      69.         |-----configs_model/caches_data  
      70.             |-----content_form.class.php    生成表单的类库缓存文件  
      71.             |-----content_input.class.php   入库时,对表单数据进行验证的类库缓存文件  
      72.             |-----content_output.class.php  对从数据表中查询出来的数据进行处理的函数  
      73.             |-----content_update.class.php  对要更新的数据进行有效性验证的函数  
      74.             |-----model_field_1.cache.php   文章模型所有模型字段的缓存信息  
      75.             |-----model_field_2.cache.php   下载模型所有模型字段的缓存信息  
      76.             |-----model_field_3.cache.php   图片模型所有模型字段的缓存信息  
      77.   
      78.               
      79. |-----phpcms                        phpcms框架主目录  
      80.        |-----languages                  框架语言包目录  
      81.        |-----libs                   框架主类库、主函数库目录  
      82.         |-----classes  
      83.             |-----form.class.php    表单生成类库文件  
      84.             |-----application.class.php 应用程序类库文件  
      85.             |-----image.class.php       图片处理类库文件  
      86.             |-----attachment.class.php  附件处理类库文件  
      87.             |-----param.class.php       URL参数处理类库文件  
      88.         |-----functions  
      89.             |-----global.func.php       公共函数库文件  
      90.             |-----extension.class.php   扩展函数库文件  
      91.        |-----model                  框架数据库模型目录  
      92.         |-----content_model.class.php       内容模型文件  
      93.         |-----admin_model.class.php     管理员模型文件  
      94.         |-----attachment_model.class.php    附件模型文件  
      95.        |-----modules                    框架模块目录  
      96.         |-----admin             admin模块   
      97.             |-----index.php         index.php控制器文件  
      98.         |-----content               content模块  
      99.             |-----classes           content模块通用类库  
      100.             |-----fields            content模块模型字段  
      101.             |-----functions         content模块通用函数库  
      102.             |-----templates         content模块后台模板文件  
      103.             |-----index.php         index.php控制器文件  
      104.        |-----templates                  框架系统前台模板目录  
      105.         |-----default               默认的模板风格  
      106.             |-----content           content模块模板目录  
      107.                 |-----category.html 频道页模板文件  
      108.                 |-----list.html     列表页模板文件  
      109.                 |-----show.html     内容页模板文件  
      110.             |-----config.php        模板配置文件  
      111. |-----phpsso_server                 phpsso主目录  
      112. |-----statics                       网站素材文件目录  
      113.     |-----css                                   css文件  
      114.         |-----images                    images文件  
      115.         |-----js                    js文件  
      116. |-----uploadfile                    上传附件  
      117. |-----admin.php                     后台入口文件  
      118. |-----index.php                     前台入口文件  
      119.   
      120.   
      121.   
      122.   
      123. 五、phpcms v9中的url路由规则:  
      124.   
      125.   
      126. 浏览器中输入 http://www.mycms.com/index.php?m=content&c=index&a=list&catid=1  回车时,默认情况下会找到  
      127. phpcms                  框架主目录  
      128. |-----modules               模块目录  
      129.     |-----content           content模块  
      130.         |-----index.php     index.php控制器中list方法来显示列表页面  
      131.               
      132.   
      133. 到底是不是呢?我们打开index.php控制器文件,并在index方法中添加一些代码,运行输出,证明确实如我们所料  
      134.   
      135. 我们可以将浏览器中的url归纳如下:  
      136. http://域名/入口文件?m=模块名&c=控制器&a=方法名&catid=参数值  
      137.   
      138.   
      139. 当我们在浏览器中输入http://www.myshop.com/index.php 后面没有跟任何参数, 回车时,默认情下会将首页显示出来  
      140.   
      141. 这是因为phpcms v9为我们指定了一个默认执行的模块、控制器和方法  
      142.   
      143. 默认控制器的设置在 "caches/configs/routes.php" 配置文件中进行设置的,我们可以重新设置默认的控制器  
      144.   
      145. 六、栏目的添加  
      146.   
      147. 1、pc设计者认为,栏目详情页的数据都应该属于一个模型,所以在添加栏目时,必须给栏目指定一个模型,至于要选择什么模型,完全取决于栏目详情页要显示什么类型的内容  
      148.    详情页:文章信息类的内容     文章模型  
      149.    详情页:图片类信息            图片模型  
      150.    详情页:下载东西         下载模型  
      151.    详情页:播放视频         视频模型  
      152.   
      153. 2、如果以上模型还不能满足项目的需要,那么我们还可以自定义模型,通常情况下,一个网站是由多种模型的数据来组成的  
      154.   
      155. 3、栏目添加选项:  
      156.   
      157. 栏目名称:在网站静态化时,创建一个以此目录名命名的目录来存放当前栏目下相关的模板文件  
      158.   
      159. 4、pc的设计者认为,每个栏目会对应当前所选模型的三个模板文件:  
      160.   
      161. 频道页模板文件  
      162.   
      163. 列表页模板文件  
      164.   
      165. 内容页模板文件  
      166.   
      167.   
      168. 这些模板文件所在位置:phpcms/templates/default/content/ 目录下,如果想修改模板文件,只需要到此目录下找到对应的模板文件进行修改就可以了  
      169.   
      170. 频道页:category_*.html  
      171. 列表页:list_*.html  
      172. 内容页:show_*.html  
      173.   
      174. 至此,栏目各页面与模型的三个模板文件对应起来了  
      175.   
      176. 注意:频道页面的显示是有条件的(当前栏目必须有子栏目才可以)  
      177.   
      178.   
      179. 5、栏目添加成功后,栏目信息被存储到了v9_category数据表中,同时还被缓存到了phpcms/caches/caches_common/category_content.cache.php文件中,这个缓存文件非常重要,一定要引起足够的重视,前台的很多数据都是直接从此缓存文件中获取来的  
      180.   
      181.   
      182.   
      183. 七、项目的部署:  
      184.   
      185. 1、素材文件:  
      186.   
      187. statics  
      188.     |-----images  
      189.         |-----cmsimages     项目图片文件  
      190.     |-----js  
      191.         |-----cmsjs     项目js文件  
      192.     |-----css  
      193.         |-----cmscss        项目css文件  
      194.   
      195. phpcms  
      196.     |-----templates  
      197.         |-----new       新的模板风格  
      198.             |-----content   内容模块模板文件  
      199.                 |-----category.html 频道页模板文件  
      200.                 |-----list.html     列表页模板文件  
      201.                 |-----show.html     内容页模板文件  
      202.             |-----config.php        添加模板文件的配置  
      203.           
      204.         或者  
      205.   
      206.         |-----default  
      207.             |-----content   内容模块模板文件  
      208.                 |-----category_shetu.html   频道页模板文件  
      209.                 |-----list_shetu.html       列表页模板文件  
      210.                 |-----show_shetu.html       内容页模板文件  
      211.             |-----config.php            配置新添加的模板文件  
      212.   
      213.   
      214. 注意:模板文件的命名规范  
      215.   
      216.   
      217. 2、进入后台,将栏目与模板文件对应起来  
      218.   
      219. 3、常量的定义:phpcms/base.php文件  
      220.   
      221. 4、系统类库、函数库、模型文件及配置文件的加载  
      222.   
      223. pc_base::load_sys_class();//加载系统类库  
      224. pc_base::load_sys_func();//加载系统函数库  
      225. pc_base::load_model();//加载模型  
      226. pc_base::load_config();//加载配置文件或配置选项信息  
      227. pc_base::load_app_func();//加载应用程序函数库  
      228. pc_base::load_app_class();//加载应用程序类库  
      229.   
      230. 全局范围可用,也可以直接在模板文件中使用,在二次开发时,很有用  
      231.   
      232. 5、模板语法:  
      233.   
      234. (1)常量表示:  
      235.   
      236. {JS_PATH}//相当于 <?php echo JS_PATH; ?> 或者 <?=JS_PATH?>,不带php标识,说明是在输出  
      237.   
      238. (2)变量语法:  
      239.   
      240. {$title}//会被解析成<?php echo $title;?>,不带php标识,说明是输出  
      241.   
      242. (3)单行php解析语法  
      243.   
      244. {php $i=10;}//相当于 <?php $i=10;?> ,带php标识,说明在处理逻辑,而不是输出  
      245.   
      246. (4)条件判断:  
      247.   
      248. {if $a > $b}  
      249.       
      250. {/if}  
      251.   
      252. 解析为:  
      253.   
      254. <?php  
      255.   
      256. if($a>$b){  
      257.   
      258. }  
      259. ?>  
      260.   
      261. (5)循环:  
      262.   
      263. {loop $data $key $val}{/loop}  
      264.   
      265. 解析为:  
      266.   
      267. <?php  
      268.   
      269. foreach($data as $key=>$val){  
      270.   
      271. }  
      272.   
      273. ?>  
      274.   
      275. (6)自增自减:通常跟循环一起使用  
      276.   
      277. {php $i=10;}  
      278. {loop $a $b}  
      279.     {$i++}  //自增自减,会解析为赋值操作,而不是输出操作,如:<?php $i++;?>  
      280. {/loop}  
      281.   
      282. (7)包含模板文件:  
      283.   
      284. {template "content","header"}//包含 "templates/default/content/header.html" 模板文件  
      285.   
      286.   
      287.   
      288. 6、内容详情页中的变量从何而来?  
      289.   
      290. 找到phpcms/modules/content/index.php控制器中的show()方法,在方法中随意定义一些变量,  
      291.   
      292. 然后,看一下是否能够从模板文件中获取到值,答案是肯定的  
      293.   
      294. {title}、{$content}从哪里来?  
      295.   
      296. 技巧:如果在控制器方法中不能直接搜到模板文件中的变量,那么此变量必定在extract($data);中  
      297.   
      298. extract($data);//主要用来将数组中个元素转化为变量,  
      299.   
      300. 总结:当模板文件中的变量不能在对应的方法中找到的话,那么此变量必定是从$data数组元素中转化而来的  
      301.   
      302.   
      303. 内容页面的变量:  
      304.   
      305. (1)包含模板文件  
      306.   
      307. {template "content","header"}  
      308.   
      309. (2)生成站点首页url的函数  
      310.   
      311. {siteurl($siteid)}  
      312.   
      313. (3)面包屑导航  
      314.   
      315. {catpos($catid)}  
      316.   
      317. (4)来源  
      318.   
      319. {$copyfrom}  
      320.   
      321. (5)发布时间  
      322.   
      323. {$inputtime}  
      324.   
      325. (6)文章描述  
      326.   
      327. {if $description}<div class="summary" >{$description}</div>{/if}  
      328.   
      329. (7)内容  
      330.   
      331. {if $allow_visitor==1}  
      332.     {$content}  
      333.     <!--内容关联投票-->  
      334.     {if $voteid}  
      335.         <script language="javascript" src="{APP_PATH}index.php?m=vote&c=index&a=show&action=js&subjectid={$voteid}&type=2"></script>  
      336.     {/if}  
      337.                   
      338. {else}  
      339.     <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>  
      340. {/if}  
      341.   
      342. (8)短标题:  
      343.   
      344. {if $titles}  
      345.     <fieldset>  
      346.     <legend class="f14">本文导航</legend>  
      347.     <ul class="list blue row-2">  
      348.     {loop $titles $r}  
      349.         <li>{$n}、<a href="{$r[url]}">{$r[title]}</a></li>  
      350.     {/loop}  
      351.     </ul>  
      352.     </fieldset>  
      353. {/if}  
      354.   
      355. (9)分页代码:  
      356.   
      357. {$pages}  
      358.   
      359. (10)相关搜索词:  
      360.   
      361. <p style="margin-bottom:10px">  
      362.  <strong>相关热词搜索:</strong>  
      363.  {loop $keywords $keyword}  
      364.     <a       href="{APP_PATH}index.php?m=content&c=tag&catid={$catid}&tag={urlencode($keyword)}" class="blue">{$keyword}</a>      
      365.  {/loop}  
      366. </p>  
      367.   
      368. (11)上一篇、下一篇  
      369.   
      370. <p class="f14">  
      371. <strong>上一篇:</strong><a href="{$previous_page[url]}">{$previous_page[title]}</a>  
      372. <strong>下一篇:</strong><a href="{$next_page[url]}">{$next_page[title]}</a>  
      373. </p>  
      374.   
      375. (12)统计点击量:  
      376.   
      377. <script language="JavaScript" src="{APP_PATH}api.php?op=count&id={$id}&modelid={$modelid}"></script>  
      378.   
      379. (13)网页标题:  
      380.   
      381. {$SEO['title']}{$SEO['site_title']}  
      382.   
      383. (14)网页描述:  
      384.   
      385. {$SEO['description']}  
      386.   
      387. (15)网页关键子:  
      388.   
      389. {$SEO['keyword']}  
      390.   
      391.   
      392. 7、pc标签的使用:在v9中,我们将使用pc标签作为获取数据的主要方式  
      393.   
      394. pc标签分模块来使用,今天,主要来学习内容模块pc标签的使用  
      395.   
      396. 内容模块的pc标签可用来完成如下功能:  
      397.   
      398. (1)获取内容列表:lists  
      399.   
      400. (2)获取点击排行榜:hits  
      401.   
      402. (3)获取相关文章:relation  
      403.   
      404. (4)获取栏目列表:category  
      405.   
      406. 8、自定义pc标签:pc标签的源代码在 phpcms/modules/模块名/classes/模块名_tag.class.php中  
      407.   
      408. 我们可根据项目需求,为pc标签增加额外的功能,以满足项目的需要  
      409.   
      410. 9、get万能标签:通过sql语句来获取数据  
      411.   
      412. 10.碎片标签:碎片功能允许我们将网页分为若干块儿,每一块儿都可以在后台像修改文章内容一样由  
      413.   
      414. 编辑人员来可视化的维护,并可实时替换每一块儿的内容  
      415.   
      416. {pc:block pos="daohang"}{/pc}  
      417.   
      418. 碎片:碎片其实就是一段HTML代码,只不过这段html代码如果作为碎片的话,就可以由编辑人员在后  
      419.   
      420. 台任意更改了  
      421.   
      422. 11、扩展函数库:  
      423.   
      424. phpcms/libs/functions/global.func.php  
      425.   
      426. phpcms/libs/functions/extend.func.php  
      427.   
      428. 12、二次开发:  
      429.   
      430. 扩展控制器:MY_index.php  
      431.   
      432. ?> 
  • 相关阅读:
    结对编程
    四则运算
    认清自我,创造未来!!!
    浅谈GIT
    典型用户及用例故事
    结对编程 四则运算
    四则运算
    《未来的程序员》
    java项目命名规范
    四则运算测试
  • 原文地址:https://www.cnblogs.com/vip-deng-vip/p/7299345.html
Copyright © 2011-2022 走看看