Pagina 1 van 1

topics_anywhere.php markeerd als gelezen

Geplaatst: 31 aug 2004, 19:36
door Purmerend
Hallo mensen, ik heb al enige tijd op mijn website het topics_anywhere script draaien. (ik draai dus niet met een portal.

Wanneer je nu echter wel op de index komt en de laaste berichten ziet.
Maar niet naar het forum gaat en deze daadwerkelijk leest.
De berichten bij een volgend bezoek als "gelezen" worden gemarkeerd.

Is er iemand die daar een oplossing voor heeft of mischien een beter script voor weet?

Bijvoorbaat heel erg bedankt.

Hier de code...

Code: Selecteer alles

<?php
/***************************************************************************
 *                            topics_anywhere.php
 *                            -------------------
 *   begin                : Wednesday, Aug 28, 2002
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: topics_anywhere.php,v 1.11.0 2003/09/01 14:32:00 DtM Exp $
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

//
// Config Section
//

// Who may view the Topics Anywhere setup page and generate scripts to copy and paste?
// Everybody: 0
// Administrators only: 1
// Moderators only: 2
// Administrators and moderators: 3
// All registered users: 4
$topics_anywhere_authlevel = 0;

// By default, only public forums are shown in the picklist. If you want, you can let
// Topics Anywhere show all forums in the picklist (this is including private and hidden forums).
// To do this, change 'true' to 'false' below.
// You can still exclude specific forums from the picklist by changing next config option.
$public_only = true;

// Don't show following forums in the picklist on the setup page.
// This is an array of numbers which are the forum ID's.
// For example use "$hide_forums = array(1, 5, 10);" to hide forums with ID 1, 5 and 10
// Leave the array empty (as below) to show all the forums.
// Note: it is never possible to let Topics Anywhere show topics from excluded forums,
// not even by modifying the URL generated by Topics Anywhere.
$hide_forums = array();

// You can change the format of date and time here...
// For American type dates you probably want to use the other array below
// You can also make your own formats, as long as you use the syntax of PHP's function date()
// Of course, do not add or remove any quotes! (unless escaped)
$date_formats = array('d/m/y', 'd/m/Y', 'd/m/Y H:i:s', 'D d-M-y', 'D d-M-Y', 'D d-M-Y H:i:s', 'l j F Y', 'l j F Y H:i:s');

// Some American style date formats - to enable them uncomment following line by removing the '// '
// $date_formats = array('m/d/y', 'm/d/Y', 'm/d/Y g:i:s A', 'D M d, y', 'D M d, Y', 'D M d, Y g:i:s A', 'l, F jS, Y', 'l, F jS, Y g:i:s A');

// Array of possible bullets
// You can add your own bullets if you want.
// Do not add or remove any quotes! (unless escaped)
$bullets = array('-', '+', '>', '&#155;', '»', '°', '*');

//
// End of Config Section - nothing needs to be modified below...
//

define('IN_PHPBB', true);

$phpbb_root_path = './';

include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx);
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_topics_anywhere.' . $phpEx);

$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
$server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name']));
$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : '';
$script_location = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path']));
$script_location = ($script_location == '') ? $script_location : '/' . $script_location;

$full_url = $server_protocol . $server_name . $server_port . $script_location;

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

$lang['Topics_anywhere'] = 'Topics Anywhere';

define('TA_SCRIPT_NAME', 'topics_anywhere');
define('TA_VERSION', '1.11.0');

$lastpostby_formats = array($lang['Username'], $lang['Lastpost_from'] . ' ' . $lang['Username']);

// General functions
function output_die($msg)
{
	global $out, $phpEx, $full_url, $version;

	$error = true;

	if ($out == 'js')
	{
		if (is_array($msg))
		{
			$output = implode('<br>', $msg);
		}
		else
		{
			$output = $msg;
		}

		$output = '<b>' . $output . '<br>' . sprintf($lang['Error'], TA_SCRIPT_NAME . $phpEx) . '</b><br><br>TA_VERSION ' . TA_VERSION;
		exit("document.writeln('$output');\n");
	}
	else if ($out == 'rss')
	{
		$output = generate_rss_header($version);

		$link = ($version == '0.91') ? substr($full_url, 0, 500) : $full_url;

		if (is_array($msg))
		{
			while ($error = array_shift($msg))
			{
				$output .= '<item>' . "\n";;
				$output .= '<title>' . $error . '</title>' . "\n";
				$output .= '<link>' . $link . '</link>' . "\n";
				$output .= '<description>' . sprintf($lang['Error'], TA_SCRIPT_NAME . $phpEx) . ' (TA_VERSION ' . TA_VERSION . ')</description>' . "\n";
				$output .= '</item>' . "\n";
			}
		}
		else
		{
			$output .= '<item>' . "\n";;
			$output .= '<title>' . $msg . '</title>' . "\n";
			$output .= '<link>' . $link . '</link>' . "\n";
			$output .= '<description>' . sprintf($lang['Error'], TA_SCRIPT_NAME . $phpEx) . ' (TA_VERSION ' . TA_VERSION . ')</description>' . "\n";
			$output .= '</item>' . "\n";
		}

		$output .= generate_rss_footer();

		header("Content-type: text/xml");
		exit($output);
	}
}

function forum_select() // generates select of all available forums (modified make_jumpbox()-function)
{
	global $template, $lang, $db, $SID, $nav_links, $phpEx, $hide_forums;

	$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
		FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f
		WHERE f.cat_id = c.cat_id
		GROUP BY c.cat_id, c.cat_title, c.cat_order
		ORDER BY c.cat_order";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Couldn't obtain category list.", "", __LINE__, __FILE__, $sql);
	}

	$category_rows = array();
	while ( $row = $db->sql_fetchrow($result) )
	{
		$category_rows[] = $row;
	}

	if ( $total_categories = count($category_rows) )
	{
		$sql = "SELECT *
			FROM " . FORUMS_TABLE . "
			ORDER BY cat_id, forum_order";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}

		$forum_rows = array();
		while ( $row = $db->sql_fetchrow($result) )
		{
			$forum_rows[] = $row;
		}

		$boxstring = '<select multiple name="' . POST_FORUM_URL . '[]" size=6>';

		if ( $total_forums = count($forum_rows) )
		{
			for($i = 0; $i < $total_categories; $i++)
			{
				$boxstring_forums = '';
				for($j = 0; $j < $total_forums; $j++)
				{
					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'])
					{
						if (!in_array($forum_rows[$j]['forum_id'], $hide_forums))
						{
							$boxstring_forums .=  '<option value="' . $forum_rows[$j]['forum_id'] . '">' . $forum_rows[$j]['forum_name'] . '</option>';
						}
					}
				}

				if ( $boxstring_forums != '')
				{
					if ($i != 0)
					{
						$boxstring .= '<option value="-1">&nbsp;</option>';
					}
					$boxstring .= '<option value="cat' . $category_rows[$i]['cat_id'] . '">' . $category_rows[$i]['cat_title'] . '</option>';
					$boxstring .= '<option value="-1">----------------</option>';
					$boxstring .= $boxstring_forums;
				}
			}
		}

		$boxstring .= '</select>';
	}
	else
	{
		$boxstring .= '<select multiple name="' . POST_FORUM_URL . '[]" size=1></select>';
	}
	$data = array($boxstring, $total_forums);
	return $data;
}

function bullet_select($bullets) // generates select of all available bullets from array $bullets
{
	global $lang;
	$select = '<select name="bullet_type">';
	$select .= '<option value="non">' . $lang['None'] . '</option>';
	$select .= '<option value="dis">HTML ' . $lang['disc'] . '</option>';
	$select .= '<option value="cir">HTML ' . $lang['circle'] . '</option>';
	$select .= '<option value="squ">HTML ' . $lang['square'] . '</option>';
	$select .= '<option value="num">HTML ' . $lang['numbered'] . '</option>';
	for ($i = 0; $i < count($bullets); $i++)
	{
		$select .= '<option value="' . $i . '">' . $bullets[$i] . '</option>';
	}
	$select .= '</select>';
	return $select;
}

function lastpostby_select($lastpostby_formats) // generates select of "last post by" text formats
{
	global $lang;
	$select = '<select name="lastpostby_format">';
	for ($i = 0; $i < count($lastpostby_formats); $i++)
	{
		$select .= '<option value="' . $i . '">' . $lastpostby_formats[$i] . '</option>';
	}
	$select .= '</select>';
	return $select;
}

function lastpostdate_select($date_formats) // generates select of date formats from array $dateformats
{
	global $lang;
	$now = time();
	$select = '<select name="lastpostdate_format">';
	for ($i = 0; $i < count($date_formats); $i++)
	{
		$select .= '<option value="' . $i . '">' . create_date($date_formats[$i], $now, $board_config['board_timezone']) . '</option>';
	}
	$select .= '</select>';
	return $select;
}

function output_select()
{
	$select = '<select name="out">';
	$select .= '<option value="js">JavaScript</option>';
	$select .= '<option value="rss0.91">RSS 0.91</option>';
	$select .= '<option value="rss2.0">RSS 2.0</option>';
	$select .= '</select>';
	return $select;
}

function show_the_page()
{
	global $template, $lang, $db, $SID, $nav_links, $phpEx, $phpbb_root_path, $theme, $images, $date_formats, $lastpostby_formats, $bullets, $board_config, $full_url;

	$page_title = $lang['Topics_anywhere'];

	include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx);

	include($phpbb_root_path . 'includes/page_header.'.$phpEx);

	$template->set_filenames(array(
		'body' => 'topics_anywhere_body.tpl')
	);

	$outputarray = forum_select();

	if ($board_config['allow_html'])
	{
		$html_allowed_append = ' (' . strip_tags($lang['HTML_is_ON']) . ' - ' . $lang['Allowed_tags'] . ': <' . str_replace(',', '>, <', $board_config['allow_html_tags']) . '>)';
	}
	else
	{
		$html_allowed_append = ' (' . strip_tags($lang['HTML_is_OFF']) . ')';
	}

	$template->assign_vars(array(
		'L_TOPICS_ANYWHERE' => $lang['Topics_anywhere'] . ' ' . TA_VERSION,
		'L_TOPICS_ANYWHERE_EXPLAIN' => $lang['Topics_anywhere_explain'] . ' ' . $lang['Topics_anywhere_explain_more'],
		'L_OUTPUT' => $lang['Output'],
		'L_OUTPUT_EXPLAIN' => $lang['Output_explain'],
		'OUTPUT_SELECT' => output_select($languages, $langs),
		'L_SELECT_FORUM' => $lang['Forum_select'] . $lang['Category_select'],
		'L_SELECT_FORUM_EXPLAIN' => $lang['Select_forum_explain'] . $lang['Category_explain'],
		'SELECT_FORUM_SELECT' => $outputarray[0],
		'L_OR' => $lang['Or'],
		'L_CHECK_ALLFORA' => $lang['All_available'],
		'L_AMOUNT_TOPICS' => $lang['Amount_topics'],
		'L_AMOUNT_TOPICS_EXPLAIN' => $lang['Amount_topics_explain'],
		'L_TOPICS_LIFESPAN' => $lang['Topics_lifespan'],
		'L_TOPICS_LIFESPAN_EXPLAIN' => $lang['Topics_lifespan_explain'],
		'L_TOPICS_LIFESPAN_NOREPLY' => $lang['Topics_lifespan_noreply'],
		'L_TOPICS_LIFESPAN_STARTDATE' => $lang['Topics_lifespan_startdate'],
		'L_HOURS' => strtolower($lang['Hours']),
		'L_DAYS' => strtolower($lang['Days']),
		'L_JUMP_LAST_POST' => $lang['Url_last_post'],
		'L_JUMP_LAST_POST_EXPLAIN' => $lang['Url_last_post_explain'],
		'L_SHOW_FORUM_NAME' => $lang['Show_forum_name'],
		'L_SHOW_FORUM_NAME_EXPLAIN' => $lang['Show_forum_name_explain'],
		'L_LINK_FORUM_NAME' => $lang['Link_forum_name'],
		'L_LINK_FORUM_NAME_EXPLAIN' => $lang['Link_forum_name_explain'] . ' (*)',
		'L_SHOW_REPLIES' => $lang['Show_replies'],
		'L_SHOW_REPLIES_EXPLAIN' => $lang['Show_replies_explain'],
		'L_SHOW_REPLIES_WORD' => $lang['Show_replies_word'],
		'L_SHOW_REPLIES_WORD_EXPLAIN' => $lang['Show_replies_word_explain'],
		'L_SHOW_ANNOUNCEMENTS' => $lang['Show_announce'],
		'L_SHOW_STICKYS' => $lang['Show_sticky'],
		'L_SHOW_LOCKED' => $lang['Show_locked'],
		'L_SHOW_MOVED' => $lang['Show_moved'],
		'L_SHOW_REGULAR' => $lang['Show_regular'],
		'L_HIDE_LABELS' => $lang['Hide_labels'],
		'L_HIDE_LABELS_EXPLAIN' => $lang['Hide_labels_explain'],
		'O_ANNOUNCEMENT' => strip_tags($lang['Topic_Announcement']),
		'O_STICKY' => strip_tags($lang['Topic_Sticky']),
		'O_MOVED' => strip_tags($lang['Topic_Moved']),
		'O_POLL' => strip_tags($lang['Topic_Poll']),
		'O_LOCKED' => strip_tags($lang['Topic_Locked']),
		'L_SORT_ORDER' => $lang['Sort_order'],
		'L_SORT_ORDER_EXPLAIN' => $lang['Sort_order_explain'],
		'O_PRIORITY' => $lang['Priority'],
		'O_ON_DATE' => $lang['On_date'],
		'L_BULLET_TYPE' => $lang['Bullet_type'],
		'L_BULLET_TYPE_EXPLAIN' => $lang['Bullet_type_explain'] . ' (*)',
		'BULLET_TYPE_SELECT' => bullet_select($bullets),
		'L_SHOW_LASTPOSTBY' => $lang['Show_lastpostby'],
		'L_SHOW_LASTPOSTBY_EXPLAIN' => $lang['Show_lastpostby_explain'],
		'L_LASTPOSTBY_FORMAT' => $lang['Lastpostby_format'],
		'L_LASTPOSTBY_FORMAT_EXPLAIN' => $lang['Lastpostby_format_explain'],
		'LASTPOSTBY_FORMAT_SELECT' => lastpostby_select($lastpostby_formats),
		'L_SHOW_LASTPOSTDATE' => $lang['Show_lastpostdate'],
		'L_SHOW_LASTPOSTDATE_EXPLAIN' => $lang['Show_lastpostdate_explain'],
		'L_LASTPOSTDATE_FORMAT' => $lang['Lastpostdate_format'],
		'L_LASTPOSTDATE_FORMAT_EXPLAIN' => $lang['Lastpostdate_format_explain'],
		'LASTPOSTDATE_FORMAT_SELECT' => lastpostdate_select($date_formats),
		'L_SHOW_LASTPOSTICON' => $lang['Show_lastposticon'],
		'L_SHOW_LASTPOSTICON_EXPLAIN' => $lang['Show_lastposticon_explain'] . ' (*)',
		'L_LASTPOSTICON_AS_BULLET' => $lang['Lastposticon_as_bullet'],
		'L_LASTPOSTICON_AS_BULLET_EXPLAIN' => $lang['Lastposticon_as_bullet_explain'] . ' (*)',
		'L_ADD_BREAK' => $lang['Add_break'],
		'L_ADD_BREAK_EXPLAIN' => $lang['Add_break_explain'] . ' (*)',
		'L_ADD_BLANK_LINE' => $lang['Add_blank_line'],
		'L_ADD_BLANK_LINE_EXPLAIN' => $lang['Add_blank_line_explain'] . ' (*)',
		'L_LIMIT_LENGTH' => $lang['Limit_title_length'],
		'L_LIMIT_LENGTH_EXPLAIN' => $lang['Limit_title_length_explain'],
		'L_LIMIT_WHERE' => $lang['Limit_title_where'],
		'L_LIMIT_WHERE_EXPLAIN' => $lang['Limit_title_where_explain'],
		'L_PREVIOUS_SPACE' => $lang['Limit_title_previous_space'],
		'L_EXACT' => $lang['Limit_title_exact'],
		'L_NEXT_SPACE' => $lang['Limit_title_next_space'],
		'L_CSS_LINK' => $lang['CSS_link'],
		'L_CSS_LINK_EXPLAIN' => $lang['CSS_link_explain'] . ' (*)',
		'L_CSS_TEXT' => $lang['CSS_text'],
		'L_CSS_TEXT_EXPLAIN' => $lang['CSS_text_explain'] . ' (*)',
		'L_TARGET_LINK' => $lang['Target_link'],
		'L_TARGET_LINK_EXPLAIN' => $lang['Target_link_explain'] . ' (*)',
		'L_ADV_FORM' => $lang['Advanced_formatter'],
		'L_ADV_FORM_EXPLAIN' => $lang['Advanced_formatter_explain'],
		'L_ADV_FORM_STRING' => $lang['Advanced_formatter_string'],
		'L_ADV_FORM_STRING_EXPLAIN' => $lang['Advanced_formatter_string_explain'],
		'L_ADV_FORM_DEFAULT' => '§lbl§ §tt§ §fn§ §rep§ - §lpa§, §lpt§ §lpi§',
		'L_ADV_FORM_VARS' => $lang['Advanced_formatter_variables'] . '<br /><br />' . $lang['Advanced_formatter_variables_extra'] . $html_allowed_append,
		'L_YES' => $lang['Yes'],
		'L_NO' => $lang['No'],
		'L_SUBMIT' => $lang['Submit'],
		'L_RESET' => $lang['Reset'],
		'H_TOTAL_FORUMS' => $outputarray[1],
		'S_FORM_ACTION' => append_sid(TA_SCRIPT_NAME . ".$phpEx?mode=generate"))
	);

	$template->pparse('body');

	include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}

function generate_rss_header($version)
{
	global $db, $lang, $board_config, $full_url;

	$sql = "SELECT template_name
		FROM " . THEMES_TABLE . "
		WHERE themes_id = " . $board_config['default_style'];
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Could not query database for theme info');
	}

	if ( !($row = $db->sql_fetchrow($result)) )
	{
		message_die(CRITICAL_ERROR, "Could not get theme data for themes_id [$style]");
	}

	$dir = $row['template_name'];

	$langs = array('albanian', 'arabic', 'bulgarian', 'catalan', 'chinese_simplified', 'chinese_traditional', 'croatian', 'czech', 'danish', 'dutch', 'english', 'finnish', 'french', 'galego', 'german', 'german_sie', 'greek', 'hebrew', 'hungarian', 'icelandic', 'indonesian', 'italian', 'japanese', 'korean', 'kurdish', 'lithuanian', 'macedonian', 'norwegian', 'polish', 'portuguese', 'portuguese_brazil', 'romanian', 'romanian_no_diacritics', 'russian', 'russian_tu', 'serbian', 'slovak', 'slovenian', 'spanish', 'spanish_argentina', 'swedish', 'thai', 'turkish', 'ukrainian', 'welsh');
	$codes = array('SQ', 'AR', 'BG', 'CA', 'ZH-CN', 'ZH-TW', 'HR', 'CS', 'DA', 'NL', 'EN', 'FI', 'FR', 'GL', 'DE', 'DE', 'EL', 'HE', 'HU', 'IS', 'ID', 'IT', 'JA', 'KO', 'KU', 'LT', 'MK', 'NO', 'PL', 'PT', 'PT-BR', 'RO', 'RO', 'RU', 'RU', 'SR', 'SK', 'SL', 'ES', 'ES-AR', 'SV', 'TH', 'TR', 'UK', 'CY');

	if (($index = array_search($board_config['default_lang'], $langs)) !== FALSE) {
		$langcode = strtolower($codes[$index]);
	}
	else
	{
		$langcode = 'en';
	}

	unset($langs, $codes, $index);

	$title = ($version == '0.91') ? substr($board_config['sitename'], 0, 100) : $board_config['sitename'];
	$link = ($version == '0.91') ? substr($full_url, 0, 500) : $full_url;
	$description = ($version == '0.91') ? substr($board_config['site_desc'], 0, 500) : $board_config['site_desc'];
	$url = ($version == '0.91') ? substr(($full_url . '/templates/' . $dir . '/images/logo_phpBB.gif'), 0, 500) : ($full_url . '/templates/' . $dir . '/images/logo_phpBB.gif');
	$copy = ($version == '0.91') ? substr(('Copyright ' . date('Y', $board_config['board_startdate']) . '-' . date('Y') . ', ' . $board_config['sitename']), 0, 100) : ('Copyright ' . date('Y', $board_config['board_startdate']) . '-' . date('Y') . ', ' . $board_config['sitename']);
	$mail = ($version == '0.91') ? substr($board_config['board_email'], 0, 100) : $board_config['board_email'];
	$docs = ($version == '0.91') ? 'http://backend.userland.com/stories/rss091' : 'http://blogs.law.harvard.edu/tech/rss';
	$date = date('r');

	$output = '<?xml version="1.0" encoding="' . $lang['ENCODING'] . '" ?>' . "\n";
	$output .= '<rss version="' . $version . '">' . "\n";
	$output .= '<channel>' . "\n";
	$output .= '<title>' . $title . '</title>' . "\n";
	$output .= '<link>' . $link . '</link>' . "\n";
	$output .= '<description>' . $description . '</description>' . "\n";
	$output .= '<language>' . $langcode . '</language>' . "\n";
	$output .= '<managingEditor>' . $mail . '</managingEditor>' . "\n";
	$output .= '<webMaster>' . $mail . '</webMaster>' . "\n";
	$output .= '<pubDate>' . $date . '</pubDate>' . "\n";
	$output .= '<lastBuildDate>' . $date . '</lastBuildDate>' . "\n";
	$output .= '<copyright>' . $copy . '</copyright>' . "\n";

	if ($version == '2.0')
	{
		$output .= '<generator>' . $lang['Topics_anywhere'] . ' ' . TA_VERSION . '</generator>' . "\n";
	}

	$output .= '<docs>' . $docs . '</docs>' . "\n";

	$output .= '<image>' . "\n";
	$output .= '<url>' . $url . '</url>' . "\n";
	$output .= '<title>' . $title . '</title>' . "\n";
	$output .= '<link>' . $link . '</link>' . "\n";
	$output .= '</image>' . "\n";

	return $output;
}

function generate_rss_footer()
{
	$output = '</channel>' . "\n";
	$output .= '</rss>' . "\n";

	return $output;
}

if ($public_only) // adds all non-public forum id's to the $hide_forums array so they can't be used
{
	$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = " . ANONYMOUS;
	if (!($result = $db->sql_query($sql)))
	{
		message_die(CRITICAL_ERROR, 'Could not obtain user data from user table', '', __LINE__, __FILE__, $sql);
	}

	$userdata = $db->sql_fetchrow($result);

	$db->sql_freeresult($result);

	$auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);

	$public_forums = array();
	while (list($auth_forum_id, $auth_level) = each($auth_ary))
	{
		if ($auth_level['auth_read'])
		{
			array_push($public_forums, $auth_forum_id);
		}
	}

	$sql = "SELECT forum_id FROM " . FORUMS_TABLE . " ORDER BY forum_id";
	if (!($result = $db->sql_query($sql)))
	{
		message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
	}

	$all_forums = array();
	while ($row = $db->sql_fetchrow($result))
	{
		array_push($all_forums, $row['forum_id']);
	}
	$db->sql_freeresult($result);

	for ($i = 0; $i < count($all_forums); $i++) {
		if (in_array($all_forums[$i], $public_forums)) {
			array_splice($all_forums, $i, 1);
			$i--;
		}
	}

	$hide_forums = array_merge($hide_forums, $all_forums);
	$hide_forums = array_unique($hide_forums);
}

if ($HTTP_GET_VARS['mode'] == "show") // generates topics for output on any page using JavaScript document.writeln (quite heavily modified code from viewtopic.php)
{
	// Output mode check
	$out = 'js';
	if (isset($HTTP_GET_VARS['out'])) {
		if ($HTTP_GET_VARS['out'] == 'rss0.91') {
			$out = 'rss';
			$version = '0.91';
		}
		else if ($HTTP_GET_VARS['out'] == 'rss2.0') {
			$out = 'rss';
			$version = '2.0';
		}
	}

	// Board is disabled, no topics are available
	if ($board_config['board_disable'])
	{
		if ($out == 'js')
		{
			$css_text_wrap_before = '';
			$css_text_wrap_after = '';
			if (isset($HTTP_GET_VARS['ct']))
			{
				if ($HTTP_GET_VARS['ct'] != '')
				{
					$css_text_wrap_before = '<span class=\"' . $HTTP_GET_VARS['ct'] . '\">';
					$css_text_wrap_after = '</span>';
				}
				else
				{
					$error = true;
					output_die('Error: No value for argument (css_text)');
				}
			}
			$msg = $css_text_wrap_before . $lang['Board_disable'] . $css_text_wrap_after;
			exit("document.writeln('$msg');\n");
		}
		else if ($out = 'rss')
		{
			$output = generate_rss_header($version);

			$title = ($version == '0.91') ? substr($lang['Board_disable'], 0, 100) : $lang['Board_disable'];
			$link = ($version == '0.91') ? substr($full_url, 0, 500) : $full_url;

			$output .= '<item>' . "\n";
			$output .= '<title>' . $title . '</title>' . "\n";
			$output .= '<link>' . $link . '</link>' . "\n";
			$output .= '</item>' . "\n";

			$output .= generate_rss_footer();

			header("Content-type: text/xml");
			exit($output);
		}
	}

	// Get most important vars out parameters
	$error = false;
	$errorarray = array();

	$adv_format = false;
	if (isset($HTTP_GET_VARS['af']) && $HTTP_GET_VARS['af'] != '')
	{
		$adv_format = true;
		$af_string = base64_decode(rawurldecode($HTTP_GET_VARS['af']));
	}

	if (!isset($HTTP_GET_VARS['f']) || $HTTP_GET_VARS['f'] == '')
	{
		$error = true;
		array_push($errorarray, 'Error: Missing argument (forum_id)');
	}
	else
	{
		if (is_numeric($HTTP_GET_VARS['f']))
		{
			if (sizeof($hide_forums))
			{
				if (in_array(intval($HTTP_GET_VARS['f']), $hide_forums))
				{
					$error = true;
					array_push($errorarray, 'Error: Not allowed to show topics from this forum');
				}
				else
				{
					$forum_id = intval($HTTP_GET_VARS['f']);
					$forum_sql = "AND t.forum_id = $forum_id";
				}
			}
			else
			{
				$forum_id = intval($HTTP_GET_VARS['f']);
				$forum_sql = "AND t.forum_id = $forum_id";
			}
		}
		else
		{
			if ($HTTP_GET_VARS['f'] == 'a')
			{
				if (sizeof($hide_forums))
				{
					$hidelist = '(' . implode(', ', $hide_forums) . ')';
					$forum_sql = 'AND t.forum_id NOT IN ' . $hidelist;
				}
				else
				{
					$forum_sql = '';
				}
			}
			else
			{
				if (substr($HTTP_GET_VARS['f'], 0, 1) == 'u')
				{
					$forumlist = base64_decode(rawurldecode(substr($HTTP_GET_VARS['f'], 1)));
					$forumlist = '(' . str_replace(',', ', ', $forumlist) . ')';
					$forum_sql = "AND t.forum_id in $forumlist";
				}
				else
				{
					if (substr($HTTP_GET_VARS['f'], 0, 1) == 'b')
					{
						$forumlist = base64_decode(substr($HTTP_GET_VARS['f'], 1));
						$forum_sql = "AND t.forum_id in $forumlist";
					}
					else
					{
						$error = true;
						array_push($errorarray, 'Error: Wrong argument (forum_id)');
					}
				}
			}
		}
	}

	if (!isset($HTTP_GET_VARS['n']) || $HTTP_GET_VARS['n'] == '')
	{
		$error = true;
		array_push($errorarray, 'Error: Missing argument (limit)');
	}
	else
	{
		if (is_numeric($HTTP_GET_VARS['n']))
		{
			$limit = intval($HTTP_GET_VARS['n']);
		}
		else
		{
			$error = true;
			array_push($errorarray, 'Error: Wrong argument (limit)');
		}
	}

	if (!$error) // there are no critical arguments missing - start with generating SQL, then execute it
	{
		$noreply_sql = '';
		if (isset($HTTP_GET_VARS['hnr']))
		{
			if (is_numeric($HTTP_GET_VARS['hnr']))
			{
				$noreply = time() - intval($HTTP_GET_VARS['hnr']) * 100;
				$noreply_sql = 'AND p2.post_time > ' . $noreply;
			}
			else
			{
				$error = true;
				output_die('Error: Wrong value for argument (no reply)');
			}
		}

		$startdate_sql = '';
		if (isset($HTTP_GET_VARS['hsd']))
		{
			if (is_numeric($HTTP_GET_VARS['hsd']))
			{
				$startdate = time() - intval($HTTP_GET_VARS['hsd']) * 100;
				$startdate_sql = 'AND p.post_time > ' . $startdate;
			}
			else
			{
				$error = true;
				output_die('Error: Wrong value for argument (start date)');
			}
		}

		if (isset($HTTP_GET_VARS['a']))
		{
			if ($HTTP_GET_VARS['a'] == 'y')
			{
				$announce_sql = '';
			}
			else
			{
				$error = true;
				output_die('Error: Wrong value for argument (announcement)');
			}
		}
		else
		{
			$announce_sql = 'AND t.topic_type <> ' . POST_ANNOUNCE;
		}

		if (isset($HTTP_GET_VARS['s']))
		{
			if ($HTTP_GET_VARS['s'] == 'y')
			{
				$sticky_sql = '';
			}
			else
			{
				$error = true;
				output_die('Error: Wrong value for argument (sticky)');
			}
		}
		else
		{
			$sticky_sql = "AND t.topic_type <> " . POST_STICKY;
		}

		if (isset($HTTP_GET_VARS['l']))
		{
			if ($HTTP_GET_VARS['l'] == 'y')
			{
				$locked_sql = '';
			}
			else
			{
				$error = true;
				output_die('Error: Wrong value for argument (locked)');
			}
		}
		else
		{
			$locked_sql = "AND t.topic_status <> " . TOPIC_LOCKED;
		}

		if (isset($HTTP_GET_VARS['m']))
		{
			if ($HTTP_GET_VARS['m'] == 'y')
			{
				$locked_sql = '';
			}
			else
			{
				$error = true;
				output_die('Error: Wrong value for argument (moved)');
			}
		}
		else
		{
			$moved_sql = "AND t.topic_status <> " . TOPIC_MOVED;
		}

		if (isset($HTTP_GET_VARS['rt']))
		{
			if ($HTTP_GET_VARS['rt'] == 'n')
			{
				$reg_sql = "AND t.topic_type <> " . POST_NORMAL;
			}
			else
			{
				$error = true;
				output_die('Error: Wrong value for argument (regular topics)');
			}
		}
		else
		{
			$reg_sql = '';
		}

		if (isset($HTTP_GET_VARS['so']) && $HTTP_GET_VARS['so'] == 'd')
		{
			$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time, f.forum_name
				FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2, " . FORUMS_TABLE . " f
				WHERE t.topic_poster = u.user_id
				$forum_sql
				AND p.post_id = t.topic_first_post_id
				AND p2.post_id = t.topic_last_post_id
				AND t.forum_id = f.forum_id
				AND u2.user_id = p2.poster_id
				$noreply_sql
				$startdate_sql
				$announce_sql
				$sticky_sql
				$locked_sql
				$moved_sql
				$reg_sql
				ORDER BY t.topic_last_post_id DESC
				LIMIT $limit";

			if ( !($result = $db->sql_query($sql)) )
			{
				$error = true;
				output_die('General Error: Could not obtain topic information (topics sql)');
			}

			$total_topics = 0;
			while( $row = $db->sql_fetchrow($result) )
			{
				$topic_rowset[] = $row;
				$total_topics++;
			}

			$db->sql_freeresult($result);
		}
		else
		{
			if (isset($HTTP_GET_VARS['a']))
			{
				if ($HTTP_GET_VARS['a'] == 'y')
				{
					$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username, f.forum_name
						FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2, " . FORUMS_TABLE . " f
						WHERE t.topic_poster = u.user_id
						$forum_sql
						AND p.post_id = t.topic_last_post_id
						AND p.poster_id = u2.user_id
						AND t.forum_id = f.forum_id
						AND t.topic_type = " . POST_ANNOUNCE . "
						$noreply_sql
						$startdate_sql
						ORDER BY t.topic_last_post_id DESC
						LIMIT $limit";

					if ( !($result = $db->sql_query($sql)) )
					{
						$error = true;
						output_die('General Error: Could not obtain topic information (announce sql)');
					}

					$topic_rowset = array();
					$total_announcements = 0;
					while( $row = $db->sql_fetchrow($result) )
					{
						$topic_rowset[] = $row;
						$total_announcements++;
					}

					$db->sql_freeresult($result);
				}
				else
				{
					$error = true;
					output_die('Error: Wrong value for argument (announce)');
				}
			}
			else
			{
				$topic_rowset = array();
				$total_announcements = 0;
			}

			$limit = $limit - $total_announcements;

			if ($limit < 1)
			{
				$limit = 0;
			}

			if ($limit)
			{
				$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time, f.forum_name
					FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2, " . FORUMS_TABLE . " f
					WHERE t.topic_poster = u.user_id
					$forum_sql
					AND p.post_id = t.topic_first_post_id
					AND p2.post_id = t.topic_last_post_id
					AND t.forum_id = f.forum_id
					AND u2.user_id = p2.poster_id
					AND t.topic_type <> " . POST_ANNOUNCE . "
					$noreply_sql
					$startdate_sql
					$sticky_sql
					$locked_sql
					$moved_sql
					$reg_sql
					ORDER BY t.topic_type DESC, t.topic_last_post_id DESC
					LIMIT $limit";

				if ( !($result = $db->sql_query($sql)) )
				{
					$error = true;
					output_die('General Error: Could not obtain topic information (topics sql)');
				}

				$total_topics = 0;
				while( $row = $db->sql_fetchrow($result) )
				{
					$topic_rowset[] = $row;
					$total_topics++;
				}

				$db->sql_freeresult($result);
			}

			$total_topics += $total_announcements;
		}

		// Define censored word matches
		$orig_word = array();
		$replacement_word = array();
		obtain_word_list($orig_word, $replacement_word);

		if($total_topics) // topics?
		{
			for($i = 0; $i < $total_topics; $i++) // the loop - transfer data from rowset to different array
			{
				$data[$i]['topic_id'] = $topic_rowset[$i]['topic_id'];
				$data[$i]['topic_last_post_id'] = $topic_rowset[$i]['topic_last_post_id'];
				$data[$i]['topic_title'] = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $topic_rowset[$i]['topic_title']) : $topic_rowset[$i]['topic_title'];
				$data[$i]['replies'] = $topic_rowset[$i]['topic_replies'];
				$data[$i]['topic_type'] = $topic_rowset[$i]['topic_type'];
				$data[$i]['forum_id'] = $topic_rowset[$i]['forum_id'];
				$data[$i]['forum_name'] = $topic_rowset[$i]['forum_name'];

				$temp = $data[$i]['replies'];
				$data[$i]['replies'] = '';
				if (isset($HTTP_GET_VARS['r']))
				{
					if ($HTTP_GET_VARS['r'] == 'y')
					{
						if (isset($HTTP_GET_VARS['sr']))
						{
							if ($HTTP_GET_VARS['sr'] == 'y')
							{
								$data[$i]['replies'] = $temp . ' ' . (($temp == '1')? $lang['Reply'] : $lang['Replies']);
							}
							else
							{
								$error = true;
								output_die('Error: Wrong value for argument (showrepliesword)');
							}
						}
						else
						{
							$data[$i]['replies'] = $temp;
						}
					}
					else
					{
						$error = true;
						output_die('Error: Wrong value for argument (replies)');
					}
				}

				$temp = $data[$i]['forum_name'];
				$data[$i]['forum_name'] = '';
				if (isset($HTTP_GET_VARS['sfn']))
				{
					if ($HTTP_GET_VARS['sfn'] == 'y')
					{
						$data[$i]['forum_name'] = $temp;
					}
					else
					{
						$error = true;
						output_die('Error: Wrong value for argument (show forum name)');
					}
				}

				if( $data[$i]['topic_type'] == POST_ANNOUNCE )
				{
					if (isset($HTTP_GET_VARS['h']))
					{
						if (strstr($HTTP_GET_VARS['h'], 'a'))
						{
							$data[$i]['topic_type'] = '';
						}
						else
						{
							$data[$i]['topic_type'] = $lang['Topic_Announcement'];
						}
					}
					else
					{
						$data[$i]['topic_type'] = $lang['Topic_Announcement'];
					}
				}
				else if( $data[$i]['topic_type'] == POST_STICKY )
				{
					if (isset($HTTP_GET_VARS['h']))
					{
						if (strstr($HTTP_GET_VARS['h'], 's'))
						{
							$data[$i]['topic_type'] = '';
						}
						else
						{
							$data[$i]['topic_type'] = $lang['Topic_Sticky'];
						}
					}
					else
					{
						$data[$i]['topic_type'] = $lang['Topic_Sticky'];
					}
				}
				else
				{
					$data[$i]['topic_type'] = '';
				}

				if( $topic_rowset[$i]['topic_vote'] )
				{
					if (isset($HTTP_GET_VARS['h']))
					{
						if (!strstr($HTTP_GET_VARS['h'], 'p'))
						{
							$data[$i]['topic_type'] .= ($data[$i]['topic_type'] == '') ? '' : ' ';
							$data[$i]['topic_type'] .= $lang['Topic_Poll'];
						}
					}
					else
					{
						$data[$i]['topic_type'] .= ($data[$i]['topic_type']) ? '' : ' ';
						$data[$i]['topic_type'] .= $lang['Topic_Poll'];
					}
				}

				if( $topic_rowset[$i]['topic_status'] == TOPIC_MOVED )
				{
					if (isset($HTTP_GET_VARS['h']))
					{
						if (!strstr($HTTP_GET_VARS['h'], 'm'))
						{
							$data[$i]['topic_type'] .= ($data[$i]['topic_type'] == '') ? '' : ' ';
							$data[$i]['topic_type'] .= $lang['Topic_Moved'];
						}
					}
					else
					{
						$data[$i]['topic_type'] .= ($data[$i]['topic_type'] == '') ? '' : ' ';
						$data[$i]['topic_type'] .= $lang['Topic_Moved'];
					}
					$data[$i]['topic_id'] = $topic_rowset[$i]['topic_moved_id'];
				}

				if( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED )
				{
					if (isset($HTTP_GET_VARS['h']))
					{
						if (!strstr($HTTP_GET_VARS['h'], 'l'))
						{
							$data[$i]['topic_type'] .= ($data[$i]['topic_type'] == '') ? '' : ' ';
							$data[$i]['topic_type'] .= $lang['Topic_Locked'];
						}
					}
					else
					{
						$data[$i]['topic_type'] .= ($data[$i]['topic_type'] == '') ? '' : ' ';
						$data[$i]['topic_type'] .= $lang['Topic_Locked'];
					}
				}

				$data[$i]['last_post_author'] = '';
				if (isset($HTTP_GET_VARS['lpb']))
				{
					$data[$i]['last_post_author'] = ( $topic_rowset[$i]['id2'] == ANONYMOUS ) ? ( ($topic_rowset[$i]['post_username2'] != '' ) ? $topic_rowset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : $topic_rowset[$i]['user2'];
					if (is_numeric($HTTP_GET_VARS['lpb']))
					{
						if (intval($HTTP_GET_VARS['lpb']) == 1)
						{
							$data[$i]['last_post_author'] = $lang['Lastpost_from'] . ' ' . $data[$i]['last_post_author'];
						}
					}
				}

				$data[$i]['last_post_time'] = '';
				if (isset($HTTP_GET_VARS['lpd']))
				{
					if (is_numeric($HTTP_GET_VARS['lpd']))
					{
						if (intval($HTTP_GET_VARS['lpd']) < count($date_formats))
						{
							$data[$i]['last_post_time'] = create_date($date_formats[$HTTP_GET_VARS['lpd']], $topic_rowset[$i]['post_time'], $board_config['board_timezone']);
						}
						else
						{
							$data[$i]['last_post_time'] = create_date($board_config['default_dateformat'], $topic_rowset[$i]['post_time'], $board_config['board_timezone']);
						}
					}
					else
					{
						$data[$i]['last_post_time'] = create_date($board_config['default_dateformat'], $topic_rowset[$i]['post_time'], $board_config['board_timezone']);
					}
				}

				if (isset($HTTP_GET_VARS['ch']))
				{
					if (is_numeric($HTTP_GET_VARS['ch']))
					{
						$max_title_length = intval($HTTP_GET_VARS['ch']);
						if ($max_title_length > 0)
						{
							$trans = get_html_translation_table(HTML_ENTITIES);
							$trans = array_flip($trans);
							$data[$i]['topic_title'] = strtr($data[$i]['topic_title'], $trans);

							if (strlen($data[$i]['topic_title']) > $max_title_length)
							{
								if (isset($HTTP_GET_VARS['chw']))
								{
									if ($HTTP_GET_VARS['chw'] == 'p')
									{
										$data[$i]['topic_title'] = (strstr(strrev(substr($data[$i]['topic_title'], 0, $max_title_length)), ' ')) ? strrev(strstr(strrev(substr($data[$i]['topic_title'], 0, $max_title_length)), ' ')) . '...' : substr($data[$i]['topic_title'], 0, $max_title_length) . '...';
									}
									else if ($HTTP_GET_VARS['chw'] == 'n')
									{
										$topic_title_orig = $data[$i]['topic_title'];
										$data[$i]['topic_title'] = substr($topic_title_orig, 0, $max_title_length);
										$lastpart = substr($topic_title_orig, strlen($data[$i]['topic_title']));
										if (strrpos(strrev($lastpart), ' ') === false)
										{
											$data[$i]['topic_title'] = $topic_title_orig;
										}
										else
										{
											$data[$i]['topic_title'] .= substr($lastpart, 0, -(strrpos(strrev($lastpart), ' ')))  . '...';
										}
									}
									else
									{
										$data[$i]['topic_title'] = substr($data[$i]['topic_title'], 0, $max_title_length) . '...';
									}
								}
								else
								{
									$data[$i]['topic_title'] = substr($data[$i]['topic_title'], 0, $max_title_length) . '...';
								}
							}

							$trans = array_flip($trans);
							$data[$i]['topic_title'] = strtr($data[$i]['topic_title'], $trans);
						}
					}
				}
			}
		}
		else
		{
			$data = false; // no topics
		}

		unset($topic_rowset); // free some memory

		// start with the output of everything
		if ($out == 'js') {
			$css_link = '';
			if (isset($HTTP_GET_VARS['cl']))
			{
				if ($HTTP_GET_VARS['cl'] != '')
				{
					$css_link = ' class=\"' . $HTTP_GET_VARS['cl'] . '\"';
				}
				else
				{
					$error = true;
					output_die('Error: No value for argument (css_link)');
				}
			}

			$css_text_wrap_before = '';
			$css_text_wrap_after = '';
			if (isset($HTTP_GET_VARS['ct']))
			{
				if ($HTTP_GET_VARS['ct'] != '')
				{
					$css_text_wrap_before = '<span class=\"' . $HTTP_GET_VARS['ct'] . '\">';
					$css_text_wrap_after = '</span>';
				}
				else
				{
					$error = true;
					output_die('Error: No value for argument (css_text)');
				}
			}

			$target_link = ' target=\"_self\"';
			if (isset($HTTP_GET_VARS['t']))
			{
				if ($HTTP_GET_VARS['t'] != '')
				{
					$target_link = ' target=\"' . $HTTP_GET_VARS['t'] . '\"';
				}
				else
				{
					$error = true;
					output_die('Error: No value for argument (target_link)');
				}
			}

			$separator = ' - ';
			if (isset($HTTP_GET_VARS['br']))
			{
				if ($HTTP_GET_VARS['br'] == 'y')
				{
					$separator = '<br>';
				}
			}

			$html_list = false;
			$list_wrap_before = '';
			$list_wrap_after = '';
			if (isset($HTTP_GET_VARS['b']))
			{
				if ($HTTP_GET_VARS['b'] == 'dis' || $HTTP_GET_VARS['b'] == 'cir' || $HTTP_GET_VARS['b'] == 'squ' || $HTTP_GET_VARS['b'] == 'num')
				{
					$html_list = true;
					switch($HTTP_GET_VARS['b'])
					{
						case "dis":
							$html_wrap_before = '<ul type=\"disc\">';
							$html_wrap_after = '</ul>';
							break;
						case "cir":
							$html_wrap_before = '<ul type=\"circle\">';
							$html_wrap_after = '</ul>';
							break;
						case "squ":
							$html_wrap_before = '<ul type=\"square\">';
							$html_wrap_after = '</ul>';
							break;
						case "num":
							$html_wrap_before = '<ol type=\"1\">';
							$html_wrap_after = '</ol>';
							break;
						default:
							break;
					}
				}
			}

			if ($css_text_wrap_before != '')
			{
				echo "document.writeln('$css_text_wrap_before');\n";
			}

			if ($html_wrap_before != '')
			{
				echo "document.writeln('$html_wrap_before');\n";
			}

			if ($data !== false)
			{
				for($i = 0; $i < $total_topics; $i++)
				{
					if (isset($HTTP_GET_VARS['fnl']))
					{
						if ($HTTP_GET_VARS['fnl'] == 'y')
						{
							$data[$i]['forum_name'] = '<a href=\"' . $full_url . "/viewforum.$phpEx?" . POST_FORUM_URL . '=' . $data[$i]['forum_id'] . '\"' . $css_link . $target_link . '>' . addslashes($data[$i]['forum_name']) . '</a>';
						}
						else
						{
							$data[$i]['forum_name'] = addslashes($data[$i]['forum_name']);
						}
					}
					else
					{
						$data[$i]['forum_name'] = addslashes($data[$i]['forum_name']);
					}

					if (isset($HTTP_GET_VARS['jlp']))
					{
						if ($HTTP_GET_VARS['jlp'] == 'y')
						{
							$url_to_topic = '<a href=\"' . $full_url . "/viewtopic.$phpEx?" . POST_POST_URL . '=' . $data[$i]['topic_last_post_id'] . '#' . $data[$i]['topic_last_post_id'] . '\"' . $css_link . $target_link . '>' . addslashes($data[$i]['topic_title']) . '</a>';
						}
						else
						{
							$url_to_topic = '<a href=\"' . $full_url . "/viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $data[$i]['topic_id'] . '\"' . $css_link . $target_link . '>' . addslashes($data[$i]['topic_title']) . '</a>';
						}
					}
					else
					{
						$url_to_topic = '<a href=\"' . $full_url . "/viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $data[$i]['topic_id'] . '\"' . $css_link . $target_link . '>' . addslashes($data[$i]['topic_title']) . '</a>';
					}

					$last_post_url = '<a href=\"' . $full_url . "/viewtopic.$phpEx?"  . POST_POST_URL . '=' . $data[$i]['topic_last_post_id'] . '#' . $data[$i]['topic_last_post_id'] . '\"' . $css_link . $target_link . '><img src=\"' . $full_url . '/' . $images['icon_latest_reply'] . '\" alt=\"' . $lang['View_latest_post'] . '\" title=\"' . $lang['View_latest_post'] . '\" border=\"0\" /></a>';

					if ($adv_format)
					{
						$item = $af_string;
						$item = str_replace('§lbl§', addslashes($data[$i]['topic_type']), $item);
						$item = str_replace('§tt§', $url_to_topic, $item);
						$item = str_replace('§fn§', $data[$i]['forum_name'], $item);
						$item = str_replace('§rep§', addslashes($data[$i]['replies']), $item);
						$item = str_replace('§lpa§', addslashes($data[$i]['last_post_author']), $item);
						$item = str_replace('§lpt§', addslashes($data[$i]['last_post_time']), $item);
						$item = str_replace('§lpi§', $last_post_url, $item);
						$item = str_replace('§br§', '<br />', $item);
					}
					else
					{
						$item = addslashes($data[$i]['topic_type']);
						$item .= ($data[$i]['topic_type'] == '') ? '' : ' ';
						$item .= $url_to_topic;
						$item .= ($data[$i]['forum_name'] == '') ? '' : ' ' . addslashes($lang['In']) . ' ';
						$item .= $data[$i]['forum_name'];
						$item .= ($data[$i]['replies'] == '') ? '' : ' (';
						$item .= addslashes($data[$i]['replies']);
						$item .= ($data[$i]['replies'] == '') ? '' : ')';

						$item2 = addslashes($data[$i]['last_post_author']);
						$item2 .= ($data[$i]['last_post_time'] == '') ? '' : ', ';
						$item2 .= addslashes($data[$i]['last_post_time']);

						$item = ($item2 == '') ? $item : $item . $separator . $item2;

						if (isset($HTTP_GET_VARS['lpi']))
						{
							if ($HTTP_GET_VARS['lpi'] == 'y' && $HTTP_GET_VARS['b'] != 'lpi')
							{
								$item = $item . ' ' . $last_post_url;
							}
						}

						if (isset($HTTP_GET_VARS['bl']))
						{
							if ($HTTP_GET_VARS['bl'] == 'y')
							{
								$item = $item . '<br>';
							}
						}
					}

					if ($html_list)
					{
						$item = '<li>' . $item . '</li>';
					}
					else
					{
						if (isset($HTTP_GET_VARS['b']))
						{
							if ($HTTP_GET_VARS['b'] == 'non')
							{
								$item = $item . '<br>';
							}
							else if ($HTTP_GET_VARS['b'] == 'lpi')
							{
								$item = $last_post_url . ' ' . $item . '<br>';
							}
							else if (is_numeric($HTTP_GET_VARS['b']))
							{
								if (intval($HTTP_GET_VARS['b']) < count($bullets))
								{
									$item = $bullets[intval($HTTP_GET_VARS['b'])] . ' ' . $item . '<br>';
								}
								else
								{
									$error = true;
									output_die('Error: Wrong value for argument (bullet)');
								}
							}
							else
							{
								$error = true;
								output_die('Error: Wrong value for argument (bullet)');
							}
						}
					}

					echo "document.writeln('$item');\n";
				}
			}
			else // no topics
			{
				if ($html_list)
				{
					$item = '<li>' . $lang['No_topics'] . '</li>';
				}
				else
				{
					if (isset($HTTP_GET_VARS['b']))
					{
						if ($HTTP_GET_VARS['b'] == 'non' || $HTTP_GET_VARS['b'] == 'lpi')
						{
							$item = $lang['No_topics'] . '<br>';
						}
						else if (is_numeric($HTTP_GET_VARS['b']))
						{
							if (intval($HTTP_GET_VARS['b']) < count($bullets))
							{
								$item = $bullets[intval($HTTP_GET_VARS['b'])] . ' ' . $lang['No_topics'] . '<br>';
							}
							else
							{
								$error = true;
								output_die('Error: Wrong value for argument (bullet)');
							}
						}
					}
				}

				echo "document.writeln('$item');\n";
			}

			if ($html_wrap_before != '')
			{
				echo "document.writeln('$html_wrap_after');\n";
			}

			if ($css_text_wrap_before != '')
			{
				echo "document.writeln('$css_text_wrap_after');\n";
			}
		}
		else if ($out == 'rss')
		{
			header("Content-type: text/xml");
			echo generate_rss_header($version);

			if ($adv_format && strpos($af_string, '|') !== false)
			{
				$pos = strpos($af_string, '|');
			}
			else
			{
				$pos = false;
			}

			if ($data !== false)
			{
				for($i = 0; $i < $total_topics; $i++)
				{
					if ($adv_format)
					{
						if ($pos)
						{
							$title = substr($af_string, 0, $pos);
							$title = str_replace('§lbl§', htmlspecialchars(strip_tags($data[$i]['topic_type']), ENT_QUOTES, $lang['ENCODING']), $title);
							$title = str_replace('§tt§', htmlspecialchars($data[$i]['topic_title'], ENT_QUOTES, $lang['ENCODING']), $title);
							$title = str_replace('§fn§', htmlspecialchars($data[$i]['forum_name'], ENT_QUOTES, $lang['ENCODING']), $title);
							$title = str_replace('§rep§', htmlspecialchars($data[$i]['replies'], ENT_QUOTES, $lang['ENCODING']), $title);
							$title = str_replace('§lpa§', htmlspecialchars($data[$i]['last_post_author'], ENT_QUOTES, $lang['ENCODING']), $title);
							$title = str_replace('§lpt§', htmlspecialchars($data[$i]['last_post_time'], ENT_QUOTES, $lang['ENCODING']), $title);
							if ($title == '')
							{
								$title = htmlspecialchars($data[$i]['topic_title'], ENT_QUOTES, $lang['ENCODING']);
							}

							$desc = substr($af_string, $pos + 1);
							$desc = str_replace('§lbl§', htmlspecialchars(strip_tags($data[$i]['topic_type']), ENT_QUOTES, $lang['ENCODING']), $desc);
							$desc = str_replace('§tt§', htmlspecialchars($data[$i]['topic_title'], ENT_QUOTES, $lang['ENCODING']), $desc);
							$desc = str_replace('§fn§', htmlspecialchars($data[$i]['forum_name'], ENT_QUOTES, $lang['ENCODING']), $desc);
							$desc = str_replace('§rep§', htmlspecialchars($data[$i]['replies'], ENT_QUOTES, $lang['ENCODING']), $desc);
							$desc = str_replace('§lpa§', htmlspecialchars($data[$i]['last_post_author'], ENT_QUOTES, $lang['ENCODING']), $desc);
							$desc = str_replace('§lpt§', htmlspecialchars($data[$i]['last_post_time'], ENT_QUOTES, $lang['ENCODING']), $desc);
						}
						else
						{
							$item = $af_string;
							$item = str_replace('§lbl§', htmlspecialchars(strip_tags($data[$i]['topic_type'])), $item);
							$item = str_replace('§tt§', htmlspecialchars($data[$i]['topic_title'], ENT_QUOTES, $lang['ENCODING']), $item);
							$item = str_replace('§fn§', htmlspecialchars($data[$i]['forum_name'], ENT_QUOTES, $lang['ENCODING']), $item);
							$item = str_replace('§rep§', htmlspecialchars($data[$i]['replies'], ENT_QUOTES, $lang['ENCODING']), $item);
							$item = str_replace('§lpa§', htmlspecialchars($data[$i]['last_post_author'], ENT_QUOTES, $lang['ENCODING']), $item);
							$item = str_replace('§lpt§', htmlspecialchars($data[$i]['last_post_time'], ENT_QUOTES, $lang['ENCODING']), $item);
							$title = $item;
							$desc = '';
						}
					}
					else
					{
						$title = htmlspecialchars(strip_tags($data[$i]['topic_type']), ENT_QUOTES, $lang['ENCODING']);
						$title .= ($data[$i]['topic_type'] == '') ? '' : ' ';
						$title .= htmlspecialchars($data[$i]['topic_title'], ENT_QUOTES, $lang['ENCODING']);
						$title .= ($data[$i]['forum_name'] == '') ? '' : ' ' . htmlspecialchars($lang['In']) . ' ';
						$title .= htmlspecialchars($data[$i]['forum_name'], ENT_QUOTES, $lang['ENCODING']);

						$desc = htmlspecialchars($data[$i]['last_post_author'], E

Geplaatst: 31 aug 2004, 19:53
door Purmerend
Nu zit ik een ander topic te lezen,
Zou dit mischien een oplossing zijn?

http://www.phpbbhacks.com/viewhack.php?id=2099

En maakt het wat uit dat daar staat dat deze mod voor 2.06 is en ik 2.05 draai?

Geplaatst: 31 aug 2004, 21:17
door CG bandicoot
Purmerend schreef:
En maakt het wat uit dat daar staat dat deze mod voor 2.06 is en ik 2.05 draai?
Maakt in de meeste gevallen niks uit. ik heb paFileDb phpBB intergration bijvoorbeeld ook op 2.0.8 lopen terwijl er in staat : alleen voor 2.0.4.