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.php或 Admin****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的标签,实现更多功能
加载当前模板的Public/nav.html文件
验证码,幻灯片,评论,ajax操作时的弹框等都已经组织在框架里面。
还有一些好用的函数,比如获取当前用户信息、生成随机数、发送邮件、分页
注意:
1、平时一定要把data/conf/db.php文件做个备份
原文链接:https://blog.csdn.net/weixin_42394573/article/details/119524129?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165918471416781683945613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165918471416781683945613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-27-119524129-null-null.nonecase&utm_term=%E5%85%8D%E5%A4%87%E6%A1%88cdn
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/1891