🎨 模板开发指南
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 | 自定义加密文章输入密码页面,没该文件使用系统默认样式 【非必须】 |
plugins.php | 模板的系统调用文件,模板启用后,该文件会被系统自动加载。可用于实现类似插件的功能。【非必须】 |
options.php | 模板设置的配置文件,可以构建更丰富的设置项。【非必须】 |
callback.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信息和顶部标题、导航栏。
页头信息
开头注释内容是模板的必要信息,该信息会显示在后台模板管理界面,务必完整填写。
/*
Template Name:默认模板
Version:1.0
Template Url:https://www.emlog.net/template/
Description:emlog的默认模板
Author:emlog
Author Url:https://www.emlog.net/author/index/577
*/
提示
其中 Template URL 和 Author URL 请使用官网 emlog.net 的应用链接和作者页,其他非官网链接不会在后台展示超链接。
加载模板文件
require_once View::getView('module'); // 加载模板通用模块.
变量&常量
变量&常量 | 类型 | 说明 |
---|---|---|
$site_title | 变量 | 站点标题(受后台seo优化设置影响) |
$site_key | 变量 | 站点关键字 |
$site_description | 变量 | 输出站点浏览器描述 (受后台seo优化设置影响) |
$blogname | 变量 | 站点标题 |
$bloginfo | 变量 | 站点副标题 |
BLOG_URL | 常量 | 站点首页的URL,输出形如https://emlog.net/ |
TEMPLATE_URL | 常量 | 模板文件夹的URL,用于加载模板内的css、js及其他内容,输出形如http://emlog.net/blog/content/templates/default/ |
上面的变量、常量都可以通过下面的方式在模板中输出
<?= $page_url ?>
<?= BLOG_URL ?>
footer.php
站点底部信息,展示版权、备案等信息等。
变量&常量
变量、常量 | 类型 | 说明 |
---|---|---|
$icp | 变量 | 后台设置的ICP备案号 |
$footer_info | 变量 | 后台设置的页面底部信息 |
Option::EMLOG_VERSION | 常量 | 当前emlog版本号 |