ThinkCMF是一款基于ThinkPHP+MySQL開發(fā)的中文內容管理框架。ThinkCMF提出靈活的應用機制旺入,框架自身提供基礎的管理功能门怪,根據(jù)自身的需求以應用的形式進行擴展坐梯,每個應用都能獨立的完成自己的任務郎汪,也可通過系統(tǒng)調用其他應用進行協(xié)同工作。所以在ThinkCMF中你只是增加了一個APP劝萤,每個獨立運行互不影響渊涝,便于靈活擴展和二次開發(fā)。
代碼遵循Apache2開源協(xié)議床嫌,免費使用跨释,對商業(yè)用戶也無任何限制
thinkcmf里的simpleboot開發(fā)框架,完全基于bootstrap 2.3.2,但它擁有更多的組件厌处,同時支持IE7+鳖谈,可以直接使用,不用再次安裝
ThinkCMF特別開發(fā)規(guī)范
1阔涉、應用后臺控件器放在應用Controller目錄中缆娃,最好不要存放在Admin/Controller下,保證應用模塊獨立
2瑰排、應用后臺控件器命名以****adminController.class.php或者Admin****Controller.class.php命名的是后臺Controller, 在后臺菜單導入時會自動識別
3贯要、應用后臺控件器方法命名:用戶無法訪問的內部方法,請以下劃線(_)開頭椭住;
4崇渗、附件保存路徑,要相對于upload目錄京郑,只保存之后路徑
5宅广、使用I函數(shù)獲取post和get的數(shù)據(jù)
6、模板中php代碼注釋都使用/**/的方式些举,//這種方式一定不要用跟狱,否則debug關閉后會有各種問題!
7金拒、各種php文件最好別加?>結束兽肤,防止響應多余字符
ThinkCMF目錄結構
|--admin? ? ? ? ? ? ? ? ? ? ? /管理后臺URL重定向目錄套腹,你可以將文件夾名改為任何你喜歡的
|--themes? ? ? ? ? ? ? ? /后臺模板文件目錄
|--application? ? ? ? ? ? ? ? /應用目錄
|--data? ? ? ? ? ? ? ? ? ? ? /各類數(shù)據(jù)存放目錄绪抛,包括緩存數(shù)據(jù)
|--simplewind? ? ? ? ? ? ? ? /核心包,無特殊情況請勿改動
|--public? ? ? ? ? ? ? ? ? ? /靜態(tài)文件存放包电禀,包含bootstrap資源
|--themes? ? ? ? ? ? ? ? ? ? /前臺模板文件目錄
application 目錄結構:
|--application
|--Admin? ? ? ? ? ? ? ? ? ? /后臺管理應用
|--Api? ? ? ? ? ? ? ? ? ? ? /公共接口
|--Asset? ? ? ? ? ? ? ? ? ? /資源管理應用
|--Comment? ? ? ? ? ? ? ? ? /評論應用
|--Common? ? ? ? ? ? ? ? ? /應用公共模塊
|--Portal? ? ? ? ? ? ? ? ? /門戶應用
應用就是application目錄下的一個模塊幢码,它是獨立于其它模塊存在的,有自己獨立的運行空間尖飞;
例如Blog應用目錄結構:
Controller 控制器目錄(必備)
Common 函數(shù)庫(可選)
Conf 配置(可選)
Lang 多語言包(可選)
Menu 后臺菜單(可選)
Model 模型(可選)
nav.php 前臺導航文件(可選)
而在 CMF 中應用的 View 是獨立于應用之外的症副,它分為前臺view 和后臺view, 分別存放在themes/前臺主題/應用名店雅,和admin/themes/后臺主題/應用名下;
創(chuàng)建一個blog應用
1贞铣、在application/Common/Conf/config.php文件MODULE_ALLOW_LIST數(shù)組里加上應用名Blog
2闹啦、在application下創(chuàng)建上面講到的Blog目錄結構;
前臺控制器
前臺控制器位于應用的Controller目錄下辕坝,一般繼承Common\Controller\HomebaseController,如果你需要用戶登錄才訪問或操作此控制器窍奋,就要繼承Common\Controller\MemberbaseController;
后臺控制器
在某個應用Controller目錄下創(chuàng)建一IndexadminController.class.php文件(注意:這里有文件命名規(guī)則酱畅,以****adminController.class.php或 Admin****Controller.class.php命名的是后臺Controller, 在后臺菜單導入時會自動識別
就要用戶登錄才能訪問琳袄,就繼承自AdminbaseController這個控制器。
不用管理員登錄也能被訪問到纺酸,只給IndexadminController加個空的_initialize()方法(初始化窖逗,這里不執(zhí)行父類的初始化方法);
模板定義:
前臺模板位于themes目錄下餐蔬,后臺模板位于admin/themes目錄下碎紊,前后臺都是多主題機制的,可以分開設置不同的主題;
這是前臺模板的結構用含;應用之間彼此分開矮慕,Portal目錄下就對應的是application/Portal應用的模板文件;
一個模板文件大致路徑是這樣的:themes/主題名/應用名/控制器名/操作名+(.html) 或者 themes/主題名/應用名/自定義模板名+(.html)啄骇,如:themes/simplebootx/User/Profile/password.html,themes/simplebootx/Portal/index.html;
應用名以后的部分痴鳄,開發(fā)者可以用控制器的display方法指定模板的具體文件名
模板主題
cmf分為前臺模板主題和后臺模板主題,兩都分開獨立設置缸夹,它們也在不同的目錄下痪寻,前臺模板在themes下,后臺模板在admin/themes下虽惭。
前后臺是都支持多主題的橡类,如果我想增加的主題,只要把默認主題復制后芽唇,目錄名改一下放在前后臺主題目錄下顾画,就是一個新的主題,當然你完全可以從零開始寫匆笤,只要確保文件名對應就可以了研侣;要注意模板命名格式,英文字母加數(shù)字的形式
注意你在打開模板方案里可能會發(fā)現(xiàn)_en-us,_mobile,_mobile_en-us結尾的類似模板炮捧,這些都是相應模式下的模板庶诡,比如,你后臺設置的是simplebootx,如果是手機用戶系統(tǒng)會自動判斷咆课,并使用simplebootx_mobile 模板末誓,如果用戶是英文的系統(tǒng)也會自動判斷使用simplebootx_en-us模板扯俱;
應用開發(fā)流程:
http://www.thinkcmf.com/docs/cmfx/extends/application_flow.html
全局變量:
{$site_name}/站點名稱
{$site_host}/站點域名
{$site_root}/安裝目錄
{$site_icp}/備案信息
{$site_admin_email}/管理員郵箱
{$site_tongji}/頁面統(tǒng)計代碼
{$site_seo_title}/SEO標題
{$site_seo_keywords}/SEO關鍵字
{$site_seo_description}/SEO描述
{$site_copyright}/版權信息
模板常量:
__ROOT__:網(wǎng)站根目錄,不帶/;
__WEB_ROOT__: 網(wǎng)站資源根目錄,不帶/,如果以前版本用__ROOT__來定位網(wǎng)站資源,x2.2.0以后最好用這個常量,方便以后cdn切換
__TMPL__:當前模板根目錄喇澡,帶/;
? ? ?如:前臺 simplebootx 模板根目錄是/themes/simplebootx/
? ? ?后臺 simplebootx模板根目錄是/admin/themes/simplebootx/
__PUBLIC__:public目錄,不帶/;
包含文件:
tc_include
tc_include是前臺模板包含文件的方法迅栅,用于替換原來的include的標簽,實現(xiàn)更多功能
<tc_include file='Public:nav'>加載當前模板的Public/nav.html文件
驗證碼晴玖,幻燈片库继,評論,ajax操作時的彈框等都已經(jīng)組織在框架里面窜醉。
還有一些好用的函數(shù)宪萄,比如獲取當前用戶信息、生成隨機數(shù)榨惰、發(fā)送郵件拜英、分頁
注意:
1、平時一定要把data/conf/db.php文件做個備份