Discuz! 官方站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 58876|回复: 88

[插件] 转/帖子买卖+流量管制系统 for 4.0.0 简体版

[复制链接]
发表于 2005-12-16 23:10:38 | 显示全部楼层 |阅读模式
有好多人想要..本人只是从网上找来..如有错误找作者


插件名称 帖子买卖+流量管制系统
插件作者 rain5017
插件用法 [sell=帖子价格,管制时间]文章内容[/sell]
插件说明 本插件将是论坛插件里的一大创举,以往要管制下载点流量都要倚靠流量管制系统才能达到目的,但是本插件在帖子买卖插件基础上加上时间管制,因此有着跟流量管制系统的相同效果
附注
1.本帖子买卖插件为小弟我个人论坛需求而委托rain5017大大制定开发出来的,看见其他商业用户朋友对帖子买卖插件非常需求,因此我徵求作者同意将本插件放出让大家也能使用
2.旧语法[sell=XX]文章内容[/sell]也能共用
3.因为本插件相当吃资源,因此加上限制单帖内使用语法数量控制,请大家慎用本插件避免影响论坛速度
4.因为本插件相当吃资源,因此将语法模板上的"已付费统计人数"功能关闭,但是名单上可以查询数量

上传附件至空间

请至后台生及资料库

  1. DROP TABLE IF EXISTS `cdb_postpay`;
  2. CREATE TABLE `cdb_postpay` (
  3.   `id` int(12) NOT NULL auto_increment,
  4.   `tid` mediumint(8) NOT NULL default '0',
  5.   `pid` int(10) unsigned NOT NULL default '0',
  6.   `sellcount` smallint(3) unsigned NOT NULL default '0',
  7.   `author` varchar(25) NOT NULL default '',
  8.   `username` varchar(25) NOT NULL default '',
  9.   `money` smallint(6) unsigned NOT NULL default '0',
  10.   `dateline` int(10) unsigned NOT NULL default '0',
  11.   PRIMARY KEY  (`id`),
  12.   KEY `tid` (`tid`)
  13. ) TYPE=MyISAM AUTO_INCREMENT=1 ;
复制代码


开启config.inc.php
最下方加上

  1. // ============================================================================
  2. $hacktable_postpay = 'cdb_postpay';
  3. $allowpostpay =1;
  4. $paypostoff=0;//是否关闭帖子卖买 0 否 1关闭
  5. $paypostlimit=3;//限制单帖里使用帖子买卖语法数量!0为无限制,否则一个帖子只有前$paypostlimit有效
  6. $paymixtime=0;//默认管制时间,以分为单位
  7. $cnteacher_postsell_maxprice =300;
  8. $cnteacher_paylist_perpage =20;   
  9. $payfield='extcredits2';//设定消费的拓展积分,可依个人设定改变

  10. //=============================================================================
复制代码


开启include\discuzcode.func.php
找到

  1. global $discuzcodes, $credits, $tid, $discuz_uid, $highlight, $maxsmilies, $db, $tablepre;
复制代码


替换成

  1. global $discuzcodes, $credits, $tid, $discuz_user,$discuz_uid, $sellmessage,$highlight, $maxsmilies, $db, $tablepre,$post,$post_sellcount,$paymixtime,$postdowntime,$paypostlimit,$paypostoff;
复制代码


找到

  1. if(!$bbcodeoff && $allowbbcode) {
  2.                 $message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);
  3.         }
复制代码


下面添加


  1.          $message = preg_replace("/\[sell=(\d+)\]\s*(.+?)\s*\[\/sell\]/ies",  "postsell(\\1,$paymixtime,'\\2')", $message);
  2.           $message = preg_replace("/\[sell=(\d{1,3})[x|\,](\d{1,3})\]\s*(.+?)\s*\[\/sell\]/ies",  "postsell(\\1,\\2,'\\3')", $message);
  3.          
复制代码


找到

  1.         for($i = 0; $i <= $discuzcodes['pcodecount']; $i++) {
  2.                 $message = str_replace("[\tDISCUZ_CODE_$i\t]", $discuzcodes['codehtml'][$i], $message);
  3.         }
复制代码


下面添加


  1.         for($si = 0; $si <= $post_sellcount; $si++) {
  2.           $message = str_replace("|\tDISCUZ_SELL_$si\t|", $sellmessage[$si], $message);
  3.         }
  4.         unset ($sellmessage);
