thinkcmf 的使用心得

友情提示:重点是里面的两个学习视频连接地址

最近公司业务需求,升级官网,之前是从来没维护过公司官网的,感觉万年不变,咋会维护呢?突然就维护了呢!刚开始拿到源码的时候感觉很简单,以为不就他妈的一套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 协议》,转载必须注明作者和本文链接
胡军
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!