Browse Source

重写内容顶踩功能

tags/6.0.0
tianya 3 years ago
parent
commit
3f142257d2
4 changed files with 113 additions and 227 deletions
  1. +35
    -18
      src/plus/digg_ajax.php
  2. +0
    -53
      src/plus/digg_frame.php
  3. +78
    -0
      src/templets/default/widget_article_digg.htm
  4. +0
    -156
      src/templets/plus/digg_frame.htm

+ 35
- 18
src/plus/digg_ajax.php View File

@@ -11,7 +11,8 @@
*/
require_once(dirname(__FILE__)."/../include/common.inc.php");
$action = isset($action) ? trim($action) : '';
$id = empty($id)? 0 : intval(preg_replace("/[^\d]/",'', $id));
$format = isset($format)? $format : '';
$id = empty($id)? 0 : intval($id);
helper('cache');
@@ -91,23 +92,39 @@ if($formurl=='caicai')
else
{
$row['goodper'] = trim(sprintf("%4.2f", $row['goodper']));
$row['badper'] = trim(sprintf("%4.2f", $row['badper']));
$digg = '<div class="diggbox digg_good" onmousemove="this.style.backgroundPosition=\'left bottom\';" onmouseout="this.style.backgroundPosition=\'left top\';" onclick="postDigg(\'good\','.$id.')">
<div class="digg_act">顶一下</div>
<div class="digg_num">('.$row['goodpost'].')</div>
<div class="digg_percent">
<div class="digg_percent_bar"><span style="width:'.$row['goodper'].'%"></span></div>
<div class="digg_percent_num">'.$row['goodper'].'%</div>
</div>
</div>
<div class="diggbox digg_bad" onmousemove="this.style.backgroundPosition=\'right bottom\';" onmouseout="this.style.backgroundPosition=\'right top\';" onclick="postDigg(\'bad\','.$id.')">
<div class="digg_act">踩一下</div>
<div class="digg_num">('.$row['badpost'].')</div>
<div class="digg_percent">
<div class="digg_percent_bar"><span style="width:'.$row['badper'].'%"></span></div>
<div class="digg_percent_num">'.$row['badper'].'%</div>
</div>
</div>';
$row['badper'] = trim(sprintf("%4.2f", $row['badper']));
if (!empty($format)) {
// 输出JSON API的方式
$result = array(
"code" => 200,
"data" => array(
'goodpost' => $row['goodpost'],
'goodper' => $row['goodper'],
'badpost' => $row['badpost'],
'badper' => $row['badper'],
),
);
$digg = json_encode($result);
} else {
// 兼容之前的老版本
$digg = '<div class="diggbox digg_good" onmousemove="this.style.backgroundPosition=\'left bottom\';" onmouseout="this.style.backgroundPosition=\'left top\';" onclick="postDigg(\'good\','.$id.')">
<div class="digg_act">顶一下</div>
<div class="digg_num">('.$row['goodpost'].')</div>
<div class="digg_percent">
<div class="digg_percent_bar"><span style="width:'.$row['goodper'].'%"></span></div>
<div class="digg_percent_num">'.$row['goodper'].'%</div>
</div>
</div>
<div class="diggbox digg_bad" onmousemove="this.style.backgroundPosition=\'right bottom\';" onmouseout="this.style.backgroundPosition=\'right top\';" onclick="postDigg(\'bad\','.$id.')">
<div class="digg_act">踩一下</div>
<div class="digg_num">('.$row['badpost'].')</div>
<div class="digg_percent">
<div class="digg_percent_bar"><span style="width:'.$row['badper'].'%"></span></div>
<div class="digg_percent_num">'.$row['badper'].'%</div>
</div>
</div>';
}
}
AjaxHead();
echo $digg;


+ 0
- 53
src/plus/digg_frame.php View File

@@ -1,53 +0,0 @@
<?php
/**
*
* 文档digg处理iframe文件
*
* @version $Id: digg_frame.php 1 21:17 2010年7月8日Z tianya $
* @package DedeCMS.Plus
* @copyright Copyright (c) 2007 - 2020, DesDev, Inc.
* @license http://help.dedecms.com/usersguide/license.html
* @link http://www.dedecms.com
*/
require_once(dirname(__FILE__)."/../include/common.inc.php");
$action = isset($action) ? trim($action) : '';
$id = empty($id)? 0 : intval(preg_replace("/[^\d]/",'', $id));
$maintable = '#@__archives';
if($action == 'good')
{
$dsql->ExecuteNoneQuery("UPDATE `$maintable` SET scores = scores + {$cfg_caicai_add},goodpost=goodpost+1,lastpost=".time()." WHERE id='$id'");
}
else if($action=='bad')
{
$dsql->ExecuteNoneQuery("UPDATE `$maintable` SET scores = scores - {$cfg_caicai_sub},badpost=badpost+1,lastpost=".time()." WHERE id='$id'");
}
$digg = '';
$row = $dsql->GetOne("SELECT goodpost,badpost,scores FROM `$maintable` WHERE id='$id' ");
if($row['goodpost']+$row['badpost'] == 0)
{
$row['goodper'] = $row['badper'] = 0;
}
else
{
$row['goodper'] = number_format($row['goodpost']/($row['goodpost']+$row['badpost']),3)*100;
$row['badper'] = 100-$row['goodper'];
}
$digg = '<div class="diggbox digg_good" onmousemove="this.style.backgroundPosition=\'left bottom\';" onmouseout="this.style.backgroundPosition=\'left top\';" onclick="postDigg(\'good\','.$id.')">
<div class="digg_act">顶一下</div>
<div class="digg_num">('.$row['goodpost'].')</div>
<div class="digg_percent">
<div class="digg_percent_bar"><span style="width:'.$row['goodper'].'%"></span></div>
<div class="digg_percent_num">'.$row['goodper'].'%</div>
</div>
</div>
<div class="diggbox digg_bad" onmousemove="this.style.backgroundPosition=\'right bottom\';" onmouseout="this.style.backgroundPosition=\'right top\';" onclick="postDigg(\'bad\','.$id.')">
<div class="digg_act">踩一下</div>
<div class="digg_num">('.$row['badpost'].')</div>
<div class="digg_percent">
<div class="digg_percent_bar"><span style="width:'.$row['badper'].'%"></span></div>
<div class="digg_percent_num">'.$row['badper'].'%</div>
</div>
</div>';
include DEDEROOT.'/templets/plus/digg_frame.htm';

+ 78
- 0
src/templets/default/widget_article_digg.htm View File

@@ -0,0 +1,78 @@
{dede:comment text="顶踩模块"/}
<div class="row justify-content-center digg">
<div class="comment-container mb-3" onclick="javascript:PostDigg('good',{dede:field.id/})">
<div class="comment-top">
<i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
<p class="comment-top-text">顶一下[<span id="goodpost">{dede:field.goodpost/}</span>]</p>
</div>
<div class="progress" style="height: 10px;">
<div class="progress-bar" role="progressbar" id="goodper" style="width: {dede:field.goodper/}%"
aria-valuenow="{dede:field.goodper/}" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
<div class="comment-container mb-3" onclick="javascript:PostDigg('bad',{dede:field.id/})">
<div class="comment-top">
<i class="fa fa-thumbs-o-down" aria-hidden="true"></i>
<p class="comment-top-text-danger">踩一下[<span id="badpost">{dede:field.badpost/}</span>]</p>
</div>
<div class="progress" style="height: 10px;">
<div class="progress-bar bg-danger" role="progressbar" id="badper" style="width:{dede:field.badper/}%"
aria-valuenow="{dede:field.badper/}" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
</div> <!-- ./digg -->

<script>
// 获取顶踩数据
function GetDigg(aid) {
let url = `{dede:global.cfg_phpurl/}/digg_ajax.php?id=${aid}&format=json`;
$.get(url, function (data) {
let reval = JSON.parse(data);
if (reval.code === 200) {
$("#goodpost").html(reval.data.goodpost);
$("#badpost").html(reval.data.badpost);
$("#goodper").css("width", `${reval.data.goodper}%`)
$("#badper").css("width", `${reval.data.badper}%`)
}
})
}

