前台通用变量 Frontend Variables
下列变量由框架统一装配,前台主题模板可直接使用,无需自己 assign。
一、通用变量清单
| 变量 | 说明 |
|---|---|
{$lang.xxx} |
语言项(详见「自定义语言项 Language Items」篇) |
{$site.xxx} |
站点配置(如 $site.root_url、$site.site_name、$site.site_theme) |
{$theme_path} |
当前主题的 URL 根路径 |
{$param.xxx} |
站点参数 |
{$features.xxx} |
模块开关(配合 {if $features.product} 做降级) |
{$dou.user} / {$dou.auth} / {$dou.vip} / {$dou.work} / {$dou.distribution} |
会员 / 登录态 / VIP / 工作人员 / 分销数据(未装模块时为空骨架) |
{$token} / {$csrf_token} |
表单安全令牌 |
{$cart_total} |
购物车件数角标 |
{$lang_menu} |
多语言切换菜单 |
{$about} / {$link_list} |
关于信息 / 友情链接 |
{$code_head} |
全站 head 自定义代码 |
{$js_lang_script_url} / {$js_routes_script_url} |
语言包 / 路由脚本地址(在 code_footer.tpl 中加载) |
二、典型用法
{* 站点名与语言项 *}
<title>{$site.site_name} - {$lang.home}</title>
{* 模块开关降级:未启用产品模块时不渲染该块 *}
{if $features.product}
<a href="{url link='product'}">{$lang.product}</a>
{/if}
{* 登录态判断 *}
{if $dou.auth}
<span>{$dou.user.username}</span>
{else}
<a href="{url link='user.login'}">{$lang.login}</a>
{/if}
{* 表单令牌 *}
<input type="hidden" name="token" value="{$token}">
三、静态资源与 theme_path
模板里的静态资源写相对路径(css/style.css、images/logo.png)即可,前台预过滤器会把它们烘焙为绝对主题路径(见「预过滤器 Prefilter」篇)。若需手工拼接,可用 {$theme_path}。
四、引擎注意点
{if}中不支持isset(),用真值判断或|default修饰器替代;- 禁止
{php};对象成员->不允许; - 输出 HTML 用
{$var nofilter}关闭转义; $dou.*与引擎内建的$douview.*命名空间物理隔离(见「系统变量 Douview」篇)。