如何分离模板文件的表现和数据逻辑


标题有点拗口,我也不知道这个标题合理不合理,总之意思呢,就是说,如何将模板文件中的数据处理逻辑进行分离,不要都是那些{query}。
话题来源: 祝贺iws新版发布,新论坛上线,顺便瞎扯下近期二次开发iws的一些胡言乱语,管理员@nswe  在回复中提到api.php为View层减肥。

介绍一种方法:在classes/api/api_resource.php中添加一个方法,用来调用公告列表,可以默认指定10条,id倒序(看api.php源码可知,order和limit都可以覆盖,所以填一个常用的默认值即可)

复制代码
1
2
3
4
5
6
'getNotice' => array ( 'query' => array (
             'name' => 'announcement' ,
             'order' => 'id desc' ,
             'fields' => 'id, title, time' ,
             'limit' => '10'
         ))
然后,调用最新5条公告,这样来弄:

复制代码
1
2
3
4
5
< ul class = "bulletin-list" >
     {foreach:items = Api::run('getNotice', 'id-', 5)}
     < li >< a href = "{url:/site/notice_detail/id/$item[id]}" title = "{$item['title']}" >{$item['title']}</ a ></ li >
     {/foreach}
</ ul >
这样比直接在html模板文件中{query}***{/query}感觉好太多了。
贴一个默认模板里面的一段代码,调用最新5条公告,和上面一样的功能的:

复制代码
1
2
3
4
5
6
< ul class = "list" >
     {query:name=announcement limit=5 order=id desc}
     {set:$tmpId=$item['id'];}
     < li >< a href = "{url:/site/notice_detail/id/$tmpId}" >{$item['title']}</ a ></ li >
     {/query}
</ ul >
当然细读一下api.php,可以发现还有定制性更强的方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值