🎨 模板开发指南
emlog可以方便的更换模板,模板文件位于 content\templates 目录下,每个模板都是一个单独的文件夹,文件夹以模板的英文别名命名。通过应用商店以及后台上传安装的模板都保存在这个目录下。
模板文件及目录说明
文件名 | 说明 |
---|---|
css | 存放模板所需的所有CSS样式文件 |
js | 存放模板所需的所有JS文件 |
images | 存放模板所需 LOGO 等图片资源 |
preview.jpg | 在后台模板选择界面显示的模板预览图,推荐:500x300 jpg格式 |
header.php | 站点头部信息,一般包含页面head信息和顶部标题、导航栏 |
echo_log.php | 文章详情页,展示单篇文章内容 |
log_list.php | 首页,展示文章列表 |
footer.php | 站点底部信息,展示版权信息等 |
page.php | 页面,展示自定义的页面 |
side.php | 侧边栏,如制作单栏模板则该文件不是必须的 |
module.php | 功能模块:最新文章、评论、分类、标签等 |
404.php | 自定义404页面未找到时的报错页面 |
pw.php | 自定义加密文章输入密码页面,没该文件使用系统默认样式 【非必须】 |
user.php | 路由 /user 加载的模板,可用于用户中心等页面【非必须】 |
plugins.php | 模板的系统调用文件,模板启用后,该文件会被系统自动加载。可用于实现类 似插件的功能。【非必须】 |
options.php | 模板设置的配置文件,可以构建更丰富的设置项。【非必须】 |
callback.php | 模板的事件回调函数定义,详见事件回调部分文档【非必须】 |
custom_fields.php | 预设模板自己需要的文章自定义字段【非必须】 |
模板引擎
emlog未采用任何其他第三方的模板引擎,直接使用PHP原生的语法标记来内嵌HTML生成动态页面。这样不但降低了开发者的学习负担,也大大提高了页面加载和渲染效率。
// 嵌入变量
<div><?= $value ?></div>
// 循环
<?php foreach ($abc as $v) :?>
<div><?= $v ?></div>
<?php endforeach;?>
// 判断
<?php if($a == 'abc') :?>
<div>hello</div>
<?php endif;?>
公共代码
禁止直接访问
下面这行代码存在于模板目录下的每个php文件开头,其作用是防止代码所在的php脚本被直接访问执行,务必保留。
if(!defined('EMLOG_ROOT')) {exit('error!');}
或者
defined('EMLOG_ROOT') || exit('access denied!');
引用模板文件
下面这两行代码作用是调用模板文件夹下的 side.php 和 footer.php 的代码到当前文件的当前位置。
require_once View::getView('side');
require_once View::getView('footer');
// View是模板视图控制器,View::getView('文件名','文件后缀')将返回当前模板安装路径下对应的文件。
// getView 函数的第二个参数为缺省参数,在不传入值的情况下,将默认作为.php文件后缀返回文件路径。
文件说明
header.php
站点头部信息,一般包页面head信息和顶部标题、导航栏。