baigo SSO 使用 PHP 作为模板。
前台模板位于 ./app/tpl/index 目录下,一套模板单独一个目录,如默认模板 ./app/tpl/index/default,以下文档全部以此为基础。注:模板目录必须使用 英文 与 数字,不能使用中文、符号等。
模板目录结构说明
+-- default
| +-- common 通用
| | +-- error.tpl.php 出错信息
| |
| +-- include include
| +-- html_head.tpl.php HTML 头部
| +-- html_foot.tpl.php HTML 底部
| +-- index_head.tpl.php 头部
| +-- index_foot.tpl.php 底部
|
+-- ...
在模板中主要以输出变量的方式来显示内容,比如:
Hello, <?php echo $name; ?>!
运行的时候会显示: Hello, baigo!
输出根据变量类型有所区别,刚才输出的是字符串,下面是一个数组的例子:
Name:<?php echo $data['name']; ?>
Email:<?php echo $data['email']; ?>
具体变量和类型请查看具体文档
以下变量为所有模板中都可输出
名称 | 类型 | 描述 | 备注 |
---|---|---|---|
$path_tpl | string | 当前模板所在的目录 | |
$dir_root | string | 根目录 | |
$dir_static | string | 静态文件目录 | |
$route_root | string | 根路径 | |
$route_index | string | 前台路径 | |
$route_misc | string | 杂项模块路径 | 通常用于显示验证码 |
$token | array | 表单令牌 | 所有需要提交的表单都必须用 hidden 域包含这个变量,3.0-beta-2 起变更为数组类型,$token['name'] 为表单名,$token['value'] 为表单值 |
$token | string | 表单令牌 | 3.0-beta-2 之前的版本,表单的名称必须为 __token__ 。 |
$lang | object | 语言对象 | |
$request | object | 请求对象 | |
$config | array | 配置数组 |
语言变量的输出使用 Lang
对象,模板中已内置,可以直接使用 $lang
,例如:
<?php echo $lang->get('page_error'); ?>
<?php echo $lang->get('var_error'; ?>
系统变量的输出使用 Request
对象,模板中已内置,可以直接使用 $request
,例如:
<?php echo $request->server('script_name'); ?> // 输出 $_SERVER['SCRIPT_NAME'] 变量
<?php echo $request->session('user_id'); ?> // 输出 $_SESSION['user_id'] 变量
<?php echo $request->get('page'); ?> // 输出 $_GET['page'] 变量
<?php echo $request->cookie('name'); ?> // 输出 $_COOKIE['name'] 变量
支持输出 $_SERVER
、$_POST
、$_GET
、$_REQUEST
、$_SESSION
和 $_COOKIE
变量,详情请查看 ginkgo 文档的 请求 -> 输入变量
输出配置参数使用:
<?php echo $config['route']['default_mod']; ?>
<?php echo $config['route']['default_ctrl']; ?>
在模板中以 {:变量}
形式的字符将会被替换。
以下为默认的输出替换
名称 | 描述 |
---|---|
{:URL_BASE} | 当前 URL 地址,不含 QUERY_STRING,包含域名。 |
{:URL_ROOT} | 当前 URL 根目录,包含域名。 |
{:DIR_STATIC} | 静态文件目录 |
{:ROUTE_ROOT} | 根路径 |
{:ROUTE_PAGE} | 分页用的基本路径 |
还可以输出常量
<?php echo PHP_VERSION; ?>
<?php echo GK_PATH_APP; ?>
在任何模板内,均可以用 include("模板路径")
的方式来包含并执行文件,您可以在模板目录下,建立一个目录,如 inc,用来统一存放被包含的模板,如:include("inc/head.tpl.php")
。