phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

[Supporto]Icone sparite

Supporto per phpBB 3.0.x.
Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

[Supporto]Icone sparite

Messaggio da Haku » 29/11/2010, 2:50

Come da immagine (i pallini rossi),non sono presenti le icone.
Nella cartella sono presenti,ma li non le visualizza...ho aggiornato il file di lingua come da file,ma non credo sia quello il problema (?):
Immagine

Stessa cosa mi succede pure nell'index:
Immagine

In caso,vi posto anche il common.php del language (solo il pezzo interessato),e il vieforum_body (vi dico già che ho controllato l'imageset anche da ACP e l'immagine è assegnata):

Codice: Seleziona tutto

	'NEW_POST'					=> 'Nuovo messaggio',	// Not used anymore
	'NEW_POSTS'					=> 'Nuovi messaggi',	// Not used anymore

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->

<!-- IF S_FORUM_RULES -->
	<div class="forumrules">
		<!-- IF U_FORUM_RULES -->
			<h3>{L_FORUM_RULES}</h3><br />
			<a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
		<!-- ELSE -->
			<h3>{L_FORUM_RULES}</h3><br />
			{FORUM_RULES}
		<!-- ENDIF -->
	</div>

	<br clear="all" />
<!-- ENDIF -->

<!-- IF S_DISPLAY_ACTIVE -->
	<table class="tablebg" width="100%" cellspacing="1">
	    <tr>
		    <td class="cat" colspan="6"><span class="nav">{L_ACTIVE_TOPICS}</span></td>
	    </tr>
		<tr>
            <th colspan="2"><!-- IF S_DISPLAY_SEARCHBOX --><div style="float: left;"><!-- INCLUDE searchbox.html --></div><!-- ENDIF -->&nbsp;{L_TOPICS}&nbsp;</th>
		    <th>&nbsp;{L_REPLIES}&nbsp;</th>		
		    <th>&nbsp;{L_AUTHOR}&nbsp;</th>
		    <th>&nbsp;{L_VIEWS}&nbsp;</th>
		    <th>&nbsp;{L_LAST_POST}&nbsp;</th>
		</tr>
		<!-- BEGIN topicrow -->
		    <tr>
			    <td class="row1" width="25" align="center">
			        {topicrow.TOPIC_FOLDER_IMG}
				    <!-- IF topicrow.TOPIC_ICON_IMG --><span style="position: absolute; <!-- IF S_CONTENT_DIRECTION eq 'rtl' -->margin-right: -30px; <!-- ELSE --> margin-left: -30px;<!-- ENDIF --> margin-top: 10px;"><img src="{T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}" width="{topicrow.TOPIC_ICON_IMG_WIDTH}" height="{topicrow.TOPIC_ICON_IMG_HEIGHT}" alt="" title="" /></span><!-- ENDIF -->
			    </td>
			    <td class="row1" width="100%">
<!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --> 
				    {topicrow.ATTACH_ICON_IMG} <!-- IF topicrow.S_HAS_POLL or topicrow.S_TOPIC_MOVED --><b>{topicrow.TOPIC_TYPE}</b> <!-- ENDIF --><a title="{L_POSTED}: {topicrow.FIRST_POST_TIME}" href="{topicrow.U_VIEW_TOPIC}"class="topictitle">{topicrow.TOPIC_TITLE}</a>
				    <!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED -->
					    <a href="{topicrow.U_MCP_QUEUE}">{UNAPPROVED_IMG}</a>&nbsp;
				    <!-- ENDIF -->
				    <!-- IF topicrow.S_TOPIC_REPORTED -->
					    <a href="{topicrow.U_MCP_REPORT}">{REPORTED_IMG}</a>&nbsp;
				    <!-- ENDIF -->
				    <!-- IF topicrow.PAGINATION -->
					    <p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
				    <!-- ENDIF -->
			    </td>
				<td class="row2" width="50" align="center"><p class="topicdetails">{topicrow.REPLIES}</p></td>
				<td class="row3" width="130" align="center"><p class="topicauthor">{topicrow.TOPIC_AUTHOR_FULL}</p></td>
				<td class="row2" width="50" align="center"><p class="topicdetails">{topicrow.VIEWS}</p></td>
				<td class="row3" width="140" align="center">
				    <p class="topicdetails" style="white-space: nowrap;">{topicrow.LAST_POST_TIME}</p>
					<p class="topicdetails">{topicrow.LAST_POST_AUTHOR_FULL}
					    <!-- IF not S_IS_BOT --><a href="{topicrow.U_LAST_POST}">{LAST_POST_IMG}</a><!-- ENDIF -->
					</p>
				</td>
			</tr>
		<!-- BEGINELSE -->
		    <tr>
				    <td class="row1" colspan="6" height="30" align="center" valign="middle"><span class="gen"><!-- IF not S_SORT_DAYS -->{L_NO_TOPICS}<!-- ELSE -->{L_NO_TOPICS_TIME_FRAME}<!-- ENDIF --></span></td>
			</tr>
		<!-- END topicrow -->
		<tr align="center">
		    <td class="cat" colspan="<!-- IF S_TOPIC_ICONS -->7<!-- ELSE -->6<!-- ENDIF -->">&nbsp;</td>
	    </tr>
	</table>

	<br clear="all" />
<!-- ENDIF -->

<!-- IF S_HAS_SUBFORUM -->
	<!-- INCLUDE forumlist_body.html -->
	<br clear="all" />
<!-- ENDIF -->

<!-- IF S_IS_POSTABLE or S_NO_READ_ACCESS -->
	<div id="pageheader">
	    <br clear="all" />
		<h2><a class="titles" href="{U_VIEW_FORUM}">{FORUM_NAME}</a></h2>
<!-- Modifica Gym -->
		<!-- IF GYM_LINKS_CAT --><h3>{GYM_HTML_FORUM_NEWS_LINK} {GYM_HTML_FORUM_MAP_LINK} {GYM_RSS_FORUM_LINK} {GYM_GOOGLE_FORUM_LINK}</h3><!-- ENDIF -->
<!-- Fine Modifica -->

		<!-- IF MODERATORS -->
			<p class="moderators"><!-- IF S_SINGLE_MODERATOR -->{L_MODERATOR}<!-- ELSE -->{L_MODERATORS}<!-- ENDIF -->: {MODERATORS}</p>
		<!-- ENDIF -->
		<!-- IF U_MCP -->
			<p class="linkmcp">[ <a href="{U_MCP}">{L_MCP}</a> ]</p>
		<!-- ENDIF -->
	</div>

	<br clear="all" />
<!-- ENDIF -->

<div id="pagecontent">
<!-- IF S_NO_READ_ACCESS -->
	<table class="tablebg" width="100%" cellspacing="1">
	    <tr>
		    <td class="row1" height="30" align="center" valign="middle"><span class="gen">{L_NO_READ_ACCESS}</span></td>
	    </tr>
	</table>

	<!-- IF not S_USER_LOGGED_IN and not S_IS_BOT -->
		<br /><br />
		<form method="post" action="{S_LOGIN_ACTION}">
		    <table class="tablebg" width="100%" cellspacing="1">
		        <tr>
			        <td class="cat"><h4><a href="{U_LOGIN_LOGOUT}">{L_LOGIN_LOGOUT}</a></h4></td>
		        </tr>
		        <tr>
			        <td class="row1" align="center"><span class="genmed">{L_USERNAME}:</span> <input class="post" type="text" name="username" size="10" />&nbsp; <span class="genmed">{L_PASSWORD}:</span> <input class="post" type="password" name="password" size="10" /><!-- IF S_AUTOLOGIN_ENABLED -->&nbsp; <span class="gensmall">{L_LOG_ME_IN}</span> <input type="checkbox" class="radio" name="autologin" /><!-- ENDIF -->&nbsp; <input type="submit" class="btnmain" name="login" value="{L_LOGIN}" /></td>
		        </tr>
		    </table>
		</form>
	<!-- ENDIF -->

	<br clear="all" />
<!-- ENDIF -->

<!-- IF S_DISPLAY_POST_INFO or TOTAL_TOPICS -->
	<table width="100%" cellspacing="1">
		<tr>
			<!-- IF S_DISPLAY_POST_INFO and not S_IS_BOT -->
				<td align="{S_CONTENT_FLOW_BEGIN}" valign="middle"><a href="{U_POST_NEW_TOPIC}">{POST_IMG}</a></td>
			<!-- ENDIF -->
			<!-- IF TOTAL_TOPICS -->
				<td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
				<td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_TOPICS} ]&nbsp;</td>
				<td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
			<!-- ENDIF -->
		</tr>
	</table>
<!-- ENDIF -->

<!-- IF not S_DISPLAY_ACTIVE and (S_IS_POSTABLE or .topicrow) -->
        <!-- IF S_WATCH_FORUM_LINK and not S_IS_BOT --><p style="float: {S_CONTENT_FLOW_BEGIN};"><a class="nav" href="{S_WATCH_FORUM_LINK}">{S_WATCH_FORUM_TITLE}</a></p><!-- ENDIF -->
	    <!-- IF not S_IS_BOT and U_MARK_TOPICS --><p style="float: {S_CONTENT_FLOW_END};"><a class="nav" href="{U_MARK_TOPICS}">{L_MARK_TOPICS_READ}</a></p><!-- ENDIF -->	    
		<table class="tablebg" width="100%" cellspacing="1">
		    <tr>
			    <th colspan="2"><!-- IF S_DISPLAY_SEARCHBOX --><div style="float: left;"><!-- INCLUDE searchbox.html --></div><!-- ENDIF -->&nbsp;{L_TOPICS}&nbsp;</th>
				<th>&nbsp;{L_REPLIES}&nbsp;</th>
				<th>&nbsp;{L_AUTHOR}&nbsp;</th>
				<th>&nbsp;{L_VIEWS}&nbsp;</th>
				<th>&nbsp;{L_LAST_POST}&nbsp;</th>
		</tr>

		<!-- BEGIN topicrow -->
		    <!-- IF topicrow.S_TOPIC_TYPE_SWITCH eq 1 -->
				<tr>
					<td class="row3" colspan="6"><b class="gensmall">{L_ANNOUNCEMENTS}</b></td>
				</tr>
			<!-- ELSEIF topicrow.S_TOPIC_TYPE_SWITCH eq 0 -->
				<tr>
					<td class="row3" colspan="6"><b class="gensmall">{L_TOPICS}</b></td>
				</tr>
			<!-- ENDIF -->
			<tr>
				<td class="row1" width="25" align="center">
				    {topicrow.TOPIC_FOLDER_IMG}
				    <!-- IF topicrow.TOPIC_ICON_IMG --><span style="position: absolute; <!-- IF S_CONTENT_DIRECTION eq 'rtl' -->margin-right: -30px; <!-- ELSE --> margin-left: -30px;<!-- ENDIF --> margin-top: 10px;"><img src="{T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}" width="{topicrow.TOPIC_ICON_IMG_WIDTH}" height="{topicrow.TOPIC_ICON_IMG_HEIGHT}" alt="" title="" /></span><!-- ENDIF -->
                </td>
				<td class="row1" width="100%">
