Autor Tema: [tutorial] Autenticacion de codigo PHP contra base de datos de usuarios Joomla  (Leído 6280 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jaru

  • The Communiter-
  • *
  • Mensajes: 13252
  • some text
Joomla es un buenisimo CMS, y para muchos de los que programamos, nos gustaria integrar nuestro código propio con los beneficios que Joomla ofrece. Fué asi como me puse a investigar formas de autenticar mis usuarios contra la base de datos de joomla, hacer uso de los datos de usuario como

nombre de usuario
nombre completo
correo

Hay módulos para usar php propio dentro de Joomla, uno de los mejores que probé es COM JUMI pero esto implica tener el código dentro de la estructura de folders de joomla (components/com_jumi/files)
una ventaja es que al ser tu código ejecutado por este componente, se tienen disponibles las variables de usuario de joomla, $user; para usar por ejemplo:

$user->username
$user->name
$user->email

que tal si se tiene un programa que se desea este fuera de la estructura de folders de Joomla? y solo se quiere usar el sistema de autenticacion de Joomla?

pues usando el siguiente código en tus paginas PHP puedes tener a tu disposicion las variables de usuario para asi poder validar de la manera que mejor sea conveniente para ti.

Código: (php) [Seleccionar]

// la variable $ruta_a_joomla es la ruta relativa desde donde esta tu
//programa hasta el folder de instalacion de joomla
// en mi caso tengo mi codigo propio en
// http://misitioweb/programa/config/
// y mi instalacion de joomla esta en
// http://misitioweb/joomla/
// si se fijan subo 2 folders y luego me meto en el folder de joomla ("joomla") como
// se ve en la asignacion de variable a continuacion

$ruta_a_joomla = "/../../joomla/";

define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).$ruta_a_joomla ));
define( 'DS', DIRECTORY_SEPARATOR );

// incluyo esos 3 archivos
// si tienen problemas incluyendo los archivos hagan un echo de esas rutas
//pej:
// echo JPATH_BASE .DS.'includes'.DS.'defines.php';
//les deberia de dar la ruta absoluta a este archivo, si esta mal, entonces corrijan la variable $ruta_a_joomla para tener la ruta correcta
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once ( JPATH_BASE .DS.'configuration.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

$userx = &JFactory::getUser();

// ahora probamos si tenemos las variables disponibles

if($userx->guest){
// el usuario no esta logeado
echo "Por favor autenticarse en Joomla para hacer uso de este recurso";
} else {
// el usuario esta logeado en joomla

echo "Hola ".$userx->name;
echo "<br>";
echo "Tu ID de joomla es: ".$userx->id;
echo "<br>";
echo "Tu correo es: ".$userx->email;
echo "<br>";
echo "Tu nombre de usuario es: ".$userx->username;
echo "<br>";
echo "Tu password encriptado es: ".$userx->password;
echo "<br>";
echo "1 si estas bloqueado, 0 si no: ".$userx->block;
echo "<br>";
echo "fecha de tu registro: ".$userx->registerDate;
echo "<br>";
echo "Tu ultima visita fue: ".$userx->lastvisitDate;

}


si todo lo anterior sale bien. veran impresa la informacion del usuario logeado en joomla en esa sesion.

teniendo esto ya podran hacer uso de las distintas funciones que joomla tiene disponible para el manejo de su CMS, mas info sobre esto:

http://docs.joomla.org/
N/A

luck_rx

  • Visitante
Me extraña que no tengas comentarios por tu aporte. Me parece que a muchos nos ahorras bastante tiempo decifrando la documentacion de joomla. te felicito y gracias.

Desconectado NightOwl

  • -^- Elite Silver -^-
  • Sv Full Member
  • *
  • Mensajes: 847
Gracias bro..., este tipo de aportes son los que enriquecen y marcan el objetivo tecnologico de la comuna  :thumbsup:
.........

Desconectado salvadoresc

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 11652
  • Adobe Certified Expert en ACISEAPRENDE
    • Foro de Diseno - Pixeles al Desnudo
me imagino en WP se podria hacer algo similar...  :thumbsup: hay que buscar algo
Awaken my child, and embrace the glory that is your birthright. Know that I am the Overmind; the eternal will of the Swarm.

haycoctelesamor.com

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
me imagino en WP se podria hacer algo similar...  :thumbsup: hay que buscar algo


Es más sencillo de lo que imaginas:

Código: [Seleccionar]
<?php
require_once('wp-load.php'); // Se incluye el archivo de carga de Wordpress.

header("Content-Type: text/plain"); // no quiero complicarme con codigo, la salida será texto.

wp_get_current_user(); // Obtiene la información del usuario
if ( == $current_user->ID ) {
    
// Usuario no logueado
} else {
    
// Usuario logueado
    
echo 'Username: ' $current_user->user_login '\n';
    echo 
'User email: ' $current_user->user_email '\n';
    echo 
'User level: ' $current_user->user_level '\n';
    echo 
'User first name: ' $current_user->user_firstname '\n';
    echo 
'User last name: ' $current_user->user_lastname '\n';
    echo 
'User display name: ' $current_user->display_name '\n';
    echo 
'User ID: ' $current_user->ID '\n';
}
?>


Referencia: http://codex.wordpress.org/Function_Reference/wp_get_current_user

Nota: La palabra logueado no existe en español fskajdfshdkfsja
« Última Modificación: octubre 12, 2010, 08:58:20 am por mxgxw »


Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Al fin algo util en SVC  :drinks:

Desconectado hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 3345
muy buenos este par de aportes...creo que de esto se trata SVC! gracias.

luck_rx

  • Visitante
Simplemente me abrieron los ojos. Estudie Lic en sistemas... pero no tenìa una "·$"·%%& idea de lo que era php... esta de lujo... con ese pequeño codigo (y otros pocos de otros temas) me abriste mi horizonte y me di cuenta de lo fácil y dinámico que es el lenguaje... me creo capaz de programar casi todo.. jaja... y apoyandome en joomla que me parece maravilloso, porque ademàs de que casi todo está echo, es muy estable, y fácil, y puedes agregarle lo que se te pegue la gana y eso esta increìble.

Definitivamente me quedo con joomla... te ahorra mucho trabajo y es muy adaptable. Mas para los que tenemos conocimientos de algoritmos, sin embargo para los novatos es muy facil que lo aprendan con un poco de investigacion y logica..

felicidades a los administradores. Por foros como este es que el Open source se hace cada vez más fuerte. Y hace que valga la pena hacer esta profesion tan apasionante. Saludos a todos.

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Buenos buenos, solo hace falta que nos agreguen como pedirle que haga login en caso de que sea un guest  :sur: