今天我们解密的是如何实现帝国网站管理系统的DIGG顶及踩踏功能


前言:
DIGG顶及踩踏可以实现用户之间的信息交流互动。

实现要点:
系统本身就内置了digg的功能,只是没有在数据表中直接内置digg字段,所以我们只需增加digg的字段就可以实现顶与踩踏的功能。
(为什么不内置所有会使用到的字段呢?主要是为了系统的稳定性,做到字段按需增加,使系统稳定性优化到最佳)

实现方法:
通过新建一个digg字段,然后修改内容模板加入digg显示代码即可。
效果图(图1):


                         三步教你学会digg
操作步骤:
一、 digg字段创建、设置
登陆后台--->“系统设置”--->“管理数据表”,进入如下图(图2):

选择你需要实现digg效果的系统模型,进行右方的操作,本例中以在“新闻系统模型”中实现digg为例;

第一步 新建digg字段
点击“管理字段”进入字段管理界面--->点击“新建字段”,出现下图界面(图3):

设置说明:新建的字段名 必须填为diggtop;字段标识 可根据需要自由设置,本例填为“顶”;
         字段类型 选择大数值型(INT);字段的其他选项按默认设置提交即可。

第二步 设置digg字段为模板项
新建好digg字段后,返回“数据管理表”界面(图2),点击“管理系统模型”进入系统模型管理界面--->点击“修改”进行digg字段项设置(图4):

勾选digg字段项中的列表模板与内容模板提交即可。

二、 修改digg所在系统模型的内容模板
点击菜单“模板管理” --->“管理内容模板” --->点击右侧digg所在系统模型“修改” (图5):

模板内容代码里,在想要加入digg效果的光标位置处粘贴digg代码
<script src="[!--news.url--]e/data/js/ajax.js"></script>
<table width="61" height="68" border="0" cellpadding="0" cellspacing="0" background="[!--news.url--]images/diggbg.gif" align="center">
  <tr>
    <td valign="middle">
<div align="center"><font size=4><span id="diggnum"><script src=[!--news.url--]e/public/ViewClick?classid=[!--classid--]&id=[!--id--]&down=5></script></span></font></div></td>
  </tr>
  <tr>
    <td valign="middle">
<div align="center"><a href="JavaScript:makeRequest('[!--news.url--]e/public/digg?classid=[!--classid--]&id=[!--id--]&dotop=1&doajax=1&ajaxarea=diggnum','EchoReturnedText','GET','');">顶一下</a></div></td>
  </tr>
</table>


上述代码中dotop参数“1”表示顶,如果是实现踩踏改为“0"即可,如:dotop=0。
小贴士:可以将模板内容的源代码复制到Dreamweaver中设计可直观显示---插入想要加上digg效果的光标位置---粘贴digg代码----复制整个代码,粘贴回模板内容 框中,提交即可完成digg的效果设置。

三、 接着我们到“系统设置”>“数据更新中心”>“刷新所有信息内容页面”(勾选重复生成),刷新后查看文章就可以看到digg效果了



------------------------------------------------------------------------------------------------------------

 
学习digg的调用
设置好内容页的digg后,接着我们可以在任意地方用ecmsinfo的SQL语句方式调用到应用DIGG的信息
首先我们回顾下"ecmsinfo的SQL语句方式调用":
ecmsinfo语法:
[ecmsinfo]栏目ID/专题ID/SQL,显示条数,标题截取数,是否显示栏目名,操作类型,模板ID,只显示有标题图片[/ecmsinfo]
ecmsinfo的SQL语句方式调用要点:标签第一个参数为调用信息的SQL语句,操作类型为24

举个例子
调用"新闻表digg信息列表"的标签:
[ecmsinfo]"select * from [!db.pre!]ecms_news where checked=1 order by diggtop desc,id desc limit 10",10,30,0,24,9,0[/ecmsinfo]
说明:上面红色中的"news"为数据表名;10为调用条数;9为显示内容的标签模板ID。

上面标签最终显示效果为如下:


附加说明:调用的信息还可以限制各式各样的条件,如我只调用哪几个栏目ID的DIGG信息,那SQL语句就为下面:
select * from [!db.pre!]ecms_news where classid in (栏目ID1,栏目ID2...,栏目ID3) and checked=1 order by diggtop desc,id desc limit 10