carlino1994 ha scritto:Se è possibile allegami il file da te creato con relativo template, il file index.php relativo alla tua versione di phpBB ed il template index_body.html.
Il file php l'ho chiamato "user_lastpic.php" ed è questo:
Codice: Seleziona tutto
<?php
/**
*
* @package phpBB3
* @version $Id: user_topic_list.php 2009 11 30 Bingo $
* @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);
global $icons;
// Start session
$user->session_begin();
$auth->acl($user->data);
//$user->setup('viewforum', $forum_data['forum_style']);
$user->setup('viewforum');
// Start initial var setup = ATTENZIONE: abilitare una delle righe seguenti a seconda che il parent_id necessario
// per la ricerca nei Forums interessati viene inserito nell'URL o nel codice
//$forum_id = request_var('f', 0);
$forum_id = '285' ; // inserire qui il parent_id relativo ai Forum interessati oppure abilitare la riga precedente e inserire il numero ID nell'url
if (!$forum_id)
{
trigger_error('NO_FORUM');
}
// Redirect to login upon emailed notification links
if (isset($_GET['e']) && !$user->data['is_registered'])
{
login_box('', $user->lang['LOGIN_NOTIFY_FORUM']);
}
$sql = "SELECT f.*
FROM ".FORUMS_TABLE." f
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');
}
// 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);
}
//Obtain forum name
$forum_name = $forum_data['forum_name']; //
$template->assign_var('FORUM_NAME', $forum_name);
$template->assign_var('U_VIEWFORUM',append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id));
$icons = $cache->obtain_icons();
//query per estrarre gli ultimi 5 Topics con allegati
$sql = "SELECT
pt.topic_id, pt.forum_id, pt.topic_title, pt.topic_first_poster_name, pt.topic_attachment, pf.forum_name, pf.parent_id
FROM ". TOPICS_TABLE." pt,". FORUMS_TABLE. " pf
WHERE pf.parent_id = $forum_id
AND pt.forum_id = pf.forum_id
AND pt.topic_attachment = 1
ORDER BY pt.topic_id DESC LIMIT 5";
$db->sql_query($sql);
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$topic_id = $row['topic_id'];
// ricerca il primo attach_id dei topics selezionati
$sql_pic = "SELECT pa.attach_id, pa.topic_id, pa.physical_filename
FROM ". ATTACHMENTS_TABLE." pa
WHERE pa.topic_id = $topic_id
ORDER BY pa.attach_id LIMIT 1" ;
$db->sql_query($sql_pic);
$result1 = $db->sql_query($sql_pic);
$row1 = $db->sql_fetchrow($result1);
$attach_id = $row1['attach_id'];
// assegna le variabili da passare al file HTML
$template->assign_block_vars('attach_list', array(
'TOPIC_ID' => $row['topic_id'],
'FORUM_ID' => $row['forum_id'],
'TOPIC_TITLE' => $row['topic_title'],
'TOPIC_LINK' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't='.$row['topic_id']),
'ATTACH_LINK' => append_sid("{$phpbb_root_path}download/file.$phpEx", 'id='.$attach_id),
'FORUM_NAME' => $row['forum_name'],
'TOPIC_AUTHOR' => $row['topic_first_poster_name'],
'ATTACH_ID' => $attach_id
));
}
$db->sql_freeresult($result);
// Dump out the page header and load template
page_header($user->lang['VIEW_FORUM'] . $forum_name);
$template->set_filenames(array(
'body' => 'user_lastpic.html')
);
page_footer();
?>
Funziona con l'inserimento del "parent_id" che contiene subforum, a seconda se il parent_id venga inserito nell'url o nel file c'è una piccola variazione da fare al codice.
Il relativo file html è "user_lastpic.html" ed è relativo allo style "avalon":
Codice: Seleziona tutto
<!-- INCLUDE overall_header.html -->
<div class="block-start"><table class="tablebg" width="100%" cellspacing="0">
<caption><div class="cap-left"><div class="cap-right">Ultime immagini del Forum </div></div></caption><tr>
<td class="row1" align="center"><br /><p class="gen">
<!-- BEGIN attach_list -->
<a href="{attach_list.TOPIC_LINK}" title="{attach_list.TOPIC_TITLE} (di {attach_list.TOPIC_AUTHOR})"><img src="{attach_list.ATTACH_LINK} alt="{attach_list.FORUM_NAME}" border="0" height="200"></a>
<!-- END attach_list-->
</p><br /></td>
</tr>
</table>
<div class="block-end-left"><div class="block-end-right"></div></div></div>
<br clear="all" />
Per visualizzare il box dello stile ho inserito il file "overall_header.html ma funzionerebbe comunque, senza formattazione naturalmente.
Ci sono ancora delle cose da sistemare, come il ridimensionamento delle miniature in base alle dimensioni della pagina, ma quelle sono miglioramenti da fare in un secondo tempo.
Non inserisco i file index.php e index_body.html perchè quello che a me interessa è il meccanismo che permetta di far funzionare la MOD indipendentemente dal file dove inserirla. Ad esempio potrebbe essere messa anche nel file viewforums.php in modo che visualizzi gli ultimi 5 allegati del Forum selezionato, ma se serve ti faccio avere anche quelli.
Considera che io amministro 3 Forum phpbb con stili diversi e che la MOD dovrebbe andar bene per tutti, con html appropriato allo stile, naturalmente.
Grazie per l'interessamento.