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

[DEV] View Last Pictures 2

MODs in fase di sviluppo.
maxlinux2000
Utente
Utente
Messaggi: 61
Iscritto il: 14/06/2013, 16:38
Sesso: Maschio
Versione: 3.1.5
Server: UNIX/Linux
Database: mysql
Contatta:

Re: [DEV] View Last Pictures 2

Messaggio da maxlinux2000 » 11/08/2013, 16:42

Micogian ha scritto:Un'altra soluzione è la seguente

Codice: Seleziona tutto

WHERE pt.forum_id IN (10,20) 
In questo modo la ricerca riguarda forum_id=10 e forum_id=20

ciao,
ho applicato la MOD e fonziona molto bene... peró mi piacerebbe che lo facesse su tutto il forum.
il mio forum è formato da ben 107 (id=7 -> 114) sezioni :mrgreen: (scelta degli altri amministratori).
Per ora ho selezionato il forum 112 che è in reltà un Padre (categoria) che contiene una marea di subforum.

al che pensavo che forse si potrebbe modificare il codice in qualche cosa dl genere:

Codice: Seleziona tutto

WHERE pt.forum_id IN (7-114) 
ma non sono sicuro della sintassi.
Cogito, ergo no SUV
http://mrobot.eu/

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: [DEV] View Last Pictures 2

Messaggio da Micogian » 11/08/2013, 17:10

Bisogna vedere com'è strutturato il forum. Si potrebbe utilizzare il "parent_id", in maniera che vengono presi tutti u subforum ad esso associato.
A meno che nei subforum ci sia qualche forum riservato.
Dovrebbe essere così:

Codice: Seleziona tutto

WHERE pf.parent_id IN(10,20,30)
mettendo la lista dei Forum_padre.
Se i forum da escludere sono pochi si può fare il contrario, escludere quelli.
Ammesso che i forum da escludere siano 10,20,30 si ha

Codice: Seleziona tutto

WHERE pt.forum_id <> 10
AND pt.forum_id <> 20
AND pt.forum_id <> 30
Esclude i forum 10,20 e 30 ed elabora gli altri.

maxlinux2000
Utente
Utente
Messaggi: 61
Iscritto il: 14/06/2013, 16:38
Sesso: Maschio
Versione: 3.1.5
Server: UNIX/Linux
Database: mysql
Contatta:

Re: [DEV] View Last Pictures 2

Messaggio da maxlinux2000 » 11/08/2013, 17:49

già... mi sono dimenticato di mettere il forum:

http://faidateoffgrid.altervista.org

in effetti ci sono 2 sezioni da escludere, la 9 e la 102

i vari forum sono inglobati in categorie (e non forum) che contengo i vari forum e subforum.
Cogito, ergo no SUV
http://mrobot.eu/

maxlinux2000
Utente
Utente
Messaggi: 61
Iscritto il: 14/06/2013, 16:38
Sesso: Maschio
Versione: 3.1.5
Server: UNIX/Linux
Database: mysql
Contatta:

Re: [DEV] View Last Pictures 2

Messaggio da maxlinux2000 » 11/08/2013, 18:07

guarda qui sotto.... non so cosa fare esattamente con la variabile $forum_attach_id

