查询条件能写在模板里吗?
发布于:2022-01-17 09:50:54
#1 phpcaicai
比方说 能在模板里控制,调出指定栏目数据,和条数,想让美工自己去调出数据
目的是要这样写, 比如在product分类里取5条数据
<{foreach rows=5 category=product order=time DESC}>
xxoo<{/foreach}>
2010-05-16 21:14:38
#2 harrie
http://www.smarty.net/manual/en/language.function.section.php你可以看以下section里边的max
{section name=foo start=10 loop=20 step=2}
{$smarty.section.foo.index}
{/section}
{section name=bar loop=21 max=6 step=-2}
{$smarty.section.bar.index}
{/section}
但是和控制查询不一样
2010-05-16 21:28:04
#3 phpcaicai
这些是smarty内置的 我怎么自定义 模板标签呢?
而且我要打破常规,不在程序里查询好结果模板输出
而是更具 模板标签给出的条件进行查新,这种做法可实现吗?
比如我可以模板里任意查询指定的分类
2010-05-16 21:31:19
#4 jake
这里分开来看:
1. 在模板内限制记录数量,这样其实是限制“显示”数量,也就是程序提供100条记录,但是模板内只显示10条。
2. 在模板内进行查询,这实现起来就很困难了,尤其smarty本身的理念,是希望程序和模板分离,查询这些是程序的事情,模板仅负责“显示”的逻辑。而且这个分离,是团队开发的必然,也很少会有人反其道而行。
当然,模板引擎也是PHP实现的,所以PHP实现的东西,模板引擎也可以实现,只是如果希望在程序/模板分离的理念下,将模板引擎做成能够做程序的事情的话,难度可不是一般的高,几乎和重头写一套PHP框架差不多了。我曾经见过一款基于smarty的PHP框架,具体不是很清楚,楼主可以搜索一下,研究研究。
2010-05-16 22:38:49
#5 harrie
当然也是可以实现的,不过我并不赞同这样做
$this->register_modifier("stripslashes","stripslashes");
这样子在模版中就可以使用
{$foo|stripslashes} 来实现php的stripslashes函数了。
这个stripslashes可以是任何函数并且可以带有参数。
如果有兴趣,可以试试。。。
2010-05-17 16:12:36
#6 azwl
模板我认为就是用来显示的。把查询条件加入模板,好像就违背了MVC。
2010-05-17 17:31:05
#7 azwl
模板我认为就是用来显示的。把查询条件加入模板,好像就违背了MVC。
2010-05-17 17:31:12