corethink功能模块探索开发(十七)opencmf.php 配置文件
图样:
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 配置文件的更多相关文章
- corethink功能模块探索开发(一)根据已有模块推测目录结构
corethink是opencmf的一个开源版本,如果自己要进行二次开发,开发模块等,需要在官方开一个中级会员(50大洋吧),官网的一个“一键生成demo”就能给你最基础的目录结构,从而可以在此基础上 ...
- corethink功能模块探索开发(三)让这个模块可见
感觉corethink把thinkphp的思想复用到淋漓尽致. 1.把opencmf.php文件配置好了后台该模块的菜单就能在安装后自动读取(分析好父子关系,否则页面死循环,apache资源占用率10 ...
- corethink功能模块探索开发(二)让这个模块可安装
要想让这个模块可安装,只需要在opcmf.php文件中写一些配置数据就行 随便写点 Equip/opencmf.php <?php // 模块信息配置 return array( // 模块信息 ...
- corethink功能模块探索开发(五)开启这个模块的配置
上图: 主要就是两点. 1.在opencmf.php中填写好配置页面的按钮还是文本域 Equip/opencmf.php只需要注意主要的配置数组的内容 <?php // 模块信息配置 retur ...
- corethink功能模块探索开发(四)让这个模块跑起来
让这个模块跑起来,太费劲了,多半原因是自己太粗心,opencmf.php中“uid”写成了“pid”,de了好几天的bug也没有搞出来,又加上最近发生了些事(brokenhearted)... 上报错 ...
- corethink功能模块探索开发(六)让这个模块在前台显示
效果图:(注意右上角) 实现模块的前台显示只需要在模块目录中的Controller目录建立IndexController.class.php,实现index方法.继承HomeController.就能 ...
- corethink功能模块探索开发(十八)前台页面插入jit前端数据可视化库
效果图: 1.静态文件放入View目录中 在View目录下新建Public目录,在Public目录下新建js.css目录. 把jit的资源放入对应目录中 2.在html中引入jit Applicati ...
- corethink功能模块探索开发(十六)后台搜索功能
效果图: 代码很简单,就是添加搜索框,搜索字段,在初始化页面查询的时候添加查询条件. 1.添加搜索框 添加到删除按钮后边. ->setSearch('请输入设备名称/MAC/宿舍号', U('i ...
- corethink功能模块探索开发(十五)后台新增按钮
效果图: 1.首先添加数据列表上的新增按钮,让按钮显示出来 ->addTopButton('addnew') 2.让这个按钮行动起来,实现add方法 public function add(){ ...
随机推荐
- Jquery学习笔记(1)--JQuery原理,与JS对象互换,核心函数
js对象转jQuery对象,$('num'), jQuery对象转js对象,$('num')[0],或$('num').get(0). 1.点击换行,each(),html(),attr(),每个h1 ...
- HTML5之语音识别实例
HTML5之语音识别实例 代码 <input type="text" x-webkit-speech id="d1" lang="zh-CN& ...
- MVVM 实战之计算器
MVVM 实战之计算器 android DataBinding MVVM calculator Model View 布局文件 Fragment ViewModel 结束语 前些日子,一直在学习基于 ...
- Buffer ByteBuffer 缓冲区
http://blog.sina.com.cn/s/blog_4150f50c0100gfa3.html
- 编写可维护的JavaScript----笔记(二)
01.何时使用注释 添加注释的一般原则是,在需要让代码变得更清晰时添加注释 难于理解的代码 浏览器特性hack 注释声明: TODO 说明代码还没完成,应当包含下一步要做的事情 XXX 说明代码是有问 ...
- 阐述二维码的原理以及使用google api和PHP QR Code来生成二维码
一.什么是二维码:二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的.在许多种类的二维条码中,常用的码 ...
- 初识NuGet及快速安装使用
为什么要使用NuGet 简单的说NuGet可以是我们的工作更方便,当我们的项目里要引用到的一些库时候,比如JQuery.Newtonsoft.Json. log4net等,我们需要从网上下载这些库,然 ...
- mysql DBA 指南
Mysql目录 数据库介绍.常见分类 Mysql入门 Mysql安装配置 Mysql多实例安装配置 Mysql常用基本命令 Mysql权限体系 Mysql数据库备份和恢复 Mysql日志 Mysql逻 ...
- CentOS安装Oracle官方JRE
CentOS自带的JRE是OpenJDK,因为一些原因,需要换用Oracle官方出品的JRE. Oracle JRE下载地址http://java.com/zh_CN/(下载时注意选择相应版本) 可以 ...
- webpack中引入的path[require('path')]是node.js内置的package,用来处理路径的。
http://www.runoob.com/nodejs/nodejs-path-module.html