国内流行的内容管理系统(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.

115 lines
4.3KB

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