<  返回首页

奇迹树站点API/标签

文件命名

名称
文件命名
首页
index.tpl


头部
header.tpl
页脚
footer.tpl


关于
about.tpl
搜索
search.tpl
标签
tag.tpl
留言
message.tpl


产品列表
product.tpl
产品详情
product_detail.tpl
新闻列表
news.tpl
新闻详情
news_detail.tpl
案例列表
case.tpl
案例详情
case_detail.tpl
下载列表
download.tpl
下载详情
download_detail.tpl
招聘列表
job.tpl
招聘详情
job_detail.tpl


网站地图
sitemap.tpl
地区分站
region.tpl
在线客服
online.tpl



HTML编码规范

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <meta name="renderer" content="webkit">
        <meta name="force-rendering" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
        <!-- 浏览器升级提示 -->
        <script>/*@cc_on document.write('\x3Cscript id="_iealwn_js" src="https://support.dmeng.net/ie-alert-warning/latest.js">\x3C/script>'); @*/</script>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
        <title>标题</title>
        <meta name="keywords" content="关键词">
        <meta name="description" content="描述">
        <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
        <link rel="icon" type="image/x-icon" href="/favicon.ico">
        <!-- CSS -->
        <link rel="stylesheet" href="base.css">
        <!-- JavaScript -->
        <script src="base.js"></script>
    </head>
    <body>
        <h1>Hello, world!</h1>
    </body>
</html>

技术支持

<div>
    本站构建:<a href="http://www.qijishu.com/" target="_blank" title="奇迹树">奇迹树</a>
    技术支持:<a href="http://www.qijishu.com/" target="_blank" title="奇迹树">奇迹树</a>
</div>

定界符

Smarty标签都是使用定界符括起来的,默认定界符是 { 和 } 。

{ <-- 左定界符
} <-- 右定界符

注释

模板中的注释是星号开头,然后外面包含着定界符, 就像这样:

{* 这是一个注释 *}

变量

模板变量以美元符号$开头,由字母、数组和下划线组成。

{$foo}        <-- 显示简单的变量 (非数组/对象)
{$foo[4]}     <-- 在0开始索引的数组中显示第五个元素
{$foo.bar}    <-- 显示"bar"下标指向的数组值,等同于PHP的$foo['bar']
{$foo.$bar}   <-- 显示以变量$bar值作为下标指向的数组值,等同于PHP的$foo[$bar]
{assign var=foo value='baa'}{$foo} <--  显示"baa"

函数

每个Smarty标签都可以是显示一个变量或者调用某种类型的函数。

{include file="header.tpl"} <-- 内置函数
{idata name="ad"} <-- 自定义函数

属性

大多数函数都会使用属性来定义或者修改它们的行为。

{include file="header.tpl" nocache}  // 等同于 nocache=true
{assign var=foo value=$bar|strlen}  // 使用修饰器

双引号中嵌入变量

Smarty可以识别出在双引号中嵌套的变量值,这些变量名称必须只包括 字母、数字和下划线。

另外,带有其他字符的,如点号(.),必须用反引号括起来。

Smarty允许在双引号中嵌入Smarty的标签并运行。 如果你需要在双引号的变量上使用修饰器、插件或者PHP函数等,这是非常有用的。



{func var="test $foo test"}              // 识别变量 $foo
{func var="test $foo_bar test"}          // 识别变量 $foo_bar
{func var="test `$foo[0]` test"}         // 识别变量 $foo[0]
{func var="test `$foo[bar]` test"}       // 识别变量 $foo[bar]
{func var="test $foo.bar test"}          // 识别变量 $foo (不是 $foo.bar)
{func var="test `$foo.bar` test"}        // 识别变量 $foo.bar
{func var="test `$foo.bar` test"|escape} // 引号外的修饰器!
{func var="test {$foo|escape} test"}     // 引号内的修饰器!
{func var="test {time()} test"}          // PHP函数结果
{func var="test {counter} test"}         // 插件的结果

数学计算

变量值内可以直接进行数学计算。

{$foo+1}
{$foo*$bar}
{assign var="foo" value="`$foo+$bar`"}

