thinkcmf 的使用心得

huxiaobai_001發表於2020-03-28

友情提示:重點是裡面的兩個學習視訊連線地址

最近公司業務需求,升級官網,之前是從來沒維護過公司官網的,感覺萬年不變,咋會維護呢?突然就維護了呢!剛開始拿到原始碼的時候感覺很簡單,以為不就他媽的一套cms嗎,有什麼大不了的,巴拉巴拉程式碼就會了,可誰知道哪裡那麼簡單,原來用的是thinkcmf,也許大家以為,thinkcmf有什麼難的啊?
確實不難,舉個例子,13年的時候送快遞,送快遞有啥難的,不就送嘛,可到了片區不就那麼回事了,片區不熟,摸不清東西南北中,一頭霧水啊,幹了一週我就撤了!現在想想挺可憐啊,咋不早學php golang呢?

剛接觸php之後的第一份工作是到濟南哮喘病醫院做網站,當時用的是dedecms那也是我第一次做網站,當時感覺好牛逼啊,我會做網站啦,當時即使改個網站logo或者底部資訊再或者網頁上其他一些小的東西吧 都得麻煩開發人員來搞,網站維護的成本還是比較高的,得有專門的維護人員!
我感覺thinkcmf的強大之處在於元件豐富,社群活躍度更高,很多開源的外掛供你使用,你也可以自定義外掛來用,外掛不外掛的就不說了,這次我也沒用上它,初次使用thinkcmf最大的印象是傻瓜式模板以及模板元件的使用,傻瓜式模板就解決了上邊我們說的dedecms改個東西都得要麻煩開發人員的問題,thinkcmf的傻瓜式模板可以讓使用者自己去修改介面上要顯示的元素,也就是說網站上所有的按鈕 圖片 文字 等等等等 都可以是活的,活到使用者可以通過傻瓜式模板自己自定義!再說元件,也就是widget元件,有時候我們想讓頁面這一塊顯示,後來不顯示了,再後來又顯示,在之前是真他媽麻煩啊,有了widget元件 使用者可以在後臺通過按鈕自己控制這一區域要不要顯示,就這麼靈活!

在說說thinkcmf的標籤吧,要是放到幾年前我會把標籤都總結好放到檔案裡面 用的時候直接複製貼上,當然這是菜鳥的做法了,thinkcmf封裝了一套自己的標籤,導航 列表 單頁 分類 子分類…. 這些自己可以去thinkcmf官網去找手冊看就完事啦!
thinkcmf還可以堅持自定義標籤,自己封裝一套標籤來使用,當然這次改版比較簡單,我也沒去親自自定義標籤來使用,但是感覺確實挺方便的,至於如何自定義標籤,很簡單https://segmentfault.com/ls/16500000188527...
自己去看視訊吧!自己去看視訊吧!
另外提供一套惠達浪老師的視訊課程:
https://study.163.com/course/courseMain.ht...
別小看它,自己琢磨試試看,琢磨哭你!
自己琢磨就跟送快遞到了片區 這個快遞到底是哪家的啊 到底在哪裡啊 你就找吧 找吧 因為裡面很多作者自定義的東東

當然thinkcmf還有很多強大的功能,api 微信 swoole 都能很好的支援,但是我只想用它做個網站,其他的不需要,僅此而已!剩下的功能 大家有興趣自己去研究吧!就是手冊有的部分收費真蛋疼!我窮啊!

個人認為基本的網站製作你也不需要搞自定義標籤啥的,多弄點分類就完事了,大點的網站可能要二開,那你就模仿人家後臺,多建立幾個後臺欄目,人家咋建的你就咋建,後臺沒啥的!前臺的時候可能就不要你去讀不同的表,需要自定義標籤了,咋自定義呢?要麼花錢看視訊,要麼去研究E:\phpStudy\PHPTutorial\WWW\goldencis\app\portal\taglib\Portal.php 裡面的標籤 看人家是咋自定義的!我沒做太多研究,也沒啥好研究的,即使研究了又不做外包,很快就忘了,啥時候用啥時候再研究是最好的!學了就忘用不上是最蛋疼的事情!

接下來的內容喜歡就看 不喜歡勿看 個人摸索thinkcmf的時候做的一些筆記 也許只有我自己能看的明白吧:

初次使用thinkcmf 將一些要點記錄在此
1.thinkcmf5模板中portal:articles標籤不解析
把標籤庫放在公共檔案頭部 記住一定是頭部 不是頭部都不能解析:
https://www.thinkcmf.com/docs/cmf/%E5%8A%A0%E8%BD%BD%E9%97%A8%E6%88%B7%E5%BA%94%E7%94%A8%E6%A0%87%E7%AD%BE%E5%BA%93.html

2.thinkcmf5當中傻瓜式模板的介紹?
a.
nav.json是單獨為nav.html模板而誕生的  叫做傻瓜式模板
很多時候客戶想換個網站logo 改一下網站的名稱  這些零散的小活如果再去麻煩開發人員 那就太蛋疼了
thinkcmf可以很好的解決這些問題  就有了這裡的傻瓜式模板
我們可以為模板nav.html製作一個nav.json檔案  其實就是相當於配置一些公共資訊
前邊的  name  action description is_public order 是必須要有的
more裡面表示的是更多的配置資訊

