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

estrarre immagini dai tag img

Cerchi una MOD? Chiedi in questo forum.
Questa sezione è supportata dagli utenti del forum, pertanto lo Staff potrebbe non eseguire tali richieste.
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: estrarre immagini dai tag img

Messaggio da Micogian » 21/09/2012, 22:30

Per togliere i bbcode [IMG]

Codice: Seleziona tutto

$template->assign_block_vars('lista_foto',array(
'USERNAME_COR'   => $row['username'],
'USER_COR'  => $row['user_id'],
'FOTO'  => preg_replace('/\[IMG\](.+)\[\/IMG\]/', '$1', $row['pf_foto']),
'FOTO_A'   => preg_replace('/\[IMG\](.+)\[\/IMG\]/', '$1', $row['pf_fotoa']),
ecc.
Nel template

Codice: Seleziona tutto

<!-- BEGIN lista_foto -->
      {lista_foto.USERNAME_COR}<br /><br />
       <img src="{lista_foto.FOTO}" alt=""><br />
       <img src="{lista_foto.FOTO_A}" alt=""><br />
................

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: estrarre immagini dai tag img

Messaggio da alex75 » 21/09/2012, 22:58

Grande micogian! funziona!
unica pecca, che converte solo i tag scritti in maiuscolo (IMG) molti lo scrivono minuscolo (img) e la funziona non la converte.

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: estrarre immagini dai tag img

Messaggio da Micogian » 21/09/2012, 23:17

Codice: Seleziona tutto

'FOTO'  => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_foto'])),
Salvo che l'url contenga caratteri maiuscoli.
Altrimenti ci deve essere una soluzione alternativa, ma non sono sicuro,

Codice: Seleziona tutto

'FOTO'  => preg_replace('/\[img|IMG\](.+)\[\/img|IMG\]/', '$1', $row['pf_foto']),
ma un modo per usare preg_replace con minuscolo-maiuscolo c'è senz'altro, adesso non me lo ricordo.

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: estrarre immagini dai tag img

Messaggio da alex75 » 21/09/2012, 23:21

Grande! Dalle tue mani (anzi dalla tua testa) esce oro colato!
Mi salvi sempre!
Ps. ovviamente funziona ;)
Puoi mettere risolto!

Edit: già che c'ero le ho provate entrambe...
la prima funziona sia con tag img maiuscolo che in minuscolo.

Codice: Seleziona tutto

'FOTO'  => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_foto'])),
La seconda non funziona ne con uno ne con l'altro.

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: estrarre immagini dai tag img

Messaggio da alex75 » 22/09/2012, 11:05

Ragazzi perdonatemi... ma ho ancora un problema.
non riesco a far processare il begin lista_foto in una custom page.
Fino ad ora per le prove, la usavo all'interno di un riquadro sotto la topten_topics e funzionava.
file mod_profile_foto.php (incluso in index.php) con le funzioni che richiamerò sul template.
file mod_profile_foto.html (incluso in index_body.html) con il begin lista_foto.
Adesso come da guida sul wiki, ho creato una pagina, gallery.php che richiama il suo template in gallery_body.html
Questi ultimi 2 non sono inclusi in nessun posto. ho lasciato l'include di mod_profile_foto.php su index.php ed ho tolto l'include di mod_profile_foto.html da index_body.html
Aprendo miosito.it/gallery la pagina funziona correttamente (login compresi) ma riesce a visualizzare solo del testo mentre il begin lista_foto non viene visualizzato.
Questi i 3 file attuali:
mod_profile_foto.php (incluso su index.php)

Codice: Seleziona tutto

<?php
if (!defined('IN_PHPBB'))
{
exit;
}
$sql = "SELECT ut.user_id, ut.username, pt.user_id, pt.pf_foto, pt.pf_fotoa, pt.pf_fotob, pt.pf_fotoc, pt.pf_fotod, pt.pf_fotoe, pt.pf_fotof, pt.pf_fotog, pt.pf_fotoh, pt.pf_fotoi
FROM " . USERS_TABLE . " ut, " . PROFILE_FIELDS_DATA_TABLE . " pt 
WHERE pf_foto like '[%' 
AND ut.user_id = pt.user_id 
ORDER BY pt.user_id";
        
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('lista_foto',array(
'USERNAME_COR'   => $row['username'],
'USER_COR'    => $row['user_id'],
'FOTO'         => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_foto'])),
'FOTO_A'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotoa'])),
'FOTO_B'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotob'])),
'FOTO_C'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotoc'])),
'FOTO_D'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotod'])),
'FOTO_E'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotoe'])),
'FOTO_F'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotof'])),
'FOTO_G'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotog'])),
'FOTO_H'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotoh'])),
'FOTO_I'       => preg_replace('/\[img\](.+)\[\/img\]/', '$1', strtolower($row['pf_fotoi']))
));
}
?>
gallery.php (non incluso da nessuna parte, semplicemente creato e copiato sulla root insieme all'index.php)

Codice: Seleziona tutto

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

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
if ($user->data['user_id'] == ANONYMOUS)
{
        login_box('', $user->lang['LOGIN']);
}

page_header('Foto gallery utenti');

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

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
gallery_body.html (non incluso da nessuna parte, semplicemente creato e copiato sotto prosilver/template)

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->

<h2>Foto gallery utenti</h2>

<div class="panel">
        <div class="inner"><span class="corners-top"><span></span></span>

        <div class="content">
                <p>
                        Qui il contenuto (e qualsiasi cosa scrivo qui viene visualizzata)
						mentre questo begin non viene preso in considerazione
						<!-- BEGIN lista_foto --> 
		<B><BIG>{lista_foto.USERNAME_COR}</B></BIG><br /><br />
        <img src="{lista_foto.FOTO}" alt=""<br /><br /><br />
        <img src="{lista_foto.FOTO_A}" alt=""<br /><br /><br />
        <img src="{lista_foto.FOTO_B}" alt=""<br /><br /><br />
		<img src="{lista_foto.FOTO_C}" alt=""<br /><br /><br />
		<img src="{lista_foto.FOTO_D}" alt=""<br /><br /><br />
		<img src="{lista_foto.FOTO_E}" alt=""<br /><br /><br />
		<img src="{lista_foto.FOTO_F}" alt=""<br /><br /><br />
		<img src="{lista_foto.FOTO_G}" alt=""<br /><br /><br />
		<img src="{lista_foto.FOTO_H}" alt=""<br /><br /><br />
		<img src="{lista_foto.FOTO_I}" alt=""<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
		<!-- END lista_foto -->
                </p>
        </div>

        <span class="corners-bottom"><span></span></span></div>
</div>

<!-- INCLUDE jumpbox.html -->
<!-- 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: estrarre immagini dai tag img

Messaggio da Micogian » 22/09/2012, 11:51

Se tu hai creato una Custom page non centra nulla quello che hai incluso in index.php.
Sono due pagine diverse.
Devi includere in gallery.php il file che elabora la query.
Prima del riferimento al template

Codice: Seleziona tutto

$template->set_filenames(array(
ci devi mettere

Codice: Seleziona tutto

include($phpbb_root_path . 'mod_profile_foto.' . $phpEx);

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: estrarre immagini dai tag img

Messaggio da alex75 » 22/09/2012, 12:23

Ero sicuro di aver fatto confusione con gli include... ma non riuscivo a venirne fuori :D
Come sempre... i tuoi preziosi consigli, funzionano alla grande. ;)

Rispondi

Torna a “Richiesta MOD”

Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti