thinkcmf ajax,个人使用琐记-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.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文件做个备份
thinkcmf ajax,个人使用琐记-thinkcmf相关推荐
- thinkcmf ajax,thinkcmfx 中如何用jquery ajax提交数据,自己尝试去做之后,还是没法提交,求助!...
*姓名 *电话 *给我们留言 提交留言 namespace PortalController; use CommonControllerHomebaseController; /** 首页 */ cl ...
- 感悟琐记:业绩=资源的n次方
6月11日,梭子鱼中国总经理何平来到51CTO.com接受内容副总监.资深记者程鸿的独家视频采访.采访结束后,何总与51CTO总经理熊平就IT业界发展的一些热点.以及IT媒体的问题又进行了长时间的沟通 ...
- 关于 IAR 环境的一些使用 琐记
虽然对于IAR这个环境很不喜欢,但为了搞CC2530,不得不用. 把碰到的一些点滴记录下来: 1.Options->C/C++ Compiler->Preprocessor->Def ...
- about quartus, FPGA and verilog 琐记
1. Quartus中的报告文件,各种 *.rpt文件就是,其中 *.flow.rpt 记录着看到编译后的报告(主要各种资源的使用情况).
- 《海边的卡夫卡》阅读琐记
海边的卡夫卡----村上春树 前言 大四时期偶然读了几本日本作家的小说,其中邂逅了村上的基本长篇,对其灵动的文笔所吸引,半年前赶着书城活动买了本<海边的卡夫卡>,这个月偶尔翻翻,至今读了2 ...
- 琐记之生活感悟(关于日常生活的东西都丢这里)
一. 每个人自己的技术水平怎么样,自己最清楚,所以只有坚持学习才能缩小于别人的差距.爱因斯坦说:人与人最大的区别在于业余时间.所以在该奋斗的时间里,就要全力去奋斗. 二.你所浪费的今天,是昨天死去的人 ...
- 琐记8:恐怖的僵尸进程与温暖的守护进程
1.被我标题吸引进来的同学先不要着急,在讨论标题中的内容之前,我们需要先了解下进程的终止: exit 与_exit 函数都是用来结束进程的函数,首先是exit:它的头文件:<stdlib.h&g ...
- 七八个星天外,两三点雨山前 (琐记)
<西江月·夜行黄沙道中> [南宋]辛弃疾 明月别枝惊鹊,清风半夜鸣蝉.稻花香里说丰年,听取蛙声一片. 七八个星天外,两三点雨山前.旧时茅店社林边,路转溪桥忽见. 1·memset( ...
- 有关永中科技破产到工信部上访琐记
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --> 6 月 13 日,就永中科技破产一事,我到工信部进行"上访& ...
最新文章
- day4 匿名函数、装饰器、生成器、迭代器、内置函数、 json 与 pickle 模块
- django_form表单类
- mysql系列:加深对脏读、脏写、可重复读、幻读的理解
- jmeter tps指标在哪里看_jmeter性能测试讲的很详细
- Python基础——try(异常处理)
- Servlet过滤器Filter和监听器
- mycat err:java.sql.SQLNonTransientException: find no Route:select日志报错
- linux pthread头文件,pthread t 头文件_uint8 t 头文件_pthread t 头文件
- 3G与2G网络融合中组网策略(转)
- dll加壳c语言,使用VC自己动手编写加壳程序
- 媒体应用视频超分AI神器!360P视频一键转换HD
- 影视后期制作学习(AE)(父子级链接-表达式)
- 密码学的安全性浅析3
- SCSS 和 Sass 有什么区别?
- 计算机c盘加容量,增加C盘空间,详细教您怎么增加C盘空间
- 国庆放假前一周,再学这些技术,安安稳稳过假期
- Arduino循迹小车教程一----材料篇
- 比亚迪DiLink深体验:让科幻般的车生活都成为实现,智能网联集大成者张这样?...
- SAP FREE_SELECTIONS_INIT多表动态选择演示
- Hank的无线802.11学习笔记--part 1
热门文章
- 细腻古典氛围 功能性经典家居设计
- 15个免费开放电子科研文献下载资源库
- 【海洋女神原创】一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一...
- 游戏设计的236个技巧pdf
- Android中自定义农历日历,CalendarView Android 上一个优雅、万能自定义 UI、性能高效的日历控件,热插拔!热插拔!热插拔!重要的事 @codeKK Android开源站...
- Vim编辑器与shell脚本(.sh)
- Minio Note [vaynexiao]
- 【C#初学者必备】常用200+单词整理
- Lammps实现甲烷与水的竞争吸附-循环不同气体分子
- Unity学习之游戏初步策划