剛剛接觸phpcms,先從它的目錄結構提及。javascript
以下圖所示,是phpcms的主目錄結構:php
其中api是接口目錄,這個接口不是很明白。大概其是把別的內容加入進來,好比論壇啊什麼的。css
caches是緩存文件,存放的是緩存的信息,緩存可以提高網站的友好性,當第一次加載後,第二次就會很快的加載。html
html目錄,不曉得是什麼意思。裏面空空的。大概其是一些轉化爲html的文件存放在裏面吧。java
而後就是phpcms,這個是phpcms的核心目錄,裏面又有不少子目錄,以下圖所示:設計模式
languages是語言包,libs是一些核心類和函數,model目錄裏面是一些模型,moudules是模塊,裏面有一些控制器類,函數和模板,每一個模塊都對應着相應的控制器、函數和模板。plugin是插件目錄。templates是模板信息。不過有點暈的是,不曉得與modules裏的模板有什麼區別。api
分析完phpcms,接下來是phpsso_server目錄,關於phpsso,我查了一下,PHPSSO是用PHP開發的單點登陸系統。在接入PHPSSO的多個應用系統中,用戶只須要登陸一次就能夠訪問全部相互信任的應用系統。PHPSSO能夠將此次主要的登陸映射到其餘應用中用於同一個用戶的登陸的機制,是目前比較流行的企業業務整合的解決方案之一。它是一個獨立的系統,裏面的架構跟整個的phpcms差很少。緩存
而後就是statics,這個目錄存放的是一些美工的信息,css,js,images等。前臺的後臺的都存放在裏面。架構
還有就是uplandfile目錄,裏面是一些上傳的文件。mvc
phpcms是一種mvc設計模式的內容管理系統。它的前臺入口文件爲index.php。
/** * index.php PHPCMS 入口 * * @copyright (C) 2005-2010 PHPCMS * @license http://www.phpcms.cn/license/ * @lastmodify 2010-6-1 */ //PHPCMS根目錄 define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); include PHPCMS_PATH.'/phpcms/base.php'; pc_base::creat_app();
由index.php進入核心目錄phpcms中。而後進入真正的PHPCMS框架入口文件base.php。
後臺入口文件爲admin.php。
<?php header('location:index.php?m=admin'); ?>
略微看了一下,只是一個跳轉,跳轉到index.php界面,同時多了一個參數,大概這個參數就是控制頁面進入後臺的。
phpcms用的是mvc架構,在模板中用的是一種本身的模板技術,相似於Smarty,能夠將html與PHP代碼分開。隨便找一個模板看一下。
{template 'member', 'header'} <script language="javascript" type="text/javascript" src="{JS_PATH}admin_common.js"></script> <link href="{CSS_PATH}dialog.css" rel="stylesheet" type="text/css" /> <script language="javascript" type="text/javascript" src="{JS_PATH}dialog.js"></script> <div id="memberArea"> {template 'member', 'left'} <div class="col-auto"> <div class="col-1 "> <h6 class="title">收件箱</h6> <div class="content"> <form name="myform" id="myform" action="{APP_PATH}index.php?m=message&c=index&a=delete" method="post" onsubmit="checkuid();return false;"> <table width="100%" cellspacing="0" class="table-list"> <thead> <tr> <th width="5%"><input type="checkbox" value="" id="check_box" onclick="selectall('messageid[]');"></th> <th width="35%">標 題</th> <th width="8%">回 復</th> <th width="15%">發件人</th> <th width="15%">發送時間</th> </tr> </thead> <tbody> {loop $infos $info} <tr> <td width="5%" align="center"><input type="checkbox" name="messageid[]" value="{$info['messageid']}"></td> <td width="35%" align=""><a href="{APP_PATH}index.php?m=message&c=index&a=read&messageid={$info['messageid']}">{if $info['status']==1}<font color=red><b>{$info['subject']}</b></font>{else}{$info['subject']}{/if}</a></td> <td width="8%" align="center">{if $info['status']!=2}{/if}{$info['reply_num']}</td> <td width="15%" align="center">{$info['send_from_id']}</td> <td width="15%" align="center">{date('Y-m-d H:i:s',$info['message_time'])} </a> </tr> {/loop} </tbody> </table> <div class="btn"><a href="#" onClick="javascript:$('input[type=checkbox]').attr('checked', true)">全選</a>/<a href="#" onClick="javascript:$('input[type=checkbox]').attr('checked', false)">取消</a> <input name="submit" type="submit" class="button" value="刪除選中" onClick="return confirm('確認要刪除 『 選中 』 嗎?')"> </div> </form> <div id="pages">{$pages}</div> </div> <span class="o1"></span><span class="o2"></span><span class="o3"></span><span class="o4"></span> </div> </div> </div> <script type="text/javascript"> function read(id, name) { window.top.art.dialog({id:'sell_all'}).close(); window.top.art.dialog({title:'查看詳情'+name+' ',id:'edit',iframe:'?m=message&c=index&a=read&messageid='+id,width:'700',height:'450'}, function(){var d = window.top.art.dialog({id:'see_all'}).data.iframe;var form = d.document.getElementById('dosubmit');form.click();return false;}, function(){window.top.art.dialog({id:'see_all'}).close()}); } function checkuid() { var ids=''; $("input[name='messageid[]']:checked").each(function(i, n){ ids += $(n).val() + ','; }); if(ids=='') { window.top.art.dialog({content:'請選擇再執行操做',lock:true,width:'200',height:'50',time:1.5},function(){}); return false; } else { myform.submit(); } } </script> {template 'member', 'footer'}
這是一個消息message頁面的代碼,裏面會有一些{}括起來的內容,它就是phpcms自帶的模板技術。能夠將php頁面的信息渲染到界面中去。
略看了一下模板目錄中的內容,以下所示:
有一種模塊化的感受,有評論模塊、有內容模塊、有連接模塊、有消息模塊、有查詢模塊等等。
大概其,採用的是mvc架構,仍是比較清晰的。對於二次來發來講,搞清目錄結構仍是很重要的。還要研究研究代碼。
文章轉自:http://www.cnblogs.com/jiqing9006/archive/2012/07/24/2606553.html