<!-- Tipo Topic2 -->
<!-- Tipo Topic fine2-->
					<!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a><!-- ENDIF -->
					{topicrow.ATTACH_ICON_IMG} <!-- IF topicrow.TOPIC_TYPE --><b>{topicrow.TOPIC_TYPE}</b> <!-- ENDIF --><a title="{L_POSTED}: {topicrow.FIRST_POST_TIME}" href="{topicrow.U_VIEW_TOPIC}" class="topictitle">{topicrow.TOPIC_TITLE}</a>
					<!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED -->
						<a href="{topicrow.U_MCP_QUEUE}">{topicrow.UNAPPROVED_IMG}</a>&nbsp;
					<!-- ENDIF -->
					<!-- IF topicrow.S_TOPIC_REPORTED -->
						<a href="{topicrow.U_MCP_REPORT}">{REPORTED_IMG}</a>&nbsp;
					<!-- ENDIF -->
					<!-- IF topicrow.PAGINATION -->
						<p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
					<!-- ENDIF -->
				</td>
				<td class="row2" width="50" align="center"><p class="topicdetails">{topicrow.REPLIES}</p></td>				
				<td class="row3" width="130" align="center"><p class="topicauthor">{topicrow.TOPIC_AUTHOR_FULL}</p></td>
				<td class="row2" width="50" align="center"><p class="topicdetails">{topicrow.VIEWS}</p></td>
				<td class="row3" width="140" align="center">
					<p class="topicdetails" style="white-space: nowrap;">{topicrow.LAST_POST_TIME}</p>
					<p class="topicdetails">{topicrow.LAST_POST_AUTHOR_FULL}
						<!-- IF not S_IS_BOT --><a href="{topicrow.U_LAST_POST}">{LAST_POST_IMG}</a><!-- ENDIF -->
					</p>
				</td>
			</tr>
		<!-- BEGINELSE -->
			<!-- IF S_IS_POSTABLE -->
			    <tr>
					<td class="row1" colspan="6" height="30" align="center" valign="middle"><span class="gen"><!-- IF not S_SORT_DAYS -->{L_NO_TOPICS}<!-- ELSE -->{L_NO_TOPICS_TIME_FRAME}<!-- ENDIF --></span></td>
			    </tr>
			<!-- ENDIF -->
		<!-- END topicrow -->

		<!-- IF not S_IS_BOT -->
		    <tr align="center">
			    <td class="cat" colspan="6">
				    <form method="post" action="{S_FORUM_ACTION}"><span class="gensmall">{L_DISPLAY_TOPICS}:</span>&nbsp;{S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" name="sort" value="{L_GO}" /></form>
				</td>
			</tr>
		<!-- ENDIF -->
	</table>
<!-- ENDIF -->

<!-- IF S_DISPLAY_POST_INFO or TOTAL_TOPICS -->
	<table width="100%" cellspacing="1">
		<tr>
			<!-- IF S_DISPLAY_POST_INFO and not S_IS_BOT -->
				<td align="{S_CONTENT_FLOW_BEGIN}" valign="middle"><a href="{U_POST_NEW_TOPIC}">{POST_IMG}</a></td>
			<!-- ENDIF -->
			<!-- IF TOTAL_TOPICS -->
				<td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
				<td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_TOPICS} ]&nbsp;</td>
				<td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
			<!-- ENDIF -->
		</tr>
	</table>
<!-- ENDIF -->
<br clear="all" />
</div>

<div style="float: {S_CONTENT_FLOW_BEGIN};"><!-- INCLUDE breadcrumbs.html --></div><div style="float: {S_CONTENT_FLOW_END}; margin-top: -10px;"><!-- INCLUDE jumpbox.html --></div>
<br clear="all" />
<!-- IF S_DISPLAY_ONLINE_LIST -->
    <br clear="all" />
	<h4>{L_WHO_IS_ONLINE}</h4>
	<p>{LOGGED_IN_USER_LIST}</p>
<!-- ENDIF -->

<!-- IF S_DISPLAY_POST_INFO -->
<br clear="all" />
<table width="100%" cellspacing="0">
	<tr>
		<td align="{S_CONTENT_FLOW_BEGIN}" valign="top">
			<table cellspacing="3" cellpadding="0" border="0">
			<tr>
				<td width="20" style="text-align: center;">{FOLDER_NEW_IMG}</td>
				<td class="gensmall">{L_NEW_POSTS}</td>
				<td>&nbsp;&nbsp;</td>
				<td width="20" style="text-align: center;">{FOLDER_IMG}</td>
				<td class="gensmall">{L_NO_NEW_POSTS}</td>
				<td>&nbsp;&nbsp;</td>
				<td width="20" style="text-align: center;">{FOLDER_ANNOUNCE_IMG}</td>
				<td class="gensmall">{L_ICON_ANNOUNCEMENT}</td>
			</tr>
			<tr>
				<td style="text-align: center;">{FOLDER_HOT_NEW_IMG}</td>
				<td class="gensmall">{L_NEW_POSTS_HOT}</td>
				<td>&nbsp;&nbsp;</td>
				<td style="text-align: center;">{FOLDER_HOT_IMG}</td>
				<td class="gensmall">{L_NO_NEW_POSTS_HOT}</td>
				<td>&nbsp;&nbsp;</td>
				<td style="text-align: center;">{FOLDER_STICKY_IMG}</td>
				<td class="gensmall">{L_ICON_STICKY}</td>			
			</tr>
			<tr>
				<td style="text-align: center;">{FOLDER_LOCKED_NEW_IMG}</td>
				<td class="gensmall">{L_NEW_POSTS_LOCKED}</td>
				<td>&nbsp;&nbsp;</td>
				<td style="text-align: center;">{FOLDER_LOCKED_IMG}</td>
				<td class="gensmall">{L_NO_NEW_POSTS_LOCKED}</td>
				<td>&nbsp;&nbsp;</td>
				<td style="text-align: center;">{FOLDER_MOVED_IMG}</td>
				<td class="gensmall">{L_TOPIC_MOVED}</td>
			</tr>
			</table>
		</td>
		<td valign="top" align="{S_CONTENT_FLOW_END}"><span class="gensmall"><!-- BEGIN rules -->{rules.RULE}<br /><!-- END rules --></span></td>
	</tr>
</table>
<!-- ENDIF -->
<br clear="all" />
<!-- INCLUDE overall_footer.html -->

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Micogian » 29/11/2010, 12:15

Questa è la parte interessata:

Codice: Seleziona tutto

         <tr>
            <td width="20" style="text-align: center;">{FOLDER_NEW_IMG}</td>
            <td class="gensmall">{L_NEW_POSTS}</td>
            <td>&nbsp;&nbsp;</td>
            <td width="20" style="text-align: center;">{FOLDER_IMG}</td>
            <td class="gensmall">{L_NO_NEW_POSTS}</td>
            <td>&nbsp;&nbsp;</td>
            <td width="20" style="text-align: center;">{FOLDER_ANNOUNCE_IMG}</td>
            <td class="gensmall">{L_ICON_ANNOUNCEMENT}</td>
         </tr>
Ora si tratta di capire perchè {FOLDER_NEW_IMG} non venga visualizzata mentre {FOLDER_IMG} e {FOLDER_ANNOUNCE_IMG} invece si vedono normalmente.
Si tratta di andare a vedere dove vengono create queste variabili, non so se sono relative a qualche Mod.
Mi risulta che FOLDER_IMG venga creato in viewforum.php, non FOLDER_NEW_IMG che potrebbe riguardare una Mod e quindi, se hai aggiornato, non esserci più.
Controlla in viewforum.php.
Potresti anche controllare se la variabile è creata da un'altra parte con il comando Agent Ransack, che puoi scaricare dalla rete.
E' gratuito e permette di trovare una stringa in un gruppo di file di una directory e sottodirectory selezionate.
Devi avere i file in locale, se non c'è in viewforum.php prova nella cartella includes.

Lo stesso discorso vale per le altre due immagini che non si vedono.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Carlo » 29/11/2010, 17:46

Controlla nell'ACP, se nel set-immagini l'icona per i "nuovi messaggi" è impostata o meno.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Haku » 29/11/2010, 17:56

Allora,ho controllato il file viewforum.php:

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
if (empty($_REQUEST['f'])) {
	$phpbb_seo->get_forum_id($session_forum_id);
	if ($session_forum_id == 0) {
		header('HTTP/1.1 404 Not Found');
	} else {
		$_REQUEST['f'] = (int) $session_forum_id;
	}
}
// www.phpBB-SEO.com SEO TOOLKIT END

// Start session
$user->session_begin();
$auth->acl($user->data);

// Start initial var setup
$forum_id	= request_var('f', 0);
$mark_read	= request_var('mark', '');
$start		= request_var('start', 0);

$default_sort_days	= (!empty($user->data['user_topic_show_days'])) ? $user->data['user_topic_show_days'] : 0;
$default_sort_key	= (!empty($user->data['user_topic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't';
$default_sort_dir	= (!empty($user->data['user_topic_sortby_dir'])) ? $user->data['user_topic_sortby_dir'] : 'd';

$sort_days	= request_var('st', $default_sort_days);
$sort_key	= request_var('sk', $default_sort_key);
$sort_dir	= request_var('sd', $default_sort_dir);

// Check if the user has actually sent a forum ID with his/her request
// If not give them a nice error page.
if (!$forum_id)
{
	trigger_error('NO_FORUM');
}

$sql_from = FORUMS_TABLE . ' f';
$lastread_select = '';

// Grab appropriate forum data
if ($config['load_db_lastread'] && $user->data['is_registered'])
{
	$sql_from .= ' LEFT JOIN ' . FORUMS_TRACK_TABLE . ' ft ON (ft.user_id = ' . $user->data['user_id'] . '
		AND ft.forum_id = f.forum_id)';
	$lastread_select .= ', ft.mark_time';
}

if ($user->data['is_registered'])
{
	$sql_from .= ' LEFT JOIN ' . FORUMS_WATCH_TABLE . ' fw ON (fw.forum_id = f.forum_id AND fw.user_id = ' . $user->data['user_id'] . ')';
	$lastread_select .= ', fw.notify_status';
}

$sql = "SELECT f.* $lastread_select
	FROM $sql_from
	WHERE f.forum_id = $forum_id";
$result = $db->sql_query($sql);
$forum_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

if (!$forum_data)
{
	trigger_error('NO_FORUM');
}
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
$phpbb_seo->set_url($forum_data['forum_name'], $forum_data['forum_id'], $phpbb_seo->seo_static['forum']);
// www.phpBB-SEO.com SEO TOOLKIT END


// Configure style, language, etc.
$user->setup('viewforum', $forum_data['forum_style']);

// Redirect to login upon emailed notification links
if (isset($_GET['e']) && !$user->data['is_registered'])
{
	login_box('', $user->lang['LOGIN_NOTIFY_FORUM']);
}

// Permissions check
if (!$auth->acl_gets('f_list', 'f_read', $forum_id) || ($forum_data['forum_type'] == FORUM_LINK && $forum_data['forum_link'] && !$auth->acl_get('f_read', $forum_id)))
{
	if ($user->data['user_id'] != ANONYMOUS)
	{
		trigger_error('SORRY_AUTH_READ');
	}

	login_box('', $user->lang['LOGIN_VIEWFORUM']);
}

// Forum is passworded ... check whether access has been granted to this
// user this session, if not show login box
if ($forum_data['forum_password'])
{
	login_forum_box($forum_data);
}

// Is this forum a link? ... User got here either because the
// number of clicks is being tracked or they guessed the id
if ($forum_data['forum_type'] == FORUM_LINK && $forum_data['forum_link'])
{
	// Does it have click tracking enabled?
	if ($forum_data['forum_flags'] & FORUM_FLAG_LINK_TRACK)
	{
		$sql = 'UPDATE ' . FORUMS_TABLE . '
			SET forum_posts = forum_posts + 1
			WHERE forum_id = ' . $forum_id;
		$db->sql_query($sql);
	}

	// We redirect to the url. The third parameter indicates that external redirects are allowed.
	redirect($forum_data['forum_link'], false, true);
	return;
}

// Build navigation links
generate_forum_nav($forum_data);

// Forum Rules
if ($auth->acl_get('f_read', $forum_id))
{
	generate_forum_rules($forum_data);
}

// Do we have subforums?
$active_forum_ary = $moderators = array();

if ($forum_data['left_id'] != $forum_data['right_id'] - 1)
{
	list($active_forum_ary, $moderators) = display_forums($forum_data, $config['load_moderators'], $config['load_moderators']);
}
else
{
	$template->assign_var('S_HAS_SUBFORUM', false);
	if ($config['load_moderators'])
	{
		get_moderators($moderators, $forum_id);
	}
}

// Dump out the page header and load viewforum template
// www.phpBB-SEO.com SEO TOOLKIT BEGIN - META
$seo_meta->collect('description', $forum_data['forum_name'] . ' : ' . (!empty($forum_data['forum_desc']) ? $forum_data['forum_desc'] : $seo_meta->meta_def['description']));
$seo_meta->collect('keywords', $forum_data['forum_name'] . ' ' . $seo_meta->meta['description']);
// www.phpBB-SEO.com SEO TOOLKIT END - META


// www.phpBB-SEO.com SEO TOOLKIT BEGIN - TITLE
$extra_title = ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor( $start / $config['topics_per_page'] ) + 1 ) : '';
page_header($forum_data['forum_name'] . $extra_title, true, $forum_id);
// www.phpBB-SEO.com SEO TOOLKIT END - TITLE

$template->set_filenames(array(
	'body' => 'viewforum_body.html')
);

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"), $forum_id);

$template->assign_vars(array(
	'U_VIEW_FORUM'			=> append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . (($start == 0) ? '' : "&start=$start")),
));

