< 返回首页
平台功能
评价体系
奇迹树站点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编码规范
<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}