Simple Machines Community Forum

SMF Support => Español (Spanish) => Language Specific Support => Modificaciones (Mods) => Aiheen aloitti: L.Carroll - helmikuu 10, 2011, 04:58:26 IP

Otsikko: Reconocer al usuario logueado
Kirjoitti: L.Carroll - helmikuu 10, 2011, 04:58:26 IP
Es una duda bastante directa. ¿Que parámetro (o función) me puede indicar el nombre del usuario que está activo en la sesión? Un ejemplo muy tonto de su uso sería crear una web (index?action=saludar) del estilo:

echo 'Hola '.$user;

¡Gracias de antemano!
Otsikko: Re: Reconocer al usuario logueado
Kirjoitti: ^HeRaCLeS^ - helmikuu 10, 2011, 06:27:17 IP
Primero tenes que globalizar la variable $user_info
global $user_info;

despues pones


echo 'Hola ' . $user_info['username'] .' ¿como estas?;


todo junto quedaria asi


global $user_info;
echo 'Hola ' . $user_info['username'] .' ¿como estas?;
Otsikko: Re: Reconocer al usuario logueado
Kirjoitti: All Colours Sam - helmikuu 10, 2011, 06:35:52 IP
te recomiendo imprimir en algun lugar de tu template la variable $user_info  para que veas todo lo que puedes usar con ella:

global $user_info;
echo '<pre>'; print_r($user_info); echo '</pre>';


el formato que maneja es un array  y cada valor puede ser un array tambien:

$user_info['primer_campo']['segundo_campo']   o incluso hasta un tercer campo
Otsikko: Re: Reconocer al usuario logueado
Kirjoitti: L.Carroll - helmikuu 10, 2011, 06:42:36 IP
¡Muchas gracias a los dos! Voy a probarlo ;)
Otsikko: Re: Reconocer al usuario logueado
Kirjoitti: vicram10 - helmikuu 10, 2011, 06:43:06 IP
busca en Load.php

// Load all the important user information...
function loadUserSettings()


Esa funcion guarda la variable que te comenta heracles
solo debes globalizar la variable $user_info y ya tendras a disposicion todo su contenido de ese vector moustroso... en esa funcion tienes todo a mano lo que puedes usar..

Para que sirve ese vector? o que guarda?... la informacion del usuario que en ese instante esta en tu web.. o sea el que esta de session..

Si queres saber info de OTRO usuario que no sea el que esta viendo tu foro debes usar la conjuncion de las funciones


loadMemberData($users, $is_name = false, $set = 'normal')


y


loadMemberContext($user, $display_custom_fields = false)


y globalizar la variable $memberContext

Forma de usar este ultimo


<?php
global $memberContext$smcFunc;
$sql $smcFunc['db_query']('','SELECT c.id_member from {db_prefix}members c');
while(
$row $smcFunc['db_fetch_assoc']($sql))
{
     
//Leemos los datos de los usuarios
     
loadMemberData($row['id_member']);
     
loadMemberContext($row['id_member']);

     
//Imprimimos sus nick que se visualiza en los post
     
echo $memberContext[$row['id_member']]['name'];
     echo 
'<br />';
     
//Mostramos su avatar de onda
     
echo $memberContext[$row['id_member']]['avatar']['image'];      
}

?>



Sencillo... todo dentro de esas funciones tienes a mano lo que puedes usar... hay mucho que leer dentro de esas funciones y te serviran para cualquier cosa...

$user_info => trae la informacion del usuario qeu ahora esta en session
$memberContext => trae la informacion de cualquier usuario que tu quieras.

salu2

Pd.: me gano Miss.... y como dice.. eso tambien puedes hacer para saber que usar...
Pd2.: esa consulta lo arme ahora asi que no se si funciona :P.. pero la forma de usarla es asi...
Otsikko: Re: Reconocer al usuario logueado
Kirjoitti: ^HeRaCLeS^ - helmikuu 10, 2011, 06:49:09 IP
Muy buena info vic, a mas de uno le va a venir bien todo esto.
Otsikko: Re: Reconocer al usuario logueado
Kirjoitti: L.Carroll - helmikuu 10, 2011, 07:23:56 IP
Lo apunto también vicram10. Intento poner las dudas en temas thread diferentes para que le puedan resultar útiles a la gente en el buscador. Ya que toda pregunta que he consultado en el foro me la habéis contestado a las mil maravillas y creo que le puede servir a más de uno si tira de buscador con el mismo problema.
Otsikko: Re: Reconocer al usuario logueado
Kirjoitti: vicram10 - helmikuu 10, 2011, 07:42:39 IP
cuando creas necesario colocalo como solucionado....

;)