Exemple #1
0
    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') . '&amp;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;	    
    }
Exemple #2
0
$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.'&amp;start='.$start.'&amp;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.'&amp;start='.$start.'&amp;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.'&amp;start='.$start.'&amp;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.'&amp;start='.$start.'&amp;sort=forum" title="Sort by expire">'._MD_SUSPEND_SCOPE.'</a></strong>
Exemple #3
0
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;
}