Codice: Seleziona tutto

    // #######   INIZIO MOD VIEW LAST PICTURES   ##########
    // function che copia l'allegato in formato thumb
    function resize_thumbs($physical,$attach_id){
        $img_des = $phpbb_root_path . "thumbs/" . $attach_id . ".jpg" ;
        // Ottengo le informazioni sull'immagine originale
        list($width, $height, $type, $attr) = getimagesize($phpbb_root_path . "files/" . $physical);

        // Creo la versione ridimensionata dell'immagine (thumbnail)
        $new_height = '120' ;
        $new_width = ($width * $new_height / $height);
        $thumb = imagecreatetruecolor($new_width, $new_height);
        $source = imagecreatefromjpeg($phpbb_root_path . "files/" . $physical);
        imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

        // Salvo l'immagine ridimensionata
        imagejpeg($thumb, $img_des, 75);
       return "thumbs/". $attach_id . ".jpg" ;
    }

    $forum_attach_id = 1;  // ATTENZIONE inserire il forum_id (padre) dal quale si vuole estrarre gli allegati

    // 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 = " . (isset($forum_attach_id) ? $forum_attach_id : 0);
    $result = $db->sql_query($sql);
    $forum_attach_data = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);

    // Check if forum exist
    if (!$forum_attach_data)
    {
       trigger_error('NO_FORUM');
    }

    // Check if user have permissions
    if (!$auth->acl_gets('f_list', 'f_read', $forum_attach_id) || ($forum_attach_data['forum_type'] == FORUM_LINK && $forum_attach_data['forum_link'] && !$auth->acl_get('f_read', $forum_attach_id)))
    {
       if ($user->data['user_id'] != ANONYMOUS)
       {
          trigger_error('SORRY_AUTH_READ');
       }

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

    // Check if forum is passworded
    if ($forum_attach_data['forum_password'])
    {
       login_forum_box($forum_attach_data);
    }

    //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, pf.forum_id, pt.topic_time
    FROM ". TOPICS_TABLE." pt,". FORUMS_TABLE. " pf
    WHERE pt.forum_id <> 9
    AND pt.forum_id <> 102
    AND pt.topic_attachment = 1
    ORDER BY pt.topic_time DESC LIMIT 6";

    $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, pa.extension
          FROM ". ATTACHMENTS_TABLE." pa
          WHERE pa.topic_id = $topic_id
       AND pa.extension = 'jpg'
          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'];
       $physical = $row1['physical_filename'];
       $thumbs = "thumbs/". $attach_id . ".jpg" ;
       if (is_file($thumbs)){
       $thumb_cor = $thumbs ;  // se il file thumb esiste visualizza questo
       }else{
       $thumb_cor = resize_thumbs($physical, $attach_id);   // altrimenti lo crea
       }

    // assegna le variabili da passare al file HTML
    $template->assign_block_vars('attach_list', array(
          'MY_TOPIC_ID'        => $row['topic_id'],
          'MY_FORUM_ID'        => $row['forum_id'],
          'MY_TOPIC_TITLE'     => $row['topic_title'],
          'MY_TOPIC_LINK'      => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't='.$row['topic_id']),
          'MY_ATTACH_LINK'     => append_sid("{$phpbb_root_path}download/file.$phpEx", 'id='.$attach_id),
          'MY_FORUM_NAME'      => $row['forum_name'],
          'MY_TOPIC_AUTHOR'    => $row['topic_first_poster_name'],
          'MY_ATTACH_ID'       => $attach_id,
          'MY_THUMBS'          => $thumb_cor
          ));
    }

    //$db->sql_freeresult($result);
    // #######   FINE MOD VIEW LAST PICTURES   ##########
Cogito, ergo no SUV
http://mrobot.eu/

maxlinux2000
Utente
Utente
Messaggi: 61
Iscritto il: 14/06/2013, 16:38
Sesso: Maschio
Versione: 3.1.5
Server: UNIX/Linux
Database: mysql
Contatta:

Re: [DEV] View Last Pictures 2

Messaggio da maxlinux2000 » 23/08/2013, 18:51

ho dovuto eliminare questa mod purtroppo in quanto mi dava dei warning

leggi qui:

http://forum.it.altervista.org/phpbb/19 ... forum.html
Cogito, ergo no SUV
http://mrobot.eu/

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: [DEV] View Last Pictures 2

Messaggio da Micogian » 24/08/2013, 7:41

L'errore è evidente e anche banale ed è causato da un allegato non previsto.
[phpBB Debug] PHP Warning: in file [ROOT]/index.php on line 210: Division by zero
[phpBB Debug] PHP Warning: in file [ROOT]/index.php on line 211: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions
La funzione che crea la miniatura non riesce a leggere la dimensione e il calcolo delle proporzioni da errore perchè il valore indicato è zero.
La Mod prevede l'elaborazione soltanto dei file jpg. Nella query va indicata questa limitazione, se non c'è già.
In pratica la query dovrebbe contenere questa riga di codice:

Codice: Seleziona tutto

AND pa.extension = 'jpg'
Sono quindi escluse le immagini postate con i bbcode IMG e i file diversi da jpg.
Se volessimo elaborare file non jpg dovremmo modificare la function che crea le miniature, indicando una diversa operazione a seconda del tipo di file.

maxlinux2000
Utente
Utente
Messaggi: 61
Iscritto il: 14/06/2013, 16:38
Sesso: Maschio
Versione: 3.1.5
Server: UNIX/Linux
Database: mysql
Contatta:

Re: [DEV] View Last Pictures 2

Messaggio da maxlinux2000 » 24/08/2013, 8:12

si, la query contiene (conteneva) l' estensione jpg, e ha funzionato perfettamente. Sarebbe possibile che quacuno abbia postato un jpg, danneggiato?
Oppure che y sysop abbiano installato una nuova versione si un modulo di php che rende incompatibile la tua MOD?
Cogito, ergo no SUV
http://mrobot.eu/

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: [DEV] View Last Pictures 2

