ECMS:DIGG的实现

来自站长百科
跳转至: 导航、​ 搜索

导航: 上一级 | 帝国CMS | 首页 | DedeCMS | Drupal | PHPCMS | PHP168 | Xoops | Joomla | PowerEasy | SupeSite

前言:

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

实现要点:

系统本身就内置了digg的功能,只是没有在数据表中直接内置digg字段,所以我们只需增加digg的字段就可以实现顶与踩踏的功能。

(为什么不内置所有会使用到的字段呢?主要是为了系统的稳定性,做到字段按需增加,使系统稳定性优化到最佳)

实现方法:

通过新建一个digg字段,然后修改内容模板加入digg显示代码即可。

效果图(图1):

Digg1.gif

三步教你学会digg

操作步骤:

一、 digg字段创建、设置

登陆后台--->“系统设置”--->“管理数据表”,进入如下图(图2):

Digg2.gif

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

第一步 新建digg字段

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

Digg3.gif

设置说明:新建的字段名 必须填为diggtop;字段标识 可根据需要自由设置,本例填为“顶”;

字段类型 选择大数值型(INT);字段的其他选项按默认设置提交即可。

第二步 设置digg字段为模板项

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

Digg4.gif

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

二、 修改digg所在系统模型的内容模板

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

Digg5.gif

模板内容代码里,在想要加入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。

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

Digg6.gif

附加说明:调用的信息还可以限制各式各样的条件,如我只调用哪几个栏目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