function &display(&$xforums_obj) { global $xoopsModule, $xoopsConfig, $xoopsModuleConfig, $xforumImage, $myts; include_once XOOPS_ROOT_PATH.'/modules/xforum/include/functions.php'; $posts = array(); $posts_obj = array(); foreach (array_keys($xforums_obj) as $id) { $posts[] = $xforums_obj[$id]->getVar("forum_last_post_id"); } if(!empty($posts)){ $post_handler =& xoops_getmodulehandler('post', 'xforum'); $posts_obj =& $post_handler->getAll(new Criteria("post_id", "(".implode(", ", $posts).")", "IN"), array("uid", "topic_id", "post_time", "subject", "poster_name", "icon")); } $users = array(); $reads = array(); foreach (array_keys($xforums_obj) as $id) { $forum_obj =& $xforums_obj[$id]; if(!$forum_obj->getVar("forum_last_post_id")) continue; if(!$post_obj =& $posts_obj[$forum_obj->getVar("forum_last_post_id")]) { $forum_obj->assignVar("forum_last_post_id", 0); continue; } $users[] = $post_obj->getVar("uid"); if($moderators = $forum_obj->getModerators()){ $users = array_merge($users, $moderators); } // reads if(!empty($xoopsModuleConfig["read_mode"])){ $reads[$id] = ($xoopsModuleConfig["read_mode"] == 1)?$post_obj->getVar('post_time'):$post_obj->getVar('post_id'); } } $forum_isread = forum_isRead("forum", $reads); $users_linked = forum_getUnameFromIds(array_unique($users), !empty($xoopsModuleConfig['show_realname']), true); $xforums_array = array(); foreach (array_keys($xforums_obj) as $id) { $forum_obj =& $xforums_obj[$id]; if(!$this->getPermission($forum_obj, "access", false)) continue; $_forum_data = array(); $_forum_data["forum_order"] = $forum_obj->getVar('forum_order'); $_forum_data["forum_id"] = $id; $_forum_data["forum_cid"] = $forum_obj->getVar('cat_id'); $_forum_data["forum_name"] = $forum_obj->getVar('forum_name'); $_forum_data["forum_desc"] = $forum_obj->getVar('forum_desc'); $_forum_data["forum_posts"] = $forum_obj->getVar("forum_posts"); $_forum_data["forum_topics"] = $forum_obj->getVar("forum_topics"); $_forum_data["forum_type"] = $forum_obj->getVar('forum_type'); $_forum_data["forum_permission"]= $this->getPermission($forum_obj, "view"); $forum_moderators = array(); $moderators = $forum_obj->getModerators(); foreach($moderators as $moderator){ $forum_moderators[] = @$users_linked[$moderator]; } $_forum_data["forum_moderators"] = implode(", ", array_filter($forum_moderators)); if($forum_obj->getVar("forum_last_post_id")): $post_obj =& $posts_obj[$forum_obj->getVar("forum_last_post_id")]; if(!empty($users_linked[$post_obj->getVar("uid")])){ $_forum_data["forum_lastpost_user"] = $users_linked[$post_obj->getVar("uid")]; }elseif($post_obj->getVar("poster_name")){ $_forum_data["forum_lastpost_user"] = $post_obj->getVar("poster_name"); }else{ $_forum_data["forum_lastpost_user"] = $myts->htmlSpecialChars($GLOBALS["xoopsConfig"]["anonymous"]); } $_forum_data['forum_lastpost_time'] = forum_formatTimestamp($post_obj->getVar('post_time')); $_forum_data['forum_lastpost_icon'] = '<a href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar("dirname") . '/viewtopic.php?post_id=' . $post_obj->getVar('post_id') . '&topic_id=' . $post_obj->getVar('topic_id') . '#forumpost' . $post_obj->getVar('post_id') . '">'. '<img src="' . XOOPS_URL . '/images/subject/' . ($post_obj->getVar('icon')?$post_obj->getVar('icon'): 'icon1.gif') . '" alt="" />'. '</a>'; endif; if (empty($forum_isread[$id])) { $forum_folder = ($forum_obj->getVar('forum_type') == 1) ? $xforumImage['locked_forum_newposts'] : $xforumImage['newposts_forum']; } else { $forum_folder = ($forum_obj->getVar('forum_type') == 1) ? $xforumImage['locked_forum'] : $xforumImage['folder_forum']; } $_forum_data['forum_folder'] = forum_displayImage($forum_folder); $xforums_array[$forum_obj->getVar('parent_forum')][] = $_forum_data; } return $xforums_array; }
$moderate_count = $moderate_handler->getCount($criteria); include XOOPS_ROOT_PATH.'/header.php'; if($forum_id){ $url = 'viewforum.php?forum='.$forum_id; }else{ $url = 'index.php'; } echo '<div style="padding: 10px; margin-left:auto; margin-right:auto; text-align:center;"><a href="'.$url.'"><h2>'._MD_SUSPEND_MANAGEMENT.'</h2></a></div>'; if(!empty($moderate_count)){ $_users = array(); foreach(array_keys($moderate_objs) as $id){ $_users[$moderate_objs[$id]->getVar("uid")] = 1; } $users =& forum_getUnameFromIds(array_keys($_users), $xoopsModuleConfig['show_realname'], true); echo ' <table class="outer" cellpadding="6" cellspacing="1" border="0" width="100%" align="center"> <tr class="head" align="left"> <td width="5%" align="center" nowrap="nowrap"> <strong><a href="moderate.php?forum='.$forum_id.'&start='.$start.'&sort=uid" title="Sort by uid">'._MD_SUSPEND_UID.'</a></strong> </td> <td width="10%" align="center" nowrap="nowrap"> <strong><a href="moderate.php?forum='.$forum_id.'&start='.$start.'&sort=start" title="Sort by start">'._MD_SUSPEND_START.'</a></strong> </td> <td width="10%" align="center" nowrap="nowrap"> <strong><a href="moderate.php?forum='.$forum_id.'&start='.$start.'&sort=expire" title="Sort by expire">'._MD_SUSPEND_EXPIRE.'</a></strong> </td> <td width="10%" align="center" nowrap="nowrap"> <strong><a href="moderate.php?forum='.$forum_id.'&start='.$start.'&sort=forum" title="Sort by expire">'._MD_SUSPEND_SCOPE.'</a></strong>
function b_forum_author_show($options) { global $xoopsConfig; global $access_forums; $db = &Database::getInstance(); $myts = &MyTextSanitizer::getInstance(); $block = array(); $i = 0; $type = "topic"; $order = "count"; $extra_criteria = ""; $time_criteria = null; if(!empty($options[2])) { $time_criteria = time() - forum_getSinceTime($options[2]); $extra_criteria = " AND topic_time>".$time_criteria; } switch ($options[0]) { case 'topic': break; case 'digest': $extra_criteria = " AND topic_digest=1"; if($time_criteria) $extra_criteria .= " AND digest_time>".$time_criteria; break; case 'sticky': $extra_criteria .= " AND topic_sticky=1"; break; case 'post': default: $type = "post"; if($time_criteria) $extra_criteria = " AND post_time>".$time_criteria; break; } $xforumConfig = getConfigForBlock(); if(!isset($access_forums)){ $forum_handler = &xoops_getmodulehandler('forum', 'xforum'); if(!$access_obj =& $forum_handler->getForums(0, 'access', array('forum_id', 'cat_id', 'forum_type')) ){ return null; } $access_forums = array_keys( $access_obj ); // get all accessible forums unset($access_obj ); } if (!empty($options[5])) { $allowedforums = array_filter(array_slice($options, 5), "b_forum_array_filter"); // get allowed forums $allowed_forums = array_intersect($allowedforums, $access_forums); }else{ $allowed_forums = $access_forums; } if($type=="topic"){ $forum_criteria = ' AND forum_id IN (' . implode(',', $allowed_forums) . ')'; $approve_criteria = ' AND approved = 1'; $query = 'SELECT DISTINCT topic_poster AS author, COUNT(*) AS count FROM ' . $db->prefix('xf_topics') . ' WHERE topic_poster>0 ' . $forum_criteria . $approve_criteria . $extra_criteria . ' GROUP BY topic_poster ORDER BY ' . $order . ' DESC'; }else{ $forum_criteria = ' AND forum_id IN (' . implode(',', $allowed_forums) . ')'; $approve_criteria = ' AND approved = 1'; $query = 'SELECT DISTINCT uid AS author, COUNT(*) AS count FROM ' . $db->prefix('xf_posts') . ' WHERE uid>0 ' . $forum_criteria . $approve_criteria . $extra_criteria . ' GROUP BY uid ORDER BY ' . $order . ' DESC'; } $result = $db->query($query, $options[1], 0); if (!$result) { forum_message("xforum block query error: ".$query); return false; } $author = array(); while ($row = $db->fetchArray($result)) { $author[$row["author"]]["count"] = $row["count"]; } if (count($author) < 1) return false; $author_name = forum_getUnameFromIds(array_keys($author), $xforumConfig['show_realname']); foreach(array_keys($author) as $uid){ $author[$uid]["name"] = $myts->htmlSpecialChars($author_name[$uid]); } $block['authors'] =& $author; $block['disp_mode'] = $options[3]; // 0 - full view; 1 - lite view; $block['indexNav'] = intval($options[4]); return $block; }