欢迎各位兄弟 发布技术文章
这里的技术是共享的
Smarty模板主要的目的是分离逻辑层和表现层,所以在模板中不应该包含逻辑部分,逻辑层也不应该含有HTML。要在模板中插入逻辑程序的这种做法“非常”不被推荐,在你的case中。
如果你真正的需要在模板中使用脚本程序,smarty也提供了{php}标签,允许programmer在表现层混入php代码(再次提示:这种不利于逻辑层与表现层的分离,违背了程序与结构的分离)。看一看如何在模板中插入php代码:
注意:如果出现Fatal error: Uncaught exception 'SmartyException' with message '{php} is deprecated, set allow_php_tag = true to enable'。这是因为{php} 标签默认是关闭的,使用$smarty->allow_php_tag=true;开启即可。(注意此处的定界符默认为“{php}”,也可人为定义成“<!--{php}-->”)
注:同一smarty模板的各个php标签间的变量不通用,也就是说,某一php标签中定义的变量,其作用域仅限于本标签。
来自 http://blog.csdn.net/moqiang02/article/details/10425059
smarty 执行php代码 调用php函数 虽违背smarty但不失灵活,有时候也在SMARTY中也不得不使用PHP的相关函数和一些语句的
{php}
echo "alert('here is php method run ~!');";
{/php}
因为应用需要,要在Smarty中调用PHP函数,实现办法如下:
模板
数据条数:{$data|count}
活动页面文件后缀:{$page|substr:'-3'}
特殊情况:{$page|str_replace:'jpg':'png'}
对应php实现
count($data);
substr($page, -3);
str_replace('jpg', 'png', $page);
smarty 模板中使用对象,使用对象方法
后台
class aa{
public function objecho(){
return isManager();
}
}
$objaa = new aa();
$objTemplate->assign("objaa",$objaa);
tpl中
{assign var="ismanager" value=$objaa->objecho()}
{$ismanager}