Recupero variabile da riutilizzare nel profilo utente

24 contenuti / 0 new
Ultimo contenuto
Recupero variabile da riutilizzare nel profilo utente

Ciao a tutti...
Vorrei capire come recuperare una variabile disponibile nella mia pagina utente.

Infatti usando il devel themer vedo che in user-profile.tpl.php la mia variabile si trova in:

elements (Array, 21 elements)
#account (Object) stdClass
uid (String, 1 characters) 3
name (String, 4 characters) Mio utente

Grazie mille!

print_r($node)

Ciao ealmuno,
ho messo in user-profile-tpl.php print_r($node) e mi restituisce

Notice: Undefined variable: node

ho provato anche nella pagina page-tpl-php, ma mi risponde uguale :(

PS: ricordati che sto visionando la pagina miosito/user

Nella pagina del profilo la variabile dovrebbe essere $account. vedi http://api.drupal.org/api/drupal/modules--user--user-profile.tpl.php/6

Angelo Turetta

mi dice che la variabile non esiste :( a te si?

grazie!

trovato:

$utente = $elements['#account'];
print $utente->name;
print $utente->uid;

Il problema ora è che $elements['#account']; me lo da nel user-profile.tpl.php, però se cerco di recuperarlo dalla page.tpl.php non lo trova, e infatti guardando con il devel themer quella variabile non cè in page.tpl.php.
Ma a me serve confrontare lo user uid con il profilo uid perchè se sono uguali devono comparire cose differenti... :(

sapete come fare?
posso scrivere una funzione nel template.php? ma da li come recupero quei due valori?

grazie!

in page è $node la variabile da recuperare e tutti i valori si trovano dentro $user in teoria.

il problema è che se metto

<?php
 dsm
($node);
?>
in page.tpl.php, e vado sul profilo di un utente, mi da errore perchè dice che non esiste la variabile node... mi sa perchè le pagine user non sono appunto dei nodi.
Mentre se metto
<?php
 dsm
($user);
?>
mi trova si tutti i dati dell'utente, ma di quello loggato dentro e non i dati del profilo che sta guardando :(
grazie del aiuto!

Le variabili sono quelle, usa un if per sapere in che pagina ti trovi (page-user è quella dell'utente) e guardati le api su drupal.org

mmm... penso che tu mi stia dicendo di mettere un controllo su page.tpl.php, dove, invece di controllare uid user con uid profile per vedere se corrispondono, controllo se la pagina è "user", visto che in page.tpl.php la uid profile sembra proprio non esserci.

Ora veniamo a page-user... ho cercato per un ora in google page-user, così come nelle api di drupal e non ho trovato nulla!!!
Potresti spiegarmi meglio cosa intendi? o se qualcun altro ha capito me lo può spiegare?

grazie mille!

Ho scritto su google page-user e sono arrivato qui: http://drupal.org/node/104316
Mi puoi spiegare come hai fatto a cercare un ora senza arrivarci?

Quella l'avevo vista, ma ti prego aiutami a capire come, da quella pagina, posso capire come sapere se sono nella pagina user o no...
grazie!

page-user è per la pagina utente quindi lo capisci da li, poi guarda l'url delle pagine utenti, pure quello te lo indica

scusami ealmuno ma proprio non capisco quello che mi dici... rileggo 800 volte la tua frase ma non capisco come metterla in pratica.
Magari senza disturbarti ulteriormente, se ci fosse qualcuno che capisce quello che hai scritto gli sarei riconoscente se me lo spiegasse.

Comunque ho trovato questa funzione che mi restituisce in un array tutti gli elementi della url:
$url_components = explode('/', request_uri());

molto utile e funziona, ma non ha risolto il mio problema.

Alla fine l'unica cosa che posso fare è spostare le tab del profilo utente nella sidebar di destra.
È possibile?

grazie a tutti per la pazienza!

Non mi è chiaro quello di cui hai bisogno... provo ad intepretare: io sono l'utente 27, se guardo la pagina /user/27 vedo qualcosa e se guardo la pagina /user/28 (ossia quella di un altro utente) vedo qualcosa di diverso, è corretto?

si esattamente...
praticamente ho un menu personalizzato per l'utente loggato che visita la sua pagina.
Questa scelta avviene in page.tpl.php dove dovrei sapere se uid dell' user è uguale al uid del profilo che sto visionando.
Ma da page.tpl.php non posso recuperare uid del profilo :(

grazie a tutti e scusate se scoccio!!!

un altra strada.
Ho creato un blocco e l'ho messo nella regione sidebar.
Ora nella configurazione del blocco, in PAGINE, clicco "solo nelle pagine sotto elencate", però non so come fare a dirgli solo nel profilo dell'utente loggato.

grazie!

hai provato...

<?php
global $user;
if(
arg(0) == 'user' && arg(1) == $user->uid){
//faccio cose
}
 
?>

Ma grandissimo!!!!!
miticooooo!!!
funziona!!!

Non capisco però perchè mi metti global $user;
$user è comunque recuperabile ovunque...

grazie mille!!!!!

@sotam: global serve a recuperare la variabil globale, user E' una variabile globale, se on la "includi" non riesci ad accedervi.

ATTENZIONE:

<?php
 
global $user;
?>
è l'utente corrente, non quello della pagina dell'utente.

Ciao
Marco
--
My blog
Working at @agavee

Allora mi confondo con l'oggetto user che è presente ovunque nelle pagine drupal... o è lo stesso che intendi tu?
fra l'altro nello script che mi ha passato bohz, se non recupero $user e uso direttamente $user->id funziona lo stesso... ci sarà qualcosa che mi sfugge :(

grazie mille!

PS: io uso Drupal 7.9

Quote:
se non recupero $user e uso direttamente $user->id funziona lo stesso...

questo perchè ti trovi in una pagina di profilo utente, credo

no, lo si recupera anche su altre pagine, quelle dei content per esempio....