Seite 1 von 1

Last Recent Topics erweitern

Verfasst: 02.09.2004 09:08
von Zinner
Hallo zusammen..

ich habe vor kurzen in meinem Forum eine Erweiterung installiert, die mir die letzen X Topics per Marquee auf der Indexseite angibt. Das funktioniert auch alles wunderbar, nur würde ich da gerne eine Erweiterung hinzufügen.

Im moment werden da "Topictitel" "Poster" und "Datum+Uhrzeit" angezeigt.

Ich würde jetzt aber auch gerne noch zusätzlich die Kategorie haben, da mein Forum sehr verschachtelt sein wird.

Ich habe mal den Code angefügt, leider kenn ich mich mit MySql nicht so aus. Es reicht um Datenbanken anzulegen und Foren etc. auf die Datenbank einzustellen...

Code: Alles auswählen

// 
// Get The Data 
// 
$template->assign_vars(array(
	'MARQUEE_TOPIC' => str_replace("%s",$board_config['topics_on_index'],$lang['marquee_topic']) ) 
);

$sql = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, t.topic_type, t.topic_status, p.post_id, p.poster_id, 
	p.post_time, u.user_id, u.username, u.user_lastvisit 
	FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u 
	WHERE t.forum_id IN " . $auth_view_forum_sql . " AND t.topic_id = p.topic_id 
	AND f.forum_id = t.forum_id 
	AND t.topic_status <> 2 
	AND p.post_id = t.topic_last_post_id 
	AND p.poster_id = u.user_id 
	ORDER BY t.topic_last_post_id DESC"; 

if ( !($result = $db->sql_query($sql)) ) 
{ 
	message_die(GENERAL_ERROR, 'Could not query recent posts marquee information', '', __LINE__, __FILE__, $sql); 
} 

if ($row = $db->sql_fetchrowset($result)) 
{ 
	$db->sql_freeresult($result); 
} 

if( count($row) <= $board_config['topics_on_index'] ) 
{ 
	$topics = count($row); 
} 
else 
{ 
	$topics = $board_config['topics_on_index']; 
} 

for($i = 0; $i < $topics; $i++) 
{ 
	$mar_title = $row[$i]["topic_title"]; 
	$mar_url = $phpbb_root_path . 'viewtopic.'.$phpEx.'?t='.$row[$i]["topic_id"]; 
	$mar_user = $row[$i]["username"]; 
	if ( $row[$i]["topic_status"] == TOPIC_LOCKED )
	{
		if ( $row[$i]["post_time"] > $row[$i]["user_lastvisit"] )
		{
			$pic = $images['folder_locked_new'];
		}
		else
		{
			$pic = $images['folder_locked'];
		}
	}
	else
	{
		if ( $row[$i]["topic_type"] == POST_GLOBAL_ANNOUNCE )
		{
			if ( $row[$i]["post_time"] > $row[$i]["user_lastvisit"] )
			{
				$pic = $images['folder_global_announce_new'];
			}
			else
			{
				$pic = $images['folder_global_announce'];
			}
		} 
		else if ( $row[$i]["topic_type"] == POST_ANNOUNCE )
		{
			if ( $row[$i]["post_time"] > $row[$i]["user_lastvisit"] )
			{
				$pic = $images['folder_announce_new'];
			}
			else
			{
				$pic = $images['folder_announce'];
			}
		} 
		else if ( $row[$i]["topic_type"] == POST_STICKY )
		{
			if ( $row[$i]["post_time"] > $row[$i]["user_lastvisit"] )
			{
				$pic = $images['folder_sticky_new'];
			}
			else
			{
			$pic = $images['folder_sticky'];
			}
		} 
		else { if ( $row[$i]["post_time"] > $userdata['user_lastvisit'] )
		{
			$pic = $images['folder_new']; }else{ $pic = $images['folder'];
		}
	}
}
$template->assign_block_vars('marqueerow', array( 
	'FOLD_URL' => $pic, 
	'TOPIC_TITLE' => $row[$i]["topic_title"], 
	'TOPIC_URL' => append_sid($phpbb_root_path . 'viewtopic.'.$phpEx.'?t='.$row[$i]["topic_id"]), 
	'USERNAME' => $row[$i]["username"], 
	'USER_PROF' => append_sid($phpbb_root_path . 'profile.'.$phpEx.'?mode=viewprofile&u='.$row[$i]["user_id"]), 
	'POST_DATE' => create_date($board_config['default_dateformat'], $row[$i]["post_time"], $board_config['board_timezone']))
	); 
} 
Ich habe gestern da auch schon was mit experimentiert, aber das ist wie die Nadel im Heuhaufen :( Man bekommt ja schon bei der obigen Abfrage die Forum ID, aber ich weiß nicht wie ich da jetzt den namen herbekomme.

Wäre super wenn mir da jemand helfen könnte.

Viele Grüsse

Stefan

Verfasst: 02.09.2004 18:12
von Acid
Um auch den Forennamen aufzulisten, bräuchtest du in der Select-Zeile nur f.forum_name einfügen und kannst es dann mit $row[$i]['forum_name'] ausgeben.

Verfasst: 02.09.2004 18:26
von Zinner
Super, hat wunderbar geklappt...


vielen Dank!