18.JIEQI CMS模板 - 7.页面定制(二)
七、页面定制
2、定制一个页面,使用系统框架(也就是用默认的顶部导航和底部链接)
主要程序部分如下:
<?php
define('JIEQI_MODULE_NAME', 'system'); //定义本页面属于那个模块
require_once('global.php'); //包含通用程序,每个页面必须高喊
jieqi_getconfigs(JIEQI_MODULE_NAME, 'blocks'); //包含区块参数,没有区块的话可以注释掉
include_once(JIEQI_ROOT_PATH.'/header.php'); //包含页头处理
$jieqiTpl->setCaching(0); //这个值是 0 表示不用缓存,1 表示启用缓存
$jieqiTpl->assign('jieqi_contents',$jieqiTpl->fetch(JIEQI_ROOT_PATH.'/templates/custom1.html')); //这里设置需要调用的模板
include_once(JIEQI_ROOT_PATH.'/footer.php'); //包含页尾处理
?>
本例与上例主要区别是:
上例使用 $jieqi_page_template=JIEQI_ROOT_PATH.'/templates/custom.html'; 设置模板,表示本模板是完整页面,不使用系统框架。
本例使用 $jieqiTpl->assign('jieqi_contents',$jieqiTpl->fetch(JIEQI_ROOT_PATH.'/templates/custom1.html')); 表示系统系统框架,本模板作为框架里面的内容部分。
在本例中,只要载入区块配置文件,就会默认显示区块,不用另外在模板设置区块显示标签了。
18.JIEQI CMS模板 - 7.页面定制(二)
七、页面定制
2、定制一个页面,使用系统框架(也就是用默认的顶部导航和底部链接)
主要程序部分如下:
<?php
define('JIEQI_MODULE_NAME', 'system'); //定义本页面属于那个模块
require_once('global.php'); //包含通用程序,每个页面必须高喊
jieqi_getconfigs(JIEQI_MODULE_NAME, 'blocks'); //包含区块参数,没有区块的话可以注释掉
include_once(JIEQI_ROOT_PATH.'/header.php'); //包含页头处理
$jieqiTpl->setCaching(0); //这个值是 0 表示不用缓存,1 表示启用缓存
$jieqiTpl->assign('jieqi_contents',$jieqiTpl->fetch(JIEQI_ROOT_PATH.'/templates/custom1.html')); //这里设置需要调用的模板
include_once(JIEQI_ROOT_PATH.'/footer.php'); //包含页尾处理
?>
本例与上例主要区别是:
上例使用 $jieqi_page_template=JIEQI_ROOT_PATH.'/templates/custom.html'; 设置模板,表示本模板是完整页面,不使用系统框架。
本例使用 $jieqiTpl->assign('jieqi_contents',$jieqiTpl->fetch(JIEQI_ROOT_PATH.'/templates/custom1.html')); 表示系统系统框架,本模板作为框架里面的内容部分。
在本例中,只要载入区块配置文件,就会默认显示区块,不用另外在模板设置区块显示标签了。
19.JIEQI CMS模板 - 7.页面定制(三)
七、页面定制
3、定制系统默认的程序页面,使其调用不同的框架或者区块,可以在主体内容模板设置相应的参数来实现。
注:前面两种定制都是指在现有网站的基础上,增加一个独立的页面。而这里的定制是指在不修改系统程序基础上,通过调整模板来实现系统程序页面的不同显示方式。
以系统的个人信息页面为例,这个页面对应的
程序: /userdetail.php
模板: /templates/userdetail.php
区块配置:/configs/userblocks.php
3.1 如果要其他的框架模板,比如:/templates/theme1.html
模板 /templates/userdetail.php 顶部加入设置标签
{?set jieqi_page_template = "templates/theme1.html"?}
这样修改后的效果是,这个页面可以不使用系统默认的导航、css之类效果。
注意:引号里面是模板相对网站根目录的路径和名称,前面不带 "/",或者使用完整的地址,如 {?set jieqi_page_template = "E:/web/templates/theme1.html"?}
3.2 如果要调用不同区块配置文件,如 /configs/block1.php
模板 /templates/userdetail.html 顶部加入设置标签
{?set jieqi_blocks_module = "system"?}
{?set jieqi_blocks_config = "block1"?}
这里第一行是表示这个区块配置属于哪个模块的,第二行是表示区块配置文件名称(不含后缀名)。
上面的标签就是载入区块配置文件 /configs/block1.php
如果 {?set jieqi_blocks_module = "article"?} 则载入的配置文件是 /configs/article/block1.php
3.3 不使用区块配置文件,直接模板中调用区块的模式
调用区块标签样例如下:
{?block bid="9" module="system" filename="" classname="BlockSystemCustom" side="0" title="本站公告" vars="" template="" contenttype="1" custom="1" publish="3" hasvars="0"?}
bid - 区块数字序号,不同区块不要重复即可
module - 区块所属的模块名
class - 区块程序文件名
classname - 区块程序里面的类名
side - 区块显示的位置,在本模式下不起作用
title - 区块标题
vars - 区块相关参数
template - 区块调用的模板文件名
contenttype - 区块内容类型,0-文本,1-html,2-script,3-html+script,4-php
custom - 是否自定义区块,0-否,1-是
publish - 区块显示模式, 1-仅登录前显示, 2-仅登录后显示, 3-都显示
hasvars - 本区块是否支持参数,0-不支持,1-支持
注意:一个区块的当前参数,可以在后台区块管理里面看到。
3.4 重新定义原有的系统标签内容
以文章信息页面为例,内容主模板为 /modules/article/templates/articleinfo.html
默认情况下,整个网页的 title 内容是系统自动生成,并赋值在标签 {?$jieqi_pagetitle?}
如果用户要重新定义本页面的title内容,可以在articleinfo.html顶部加入以下设置
{?set $jieqi_pagetitle = "文章信息页面"?}
表示把 {?$jieqi_pagetitle?} 这个标签内容重新定义为字符串 "文章信息页面"
其中""里面内容也可以使用本页的其他标签变量,如
{?set $jieqi_pagetitle = "$articlename - $author - 我的网站"?}
这样title显示效果就是本页的 文章名 - 作者 - 我的网站
其他系统标签也可以用这个方法重新定义,如
{?set $meta_keywords = "$articlename $author"?}
20.JIEQI CMS模板 - 8.包含子模板
八、包含子模板
{?include file = "filesname" ?}
其中filesname是模板文件名
比如:
{?include file = "test.html" ?}
{?include file = "/web/templates/test.html" ?}