动易增加按栏目统计对应用户投稿文章数标签

来源:互联网 时间:1970-01-01

最近做一个项目,采用的是动易核心,其中有一个要求是 每个栏目都需要进行用户的投稿统计,动易本身并提供这样的功能,只能自己通过自定义标签实现。

首先思路说下: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语句就可以了,这里只是提供个思路,供大家参考

相关阅读:
Top