Nell'indice del Forum viene mostrato, in corrispondenza di ogni Forum, l'ultimo messaggio sotto forma di Titolo, autore dell'ultimo post e link alla discussione.
La Mod "Topic Images in Forumlist" provvede a visualizzare, a fianco del titolo di ogni Forum, una miniatura della prima immagine eventualmente presente nel Topic.
A creare le miniature provvede un'altra Mod (View Last Pictures) che quindi è indispensabile per il funzionamento di questa Mod.
La Mod "View Last Pictures" provvede a visualizzare una striscia fotografica degli Ultimi allegati.
La visualizzazione della striscia è facoltativa, l'installazione della Mod View Last Pictures è comunque necessaria perchè provvede a creare le miniature che vengono salvate nella cartella "thumbs".
Dopo aver installato la Mod View Last Pictures vediamo quali sono le Modifiche per ottenere la visualizzazione delle miniature a fianco dei titoli dei Forums.
Ricordo che il ridimensionamento degli allegati e la creazione delle miniature nella cartella "thumbs" avviene in maniera automatica. Quando un qualsiasi utente apre il Forum viene controllata la presenza delle miniature relative alle ultime Immagini del Forum e se non esistono vengono create.
Le miniature vengono nominate con il loro attach_id, ad esempio l'allegato con attach_id=12345 diventa il file 12345.jpg.
DEMO: http://www.photogirello.it/forummn/viewforum.php?f=7
Passiamo ora ad illustrare le modifiche per ottenere la visualizzazione delle miniature.
Le modifiche da fare riguardano:
1) La creazione di due functions che ricavano il nome della miniatura dal post_id e dal topic_id. Questo perchè nell'indice è disponibile il post_id dell'ultimo messaggio mentre nella Lista ricavata dal file "viewforums.php" è disponibile il topic_id.
2) Modifica del file includes/functions_display.php per inserire la variabile "FORUM_IMAGE_POST" da passare al template forumlist_body.html.
3) Modifica del file viewforums.php per creare le variabili da passare al template viewforum_body.html.
4) Modifica del file forumlist_body.html
5) Modifica dei CSS necessari alla visualizzazione della miniatura.
1) Aprire il file includes/functions_display.php.
Alla fine, prima del tag ?> aggiungere
ATTENZIONE: la seguente parte è stata modificata il 28/08/2012 (inserito nelle functions la condizione che l'allegato deve essere un file JPG)
Codice: Seleziona tutto
/**
function attach_lastpost() = associa il primo attach_id al relativo post_id (by Micogian 23.05.2012)
*/
function attach_lastpost($post_id)
{
global $db;
$sql = "SELECT * FROM " . POSTS_TABLE . " WHERE post_id = " . $post_id . " LIMIT 1";
$result = $db->sql_query($sql);
{
$row = $db->sql_fetchrow($result);
$topic_cor = $row['topic_id'];
}
if($topic_cor <> '')
{
$sql1 = "SELECT * FROM " . ATTACHMENTS_TABLE . " WHERE topic_id = " . $topic_cor . " AND extension = 'jpg' ORDER BY attach_id LIMIT 1";
$result1 = $db->sql_query($sql1);
{
$row1 = $db->sql_fetchrow($result1);
$post_picture = 'thumbs/' . $row1['attach_id'] . '.jpg' ;
}
}
if(!is_file($post_picture) || $row1['attach_id'] == '')
{
$post_picture = '' ;
}
return $post_picture ;
}
/**
function attach_topic() = associa il primo attach_id al relativo topic_id (by Micogian 23.05.2012)
*/
function attach_topic($topic_id)
{
global $db;
$sql = "SELECT * FROM " . ATTACHMENTS_TABLE . " WHERE topic_id = " . $topic_id . " AND extension = 'jpg' ORDER BY attach_id LIMIT 1";
$result = $db->sql_query($sql);
{
$row = $db->sql_fetchrow($result);
$topic_picture = 'thumbs/' . $row['attach_id']. ".jpg";
}
if(!is_file($topic_picture))
{
$topic_picture = '' ;
}
return $topic_picture ;
}
trova la riga
Codice: Seleziona tutto
'FORUM_IMAGE_SRC' => ($row['forum_image']) ? $phpbb_root_path . $row['forum_image'] : '',
Aggiungi la riga:
Codice: Seleziona tutto
'FORUM_IMAGE_POST' => attach_lastpost($row['forum_last_post_id']),
Apri il file viewforums.php
Trova la riga
Codice: Seleziona tutto
// Send vars to template
$template->assign_block_vars('topicrow', array(
Codice: Seleziona tutto
// Mod by Micogian: associa il primo attach_id di ogni topic al relativo topic_id
$topic_image = attach_topic($topic_id) ;
Poi trova la parte di codice
Codice: Seleziona tutto
// Send vars to template
$template->assign_block_vars('topicrow', array(
'FORUM_ID' => $topic_forum_id,
'TOPIC_ID' => $topic_id,
Codice: Seleziona tutto
'TOPIC_IMAGE' => $topic_image,
a - Trova la parte di codice
Codice: Seleziona tutto
<dt><!-- IF forumrow.S_IS_CAT --><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a><!-- ELSE -->{L_FORUM}<!-- ENDIF --></dt>
Codice: Seleziona tutto
<dd class="thumbs"> </dd>
b - Trova la seguente parte di codice
Codice: Seleziona tutto
<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS --><br /><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}<!-- ENDIF -->
</dt>
Codice: Seleziona tutto
<dd class="thumbs"><!-- IF forumrow.FORUM_IMAGE_POST --><span class="forum-image-post"><a class="topictitle" href="{forumrow.U_LAST_POST}" title="{forumrow.LAST_POST_SUBJECT}"><img src="{forumrow.FORUM_IMAGE_POST}" width='100' /></a></span><!-- ENDIF --></dd>
Trova la parte di codice
Codice: Seleziona tutto
<dd class="posts">{topicrow.REPLIES} <dfn>{L_REPLIES}</dfn></dd>
<dd class="views">{topicrow.VIEWS} <dfn>{L_VIEWS}</dfn></dd>
Codice: Seleziona tutto
<!-- inserimento immagine topic -->
<!-- IF topicrow.TOPIC_IMAGE -->
<dd class="thumbs"><a title="{L_POSTED}: {topicrow.FIRST_POST_TIME}" href="{topicrow.U_VIEW_TOPIC}"> <img src="{topicrow.TOPIC_IMAGE}" width="90" > </a></dd>
<!-- ELSE -->
<dd class="thumbs"> </dd>
<!-- ENDIF -->
6) Modifica dei CSS necessari alla visualizzazione della miniatura.
Apri il file theme/content.css
Trova la parte di codice:
Codice: Seleziona tutto
ul.topiclist dt {
display: block;
float: left;
width: 50%;
font-size: 1.1em;
padding-left: 5px;
padding-right: 5px;
}
Codice: Seleziona tutto
ul.topiclist dt {
display: block;
float: left;
width: 40%; /*50%*/
font-size: 1.1em;
padding-left: 5px;
padding-right: 5px;
}
Codice: Seleziona tutto
/* Mod Last_topic_image */
.forum-image-post {
float: center;
padding-top: 3px;
}
/* Style miniatura allegati */
dd.thumbs {
width: 110px;
text-align: center;
line-height: 2.2em;
}