is_public 如果你不設定或者為0 那麼在base.html等其他頁面當中引用nav.html的時候就會報錯 找不到你在nav.json檔案當中配置的公共欄位的資訊
所以public裡面的公共的模板儘量is_public設定為 1

vars陣列當中 logo  site_name是欄位名稱 裡面的value是值
在模板nav.html當中可以通過$theme_vars['site_name']或者$theme_vars.site_name 都可以獲取到這個nav.json檔案裡面的公共的值

在模板管理下的所有模板裡面的當前啟用的模板裡面的檔案列表裡面 你可以看到nav.json檔案裡面你所配置的資訊
然後點選設計 裡面有設定按鈕 就是你在nav.json檔案裡面配置的欄位的資訊 包括logo還有site_name的資訊

b.
模板描述檔案manifest.json
建立好了模板並配置了模板描述檔案 那麼在後臺的設定->模板管理->安裝模板 安裝即可!選擇模板還可以啟用停用
那些傻瓜式模板都會在檔案列表當中展示

3.模板常量
這裡講解的比我更加清楚:
https://www.thinkcmf.com/docs/cmf/%E6%A8%A1%E6%9D%BF%E5%B8%B8%E9%87%8F.html
__ROOT__ 網站根目錄
__STATIC__     public/static
__TMPL__ 當前模板的根目錄  比如 public/themes/acme

4.模板元件的使用
https://www.thinkcmf.com/doc5_1.html
也許手冊看的迷迷糊糊  模板元件的作用就是控制頁面的一大塊顯示還是隱藏以及比如文章列表要顯示那個分類下的 可以在元件當中選擇
案例首頁當中有應用

5.單頁的使用
在widget元件當中配置元件資訊 讓使用者可以填寫單頁id
單頁的資料來源:
"dataSource": {
"api": "portal/Page/index",
"multi": false
},
獲取使用者填寫的單頁id 通過下邊的程式碼去查詢單頁的具體內容
<php>
 $service = new \app\portal\service\ApiService(); $page = $service->page($widget['vars']['page_id']);</php>

6.新聞類別的資料來源:
"dataSource": {
"api": "portal/Category/index",
"multi": false
},
導航的資料來源:admin/Nav/index
文章列表的資料來源:portal/List/index

7.相簿的製作  用到了文章裡面的相簿功能

8.文章大類下的子類的讀取

9.讀取不同分類下的推薦的文章

10.底部導航

11.公共的配置資訊讀取

12.文章列表頁
資料來源:portal/List/index 引數id(文章類別id)
列表頁已經將文章分類資訊賦值在變數$category中,直接使用即可
limit引數預設為10
預設列表頁模板檔名必須是:list.html

13.麵包屑  以及  分頁的使用  在模板列表頁當中有案例

14.列表頁的製作
每個分類下的文章得有列表文章展示
系統預設的是去找list作為列表頁展示  所以你可以建立list模板  然後list.json當中這麼寫
記住  action一定得是 portal/List/index
{
"name": "文章列表頁",
"action": "portal/List/index",
"description": "文章列表模板檔案",
"order": 40.0,
"more": {
"vars": {
"page_count": {
"title": "每頁文章數量",
"value": "10",
"type": "number",
"tip": "列表頁每頁顯示文章的數量"
}
}
}
}
假設你想換一個模板展示列表頁  建立listcol.html 然後建立listcol.json 內容如下
記住 裡面的action 也一定是portal/List/index

{
"name": "文章列表頁雙列顯示",
"action": "portal/List/index",
"description": "文章列表雙列顯示模板檔案",
"is_public": "1",
"order": 45.0,
"more": {
"vars": {
"page_count": {
"title": "每頁文章數量",
"value": "10",
"type": "number",
"tip": "列表頁每頁顯示文章的數量"
}
}
}
}
這樣的話在分類編輯裡面的模板設定裡面就可以找到列表模板裡面有兩套模板了  你可以對該分類下的列表展示 隨意選擇一套模板來顯示列表

文章頁的action如下:
預設是 portal/Article/index 也就是說 文章頁會預設去找article.html來顯示 除非你換成別的模板
{
"name": "文章頁",
"action": "portal/Article/index",
"description": "文章模板檔案",
"order": 60.0
}

單頁的action如下:
單頁預設是 portal/page/index 也就是說 單頁會預設去找page.html來顯示 除非你換成別的模板
{
"name": "單頁",
"action": "portal/page/index",
"description": "單頁面",
"order": 60.0
}

列表頁  文章頁  單頁 你都可以建立多套模板  在分類  文章  單頁的編輯頁面裡面的模板設定 單獨為分類 文章  單頁配置想要的模板

案例裡面都有哈 自己去找吧!

15.搜尋頁的使用  有案例

16.url美化
http://tc.com/portal/article/index/id/6/cid/3.html
優化為:
http://tc.com/article/6/3.html
本作品採用《CC 協議》,轉載必須註明作者和本文連結

胡軍

相關文章