function update($uploaddb) { $fieldService = L::loadClass('ActivityField', 'activity'); if ($this->tid) { $defaultAttach = $userAttach = array(); foreach ($uploaddb as $key => $value) { if ($value['id']) { $attach = array(); $attach = $fieldService->getField($value['id']); $this->attachs[$attach['fieldname']] = $value['fileuploadurl']; if ($attach['fieldname'] && $attach['ifdel'] == 1) { $userAttach[$attach['fieldname']] = $value['fileuploadurl']; } elseif ($attach['fieldname'] && !$attach['ifdel']) { $defaultAttach[$attach['fieldname']] = $value['fileuploadurl']; } } } $defaultValueTableName = getActivityValueTableNameByActmid(); $userDefinedValueTableName = getActivityValueTableNameByActmid($this->actmid, 1, 1); if ($defaultAttach) { $this->db->update("UPDATE {$defaultValueTableName} SET " . S::sqlSingle($defaultAttach) . " WHERE tid=" . S::sqlEscape($this->tid)); } if ($userAttach) { $this->db->update("UPDATE {$userDefinedValueTableName} SET " . S::sqlSingle($userAttach) . " WHERE tid=" . S::sqlEscape($this->tid)); } } else { foreach ($uploaddb as $key => $value) { $this->attachs['fileuploadurl'] = $value['fileuploadurl']; } } return true; }
$memberdb = $db->get_one("SELECT am.ifpay,am.isrefund,am.username,am.totalcash,am.out_trade_no,am.refundcost,t.authorid FROM pw_activitymembers am LEFT JOIN pw_threads t USING(tid) WHERE am.actuid=" . S::sqlEscape($actuid)); $tempcost = $db->get_value("SELECT SUM(totalcash) as sum FROM pw_activitymembers WHERE isrefund=1 AND fupid=" . S::sqlEscape($actuid)); //已退费用 if ($memberdb['isrefund'] || $memberdb['authorid'] != $winduid) { //退款交易无法操作、不是发起人无法操作 Showmsg('act_refund_noright'); } $memberdb['ifpay'] != 1 && Showmsg('act_refund_error'); //支付宝支付成功才能退款 if (!$memberdb['refundcost'] || !preg_match("/^(([1-9]\\d*)|0)(\\.\\d{0,2})?\$/", $memberdb['refundcost']) || $memberdb['refundcost'] > number_format($memberdb['totalcash'] - $tempcost, 2, '.', '')) { //费用错误、超出剩余费用 Showmsg('act_refund_cash_error'); } $refundcost = number_format($memberdb['refundcost'], 2, '.', ''); //退款金额 $defaultValueTableName = getActivityValueTableNameByActmid(); $defaultValue = $db->get_one("SELECT user_id,paymethod,endtime FROM {$defaultValueTableName} WHERE tid=" . S::sqlEscape($tid)); $defaultValue['endtime'] + 30 * 86400 < $timestamp && Showmsg('act_endtime_toolong'); //结束时间后一个月,>0 则可以操作,< 0无法操作 $defaultValue['paymethod'] != 1 && Showmsg('act_toalipay_paymethod'); //支付宝支付才能退款 $param = array('out_trade_no' => $memberdb['out_trade_no'], 'operator_id' => $defaultValue['user_id'], 'refund_fee' => $refundcost, 'notify_url' => "{$db_bbsurl}/act_alipay_receive.php", 'return_url' => "{$db_bbsurl}/read.php?tid={$tid}"); ObHeader($AlipayInterface->alipayurl($param)); } /** * 生成随机码 * @param int $len 位数 * @param string 随机串 */ function generatestr($len) {
/** * 将活动帖子的数据删除 * @param array $activityDb 帖子数据,形入array(tid, tid) */ function _delActivityTopic($activityDb) { global $db; $defaultValueTableName = getActivityValueTableNameByActmid(); $newActivityDb = array(); $query = $db->query("SELECT actmid,tid FROM {$defaultValueTableName} WHERE tid IN(" . S::sqlImplode($activityDb) . ")"); while ($rt = $db->fetch_array($query)) { $newActivityDb[$rt['actmid']][] = $rt['tid']; } /*帖子被删除费用日志更新*/ L::loadClass('ActivityForBbs', 'activity', false); $postActForBbs = new PW_ActivityForBbs($data); $data = array(); /*帖子被删除费用日志更新*/ foreach ($newActivityDb as $key => $value) { $tids = S::sqlImplode($value); $userDefinedValueTableName = getActivityValueTableNameByActmid($key, 1, 1); $db->update("DELETE FROM {$defaultValueTableName} WHERE tid IN({$tids})"); $db->update("DELETE FROM {$userDefinedValueTableName} WHERE tid IN({$tids})"); $db->update("DELETE FROM pw_activitymembers WHERE tid IN({$tids})"); /*帖子被删除费用日志更新*/ $postActForBbs->UpdatePayLog($value, 0, 4); /*帖子被删除费用日志更新*/ /*帖子被删除发送站内信*/ $postActForBbs->activityDelSendmsg($value); /*帖子被删除发送站内信*/ } }
/** * 删除活动子分类的相关数据 * @param int $actmid * @global DB */ function deleteTopicAndModelDataByActmid($actmid) { global $db; //删除子分类 $db->update("DELETE FROM pw_activitymodel WHERE actmid=" . S::sqlEscape($actmid)); //删除子分类字段 $db->update("DELETE FROM pw_activityfield WHERE actmid=" . S::sqlEscape($actmid)); $userDefinedValueTableName = getActivityValueTableNameByActmid($actmid, 1, 1); //删除子分类帖子数据 $query = $db->query("SELECT tid FROM {$userDefinedValueTableName}"); while ($rt = $db->fetch_array($query)) { $tids[] = $rt['tid']; } $delarticle = L::loadClass('DelArticle', 'forum'); $delarticle->delTopicByTids($tids); //删除子分类自定义表 $db->query("DROP TABLE IF EXISTS {$userDefinedValueTableName}"); //删除子分类默认字段数据 $defaultValueTableName = getActivityValueTableNameByActmid(); $db->update("DELETE FROM {$defaultValueTableName} WHERE actmid=" . S::sqlEscape($actmid)); }
/** * 数据交互 * @param int $tid 帖子id * @param int $actmid 活动二级分类id * @return '' */ function pushActivityToAppCenter($tid, $actmid) { global $db_siteid, $db_siteownerid, $db_sitehash, $db_bbsurl, $db_bbsname, $db_charset; $defaultValueTableName = getActivityValueTableNameByActmid(); $this->db->update("UPDATE {$defaultValueTableName} SET pushtime=" . S::sqlEscape($this->timestamp) . " WHERE tid=" . S::sqlEscape($tid)); $i = $payMemberNums = $orderMemberNums = $payMemberCosts = $orderMemberCosts = $payRefundCouts = 0; $query = $this->db->query("SELECT am.tid,am.fupid,am.isrefund,am.ifpay,am.totalcash,am.signupnum,t.subject,t.authorid,t.author,t.postdate FROM pw_activitymembers am LEFT JOIN pw_threads t ON am.tid=t.tid WHERE am.tid=" . S::sqlEscape($tid)); while ($rt = $this->db->fetch_array($query)) { if ($rt['ifpay'] != 3 && $rt['fupid'] == 0) { //费用关闭的不算 $orderMemberNums += $rt['signupnum']; //已报名人数 } if ($rt['ifpay'] != 3 && $rt['isrefund'] == 0) { //费用关闭的不算 $orderMemberCosts += $rt['totalcash']; //涉及费用 } if ($rt['ifpay'] != 0 && $rt['ifpay'] != 3 && $rt['fupid'] == 0) { //自己支付1、确认支付2、费用退完4 $payMemberNums += $rt['signupnum']; //已经付款的人数 } if ($rt['ifpay'] != 0 && $rt['ifpay'] != 3 && $rt['isrefund'] == 0) { //自己支付1、确认支付2、费用退完4 $payMemberTempCosts += $rt['totalcash']; //已支付费用 } if ($rt['isrefund'] == 1) { $payRefundCouts += $rt['totalcash']; //退款费用 } if ($i == 0) { $tid = $rt['tid']; $subject = $rt['subject']; $authorid = $rt['authorid']; $author = $rt['author']; $postdate = $rt['postdate']; } } if ($orderMemberNums) { //有人报名才更新 $author = pwConvert($author, 'gbk', $db_charset); $subject = pwConvert($subject, 'gbk', $db_charset); $acttype = pwConvert($this->activitymodeldb[$actmid]['name'], 'gbk', $db_charset); $db_bbsname = pwConvert($db_bbsname, 'gbk', $db_charset); $partner = md5($db_siteid . $db_siteownerid); $payMemberCosts = $payMemberTempCosts - $payRefundCouts; //已支付费用 $para = array('tid' => $tid, 'subject' => $subject, 'authorid' => $authorid, 'author' => $author, 'postdate' => $postdate, 'acttype' => $acttype, 'ordermembernums' => $orderMemberNums, 'ordermembercosts' => $orderMemberCosts, 'paymembernums' => $payMemberNums, 'paymembercosts' => $payMemberCosts, 'sitehash' => $db_sitehash, 'bbsurl' => $db_bbsurl, 'bbsname' => $db_bbsname); ksort($para); reset($para); $arg = ''; foreach ($para as $key => $value) { $arg .= "{$key}={$value}&"; $url .= "{$key}=" . urlencode($value) . "&"; } $sign = md5(substr($arg, 0, -1) . $partner); $url .= 'sign=' . $sign; require_once R_P . 'require/posthost.php'; PostHost("http://stats.phpwind.com/api.php?m=app&job=alipayaa", $url, "POST"); } }
/** * 查询单笔订单 * @param int $tid 帖子id * @param int $actmid 二级分类id * @return string T * @access private */ function query_aa_detail_payment($tid, $actuid) { global $timestamp; require_once R_P . 'lib/activity/alipay.php'; $AlipayInterface = new AlipayInterface('query_aa_detail_payment'); $defaultValueTableName = getActivityValueTableNameByActmid(); $batch_no = $this->db->get_value("SELECT batch_no FROM {$defaultValueTableName} WHERE tid=" . S::sqlEscape($tid)); //AA外部活动号 $memberdb = $this->db->get_one("SELECT out_trade_no,batch_detail_no FROM pw_activitymembers WHERE actuid=" . S::sqlEscape($actuid)); //AA订单号 $param = array('batch_no' => $batch_no, 'out_trade_no' => $memberdb['out_trade_no'], 'batch_detail_no' => $memberdb['batch_detail_no']); require_once R_P . 'require/posthost.php'; $returnResult = PostHost($AlipayInterface->alipayurl($param), '', 'POST'); //获取XML值 $xml_parser = xml_parser_create(); xml_parse_into_struct($xml_parser, $returnResult, $arr_vals); xml_parser_free($xml_parser); foreach ($arr_vals as $value) { if ($value['tag'] == 'ERROR') { $error = $value['value']; } elseif ($value['tag'] == 'IS_SUCCESS') { $is_success = $value['value']; } elseif ($value['tag'] == 'SIGN') { $sign = $value['value']; } elseif ($value['tag'] == 'BATCH_DETAIL_NO') { $batch_detail_no = $value['value']; } elseif ($value['tag'] == 'TRADE_STATUS') { $trade_status = $value['value']; } } if ($error) { return $error; } elseif ($is_success == 'T') { $payStatus = array('I' => '0', 'S' => '1', 'C' => '3', 'E' => '1'); $this->db->update("UPDATE pw_activitymembers SET batch_detail_no=" . S::sqlEscape($batch_detail_no) . ",ifpay=" . S::sqlEscape($payStatus[$trade_status]) . " WHERE actuid=" . S::sqlEscape($actuid)); $this->db->update("UPDATE {$defaultValueTableName} SET updatetime=" . S::sqlEscape($timestamp) . " WHERE tid=" . S::sqlEscape($tid)); //报名列表动态时间 return $payStatus[$trade_status]; } }
function getActivityStatusValue($tid) { $activityValue = array(); $defaultValueTableName = getActivityValueTableNameByActmid(); $activityValue = $this->db->get_one("SELECT iscancel,signupstarttime,signupendtime,endtime,starttime,maxparticipant FROM {$defaultValueTableName} dt WHERE dt.tid=" . S::sqlEscape($tid)); $activityStatusKey = $this->getActivityStatusKey($activityValue, $this->timestamp, $this->peopleAlreadySignup($tid)); switch ($activityStatusKey) { case 'activity_is_cancelled': $return = 3; break; case 'signup_is_ended': $return = 2; break; case 'activity_is_ended': $return = 2; break; case 'signup_number_limit_is_reached': case 'signup_is_available': $return = 1; break; default: $return = 0; break; } return $return; }
function RevertActivityTopic($activityDb) { global $db; $defaultValueTableName = getActivityValueTableNameByActmid(); $newActivityDb = array(); $query = $db->query("SELECT actmid,tid FROM {$defaultValueTableName} WHERE tid IN(" . S::sqlImplode($activityDb) . ")"); while ($rt = $db->fetch_array($query)) { $newActivityDb[$rt['actmid']][] = $rt['tid']; } /*支付成功费用流通日志*/ L::loadClass('ActivityForBbs', 'activity', false); $postActForBbs = new PW_ActivityForBbs($data); $data = array(); /*支付成功费用流通日志*/ foreach ($newActivityDb as $key => $value) { $tids = S::sqlImplode($value); $userDefinedValueTableName = getActivityValueTableNameByActmid($key, 1, 1); $db->update("UPDATE {$defaultValueTableName} SET ifrecycle='0' WHERE tid IN({$tids})"); $db->update("UPDATE {$userDefinedValueTableName} SET ifrecycle='0' WHERE tid IN({$tids})"); /*支付成功费用流通日志*/ foreach ($value as $tid) { $statusValue = $postActForBbs->getActivityStatusValue($tid); $postActForBbs->UpdatePayLog($tid, 0, $statusValue); } /*支付成功费用流通日志*/ } }
function parseThread($tpcdb) { global $isGM, $pwSystem, $foruminfo, $forumset, $db_readdir, $viewbbs, $page, $managemode, $imgpath, $stylepath, $db_readperpage, $managecheck, $db_threademotion, $winduid, $db_anonymousname, $modelid, $pcid, $actmid, $timestamp; $this->analyseDataToCache($tpcdb); $pwAnonyHide = $isGM || $pwSystem['anonyhide']; $updatetop = 0; $threaddb = $rewids = $cyids = $replyReward = array(); $arrStatus = array(1 => 'vote', 2 => 'active', 3 => 'reward', 4 => 'trade', 5 => 'debate'); $attachtype = array('1' => 'img', '2' => 'txt', '3' => 'zip'); foreach ($tpcdb as $key => $thread) { $foruminfo['allowhtm'] == 1 && ($htmurl = $db_readdir . '/' . $this->fid . '/' . date('ym', $thread['postdate']) . '/' . $thread['tid'] . '.html'); $thread['tpcurl'] = "read.php?tid={$thread[tid]}{$viewbbs}" . ($page > 1 ? "&fpage={$page}" : ''); if ($managemode == 1) { $thread['tpcurl'] .= '&toread=1'; } elseif (!$foruminfo['cms'] && $foruminfo['allowhtm'] == 1 && file_exists(R_P . $htmurl)) { $thread['tpcurl'] = "{$htmurl}"; } if ($thread['toolfield']) { list($t, $e, $m) = explode(',', $thread['toolfield']); $sqladd = ''; if ($t && $t < $timestamp) { $sqladd .= ",toolinfo='',specialsort=0,topped='0'"; $t = ''; $thread['topped'] > 0 && ($updatetop = 1); } if ($e && $e < $timestamp) { $sqladd .= ",titlefont=''"; $thread['titlefont'] = ''; $e = ''; } if ($m && $m < $timestamp) { $sqladd .= ",specialsort=0"; $m = ''; $kmdService = L::loadClass('kmdservice', 'forum'); $kmdService->initKmdInfoByTid($thread['tid']); } if ($sqladd) { $thread['toolfield'] = implode(',', array(0 => $t, 1 => $e, 2 => $m)); $this->db->update(pwQuery::buildClause("UPDATE :pw_table SET toolfield=:toolfield {$sqladd} WHERE tid=:tid", array('pw_threads', $thread['toolfield'], $thread['tid']))); //* $threads = L::loadClass('Threads', 'forum'); //* $threads->delThreads($thread['tid']); } } $forumset['cutnums'] && ($thread['subject'] = substrs($thread['subject'], $forumset['cutnums'])); $forumset['cutnums'] > 80 && ($thread['subject'] = substrs(str_replace(' ', ' ', $thread['subject']), 80)); if ($thread['titlefont']) { $titledetail = explode("~", $thread['titlefont']); if ($titledetail[0]) { $thread['subject'] = "<font color={$titledetail['0']}>{$thread['subject']}</font>"; } if ($titledetail[1]) { $thread['subject'] = "<b>{$thread['subject']}</b>"; } if ($titledetail[2]) { $thread['subject'] = "<i>{$thread['subject']}</i>"; } if ($titledetail[3]) { $thread['subject'] = "<u>{$thread['subject']}</u>"; } } if ($thread['ifshield']) { $thread['subject'] = threadShield('shield_title'); } if ($thread['ifmark']) { $thread['ifmark'] = $thread['ifmark'] > 0 ? "<span class='gray tpage w'>(+{$thread['ifmark']})</span>" : "<span class='gray tpage w'>({$thread['ifmark']})</span>"; } else { unset($thread['ifmark']); } if (isset($arrStatus[$thread['special']])) { $p_status = $thread['locked'] % 3 == 0 ? $arrStatus[$thread['special']] : $arrStatus[$thread['special']] . 'lock'; } elseif ($thread['locked'] % 3 != 0) { $p_status = $thread['locked'] % 3 == 1 ? 'topiclock' : 'topicclose'; } else { $p_status = $thread['ifmagic'] ? 'magic' : ($thread['replies'] >= 10 ? 'topichot' : 'topicnew'); } if ($thread['special'] == 8 && $p_status == 'topicnew') { //活动帖图标展示 $p_status = 'activity'; } $thread['inspect'] && ($thread['inspect'] = explode("\t", $thread['inspect'])); if ($thread['inspect'] && $thread['inspect'][0] == 0) { $thread['inspect'][0] = '主'; } $thread['tooltip'] = $p_status; $thread['status'] = "<img src=\"{$imgpath}/{$stylepath}/thread/" . $p_status . ".gif\" align=\"absmiddle\">"; if ($thread['special'] == 8 && $p_status == 'activity') { //活动帖图标展示 $thread['status'] = "<img src=\"{$imgpath}/activity/" . $p_status . ".gif\" border=0 align=\"absmiddle\">"; } $thread['topped'] && ($GLOBALS['ifsort'] = 1); $thread['ispage'] = ''; if ($thread['topreplays'] + $thread['replies'] + 1 > $db_readperpage) { $numofpage = ceil(($thread['topreplays'] + $thread['replies'] + 1) / $db_readperpage); $fpage = $page > 1 ? "&fpage={$page}" : ""; $thread['ispage'] = ' '; $thread['ispage'] .= " <img src=\"{$imgpath}/{$stylepath}/file/multipage.gif\" align=\"absmiddle\" alt=\"pages\"> <span class=\"tpage\">"; for ($j = 1; $j <= $numofpage; $j++) { if ($j == 6 && $j + 1 < $numofpage) { $thread['ispage'] .= " .. <a href=\"read.php?tid={$thread['tid']}{$fpage}&page={$numofpage}\">{$numofpage}</a>"; break; } elseif ($j == 1) { $thread['ispage'] .= ""; // $thread['ispage'].=" <a href=\"read.php?tid=$thread[tid]$fpage\">$j</a>"; } else { $thread['ispage'] .= " <a href=\"read.php?tid={$thread['tid']}{$fpage}&page={$j}\">{$j}</a>"; } } $thread['ispage'] .= '</span> '; } $postdetail = explode(",", $thread['lastpost']); if ($thread['ifupload']) { $atype = $attachtype[$thread['ifupload']]; $thread['titleadd'] = " <img src=\"{$imgpath}/{$stylepath}/file/{$atype}.gif\" alt=\"{$atype}\" align=\"absmiddle\">"; } else { $thread['titleadd'] = ""; } /*if ($managecheck) { if ($thread['fid'] == $this->fid) { $thread['adminbox'] = "<input type=\"checkbox\" autocomplete=\"off\" name=\"tidarray[]\" id=tid_{$thread[tid]} value=\"$thread[tid]\" onclick=\"postManage.show('postbatch','a_ajax_{$thread[tid]}')\" />"; } else { $thread['adminbox'] = " "; } }*/ if ($db_threademotion) { if ($thread['icon'] == "R" || !$thread['icon']) { $thread['useriocn'] = ''; } else { $thread['useriocn'] = "<img src=\"{$imgpath}/post/emotion/{$thread['icon']}.gif\" alt=\"{$thread['icon']}\" align=\"absmiddle\"> "; } } if ($thread['anonymous'] && $thread['authorid'] != $winduid && !$pwAnonyHide) { $thread['author'] = $db_anonymousname; $thread['authorid'] = 0; } if ($thread['special'] == 3 && $thread['state'] < 1) { $rewids[] = $thread['tid']; } //获取分类信息的帖子id if ($modelid > 0) { $topicids[] = $thread['tid']; } //获取团购的帖子id if ($pcid > 0) { $postcatepcids[] = $thread['tid']; } //获取活动的帖子id if ($actmid > 0 || $thread['special'] == 8) { $activitytiddb[] = $thread['tid']; } if (getstatus($thread['tpcstatus'], 1)) { $cyids[] = $thread['tid']; } if (getstatus($thread['tpcstatus'], 8)) { $replyReward[] = $thread['tid']; } $threaddb[$thread['tid']] = $thread; } if ($rewids) { $rewids = S::sqlImplode($rewids); $query = $this->db->query("SELECT tid,cbval,caval FROM pw_reward WHERE tid IN({$rewids})"); while ($rt = $this->db->fetch_array($query)) { $threaddb[$rt['tid']]['rewcredit'] = $rt['cbval'] + $rt['caval']; } } if ($cyids && !$cyid) { $query = $this->db->query("SELECT a.tid,a.cyid,c.cname FROM pw_argument a LEFT JOIN pw_colonys c ON a.cyid=c.id WHERE tid IN (" . S::sqlImplode($cyids) . ')'); while ($rt = $this->db->fetch_array($query)) { $threaddb[$rt['tid']]['colony'] = $rt; } } if ($topicids) { $topicvaluetable = GetTopcitable($modelid); $query = $this->db->query("SELECT * FROM {$topicvaluetable} WHERE tid IN (" . S::sqlImplode($topicids) . ")"); while ($rt = $this->db->fetch_array($query)) { $threaddb[$rt['tid']]['topic'] = $rt; } } if ($postcatepcids) { //团购 $pcvaluetable = GetPcatetable($pcid); $query = $this->db->query("SELECT * FROM {$pcvaluetable} WHERE tid IN (" . S::sqlImplode($postcatepcids) . ")"); while ($rt = $this->db->fetch_array($query)) { $threaddb[$rt['tid']]['topic'] = $rt; } } if ($activitytiddb) { //活动 global $threadshowfield, $postActForBbs; $defaultValueTableName = getActivityValueTableNameByActmid(); if ($actmid) { $userDefinedValueTableName = getActivityValueTableNameByActmid($actmid, 1, 1); $query = $this->db->query("SELECT actmid,recommend,starttime,endtime,location,contact,telephone,picture1,picture2,picture3,picture4,picture5,signupstarttime,signupendtime,minparticipant,maxparticipant,userlimit,specificuserlimit,genderlimit,fees,feesdetail,paymethod,ut.* FROM {$defaultValueTableName} dt LEFT JOIN {$userDefinedValueTableName} ut USING(tid) WHERE dt.tid IN(" . S::sqlImplode($activitytiddb) . ")"); } else { $query = $this->db->query("SELECT * FROM {$defaultValueTableName} WHERE tid IN(" . S::sqlImplode($activitytiddb) . ")"); } while ($rt = $this->db->fetch_array($query)) { if ($rt['recommend'] == 1) { $threaddb[$rt['tid']]['recommendadd'] = " <img src=\"{$imgpath}/activity/actrecommend.gif\" border=0 align=\"absmiddle\" title=\"" . getLangInfo('other', 'act_recommend') . "\">"; } else { $threaddb[$rt['tid']]['recommendadd'] = ""; } if ($threadshowfield) { foreach ($threadshowfield as $key => $column) { $i = 0; $columnHtml = ''; foreach ($column as $field) { // 如人数限制值为0,视为空 if (in_array($field['fieldname'], array('minparticipant', 'maxparticipant')) && $rt[$field['fieldname']] == 0) { $rt[$field['fieldname']] = ''; } if ($rt[$field['fieldname']] !== '') { $names = $postActForBbs->getNamePartsByName($field['name']); if ($i != 0) { $columnHtml .= ' ' . $names[0]; } $columnHtml .= $names[1] . ' '; $fieldValueHtml = $postActForBbs->getThreadFieldValueHtml($field['type'], $rt[$field['fieldname']], $field['rules'], $field['fieldname']); $columnHtml .= $fieldValueHtml; $columnHtml .= $names[2]; $columnHtml = trim($columnHtml); } $i++; } $threaddb[$rt['tid']]['topic'][$key] = $columnHtml ? $columnHtml : ''; } } } } if ($replyReward) { $replyRewardService = L::loadClass('ReplyReward', 'forum'); /* @var $replyRewardService PW_ReplyReward */ $replyRewardInfos = $replyRewardService->getRewardByTids($replyReward); foreach ($replyRewardInfos as $value) { $threaddb[$value['tid']]['replyrewardtip'] = '[回帖奖励' . intval($value['creditnum'] * $value['lefttimes']) . ']'; } } if ($updatetop) { require_once R_P . 'require/updateforum.php'; updatetop(); } return $threaddb; }