// Not postable forum or showing active topics?
if (!($forum_data['forum_type'] == FORUM_POST || (($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) && $forum_data['forum_type'] == FORUM_CAT)))
{
	page_footer();
}

// Ok, if someone has only list-access, we only display the forum list.
// We also make this circumstance available to the template in case we want to display a notice. ;)
if (!$auth->acl_get('f_read', $forum_id))
{
	$template->assign_vars(array(
		'S_NO_READ_ACCESS'		=> true,
	));

	page_footer();
}

// Handle marking posts
if ($mark_read == 'topics')
{
	$token = request_var('hash', '');
	if (check_link_hash($token, 'global'))
	{
		// Add 0 to forums array to mark global announcements correctly
		markread('topics', array($forum_id, 0));
	}
	$redirect_url = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id);
	meta_refresh(3, $redirect_url);

	trigger_error($user->lang['TOPICS_MARKED'] . '<br /><br />' . sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect_url . '">', '</a>'));
}

// Is a forum specific topic count required?
if ($forum_data['forum_topics_per_page'])
{
	$config['topics_per_page'] = $forum_data['forum_topics_per_page'];
}

// Do the forum Prune thang - cron type job ...
if ($forum_data['prune_next'] < time() && $forum_data['enable_prune'])
{
	$template->assign_var('RUN_CRON_TASK', '<img src="' . append_sid($phpbb_root_path . 'cron.' . $phpEx, 'cron_type=prune_forum&f=' . $forum_id) . '" alt="cron" width="1" height="1" />');
}

// Forum rules and subscription info
$s_watching_forum = array(
	'link'			=> '',
	'title'			=> '',
	'is_watching'	=> false,
);

if (($config['email_enable'] || $config['jab_enable']) && $config['allow_forum_notify'] && $forum_data['forum_type'] == FORUM_POST && $auth->acl_get('f_subscribe', $forum_id))
{
	$notify_status = (isset($forum_data['notify_status'])) ? $forum_data['notify_status'] : NULL;
	watch_topic_forum('forum', $s_watching_forum, $user->data['user_id'], $forum_id, 0, $notify_status);
}

$s_forum_rules = '';
gen_forum_auth_level('forum', $forum_id, $forum_data['forum_status']);

// Topic ordering options
$limit_days = array(0 => $user->lang['ALL_TOPICS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);

$sort_by_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 'r' => $user->lang['REPLIES'], 's' => $user->lang['SUBJECT'], 'v' => $user->lang['VIEWS']);
$sort_by_sql = array('a' => 't.topic_first_poster_name', 't' => 't.topic_last_post_time', 'r' => 't.topic_replies', 's' => 't.topic_title', 'v' => 't.topic_views');

$s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = '';
gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param, $default_sort_days, $default_sort_key, $default_sort_dir);

// Limit topics to certain time frame, obtain correct topic count
// global announcements must not be counted, normal announcements have to
// be counted, as forum_topics(_real) includes them
if ($sort_days)
{
	$min_post_time = time() - ($sort_days * 86400);

	$sql = 'SELECT COUNT(topic_id) AS num_topics
		FROM ' . TOPICS_TABLE . "
		WHERE forum_id = $forum_id
			AND ((topic_type <> " . POST_GLOBAL . " AND topic_last_post_time >= $min_post_time)
				OR topic_type = " . POST_ANNOUNCE . ")
		" . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND topic_approved = 1');
	$result = $db->sql_query($sql);
	$topics_count = (int) $db->sql_fetchfield('num_topics');
	$db->sql_freeresult($result);

	if (isset($_POST['sort']))
	{
		$start = 0;
	}
	$sql_limit_time = "AND t.topic_last_post_time >= $min_post_time";

	// Make sure we have information about day selection ready
	$template->assign_var('S_SORT_DAYS', true);
}
else
{
	$topics_count = ($auth->acl_get('m_approve', $forum_id)) ? $forum_data['forum_topics_real'] : $forum_data['forum_topics'];
	$sql_limit_time = '';
}

// Make sure $start is set to the last page if it exceeds the amount
if ($start < 0 || $start > $topics_count)
{
	$start = ($start < 0) ? 0 : floor(($topics_count - 1) / $config['topics_per_page']) * $config['topics_per_page'];
}

// Basic pagewide vars
$post_alt = ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->lang['FORUM_LOCKED'] : $user->lang['POST_NEW_TOPIC'];

// Display active topics?
$s_display_active = ($forum_data['forum_type'] == FORUM_CAT && ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS)) ? true : false;

$my_post_img= $user->img('button_topic_new', 'POST_NEW_TOPIC');
$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=post&f=$forum_id") : '';

switch($forum_id){
	case "13":
//	"RISORSE VX";
	$my_post_img = $user->img('button_topic_risorse_vx', 'POST_NEW_TOPIC');
	$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}form_risorsevx.$phpEx", "f=$forum_id") : '';
	break;
	
	case "15":
//	"RGSS2";
	$my_post_img = $user->img('button_topic_rgss2', 'POST_NEW_TOPIC');
	$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}formrgss2.$phpEx", "f=$forum_id") : '';
	break;
	
	case "22":
//	"RISORSE XP";
	$my_post_img = $user->img('button_topic_risorse_xp', 'POST_NEW_TOPIC');
	$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}form_risorsexp.$phpEx", "f=$forum_id") : '';
	break;

	case "24":
//	"RGSS XP";
	$my_post_img = $user->img('button_topic_rgss_xp', 'POST_NEW_TOPIC');
	$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}formrgss.$phpEx", "f=$forum_id") : '';
	break;
	
	case "31":
//	"RISORSE 2k";
	$my_post_img = $user->img('button_topic_risorse_2k', 'POST_NEW_TOPIC');
	$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}form_risorse2k2k3.$phpEx", "f=$forum_id") : '';
	break;
	
	case "57":
//	"RISORSE IGM";
	$my_post_img = $user->img('button_topic_risorse_igm', 'POST_NEW_TOPIC');
	$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}form_risorseigm.$phpEx", "f=$forum_id") : '';
	break;
	
	default:
	$my_post_img = $user->img('button_topic_new', 'POST_NEW_TOPIC');
	$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=post&f=$forum_id") : '';
	break;
	
}

$template->assign_vars(array(
	'MODERATORS'	=> (!empty($moderators[$forum_id])) ? implode(', ', $moderators[$forum_id]) : '',
	'POST_IMG'					=> ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', $post_alt) : $my_post_img,


	'NEWEST_POST_IMG'			=> $user->img('icon_topic_newest', 'VIEW_NEWEST_POST'),
	'LAST_POST_IMG'				=> $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
	'FOLDER_IMG'				=> $user->img('topic_read', 'NO_UNREAD_POSTS'),
	'FOLDER_UNREAD_IMG'			=> $user->img('topic_unread', 'UNREAD_POSTS'),
	'FOLDER_HOT_IMG'			=> $user->img('topic_read_hot', 'NO_UNREAD_POSTS_HOT'),
	'FOLDER_HOT_UNREAD_IMG'		=> $user->img('topic_unread_hot', 'UNREAD_POSTS_HOT'),
	'FOLDER_LOCKED_IMG'			=> $user->img('topic_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
	'FOLDER_LOCKED_UNREAD_IMG'	=> $user->img('topic_unread_locked', 'UNREAD_POSTS_LOCKED'),
	'FOLDER_STICKY_IMG'			=> $user->img('sticky_read', 'POST_STICKY'),
	'FOLDER_STICKY_UNREAD_IMG'	=> $user->img('sticky_unread', 'POST_STICKY'),
	'FOLDER_ANNOUNCE_IMG'		=> $user->img('announce_read', 'POST_ANNOUNCEMENT'),
	'FOLDER_ANNOUNCE_UNREAD_IMG'=> $user->img('announce_unread', 'POST_ANNOUNCEMENT'),
	'FOLDER_MOVED_IMG'			=> $user->img('topic_moved', 'TOPIC_MOVED'),
	'REPORTED_IMG'				=> $user->img('icon_topic_reported', 'TOPIC_REPORTED'),
	'UNAPPROVED_IMG'			=> $user->img('icon_topic_unapproved', 'TOPIC_UNAPPROVED'),
	'GOTO_PAGE_IMG'				=> $user->img('icon_post_target', 'GOTO_PAGE'),

	'L_NO_TOPICS' 			=> ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->lang['POST_FORUM_LOCKED'] : $user->lang['NO_TOPICS'],

	'S_DISPLAY_POST_INFO'	=> ($forum_data['forum_type'] == FORUM_POST && ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS)) ? true : false,

	'S_IS_POSTABLE'			=> ($forum_data['forum_type'] == FORUM_POST) ? true : false,
	'S_USER_CAN_POST'		=> ($auth->acl_get('f_post', $forum_id)) ? true : false,
	'S_DISPLAY_ACTIVE'		=> $s_display_active,
	'S_SELECT_SORT_DIR'		=> $s_sort_dir,
	'S_SELECT_SORT_KEY'		=> $s_sort_key,
	'S_SELECT_SORT_DAYS'	=> $s_limit_days,
	'S_TOPIC_ICONS'			=> ($s_display_active && sizeof($active_forum_ary)) ? max($active_forum_ary['enable_icons']) : (($forum_data['enable_icons']) ? true : false),
	'S_WATCH_FORUM_LINK'	=> $s_watching_forum['link'],
	'S_WATCH_FORUM_TITLE'	=> $s_watching_forum['title'],
	'S_WATCHING_FORUM'		=> $s_watching_forum['is_watching'],
	'S_FORUM_ACTION'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . (($start == 0) ? '' : "&start=$start")),
	'S_DISPLAY_SEARCHBOX'	=> ($auth->acl_get('u_search') && $auth->acl_get('f_search', $forum_id) && $config['load_search']) ? true : false,
	'S_SEARCHBOX_ACTION'	=> append_sid("{$phpbb_root_path}search.$phpEx", 'fid[]=' . $forum_id),
	'S_SINGLE_MODERATOR'	=> (!empty($moderators[$forum_id]) && sizeof($moderators[$forum_id]) > 1) ? false : true,
	'S_IS_LOCKED'			=> ($forum_data['forum_status'] == ITEM_LOCKED) ? true : false,
	'S_VIEWFORUM'			=> true,

	'U_MCP'				=> ($auth->acl_get('m_', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", "f=$forum_id&i=main&mode=forum_view", true, $user->session_id) : '',
	'U_POST_NEW_TOPIC' 		=> $my_post,
	'U_VIEW_FORUM'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . ((strlen($u_sort_param)) ? "&$u_sort_param" : '') . (($start == 0) ? '' : "&start=$start")),
	'U_MARK_TOPICS'		=> ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}viewforum.$phpEx", 'hash=' . generate_link_hash('global') . "&f=$forum_id&mark=topics") : '',
));

