0 ? $setconfig['perpage_mobile'] : 10; $this->setconfig = $setconfig; } function deletethread($value) { global $_G; $setconfig = $this->setconfig; if($value['step'] == 'delete'){ list($tids, $membercount, $credit, $ponly) = $value['param']; require_once libfile('function/common', 'plugin/replyfloor'); if($setconfig['get_credit']) { require_once libfile('function/post'); require_once libfile('function/forum'); $wherearr = array(); $wherearr[] = 'tid in ('.dimplode($tids).')'; $wherearr[] = "status = '0'"; $recordlist = DB::fetch_all('SELECT * FROM '.DB::table('plugin_replyfloor_message').($wherearr ? ' WHERE '.implode(' AND ', $wherearr) : '')); foreach ($recordlist as $value) { $thread = get_thread_by_tid($value['tid']); updatepostcredits('-', $value['uid'], 'reply', $thread['fid']); } } replyfloor_deletemessage($ids, 'tid', $setconfig['open_recycle']); } } function deletepost($value) { global $_G; $setconfig = $this->setconfig; if($value['step'] == 'delete'){ list($ids, $idtype, $credit, $posttableid, $recycle) = $value['param']; require_once libfile('function/common', 'plugin/replyfloor'); if($idtype == 'pid') { if($setconfig['get_credit']) { require_once libfile('function/post'); require_once libfile('function/forum'); $wherearr = array(); $wherearr[] = 'pid in ('.dimplode($ids).')'; $wherearr[] = "status = '0'"; $recordlist = DB::fetch_all('SELECT * FROM '.DB::table('plugin_replyfloor_message').($wherearr ? ' WHERE '.implode(' AND ', $wherearr) : '')); foreach ($recordlist as $value) { $thread = get_thread_by_tid($value['tid']); updatepostcredits('-', $value['uid'], 'reply', $thread['fid']); } } replyfloor_deletemessage($ids, 'pid', $setconfig['open_recycle']); } elseif($idtype == 'tid') { if($setconfig['get_credit']) { require_once libfile('function/post'); require_once libfile('function/forum'); $wherearr = array(); $wherearr[] = 'tid in ('.dimplode($ids).')'; $wherearr[] = "status = '0'"; $recordlist = DB::fetch_all('SELECT * FROM '.DB::table('plugin_replyfloor_message').($wherearr ? ' WHERE '.implode(' AND ', $wherearr) : '')); foreach ($recordlist as $value) { $thread = get_thread_by_tid($value['tid']); updatepostcredits('-', $value['uid'], 'reply', $thread['fid']); } } replyfloor_deletemessage($ids, 'tid', $setconfig['open_recycle']); } elseif($idtype == 'authorid') { if($setconfig['get_credit']) { require_once libfile('function/post'); require_once libfile('function/forum'); $wherearr = array(); $wherearr[] = 'uid in ('.dimplode($ids).')'; $wherearr[] = "status = '0'"; $recordlist = DB::fetch_all('SELECT * FROM '.DB::table('plugin_replyfloor_message').($wherearr ? ' WHERE '.implode(' AND ', $wherearr) : '')); foreach ($recordlist as $value) { $thread = get_thread_by_tid($value['tid']); updatepostcredits('-', $value['uid'], 'reply', $thread['fid']); } } replyfloor_deletemessage($ids, 'authorid', $setconfig['open_recycle']); } } } } class mobileplugin_replyfloor_forum extends mobileplugin_replyfloor { function forumdisplay_top_mobile_output() { global $_G; $return = ''; $setconfig = $this->setconfig; if($setconfig['allow_forums'] && !in_array($_G['fid'], $setconfig['allow_forums'])){ return $return; } if($setconfig['add_replies']){ $tids = array(); foreach ($_G['forum_threadlist'] as $key => $value) { $tids[] = $value['tid']; } if(empty($tids)){ return $return; } $wherearr = array(); $wherearr[] = 'tid in ('.dimplode($tids).')'; $wherearr[] = "status = '0'"; $recordlist = DB::fetch_all('SELECT tid,count(*) as count FROM '.DB::table('plugin_replyfloor_message').($wherearr ? ' WHERE '.implode(' AND ', $wherearr) : '').' group by tid'); $count = array(); foreach ($recordlist as $value) { $count[$value['tid']] = $value['count']; } foreach ($_G['forum_threadlist'] as &$thread) { if($count[$thread['tid']]){ $thread['allreplies'] += $count[$thread['tid']]; $thread['replies'] += $count[$thread['tid']]; } } } return $return; } function viewthread_top_mobile_output() { global $_G,$allowpostreply; $setconfig = $this->setconfig; $return = ''; if(($setconfig['position_mobile'] > 0) && (!$setconfig['allow_forums'] || in_array($_G['fid'], $setconfig['allow_forums']))){ if($setconfig['add_replies']){ $_G['forum_thread']['allreplies'] += C::t('#'.self::$identifier.'#'.self::$identifier.'_message')->count_by_search_where(array("tid = '".$_G['tid']."'", "status = '0'")); } include template(self::$identifier.':style'); } return $return; } function viewthread_bottom_mobile_output() { global $_G,$allowpostreply; $setconfig = $this->setconfig; $return = ''; if(($setconfig['position_mobile'] > 0) && (!$setconfig['allow_forums'] || in_array($_G['fid'], $setconfig['allow_forums']))){ include template(self::$identifier.':js'); } return $return; } function viewthread_postbottom_mobile_output() { global $_G,$postlist,$postno,$postnostick,$allowpostreply; $setconfig = $this->setconfig; $t = $pids = array(); if($_G['inajax']){ //return $t; } if(($setconfig['position_mobile'] == 1 || $setconfig['position_mobile'] == 2) && (!$setconfig['allow_forums'] || in_array($_G['fid'], $setconfig['allow_forums']))){ foreach($postlist as $key => $post) { if(!$post['first'] || $setconfig['thread_reply']){ $pids[] = $post['pid']; } } if($pids){ if(!$setconfig['order_type']){ $setconfig['order_type'] = empty($_GET['ordertype']) && getstatus($_G['forum_thread']['status'], 4) ? 1 : intval($_GET['ordertype']); } $orderby = 'order by createtime desc'; if($setconfig['order_type'] == 2){ $orderby = 'order by createtime asc'; } $messageinfo = C::t('#'.self::$identifier.'#'.self::$identifier.'_message')->fetch_message_by_pid($pids, $setconfig['perpage_mobile'], $orderby, $setconfig); foreach($postlist as $key => $post) { if($post['first'] && !$setconfig['thread_reply']){ $t[] = ''; }else{ $count = $messageinfo[$post['pid']]['count'] ? $messageinfo[$post['pid']]['count'] : 0; $list = $messageinfo[$post['pid']]['list']; $_GET['ajaxtarget'] = 'replyfloor_content_'.$post['pid']; $multipage = multi($count, $setconfig['perpage_mobile'], 1, 'plugin.php?id=replyfloor:index&tid='.$post['tid'].'&pid='.$post['pid'].($_GET['ordertype'] ? '&ordertype='.$_GET['ordertype'] : ''), 0, 3, false, true); $_GET['ajaxtarget'] = ''; include template(self::$identifier.':viewthread'); if($setconfig['position_mobile'] == 1){ $post['message'] .= $return; $postlist[$key] = $post; }else{ $t[] = $return; } } } } } return $t; } function viewthread_replyfloor_mobile_output() { global $_G,$postlist,$postno,$postnostick,$allowpostreply; $setconfig = $this->setconfig; $t = $pids = array(); if($_G['inajax']){ //return $t; } if(($setconfig['position_mobile'] == 3) && (!$setconfig['allow_forums'] || in_array($_G['fid'], $setconfig['allow_forums']))){ foreach($postlist as $key => $post) { if(!$post['first'] || $setconfig['thread_reply']){ $pids[] = $post['pid']; } } if($pids){ if(!$setconfig['order_type']){ $setconfig['order_type'] = empty($_GET['ordertype']) && getstatus($_G['forum_thread']['status'], 4) ? 1 : intval($_GET['ordertype']); } $orderby = 'order by createtime desc'; if($setconfig['order_type'] == 2){ $orderby = 'order by createtime asc'; } $messageinfo = C::t('#'.self::$identifier.'#'.self::$identifier.'_message')->fetch_message_by_pid($pids, $setconfig['perpage_mobile'], $orderby, $setconfig); foreach($postlist as $key => $post) { if($post['first'] && !$setconfig['thread_reply']){ $t[] = ''; }else{ $count = $messageinfo[$post['pid']]['count'] ? $messageinfo[$post['pid']]['count'] : 0; $list = $messageinfo[$post['pid']]['list']; $_GET['ajaxtarget'] = 'replyfloor_content_'.$post['pid']; $multipage = multi($count, $setconfig['perpage_mobile'], 1, 'plugin.php?id=replyfloor:index&tid='.$post['tid'].'&pid='.$post['pid'].($_GET['ordertype'] ? '&ordertype='.$_GET['ordertype'] : ''), 0, 3, false, true); $_GET['ajaxtarget'] = ''; include template(self::$identifier.':viewthread'); $t[] = $return; } } } } return $t; } } class mobileplugin_replyfloor_group extends mobileplugin_replyfloor { function forumdisplay_top_mobile_output() { global $_G; $return = ''; $setconfig = $this->setconfig; if($setconfig['allow_groups'] && !$this->_allow_groups($_G['forum'], $setconfig['allow_groups'])){ return $return; } if($setconfig['add_replies']){ $tids = array(); foreach ($_G['forum_threadlist'] as $key => $value) { $tids[] = $value['tid']; } if(empty($tids)){ return $return; } $wherearr = array(); $wherearr[] = 'tid in ('.dimplode($tids).')'; $wherearr[] = "status = '0'"; $recordlist = DB::fetch_all('SELECT tid,count(*) as count FROM '.DB::table('plugin_replyfloor_message').($wherearr ? ' WHERE '.implode(' AND ', $wherearr) : '').' group by tid'); $count = array(); foreach ($recordlist as $value) { $count[$value['tid']] = $value['count']; } foreach ($_G['forum_threadlist'] as &$thread) { if($count[$thread['tid']]){ $thread['allreplies'] += $count[$thread['tid']]; } } } return $return; } function viewthread_top_mobile_output() { global $_G,$allowpostreply; $setconfig = $this->setconfig; $return = ''; if(($setconfig['position_mobile'] > 0) && (!$setconfig['allow_groups'] || $this->_allow_groups($_G['forum'], $setconfig['allow_groups']))){ if($setconfig['add_replies']){ $_G['forum_thread']['allreplies'] += C::t('#'.self::$identifier.'#'.self::$identifier.'_message')->count_by_search_where(array("tid = '".$_G['tid']."'", "status = '0'")); } include template(self::$identifier.':style'); } return $return; } function viewthread_bottom_mobile_output() { global $_G,$allowpostreply; $setconfig = $this->setconfig; $return = ''; if(($setconfig['position_mobile'] > 0) && (!$setconfig['allow_groups'] || $this->_allow_groups($_G['forum'], $setconfig['allow_groups']))){ include template(self::$identifier.':js'); } return $return; } function viewthread_postbottom_mobile_output() { global $_G,$postlist,$postno,$postnostick,$allowpostreply; $setconfig = $this->setconfig; $t = $pids = array(); if($_G['inajax']){ //return $t; } if(($setconfig['position_mobile'] == 1 || $setconfig['position_mobile'] == 2) && (!$setconfig['allow_groups'] || $this->_allow_groups($_G['forum'], $setconfig['allow_groups']))){ foreach($postlist as $key => $post) { if(!$post['first'] || $setconfig['thread_reply']){ $pids[] = $post['pid']; } } if($pids){ if(!$setconfig['order_type']){ $setconfig['order_type'] = empty($_GET['ordertype']) && getstatus($_G['forum_thread']['status'], 4) ? 1 : intval($_GET['ordertype']); } $orderby = 'order by createtime desc'; if($setconfig['order_type'] == 2){ $orderby = 'order by createtime asc'; } $messageinfo = C::t('#'.self::$identifier.'#'.self::$identifier.'_message')->fetch_message_by_pid($pids, $setconfig['perpage_mobile'], $orderby, $setconfig); foreach($postlist as $key => $post) { if($post['first'] && !$setconfig['thread_reply']){ $t[] = ''; }else{ $count = $messageinfo[$post['pid']]['count'] ? $messageinfo[$post['pid']]['count'] : 0; $list = $messageinfo[$post['pid']]['list']; $_GET['ajaxtarget'] = 'replyfloor_content_'.$post['pid']; $multipage = multi($count, $setconfig['perpage_mobile'], 1, 'plugin.php?id=replyfloor:index&tid='.$post['tid'].'&pid='.$post['pid'].($_GET['ordertype'] ? '&ordertype='.$_GET['ordertype'] : ''), 0, 3, false, true); $_GET['ajaxtarget'] = ''; include template(self::$identifier.':viewthread'); if($setconfig['position_mobile'] == 1){ $post['message'] .= $return; $postlist[$key] = $post; }else{ $t[] = $return; } } } } } return $t; } function viewthread_replyfloor_mobile_output() { global $_G,$postlist,$postno,$postnostick,$allowpostreply; $setconfig = $this->setconfig; $t = $pids = array(); if($_G['inajax']){ //return $t; } if(($setconfig['position_mobile'] == 3) && (!$setconfig['allow_groups'] || $this->_allow_groups($_G['forum'], $setconfig['allow_groups']))){ foreach($postlist as $key => $post) { if(!$post['first'] || $setconfig['thread_reply']){ $pids[] = $post['pid']; } } if($pids){ if(!$setconfig['order_type']){ $setconfig['order_type'] = empty($_GET['ordertype']) && getstatus($_G['forum_thread']['status'], 4) ? 1 : intval($_GET['ordertype']); } $orderby = 'order by createtime desc'; if($setconfig['order_type'] == 2){ $orderby = 'order by createtime asc'; } $messageinfo = C::t('#'.self::$identifier.'#'.self::$identifier.'_message')->fetch_message_by_pid($pids, $setconfig['perpage_mobile'], $orderby, $setconfig); foreach($postlist as $key => $post) { if($post['first'] && !$setconfig['thread_reply']){ $t[] = ''; }else{ $count = $messageinfo[$post['pid']]['count'] ? $messageinfo[$post['pid']]['count'] : 0; $list = $messageinfo[$post['pid']]['list']; $_GET['ajaxtarget'] = 'replyfloor_content_'.$post['pid']; $multipage = multi($count, $setconfig['perpage_mobile'], 1, 'plugin.php?id=replyfloor:index&tid='.$post['tid'].'&pid='.$post['pid'].($_GET['ordertype'] ? '&ordertype='.$_GET['ordertype'] : ''), 0, 3, false, true); $_GET['ajaxtarget'] = ''; include template(self::$identifier.':viewthread'); $t[] = $return; } } } } return $t; } function _allow_groups($forum, $groupids) { global $_G; if(empty($forum) || empty($forum['fid']) || empty($forum['name'])) { return false; } loadcache('grouptype'); $groupsecond = $_G['cache']['grouptype']['second']; if($forum['type'] == 'sub') { $secondtype = !empty($groupsecond[$forum['fup']]) ? $groupsecond[$forum['fup']] : array(); } else { $secondtype = !empty($groupsecond[$forum['fid']]) ? $groupsecond[$forum['fid']] : array(); } $firstid = !empty($secondtype) ? $secondtype['fup'] : (!empty($forum['fup']) ? $forum['fup'] : $forum['fid']); $firsttype = $_G['cache']['grouptype']['first'][$firstid]; if($firsttype && in_array($firsttype['fid'], $groupids)) { return true; } if($secondtype && in_array($secondtype['fid'], $groupids)) { return true; } return false; } } ?>