基本用法
从
2.0
版本开始,推荐属性就可以自定义多个了,先前1.9.x
之前用的istop
,istuijian
,ishot
也同样有效,那么,最正确的用法是使用jzattr
进行输出。后台看推荐属性列表对应的ID,就是推荐属性参数的值。
置顶:1
最热:2
推荐:3
输出置顶内容
{loop table="article" jzattr="1" isshow="1" as="v"}
{/loop}
输出最热内容
{loop table="article" jzattr="2" isshow="1" as="v"}
{/loop}
输出推荐内容
{loop table="article" jzattr="3" isshow="1" as="v"}
{/loop}
输出多个组合
如置顶和最热
{loop table="article" jzattr="1,2" isshow="1" as="v"}
{/loop}
输出非推荐内容
根据
推荐
属性值为3
,需要使用sql
参数实现
{php
$sql = " (jzattr not like '%,3,%' or jzattr is null) ";
/}
{loop table="article" sql="$sql" isshow="1" limit="10" as="v"}
{/loop}
输出非推荐/置顶内容
根据
推荐
属性值为3
,置顶
属性值为1
,需要使用sql
参数实现
{php
$sql = " (jzattr not like '%,3,%' or jzattr not like '%,1,%' or jzattr is null) ";
/}
{loop table="article" sql="$sql" isshow="1" limit="10" as="v"}
{/loop}
使用loop输出不同属性标签
{loop table="article" isshow="1" limit="10" as="v"}
{if($v['jzattr'])}
{if(strpos($v['jzattr'],',1,')!==false)}置顶{/if}
{if(strpos($v['jzattr'],',2,')!==false)}最热{/if}
{if(strpos($v['jzattr'],',3,')!==false)}推荐{/if}
{/if}
{/loop}
如何判断推荐属性是否有数据?
假设推荐属性置顶
值为1
{php
$isok = M('article')->getCount("jzattr like '%,1,%' and isshow=1");
/}
{if($isok)}
有数据
{else}
没有数据
{/if}
同时判断推荐属性置顶
和 推荐
值为 1
和 3
{php
$isok = M('article')->getCount(" (jzattr like '%,1,%' or jzattr like '%,3,%') and isshow=1");
/}
{if($isok)}
有数据
{else}
没有数据
{/if}
加上栏目ID=1同时判断
{php
$isok = M('article')->getCount("jzattr like '%,1,%' and isshow=1 and tid in(".implode(',',$classtypedata[1]['children']['ids']).")");
/}
{if($isok)}
有数据
{else}
没有数据
{/if}
{php
$isok = M('article')->getCount(" (jzattr like '%,1,%' or jzattr like '%,3,%') and isshow=1 and tid in(".implode(',',$classtypedata[1]['children']['ids']).") ");
/}
{if($isok)}
有数据
{else}
没有数据
{/if}