// Grab icons
$icons = $cache->obtain_icons();

// Grab all topic data
$rowset = $announcement_list = $topic_list = $global_announce_list = array();

$sql_array = array(
	'SELECT'	=> 't.*',
	'FROM'		=> array(
		TOPICS_TABLE		=> 't'
	),
	'LEFT_JOIN'	=> array(),
);

$sql_approved = ($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1';

if ($user->data['is_registered'])
{
	if ($config['load_db_track'])
	{
		$sql_array['LEFT_JOIN'][] = array('FROM' => array(TOPICS_POSTED_TABLE => 'tp'), 'ON' => 'tp.topic_id = t.topic_id AND tp.user_id = ' . $user->data['user_id']);
		$sql_array['SELECT'] .= ', tp.topic_posted';
	}

	if ($config['load_db_lastread'])
	{
		$sql_array['LEFT_JOIN'][] = array('FROM' => array(TOPICS_TRACK_TABLE => 'tt'), 'ON' => 'tt.topic_id = t.topic_id AND tt.user_id = ' . $user->data['user_id']);
		$sql_array['SELECT'] .= ', tt.mark_time';

		if ($s_display_active && sizeof($active_forum_ary))
		{
			$sql_array['LEFT_JOIN'][] = array('FROM' => array(FORUMS_TRACK_TABLE => 'ft'), 'ON' => 'ft.forum_id = t.forum_id AND ft.user_id = ' . $user->data['user_id']);
			$sql_array['SELECT'] .= ', ft.mark_time AS forum_mark_time';
		}
	}
}

if ($forum_data['forum_type'] == FORUM_POST)
{
	// Obtain announcements ... removed sort ordering, sort by time in all cases
	$sql = $db->sql_build_query('SELECT', array(
		'SELECT'	=> $sql_array['SELECT'],
		'FROM'		=> $sql_array['FROM'],
		'LEFT_JOIN'	=> $sql_array['LEFT_JOIN'],

		'WHERE'		=> 't.forum_id IN (' . $forum_id . ', 0)
			AND t.topic_type IN (' . POST_ANNOUNCE . ', ' . POST_GLOBAL . ')',

		'ORDER_BY'	=> 't.topic_time DESC',
	));
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		$rowset[$row['topic_id']] = $row;
		$announcement_list[] = $row['topic_id'];

		if ($row['topic_type'] == POST_GLOBAL)
		{
			$global_announce_list[$row['topic_id']] = true;
		}
		else
		{
			$topics_count--;
		}
	}
	$db->sql_freeresult($result);
}

// If the user is trying to reach late pages, start searching from the end
$store_reverse = false;
$sql_limit = $config['topics_per_page'];
if ($start > $topics_count / 2)
{
	$store_reverse = true;

	if ($start + $config['topics_per_page'] > $topics_count)
	{
		$sql_limit = min($config['topics_per_page'], max(1, $topics_count - $start));
	}

	// Select the sort order
	$sql_sort_order = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'ASC' : 'DESC');
	$sql_start = max(0, $topics_count - $sql_limit - $start);
}
else
{
	// Select the sort order
	$sql_sort_order = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
	$sql_start = $start;
}

if ($forum_data['forum_type'] == FORUM_POST || !sizeof($active_forum_ary))
{
	$sql_where = 't.forum_id = ' . $forum_id;
}
else if (empty($active_forum_ary['exclude_forum_id']))
{
	$sql_where = $db->sql_in_set('t.forum_id', $active_forum_ary['forum_id']);
}
else
{
	$get_forum_ids = array_diff($active_forum_ary['forum_id'], $active_forum_ary['exclude_forum_id']);
	$sql_where = (sizeof($get_forum_ids)) ? $db->sql_in_set('t.forum_id', $get_forum_ids) : 't.forum_id = ' . $forum_id;
}

// Grab just the sorted topic ids
$sql = 'SELECT t.topic_id
	FROM ' . TOPICS_TABLE . " t
	WHERE $sql_where
		AND t.topic_type IN (" . POST_NORMAL . ', ' . POST_STICKY . ")
		$sql_approved
		$sql_limit_time
	ORDER BY t.topic_type " . ((!$store_reverse) ? 'DESC' : 'ASC') . ', ' . $sql_sort_order;
$result = $db->sql_query_limit($sql, $sql_limit, $sql_start);

while ($row = $db->sql_fetchrow($result))
{
	$topic_list[] = (int) $row['topic_id'];
}
$db->sql_freeresult($result);

// For storing shadow topics
$shadow_topic_list = array();

if (sizeof($topic_list))
{
	// SQL array for obtaining topics/stickies
	$sql_array = array(
		'SELECT'		=> $sql_array['SELECT'],
		'FROM'			=> $sql_array['FROM'],
		'LEFT_JOIN'		=> $sql_array['LEFT_JOIN'],

		'WHERE'			=> $db->sql_in_set('t.topic_id', $topic_list),
	);

	// If store_reverse, then first obtain topics, then stickies, else the other way around...
	// Funnily enough you typically save one query if going from the last page to the middle (store_reverse) because
	// the number of stickies are not known
	$sql = $db->sql_build_query('SELECT', $sql_array);
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		if ($row['topic_status'] == ITEM_MOVED)
		{
			$shadow_topic_list[$row['topic_moved_id']] = $row['topic_id'];
		}

		$rowset[$row['topic_id']] = $row;
	}
	$db->sql_freeresult($result);
}

// If we have some shadow topics, update the rowset to reflect their topic information
if (sizeof($shadow_topic_list))
{
	$sql = 'SELECT *
		FROM ' . TOPICS_TABLE . '
		WHERE ' . $db->sql_in_set('topic_id', array_keys($shadow_topic_list));
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		$orig_topic_id = $shadow_topic_list[$row['topic_id']];

		// If the shadow topic is already listed within the rowset (happens for active topics for example), then do not include it...
		if (isset($rowset[$row['topic_id']]))
		{
			// We need to remove any trace regarding this topic. :)
			unset($rowset[$orig_topic_id]);
			unset($topic_list[array_search($orig_topic_id, $topic_list)]);
			$topics_count--;

			continue;
		}

		// Do not include those topics the user has no permission to access
		if (!$auth->acl_get('f_read', $row['forum_id']))
		{
			// We need to remove any trace regarding this topic. :)
			unset($rowset[$orig_topic_id]);
			unset($topic_list[array_search($orig_topic_id, $topic_list)]);
			$topics_count--;

			continue;
		}

		// We want to retain some values
		$row = array_merge($row, array(
			'topic_moved_id'	=> $rowset[$orig_topic_id]['topic_moved_id'],
			'topic_status'		=> $rowset[$orig_topic_id]['topic_status'],
			'topic_type'		=> $rowset[$orig_topic_id]['topic_type'],
			'topic_title'		=> $rowset[$orig_topic_id]['topic_title'],
		));

		// Shadow topics are never reported
		$row['topic_reported'] = 0;

		$rowset[$orig_topic_id] = $row;
	}
	$db->sql_freeresult($result);
}
unset($shadow_topic_list);

// Ok, adjust topics count for active topics list
if ($s_display_active)
{
	$topics_count = 1;
}

$template->assign_vars(array(
	'PAGINATION'	=> generate_pagination(append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . ((strlen($u_sort_param)) ? "&$u_sort_param" : '')), $topics_count, $config['topics_per_page'], $start),
	'PAGE_NUMBER'	=> on_page($topics_count, $config['topics_per_page'], $start),
	'TOTAL_TOPICS'	=> ($s_display_active) ? false : (($topics_count == 1) ? $user->lang['VIEW_FORUM_TOPIC'] : sprintf($user->lang['VIEW_FORUM_TOPICS'], $topics_count)))
);

$topic_list = ($store_reverse) ? array_merge($announcement_list, array_reverse($topic_list)) : array_merge($announcement_list, $topic_list);
$topic_tracking_info = $tracking_topics = array();

