inserimento avatar

3 contenuti / 0 new
Ultimo contenuto
inserimento avatar

Ciaoa tutti.Sto cercando di far apparire l'avatar dell'utente registrato quando si genera un commento..Ho provato a mettere le mani nel codice del template del commento, nonostante io nn sia molto pratico di php e di drupal. Vedo che all'inizio del template c'è un

<?php
 
if ($picture) { print $picture; } 
?>
che credevo visualizzasse l'immagine dell'autore del commento, ma non lo fa.

Ho provato ad aggiungere:

<?php
global $user;
if (
$user->uid) {
  echo
theme("user_picture", $author);
  }
?>

ma come risultato mi appare in tutti i commenti l'avatar che ho assegnato come default nel caso in cui l'utente non possegga un avatar. Se invece provo a sostituire $author con $user l'avatar diventa ovviamente quello dell'utente registrato che ha caricato la pagina in tutti i commenti.
Come dovrei fare per visualizzare in ogni commento l'immagine personale dell'autore?Non capisco perchè il codice citato non mi rimanda alle immagini personali ma a quella di default.Eppure gli utenti hanno un immagine personale associata.
Grazie
Fede

ok, un gentile utente mi ha fatto notare che nella config del tema c'è GIA la possibilità di inserire l'avatar...quindi già che mi ero scritto del codice (GREZZO!!!) l'ho riadattato per far apparire sotto ad ogni utente il numero di commenti postati. E' molto semplice, data la mia incompetenza php/sql però lo posto lo stesso, non si sa mai che a qualcuno alle prime armi possa essere utile. Basta aggiungere le righe sottostanti nel modulo comment.tpl.php del vostro tema.

<?php
 
//connessione al db
$db = mysql_connect("localhost","user","pw");
if (
$db == FALSE)
die (
"Errore nella connessione. Verificare i parametri");
//selezione db
mysql_select_db("nomedb", $db)
or die (
"Errore nella selezione del database. Verificare");
//descriz. query
$query = "SELECT uid FROM avdrupal_comments WHERE uid='$comment->uid'";
//associazione variabile al query output
$risultato=mysql_query($query, $db);
$cont=0;
while(
$num_comments = mysql_fetch_row($risultato))
{
$cont=$cont+1;}
?>

e questo va messo dove volete la riga con il numero dei commenti.

<?php
 
<div class="numpost">
   <?if(!(
$comment->uid==0)){
       echo
'<font size=1pt color=#a3a3a3>';
       echo
$cont;
       echo
' commenti pubblicati. </font>';
       }
     else echo
'<font size=1pt color=#a3a3a3>Utente non registrato</font>';
?>

?>

Se a qualcuno interessasse invece inserire una pagina con tutti gli utenti registrati, ammesso che non ci sia già un modulo o qualche funzione di drupal che lo faccia, io ho creato una pagina normale con tipo imput php e testo:

<?php
 
//connessione al db
$db = mysql_connect("localhost","user","pw");
if (
$db == FALSE)
die (
"Errore nella connessione. Verificare i parametri");
//selezione db
mysql_select_db("dbname", $db)
or die (
"Errore nella selezione del database. Verificare");
//descriz. query
$query = "SELECT name,picture,uid,mail FROM avdrupal_users";
//associazione variabile al query output
$risultato=mysql_query($query, $db);
$contatabella=0;
echo
"<table border=0>";
while(
$utente = mysql_fetch_row($risultato))
{  
//apro while
    
if(!($utente[2]==0))
     {  
//blocco if che serve per "saltare" l'anonimo
    
if ($contatabella%3==0)echo "<tr>";
     echo
"<td>";
     echo
"<a        href="<a href="http://www.pensieroaschegge.altervista.org/drupal/?q=user/" rel="nofollow">http://www.pensieroaschegge.altervista.org/drupal/?q=user/</a>$utente[2]  " title="Pagina personale di $utente[0]" ";//impostaz. link pag pers.
    
echo "<h3> $utente[0] </h3>";//stampo il nome
    
echo "<p align=left><img src="";
     echo
$utente[1]; //print image personale
     echo "" align=left/"
></p>";
     echo "
</a>";
     //query interna per conteggio commenti, query2
     //descriz. query
    
$query2 = "SELECT uid FROM avdrupal_comments WHERE uid=$utente[2]";
     //associazione variabile al query output
    
$risultato2=mysql_query($query2, $db);
    
$cont=0;
     while(
$num_comments = mysql_fetch_row($risultato2))
            
{$cont=$cont+1;}
     echo '<font size=1pt color=#a3a3a3>';
     echo "
email: $utente[3] <br>";//stampo email
     echo
$cont;//stampo i commenti pubb.
     echo ' commenti    pubblicati.</font><br><br><br>';
     echo "
</td>";
    
$contatabella++;
     if (
$contatabella%3==0)echo "</tr>";
     }//chiudo if
}//chiudo while
echo "
</table>";
echo "
<font size=3pt color=gray><p align=right>Utenti registrati al sito: $contatabella </p></font>";
?>

anche questo codice è grezzissimo, (vedi uso della table e altre oscenità) ma fa il suo lavoro e per ora è tutto quello che mi serve...coi css nn ci so pasticciare abbastanza ..

Ciao fede

Non sono un esperto di PHP ma ho l'impressione che la prima parte del codice postato (quello relativo all'accesso del database) possa essere soggetto a qualche SQL injection.