www.gusucode.com > 迪恩Kids育儿母婴商业版【整站带数据】源码程序 > 迪恩Kids育儿母婴商业版【整站带数据】/web/source/plugin/dsu_paulsign/sign.func.php
<?php /** * DSU_Paulsign Sign Func Lib * * @copyright (c) 2013 DSU Team. (http://www.dsu.me) * @author BranchZero <branchzero@gmail.com> * @LastModTime 2013-10-15 00:20:16Z BranchZero */ function paulsign_do($uid, $signmode, $ifreward = TRUE){ global $_G, $_GET; loadcache('pluginlanguage_script'); $var = $_G['cache']['plugin']['dsu_paulsign']; $lang = $_G['cache']['pluginlanguage_script']['dsu_paulsign']; $tdtime = gmmktime(0,0,0,dgmdate($_G['timestamp'], 'n',$var['tos']),dgmdate($_G['timestamp'], 'j',$var['tos']),dgmdate($_G['timestamp'], 'Y',$var['tos'])) - $var['tos']*3600; $htime = dgmdate($_G['timestamp'], 'H',$var['tos']); $qiandaodb = C::t('#dsu_paulsign#dsu_paulsign')->fetch($uid); $userinfo = C::t('#dsu_paulsign#dsu_paulsign')->get_userinfo($uid); $groupid = $userinfo['groupid']; $username = $userinfo['username']; if($signmode == 1){ if($_GET['formhash'] != FORMHASH) { showmessage('undefined_action', NULL); } } if($var['timeopen']) { if ($htime < $var['stime']) { return paulsign_result($signmode, "{$lang['ts_timeearly1']}{$var[stime]}{$lang['ts_timeearly2']}"); } elseif ($htime > $var['ftime']) { return paulsign_result($signmode, $lang['ts_timeov']); } } if(!in_array($groupid, unserialize($var['groups']))) return paulsign_result($signmode, $lang['ts_notallow']); if($var['mintdpost'] > C::t('#dsu_paulsign#dsu_paulsign')->getuserpost($uid)) return paulsign_result($signmode, "{$lang['ts_minpost1']}{$var[mintdpost]}{$lang['ts_minpost2']}"); if(in_array($uid,explode(",",$var['ban']))) return paulsign_result($signmode, $lang['ts_black']); if($qiandaodb['time']>$tdtime) return paulsign_result($signmode, $lang['ts_yq']); if($signmode == 1){ if(!array_key_exists($_GET['qdxq'],unserialize($_G['setting']['paulsign_emot']))) return paulsign_result($signmode, $lang['ts_xqnr']); $mood = $_GET['qdxq']; }else{ $mood = array_rand(unserialize($_G['setting']['paulsign_emot'])); } if(!$var['sayclose'] && $signmode == 1){ if($_GET['qdmode']=='1'){ $todaysay = dhtmlspecialchars($_GET['todaysay']); if($todaysay=='') return paulsign_result($signmode, $lang['ts_nots']); if(strlen($todaysay) > 100) return paulsign_result($signmode, $lang['ts_ovts']); if(strlen($todaysay) < 6) return paulsign_result($signmode, $lang['ts_syts']); if (!preg_match("/[^A-Za-z0-9.,]/",$todaysay)) return paulsign_result($signmode, $lang['ts_saywater']); if(censormod($todaysay)) return paulsign_result($signmode, $lang['ts_illegaltext']); } elseif ($_GET['qdmode']=='2') { $fastreplytexts = explode("/hhf/", str_replace(array("\r\n", "\n", "\r"), '/hhf/', $var['fastreplytext'])); $todaysay = $fastreplytexts[$_GET['fastreply']]; } elseif($_GET['qdmode']=='3') { $todaysay = "{$lang['wttodaysay']}"; } }else{ $todaysay = "{$lang['wttodaysay']}"; } if($var['lockopen']){ while(discuz_process::islocked('dsu_paulsign', 5)) usleep(100000); } $credit = mt_rand($var['mincredit'],$var['maxcredit']); if(in_array($groupid, unserialize($var['jlxgroups'])) && $var['jlx'] !== '0') $credit = $credit * $var['jlx']; if(($tdtime - $qiandaodb['time']) < 86400 && $var['lastedop'] && $qiandaodb['lasted'] !== '0'){ $randlastednum = mt_rand($var['lastednuml'],$var['lastednumh']); $randlastednum = sprintf("%03d", $randlastednum); $randlastednum = '0.'.$randlastednum; $randlastednum = $randlastednum * $qiandaodb['lasted']; $credit = round($credit*(1+$randlastednum)); } $num = C::t('#dsu_paulsign#dsu_paulsign')->getcount('time', $tdtime, '>='); if(!$qiandaodb['uid']) C::t('#dsu_paulsign#dsu_paulsign')->insert(array('uid'=>$uid,'time'=>$_G['timestamp'])); $islast = ($tdtime - $qiandaodb['time']) < 86400 && $var['lastedop'] ? TRUE : FALSE; C::t('#dsu_paulsign#dsu_paulsign')->update_signdata($uid, $mood, $todaysay, $credit, $islast); if($ifreward) updatemembercount($uid, array($var['nrcredit'] => $credit)); $another_vip = ''; if(@include_once DISCUZ_ROOT.'./source/plugin/dsu_kkvip/extend/sign.api.php'){ if($rewarddays || $growupnum) $another_vip=lang('plugin/dsu_paulsign', 'another_vip', array('rewarddays' => intval($rewarddays), 'growupnum' => intval($growupnum))); } require_once libfile('function/post'); require_once libfile('function/forum'); if($signmode == 1){ if($var['sync_say'] && $_GET['qdmode'] =='1') { $setarr = array( 'uid' => $uid, 'username' => $username, 'dateline' => $_G['timestamp'], 'message' => $todaysay.$lang['fromsign'], 'ip' => $_G['clientip'], 'status' => 0, ); $doid = C::t('home_doing')->insert($setarr, 1); $setarr2 = array( 'appid' => '', 'icon' => 'doing', 'uid' => $uid, 'username' => $username, 'dateline' => $_G['timestamp'], 'title_template' => lang('feed', 'feed_doing_title'), 'title_data' => daddslashes(serialize(dstripslashes(array('message'=>$todaysay.$lang['fromsign'])))), 'body_template' => '', 'body_data' => '', 'id' => $doid, 'idtype' => 'doid' ); C::t('home_doing')->insert($setarr2, 1); } if($var['sync_follow'] && $_GET['qdmode']=='1' && $_G['setting']['followforumid']) { $tofid = $_G['setting']['followforumid']; $thread_param = array( 'isgroup' => '0', 'status' => '512', 'closed' => '1', 'highlight' => '1', 'moderated' => '1', 'attachment' => '0', 'special' => '0', 'digest' => '0', 'displayorder' => '0', 'lastposter' => $username, 'lastpost' => $_G['timestamp'], 'dateline' => $_G['timestamp'], 'subject' => $todaysay, 'authorid' => $uid, 'author' => $username, 'sortid' => '0', 'typeid' => '0', 'price' => '0', 'readperm' => '0', 'posttableid' => '0', 'fid' => $tofid ); $synctid = C::t('forum_thread')->insert($thread_param, true); $syncpid = insertpost(array('fid' => $tofid,'tid' => $synctid,'first' => '1','author' => $username,'authorid' => $uid,'subject' => $todaysay,'dateline' => $_G['timestamp'],'message' => $todaysay,'useip' => $_G['clientip'],'invisible' => '0','anonymous' => '0','usesig' => '0','htmlon' => '0','bbcodeoff' => '0','smileyoff' => '0','parseurloff' => '0','attachment' => '0')); updatepostcredits('+', $uid, 'post', $_G['setting']['followforumid']); updateforumcount($_G['setting']['followforumid']); $feedcontent = array( 'tid' => $synctid, 'content' => $todaysay, ); C::t('forum_threadpreview')->insert($feedcontent); $followfeed = array( 'uid' => $uid, 'username' => $username, 'tid' => $synctid, 'note' => '', 'dateline' => TIMESTAMP ); C::t('home_follow_feed')->insert($followfeed, true); C::t('common_member_count')->increase($uid, array('feeds'=>1)); } if($var['sync_sign'] && $_G['group']['maxsigsize']) { $signhtml = cutstr(strip_tags($todaysay.$lang['fromsign']), $_G['group']['maxsigsize']); C::t('common_member_field_forum')->update($uid, array('sightml' => $signhtml)); } } $extreward = explode("/hhf/", str_replace(array("\r\n", "\n", "\r"), '/hhf/', $var['jlmain'])); $extreward_num = count($extreward); if($num <= ($extreward_num - 1) ) { list($exacr,$exacz) = explode("|", $extreward[$num]); $psc = $num+1; if($exacr && $exacz && $ifreward) updatemembercount($uid, array($exacr => $exacz)); } $stats = C::t('#dsu_paulsign#dsu_paulsignset')->fetch('1'); if($var['qdtype'] == '2') { $thread = C::t('forum_thread')->fetch($var['tidnumber']); $hft = dgmdate($_G['timestamp'], 'Y-m-d H:i',$var['tos']); if($num >=0 && ($num <= ($extreward_num - 1)) && $exacr && $exacz) { $message = "[quote][size=2][color=gray][color=teal] [/color][color=gray]{$lang[tsn_01]}[/color] [color=darkorange]{$hft}[/color] {$lang[tsn_02]}[color=red]{$lang[tsn_03]}[/color][color=darkorange]{$lang[tsn_04]}{$psc}{$lang[tsn_05]}[/color]{$lang[tsn_06]} [/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][title]} [/color][color=darkorange]{$credit}[/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][unit]}[/color][color=gray]{$lang[tsn_17]}[/color] [color=gray]{$_G[setting][extcredits][$exacr][title]} [/color][color=darkorange]{$exacz}[/color][color=gray]{$_G[setting][extcredits][$exacr][unit]}.{$another_vip}[/color][/color][/size][/quote][size=3][color=dimgray]{$lang[tsn_07]}[color=red]{$todaysay}[/color]{$lang[tsn_08]}[/color][/size]"; } else { $message = "[quote][size=2][color=gray][color=teal] [/color][color=gray]{$lang[tsn_01]}[/color] [color=darkorange]{$hft}[/color] {$lang[tsn_09]}{$lang[tsn_06]} [/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][title]} [/color][color=darkorange]{$credit} [/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][unit]}.{$another_vip}[/color][/size][/quote][size=3][color=dimgray]{$lang[tsn_07]}[color=red]{$todaysay}[/color]{$lang[tsn_08]}[/color][/size]"; } $pid = insertpost(array('fid' => $thread['fid'],'tid' => $var['tidnumber'],'first' => '0','author' => $username,'authorid' => $uid,'subject' => '','dateline' => $_G['timestamp'],'message' => $message,'useip' => $_G['clientip'],'invisible' => '0','anonymous' => '0','usesig' => '0','htmlon' => '0','bbcodeoff' => '0','smileyoff' => '0','parseurloff' => '0','attachment' => '0')); C::t('forum_thread')->update($var['tidnumber'], array('lastposter'=>$username,'lastpost'=>$_G['timestamp'])); C::t('forum_thread')->increase($var['tidnumber'], array('replies'=>1)); updatepostcredits('+', $uid, 'reply', $thread['fid']); $lastpost = "$thread[tid]\t".addslashes($thread['subject'])."\t$_G[timestamp]\t$username"; C::t('forum_forum')->update($thread['fid'], array('lastpost' => $lastpost)); C::t('forum_forum')->update_forum_counter($thread['fid'], 0, 1, 1); $tidnumber = $var['tidnumber']; } elseif($var['qdtype'] == '3') { if($num=='0' || $stats['qdtidnumber'] == '0') { $subject=str_replace(array('{m}','{d}','{y}','{bbname}','{author}'),array(dgmdate($_G['timestamp'], 'n',$var['tos']),dgmdate($_G['timestamp'], 'j',$var['tos']),dgmdate($_G['timestamp'], 'Y',$var['tos']),$_G['setting']['bbname'],$username),$var['title_thread']); $hft = dgmdate($_G['timestamp'], 'Y-m-d H:i',$var['tos']); if($exacr && $exacz) { $message = "[quote][size=2][color=dimgray]{$lang[tsn_10]}[/color][url={$_G[siteurl]}plugin.php?id=dsu_paulsign:sign][color=darkorange]{$lang[tsn_11]}[/color][/url][color=dimgray]{$lang[tsn_12]}[/color][/size][/quote][quote][size=2][color=gray][color=teal] [/color][color=gray]{$lang[tsn_01]}[/color] [color=darkorange]{$hft}[/color] {$lang[tsn_02]}[color=red]{$lang[tsn_03]}[/color][color=darkorange]{$lang[tsn_04]}{$lang[tsn_13]}{$lang[tsn_05]}[/color]{$lang[tsn_06]} [/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][title]} [/color][color=darkorange]{$credit}[/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][unit]}[/color][color=gray]{$lang[tsn_17]}[/color] [color=gray]{$_G[setting][extcredits][$exacr][title]} [/color][color=darkorange]{$exacz}[/color][color=gray]{$_G[setting][extcredits][$exacr][unit]}.{$another_vip}[/color][/color][/size][/quote][size=3][color=dimgray]{$lang[tsn_07]}[color=red]{$todaysay}[/color]{$lang[tsn_08]}[/color][/size]"; } else { $message = "[quote][size=2][color=dimgray]{$lang[tsn_10]}[/color][url={$_G[siteurl]}plugin.php?id=dsu_paulsign:sign][color=darkorange]{$lang[tsn_11]}[/color][/url][color=dimgray]{$lang[tsn_12]}[/color][/size][/quote][quote][size=2][color=gray][color=teal] [/color][color=gray]{$lang[tsn_01]}[/color] [color=darkorange]{$hft}[/color] {$lang[tsn_02]}[color=red]{$lang[tsn_03]}[/color][color=darkorange]{$lang[tsn_04]}{$lang[tsn_13]}{$lang[tsn_05]}[/color]{$lang[tsn_06]} [/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][title]} [/color][color=darkorange]{$credit}[/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][unit]}.{$another_vip}[/color][/color][/size][/quote][size=3][color=dimgray]{$lang[tsn_07]}[color=red]{$todaysay}[/color]{$lang[tsn_08]}[/color][/size]"; } $thread_param = array( 'isgroup' => '0', 'status' => '0', 'closed' => '1', 'highlight' => '1', 'moderated' => '1', 'attachment' => '0', 'special' => '0', 'digest' => '0', 'displayorder' => '0', 'lastposter' => $username, 'lastpost' => $_G['timestamp'], 'dateline' => $_G['timestamp'], 'subject' => $subject, 'authorid' => $uid, 'author' => $username, 'sortid' => '0', 'typeid' => $var['qdtypeid'], 'price' => '0', 'readperm' => '0', 'posttableid' => '0', 'fid' => $var['fidnumber'] ); $tid = C::t('forum_thread')->insert($thread_param, true); C::t('#dsu_paulsign#dsu_paulsignset')->update('1', array('qdtidnumber'=>$tid)); $pid = insertpost(array('fid' => $var['fidnumber'],'tid' => $tid,'first' => '1','author' => $username,'authorid' => $uid,'subject' => $subject,'dateline' => $_G['timestamp'],'message' => $message,'useip' => $_G['clientip'],'invisible' => '0','anonymous' => '0','usesig' => '0','htmlon' => '0','bbcodeoff' => '0','smileyoff' => '0','parseurloff' => '0','attachment' => '0',)); $expiration = $_G['timestamp'] + 86400; $threadmod_param1 = array( 'tid' => $tid, 'uid' => $uid, 'username' => $username, 'dateline' => $_G['timestamp'], 'action' => 'EHL', 'expiration' => $expiration, 'status' => '1' ); $threadmod_param2 = array( 'tid' => $tid, 'uid' => $uid, 'username' => $username, 'dateline' => $_G['timestamp'], 'action' => 'CLS', 'expiration' => '0', 'status' => '1' ); C::t('forum_threadmod')->insert($threadmod_param1); C::t('forum_threadmod')->insert($threadmod_param2); updatepostcredits('+', $uid, 'post', $var['fidnumber']); $lastpost = "$tid\t".addslashes($subject)."\t$_G[timestamp]\t$username"; C::t('forum_forum')->update($var['fidnumber'], array('lastpost' => $lastpost)); C::t('forum_forum')->update_forum_counter($var['fidnumber'], 1, 1, 1); $tidnumber = $tid; } else { $tidnumber = $stats['qdtidnumber']; $thread = C::t('forum_thread')->fetch($tidnumber); $hft = dgmdate($_G['timestamp'], 'Y-m-d H:i',$var['tos']); if($num >=1 && ($num <= ($extreward_num - 1)) && $exacr && $exacz) { $message = "[quote][size=2][color=gray][color=teal] [/color][color=gray]{$lang[tsn_01]}[/color] [color=darkorange]{$hft}[/color] {$lang[tsn_02]}[color=red]{$lang[tsn_03]}[/color][color=darkorange]{$lang[tsn_04]}{$psc}{$lang[tsn_05]}[/color]{$lang[tsn_06]} [/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][title]} [/color][color=darkorange]{$credit}[/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][unit]}[/color][color=gray]{$lang[tsn_17]}[/color] [color=gray]{$_G[setting][extcredits][$exacr][title]} [/color][color=darkorange]{$exacz}[/color][color=gray]{$_G[setting][extcredits][$exacr][unit]}[/color][/color][/size][/quote][size=3][color=dimgray]{$lang[tsn_07]}[color=red]{$todaysay}[/color]{$lang[tsn_08]}[/color][/size]"; } else { $message = "[quote][size=2][color=gray][color=teal] [/color][color=gray]{$lang[tsn_01]}[/color] [color=darkorange]{$hft}[/color] {$lang[tsn_09]}{$lang[tsn_06]} [/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][title]} [/color][color=darkorange]{$credit} [/color][color=gray]{$_G[setting][extcredits][$var[nrcredit]][unit]}[/color][/size][/quote][size=3][color=dimgray]{$lang[tsn_07]}[color=red]{$todaysay}[/color]{$lang[tsn_08]}[/color][/size]"; } $pid = insertpost(array('fid' => $var['fidnumber'],'tid' => $tidnumber,'first' => '0','author' => $username,'authorid' => $uid,'subject' => '','dateline' => $_G['timestamp'],'message' => $message,'useip' => $_G['clientip'],'invisible' => '0','anonymous' => '0','usesig' => '0','htmlon' => '0','bbcodeoff' => '0','smileyoff' => '0','parseurloff' => '0','attachment' => '0',)); C::t('forum_thread')->update($tidnumber, array('lastposter'=>$username,'lastpost'=>$_G['timestamp'])); C::t('forum_thread')->increase($tidnumber, array('replies'=>1)); updatepostcredits('+', $uid, 'reply', $var['fidnumber']); $lastpost = "$tidnumber\t".addslashes($thread['subject'])."\t$_G[timestamp]\t$username"; C::t('forum_forum')->update($var['fidnumber'], array('lastpost' => $lastpost)); C::t('forum_forum')->update_forum_counter($var['fidnumber'], 0, 1, 1); } } if(memory('check')) memory('set', 'dsu_pualsign_'.$uid, $_G['timestamp'], 86400); if($num ==0) { if($stats['todayq'] > $stats['highestq']) C::t('#dsu_paulsign#dsu_paulsignset')->update('1', array('highestq'=>$stats['todayq'])); include_once libfile('function/stat'); updatestat('paulsign'); C::t('#dsu_paulsign#dsu_paulsignset')->update('1', array('yesterdayq'=>$stats['todayq'],'todayq'=>'1')); C::t('#dsu_paulsign#dsu_paulsignemot')->clearcount(); } else { C::t('#dsu_paulsign#dsu_paulsignset')->increase_todayq(); } C::t('#dsu_paulsign#dsu_paulsignemot')->updatebyqdxq($mood); if($var['lockopen']) discuz_process::unlock('dsu_paulsign'); if($var['tzopen']) { if($exacr && $exacz) { return paulsign_result($signmode, "{$lang[tsn_14]}{$lang[tsn_03]}{$lang[tsn_04]}{$psc}{$lang[tsn_15]}{$lang[tsn_06]} {$_G[setting][extcredits][$var[nrcredit]][title]} {$credit} {$_G[setting][extcredits][$var[nrcredit]][unit]} {$lang[tsn_16]} {$_G[setting][extcredits][$exacr][title]} {$exacz} {$_G[setting][extcredits][$exacr][unit]}.".$another_vip,"forum.php?mod=redirect&tid={$tidnumber}&goto=lastpost#lastpost"); } else { return paulsign_result($signmode, "{$lang[tsn_18]} {$_G[setting][extcredits][$var[nrcredit]][title]} {$credit} {$_G[setting][extcredits][$var[nrcredit]][unit]}.".$another_vip,"forum.php?mod=redirect&tid={$tidnumber}&goto=lastpost#lastpost"); } } else { if($exacr && $exacz) { return paulsign_result($signmode, "{$lang[tsn_14]}{$lang[tsn_03]}{$lang[tsn_04]}{$psc}{$lang[tsn_15]}{$lang[tsn_06]} {$_G[setting][extcredits][$var[nrcredit]][title]} {$credit} {$_G[setting][extcredits][$var[nrcredit]][unit]} {$lang[tsn_16]} {$_G[setting][extcredits][$exacr][title]} {$exacz} {$_G[setting][extcredits][$exacr][unit]}.".$another_vip,"plugin.php?id=dsu_paulsign:sign"); } else { return paulsign_result($signmode, "{$lang[tsn_18]} {$_G[setting][extcredits][$var[nrcredit]][title]} {$credit} {$_G[setting][extcredits][$var[nrcredit]][unit]}.".$another_vip,"plugin.php?id=dsu_paulsign:sign"); } } } function paulsign_result($signmode, $msg, $treferer = ''){ global $_G; if($signmode == 1){ if(defined('IN_MOBILE')) { include template('dsu_paulsign:float'); dexit(); }else{ include template('dsu_paulsign:float'); dexit(); } }else{ return $msg; } } ?>