// Okay, lets dump out the page ...
if (sizeof($topic_list))
{
	$mark_forum_read = true;
	$mark_time_forum = 0;

	// Active topics?
	if ($s_display_active && sizeof($active_forum_ary))
	{
		// Generate topic forum list...
		$topic_forum_list = array();
		foreach ($rowset as $t_id => $row)
		{
			$topic_forum_list[$row['forum_id']]['forum_mark_time'] = ($config['load_db_lastread'] && $user->data['is_registered'] && isset($row['forum_mark_time'])) ? $row['forum_mark_time'] : 0;
			$topic_forum_list[$row['forum_id']]['topics'][] = $t_id;
		}

		if ($config['load_db_lastread'] && $user->data['is_registered'])
		{
			foreach ($topic_forum_list as $f_id => $topic_row)
			{
				$topic_tracking_info += get_topic_tracking($f_id, $topic_row['topics'], $rowset, array($f_id => $topic_row['forum_mark_time']), false);
			}
		}
		else if ($config['load_anon_lastread'] || $user->data['is_registered'])
		{
			foreach ($topic_forum_list as $f_id => $topic_row)
			{
				$topic_tracking_info += get_complete_topic_tracking($f_id, $topic_row['topics'], false);
			}
		}

		unset($topic_forum_list);
	}
	else
	{
		if ($config['load_db_lastread'] && $user->data['is_registered'])
		{
			$topic_tracking_info = get_topic_tracking($forum_id, $topic_list, $rowset, array($forum_id => $forum_data['mark_time']), $global_announce_list);
			$mark_time_forum = (!empty($forum_data['mark_time'])) ? $forum_data['mark_time'] : $user->data['user_lastmark'];
		}
		else if ($config['load_anon_lastread'] || $user->data['is_registered'])
		{
			$topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_list, $global_announce_list);

			if (!$user->data['is_registered'])
			{
				$user->data['user_lastmark'] = (isset($tracking_topics['l'])) ? (int) (base_convert($tracking_topics['l'], 36, 10) + $config['board_startdate']) : 0;
			}
			$mark_time_forum = (isset($tracking_topics['f'][$forum_id])) ? (int) (base_convert($tracking_topics['f'][$forum_id], 36, 10) + $config['board_startdate']) : $user->data['user_lastmark'];
		}
	}

	$s_type_switch = 0;
	foreach ($topic_list as $topic_id)
	{
		$row = &$rowset[$topic_id];
				// www.phpBB-SEO.com SEO TOOLKIT BEGIN
		if (!empty($row['topic_url'])) {
			$phpbb_seo->prepare_iurl($row, 'topic', '');
		} else {
			if ($phpbb_seo->modrtype > 2) {
				$row['topic_title'] = censor_text($row['topic_title']);
			}

			$topic_forum_id = ($row['forum_id']) ? (int) $row['forum_id'] : $forum_id;
			$parent_forum = $row['topic_type'] == POST_GLOBAL ? $phpbb_seo->seo_static['global_announce'] : (!empty($phpbb_seo->seo_url['forum'][$cur_forum_id]) ? $phpbb_seo->seo_url['forum'][$cur_forum_id] : false);
			if ($parent_forum) {
				$phpbb_seo->prepare_iurl($row, 'topic', $parent_forum);
			}
		}
		// www.phpBB-SEO.com SEO TOOLKIT END

		// This will allow the style designer to output a different header
		// or even separate the list of announcements from sticky and normal topics
		$s_type_switch_test = ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL) ? 1 : 0;

		// Replies
		$replies = ($auth->acl_get('m_approve', $topic_forum_id)) ? $row['topic_replies_real'] : $row['topic_replies'];

		if ($row['topic_status'] == ITEM_MOVED)
		{
			$topic_id = $row['topic_moved_id'];
			$unread_topic = false;
		}
		else
		{
			$unread_topic = (isset($topic_tracking_info[$topic_id]) && $row['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
		}

		// Get folder img, topic status/type related information
		$folder_img = $folder_alt = $topic_type = '';
		topic_status($row, $replies, $unread_topic, $folder_img, $folder_alt, $topic_type);

		// Generate all the URIs ...
		$view_topic_url_params = 'f=' . $topic_forum_id . '&t=' . $topic_id;
		$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params);

		$topic_unapproved = (!$row['topic_approved'] && $auth->acl_get('m_approve', $topic_forum_id)) ? true : false;
		$posts_unapproved = ($row['topic_approved'] && $row['topic_replies'] < $row['topic_replies_real'] && $auth->acl_get('m_approve', $topic_forum_id)) ? true : false;
		$u_mcp_queue = ($topic_unapproved || $posts_unapproved) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&mode=' . (($topic_unapproved) ? 'approve_details' : 'unapproved_posts') . "&t=$topic_id", true, $user->session_id) : '';

		// Send vars to template
		$template->assign_block_vars('topicrow', array(
			'FORUM_ID'					=> $topic_forum_id,
			'TOPIC_ID'					=> $topic_id,
			'TOPIC_AUTHOR'				=> get_username_string('username', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
			'TOPIC_AUTHOR_COLOUR'		=> get_username_string('colour', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
			'TOPIC_AUTHOR_FULL'			=> get_username_string('full', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
			'FIRST_POST_TIME'			=> $user->format_date($row['topic_time']),
			'LAST_POST_SUBJECT'			=> censor_text($row['topic_last_post_subject']),
			'LAST_POST_TIME'			=> $user->format_date($row['topic_last_post_time']),
			'LAST_VIEW_TIME'			=> $user->format_date($row['topic_last_view_time']),
			'LAST_POST_AUTHOR'			=> get_username_string('username', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
			'LAST_POST_AUTHOR_COLOUR'	=> get_username_string('colour', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
			'LAST_POST_AUTHOR_FULL'		=> get_username_string('full', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),

			'PAGINATION'		=> topic_generate_pagination($replies, $view_topic_url),
			'REPLIES'			=> $replies,
			'VIEWS'				=> $row['topic_views'],
			'TOPIC_TITLE'		=> censor_text($row['topic_title']),
			'TOPIC_TYPE'		=> $topic_type,

			'TOPIC_FOLDER_IMG'		=> $user->img($folder_img, $folder_alt),
			'TOPIC_FOLDER_IMG_SRC'	=> $user->img($folder_img, $folder_alt, false, '', 'src'),
			'TOPIC_FOLDER_IMG_ALT'	=> $user->lang[$folder_alt],
			'TOPIC_FOLDER_IMG_WIDTH'=> $user->img($folder_img, '', false, '', 'width'),
			'TOPIC_FOLDER_IMG_HEIGHT'	=> $user->img($folder_img, '', false, '', 'height'),

			'TOPIC_ICON_IMG'		=> (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['img'] : '',
			'TOPIC_ICON_IMG_WIDTH'	=> (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['width'] : '',
			'TOPIC_ICON_IMG_HEIGHT'	=> (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['height'] : '',
			'ATTACH_ICON_IMG'		=> ($auth->acl_get('u_download') && $auth->acl_get('f_download', $topic_forum_id) && $row['topic_attachment']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
			'UNAPPROVED_IMG'		=> ($topic_unapproved || $posts_unapproved) ? $user->img('icon_topic_unapproved', ($topic_unapproved) ? 'TOPIC_UNAPPROVED' : 'POSTS_UNAPPROVED') : '',

			'S_TOPIC_TYPE'			=> $row['topic_type'],
			'S_USER_POSTED'			=> (isset($row['topic_posted']) && $row['topic_posted']) ? true : false,
			'S_UNREAD_TOPIC'		=> $unread_topic,
			'S_TOPIC_REPORTED'		=> (!empty($row['topic_reported']) && $auth->acl_get('m_report', $topic_forum_id)) ? true : false,
			'S_TOPIC_UNAPPROVED'	=> $topic_unapproved,
			'S_POSTS_UNAPPROVED'	=> $posts_unapproved,
			'S_HAS_POLL'			=> ($row['poll_start']) ? true : false,
			'S_POST_ANNOUNCE'		=> ($row['topic_type'] == POST_ANNOUNCE) ? true : false,
			'S_POST_GLOBAL'			=> ($row['topic_type'] == POST_GLOBAL) ? true : false,
			'S_POST_STICKY'			=> ($row['topic_type'] == POST_STICKY) ? true : false,
			'S_TOPIC_LOCKED'		=> ($row['topic_status'] == ITEM_LOCKED) ? true : false,
			'S_TOPIC_MOVED'			=> ($row['topic_status'] == ITEM_MOVED) ? true : false,

			'U_NEWEST_POST'			=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&view=unread') . '#unread',
			'U_LAST_POST'			=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&p=' . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'],
			'U_LAST_POST_AUTHOR'	=> get_username_string('profile', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
			'U_TOPIC_AUTHOR'		=> get_username_string('profile', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
			'U_VIEW_TOPIC'			=> $view_topic_url,
			'U_MCP_REPORT'			=> append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&mode=reports&f=' . $topic_forum_id . '&t=' . $topic_id, true, $user->session_id),
			'U_MCP_QUEUE'			=> $u_mcp_queue,

			'S_TOPIC_TYPE_SWITCH'	=> ($s_type_switch == $s_type_switch_test) ? -1 : $s_type_switch_test)
		);

		$s_type_switch = ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL) ? 1 : 0;

		if ($unread_topic)
		{
			$mark_forum_read = false;
		}

		unset($rowset[$topic_id]);
	}
}

// This is rather a fudge but it's the best I can think of without requiring information
// on all topics (as we do in 2.0.x). It looks for unread or new topics, if it doesn't find
// any it updates the forum last read cookie. This requires that the user visit the forum
// after reading a topic
if ($forum_data['forum_type'] == FORUM_POST && sizeof($topic_list) && $mark_forum_read)
{
	update_forum_tracking_info($forum_id, $forum_data['forum_last_post_time'], false, $mark_time_forum);
}

page_footer();

?>
Non riesco a capire dove sia il problema...credo sia successo dopo l'aggiornamento,perchè alcuni file li ho fatti manualmente perchè incompatibili con alcuni dell'aggiornamento...
Idee?
Magari le modifiche le ho sbagliate...ma ho confrontato i file,e mi sembrano uguali (alcune parti) a quelle indicate da te.

EDIT: si Carlo,è settata.
Te la mostro:
Immagine

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Barrnet » 29/11/2010, 17:58

Potrei consigliarti di usare il metodo che uso io quando non so dove proviene l'errore: riscarico phpbb, lo rimoddo da 0 e lo ricarico :)

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Haku » 29/11/2010, 18:34

Barrnet ha scritto:Potrei consigliarti di usare il metodo che uso io quando non so dove proviene l'errore: riscarico phpbb, lo rimoddo da 0 e lo ricarico :)
Ho editato il post sopra.
Comunque il tuo metodo mi sembra un pò bizzarro da questo punto di vista,anche perchè non credo sia un problemone,e poi,sinceramente mi sembra un pò 'troppo' rifare tutto,quando le mie personalizzazioni (non solo a livello di MOD) sono davvero tante.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Micogian » 29/11/2010, 19:16

Io credo di parlare in "italiano". Ho detto che una delle variabili che non si vedono è FOLDER_NEW_IMG e ti ho detto di cercare "dove" viene creata perchè nel Template è vuota..
Ho anche detto che FOLDER_IMG viene creata in viewforum.php.
Nel file postato infatti c'è FOLDER_IMG, ma non c'è FOLDER_NEW_IMG.
Ti ho anche detto come cercarla, di più non so cosa dirti.
Se non c'è va creata, probabilmente deriva da una Mod, ma se non lo sai tu......

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Haku » 29/11/2010, 19:42

Nell'aggiornamento,ci sono due cartelle,old e new,dove old riporta:

Codice: Seleziona tutto

	'POST_IMG'					=> ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', $post_alt) : $user->img('button_topic_new', $post_alt),
	'NEWEST_POST_IMG'			=> $user->img('icon_topic_newest', 'VIEW_NEWEST_POST'),
	'LAST_POST_IMG'				=> $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
	'FOLDER_IMG'				=> $user->img('topic_read', 'NO_NEW_POSTS'),
	'FOLDER_NEW_IMG'			=> $user->img('topic_unread', 'NEW_POSTS'),
	'FOLDER_HOT_IMG'			=> $user->img('topic_read_hot', 'NO_NEW_POSTS_HOT'),
	'FOLDER_HOT_NEW_IMG'		=> $user->img('topic_unread_hot', 'NEW_POSTS_HOT'),
	'FOLDER_LOCKED_IMG'			=> $user->img('topic_read_locked', 'NO_NEW_POSTS_LOCKED'),
	'FOLDER_LOCKED_NEW_IMG'		=> $user->img('topic_unread_locked', 'NEW_POSTS_LOCKED'),
	'FOLDER_STICKY_IMG'			=> $user->img('sticky_read', 'POST_STICKY'),
	'FOLDER_STICKY_NEW_IMG'		=> $user->img('sticky_unread', 'POST_STICKY'),
	'FOLDER_ANNOUNCE_IMG'		=> $user->img('announce_read', 'POST_ANNOUNCEMENT'),
	'FOLDER_ANNOUNCE_NEW_IMG'	=> $user->img('announce_unread', 'POST_ANNOUNCEMENT'),
	'FOLDER_MOVED_IMG'			=> $user->img('topic_moved', 'TOPIC_MOVED'),
	'REPORTED_IMG'				=> $user->img('icon_topic_reported', 'TOPIC_REPORTED'),
	'UNAPPROVED_IMG'			=> $user->img('icon_topic_unapproved', 'TOPIC_UNAPPROVED'),
	'GOTO_PAGE_IMG'				=> $user->img('icon_post_target', 'GOTO_PAGE'),
E new:

Codice: Seleziona tutto

	'MODERATORS'	=> (!empty($moderators[$forum_id])) ? implode(', ', $moderators[$forum_id]) : '',

	'POST_IMG'					=> ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', $post_alt) : $user->img('button_topic_new', $post_alt),
	'NEWEST_POST_IMG'			=> $user->img('icon_topic_newest', 'VIEW_NEWEST_POST'),
	'LAST_POST_IMG'				=> $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
	'FOLDER_IMG'				=> $user->img('topic_read', 'NO_UNREAD_POSTS'),
	'FOLDER_UNREAD_IMG'			=> $user->img('topic_unread', 'UNREAD_POSTS'),
	'FOLDER_HOT_IMG'			=> $user->img('topic_read_hot', 'NO_UNREAD_POSTS_HOT'),
	'FOLDER_HOT_UNREAD_IMG'		=> $user->img('topic_unread_hot', 'UNREAD_POSTS_HOT'),
	'FOLDER_LOCKED_IMG'			=> $user->img('topic_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
	'FOLDER_LOCKED_UNREAD_IMG'	=> $user->img('topic_unread_locked', 'UNREAD_POSTS_LOCKED'),
	'FOLDER_STICKY_IMG'			=> $user->img('sticky_read', 'POST_STICKY'),
	'FOLDER_STICKY_UNREAD_IMG'	=> $user->img('sticky_unread', 'POST_STICKY'),
	'FOLDER_ANNOUNCE_IMG'		=> $user->img('announce_read', 'POST_ANNOUNCEMENT'),
	'FOLDER_ANNOUNCE_UNREAD_IMG'=> $user->img('announce_unread', 'POST_ANNOUNCEMENT'),
	'FOLDER_MOVED_IMG'			=> $user->img('topic_moved', 'TOPIC_MOVED'),
	'REPORTED_IMG'				=> $user->img('icon_topic_reported', 'TOPIC_REPORTED'),
	'UNAPPROVED_IMG'			=> $user->img('icon_topic_unapproved', 'TOPIC_UNAPPROVED'),
	'GOTO_PAGE_IMG'				=> $user->img('icon_post_target', 'GOTO_PAGE'),
Quindi io ho riportato i codici come nel new,dato che nell'aggiornamento mi segnava una incompatibilità tra file (su alcune righe),così ho confrontato i file,e li ho corretti come new (mi sembrava logica come cosa)...quindi ho sbagliato?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Micogian » 29/11/2010, 20:05

Ovvio che vada in conflitto, ci sono variabili con lo stesso nome.
Ad esempio nel file old c'è 'FOLDER_IMG' => $user->img('topic_read', 'NO_NEW_POSTS'),
mentre nel file new c'è 'FOLDER_IMG' => $user->img('topic_read', 'NO_UNREAD_POSTS'),

magari è la stessa cosa ma il sistema questo non può saperlo.
Ma alla fine FOLDER_NEW_IMG non c'è e quindi nel Template non può uscire.
In qualche modo bisogna metterlo, può darsi che sia qualcosa del genere

Codice: Seleziona tutto

'FOLDER_NEW_IMG'            => $user->img('topic_unread', 'UNREAD_POSTS'),
ma non sono sicuro.
Stessa cosa per le altre 2 variabili che mancano.

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: [Supporto]Icone sparite

Messaggio da Haku » 29/11/2010, 20:26

Quello era solo un esempio,infatti nel mio,come puoi vedere,ho seguito il new:

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
if (empty($_REQUEST['f'])) {
   $phpbb_seo->get_forum_id($session_forum_id);
   if ($session_forum_id == 0) {
      header('HTTP/1.1 404 Not Found');
   } else {
      $_REQUEST['f'] = (int) $session_forum_id;
   }
}
// www.phpBB-SEO.com SEO TOOLKIT END

// Start session
$user->session_begin();
$auth->acl($user->data);

// Start initial var setup
$forum_id   = request_var('f', 0);
$mark_read   = request_var('mark', '');
$start      = request_var('start', 0);

$default_sort_days   = (!empty($user->data['user_topic_show_days'])) ? $user->data['user_topic_show_days'] : 0;
$default_sort_key   = (!empty($user->data['user_topic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't';
$default_sort_dir   = (!empty($user->data['user_topic_sortby_dir'])) ? $user->data['user_topic_sortby_dir'] : 'd';

$sort_days   = request_var('st', $default_sort_days);
$sort_key   = request_var('sk', $default_sort_key);
$sort_dir   = request_var('sd', $default_sort_dir);

// Check if the user has actually sent a forum ID with his/her request
// If not give them a nice error page.
if (!$forum_id)
{
   trigger_error('NO_FORUM');
}

$sql_from = FORUMS_TABLE . ' f';
$lastread_select = '';

// Grab appropriate forum data
if ($config['load_db_lastread'] && $user->data['is_registered'])
{
   $sql_from .= ' LEFT JOIN ' . FORUMS_TRACK_TABLE . ' ft ON (ft.user_id = ' . $user->data['user_id'] . '
      AND ft.forum_id = f.forum_id)';
   $lastread_select .= ', ft.mark_time';
}

if ($user->data['is_registered'])
{
   $sql_from .= ' LEFT JOIN ' . FORUMS_WATCH_TABLE . ' fw ON (fw.forum_id = f.forum_id AND fw.user_id = ' . $user->data['user_id'] . ')';
   $lastread_select .= ', fw.notify_status';
}

$sql = "SELECT f.* $lastread_select
   FROM $sql_from
   WHERE f.forum_id = $forum_id";
$result = $db->sql_query($sql);
$forum_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

if (!$forum_data)
{
   trigger_error('NO_FORUM');
}
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
$phpbb_seo->set_url($forum_data['forum_name'], $forum_data['forum_id'], $phpbb_seo->seo_static['forum']);
// www.phpBB-SEO.com SEO TOOLKIT END


// Configure style, language, etc.
$user->setup('viewforum', $forum_data['forum_style']);

// Redirect to login upon emailed notification links
if (isset($_GET['e']) && !$user->data['is_registered'])
{
   login_box('', $user->lang['LOGIN_NOTIFY_FORUM']);
}

// Permissions check
if (!$auth->acl_gets('f_list', 'f_read', $forum_id) || ($forum_data['forum_type'] == FORUM_LINK && $forum_data['forum_link'] && !$auth->acl_get('f_read', $forum_id)))
{
   if ($user->data['user_id'] != ANONYMOUS)
   {
      trigger_error('SORRY_AUTH_READ');
   }

   login_box('', $user->lang['LOGIN_VIEWFORUM']);
}

// Forum is passworded ... check whether access has been granted to this
// user this session, if not show login box
if ($forum_data['forum_password'])
{
   login_forum_box($forum_data);
}

// Is this forum a link? ... User got here either because the
// number of clicks is being tracked or they guessed the id
if ($forum_data['forum_type'] == FORUM_LINK && $forum_data['forum_link'])
{
   // Does it have click tracking enabled?
   if ($forum_data['forum_flags'] & FORUM_FLAG_LINK_TRACK)
   {
      $sql = 'UPDATE ' . FORUMS_TABLE . '
         SET forum_posts = forum_posts + 1
         WHERE forum_id = ' . $forum_id;
      $db->sql_query($sql);
   }

   // We redirect to the url. The third parameter indicates that external redirects are allowed.
   redirect($forum_data['forum_link'], false, true);
   return;
}

// Build navigation links
generate_forum_nav($forum_data);

// Forum Rules
if ($auth->acl_get('f_read', $forum_id))
{
   generate_forum_rules($forum_data);
}

// Do we have subforums?
$active_forum_ary = $moderators = array();

if ($forum_data['left_id'] != $forum_data['right_id'] - 1)
{
   list($active_forum_ary, $moderators) = display_forums($forum_data, $config['load_moderators'], $config['load_moderators']);
}
else
{
   $template->assign_var('S_HAS_SUBFORUM', false);
   if ($config['load_moderators'])
   {
      get_moderators($moderators, $forum_id);
   }
}

// Dump out the page header and load viewforum template
// www.phpBB-SEO.com SEO TOOLKIT BEGIN - META
$seo_meta->collect('description', $forum_data['forum_name'] . ' : ' . (!empty($forum_data['forum_desc']) ? $forum_data['forum_desc'] : $seo_meta->meta_def['description']));
$seo_meta->collect('keywords', $forum_data['forum_name'] . ' ' . $seo_meta->meta['description']);
// www.phpBB-SEO.com SEO TOOLKIT END - META


// www.phpBB-SEO.com SEO TOOLKIT BEGIN - TITLE
$extra_title = ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor( $start / $config['topics_per_page'] ) + 1 ) : '';
page_header($forum_data['forum_name'] . $extra_title, true, $forum_id);
// www.phpBB-SEO.com SEO TOOLKIT END - TITLE

$template->set_filenames(array(
   'body' => 'viewforum_body.html')
);

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"), $forum_id);

$template->assign_vars(array(
   'U_VIEW_FORUM'         => append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . (($start == 0) ? '' : "&start=$start")),
));

// Not postable forum or showing active topics?
if (!($forum_data['forum_type'] == FORUM_POST || (($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) && $forum_data['forum_type'] == FORUM_CAT)))
{
   page_footer();
}

// Ok, if someone has only list-access, we only display the forum list.
// We also make this circumstance available to the template in case we want to display a notice. ;)
if (!$auth->acl_get('f_read', $forum_id))
{
   $template->assign_vars(array(
      'S_NO_READ_ACCESS'      => true,
   ));

   page_footer();
}

// Handle marking posts
if ($mark_read == 'topics')
{
   $token = request_var('hash', '');
   if (check_link_hash($token, 'global'))
   {
      // Add 0 to forums array to mark global announcements correctly
      markread('topics', array($forum_id, 0));
   }
   $redirect_url = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id);
   meta_refresh(3, $redirect_url);

   trigger_error($user->lang['TOPICS_MARKED'] . '<br /><br />' . sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect_url . '">', '</a>'));
}

// Is a forum specific topic count required?
if ($forum_data['forum_topics_per_page'])
{
   $config['topics_per_page'] = $forum_data['forum_topics_per_page'];
}

// Do the forum Prune thang - cron type job ...
if ($forum_data['prune_next'] < time() && $forum_data['enable_prune'])
{
   $template->assign_var('RUN_CRON_TASK', '<img src="' . append_sid($phpbb_root_path . 'cron.' . $phpEx, 'cron_type=prune_forum&f=' . $forum_id) . '" alt="cron" width="1" height="1" />');
}

// Forum rules and subscription info
$s_watching_forum = array(
   'link'         => '',
   'title'         => '',
   'is_watching'   => false,
);

if (($config['email_enable'] || $config['jab_enable']) && $config['allow_forum_notify'] && $forum_data['forum_type'] == FORUM_POST && $auth->acl_get('f_subscribe', $forum_id))
{
   $notify_status = (isset($forum_data['notify_status'])) ? $forum_data['notify_status'] : NULL;
   watch_topic_forum('forum', $s_watching_forum, $user->data['user_id'], $forum_id, 0, $notify_status);
}

$s_forum_rules = '';
gen_forum_auth_level('forum', $forum_id, $forum_data['forum_status']);

// Topic ordering options
$limit_days = array(0 => $user->lang['ALL_TOPICS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);

$sort_by_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 'r' => $user->lang['REPLIES'], 's' => $user->lang['SUBJECT'], 'v' => $user->lang['VIEWS']);
$sort_by_sql = array('a' => 't.topic_first_poster_name', 't' => 't.topic_last_post_time', 'r' => 't.topic_replies', 's' => 't.topic_title', 'v' => 't.topic_views');

$s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = '';
gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param, $default_sort_days, $default_sort_key, $default_sort_dir);

// Limit topics to certain time frame, obtain correct topic count
// global announcements must not be counted, normal announcements have to
// be counted, as forum_topics(_real) includes them
if ($sort_days)
{
   $min_post_time = time() - ($sort_days * 86400);

   $sql = 'SELECT COUNT(topic_id) AS num_topics
      FROM ' . TOPICS_TABLE . "
      WHERE forum_id = $forum_id
         AND ((topic_type <> " . POST_GLOBAL . " AND topic_last_post_time >= $min_post_time)
            OR topic_type = " . POST_ANNOUNCE . ")
      " . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND topic_approved = 1');
   $result = $db->sql_query($sql);
   $topics_count = (int) $db->sql_fetchfield('num_topics');
   $db->sql_freeresult($result);

   if (isset($_POST['sort']))
   {
      $start = 0;
   }
   $sql_limit_time = "AND t.topic_last_post_time >= $min_post_time";

   // Make sure we have information about day selection ready
   $template->assign_var('S_SORT_DAYS', true);
}
else
{
   $topics_count = ($auth->acl_get('m_approve', $forum_id)) ? $forum_data['forum_topics_real'] : $forum_data['forum_topics'];
   $sql_limit_time = '';
}

// Make sure $start is set to the last page if it exceeds the amount
if ($start < 0 || $start > $topics_count)
{
   $start = ($start < 0) ? 0 : floor(($topics_count - 1) / $config['topics_per_page']) * $config['topics_per_page'];
}

// Basic pagewide vars
$post_alt = ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->lang['FORUM_LOCKED'] : $user->lang['POST_NEW_TOPIC'];

// Display active topics?
$s_display_active = ($forum_data['forum_type'] == FORUM_CAT && ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS)) ? true : false;

$my_post_img= $user->img('button_topic_new', 'POST_NEW_TOPIC');
$my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=post&f=$forum_id") : '';

switch($forum_id){
   case "13":
//   "RISORSE VX";
   $my_post_img = $user->img('button_topic_risorse_vx', 'POST_NEW_TOPIC');
   $my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}form_risorsevx.$phpEx", "f=$forum_id") : '';
   break;
   
   case "15":
//   "RGSS2";
   $my_post_img = $user->img('button_topic_rgss2', 'POST_NEW_TOPIC');
   $my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}formrgss2.$phpEx", "f=$forum_id") : '';
   break;
   
   case "22":
//   "RISORSE XP";
   $my_post_img = $user->img('button_topic_risorse_xp', 'POST_NEW_TOPIC');
   $my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}form_risorsexp.$phpEx", "f=$forum_id") : '';
   break;

   case "24":
//   "RGSS XP";
   $my_post_img = $user->img('button_topic_rgss_xp', 'POST_NEW_TOPIC');
   $my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}formrgss.$phpEx", "f=$forum_id") : '';
   break;
   
   case "31":
//   "RISORSE 2k";
   $my_post_img = $user->img('button_topic_risorse_2k', 'POST_NEW_TOPIC');
   $my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}form_risorse2k2k3.$phpEx", "f=$forum_id") : '';
   break;
   
   case "57":
//   "RISORSE IGM";
   $my_post_img = $user->img('button_topic_risorse_igm', 'POST_NEW_TOPIC');
   $my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}form_risorseigm.$phpEx", "f=$forum_id") : '';
   break;
   
   default:
   $my_post_img = $user->img('button_topic_new', 'POST_NEW_TOPIC');
   $my_post = ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=post&f=$forum_id") : '';
   break;
   
}

