Seite 1 von 1

Probleme mit fetch all

Verfasst: 23.07.2004 09:48
von SyneX
Hi ich habe per fetch all alle beträge eines Threads anzeigen lassen. Aber da gibt diese Funktion den Thread/Beitrags Titel nicht aus.

z.B.: http://www.discussion-online.de/synex/comments.php?id=2 (hier wird die Funktion "phpbb_fetch_thread()" benutzt)

aber wenn ich nur die anfangsbeiträge von einem Forum hole, zeigt der ja den Beitragstitel an:

z.B.: http://www.discussion-online.de/synex/news.php (hier wird die Funktion "phpbb_fetch_posts()" benutzt)

Jetzt frage ich euch, ob ihr die Funktion so abändern könnt, dass man per $news[$i]['topic_title']; (sieht wegen der for-schleife so aus) den threadtitel abrufen kann.

Wer ess brauch, die funktion:

Code: Alles auswählen

###############################################################################
##                                                                           ##
## phpbb_fetch_thread()                                                      ##
## ------------------------------------------------------------------------- ##
## This function will fetch an entire thread by topic id.                    ##
##                                                                           ##
## PARAMETER                                                                 ##
##                                                                           ##
##     topic_id                                                              ##
##                                                                           ##
##         Must be set to a single topic id.                                 ##
##                                                                           ##
## EXAMPLE                                                                   ##
##                                                                           ##
##     $topic = phpbb_fetch_thread(1);                                       ##
##                                                                           ##
##     for ($i = 0; $i < count($topic); $i++)                                ##
##     {                                                                     ##
##         echo $topic[$i]['post_text'] . '<hr>';                            ##
##     }                                                                     ##
##                                                                           ##
###############################################################################

function phpbb_fetch_thread($topic_id = null)
{
	global $CFG, $userdata;

	if (!$topic_id)
	{
		phpbb_raise_error('no topic id specified', __FILE__, __LINE__);
	}

	$sql = 'SELECT p.*, pt.*, u.*';

	if (!$CFG['posts_hide_ranks'])
	{
		$sql .= ', r.*';
	}

	$sql .= '
				FROM ' . USERS_TABLE      . ' AS u,
					 ' . POSTS_TEXT_TABLE . ' AS pt,
					 ' . POSTS_TABLE      . ' AS p';

	if (!$CFG['posts_hide_ranks'])
	{
		$sql .= ',
					 ' . RANKS_TABLE      . ' AS r';
	}

	$sql .= '
				WHERE p.topic_id = ' . $topic_id . '
					AND u.user_id  = p.poster_id
					AND pt.post_id = p.post_id
					AND u.user_id  = p.poster_id';

	if (!$CFG['posts_hide_ranks'])
	{
		$sql .= '
					AND r.rank_id = u.user_rank AND';
	}

	$sql .= '
				ORDER BY ' . $CFG['posts_order'];

	if ($CFG['posts_span_pages'])
	{
		$CFG['posts_span_pages_numrows'] = phpbb_numrows(phpbb_query($sql));
		if ($CFG['posts_span_pages_offset'] > $CFG['posts_span_pages_numrows'])
		{
			$CFG['posts_span_pages_offset'] =
				$CFG['posts_span_pages_numrows'] - 1;
		}
		$CFG['posts_offset'] = $CFG['posts_span_pages_offset'];
	}
	else
	{
		$CFG['posts_offset'] = 0;
	}

	if ($CFG['posts_limit'] != 0)
	{
		$sql .= ' LIMIT ' . $CFG['posts_offset'] . ',' . $CFG['posts_limit'];
	}

	$result = phpbb_fetch_rows($sql);

	if ($result)
	{
		if ($CFG['auth_check'])
		{
			phpbb_get_auth_list();

			$authed = array();

			for ($i = 0; $i < count($result); $i++)
			{
				if (in_array($result[$i]['forum_id'], $CFG['auth_list']))
				{
					$authed[] = $result[$i];
				}
			}

			$result = $authed;
		}

		$orig_word = array();
		$replacement_word = array();
		obtain_word_list($orig_word, $replacement_word);

		for ($i = 0; $i < count($result); $i++)
		{
			$result[$i]['post_time']      =
				$result[$i]['post_time']      + $CFG['time_zone'];
			$result[$i]['topic_time']     =
				$result[$i]['topic_time']     + $CFG['time_zone'];
			$result[$i]['post_edit_time'] =
				$result[$i]['post_edit_time'] + $CFG['time_zone'];

			$result[$i]['date'] =
				date($CFG['date_format'], $result[$i]['post_time']);
			$result[$i]['time'] =
				date($CFG['time_format'], $result[$i]['post_time']);

			$result[$i]['edit_date'] =
				date($CFG['date_format'], $result[$i]['post_edit_time']);
			$result[$i]['edit_time'] =
				date($CFG['time_format'], $result[$i]['post_edit_time']);

			$result[$i]['post_text'] = phpbb_parse_text(
				$result[$i]['post_text'],
				$result[$i]['bbcode_uid'],
				$result[$i]['enable_smilies'],
				$CFG['posts_hide_images'],
				$CFG['posts_replace_images']);

			if (count($orig_word))
			{
				$result[$i]['topic_title'] = preg_replace($orig_word,
					$replacement_word,
					$result[$i]['topic_title']);
				$result[$i]['post_text']   = preg_replace($orig_word,
					$replacement_word,
					$result[$i]['post_text']);
			}

			$result[$i]['trimmed'] = false;
			phpbb_trim_text($result[$i]['post_text'],
				$result[$i]['trimmed'],
				$CFG['posts_trim_text_character'],
				$CFG['posts_trim_text_number']);

			$result[$i]['topic_trimmed'] = false;
			phpbb_trim_text($result[$i]['topic_title'],
				$result[$i]['topic_trimmed'],
				'',
				$CFG['posts_trim_topic_number']);
		}

		if (is_array($topic_id))
		{
			$sorted = array();

			for ($i = 0; $i < count($topic_id); $i++)
			{
				for ($j = 0; $j < count($result); $j++)
				{
					if ($topic_id[$i] == $result[$j]['topic_id'])
					{
						$sorted[] = $result[$j];
					}
				}
			}

			$result = $sorted;
		}
	}

	return $result;
} // end func phpbb_fetch_thread

Verfasst: 23.07.2004 20:46
von SyneX
^^ schieb ^^

habt ihr meinen thread zufällig übersehen oder könnt ihr nicht antworten? :|