Pagina 1 di 2

estrarre immagini dai tag img

Inviato: 20/08/2012, 12:18
da alex75
Salve ragazzi ;-) dovrei fare una modifica al mio forum e avrei bisogno di estrarre delle foto hostate su tinypic e salvarle su una cartella del mio ftp.
Cerco di spiegarmi meglio...
Ho fatto una modifica al profilo utenti, col quale è possibile inserire fino a 10 immagini hostate esclusivamente su tinypic ed inserite sul proprio profilo, tramite tag

Codice: Seleziona tutto

[img]fotoblablabla.tinypic.com.jpg[/img]

I 10 campi personalizzati, hanno come id univoco (foto, fotoa, fotob, fotoc, fotod, fotoe, fotof, fotog, fotoh, fotoi).
Capisco, che essendo immagini hostate altrove, non sia una cosa semplicissima.
In alternativa, (forse più semplice per tutti) sapreste dirmi come far comparire, il tasto allegati sul profilo utenti, di fianco a questi campi?
allego 2 screen per darvi un'idea di cosa parlo.
Immagine
Immagine
Grazie a tutti ;-)

Re: estrarre immagini dai tag img

Inviato: 22/08/2012, 18:36
da alex75
Evidentemente l'ho detta proprio grossa :D
Forse sarebbe meglio spostare su "php - mysql"
e magari cominciare semplicemente col capire, come estrarre i contenuti dai campi profilo personalizzato che ho indicato nel primo post.
Se ancora una volta, l'ho detta grossa; ditemelo pure... mica mi offendo :lol:

Edit:
Ho modificato, il post. Per il mio scopo, credo che mi basti semplicemente ricevere una lista con i contenuti di questi campi; così come sono compilati, cioè comprensivi di tag

Codice: Seleziona tutto

[img][/img]

Cercando qua e là (guide di phpbbitalia comprese); sto cercando di compilare un file php. Ma ho parecchi dubbi.

1- Nel file php, devo includere il config.php per aprire il db? o includendo nell'index_body, il file.php da me creato, non ne ho di bisogno?
2- dopo aver aperto il db chiedo di aprire la tabella xxx con il comando "SELECT FROM" ma trattandosi di 10 tabelle, devo ripeterlo 10 volte? o posso specificare "SELECT FROM xxx1, xxx2, xxx3 etc" ?
3- come stampo a video questi risultati?
Scusate, ma con php sono proprio messo male; sto cercando di capire ;-)

Re: estrarre immagini dai tag img

Inviato: 24/08/2012, 14:47
da alex75
Anche se la discussione, sembra non suscitare l'interesse di nessuno, mi sembra doveroso dare degli aggiornamenti.
Ho scelto una strada molto più semplice, per ottenere comunque lo stesso risultato voluto.
In una custom page (che esattamente trattasi di un semplice riquadro in fondo alla home page) sto cercando di richiamare a video, i contenuti di alcuni campi profilo personalizzati.
Questo è il codice che sto cercando di far funzionare:

Codice: Seleziona tutto

<!-- BEGIN custom_fields -->
         <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME != 'foto' -->
         <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
         <!-- ENDIF -->
      <!-- END custom_fields -->
Ma ovviamente, non visualizza niente, perchè il codice fa riferimento ad un profilo dell'autore del post; in quel riquadro non esiste nessun post, quindi nessun autore.
Come poteri modificare il codice, per far si che visualizzi, il contenuto del profilo personalizzato "foto" di tutti gli utenti?

Re: R: estrarre immagini dai tag img

Inviato: 25/08/2012, 0:18
da Andrea RBR-W
alex75 ha scritto:Anche se la discussione, sembra non suscitare l'interesse di nessuno, mi sembra doveroso dare degli aggiornamenti.
Ho scelto una strada molto più semplice, per ottenere comunque lo stesso risultato voluto.
In una custom page (che esattamente trattasi di un semplice riquadro in fondo alla home page) sto cercando di richiamare a video, i contenuti di alcuni campi profilo personalizzati.
Questo è il codice che sto cercando di far funzionare:

Codice: Seleziona tutto

<!-- BEGIN custom_fields -->
         <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME != 'foto' -->
         <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
         <!-- ENDIF -->
      <!-- END custom_fields -->
Ma ovviamente, non visualizza niente, perchè il codice fa riferimento ad un profilo dell'autore del post; in quel riquadro non esiste nessun post, quindi nessun autore.
Come poteri modificare il codice, per far si che visualizzi, il contenuto del profilo personalizzato "foto" di tutti gli utenti?
Devi intervenite nel file php, facendo l'nterrogazione al database su tutti gli utenti e nn solo quelli dei post..

Inviato dal mio Vodafone 858 con Tapatalk 2

Re: estrarre immagini dai tag img

Inviato: 19/09/2012, 6:22
da alex75
Grazie a l'ottima guida sul wiki, ma soprattutto grazie a l'aiuto e la pasienza di micogian, sono riuscito ad interrogare il database.
Avrei bisogno di alcune varianti.
Vorrei visualizzare l'username invece dell'user id.
Vorrei visualizzare solo i campi compilati (attualmente per i campi vuoti, mi da una riga vuota)
Vorrei visualizzare i risultati richiesti (username, foto, fotob, fotoc etc) soltanto se il campo "foto" sia compilato.
Questo è il codice attuale:

Codice: Seleziona tutto