Messaggio da Micogian » 24/08/2013, 8:39

Se l'host ha installato una nuova versione di php potrebbe non aver abilitato alcune funzioni.
Se l'errore riguarda una sola immagine il problema sta nell'immagine.

Se la Mod è stata messa in un file esterno e non direttamente nell'index, si può fare una semplice prova, creare un file "prova_page.php" con il seguente contenuto:

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);

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

$user->setup();
    
page_header('pagina di prova');

// questa è la mod da provare
include($phpbb_root_path . 'mod_last_pictures.' . $phpEx);

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

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

?>
In pratica è una Custom Page con inclusa la Mod Last_Pictures (attenzione a mettere il nome esatto del file.

Poi si crea un file nel Template "mod_page_body.html" che ha questo contenuto:

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->
<!-- INCLUDE mod_last_pictures_body.html -->
<!-- INCLUDE overall_footer.html --> 
Anche qui ovviamente va indicato l'esatto nome del file (se è stato usato un file "mod_last_pictures.html")

A questo punto la pagina "prova_page.php" visualizza solo la striscia fotografica.
Se ci sono errori si può ridurre il numero degli allegati elaborati nella query e vedere se il problema è comune o limitato ad un allegato.

alvaro arcaini
Utente
Utente
Messaggi: 6
Iscritto il: 26/10/2013, 14:35
Sesso: Maschio
Versione: 3.0.10
Server: Windows
PHP: phpbb3

Re: [DEV] View Last Pictures 2

Messaggio da alvaro arcaini » 31/10/2013, 13:24

Ciao Micogian,
sono l'amministratore del forum http://www.alvarophoto.com/forum/index.php sto cercando di inserire una mod che mi permetta di visualizzare le ultime 6 immagini inserite in una specifica categoria del forum. La tua MOD fa prorpio al caso mio. Però dopo giorni e giorni che provo non sono riuscito a farla funzionare.
Mi spiego meglio: il risultato che ho ottenuto è semplicemente la comparda della striscia (ultime immagini del forum) però le foto non appaiono. Guarda foto.

Immagine

Quello che voglio ottenere è una striscia che visualizzi le ultime 6 foto inserite nei forum n° 16,26,17,30,50


Le foto che inseriscono gli utenti nei forum 16,26,17,30,50 provengono da link esterni, quindi sono compresi all'interno dei tag IMG

Di seguito i codici che ho modificato:

index.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);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');

display_forums('', $config['load_moderators']);

// Set some stats, get posts count from forums data if we... hum... retrieve all forums data
$total_posts	= $config['num_posts'];
$total_topics	= $config['num_topics'];
$total_users	= $config['num_users'];

$l_total_user_s = ($total_users == 0) ? 'TOTAL_USERS_ZERO' : 'TOTAL_USERS_OTHER';
$l_total_post_s = ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER';
$l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER';

// Grab group details for legend display
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
{
	$sql = 'SELECT group_id, group_name, group_colour, group_type
		FROM ' . GROUPS_TABLE . '
		WHERE group_legend = 1
		ORDER BY group_name ASC';
}
else
{
	$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type
		FROM ' . GROUPS_TABLE . ' g
		LEFT JOIN ' . USER_GROUP_TABLE . ' ug
			ON (
				g.group_id = ug.group_id
				AND ug.user_id = ' . $user->data['user_id'] . '
				AND ug.user_pending = 0
			)
		WHERE g.group_legend = 1
			AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
		ORDER BY g.group_name ASC';
}
$result = $db->sql_query($sql);

$legend = array();
while ($row = $db->sql_fetchrow($result))
{
	$colour_text = ($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . '"' : '';
	$group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];

	if ($row['group_name'] == 'BOTS' || ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile')))
	{
		$legend[] = '<span' . $colour_text . '>' . $group_name . '</span>';
	}
	else
	{
		$legend[] = '<a' . $colour_text . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']) . '">' . $group_name . '</a>';
	}
}
$db->sql_freeresult($result);

$legend = implode(', ', $legend);

// Generate birthday list if required ...
$birthday_list = '';
if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
{
	$now = phpbb_gmgetdate(time() + $user->timezone + $user->dst);

	// Display birthdays of 29th february on 28th february in non-leap-years
	$leap_year_birthdays = '';
	if ($now['mday'] == 28 && $now['mon'] == 2 && !$user->format_date(time(), 'L'))
	{
		$leap_year_birthdays = " OR user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'";
	}

	$sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday
		FROM ' . USERS_TABLE . ' u
		LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)
		WHERE (b.ban_id IS NULL
			OR b.ban_exclude = 1)
			AND (u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays)
			AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		$birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);

		if ($age = (int) substr($row['user_birthday'], -4))
		{
			$birthday_list .= ' (' . max(0, $now['year'] - $age) . ')';
		}
	}
	$db->sql_freeresult($result);
}