function PostDigg(ftype, aid) {
var saveid = GetCookie('diggid');
if (saveid != null) {
var saveids = saveid.split(',');
var hasid = false;
saveid = '';
j = 1;
for (i = saveids.length - 1; i >= 0; i--) {
if (saveids[i] == aid && hasid) continue;
else {
if (saveids[i] == aid && !hasid) hasid = true;
saveid += (saveid == '' ? saveids[i] : ',' + saveids[i]);
j++;
if (j == 20 && hasid) break;
if (j == 19 && !hasid) break;
}
}
if (hasid) { alert("您已经顶过该帖,请不要重复顶帖 !"); return; }
else saveid += ',' + aid;
SetCookie('diggid', saveid, 1);
}
else {
SetCookie('diggid', aid, 1);
}
let url = "{dede:global.cfg_phpurl/}/digg_ajax.php?action=" + ftype + "&id=" + aid + "&format=json";
$.get(url, function (data) {
let reval = JSON.parse(data);
if (reval.code === 200) {
$("#goodpost").html(reval.data.goodpost);
$("#badpost").html(reval.data.badpost);
$("#goodper").css("width", `${reval.data.goodper}%`)
$("#badper").css("width", `${reval.data.badper}%`)
}
});
}

GetDigg("{dede:field.id/}");

</script>

+ 0
- 156
src/templets/plus/digg_frame.htm View File

@@ -1,156 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang;?>" />
<title>digg</title>
<style>
body {
text-align:center;
}
#digg {
margin:0 auto;
width:420px;
overflow:hidden;
}
.diggbox {
cursor:pointer;
float:left;
height:51px;
margin-right:8px;
overflow:hidden;
width:195px;
}
.diggbox .digg_act {
float:left;
font-size:14px;
font-weight:bold;
height:29px;
line-height:31px;
overflow:hidden;
text-indent:32px;
}
.diggbox .digg_num {
float:left;
line-height:29px;
text-indent:5px;
}
.diggbox .digg_percent {
text-align:left;
clear:both;
overflow:hidden;
padding-left:10px;
width:180px;
}
.diggbox .digg_percent .digg_percent_bar {
background:#E8E8E8 none repeat scroll 0 0;
border-right:1px solid #CCCCCC;
float:left;
height:7px;
margin-top:3px;
overflow:hidden;
width:100px;
}
.diggbox .digg_percent .digg_percent_num {
float:left;
font-size:10px;
padding-left:10px;
}
.diggbox .digg_percent .digg_percent_bar span {
background:#000000 none repeat scroll 0 0;
display:block;
height:5px;
overflow:hidden;
}
.digg_good {
background:transparent url(../templets/default/images/newdigg-bg.png) no-repeat scroll left top;
}
.digg_bad {
background:transparent url(../templets/default/images/newdigg-bg.png) no-repeat scroll right top;
}
.digg_good .digg_act {
color:#CC3300;
}
.digg_good .digg_num {
color:#CC6633;
}
.digg_bad .digg_act {
color:#3366CC;
}
.digg_bad .digg_num {
color:#3399CC;
}
.digg_good .digg_percent .digg_percent_bar span {
background:#FFC535 none repeat scroll 0 0;
border:1px solid #E37F24;
}
.digg_bad .digg_percent .digg_percent_bar span {
background:#94C0E4 none repeat scroll 0 0;
border:1px solid #689ACC;
}
</style>
<script>
//读写cookie函数
function GetCookie(c_name)
{
if (document.cookie.length > 0)
{
c_start = document.cookie.indexOf(c_name + "=")
if (c_start != -1)
{
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";",c_start);
if (c_end == -1)
{
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start,c_end));
}
}
return null
}
function SetCookie(c_name,value,expiredays)
{
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" +escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()); //使设置的有效时间正确。增加toGMTString()
}
function postDigg(ac, aid)
{
var saveid = GetCookie('diggid');
if(saveid != null)
{
var saveids = saveid.split(',');
var hasid = false;
saveid = '';
j = 1;
for(i=saveids.length-1;i>=0;i--)
{
if(saveids[i]==aid && hasid) continue;
else {
if(saveids[i]==aid && !hasid) hasid = true;
saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);
j++;
if(j==20 && hasid) break;
if(j==19 && !hasid) break;
}
}
if(hasid) { alert("您已经顶过该帖,请不要重复顶帖 !"); return false; }
else saveid += ','+aid;
SetCookie('diggid',saveid,1);
} else {
SetCookie('diggid',aid,1);
}
location.href='digg_frame.php?action='+ac+'&id='+aid;
}
</script>
<body>
<div id="digg">
<?php
echo $digg;
?>
</div>
</body>
</html>

Loading…
Cancel
Save