个人使用琐记-thinkcmf

ThinkCMF是一款基于ThinkPHP+MySQL开发的中文内容管理框架。ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,根据自身的需求以应用的形式进行扩展,每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作。所以在ThinkCMF中你只是增加了一个APP,每个独立运行互不影响,便于灵活扩展和二次开发。

代码遵循Apache2开源协议,免费使用,对商业用户也无任何限制


thinkcmf里的simpleboot开发框架,完全基于bootstrap 2.3.2,但它拥有更多的组件,同时支持IE7+,可以直接使用,不用再次安装


ThinkCMF特别开发规范

1、应用后台控件器放在应用Controller目录中,最好不要存放在Admin/Controller下,保证应用模块独立

2、应用后台控件器命名以****adminController.class.php或者Admin****Controller.class.php命名的是后台Controller, 在后台菜单导入时会自动识别

3、应用后台控件器方法命名:用户无法访问的内部方法,请以下划线(_)开头;

4、附件保存路径,要相对于upload目录,只保存之后路径

5、使用I函数获取post和get的数据

6、模板中php代码注释都使用/**/的方式,//这种方式一定不要用,否则debug关闭后会有各种问题!

7、各种php文件最好别加?>结束,防止响应多余字符


ThinkCMF目录结构

|--admin                      /管理后台URL重定向目录,你可以将文件夹名改为任何你喜欢的

|--themes                /后台模板文件目录

|--application                /应用目录

|--data                      /各类数据存放目录,包括缓存数据

|--simplewind                /核心包,无特殊情况请勿改动

|--public                    /静态文件存放包,包含bootstrap资源

|--themes                    /前台模板文件目录

application 目录结构:

|--application

|--Admin                    /后台管理应用

|--Api                      /公共接口

|--Asset                    /资源管理应用

|--Comment                  /评论应用

|--Common                  /应用公共模块

|--Portal                  /门户应用



应用就是application目录下的一个模块,它是独立于其它模块存在的,有自己独立的运行空间;

例如Blog应用目录结构:

Controller 控制器目录(必备)

Common 函数库(可选)

Conf 配置(可选)

Lang 多语言包(可选)

Menu 后台菜单(可选)

Model 模型(可选)

nav.php 前台导航文件(可选)

而在 CMF 中应用的 View 是独立于应用之外的,它分为前台view 和后台view, 分别存放在themes/前台主题/应用名,和admin/themes/后台主题/应用名下;

创建一个blog应用

1、在application/Common/Conf/config.php文件MODULE_ALLOW_LIST数组里加上应用名Blog

2、在application下创建上面讲到的Blog目录结构;



前台控制器

前台控制器位于应用的Controller目录下,一般继承Common\Controller\HomebaseController,如果你需要用户登录才访问或操作此控制器,就要继承Common\Controller\MemberbaseController

后台控制器

在某个应用Controller目录下创建一IndexadminController.class.php文件(注意:这里有文件命名规则,以****adminController.class.phpAdmin****Controller.class.php命名的是后台Controller, 在后台菜单导入时会自动识别

就要用户登录才能访问,就继承自AdminbaseController这个控制器。

不用管理员登录也能被访问到,只给IndexadminController加个空的_initialize()方法(初始化,这里不执行父类的初始化方法);



模板定义:



前台模板位于themes目录下,后台模板位于admin/themes目录下,前后台都是多主题机制的,可以分开设置不同的主题;


这是前台模板的结构;应用之间彼此分开,Portal目录下就对应的是application/Portal应用的模板文件;

一个模板文件大致路径是这样的:themes/主题名/应用名/控制器名/操作名+(.html) 或者 themes/主题名/应用名/自定义模板名+(.html),如:themes/simplebootx/User/Profile/password.html,themes/simplebootx/Portal/index.html;

应用名以后的部分,开发者可以用控制器的display方法指定模板的具体文件名



模板主题

cmf分为前台模板主题和后台模板主题,两都分开独立设置,它们也在不同的目录下,前台模板在themes下,后台模板在admin/themes下。

前后台是都支持多主题的,如果我想增加的主题,只要把默认主题复制后,目录名改一下放在前后台主题目录下,就是一个新的主题,当然你完全可以从零开始写,只要确保文件名对应就可以了;要注意模板命名格式,英文字母加数字的形式

注意你在打开模板方案里可能会发现_en-us,_mobile,_mobile_en-us结尾的类似模板,这些都是相应模式下的模板,比如,你后台设置的是simplebootx,如果是手机用户系统会自动判断,并使用simplebootx_mobile 模板,如果用户是英文的系统也会自动判断使用simplebootx_en-us模板;



应用开发流程:

http://www.thinkcmf.com/docs/cmfx/extends/application_flow.html



全局变量:

{$site_name}/站点名称

{$site_host}/站点域名

{$site_root}/安装目录

{$site_icp}/备案信息

{$site_admin_email}/管理员邮箱

{$site_tongji}/页面统计代码

{$site_seo_title}/SEO标题

{$site_seo_keywords}/SEO关键字

{$site_seo_description}/SEO描述

{$site_copyright}/版权信息



模板常量:

__ROOT__:网站根目录,不带/;

__WEB_ROOT__: 网站资源根目录,不带/,如果以前版本用__ROOT__来定位网站资源,x2.2.0以后最好用这个常量,方便以后cdn切换

__TMPL__:当前模板根目录,带/;

     如:前台 simplebootx 模板根目录是/themes/simplebootx/

     后台 simplebootx模板根目录是/admin/themes/simplebootx/

__PUBLIC__:public目录,不带/;



包含文件:

tc_include

tc_include是前台模板包含文件的方法,用于替换原来的include的标签,实现更多功能

<tc_include file='Public:nav'>加载当前模板的Public/nav.html文件



验证码,幻灯片,评论,ajax操作时的弹框等都已经组织在框架里面。

还有一些好用的函数,比如获取当前用户信息、生成随机数、发送邮件、分页

注意:

1、平时一定要把data/conf/db.php文件做个备份

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • 转载自cr180大神DiscuzX2.5完整目录结构【source程序文件库】 /source/admincp后台...
    cndaqiang阅读 844评论 1 2
  • MetInfo应用开发文档 1. 开发准备 1.1 前言 MetInfo应用制作介绍MetInfo企业网站管理系统...
    layjoy阅读 12,074评论 4 5
  • Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的HTML脚本/编程语言,是一种简单的、面向对象...
    廖马儿阅读 2,127评论 2 38
  • 已经同步到gitbook,想阅读的请转到gitbook: Django 1.10 中文文档 Writing you...
    leyu阅读 783评论 1 1