$template->assign_vars(array(
   'MODERATORS'   => (!empty($moderators[$forum_id])) ? implode(', ', $moderators[$forum_id]) : '',
   'POST_IMG'               => ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', $post_alt) : $my_post_img,


   'NEWEST_POST_IMG'         => $user->img('icon_topic_newest', 'VIEW_NEWEST_POST'),
   'LAST_POST_IMG'            => $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
   'FOLDER_IMG'            => $user->img('topic_read', 'NO_UNREAD_POSTS'),
   'FOLDER_UNREAD_IMG'         => $user->img('topic_unread', 'UNREAD_POSTS'),
   'FOLDER_HOT_IMG'         => $user->img('topic_read_hot', 'NO_UNREAD_POSTS_HOT'),
   'FOLDER_HOT_UNREAD_IMG'      => $user->img('topic_unread_hot', 'UNREAD_POSTS_HOT'),
   'FOLDER_LOCKED_IMG'         => $user->img('topic_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
   'FOLDER_LOCKED_UNREAD_IMG'   => $user->img('topic_unread_locked', 'UNREAD_POSTS_LOCKED'),
   'FOLDER_STICKY_IMG'         => $user->img('sticky_read', 'POST_STICKY'),
   'FOLDER_STICKY_UNREAD_IMG'   => $user->img('sticky_unread', 'POST_STICKY'),
   'FOLDER_ANNOUNCE_IMG'      => $user->img('announce_read', 'POST_ANNOUNCEMENT'),
   'FOLDER_ANNOUNCE_UNREAD_IMG'=> $user->img('announce_unread', 'POST_ANNOUNCEMENT'),
   'FOLDER_MOVED_IMG'         => $user->img('topic_moved', 'TOPIC_MOVED'),
   'REPORTED_IMG'            => $user->img('icon_topic_reported', 'TOPIC_REPORTED'),
   'UNAPPROVED_IMG'         => $user->img('icon_topic_unapproved', 'TOPIC_UNAPPROVED'),
   'GOTO_PAGE_IMG'            => $user->img('icon_post_target', 'GOTO_PAGE'),

   'L_NO_TOPICS'          => ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->lang['POST_FORUM_LOCKED'] : $user->lang['NO_TOPICS'],

   'S_DISPLAY_POST_INFO'   => ($forum_data['forum_type'] == FORUM_POST && ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS)) ? true : false,

   'S_IS_POSTABLE'         => ($forum_data['forum_type'] == FORUM_POST) ? true : false,
   'S_USER_CAN_POST'      => ($auth->acl_get('f_post', $forum_id)) ? true : false,
   'S_DISPLAY_ACTIVE'      => $s_display_active,
   'S_SELECT_SORT_DIR'      => $s_sort_dir,
   'S_SELECT_SORT_KEY'      => $s_sort_key,
   'S_SELECT_SORT_DAYS'   => $s_limit_days,
   'S_TOPIC_ICONS'         => ($s_display_active && sizeof($active_forum_ary)) ? max($active_forum_ary['enable_icons']) : (($forum_data['enable_icons']) ? true : false),
   'S_WATCH_FORUM_LINK'   => $s_watching_forum['link'],
   'S_WATCH_FORUM_TITLE'   => $s_watching_forum['title'],
   'S_WATCHING_FORUM'      => $s_watching_forum['is_watching'],
   'S_FORUM_ACTION'      => append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . (($start == 0) ? '' : "&start=$start")),
   'S_DISPLAY_SEARCHBOX'   => ($auth->acl_get('u_search') && $auth->acl_get('f_search', $forum_id) && $config['load_search']) ? true : false,
   'S_SEARCHBOX_ACTION'   => append_sid("{$phpbb_root_path}search.$phpEx", 'fid[]=' . $forum_id),
   'S_SINGLE_MODERATOR'   => (!empty($moderators[$forum_id]) && sizeof($moderators[$forum_id]) > 1) ? false : true,
   'S_IS_LOCKED'         => ($forum_data['forum_status'] == ITEM_LOCKED) ? true : false,
   'S_VIEWFORUM'         => true,

   'U_MCP'            => ($auth->acl_get('m_', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", "f=$forum_id&i=main&mode=forum_view", true, $user->session_id) : '',
   'U_POST_NEW_TOPIC'       => $my_post,
   'U_VIEW_FORUM'      => append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . ((strlen($u_sort_param)) ? "&$u_sort_param" : '') . (($start == 0) ? '' : "&start=$start")),
   'U_MARK_TOPICS'      => ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}viewforum.$phpEx", 'hash=' . generate_link_hash('global') . "&f=$forum_id&mark=topics") : '',
));

