美文网首页
个人使用琐记-thinkcmf

个人使用琐记-thinkcmf

作者: 木十2036 | 来源:发表于2017-03-13 22:53 被阅读1732次

    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}/版权信息


    模板常量:

    :网站根目录,不带/;

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

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

         如:前台 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文件做个备份

    相关文章

      网友评论

          本文标题:个人使用琐记-thinkcmf

          本文链接:https://www.haomeiwen.com/subject/qowqnttx.html