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

92 lines
4.6KB

  1. <?php
  2. /**
  3. * 文档页
  4. *
  5. * @version $id:view.php$
  6. * @package DedeBIZ.Site
  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. require_once(DEDEINC.'/archive/archives.class.php');
  13. $t1 = ExecTime();
  14. if (empty($okview)) $okview = '';
  15. if (isset($arcID)) $aid = $arcID;
  16. if (!isset($dopost)) $dopost = '';
  17. $arcID = $aid = (isset($aid) && is_numeric($aid)) ? $aid : 0;
  18. if ($aid == 0) die("dedebiz");
  19. $arc = new Archives($aid);
  20. if ($arc->IsError) ParamError();
  21. //检查阅读权限
  22. $needMoney = $arc->Fields['money'];
  23. $needRank = $arc->Fields['arcrank'];
  24. require_once(DEDEINC.'/memberlogin.class.php');
  25. $cfg_ml = new MemberLogin();
  26. if ($needRank < 0 && $arc->Fields['mid'] != $cfg_ml->M_ID) {
  27. ShowMsg('文档未审核,暂时无法浏览', 'javascript:;');
  28. exit();
  29. }
  30. //设置了权限限制的文档
  31. //arctitle msgtitle moremsg
  32. if ($needMoney > 0 || $needRank > 1) {
  33. $arctitle = $arc->Fields['title'];
  34. $arclink = $cfg_phpurl.'/view.php?aid='.$arc->ArcID;
  35. $arcLinktitle = "<a href=\"{$arclink}\">".$arctitle."</a>";
  36. $description = $arc->Fields["description"];
  37. $pubdate = GetDateTimeMk($arc->Fields["pubdate"]);
  38. //会员级别不足
  39. if (($needRank > 1 && $cfg_ml->M_Rank < $needRank && $arc->Fields['mid'] != $cfg_ml->M_ID)) {
  40. $dsql->Execute('me', "SELECT * FROM `#@__arcrank`");
  41. while ($row = $dsql->GetObject('me')) {
  42. $memberTypes[$row->rank] = $row->membername;
  43. }
  44. $memberTypes[0] = "游客或没权限会员";
  45. $msgtitle = "您没有权限浏览文档:{$arctitle}";
  46. $moremsg = "该文档需要消费<span class='text-primary'>".$memberTypes[$needRank]."</span>才能浏览,您目前等级是<span class='text-primary'>".$memberTypes[$cfg_ml->M_Rank]."</span>";
  47. include_once(DEDETEMPLATE.'/apps/view_msg.htm');
  48. exit();
  49. }
  50. //需要金币的情况
  51. if ($needMoney > 0 && $arc->Fields['mid'] != $cfg_ml->M_ID) {
  52. $sql = "SELECT aid,money FROM `#@__member_operation` WHERE buyid='ARCHIVE".$aid."' AND mid='".$cfg_ml->M_ID."'";
  53. $row = $dsql->GetOne($sql);
  54. //未购买过此文档
  55. if (!is_array($row)) {
  56. if ($cfg_ml->M_Money == '' || $needMoney > $cfg_ml->M_Money) {
  57. $msgtitle = "您没有权限浏览文档:{$arctitle} ";
  58. $moremsg = "该文档需要消费<span class='text-primary'>".$needMoney."</span>金币才能浏览,您目前金币<span class='text-primary'>".$cfg_ml->M_Money."</span><a class='btn btn-success btn-sm ml-2' href='{$cfg_memberurl}/buy.php' target='_blank'>充值金币</a>";
  59. include_once(DEDETEMPLATE.'/apps/view_msg.htm');
  60. $arc->Close();
  61. exit();
  62. } else {
  63. if ($dopost == 'buy') {
  64. $inquery = "INSERT INTO `#@__member_operation` (mid,oldinfo,money,mtime,buyid,product,pname,sta) VALUES ('".$cfg_ml->M_ID."','$arctitle','$needMoney','".time()."','ARCHIVE".$aid."','archive','购买内容',2); ";
  65. if ($dsql->ExecuteNoneQuery($inquery)) {
  66. $inquery = "UPDATE `#@__member` SET money=money-$needMoney WHERE mid='".$cfg_ml->M_ID."'";
  67. if (!$dsql->ExecuteNoneQuery($inquery)) {
  68. showmsg('购买失败, 请返回', -1);
  69. exit;
  70. }
  71. showmsg('购买成功,购买扣点不会重扣金币', $GLOBALS['cfg_cmsurl'].'/apps/view.php?aid='.$aid);
  72. exit;
  73. } else {
  74. showmsg('购买失败,请返回', -1);
  75. exit;
  76. }
  77. }
  78. $msgtitle = "扣金币购买阅读";
  79. $moremsg = "该文档需要消费<span class='text-primary'>".$needMoney."</span>金币才能浏览,您目前金币<span class='text-primary'>".$cfg_ml->M_Money."</span><a href='/apps/view.php?aid=".$aid."&dopost=buy' target='_blank' class='btn btn-success btn-sm ml-2'>确认阅读</a>";
  80. include_once($cfg_basedir.$cfg_templets_dir."/apps/view_msg.htm");
  81. $arc->Close();
  82. exit();
  83. }
  84. }
  85. } //金币处理付处理
  86. }
  87. $arc->Display();
  88. if (DEBUG_LEVEL === TRUE) {
  89. $queryTime = ExecTime() - $t1;
  90. echo DedeAlert("页面加载总消耗时间:{$queryTime}", ALERT_DANGER);
  91. }
  92. ?>