[RISOLTO] Visualizzare immagini (di altri) utenti

5 contenuti / 0 new
Ultimo contenuto
[RISOLTO] Visualizzare immagini (di altri) utenti

Ho un problema: ho editato la pagina del profilo a mano, quindi aggiungendo il file user_profile.tpl.php e usndo il modulo profile.

Ma non riesco a visualizzare le immagini degli utenti.
Es: io mi loggo come admin, voglio vedere la pagina personale di un altro utente, cha per come è stata editata, ha uno spazio per l'immagine personale caricata dall'utente. Tramite il codice recupero da db l'indirizzo dell'immagine dell'utente, ma quando la stampo non mi viene visualizzata...

Inserisco il codice che uso per l'immagine, se potete darci un'occhiata e capire se c'è qualche problema mi dareste un gande aiuto!

<?php
// la query è insicura, ma per il momento sono in ambiente di test, non di produzione...la sostituiro con una decente appena riesco a farla funzionare!
$result = db_query("SELECT picture FROM drupal_users WHERE name = '".$args[2]."'");
$row = db_fetch_array($result);
$_user["picture"] = $row["picture"];
?>

e poi stampo nell'html:
<h2>Immagine</h2>
<? if ( $_user["picture"] ) { ?>
<div class="picture">
<img src="/radioohm.it/<? print $_user["picture"]; ?>" alt="User picture"/>
</div>
<? } else
echo "Nessuna";
?>

L'immagine pur venendo caricata col percorso giusto non viene visualizzata correttamente!! :(

Perchè non usare $profile['user_picture']? http://api.drupal.org/api/drupal/modules--user--user-profile.tpl.php
Come da quel link, per vedere i campi di $profile:

<?php
 
print '<pre>'. check_plain(print_r($profile, 1)) .'</pre>';
?>

(Non documentato, ma è anche disponibile $account - ma non dirlo a nessuno)

Più imparo, più dubito.

Quote:

* $user_profile: All user profile data. Ready for print.
* $profile: Keyed array of profile categories and their items or other data provided by modules.

Però non è come usare $user["picture"]?

Alla fine ci sono riuscito per un'altra via comunque, semplicemente l'indirizzo aveva uno slash di troppo... ma mi piacerebbe capire come usare la variabile $profile, ed anche $user_profile, perchè la documentazione è veramente all'osso e non ho vapito bene cosa dovrebbe contenere...

io ho usato la funzione profile_load_profile(), che però carica i dati dell'utente loggato...

Mi sembra che stai faccendo un lavoro già fatto...

3ndorama wrote:
...
Però non è come usare $user["picture"]?

Non proprio. $user contiene dati dell'utente loggato. Questo non necessariamente corresponde al profilo che stai guardando (se è di un altro utente, ovvio). Viene creato l'oggetto $profile che contine dati (incluso l'URL dell'immagine se c'è) per quell'utente.
3ndorama wrote:
Alla fine ci sono riuscito per un'altra via comunque, semplicemente l'indirizzo aveva uno slash di troppo... ma mi piacerebbe capire come usare la variabile $profile, ed anche $user_profile, perchè la documentazione è veramente all'osso e non ho vapito bene cosa dovrebbe contenere...

Ripeto, aggiungi il codice citato sopra e vedrai tutte le proprietà di $profile. In questi casi, è il codice sorgente (ed le strutture dati) che sono la vera documentazione.

3ndorama wrote:
io ho usato la funzione profile_load_profile(), che però carica i dati dell'utente loggato...

L'oggetto $user contiene info dell'utente loggato. L'oggetto $account quello dell'utente in profilo (possono essere uguale se stai guardando il proprio profilo).

Da 'classico' programmatore, ci ho impegato un bel pò a capire le regole di Drupal. Ma se vuoi (o devi) cambiare qualcosa programmaticamente, è meglio:

  1. Estrarlo dai strutture dati
  2. Oppure trovate la funzione che lo carica
  3. Ed infine se non puoi proprio, estrarlo dal db

La terza tappa (nella mia esperienza) è indicazione che sto sbagliando qualcosa...

Più imparo, più dubito.

Grazie!!!! Ora ho capito!! Riscrivo tutto per bene!

Quote:
Ed infine se non puoi proprio, estrarlo dal db

Ho sempre pensato anche io che questa strada sia la peggiore...specialmente in drupal che è così diviso (a differenza di wordpress per esempio)...

grazie veramente per tutte le indicazioni! Sono state veramente utili! :)