复制代码


找到

  1. ?>
复制代码


上面加入


  1. function postsell($price,$paytimes, $message) {
  2.     global $thisbg, $db, $tablepre,$sellmessage,$tid,$hacktable_postpay,$discuz_user,$discuz_uid,$adminid,$page,$post,$payfield,$post_sellcount,$forum,$postdowntime,$paypostlimit,$paypostoff;
  3.     $usermoney=$GLOBALS['_DSESSION'][$payfield];
  4.     $nowtime=time();
  5.     $paytimes=$paytimes*60;
  6.   
  7.         $message = str_replace("\\\"", "\"", preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $message));
  8.         if($paypostoff)return $message;
  9.     $post_sellcount++;
  10.      if($paypostlimit){
  11.                   if($post_sellcount>$paypostlimit)  return "|\tDISCUZ_SELL_$post_sellcount\t| "."超过本帖卖帖次数,请另外发帖";
  12.         }
  13.     $post[postcount]= $post_sellcount;
  14.     $price=abs(intval($price));
  15.     $post['needmoney']=$post['needmoney']+$price;
  16.     //$query = $db->query("SELECT COUNT(*) FROM $hacktable_postpay WHERE pid='$post[pid]' AND sellcount='$post_sellcount' ");
  17.     //$payusercount=$db->result($query, 0);
  18.     if ($discuz_user){
  19.         if ($usermoney >= $price){
  20.                $query = $db->query("SELECT dateline as lastpaytimes FROM $hacktable_postpay WHERE pid='$post[pid]' AND sellcount='$post_sellcount' ");         
  21.                @extract($db->fetch_array($query));
  22.                  $yutime=$lastpaytimes+$paytimes-$nowtime;//剩余时间
  23.                  $yutime=$yutime>0?$yutime:1;
  24.             $paymessage="你拥有:$usermoney  金币,<span id=\"n_".$post_sellcount."_".$post[pid]."\">下载管制,尚余 $yutime 秒.</span>";
  25.            // if($yutime>1){
  26.            $yutime=$yutime>0?$yutime:0;
  27.                            $countsell=$post_sellcount-1;
  28.                                                                                                                    //$tid,$post[pid],$price,$page,$post_sellcount
  29.                         $postdowntime.="delay[".$countsell."] = '".$post_sellcount."_".$post[pid]."-".$yutime."-0-".$tid."-".$post[pid]."-".$price."-".$page."-".$post_sellcount."';\n";
  30.                 //        }
  31.                                 /*************/
  32.                                 //echo $paymessage;exit;
  33.                                 
  34.         }else{
  35.             $paymessage="你拥有:$usermoney 金币,无法付费。去[<a href='memcp.php?action=credits'><font color=#FBA51F>兑换</font></a>]或者购买金币吧。";
  36.         }
  37.     }else{
  38.             $paymessage= "非本站会员无权购买,请[<a href='logging.php?action=login'><font color=#FBA51F>登陆</font></a>],或者[<a href='register.php'><font color=#FBA51F>注册</font></a>]";
  39.     }
  40.      
  41. $sm1="<br><center><table style='background: threedface; color: windowtext; margin: 2px; BORDER-STYLE: none' width='90%'><tr><td><FIELDSET style='width: 100%; text-align: center'><LEGEND>&nbsp;&nbsp;收费单</font></LEGEND><table border='0' width='98%' cellspacing='0' cellpadding='6' ><tr><td class='smalltxt'><font color=#000000>编号:</font><input type='text' readonly name='p101' value='$tid-$post[pid]-$post[postcount]'></td><td><font color=#000000>价格:</font><input type=text  readonly name=p102 value='$price' size=5><font color=#000000>金额</font></td><td align='right'><font color=#000000>已付费人数:</font><input type=text name=p103 value='未统计' size=5>&nbsp;<a href='postpay.php?action=showpayuser&tid=$tid&pid=$post[pid]&sellcount=$post_sellcount'><font color=red>名单</font></a></td></tr><tr><td colspan='3'><hr><font color ='#000000'>请付费察看本帖隐藏内容,$paymessage</td></tr></table></FIELDSET></tr></table></center>";
  42.      
  43. $sm2="<br><center><table style='background: threedface; color: windowtext; margin: 2px; BORDER-STYLE: none' width='90%'><tr><td><FIELDSET style='width: 100%; text-align: center'><LEGEND> &nbsp;&nbsp;付款证明</font></LEGEND><table border='0' width='98%' cellspacing='0' cellpadding='6'><tr><td class='smalltxt'><font color=#000000>编号:</font><input type='text'  readonly  name='p101' value='$tid-$post[pid]-$post[postcount]'></td><td><font color=#000000>价格:</font><input type=text   readonly name=p102 value='$price' size=5> <font color=#000000>金额</font></td><td align='right'><font color=#000000>已付费人数:</font><input type=text name=p103 value='未统计' size=5>&nbsp;<a href= 'postpay.php?action=showpayuser&tid=$tid&pid=$post[pid]&sellcount=$post_sellcount'><font color=red>名单</font></a></td></tr><tr><td colspan='3'><hr><font color='#000000'>感谢您的付费!你可以观看以下付费内容了。如发现非法敛财,可以投诉给版主<span id=\"n_".$post_sellcount."_".$post[pid]."\"></span></td></tr></table></FIELDSET></tr></table></center>";

  44.     if ($discuz_user){
  45.         //$query = $db->query("SELECT COUNT(*) FROM {$tablepre}posts WHERE pid='$post[pid]' AND author='$discuz_user'");
  46.        // $isauthor = $db->result($query, 0);
  47.        $isauthor = ($post[uid]==$discuz_uid)?1:0;
  48.         if(in_array($adminid, array(1,2))||$forum['ismoderator']||$isauthor){
  49.             $post['paymoney']=$post['needmoney'];
  50.             $post['payed']=2;
  51.             $sellmessage[$post_sellcount]=$sm2;
  52.         } else {
  53.             $query = $db->query("SELECT COUNT(*) FROM $hacktable_postpay WHERE pid='$post[pid]' AND  sellcount='$post_sellcount' and money='$price' and username='$discuz_user'");
  54.             if($db->result($query, 0)) {
  55.                 $post['paymoney']=$post['paymoney']+$price;
  56.                 $post['payed']=2;
  57.                 $sellmessage[$post_sellcount]=$sm2;
  58.             }else{
  59.                 $post['payed']=1;
  60.                 $message='';
  61.                 $sellmessage[$post_sellcount]=$sm1;
  62.             }   
  63.         }
  64.     }else{
  65.         $post['payed']=1;
  66.         $message='';
  67.         $sellmessage[$post_sellcount]=$sm1;
  68.     }
  69.     return "|\tDISCUZ_SELL_$post_sellcount\t| ".$message;
  70. }
复制代码


开启include\newreply.inc.php
找到

  1. $time = gmdate("$dateformat $timeformat", $thaquote['dateline'] + ($timeoffset * 3600));
复制代码


下面添加


  1.                  $message = preg_replace("/\[sell=?\d*\](.+?)\[\/sell\]/is", "[b]**** 付费信息,已经隐藏 *****[/b]", $message);
  2.                   $message = preg_replace("/\[sell=(\d{1,3})[x|\,](\d{1,3})\](.+?)\[\/sell\]/ies","付费信息,已经隐藏", $message);
复制代码


开启templates\default\viewthread.htm
找到两个地方都要加上
  1. <table width="{TABLEWIDTH}" cellspacing="0" cellpadding="0" align="center">
  2. <tr>
复制代码


上面添加


  1. <!--{if $postdowntime}-->
  2. <script language="javascript">
  3. <!--
  4.    var wait_time = 10;
  5.    var load_time = (new Date()).getTime();
  6.    var delay = new Array();
  7.   // delay[0] = '9p-1033-0';
  8.   // delay[1] = '12p-295-0';
  9.   $postdowntime
  10.    var okImg = new Image();
  11.    okImg.src = 'http://220.134.160.16/non-cgi/images/ok.gif';
  12.    function updateDelay() {
  13.       var refresh_enabled = 0;
  14.       var refresh_time = 3600000;
  15.       var now_time = (new Date()).getTime();
  16.       for(i=0; i<delay.length; i++) {
  17.          var data = delay[i].split("-");
  18.          var pass_time = Math.floor((now_time - load_time)/1000);
  19.          var diff = data[1] - pass_time;
  20.          var diff_str = '';

  21.          if(diff >= 0) {
  22.             refresh_enabled = 1;
  23.             if(diff > 3600) {
  24.                if(diff <= 3600*2) refresh_time = 60000;
  25.                var diff1 = Math.floor(diff/3600);
  26.                diff_str = diff1 + ' 个多小时';
  27.             } else {
  28.                if(diff > 60) {
  29.                   if(refresh_time > 60000) refresh_time = 60000;
  30.                   if(diff <= 60*2) refresh_time = 1000;
  31.                   var diff1 = Math.floor(diff/60);
  32.                   diff_str = diff1 + ' 分钟多';
  33.                } else {
  34.                   refresh_time = 1000;
  35.                   diff_str = diff + ' 秒多';
  36.                }
  37.             }
  38.             if(data[2] == 0) {
  39.                document.getElementById('n_'+data[0]).innerHTML = '下载管制,尚余 ' + diff_str + '.';
  40.             } else {
  41.                if(diff <= wait_time*60) {
  42.                   document.getElementById('n_'+data[0]).innerHTML = '下载管制,尚余 ' + diff_str + '.';
  43.                
  44.                }
  45.             }
  46.          } else {
  47.               document.getElementById('n_'+data[0]).innerHTML = '<a href=postpay.php?action=pay&tid='+data[3]+'&sellcount='+data[7]+'&money='+data[5]+'&page='+data[6]+'&pid='+data[4]+'><b><font color=#FBA51F>[你已经可以买帖]</font></b></a>';
  48.             if(data[2] == 0) {
  49.                     // eval('document.delpost.b_'+data[0]).value = '立即下载';
  50.              //  eval('document.delpost.b_'+data[0]).disabled = true;
  51.              // document.delpost.b_+data[0]+.disabled = true;
  52.             } else {
  53.                location.reload();
  54.             }
  55.          }

  56.       }
  57.       if(refresh_enabled == 1) setTimeout("updateDelay()", refresh_time);
  58.    }
  59.    updateDelay();
  60. // -->
  61. </script>
  62. <!--{/if}-->
复制代码

[ 本帖最后由 haohao036 于 2005-12-17 01:52 编辑 ]
发表于 2005-12-16 23:13:38 | 显示全部楼层
不错嘛!都是添加式安装的!
对了,你上哪儿找到的???
回复

使用道具 举报

 楼主| 发表于 2005-12-16 23:17:02 | 显示全部楼层
我在天地会找到的..你应该知道吧.
回复

使用道具 举报

发表于 2005-12-16 23:19:03 | 显示全部楼层
有人安装过吗?俺不敢第一个试
回复

使用道具 举报

发表于 2005-12-16 23:25:04 | 显示全部楼层
就是和pw的一样吧,很喜欢那种形式的
不过好像改起来太麻烦了,还没演示,汗
回复

使用道具 举报

发表于 2005-12-16 23:26:30 | 显示全部楼层
多谢!正想要呢~~再次感谢!
回复

使用道具 举报

发表于 2005-12-16 23:42:00 | 显示全部楼层

回复 #3 haohao036 的帖子

天地会???
是不是那个卖天与地乌龙茶的那个天地会啊?
回复

使用道具 举报

发表于 2005-12-16 23:44:23 | 显示全部楼层
装成功的人回一贴!我会处理的:)
回复

使用道具 举报

发表于 2005-12-16 23:44:26 | 显示全部楼层
天地会 知道 他们那里已经用了   这个插件应该没有问题的~!
回复

使用道具 举报

 楼主| 发表于 2005-12-16 23:51:46 | 显示全部楼层
原帖由 freddy 于 2005-12-16 23:42 发表
天地会???
是不是那个卖天与地乌龙茶的那个天地会啊?



是啊是啊.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

腾讯云市场年终大促!Discuz X3.4论坛系统免费用,虚拟主机低至20元/月,爆款小程序1元起!

QQ|小黑屋|Discuz! 官方站 ( 粤B2-20090059-165 )star

GMT+8, 2019-12-12 14:28

Powered by Discuz! X3.3

Copyright © 2001-2019 Tencent Cloud.

快速回复 返回顶部 返回列表