图样:

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. 开源Bug管理系统Redmine安装和使用心得

    最终忍受不了公司使用论坛+Excel来进行bug反馈和管理工作了,于是花了一个上午时间研究了下bug管理系统.这样一个bug管理系统能够轻松的查看bug新增了哪些,攻克了哪些.当前是谁,要在什么时间解 ...

  2. 页面中添加qq客服

    html页面 <html> <head> <meta http-equiv="Content-Type" content="text/htm ...

  3. .NET开发笔记--对config文件的操作(2)

    1.前台代码 sys_channel_edit.aspx <tbody id="item_box"> <asp:Repeater ID="rptList ...

  4. Android Canvas和Paint基本使用

    这篇文章主要介绍下画笔Paint和画布Canvas的基本使用  1.Paint 创建对象Paint mPaint = new Paint(); 常用的基本方法有 :                mP ...

  5. 项目文件不完整。缺少预期导入,DotnetCore如何切换SDK版本

    1. 项目文件不完整.缺少预期导入 如图: 2. 出现原因: SDK版本与项目所需的SDK版本不一致. 3. 解决问题: 3.1 项目所需的SDK版本如何确定? a. 检查.sln文件所在目录是否有: ...

  6. php获取文件后缀的9种方法

    获取文件后缀的9种方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3 ...

  7. Java 反射机制[Field反射]

    Java 反射机制[Field反射] 1.  反射概念及功能 反射就是把Java类中的各种成分映射成对应的Java类.比如一个Java类中用一个Class类的对象来表示. 一个类中的组成部分分为成员变 ...

  8. eclipse闪退问题

     昨日闲来无事,从eclipse官网下载了最新的eclipse版本,解压安装之后,便把之前安装的eclipse删除了,随后点击新安装的eclipse出现闪退问题,几经波折终于解决.        方法 ...

  9. 计算机视觉中的边缘检测Edge Detection in Computer Vision

    计算机视觉中的边缘检测   边缘检测是计算机视觉中最重要的概念之一.这是一个很直观的概念,在一个图像上运行图像检测应该只输出边缘,与素描比较相似.我的目标不仅是清晰地解释边缘检测是怎样工作的,同时也提 ...

  10. python学习之路----输出所有大小写字母

    print([chr(i) for i in range(48, 58)]) # 所有数字print([chr(i) for i in range(65, 91)]) # 所有大写字母print([c ...