Smarty 部分循环

{section name=lehrst loop=$data}

     {$data[lehrst].uni}

{/section}

Smarty 带有配置变量的mailto

{assign var=foo value=#supportmail#}
{mailto address="$foo" encode="javascript_charcode" text="E-Mail" subject="support mail"}

Smarty 生日数组和下拉错误处理

############ PHP PART 


## build up 3 arrays with D M Y values for smarty

##days

$bday_d[0]["name"] = ".."; 
$bday_d[0]["value"] = "";

for ($d=1;$d<=31;$d++) {
	$bday_d[$d]["name"] = $d; 
	$bday_d[$d]["value"] = $d;
}

##months
$bday_m[0]["name"] = ".."; 			$bday_m[0]["value"] = "";
$bday_m[1]["name"] = "Januar"; 		$bday_m[1]["value"] = "01";
$bday_m[2]["name"] = "Februar"; 	$bday_m[2]["value"] = "02";
$bday_m[3]["name"] = "März"; 		$bday_m[3]["value"] = "03";
$bday_m[4]["name"] = "April"; 		$bday_m[4]["value"] = "04";
$bday_m[5]["name"] = "Mai"; 		$bday_m[5]["value"] = "05";
$bday_m[6]["name"] = "Juni"; 		$bday_m[6]["value"] = "06";
$bday_m[7]["name"] = "Juli"; 		$bday_m[7]["value"] = "07";
$bday_m[8]["name"] = "August"; 		$bday_m[8]["value"] = "08";
$bday_m[9]["name"] = "September";	$bday_m[9]["value"] = "09";
$bday_m[10]["name"] = "Oktober"; 	$bday_m[10]["value"] = "10";
$bday_m[11]["name"] = "November"; 	$bday_m[11]["value"] = "11";
$bday_m[12]["name"] = "Dezember"; 	$bday_m[12]["value"] = "12";

##years

$maxAge = "70";
$minAge = "14";
$thisYear = strftime("%Y",time()) - $minAge; 
$thatYear = $thisYear - $maxAge; 

$bday_y[0]["name"] = ".."; 
$bday_y[0]["value"] = "";
$c=1;
for ($y=$thisYear;$y>=$thatYear;$y--) {
	$bday_y[$c]["name"] = $y; 
	$bday_y[$c]["value"] = $y;
	$c++;
}

$smarty->assign("bday_d", $bday_d ); 
$smarty->assign("bday_m", $bday_m ); 
$smarty->assign("bday_y", $bday_y ); 

############ ERROR CHECKS

$pg = $_POST["reg"];
if ($pg["birthday_day"] == "") 	{ $errorcnt ++; $smarty->assign("error_birthday_day", 1); }
if ($pg["birthday_month"] == "") { $errorcnt ++; $smarty->assign("error_birthday_month", 1); }
if ($pg["birthday_year"] == "") { $errorcnt ++; $smarty->assign("error_birthday_year", 1); }


############ SMARTY CODE


<select name="reg[birthday_day]"  {if $error_birthday_day == 1}class="fielderror"{/if}>
{section name=days loop=$bday_d}
	 <option label="{$bday_d[days].name}" value="{$bday_d[days].value}" {if $post.birthday_day == $bday_d[days].value}SELECTED{/if}>{$bday_d[days].name}</option>
{/section}
</select>

<select name="reg[birthday_month]"  {if $error_birthday_month == 1}class="fielderror"{/if}>
{section name=months loop=$bday_m}
	 <option label="{$bday_m[months].name}" value="{$bday_m[months].value}" {if $post.birthday_month == $bday_m[months].value}SELECTED{/if}>{$bday_m[months].name}</option>
{/section}
</select>

<select name="reg[birthday_year]"  {if $error_birthday_year == 1}class="fielderror"{/if}>
{section name=years loop=$bday_y}
	 <option label="{$bday_y[years].name}" value="{$bday_y[years].value}" {if $post.birthday_year == $bday_y[years].value}SELECTED{/if}>{$bday_y[years].name}</option>
{/section}
</select>

Smarty 几个柜台

<ol>
	<li><a href="#{counter name=list start=1}">bla</a></li>
	<li><a href="#{counter name=list}">bla</a></li>
	<li><a href="#{counter name=list}">bla</a></li>

</ol>

<a name="{counter name=anchors start=1}"></a>
<p><div class="num">{counter name=answers}</div><h3>bla</h3></p>
<p>answer</p><hr />

<a name="{counter name=anchors}"></a>
<p><div class="num">{counter name=answers}</div><h3>bla</h3></p>
<p>answer</p><hr />

<a name="{counter name=anchors }"></a>
<p><div class="num">{counter name=answers}</div><h3>bla</h3></p>
<p>answer</p><hr />

Smarty 分页

{assign var="putDots" value=3}
{assign var="border" value=2}

{assign var="curPage" value=$pagination.curPage}
{assign var="url" value=$pagination.url}
{assign var="totalPages" value=$pagination.totalPages}
{if $totalPages > 1}
<div class="pages">
	<span>
	{if $curPage > 1}
	<a title="Previous Page" href="{$url|replace:'%x':$curPage-1}">««</a>
	{/if}
	
	{* Handle the first part of the pages -- up to the current one *}
	{if $curPage > $putDots}
	<a title="Page 1" href="{$url|replace:'%x':'1'}">1</a>
	...
	{section name=i start=$curPage-$border loop=$curPage}
	{assign var="curPos" value=$smarty.section.i.index}
	<a title="Page {$curPos}" href="{$url|replace:'%x':$curPos}">{$curPos}</a>
	{/section}
	{else}
	{section name=i start=1 loop=$curPage}
	{assign var="curPos" value=$smarty.section.i.index}
	<a title="Page {$curPos}" href="{$url|replace:'%x':$curPos}">{$curPos}</a>
	{/section}
	{/if}
	
	{* Current page *}
	<a title="Page {$curPage}" class="current" href="{$url|replace:'%x':$curPage}">{$curPage}</a>
	
	{* Handle the last part of the pages -- from the current one to the end *}
	{if $totalPages - $curPage + 1 > $putDots}
	{section name=i start=$curPage+1 loop=$curPage+$border+1}
	{assign var="curPos" value=$smarty.section.i.index}
	<a title="Page {$curPos}" href="{$url|replace:'%x':$curPos}">{$curPos}</a>
	{/section}
	...
	<a title="Page {$totalPages}" href="{$url|replace:'%x':$totalPages}">{$totalPages}</a>
	{else}
	{section name=i start=$curPage+1 loop=$totalPages+1}
	{assign var="curPos" value=$smarty.section.i.index}
	<a title="Page {$curPos}" href="{$url|replace:'%x':$curPos}">{$curPos}</a>
	{/section}
	{/if}
	
	{if $curPage < $totalPages}
	<a title="Next Page" href="{$url|replace:'%x':$curPage+1}">»»</a>
	{/if}
	</span>
</div>
{/if}

Smarty Smarty模板:转储阵列

{$foo|@print_r}

Smarty 表达引擎动态查询

Page:
{embed="cart/display_user_carts" member_id="<?php global $SESS; echo $SESS->userdata['member_id'];?>"}

Sub-template:
{exp:query sql="SELECT id, member_id, member_username, cart_name FROM cart_requests WHERE member_id = {embed:member_id} ORDER BY timestamp DESC"}
<p>{cart_name}</p>
{/exp:query}