// Grab icons
$icons = $cache->obtain_icons();

// Grab all topic data
$rowset = $announcement_list = $topic_list = $global_announce_list = array();

$sql_array = array(
   'SELECT'   => 't.*',
   'FROM'      => array(
      TOPICS_TABLE      => 't'
   ),
   'LEFT_JOIN'   => array(),
);

$sql_approved = ($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1';

if ($user->data['is_registered'])
{
   if ($config['load_db_track'])
   {
      $sql_array['LEFT_JOIN'][] = array('FROM' => array(TOPICS_POSTED_TABLE => 'tp'), 'ON' => 'tp.topic_id = t.topic_id AND tp.user_id = ' . $user->data['user_id']);
      $sql_array['SELECT'] .= ', tp.topic_posted';
   }

   if ($config['load_db_lastread'])
   {
      $sql_array['LEFT_JOIN'][] = array('FROM' => array(TOPICS_TRACK_TABLE => 'tt'), 'ON' => 'tt.topic_id = t.topic_id AND tt.user_id = ' . $user->data['user_id']);
      $sql_array['SELECT'] .= ', tt.mark_time';

      if ($s_display_active && sizeof($active_forum_ary))
      {
         $sql_array['LEFT_JOIN'][] = array('FROM' => array(FORUMS_TRACK_TABLE => 'ft'), 'ON' => 'ft.forum_id = t.forum_id AND ft.user_id = ' . $user->data['user_id']);
         $sql_array['SELECT'] .= ', ft.mark_time AS forum_mark_time';
      }
   }
}

if ($forum_data['forum_type'] == FORUM_POST)
{
   // Obtain announcements ... removed sort ordering, sort by time in all cases
   $sql = $db->sql_build_query('SELECT', array(
      'SELECT'   => $sql_array['SELECT'],
      'FROM'      => $sql_array['FROM'],
      'LEFT_JOIN'   => $sql_array['LEFT_JOIN'],

      'WHERE'      => 't.forum_id IN (' . $forum_id . ', 0)
         AND t.topic_type IN (' . POST_ANNOUNCE . ', ' . POST_GLOBAL . ')',

      'ORDER_BY'   => 't.topic_time DESC',
   ));
   $result = $db->sql_query($sql);

   while ($row = $db->sql_fetchrow($result))
   {
      $rowset[$row['topic_id']] = $row;
      $announcement_list[] = $row['topic_id'];

      if ($row['topic_type'] == POST_GLOBAL)
      {
         $global_announce_list[$row['topic_id']] = true;
      }
      else
      {
         $topics_count--;
      }
   }
   $db->sql_freeresult($result);
}

// If the user is trying to reach late pages, start searching from the end
$store_reverse = false;
$sql_limit = $config['topics_per_page'];
if ($start > $topics_count / 2)
{
   $store_reverse = true;

   if ($start + $config['topics_per_page'] > $topics_count)
   {
      $sql_limit = min($config['topics_per_page'], max(1, $topics_count - $start));
   }

   // Select the sort order
   $sql_sort_order = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'ASC' : 'DESC');
   $sql_start = max(0, $topics_count - $sql_limit - $start);
}
else
{
   // Select the sort order
   $sql_sort_order = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
   $sql_start = $start;
}

if ($forum_data['forum_type'] == FORUM_POST || !sizeof($active_forum_ary))
{
   $sql_where = 't.forum_id = ' . $forum_id;
}
else if (empty($active_forum_ary['exclude_forum_id']))
{
   $sql_where = $db->sql_in_set('t.forum_id', $active_forum_ary['forum_id']);
}
else
{
   $get_forum_ids = array_diff($active_forum_ary['forum_id'], $active_forum_ary['exclude_forum_id']);
   $sql_where = (sizeof($get_forum_ids)) ? $db->sql_in_set('t.forum_id', $get_forum_ids) : 't.forum_id = ' . $forum_id;
}

// Grab just the sorted topic ids
$sql = 'SELECT t.topic_id
   FROM ' . TOPICS_TABLE . " t
   WHERE $sql_where
      AND t.topic_type IN (" . POST_NORMAL . ', ' . POST_STICKY . ")
      $sql_approved
      $sql_limit_time
   ORDER BY t.topic_type " . ((!$store_reverse) ? 'DESC' : 'ASC') . ', ' . $sql_sort_order;
$result = $db->sql_query_limit($sql, $sql_limit, $sql_start);

while ($row = $db->sql_fetchrow($result))
{
   $topic_list[] = (int) $row['topic_id'];
}
$db->sql_freeresult($result);

// For storing shadow topics
$shadow_topic_list = array();

if (sizeof($topic_list))
{
   // SQL array for obtaining topics/stickies
   $sql_array = array(
      'SELECT'      => $sql_array['SELECT'],
      'FROM'         => $sql_array['FROM'],
      'LEFT_JOIN'      => $sql_array['LEFT_JOIN'],

      'WHERE'         => $db->sql_in_set('t.topic_id', $topic_list),
   );

   // If store_reverse, then first obtain topics, then stickies, else the other way around...
   // Funnily enough you typically save one query if going from the last page to the middle (store_reverse) because
   // the number of stickies are not known
   $sql = $db->sql_build_query('SELECT', $sql_array);
   $result = $db->sql_query($sql);

   while ($row = $db->sql_fetchrow($result))
   {
      if ($row['topic_status'] == ITEM_MOVED)
      {
         $shadow_topic_list[$row['topic_moved_id']] = $row['topic_id'];
      }

      $rowset[$row['topic_id']] = $row;
   }
   $db->sql_freeresult($result);
}

