图样:

opencmf.php存在于每个模块的根目录,是模块配置文件。
能进行持久化配置参数保存,一开始我以为是写文件或者做缓存,后来在数据库中发现admin_module表,存储了每个模块的配置参数。
参数是数组key-value形式存储的,所以访问的时候只需要使用C('模块名_config.key').

    <div class="clearfix full-container">
<block name="jumbotron">
<div class="jumbotron jumbotron-primary jumbotron-background main-jumbotron text-center">
<h4>{:C('Equip_config.show_repaire_phone_num')}</h4>
</div>
</block> <div id="main" class="main">
<block name="main">这里是内容</block>
</div>
</div>

  Application/Home/View/Public/layout.html

<!doctype html>
<html lang="zh">
<head>
<meta charset="utf-8">
<block name="title"><title>{$meta_title}|{:C('WEB_SITE_TITLE')}-{:C('WEB_SITE_SLOGAN')}</title></block>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta name="author" content="{:C('WEB_SITE_TITLE')}">
<meta name="keywords" content="{$meta_keywords}">
<meta name="description" content="{$meta_description}">
<meta name="generator" content="CoreThink">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="{:C('WEB_SITE_TITLE')}">
<meta name="format-detection" content="telephone=no,email=no">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<link rel="shortcut icon" type="image/x-icon" href="__ROOT__/favicon.ico">
<link rel="apple-touch-icon" type="image/x-icon" href="__ROOT__/logo.png"> <link rel="stylesheet" type="text/css" href="__CUI__/css/cui.min.css">
<link rel="stylesheet" type="text/css" href="__HOME_CSS__/home.css">
<link rel="stylesheet" type="text/css" href="__PUBLIC__/libs/animate/animate.min.css">
<block name="style"></block>
<!--[if lt IE 9]>
<script src="http://cdn.bootcss.com/html5shiv/r29/html5.min.js"></script>
<script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script type="text/javascript" src="__PUBLIC__/libs/jquery/1.x/jquery.min.js"></script>
</head> <body>
<div class="clearfix hook hook-page-header">
{:hook('PageHeader')} <!-- 文档开始钩子 -->
</div> <block name="wrap">
<div class="clearfix full-wrap">
<div class="clearfix full-header">
<block name="header">
<block name="top-nav">
<nav class="navbar navbar-default navbar-mini top-nav hidden-xs hidden-sm" role="navigation">
<div class="container">
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav" style="margin-left:-15px">
<li><a href="#">您好,欢迎来到 {:C('WEB_SITE_TITLE')} !</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<!-- 系统模块导航 开始-->
<opencmf:nav_list name="vo" pid="0">
<li>
<a target="{$vo.target}" href="{$vo.href}">
<span> {$vo.title}</span>
</a>
</li>
</opencmf:nav_list>
<!-- 系统模块导航 结束-->
</ul>
</div>
</div>
</nav>
</block> <block name="main-nav">
<nav class="navbar navbar-default main-nav" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse-main">
<span class="sr-only">切换导航</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<php>if(C('WEB_SITE_LOGO')):</php>
<a class="navbar-brand" href="{:C('HOME_PAGE')}">
<img alt="logo" src="{$Think.config.WEB_SITE_LOGO|get_cover}">
</a>
<php>else:</php>
<a class="navbar-brand" href="{:C('HOME_PAGE')}">
<span>{:C('PRODUCT_LOGO')}</span>
</a>
<php>endif;</php>
</div>
<div class="collapse navbar-collapse navbar-collapse-main">
<ul class="nav navbar-nav navbar-left">
<li><a href="{:C('HOME_PAGE')}">首页</a></li>
<cms:category_list name="vo" pid="0" group="1">
<php>if($vo['_child']):</php>
<li class="dropdown">
<a href="{$vo.href}" class="dropdown-toggle" data-toggle="dropdown" role="button">
{$vo.title} <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<volist name="vo._child" id="vo1">
<li>
<a href="{$vo1.href}">{$vo1.title}</a>
</li>
</volist>
</ul>
</li>
<php>else:</php>
<li>
<a href="{$vo.href}">
<span> {$vo.title}</span>
</a>
</li>
<php>endif;</php>
</cms:category_list>
</ul> <ul class="nav navbar-nav navbar-right">
<present name="_user_auth">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img class="nav-img img-circle" src="{$_user_auth.avatar|get_cover='avatar'}" alt="{$_user_auth.nickname}">
<span">
{$_user_auth.nickname}
<span class="badge badge-danger">{$_new_message}</span> <!-- 新消息数量 -->
</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="{:U('User/Index/home', array('uid' => $_user_auth['uid']), true, true)}"><i class="fa fa-home"></i> 个人主页</a></li>
<volist name="_user_nav_main" id="vo_nav">
<li><a href="{:U($vo_nav['url'], null, true, true)}" class="{$vo_nav.class}"><i class="{$vo_nav.icon}"></i> {$vo_nav.title}</a></li>
</volist>
<li role="separator" class="divider"></li>
<li><a href="{:U('User/User/logout', null, true, true)}" class="ajax-get"><i class="fa fa-sign-out"></i> 注销登录</a></li>
</ul>
</li>
<else /> </present>
</ul>
</div>
</div>
</nav>
</block>
</block>
</div> <div class="clearfix full-container">
<block name="jumbotron">
<div class="jumbotron jumbotron-primary jumbotron-background main-jumbotron text-center">
<h4>{:C('Equip_config.show_repaire_phone_num')}</h4>
</div>
</block> <div id="main" class="main">
<block name="main">这里是内容</block>
</div>
</div> <div class="clearfix full-foooter">
<block name="footer">
<div class="footer">
<div class="container">
<div class="row">
<div class="col-sm-6 col-lg-6">
<h4>
<php>if(C('WEB_SITE_LOGO')):</php>
<img alt="logo" style="width:220px;" src="{$Think.config.WEB_SITE_LOGO|get_cover}">
<php>else:</php>
<h3><a href="{:C('WEBSITE_DOMAIN')}">{:C('PRODUCT_LOGO')}</a></h3>
<php>endif;</php>
</h4>
<p class="text-muted">{:C('WEB_SITE_DESCRIPTION')}</p>
</div>
<div class="col-sm-6 col-lg-5 col-lg-offset-1">
<div class="row">
<!-- 底部导航 开始 -->
<cms:footnav_list name="vo">
<div class="col-xs-4 footnav-list">
<h4><a>{$vo.title}</a></h4>
<ul class="list-unstyled">
<volist name="vo._child" id="vo1">
<li>
<a target="_blank" class="text-muted" href="{$vo1.url}">{$vo1.title}</a>
</li>
</volist>
</ul>
</div>
</cms:footnav_list>
<!-- 底部导航 结束 -->
</div>
</div>
</div>
<div class="row footer-bottom">
<ul class="list-inline text-center">
<li><span class="copyright">{:C('WEB_SITE_COPYRIGHT')}</span></li>
<li><a class="icp" href="http://www.miibeian.gov.cn/" target="_blank">{:C('WEB_SITE_ICP')}</a></li>
</ul>
</div>
</div>
</div>
</block>
</div>
</div>
</block> <div class="clearfix hook hook-page-footer">
{:hook('PageFooter')} <!-- 文档末尾钩子 -->
</div> <div class="clearfix full-script">
<div class="container-fluid">
<include file="$_user_login_modal" /> <!-- 登录弹窗 -->
<input type="hidden" id="corethink_home_img" value="__HOME_IMG__">
<script type="text/javascript" src="__CUI__/js/cui.min.js"></script>
<script type="text/javascript" src="__HOME_JS__/home.js"></script>
<block name="script"></block>
{:C('WEB_SITE_STATISTICS')} <!-- 站点统计代码 -->
</div>
</div>
</body>
</html>

  