<?php
if (!defined('IN_PHPBB'))
{
exit;
}
$sql = "SELECT user_id, pf_foto, pf_fotoa, pf_fotob, pf_fotoc, pf_fotod, pf_fotoe, pf_fotof, pf_fotog, pf_fotoh, pf_fotoi
FROM " . PROFILE_FIELDS_DATA_TABLE . " ORDER BY user_id";
         
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('lista_foto',array(
'USER_COR'    => $row['user_id'],
'FOTO'          => $row['pf_foto'],
'FOTO_A'       => $row['pf_fotoa'],
'FOTO_B'       => $row['pf_fotob'],
'FOTO_C'       => $row['pf_fotoc'],
'FOTO_D'       => $row['pf_fotod'],
'FOTO_E'       => $row['pf_fotoe'],
'FOTO_F'       => $row['pf_fotof'],
'FOTO_G'       => $row['pf_fotog'],
'FOTO_H'       => $row['pf_fotoh'],
'FOTO_I'       => $row['pf_fotoi']
));
}
?>
e questa è una screen del risultato attuale: (non fate caso al template... ancora è in fase sperimentale :D )
Immagine
Scusate per le domande forse banali... devo mettermi a studiare sql e php ! :oops:

Re: estrarre immagini dai tag img

Inviato: 19/09/2012, 21:26
da alex75
campi nulli eliminati... ho aggiunto il comando like e sapendo che quel campo, se compilato il primo simbolo è questo [
ho scritto così:

Codice: Seleziona tutto

WHERE pf_foto like '[%'
avevo provato a scrivere il like con questo '[img]' ma mi scartava le maiuscolo. mi sta benissimo così.
Qualcuno mi può dare una mano per visualizzare l'username invece dell' user_id?

Re: estrarre immagini dai tag img

Inviato: 20/09/2012, 17:49
da alex75
Cercando qua e la, ho appurato che quello di cui ho di bisogno è il comando "INNER JOIN" che tramite il comando "SELECT" richiama dati da diverse tabelle che abbiano colonne in comune.
Nel mio caso, le 2 tabelle sono "USERS" e "PROFILE_FIELDS_DATA". la colonna in comune è "user_id".
Io dovrei estrarre da "USERS" la colonna username, mentre da "PROFILE_FIELDS_DATA" le colonne foto, fotoa, fotob etc.
ORDER BY user_id
quello che vorrei ottenere è: user_id / username / foto / fotoa / fotob / fotoc etc. etc.
Ma non riesco ad impostare il comando "JOIN" mi va sempre in errore...
Una manina? :D
Questo è il risultato attuale senza l'username:
Immagine

Re: estrarre immagini dai tag img

Inviato: 20/09/2012, 22:33
da Micogian
La risposta ce l'hai nell'esempio 2 della Guida http://wiki.phpbbitalia.net/Interrogare_il_database

Re: estrarre immagini dai tag img

Inviato: 20/09/2012, 23:12
da alex75
Funziona!
Purtroppo, quando non si sa dove mettere le mani, al primo errore si passa a provare altri esempi, tralasciando inconsapevolmente, quello corretto.
adesso ho questo risultato:
Immagine
manca l'ultimo passaggio; dire al template di interpretare i bbcode img e visualizzare le foto invece delle righe di testo.
Spero che si possa fare qualcosa (facendo un begin bbcode o un include bbcode) e che dopo essere arrivato fin quì non debba ripartire da 0, dalla guida "estrarre l'URL di un BBCode [img] inserito in un post".
http://wiki.phpbbitalia.net/Creare_funz ... onalizzate (esempio 3)

Re: estrarre immagini dai tag img

Inviato: 21/09/2012, 21:09
da alex75
manca l'ultimo passaggio; dire al template di interpretare i bbcode img e visualizzare le foto invece delle righe di testo.
Qualcuno sa darmi un indizio?
Almeno per capire cosa sbaglio.
questo è il file.php che sto usando:

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'          => $row['pf_foto'],
'FOTO_A'       => $row['pf_fotoa'],
'FOTO_B'       => $row['pf_fotob'],
'FOTO_C'       => $row['pf_fotoc'],
'FOTO_D'       => $row['pf_fotod'],
'FOTO_E'       => $row['pf_fotoe'],
'FOTO_F'       => $row['pf_fotof'],
'FOTO_G'       => $row['pf_fotog'],
'FOTO_H'       => $row['pf_fotoh'],
'FOTO_I'       => $row['pf_fotoi']
));
}
?>
e questo il template (al momento integrato a fondo pagina, nell'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>Foto Gallery Utenti</dt>
             </dl>     
          </li>
       </ul>
	   <ul  class="topiclist forums" >
	   <li class="row">
             <div style="display: block; text-align: center;">
		<!-- BEGIN lista_foto --> 
		{lista_foto.USERNAME_COR}<br /><br />
        {lista_foto.FOTO}<br />
        {lista_foto.FOTO_A}<br />
        {lista_foto.FOTO_B}<br />
		{lista_foto.FOTO_C}<br />
		{lista_foto.FOTO_D}<br />
		{lista_foto.FOTO_E}<br />
		{lista_foto.FOTO_F}<br />
		{lista_foto.FOTO_G}<br />
		{lista_foto.FOTO_H}<br />
		{lista_foto.FOTO_I}<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
		<!-- END lista_foto -->
		<div style="clear: both;"></div>
			 </div>
          </li>
       </ul>
       <span class="corners-bottom"><span></span></span></div>
</div>