// Assign index specific vars
$template->assign_vars(array(
	'TOTAL_POSTS'	=> sprintf($user->lang[$l_total_post_s], $total_posts),
	'TOTAL_TOPICS'	=> sprintf($user->lang[$l_total_topic_s], $total_topics),
	'TOTAL_USERS'	=> sprintf($user->lang[$l_total_user_s], $total_users),
	'NEWEST_USER'	=> sprintf($user->lang['NEWEST_USER'], get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),

	'LEGEND'		=> $legend,
	'BIRTHDAY_LIST'	=> $birthday_list,

	'FORUM_IMG'				=> $user->img('forum_read', 'NO_UNREAD_POSTS'),
	'FORUM_UNREAD_IMG'			=> $user->img('forum_unread', 'UNREAD_POSTS'),
	'FORUM_LOCKED_IMG'		=> $user->img('forum_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
	'FORUM_UNREAD_LOCKED_IMG'	=> $user->img('forum_unread_locked', 'UNREAD_POSTS_LOCKED'),

	'S_LOGIN_ACTION'			=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
	'S_DISPLAY_BIRTHDAY_LIST'	=> ($config['load_birthdays']) ? true : false,

	'U_MARK_FORUMS'		=> ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&mark=forums') : '',
	'U_MCP'				=> ($auth->acl_get('m_') || $auth->acl_getf_global('m_')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=front', true, $user->session_id) : '')
);


// #######   INIZIO MOD VIEW LAST PICTURES   ##########
// function che copia l'allegato in formato thumb
function resize_thumbs($physical,$attach_id){
    $img_des = $phpbb_root_path . "thumbs/" . $attach_id . ".jpg" ; 
    // Ottengo le informazioni sull'immagine originale
    list($width, $height, $type, $attr) = getimagesize($phpbb_root_path . "files/" . $physical);

    // Creo la versione ridimensionata dell'immagine (thumbnail)
    $new_height = '120' ;
    $new_width = ($width * $new_height / $height);
    $thumb = imagecreatetruecolor($new_width, $new_height);
    $source = imagecreatefromjpeg($phpbb_root_path . "files/" . $physical);
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    // Salvo l'immagine ridimensionata
    imagejpeg($thumb, $img_des, 75);
   return "thumbs/". $attach_id . ".jpg" ;
}

$forum_attach_id = 15; // ATTENZIONE inserire il forum_id (padre) dal quale si vuole estrarre gli allegati   

// 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 = " . (isset($forum_attach_id) ? $forum_attach_id : 0);
$result = $db->sql_query($sql);
$forum_attach_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

// Check if forum exist
if (!$forum_attach_data)
{
   trigger_error('NO_FORUM');
}

// Check if user have permissions
if (!$auth->acl_gets('f_list', 'f_read', $forum_attach_id) || ($forum_attach_data['forum_type'] == FORUM_LINK && $forum_attach_data['forum_link'] && !$auth->acl_get('f_read', $forum_attach_id)))
{
   if ($user->data['user_id'] != ANONYMOUS)
   {
      trigger_error('SORRY_AUTH_READ');
   }

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

// Check if forum is passworded
if ($forum_attach_data['forum_password'])
{
   login_forum_box($forum_attach_data);
}

//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, pf.forum_id, pt.topic_time
FROM ". TOPICS_TABLE." pt,". FORUMS_TABLE. " pf
WHERE pt.forum_id > 16 AND pt.forum_id < 50
AND pt.forum_id = pf.forum_id
AND pt.topic_attachment = 1
ORDER BY pt.topic_time DESC LIMIT 6";

$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, pa.extension
      FROM ". ATTACHMENTS_TABLE." pa
      WHERE pa.topic_id = $topic_id
   AND pa.extension = 'jpg'
      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'];
   $physical = $row1['physical_filename'];
   $thumbs = "thumbs/". $attach_id . ".jpg" ;
   if (is_file($thumbs)){
   $thumb_cor = $thumbs ;  // se il file thumb esiste visualizza questo
   }else{
   $thumb_cor = resize_thumbs($physical, $attach_id);   // altrimenti lo crea 
   }
   
// assegna le variabili da passare al file HTML
$template->assign_block_vars('attach_list', array(
      'MY_TOPIC_ID'        => $row['topic_id'],
      'MY_FORUM_ID'        => $row['forum_id'],
      'MY_TOPIC_TITLE'     => $row['topic_title'],
      'MY_TOPIC_LINK'      => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't='.$row['topic_id']),
      'MY_ATTACH_LINK'     => append_sid("{$phpbb_root_path}download/file.$phpEx", 'id='.$attach_id),
      'MY_FORUM_NAME'      => $row['forum_name'],
      'MY_TOPIC_AUTHOR'    => $row['topic_first_poster_name'],
      'MY_ATTACH_ID'       => $attach_id,
      'MY_THUMBS'          => $thumb_cor
      ));
}

//$db->sql_freeresult($result);
// #######   FINE MOD VIEW LAST PICTURES   ##########
// Output page
page_header($user->lang['INDEX']);

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

page_footer();

?>
creati i mod_last_pic.html

Codice: Seleziona tutto

<div class="forabg">
   <div class="inner"><span class="corners-top"><span></span></span>
   <ul class="topiclist">
      <li class="header">
         <dl class="icon">
         <dt>Ultime immagini del Forum</dt>
         </dl>      
      </li>
   </ul>
   <ul class="topiclist forums">
      <li class="row">
         <div align="center">
         <!-- BEGIN attach_list -->
         <a href="{attach_list.MY_TOPIC_LINK}" title="{attach_list.MY_TOPIC_TITLE} (di {attach_list.MY_TOPIC_AUTHOR})"><img src="{attach_list.MY_ATTACH_LINK}" alt="{attach_list.MY_FORUM_NAME}" border="0" height="100"></a>
         <!-- END attach_list-->
         </div>
      </li>
   </ul>
   <span class="corners-bottom"><span></span></span></div>
</div>
modificati index_body.html

Codice: Seleziona tutto

<div class="forabg">
   <div class="inner"><span class="corners-top"><span></span></span>
   <ul class="topiclist">
      <li class="header">
         <dl class="icon">
         <dt>Ultime immagini del Forum</dt>
         </dl>      
      </li>
   </ul>
   <ul class="topiclist forums">
      <li class="row">
         <div align="center">
         <!-- BEGIN attach_list -->
         <a href="{attach_list.MY_TOPIC_LINK}" title="{attach_list.MY_TOPIC_TITLE} (di {attach_list.MY_TOPIC_AUTHOR})"><img src="{attach_list.MY_ATTACH_LINK}" alt="{attach_list.MY_FORUM_NAME}" border="0" height="100"></a>
         <!-- END attach_list-->
         </div>
      </li>
   </ul>
   <span class="corners-bottom"><span></span></span></div>
</div>
Puoi dirmi dove ho sbagliato. Grazie per il tuo tempo.

Alvaro

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: [DEV] View Last Pictures 2

Messaggio da Micogian » 05/11/2013, 11:30

Mi sembra che la descrizione della Mod parli chiaro: "visualizza gli ultimi allegati...."
Stiamo parlando di "allegati", le immagini postate con il bbcode IMG sono altra cosa che View Last Pictures non fa.
Nei miei forum non usiamo mai links esterni soprattutto perchè per vari motivi potrebbero sparire e lasciare monche le disussioni.
Altro motivo a favore degli "allegati" è che questi sono ricavabili dalla tabella "attachments" con tutti i rerlativi dati (Topic, Post, Autore, titolo, data, dimensione, nome del file, ecc.)
Il bbcode [IMG] è un link esterno inserito nel testo del post.
Mentre con la tabella "attachments" è semplice ricavare gli ultimi allegati di un determinato elenco di Forum, per il bbcode le cose sono diverse.
Bisogna interrogare tutti i topics e posts per vedere se all'interno del testo contengono il bbcode [IMG] e ricavare l'url.
Considerando che ci potrebbero essere posts senza immagini, la ricerca è certamente più complessa e i dati disponibili più scarsi.
C'è da considerare che anche le Emoticons sono links "immagini" e potrebbero creare complicazioni.
Comunque, anche se più complicata, la soluzione ci sarebbe, probabilmente avevo rilasciato una Mod in phpbb.it ma questo forum non c'è più.
Dovrei controllare se ce l'ho ancora da qualche parte. Mi sembra di averla creata per un altro sito fotografico: Photolandia.net

Rispondi

Torna a “MODs in sviluppo”

Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti