當前位置:首頁 > CMS教程 > phpcms > 正文

【phpcms-v9】詳情文字教程【含各種函數注釋】

  •   
  • 思路:  
  •   
  • 一、目前在企業中使用比較多的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標識,說明是在輸出  
  •   
  • (2)變量語法:  
  •   
  • {$title}//會被解析成,不帶php標識,說明是輸出  
  •   
  • (3)單行php解析語法  
  •   
  • {php $i=10;}//相當于  ,帶php標識,說明在處理邏輯,而不是輸出  
  •   
  • (4)條件判斷:  
  •   
  • {if $a > $b}  
  •       
  • {/if}  
  •   
  • 解析為:  
  •   
  •   
  • if($a>$b){  
  •   
  • }  
  • ?>  
  •   
  • (5)循環:  
  •   
  • {loop $data $key $val}{/loop}  
  •   
  • 解析為:  
  •   
  •   
  • foreach($data as $key=>$val){  
  •   
  • }  
  •   
  • ?>  
  •   
  • (6)自增自減:通常跟循環一起使用  
  •   
  • {php $i=10;}  
  • {loop $a $b}  
  •     {$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}class="summary" >{$description}{/if}  
  •   
  • (7)內容  
  •   
  • {if $allow_visitor==1}  
  •     {$content}  
  •       
  •     {if $voteid}  
  •         <script language= src="{APP_PATH}index.php?m=vote&c=index&a=show&action=js&subjectid={$voteid}&type=2"></script>  
  •     {/if}  
  •                   
  • {else}  
  •     
    "{APP_PATH}index.php?m=content&c=readpoint&allow_visitor={$allow_visitor}">"red">閱讀此信息需要您支付 {$readpoint} {if $paytype}元{else}點{/if},點擊這里支付
      
  • {/if}  
  •   
  • (8)短標題:  
  •   
  • {if $titles}  
  •     
      
  •     class="f14">本文導航  
  •     class="list blue row-2">  
  •     {loop $titles $r}  
  •         
  • {$n}、"{$r[url]}">{$r[title]}
  •   
  •     {/loop}  
  •       
  •       
  • {/if}  
  •   
  • (9)分頁代碼:  
  •   
  • {$pages}  
  •   
  • (10)相關搜索詞:  
  •   
  • "margin-bottom:10px">  
  •  相關熱詞搜索:  
  •  {loop $keywords $keyword}  
  •     "{APP_PATH}index.php?m=content&c=tag&catid={$catid}&tag={urlencode($keyword)}" class="blue">{$keyword}      
  •  {/loop}  
  •  

      
  •   
  • (11)上一篇、下一篇  
  •   
  • class="f14">  
  • 上一篇:"{$previous_page[url]}">{$previous_page[title]}  
  • 下一篇:"{$next_page[url]}">{$next_page[title]}  
  •  

      
  •   
  • (12)統計點擊量:  
  •   
  • <script language= 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)獲取欄目列表:category  
  •   
  • 8、自定義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.php  
  •   
  • phpcms/libs/functions/extend.func.php  
  •   
  • 12、二次開發:  
  •   
  • 擴展控制器:MY_index.php  
  •   
  • ?>  
上一篇:自己動手構建一個企業服務模塊 下一篇:最后一頁
四川快乐12走势图基本