最近做一个项目,采用的是动易核心,其中有一个要求是 每个栏目都需要进行用户的投稿统计,动易本身并提供这样的功能,只能自己通过自定义标签实现。
首先思路说下:1、通过{$ClassID}获取当前的栏目ClassID
2,通过ClassID查找当前栏目下所有文章信息的Inputer用户
3、通过select DISTINCT 查询语句分类出所有用户,具体的语句解释大家可以搜索下网络
4、通过返回的inputer用户统计出对应的栏目下的文章数
具体的标签代码如下:一共两个标签(函数标签)
标签一:{$MY_获取学科栏目下用户名}
优先级:5
SQl语句:select DISTINCT PE_Article.Inputer from PE_Article,PE_Class where PE_Article.ClassID in (Select ClassID From PE_Class where ParentID={input(0)})
参数:ClassID (栏目id)
输出:<table width="290" align=left cellpadding="0" cellspacing="1" bgcolor="dddddd">
<tr align="center" bgcolor="#CCCCCC">
<td width="14%" height="19">用户名</td>
<td width="14%"> 录用稿件数</td>
<td width="14%"> 来稿数</td>
</tr>
{Loop}{Infobegin}
<tr align=center bgcolor=ffffff height=19>
<td align=center bgcolor=ffaaaa>{$Field(0,Text,0,0,1)}</a></td>
<td align=center >{$MY_对应栏目下用户文章数统计(审核)({$Field(0,Text,0,0,1)},{input(0)})}</td>
<td align=center >{$MY_对应栏目用户文章统计({$Field(0,Text,0,0,1)},{input(0)})}</td>
</tr>
{Infoend}{/Loop}
</table>
标签二:{$MY_对应栏目用户文章统计}
优先级:6
参数:inputer ClassID (用户和栏目ID)
SQL语句:select Count(*) as t from PE_Article Where ClassID IN (Select ClassID From PE_Class Where ParentID={input(1)}) and Inputer='{input(0)}'
输出:{Loop}{Infobegin}{$Field(0,Num,0,0)}{Infoend}{/Loop}
还有一个标签,审核统计这个只是SQL语句不一样,加了个条件 Statues=3 全部就不要加这个条件就可以了,两个标签嵌套使用。
我这里的统计默认是大栏目,下有二级栏目,如果是子栏目统计,则修改相应的SQL语句就可以了,这里只是提供个思路,供大家参考
转载请注明本站