Pagina 1 di 1

Riuso vecchia estensione "[DEV] View Last Pictures 2" per phpBB 3.0.x

Inviato: 14/03/2017, 20:14
da Pancrazio
Salve, chiedo scusa se la sezione non sia quella giusta, essendo un problema non intrinseco dell'estensione ma solo dell'incompatibilità di essa con la versione 3.2.0 del software phpBB ho pensato che questa potesse essere la sezione giusta dove postare.

Come da oggetto, volevo utilizzare l'estensione "View Last Pictures 2" sul mio forum che è alla versione 3.2.0 con php 7.0.16.

Ho provato ad installarla ma, come mi aspettavo, non funziona.

L'estensione installata non da errori di php, ha solo dei problemi minori legati allo style (facili da risolvere) ma purtroppo, mentre resituisce correttamente la finestra col riquadro dove dovrebbero essere mostrate le thumbnails, e non ha problemi a produrre in output le thumbnails medesime (sono rinvenibili nell'apposita cartella), purtroppo non le mostra nel riquadro dedicato, credo per un problema di estrazione dal database dei thread e degli autori. Credo che il problema sia legato al cambiamento delle variabili tra una versione e l'altra del forum, ma essendo che io di php ne capisco poco, non sono in grado di capire dove sia il problema.
Sono comunque abbastanza sicuro che si trovi in questo file:

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 pf.parent_id = $forum_attach_id
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   ##########
Qualcuno sa come risolvere? Credo che basterebbe poco per rendere questa mod utilizzabile anche con 3.2.0.

Re: Riuso vecchia estensione "[DEV] View Last Pictures 2" per phpBB 3.0.x

Inviato: 22/03/2017, 17:44
da Micogian
La Mod View Last pictures l'ho creata io,
Fino alla versione 3.0 di phpbb era sotto forma di Mod, con la versione 3.1 è stata trasformata in estensione anche se non l'ho resa pubblica.
L'estensione funziona con phpbb 3.1, purtroppo, per ragioni di tempo, non ho ancora aggiornato alla 3.2 e quindi non saprei quali possano essere i problemi.
Appena ho un pò di tempo vedo di fare l'aggiornamento in locale per vedere quali possono essere i problemi.

Re: Riuso vecchia estensione "[DEV] View Last Pictures 2" per phpBB 3.0.x

Inviato: 22/03/2017, 19:46
da Pancrazio
Ciao Micogian! Tanto per cominciare grazie per l'ext.
Siccome ho la testa dura ed un pallino per il bricolage ( :D ) ho aggiornato io la versione 3.1 alla 3.2. Ancora mi da qualche errore, ma credo che ci sia tutta, anche perché, beh, funziona. Se ti interessa ti passo il codice così lo puoi pubblicate o utilizzare dove e come credi più opportuno. Sentiamoci in PVT (se si può).

Re: Riuso vecchia estensione "[DEV] View Last Pictures 2" per phpBB 3.0.x

Inviato: 22/03/2017, 20:28
da Micogian
Vedo che ti interessi di piante, io sono uno dei fondatori di Acta Plantarum e in pratica quello che ne gestisce la parte informatica.
E' da tempo che devo aggiornare il forum, ma ci sono tante di quelle Mod che mi spaventa affrontarlo, anche se in gran parte ho già pronte le estensioni principali.