¡m¶K¤l¶R½æ¥\¯à¤¶²Ð¡n
¶}µo¹Î¶¤¡GCnteacher, Pk0909, NiceWeb, Lauraych
1¡B ¥i¥Hµoªí¦UºØ¦³Àv´£¨Ñªº«H®§¡C
2¡B ¦pªG¶K¤lªº°â»ù©w¬°0¤¸¡A«h¥i¥H¹ê²{[hide]¼Ðñªº®ÄªG¡A¥u¦³·í¥Î¤áÂI¥I¶O¥H«á¤~¥i¥HÆ[¬Ý¡A¦ý¬O¨Ã¤£
¼W¥[§@ªÌªºª÷¿ú¡A¤]¤£¦©°£Æ[¬ÝªÌªºª÷¿ú¡C¦ý¬O¤j®a¤´µM¥i¥H³q¹L¹î¬Ý¡§ÁʶR¬ö¿ý¡¨¡Aª¾¹Dþ¨Ç¤HÆ[¬Ý¤F¶K¤l¡C
3¡B¥i¥H¤@Ó¶K¤l¤ºµoªí¦hÓ»Ýn¤ä¥Iª÷¿úªº«H®§¡C¨CÓ«H®§©w»ù¥i¥H¤£¤@¼Ë¡C¥Î¤á¥i¥H¤À§OÁʶR¥L·Q¬Ýªº«H®§¡C
4¡B¹ï©ó¦UºØ¦³Àv«H®§¡A½×¾Âªº´³¦Ë¡B¶W¯Å´³¦Ë¡BºÞ²zû¬O§K¶OÆ[¬Ýªº¡A³o¼Ë°µ¤]¬O¬°¤FºÊ·þ·|û¡AÁ×§KÓ§O·|û§@¹ú¡C
5¡B¦pªG¶K¤l§t¦³ªþ¥ó¡A«h¥u¦³·í³oÓ¶K¤l·í¤¤ªº©Ò¦³¦¬¶O«H®§¥æ¶O§¹²¦¥H«á¤~¥i¥H¤U¸ü©ÎªÌÅã¥Ü¡C
6¡B»P¡m§¹¬ü»È¦æ¡n¦³¾÷µ²¦X¡A¦b»È¦æ¤¤¥i¥HÅã¥Ü·|û¶i¦æ¶R½æ¶K¤lªº¦¬¯q±¡ªp¡C
¦p¦óµo§G¤@Ó¦³Àv«H®§¡]½æ¶K¡^
¬°¤F²¤Æ½æ¶K¾Þ§@¡A¥»´¡¥ó±Ä¥ÎÃþ¦ü©ó Ubb¥N½X¤è¦¡¶i¦æ¡Aµo§G¦³Àv«H®§¥i¥H±Ä¥Î¤@¤U¤è¦¡¶i¦æ¡G
[
sell=xxx]
³oùØ©ñ¸m¦³Àv«H®§
[
/sell]
¨ä¤¤¡Axxx ¬O§Aªº°â»ù¡C¡@¨Ò¦p¡@[
sell=10]
xxxªº¨úȽd³ò¡G¤j©ó©Îµ¥©ó0¡A¹ï©ó¤p©ó0ªº¼ÆÈ¡C
¨CÓ¶K¤l¤¤¥i¥H¥]¬A¦hÓ¦³Àv«H®§¡C¬Û¤¬¤§¶¡¬O¿W¥ßªº¡C¤£·|µo¥Í¥Î¤á¤ä¥I¤F¤@Ó¦³Àv«H®§ªº¿ú¡A¬Ý¨ì¨ä¥¦ªº
¦³Àv«H®§¡C
ª`·N¡G
¦³Àv«H®§¤@¥¹µo§G¡A½Ð¾¨¶q¤£n§ó§ï°â»ù¡A¶K¤l»ù®æªºÅܰʦ³¥i¯à¨Ï¤w¸g¥I¶O½ã¤áµLªk¥¿±`Æ[¬Ý¡C
¬°¤F«O»Ù¶K¤l¶R½æªº¶¶§Q¹B¦æ¡A½Ð½T»{§A¤w¸g¨ã³Æ¥H¤U±ø¥ó¡G
1¡B¦w¸Ë¤F¡m§¹¬ü»È¦æ 1.03CP¡n
2¡B°Ñ¦Ò¡m§¹¬ü»È¦æ¡n¤¤ªº¡m°ª¯Å¨Ï¥Î«ü«n¡n¡A¶i¦æ¤F¡§¦p¦ó¦b¶K¤lùرÅã¥Ü§@ªÌªº¦s´Ú¡B²{ª÷¡B°]´Iµ¥¯Å¡¨ªº×§ï
3¡B¨ä¥¦´¡¥ó¬O§_©M¥»´¡¥ó²£¥Í½Ä¬ð¡A¥»¤HµLªkª¾¾å¡A©Ò¥H½Ðº¥ý¶i¦æ¥»¦a¦w¸Ë´ú¸Õ¡AµM«á¦A¤W¶Ç¨ì±zªººô¯¸¡C
4¡B¹J¨ì°ÝÃD¡A½Ðº¥ý¹î¬Ý¦w¸Ë»¡©ú¡A¦h¼Æ°ÝÃDªº²£¥Í³£¬O¥Ñ©ó¦w¸Ëªº®ÉÔק藍§¹¾ã³y¦¨ªº¡C
5¡B¬°¤F«OÃÒµ{§Çªº³q¥Î©Ê¡A¦w¸Ë»¡©ú¤¤ªº×§ï¤å¥ó¡A¥Hdiscuz! 2.0 (820) ¼Ð·Çª©¬°°ò¦¡A¦pªG±z¦b¬YÓ×§ï¨BÆJ¤¤µLªk§ä¨ì¬YÓ¤å¦r¡A¨º»ò»¡©ú±z¦³¥i¯à×§ï¤F¸Ó»y¥y¡A½Ð¹ï·Ó¥H«eªº×§ï¥[¥H×¥¿¡C
¦w¸Ë¿ìªk
1¡B½Ð±NÀ£ÁY¥]¤å¥ó®i¶}¡A±Ndiscuz¥Ø¿ý¤¤ªº©Ò¦³¤å¥ó¤W¶Ç¨ì§Aªº½×¾Â¥Ø¿ý¡C
2¡B¶i¤JºÞ²z«á»O¤É¯Å¼Æ¾Ú®w¡A¤º®e¦p¤U¡G
DROP TABLE IF EXISTS cdb_postpay;
CREATE TABLE cdb_postpay (
id int(12) NOT NULL auto_increment,
tid mediumint(8) NOT NULL default '0',
pid int(10) unsigned NOT NULL default '0',
sellcount smallint(3) unsigned NOT NULL default '0',
author varchar(25) NOT NULL default '',
username varchar(25) NOT NULL default '',
money smallint(6) unsigned NOT NULL default '0',
dateline int(10) unsigned NOT NULL default '0',
PRIMARY KEY (id),
KEY tid (tid)
) TYPE=MyISAM;
×§ïconfig.php
¤å¥óµ²§À³B¡A²K¥[¥H¤U¤º®e
// ¶K¤l¶R½æ°t¸m-¶}©l
$hacktable_postpay = 'cdb_postpay';
$allowpostpay =1;
$cnteacher_postsell_maxprice =1000;
$cnteacher_paylist_perpage =20;
//¶K¤l¶R½æ°t¸m-µ²§ô
×§ïinclude/discuzcode.php
·j¯Á
global $credit, $tid, $discuz_user, $codehtml, $post_codecount, $thisbg, $highlight, $table_posts, $db, $searcharray, $replacearray, $ismoderator;
$post_codecount = -1;
¥Î¤U±¤º®e´À´«¡G
// ©«¤l¶R½æ-start
global $credit, $tid, $discuz_user, $codehtml, $post_codecount, $thisbg, $highlight, $table_posts, $db, $searcharray, $replacearray,$sellmessage, $ismoderator,$post_sellcount, $phpcodehtml, $post_phpcodecount;
$post_sellcount=0;
$post_codecount = -1;
$post_phpcodecount = -1;
$message = preg_replace("/\[sell=(\d+)\]\s*(.+?)\s*\[\/sell\]/ies", "postsell(\\1,'\\2')", $message);
// ©«¤l¶R½æ-end
2¡B·j¯Á
for($i = 0; $i < = $post_codecount; $i++) {
¦b¤W±¥[¤J¤U¦C¤º®e¡G
// ©«¤l¶R½æ--start
for($si = 0; $si <= $post_sellcount; $si++) {
$message = str_replace("|\tDISCUZ_SELL_$si\t|", $sellmessage[$si], $message);
}
unset ($sellmessage);
3¡B¦b¤å¥ó©³³¡ ?> ªº¤W±¥[¤J¤U±ªº¤º®e
//¶K¤l¶R½æfunciton ========start
function postsell($price, $message) {
global $thisbg, $post_sellcount,$db,$post, $sellmessage,$tid,$table_posts,$hacktable_postpay,$discuz_user,$issupermod,$ismoderator,$isadmin,$usermoney,$page;
//$message=stripslashes($message);
$message = str_replace("\\\"", "\"", preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1",
$message));
$post_sellcount++;
$price=abs(intval($price));
$post['needmoney']=$post['needmoney']+$price;
$query = $db->query("SELECT COUNT(*) FROM $hacktable_postpay WHERE pid='$post[pid]' AND sellcount='$post_sellcount' ");
$payusercount=$db->result($query, 0);
if ($discuz_user){
if ($usermoney >= $price){
$paymessage="§Aªº²{ª÷¬O¡G$usermoney ,¥i¥H<a href=\"postpay.php?action=pay&tid=$tid&pid=$post[pid]&sellcount=$post_sellcount&money=$price&page=$page\">[¥ß§Y¥I¶O]</a>¡C";
}else{
$paymessage="§Aªº²{ª÷¬O¡G$usermoney ,µLªk¥I¶O¡C¥h[<a href='bank.php'>»È¦æ</a>]¨ú´Ú©ÎªÌ½æ¨Ç¿n¤À§a¡C";
}
}else{
$paymessage= "«D¥»¯¸·|ûµLÅvÁʶR¡A½Ð[<a href='logging.php?action=login'>µn³°</a>],©ÎªÌ[<a href='register.php'>µù¥U</a>]";
}
$sm1="<br><center><table border=\"0\" width=\"98%\" cellspacing=\"0\" cellpadding=\"0\"><tr><td class=\"smalltxt\"> ¦¬¶O«H®§($post_sellcount): ¥»±ø«H®§¦¬¶O:<font color=red>$price</font>ª÷¹ô <a href=\"postpay.php?action=showpayuser&tid=$tid&pid=$post[pid]&sellcount=$post_sellcount\" title=\"¹î¬Ý¸Ô²Ó¦W³æ\">[<font color=red>¥Ø«e: $payusercount ¤H¥I¶O</font>]</a></td><td align=\"right\"> <font color=red>¶BÄF¿ú°]ªÌ³B¥H10¿»@´Ú</font></td></tr><tr><td colspan=\"2\"><table border=\"0\" width=\"100%\" cellspacing=\"1\" cellpadding=\"10\" bgcolor=\"".BORDERCOLOR."\"><tr><td width=\"100%\" bgcolor=\"".ALTBG2."\" style=\"word-break:break-all\">±z©|¥¼¥I´Ú¡AµLªkÆ[¬Ý¬ÛÃö¤º®e¡C$paymessage</td></tr></table></td></tr></table></center><br>";
$sm2=str_pad('',35,'*')."<br><span class=\"smalltxt\"> ¥I¶O¤º®e($post_sellcount)(¶O¥Î:<font color=red>$price</font>ª÷¹ô, <a href=\"postpay.php?action=showpayuser&tid=$tid&pid=$post[pid]&sellcount=$post_sellcount\" title=\"¹î¬Ý¸Ô²Ó¦W³æ\"><font color=red>¥I¶O¤H¼Æ: $payusercount </font></a>)</span><br>".str_pad('',35,'*')."<br>";
if ($discuz_user){
$query = $db->query("SELECT COUNT(*) FROM $table_posts WHERE pid='$post[pid]' AND author='$discuz_user'");
$isauthor = $db->result($query, 0);
if($issupermod || $ismoderator || $isadmin || $isauthor ){
$post['paymoney']=$post['needmoney'];
$post['payed']=2;
$sellmessage[$post_sellcount]=$sm2;
} else {
$query = $db->query("SELECT COUNT(*) FROM $hacktable_postpay WHERE pid='$post[pid]' AND sellcount='$post_sellcount' and money='$price' and username='$discuz_user'");
if($db->result($query, 0)) {
$post['paymoney']=$post['paymoney']+$price;
$post['payed']=2;
$sellmessage[$post_sellcount]=$sm2;
}else{
$post['payed']=1;
$message='';
$sellmessage[$post_sellcount]=$sm1;
}
}
}else{
$post['payed']=1;
$message='';
$sellmessage[$post_sellcount]=$sm1;
}
return "|\tDISCUZ_SELL_$post_sellcount\t| ".$message;
}
//¶K¤l¶R½æfunciton ========end
×§ï include/attachment.php
¦b¤å¥óµ²§À¡A?> ²Å¸¹¤§¤W±²K¥[¤U¦Cªº¥N½X¡C
function attachtype($type) {
if(preg_match("/image|^(jpg|gif|png|bmp)\t/", $type)) {
$attachtype = '¹Ï¤ù';
} elseif(preg_match("/flash|^(swf|fla|swi)\t/", $type)) {
$attachtype = 'flash';
} elseif(preg_match("/audio|video|^(wav|mid|mp3|m3u|wma|asf|asx|vqf|mpg|mpeg|avi|wmv)\t/", $type)) {
$attachtype = '¼vµ';
} elseif(preg_match("/real|^(ra|rm|rv)\t/", $type)) {
$attachtype = 'Realplay';
} elseif(preg_match("/htm|^(php|js|pl|cgi|asp)\t/", $type)) {
$attachtype = '¥N½X';
} elseif(preg_match("/text|^(txt|rtf|wri|chm)\t/", $type)) {
$attachtype = '¤å¥»';
} elseif(preg_match("/word|^(doc)\t/", $type)) {
$attachtype = 'word¤åÀÉ';
} elseif(preg_match("/powerpoint|^(ppt)\t/", $type)) {
$attachtype = 'powerpoint¤åÀÉ';
} elseif(preg_match("/^rar\t/", $type)) {
$attachtype = 'RARÀ£ÁYÀÉ';
} elseif(preg_match("/compressed|^(zip|arj|arc|cab|lzh|lha|tar|gz)\t/", $type)) {
$attachtype = 'ZIPÀ£ÁYÀÉ';
} elseif(preg_match("/octet-stream|^(exe|com|bat|dll)\t/", $type)) {
$attachtype = '¥i°õ¦æ¤å¥ó';
} else {
$attachtype = '¨ä¥L';
}
return $attachtype;
}
×§ï include/newreply.php
¬d§ä
$message = preg_replace("/\[hide=?\d*\](.+?)\[\/hide\]/is", "[b]**** Hidden message by originally poster *****[/b]", $message);
¦b¤U±²K¥[
$message = preg_replace("/\[sell=?\d*\](.+?)\[\/sell\]/is", "[b]**** ¥I¶O«H®§¡A¤w¸gÁôÂÃ *****[/b]", $message);
×§ï include/printable.php
·j´M¡G
while($post = $db->fetch_array($querypost)) {
¤U±²K¥[
×§ïattachment.php ¸Ó¤å¥ó¦ì©ó½×¾Â®Ú¥Ø¿ý
·j¯Á¡G
¤U±²K¥[¡G
if ($discuz_user){
$ismoderator = modcheck($discuz_user);
}
·j¯Á¡G
if(!$forum['getattachperm'] && !$allowgetattach) {
showmessage('group_nopermission');
} elseif($forum['getattachperm'] && !strstr($forum['getattachperm'], "\t$groupid\t")) {
showmessage('attachment_forum_nopermission');
}
¤U±²K¥[¡G
//======= cnteacher¶K¤l¤ä¥I¤U¸ü=========START=============
$query = $db->query("SELECT message,author,pid FROM $table_posts WHERE pid='$attach[pid]'");
$post = $db->fetch_array($query);
$downisok=0;
if($issupermod || $ismoderator || $isadmin || $isauthor){
$downisok=1;
}else{
$postmoney=0;
$issellpost=0;
$post[message] = preg_replace("/\[sell=(\d+)\]\s*(.+?)\s*\[\/sell\]/ies", "postsell(\\1,'\\2')", $post[message]);
if (!$issellpost || $discuz_user==$post[author]){
$downisok=1;
}else{
if ($discuz_user){
$query = $db->query("SELECT sum(money)as paymoneys ,count(*) as count FROM $hacktable_postpay WHERE pid='$post[pid]' AND username='$discuz_user'");
$userpay=$db->fetch_array($query);
if (($userpay['paymoneys'] >= $postmoney) && ($userpay['count'] >0)){$downisok=1;
}else{showmessage("¤U¸ü¥»ªþ¥ó»Ýn¥I¶O¡G $postmoney Óª÷¹ô¡C<br>±z¥Ø«e©|¥¼¤ä¥I,µLªk¤U¸ü¡C");exit;}
}else{
$downisok=0;
}
}
}
if(!$downisok){
showmessage('¥»³n¥ó¬°¥I¶O³n¥ó¡A½Ðµn³°¥I¶O¡C');
}
function postsell($price, $message) {
global $postmoney,$issellpost;
$issellpost =1;
$price=abs(intval($price));
$postmoney=$postmoney+$price;
}
//======= cnteacher¶K¤l¤ä¥I¤U¸ü=========END======
×§ï viewthread.php
¬d§ä¡G
$post['subject'] = $post['subject'] ? $post['subject'].'<br><br>' : NULL;
¤U±²K¥[¡G
¬d§ä¡G
$post['attachicon'] = attachicon($extension."\t".$postattach['filetype']);
¤U±²K¥[¡G
$post['attachtype'] = attachtype($extension."\t".$postattach['filetype']);
$post['attachext'] = $extension;
$post['attachsize'] = sizecount($post['filesize']);
¬d§ä¡G
§R°£«á±ªº¡G
$post['attachsize'] = sizecount($post['filesize']);
×§ï¼Òª© viewthread.htm
¬d§ä¡G
<!--{if $post['aaid']}-->
<br><br>$post[attachicon]
<!--{if $post['attachimg'] == 0}-->
{langattachment}:<a href="attachment.php?aid=$post[aaid]" target="_blank">$post[filename]</a> ($post[attachsize])<br><span class="smalltxt">{lang attach_download_count} $post[downloads]
<!--{if $post[creditsrequire]}-->, {lang creditsrequire_attach} {lang credit_title} $post[creditsrequire] {lang credit_unit}<!--{/if}--></span><br>
<!--{elseif $post['attachimg'] == 1}-->
{lang attach_img}: <br><br><a href="$attachurl/$post[attachment]" target="_blank"><img src="$attachurl/$post[attachment]" border="0" alt="{lang click_open_newwindow}" onload="javascript:if(this.width>screen.width-333) this.width=screen.width-333"></a>
<!--{elseif $post['attachimg'] == 2}-->
{lang attach_swf}: <br><br><embed width="400" height="300" src="$attachurl/$post[attachment]" type="application/x-shockwave-flash"></embed>
<!--{/if}-->
<!--{/if}-->
¥Î¤U±ªº¥N½XÂл\¡G
<!--{if $post['aaid'] }-->
<!--{if $post[payed]==0 || (($post['paymoney']>=$post['needmoney']) && ($post[payed]==2)) }-->
<!--{if $post['attachimg'] == 0}-->
<table cellspacing="0" cellpadding="0" border="0" width="{TABLEWIDTH}" align="center">
<tr><td bgcolor="#cccccc">
<table border="0" cellspacing="{BORDERWIDTH}" cellpadding="{TABLESPACE}" width="100%">
<tr class="header" >
<td width= "100%"colspan="4" align="center"><b>¥»¶K¥]§tªþ¥ó</b></td>
</tr>
<tr bgcolor="{ALTBG2}">
<td width="15%" > ¤å¥ó¦W:</span></td>
<td width="35%" ><span class="small"> $post[filename]</span></td>
<td width="15%"> ¤å¥óÃþ«¬:</td>
<td width="35%"><span class="small">$post[attachicon] $post[attachtype]</span></td>
</tr>
<tr bgcolor="{ALTBG2}">
<td><span class="small"> ¤å¥ó¤j¤p:</span></td>
<td><span class="small"> $post[attachsize]</td>
<td><span class="small"> ¤H®ð«ü¼Æ:</span></td>
<td><span class="smalltxt"> $post[downloads] </span></td>
</tr>
<tr bgcolor="{ALTBG2}">
<td width="100%" colspan=4 align=center>
<a href="attachment.php?aid=$post[aaid]" target="_blank">¥ß§Y¤U¸ü</a>
<!--{if $post[creditsrequire]}-->, {lang creditsrequire_attach} {lang credit_title}
$post[creditsrequire] {lang credit_unit}<!--{/if}--></span><br>
</td></tr></table></td></tr></table>
<!--{elseif $post['attachimg'] == 1}-->
{lang attach_img}: <br><br><a href="$attachurl/$post[attachment]" target="_blank"><img src="$attachurl/$post[attachment]" border="0" alt="{lang click_open_newwindow}" onload="javascript:if(this.width>screen.width-333) this.width=screen.width-333"></a>
<!--{elseif $post['attachimg'] == 2}-->
<BR><center>
<br><embed width="400" height="300" src="$attachurl/$post[attachment]" type="application/x-shockwave-flash"></embed>
</cnenter>
<!--{/if}-->
<!--{else}-->
<table cellspacing="0" cellpadding="0" border="0" width="{TABLEWIDTH}" align="center">
<tr><td bgcolor="#cccccc">
<table border="0" cellspacing="{BORDERWIDTH}" cellpadding="{TABLESPACE}" width="100%">
<tr class="header" >
<td width= "100%"colspan="4" align="center"><b>¥»¶K¥]§tªþ¥ó</b></td>
</tr>
<tr bgcolor="{ALTBG2}">
<td width="15%" > ¤å¥ó¦W:</span></td>
<td width="35%" ><span class="small"> $post[filename]</span></td>
<td width="15%"> ¤å¥óÃþ«¬:</td>
<td width="35%"><span class="small">$post[attachicon] $post[attachtype]</span></td>
</tr>
<tr bgcolor="{ALTBG2}">
<td><span class="small"> ¤å¥ó¤j¤p:</span></td>
<td><span class="small"> $post[attachsize]</td>
<td><span class="small"> ¤H®ð«ü¼Æ:</span></td>
<td><span class="smalltxt"> $post[downloads] </span></td>
</tr>
<tr bgcolor="{ALTBG2}"><td width="100%" colspan=4 align=center>
<br><br> ±z¥u¦³¤ä¥I¤F¶K¤l¤¤ªº©Ò¦³¸ê¶O¤~¥i¥H¹î¬Ý©ÎªÌ¤U¸ü¡C<BR><BR>
</td></tr></table></td></tr></table>
<!--{/if}--><!--{/if}-->