corethink功能模块探索开发(十七)opencmf.php 配置文件的更多相关文章

  1. corethink功能模块探索开发(一)根据已有模块推测目录结构

    corethink是opencmf的一个开源版本,如果自己要进行二次开发,开发模块等,需要在官方开一个中级会员(50大洋吧),官网的一个“一键生成demo”就能给你最基础的目录结构,从而可以在此基础上 ...

  2. corethink功能模块探索开发(三)让这个模块可见

    感觉corethink把thinkphp的思想复用到淋漓尽致. 1.把opencmf.php文件配置好了后台该模块的菜单就能在安装后自动读取(分析好父子关系,否则页面死循环,apache资源占用率10 ...

  3. corethink功能模块探索开发(二)让这个模块可安装

    要想让这个模块可安装,只需要在opcmf.php文件中写一些配置数据就行 随便写点 Equip/opencmf.php <?php // 模块信息配置 return array( // 模块信息 ...

  4. corethink功能模块探索开发(五)开启这个模块的配置

    上图: 主要就是两点. 1.在opencmf.php中填写好配置页面的按钮还是文本域 Equip/opencmf.php只需要注意主要的配置数组的内容 <?php // 模块信息配置 retur ...

  5. corethink功能模块探索开发(四)让这个模块跑起来

    让这个模块跑起来,太费劲了,多半原因是自己太粗心,opencmf.php中“uid”写成了“pid”,de了好几天的bug也没有搞出来,又加上最近发生了些事(brokenhearted)... 上报错 ...

  6. corethink功能模块探索开发(六)让这个模块在前台显示

    效果图:(注意右上角) 实现模块的前台显示只需要在模块目录中的Controller目录建立IndexController.class.php,实现index方法.继承HomeController.就能 ...

  7. corethink功能模块探索开发(十八)前台页面插入jit前端数据可视化库

    效果图: 1.静态文件放入View目录中 在View目录下新建Public目录,在Public目录下新建js.css目录. 把jit的资源放入对应目录中 2.在html中引入jit Applicati ...

  8. corethink功能模块探索开发(十六)后台搜索功能

    效果图: 代码很简单,就是添加搜索框,搜索字段,在初始化页面查询的时候添加查询条件. 1.添加搜索框 添加到删除按钮后边. ->setSearch('请输入设备名称/MAC/宿舍号', U('i ...

  9. corethink功能模块探索开发(十五)后台新增按钮

    效果图: 1.首先添加数据列表上的新增按钮,让按钮显示出来 ->addTopButton('addnew') 2.让这个按钮行动起来,实现add方法 public function add(){ ...

随机推荐

  1. HTML5坦克大战(1)绘制坦克

    坦克尺寸如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head&g ...

  2. iOS开发之-收集的不常用却实用的小方法和技巧

    原文链接:http://blog.5ibc.net/p/90386.html 1.颜色转变成图片 - (UIImage *)createImageWithColor:(UIColor *)color ...

  3. jquery Ajax Queue 队列实现

    有时候我们需要按顺序调用一组ajax,这些ajax需要有先后顺序,类似于同步的ajax,那么我们可以通过以下的方式来实现: (这个Ajax用到jQuery.post) //定义一个AJAX队列 $.n ...

  4. 开发高性能的MongoDB应用—浅谈MongoDB性能优化

    关联文章索引: 大数据时代的数据存储,非关系型数据库MongoDB 性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题.性能往往决定了一个软件的质量,如果你开发的是 ...

  5. Python中集合类型(set)学习小结

    set 是一个无序的元素集合,支持并.交.差及对称差等数学运算, 但由于 set 不记录元素位置,因此不支持索引.分片等类序列的操作. 初始化 复制代码代码如下: s0 = set()d0 = {}s ...

  6. [Buzz Today]2013.08.18

    # Go 语言实现memcached:groupcache memcached作者Brad Fitzpatrick用Go语言重新实现了memcached. groupcache继承了memcached ...

  7. 马尔科夫毯(Markov Blanket)

    最优特征子集:选出特征的子集,能够比较准确的代表原来的特征.马尔科夫毯(MB)是贝叶斯网络(BN)的最有特征子集. 推测贝叶斯网络的网络结构是NP问题.贝叶斯网络中一个节点T的马尔科夫毯是其父节点,子 ...

  8. Idea定位打开文件在左边工程中的文件路径

    勾选掉Autoscoll from Source

  9. linux软件的安装和卸载

    http://blog.chinaunix.net/uid-25572546-id-1995028.html

  10. Response响应对象

    1.HttpServletResponse HttpServletResponse是一个定义在Servlet API中的接口,继承自ServletReponse接口,用于封装HTTP响应消息.HTTP ...