国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
4.4KB

  1. <?php
  2. /**
  3. *
  4. * 文档digg处理ajax文件
  5. *
  6. * @version $Id: digg_ajax.php$
  7. * @package DedeCMS.Plus
  8. * @copyright Copyright (c) 2020, DedeBIZ.COM
  9. * @license https://www.dedebiz.com/license
  10. * @link https://www.dedebiz.com
  11. */
  12. require_once(dirname(__FILE__)."/../include/common.inc.php");
  13. $action = isset($action) ? trim($action) : '';
  14. $format = isset($format)? $format : '';
  15. $id = empty($id)? 0 : intval($id);
  16. $cid = empty($cid)? 1 : intval($cid);
  17. helper('cache');
  18. if($id < 1)
  19. {
  20. exit();
  21. }
  22. $idtype='id';
  23. $maintable = '#@__archives';
  24. //获得频道模型ID
  25. if($cid < 0)
  26. {
  27. $row = $dsql->GetOne("SELECT addtable FROM `#@__channeltype` WHERE id='$cid' AND issystem='-1';");
  28. $maintable = empty($row['addtable'])? '' : $row['addtable'];
  29. $idtype='aid';
  30. }
  31. $prefix = 'diggCache';
  32. $key = 'aid-'.$id;
  33. $row = GetCache($prefix, $key);
  34. if(!is_array($row) || $cfg_digg_update==0)
  35. {
  36. $row = $dsql->GetOne("SELECT goodpost,badpost,scores FROM `$maintable` WHERE $idtype='$id' ");
  37. if($cfg_digg_update == 0)
  38. {
  39. if($action == 'good')
  40. {
  41. $row['goodpost'] = $row['goodpost'] + 1;
  42. $dsql->ExecuteNoneQuery("UPDATE `$maintable` SET scores = scores + {$cfg_caicai_add},goodpost=goodpost+1,lastpost=".time()." WHERE $idtype='$id'");
  43. }
  44. else if($action=='bad')
  45. {
  46. $row['badpost'] = $row['badpost'] + 1;
  47. $dsql->ExecuteNoneQuery("UPDATE `$maintable` SET scores = scores - {$cfg_caicai_sub},badpost=badpost+1,lastpost=".time()." WHERE $idtype='$id'");
  48. }
  49. DelCache($prefix, $key);
  50. }
  51. SetCache($prefix, $key, $row, 0);
  52. } else {
  53. if($action == 'good')
  54. {
  55. $row['goodpost'] = $row['goodpost'] + 1;
  56. $row['scores'] = $row['scores'] + $cfg_caicai_sub;
  57. if($row['goodpost'] % $cfg_digg_update == 0)
  58. {
  59. $add_caicai_sub = $cfg_digg_update * $cfg_caicai_sub;
  60. $dsql->ExecuteNoneQuery("UPDATE `$maintable` SET scores = scores + {$add_caicai_sub},goodpost=goodpost+{$cfg_digg_update} WHERE $idtype='$id'");
  61. DelCache($prefix, $key);
  62. }
  63. } else if($action == 'bad')
  64. {
  65. $row['badpost'] = $row['badpost'] + 1;
  66. $row['scores'] = $row['scores'] - $cfg_caicai_sub;
  67. if($row['badpost'] % $cfg_digg_update == 0)
  68. {
  69. $add_caicai_sub = $cfg_digg_update * $cfg_caicai_sub;
  70. $dsql->ExecuteNoneQuery("UPDATE `$maintable` SET scores = scores - {$add_caicai_sub},badpost=badpost+{$cfg_digg_update} WHERE $idtype='$id'");
  71. DelCache($prefix, $key);
  72. }
  73. }
  74. SetCache($prefix, $key, $row, 0);
  75. }
  76. $digg = '';
  77. if(!is_array($row)) exit();
  78. if($row['goodpost'] + $row['badpost'] == 0)
  79. {
  80. $row['goodper'] = $row['badper'] = 0;
  81. }
  82. else
  83. {
  84. $row['goodper'] = number_format($row['goodpost'] / ($row['goodpost'] + $row['badpost']), 3) * 100;
  85. $row['badper'] = 100 - $row['goodper'];
  86. }
  87. if(empty($formurl)) $formurl = '';
  88. if($formurl=='caicai')
  89. {
  90. if($action == 'good') $digg = $row['goodpost'];
  91. if($action == 'bad') $digg = $row['badpost'];
  92. }
  93. else
  94. {
  95. $row['goodper'] = trim(sprintf("%4.2f", $row['goodper']));
  96. $row['badper'] = trim(sprintf("%4.2f", $row['badper']));
  97. if (!empty($format)) {
  98. // 输出JSON API的方式
  99. $result = array(
  100. "code" => 200,
  101. "data" => array(
  102. 'goodpost' => $row['goodpost'],
  103. 'goodper' => $row['goodper'],
  104. 'badpost' => $row['badpost'],
  105. 'badper' => $row['badper'],
  106. ),
  107. );
  108. $digg = json_encode($result);
  109. } else {
  110. // 兼容之前的老版本
  111. $digg = '<div class="diggbox digg_good" onmousemove="this.style.backgroundPosition=\'left bottom\';" onmouseout="this.style.backgroundPosition=\'left top\';" onclick="postDigg(\'good\','.$id.')">
  112. <div class="digg_act">顶一下</div>
  113. <div class="digg_num">('.$row['goodpost'].')</div>
  114. <div class="digg_percent">
  115. <div class="digg_percent_bar"><span style="width:'.$row['goodper'].'%"></span></div>
  116. <div class="digg_percent_num">'.$row['goodper'].'%</div>
  117. </div>
  118. </div>
  119. <div class="diggbox digg_bad" onmousemove="this.style.backgroundPosition=\'right bottom\';" onmouseout="this.style.backgroundPosition=\'right top\';" onclick="postDigg(\'bad\','.$id.')">
  120. <div class="digg_act">踩一下</div>
  121. <div class="digg_num">('.$row['badpost'].')</div>
  122. <div class="digg_percent">
  123. <div class="digg_percent_bar"><span style="width:'.$row['badper'].'%"></span></div>
  124. <div class="digg_percent_num">'.$row['badper'].'%</div>
  125. </div>
  126. </div>';
  127. }
  128. }
  129. AjaxHead();
  130. echo $digg;
  131. exit();