避免Smarty解析

有时候部分模板中的代码是不需要或者不希望被Smarty解析的,比较典型的例子是嵌入在页面HTML中的Javascript或CSS代码。问题通常发生在这些语言会经常使用{},但{}也恰好是Smarty的定界符。

Note

避免被解析的一个良好方式,是分离你的Javascript/CSS代码到单独的文件中,然后在HTML中引入它们。而且这样也有利于浏览器进行缓存。当你需要嵌入Smarty的变量或者函数到Javascript/CSS中,请参考下面的方式:

Smarty模板中,当{和}定界符两边都是空格的时候,将会被自动忽略解析。

{literal}...{/literal}可以让块中间的内容忽略Smarty的解析。



<script>
   // 下面的定界符两边都是空格,所以可以被自动忽略解析
   function foobar {
 alert('foobar!');
   }
   // 下面需要手动忽略解析
   {literal}
 function bazzy {alert('foobar!');}
   {/literal}
</script>

变量默认值

default为变量设置默认值。当变量是unset或者empty的字符串时,默认值将显示。

{$value|default:'value'}

去除<>标记

去除标记等任何包含在< 和 >中间的字符。

{$value|strip_tags:false}

截取字符串

截取字符串到指定长度,默认长度是80. 第二个参数可选,指定了截取后代替显示的字符。 截取后的字符长度是截取规定的长度加上第二个参数的字符长度。 默认truncate会尝试按单词进行截取。如果你希望按字符截取(单词可能会被截断),需要设置第三个参数TRUE。

{$value|truncate:10:'...':true}
10 //截取的长度
'...' //截取后替代显示的字符,该字符长度会被计算到截取长度内。
true //是否按单词截取FALSE,或是按字符截取TRUE。

格式化日期、时间

{"Y-m-d H:i:s"|date:$timestamp}//2018-01-02 03:04:05

模板路径

<link rel="stylesheet" href="{$tpl_path}css/base.css">

加载其他模板

{include file="./header.tpl"}
{include file="./footer.tpl"}
{include file="./online/online.tpl"}

标题、关键词、描述

<title>{$title}</title>
<meta name="keywords" content="{$keywords}"> 
<meta name="description" content="{$description}">

搜索引擎验证代码

放在<head> </head> 内。

{$seo_site_verification}

自动提交

放在<body> </body> 内。

{$seo_auto_push}

全站名称(跟随导航菜单)

{$name}

首页:index
产品:product
新闻:news
案例:case
下载:download
招聘:job
关于我们:about
联系我们:contact
在线留言:message
公司新闻:news_company
行业新闻:news_industry

全站链接

{$url}

首页:index
产品:product
新闻:news
案例:case
下载:download
招聘:job
 
关于我们:about
联系我们:contact
在线留言:message
 
搜索:search
标签:tag
 
地区分站:region
网站地图:sitemap
RSS:rss_xml
XML:sitemap_xml
管理后台:admin
验证码:captcha

导航

{$nav}

{foreach $nav as $n}
<a href="{$n.url}">{$n.name}</a>//主导航
    {foreach $n.child as $nc_1}
    <a href="{$nc_1.url}">{$nc_1.name}</a>//一级导航
        {foreach $nc_1.child as $nc_2}
        <a href="{$nc_2.url}">{$nc_2.name}</a>//二级导航
        {/foreach}
    {/foreach}
{/foreach}

广告banner

{idata name="ad" label=""}
{foreach $ad as $v}
<li>
<a href="{$v.url}" title="{$v.title}">
    <img src="{$v.image}" alt="{$v.title}" title="{$v.title}"/>
</a>
{/foreach}
label 可选值:
首页banner:ad_index_banner
内页banner:ad_page_banner

上下一篇

上一篇:
{if $detail.prev_id != 0}
<a href="{$detail.prev_url}">{$detail.prev_title}</a>
{else}
没有了
{/if}
下一篇:
{if $detail.next_id != 0}
<a href="{$detail.next_url}">{$detail.next_title}</a>
{else}
没有了
{/if}