苹果cms所有模板主题包都规定放在 template
目录下,并且模板静态文件不建议放在 cms
根目录,防止安装多个模板时导致 cms
目录结构污染或静态资源覆盖,如需开发独立模板后台控制建议使用插件扩展
方式,虽然模板支持php,但是为了安全请不要将后台放程序仿在模板内,这是个高风险的做法。
必须严格遵守标准的目录结构进行创建模板,否则会前端访问导致异常,自定义代码块除外
========模板结构======= │─template/1/ 模板1 │ ├─info.ini 模板信息文件 │ ├─ads 广告文件目录 │ ├─js js文件 │ ├─css css文件 │ ├─images 图片文件 │ └─html 模板文件目录 │ └─art 文章模块模板目录 │ └─comment 评论模块模板目录 │ └─gbook 留言本模块模板目录 │ └─index 首页模块模板目录 │ └─label 自定义页面模块模板目录 │ └─map 地图页模块模板目录 │ └─public 公共页面模板目录 │ └─rss RSS和sitemap模板目录 │ └─topic 专题模块模板目录 │ └─user 用户中心模块模板目录 │ └─vod 视频模块模板目录 │ └─plot 分集剧情模块模板目录 │ └─website 网址导航模块模板目录 │─tempalte/2/ 模板2 │─... │─template/n/ 模板N
info.ini介绍
里边包含了对模板文件的简单介绍,及adsdir广告文件存放目录的设置,默认广告目录为ads
模板html目录
html └─public │ │─include.html 全站公共引入文件 引入js、css样式,还有系统JS变量 │ │─head.html 全站头部 │ │─foot.html 全站尾部 │ │─jump.html 跳转提示页模板 │ │─msg.html 错误提示页模板 │ │─paging.html 分页样式模板 │ │─digg.html 顶踩样式模板 │ │─score.html 普通评分样式模板 │ │─star.html 星星评分样式模板 │ │─verify.html 搜索验证模板 └─comment │ │─index.html 评论页 │ │─ajax.html 评论页 └─book │ │─index.html 留言本 │ │─report.html 报错页面 └─index/index.html 首页 └─map │ │─rss.html rss │ │─baidu.html 百度sitemap │ │─google.html 谷歌sitemap └─topic │ │─index.html 专题首页 │ │─detail.html 专题详情页 └─art │ │─index.html 专题首页 │ │─confirm.html 确认支付积分页面 │ │─detail.html 文章内容页 │ │─detail_pwd.html 验证密码页 │ │─rss.html 文章内容rss │ │─search.html 文章搜索页 │ │─type.html 文章分类页 │ │─show.html 文章分类筛选页 └─vod │ │─confirm.html 确认支付积分页面 │ │─copyright.html 版权提示和跳转 │ │─detail.html 视频内容页 │ │─detail_pwd.html 验证密码页 │ │─rss.html 视频内容rss │ │─play.html 视频播放页 │ │─player.html 试看页面播放页 │ │─player_pwd.html 验证密码页 │ │─down.html 视频下载页 │ │─downer_pwd.html 验证密码页 │ │─search.html 视频搜索页面 │ │─type.html 视频分类页面 │ │─show.html 视频分类筛选页 │ │─plot.html 视频分集剧情列表 └─user │ │─ajax_info.html 用户弹出层登录详情 │ │─ajax_login.html 用户弹出层登录界面 │ │─buy.html 用户中心-在线充值 │ │─cards.html 用户中心-充值卡记录 │ │─cash.html 用户中心-提现记录 │ │─downs.html 用户中心-下载记录 │ │─favs.html 用户中心-收藏记录 │ │─findpass.html 用户中心-找回密码 │ │─findpass_msg.html 用户中心-找回密码提示信息 │ │─foot.html 用户中心-公共底部 │ │─head.html 用户中心-公共头部 │ │─include.html 用户中心-公共引入文件 │ │─index.html 用户中心-首页 │ │─info.html 用户中心-个人详情 │ │─login.html 用户中心-登录页 │ │─orders.html 用户中心-在线充值记录 │ │─pay.html 用户中心-支付页 │ │─payment_weixin.html 用户中心-支付微信二维码 │ │─plays.html 用户中心-点播记录 │ │─popedom.html 用户中心-权限列表 │ │─reg.html 用户中心-注册 │ │─reward.html 用户中心-分销记录 │ │─upgrade.html 用户中心-会员升级 └─plot │ │─uindex.html 分集剧情首页 │ │─udetail.html 分集剧情详情页 └─actor │ │─index.html 演员首页 │ │─detail.html 演员详情页 │ │─search.html 演员网址搜索页 │ │─show.html 演员筛选页 │ │─type.html 演员分类页 └─role │ │─index.html 角色首页 │ │─detail.html 角色详情页 │ │─show.html 角色筛选页 └─website │ │─index.html 网址导航首页 │ │─detail.html 网址详情页 │ │─search.html 网址搜索页 │ │─show.html 网址筛选页 │ │─type.html 网址分类页
包含文件
模块化开发小技巧,可以将公用头部
、页脚
、代码块
等作为单独的 html文件,然后在其他html页面引入即可, 在当前模版文件中包含其他的模版文件使用include标签,标签用法:
WARNING
包含的模板文件中不能再使用模板布局或者模板继承。
{include file='模版文件1,模版文件2,...' /}
使用模版表达式
模版表达式的定义规则为:模块@控制器/操作 例如:
{include file="public/header" /} // 包含头部模版header {include file="public/menu" /} // 包含菜单模版menu {include file="blue/public/menu" /} // 包含blue主题下面的menu模版
可以一次包含多个模版,例如:
{include file="public/header,public/menu" /}
注意,包含模版文件并不会自动调用控制器的方法,也就是说包含的其他模版文件中的变量赋值需要在当前操作中完成。
使用模版文件
可以直接包含一个模版文件名(包含完整路径),例如:
{include file="../application/view/default/public/header.html" /}
路径以 项目目录/public/ 路径下为起点
传入参数
无论你使用什么方式包含外部模板,Include标签支持在包含文件的同时传入参数,例如,下面的例子我们在包含header模板的时候传入了title
和keywords
参数:
{include file="Public/header" title="$title" keywords="开源WEB开发框架" /}
就可以在包含的header.html
文件里面使用title
和keywords
变量,如下:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>[title]</title> <meta name="keywords" content="[keywords]" /> </head>
上面title参数传入的是个变量$title,模板内的[title]
最终会替换成$title的值,当然$title这个变量必须要存在。 包含文件中可以再使用include标签包含别的文件,但注意不要形成A包含A,或者A包含B而B又包含A这样的死循环。
WARNING
注意:由于模板解析的特点,从入口模板开始解析,如果外部模板有所更改,模板引擎并不会重新编译模板,除非在调试模式下或者缓存已经过期。如果部署模式下修改了包含的外部模板文件后,需要把模块的缓存目录清空,否则无法生效。