// If we have some shadow topics, update the rowset to reflect their topic information
if (sizeof($shadow_topic_list))
{
   $sql = 'SELECT *
      FROM ' . TOPICS_TABLE . '
      WHERE ' . $db->sql_in_set('topic_id', array_keys($shadow_topic_list));
   $result = $db->sql_query($sql);

   while ($row = $db->sql_fetchrow($result))
   {
      $orig_topic_id = $shadow_topic_list[$row['topic_id']];

      // If the shadow topic is already listed within the rowset (happens for active topics for example), then do not include it...
      if (isset($rowset[$row['topic_id']]))
      {
         // We need to remove any trace regarding this topic. :)
         unset($rowset[$orig_topic_id]);
         unset($topic_list[array_search($orig_topic_id, $topic_list)]);
         $topics_count--;

         continue;
      }

      // Do not include those topics the user has no permission to access
      if (!$auth->acl_get('f_read', $row['forum_id']))
      {
         // We need to remove any trace regarding this topic. :)
         unset($rowset[$orig_topic_id]);
         unset($topic_list[array_search($orig_topic_id, $topic_list)]);
         $topics_count--;

         continue;
      }

      // We want to retain some values
      $row = array_merge($row, array(
         'topic_moved_id'   => $rowset[$orig_topic_id]['topic_moved_id'],
         'topic_status'      => $rowset[$orig_topic_id]['topic_status'],
         'topic_type'      => $rowset[$orig_topic_id]['topic_type'],
         'topic_title'      => $rowset[$orig_topic_id]['topic_title'],
      ));

      // Shadow topics are never reported
      $row['topic_reported'] = 0;

      $rowset[$orig_topic_id] = $row;
   }
   $db->sql_freeresult($result);
}
unset($shadow_topic_list);

// Ok, adjust topics count for active topics list
if ($s_display_active)
{
   $topics_count = 1;
}

$template->assign_vars(array(
   'PAGINATION'   => generate_pagination(append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . ((strlen($u_sort_param)) ? "&$u_sort_param" : '')), $topics_count, $config['topics_per_page'], $start),
   'PAGE_NUMBER'   => on_page($topics_count, $config['topics_per_page'], $start),
   'TOTAL_TOPICS'   => ($s_display_active) ? false : (($topics_count == 1) ? $user->lang['VIEW_FORUM_TOPIC'] : sprintf($user->lang['VIEW_FORUM_TOPICS'], $topics_count)))
);

$topic_list = ($store_reverse) ? array_merge($announcement_list, array_reverse($topic_list)) : array_merge($announcement_list, $topic_list);
$topic_tracking_info = $tracking_topics = array();

// Okay, lets dump out the page ...
if (sizeof($topic_list))
{
   $mark_forum_read = true;
   $mark_time_forum = 0;

   // Active topics?
   if ($s_display_active && sizeof($active_forum_ary))
   {
      // Generate topic forum list...
      $topic_forum_list = array();
      foreach ($rowset as $t_id => $row)
      {
         $topic_forum_list[$row['forum_id']]['forum_mark_time'] = ($config['load_db_lastread'] && $user->data['is_registered'] && isset($row['forum_mark_time'])) ? $row['forum_mark_time'] : 0;
         $topic_forum_list[$row['forum_id']]['topics'][] = $t_id;
      }

      if ($config['load_db_lastread'] && $user->data['is_registered'])
      {
         foreach ($topic_forum_list as $f_id => $topic_row)
         {
            $topic_tracking_info += get_topic_tracking($f_id, $topic_row['topics'], $rowset, array($f_id => $topic_row['forum_mark_time']), false);
         }
      }
      else if ($config['load_anon_lastread'] || $user->data['is_registered'])
      {
         foreach ($topic_forum_list as $f_id => $topic_row)
         {
            $topic_tracking_info += get_complete_topic_tracking($f_id, $topic_row['topics'], false);
         }
      }

      unset($topic_forum_list);
   }
   else
   {
      if ($config['load_db_lastread'] && $user->data['is_registered'])
      {
         $topic_tracking_info = get_topic_tracking($forum_id, $topic_list, $rowset, array($forum_id => $forum_data['mark_time']), $global_announce_list);
         $mark_time_forum = (!empty($forum_data['mark_time'])) ? $forum_data['mark_time'] : $user->data['user_lastmark'];
      }
      else if ($config['load_anon_lastread'] || $user->data['is_registered'])
      {
         $topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_list, $global_announce_list);

         if (!$user->data['is_registered'])
         {
            $user->data['user_lastmark'] = (isset($tracking_topics['l'])) ? (int) (base_convert($tracking_topics['l'], 36, 10) + $config['board_startdate']) : 0;
         }
         $mark_time_forum = (isset($tracking_topics['f'][$forum_id])) ? (int) (base_convert($tracking_topics['f'][$forum_id], 36, 10) + $config['board_startdate']) : $user->data['user_lastmark'];
      }
   }

   $s_type_switch = 0;
   foreach ($topic_list as $topic_id)
   {
      $row = &$rowset[$topic_id];
            // www.phpBB-SEO.com SEO TOOLKIT BEGIN
      if (!empty($row['topic_url'])) {
         $phpbb_seo->prepare_iurl($row, 'topic', '');
      } else {
         if ($phpbb_seo->modrtype > 2) {
            $row['topic_title'] = censor_text($row['topic_title']);
         }

         $topic_forum_id = ($row['forum_id']) ? (int) $row['forum_id'] : $forum_id;
         $parent_forum = $row['topic_type'] == POST_GLOBAL ? $phpbb_seo->seo_static['global_announce'] : (!empty($phpbb_seo->seo_url['forum'][$cur_forum_id]) ? $phpbb_seo->seo_url['forum'][$cur_forum_id] : false);
         if ($parent_forum) {
            $phpbb_seo->prepare_iurl($row, 'topic', $parent_forum);
         }
      }
      // www.phpBB-SEO.com SEO TOOLKIT END

      // This will allow the style designer to output a different header
      // or even separate the list of announcements from sticky and normal topics
      $s_type_switch_test = ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL) ? 1 : 0;

      // Replies
      $replies = ($auth->acl_get('m_approve', $topic_forum_id)) ? $row['topic_replies_real'] : $row['topic_replies'];

      if ($row['topic_status'] == ITEM_MOVED)
      {
         $topic_id = $row['topic_moved_id'];
         $unread_topic = false;
      }
      else
      {
         $unread_topic = (isset($topic_tracking_info[$topic_id]) && $row['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
      }

      // Get folder img, topic status/type related information
      $folder_img = $folder_alt = $topic_type = '';
      topic_status($row, $replies, $unread_topic, $folder_img, $folder_alt, $topic_type);

      // Generate all the URIs ...
      $view_topic_url_params = 'f=' . $topic_forum_id . '&t=' . $topic_id;
      $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params);

      $topic_unapproved = (!$row['topic_approved'] && $auth->acl_get('m_approve', $topic_forum_id)) ? true : false;
      $posts_unapproved = ($row['topic_approved'] && $row['topic_replies'] < $row['topic_replies_real'] && $auth->acl_get('m_approve', $topic_forum_id)) ? true : false;
      $u_mcp_queue = ($topic_unapproved || $posts_unapproved) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&mode=' . (($topic_unapproved) ? 'approve_details' : 'unapproved_posts') . "&t=$topic_id", true, $user->session_id) : '';

      // Send vars to template
      $template->assign_block_vars('topicrow', array(
         'FORUM_ID'               => $topic_forum_id,
         'TOPIC_ID'               => $topic_id,
         'TOPIC_AUTHOR'            => get_username_string('username', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
         'TOPIC_AUTHOR_COLOUR'      => get_username_string('colour', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
         'TOPIC_AUTHOR_FULL'         => get_username_string('full', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
         'FIRST_POST_TIME'         => $user->format_date($row['topic_time']),
         'LAST_POST_SUBJECT'         => censor_text($row['topic_last_post_subject']),
         'LAST_POST_TIME'         => $user->format_date($row['topic_last_post_time']),
         'LAST_VIEW_TIME'         => $user->format_date($row['topic_last_view_time']),
         'LAST_POST_AUTHOR'         => get_username_string('username', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
         'LAST_POST_AUTHOR_COLOUR'   => get_username_string('colour', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
         'LAST_POST_AUTHOR_FULL'      => get_username_string('full', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),

         'PAGINATION'      => topic_generate_pagination($replies, $view_topic_url),
         'REPLIES'         => $replies,
         'VIEWS'            => $row['topic_views'],
         'TOPIC_TITLE'      => censor_text($row['topic_title']),
         'TOPIC_TYPE'      => $topic_type,

         'TOPIC_FOLDER_IMG'      => $user->img($folder_img, $folder_alt),
         'TOPIC_FOLDER_IMG_SRC'   => $user->img($folder_img, $folder_alt, false, '', 'src'),
         'TOPIC_FOLDER_IMG_ALT'   => $user->lang[$folder_alt],
         'TOPIC_FOLDER_IMG_WIDTH'=> $user->img($folder_img, '', false, '', 'width'),
         'TOPIC_FOLDER_IMG_HEIGHT'   => $user->img($folder_img, '', false, '', 'height'),

         'TOPIC_ICON_IMG'      => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['img'] : '',
         'TOPIC_ICON_IMG_WIDTH'   => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['width'] : '',
         'TOPIC_ICON_IMG_HEIGHT'   => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['height'] : '',
         'ATTACH_ICON_IMG'      => ($auth->acl_get('u_download') && $auth->acl_get('f_download', $topic_forum_id) && $row['topic_attachment']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
         'UNAPPROVED_IMG'      => ($topic_unapproved || $posts_unapproved) ? $user->img('icon_topic_unapproved', ($topic_unapproved) ? 'TOPIC_UNAPPROVED' : 'POSTS_UNAPPROVED') : '',

         'S_TOPIC_TYPE'         => $row['topic_type'],
         'S_USER_POSTED'         => (isset($row['topic_posted']) && $row['topic_posted']) ? true : false,
         'S_UNREAD_TOPIC'      => $unread_topic,
         'S_TOPIC_REPORTED'      => (!empty($row['topic_reported']) && $auth->acl_get('m_report', $topic_forum_id)) ? true : false,
         'S_TOPIC_UNAPPROVED'   => $topic_unapproved,
         'S_POSTS_UNAPPROVED'   => $posts_unapproved,
         'S_HAS_POLL'         => ($row['poll_start']) ? true : false,
         'S_POST_ANNOUNCE'      => ($row['topic_type'] == POST_ANNOUNCE) ? true : false,
         'S_POST_GLOBAL'         => ($row['topic_type'] == POST_GLOBAL) ? true : false,
         'S_POST_STICKY'         => ($row['topic_type'] == POST_STICKY) ? true : false,
         'S_TOPIC_LOCKED'      => ($row['topic_status'] == ITEM_LOCKED) ? true : false,
         'S_TOPIC_MOVED'         => ($row['topic_status'] == ITEM_MOVED) ? true : false,

         'U_NEWEST_POST'         => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&view=unread') . '#unread',
         'U_LAST_POST'         => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&p=' . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'],
         'U_LAST_POST_AUTHOR'   => get_username_string('profile', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
         'U_TOPIC_AUTHOR'      => get_username_string('profile', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
         'U_VIEW_TOPIC'         => $view_topic_url,
         'U_MCP_REPORT'         => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&mode=reports&f=' . $topic_forum_id . '&t=' . $topic_id, true, $user->session_id),
         'U_MCP_QUEUE'         => $u_mcp_queue,

         'S_TOPIC_TYPE_SWITCH'   => ($s_type_switch == $s_type_switch_test) ? -1 : $s_type_switch_test)
      );

      $s_type_switch = ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL) ? 1 : 0;

      if ($unread_topic)
      {
         $mark_forum_read = false;
      }

      unset($rowset[$topic_id]);
   }
}

// This is rather a fudge but it's the best I can think of without requiring information
// on all topics (as we do in 2.0.x). It looks for unread or new topics, if it doesn't find
// any it updates the forum last read cookie. This requires that the user visit the forum
// after reading a topic
if ($forum_data['forum_type'] == FORUM_POST && sizeof($topic_list) && $mark_forum_read)
{
   update_forum_tracking_info($forum_id, $forum_data['forum_last_post_time'], false, $mark_time_forum);
}

page_footer();

?>
Quale devo seguire di preciso? O_o'

Rispondi

Torna a “[3.0.x] Forum di Supporto”

Chi c’è in linea

Visitano il forum: Bing [Bot] e 55 ospiti