Avisos
Vaciar todo

Diferente login para un enlace de menu  

 
Juan
 Juan
Usuario activo

Hola,

Estoy desarrollando una web para un cliente en Joomla 1.5.23 y me ha pedido una cosa que no tengo muy claro como hacerlo.

Resulta que hay una area que está subvencionada y sólo la pueden ver los usuarios registrados. El tema es que cuando el usuario pinche en la opción de menu correspondiente y no esté logueado le debe salir el formulario de login de joomla pero con unas imagenes del ministerio correspondiente y otros textos que no salen en el registro normal.

Luego el usuario a crear es exactamente igual que uno que se registre desde cualquier otro punto del sistema, sólo que el que lo haga a través de esa opción se entere de que es un proyecto subvencionado.

Alguna idea? He probado a ver si al pinchar en el enlace le llega al login alguna variable identificatoria (ITemID o similar) pero muestro el valor en el contenido y me sale vacio.

Gracias por adelantado!

Citar
Respondido : 26/08/2011 8:19 am
Jordi Sala
 Jordi Sala
Miembro Admin

Hola Juan,

El tema de personalizar un formulario de acceso, generalmente lo realizamos con Community Builder http://extensions.joomla.org/extensions/210/details que permite la creación de campos personalizados en el formulario, aunque veo que hay también otras opciones como http://extensions.joomla.org/extensions/clients-a-communities/user-management/11225 y http://extensions.joomla.org/extensions/clients-a-communities/user-management/15256

Me parece un tema complejo el tener dos tipos de registros diferentes en un sitio web y no se si luego necesitáis el poder distinguir en los diferentes usuarios. En el foro de Joomla.org no veo solución al tema: http://forum.joomla.org/viewtopic.php?p=2547447

Una opción puede ser usar el módulo de registro de usuarios de Joomla! en las zonas, excepto en la subvención, y en la otra parte usar el módulo de registro de Community Builder, pero la complejidad la veo en que cuando un usuario acceda a un apartado determinado del sitio web, que registro se activará, ¿el de Joomla! o el de Community Builder?.

Saludos,

ResponderCitar
Respondido : 26/08/2011 9:24 am

wpdoctor-revisa-la-salud-de-tu-wordpress

Juan
 Juan
Usuario activo

Hola Jordi,

Lo primero agradecer tu pronta respuesta.

Parece que la opción de community builder parece buena y la voy a probar, una duda sobre esto. CB utliza la misma gestión de usuarios de Joomla añadiendole nuevos campos o es una gestión completamente distinta?

Lo único que necesito es que el usuario si accede a este area sin registrar, el login que le salga es el personalizado para ese area. Es un tema puramente burocratico, el usuario que se loguee o registre a través de esa pantalla tendrá los mismos permisos que el resto.

Gracias de nuevo.

ResponderCitar
Respondido : 26/08/2011 11:09 am
Jordi Sala
 Jordi Sala
Miembro Admin

Hola Juan,

Lo que se establece es una relación entre ambos componentes, en el de usuarios de Joomla! verás los usuarios registrados con los campos por defecto que establece el sistema, y en el Community builder en su gestión de usuarios se visualiza con los campos adicionales, pero tienen los mismos permisos que si se registran con Joomla!.

Saludos,

ResponderCitar
Respondido : 26/08/2011 11:39 am

Juan
 Juan
Usuario activo

Hola de nuevo,

Pero por lo que veo al final tengo solo el login del sistema o de CB...

He estado viendo un poco por otro foros, y al final la solución que he tomado es una pequeña función a la hora de cargar el login, está función desencripta el parametro return que llega en la url (realmente es laurl del enlace del menu codificada), luego parseo esta url para obtener el itemID que lo ha llamado y posteriormente hago un if else para que en un itemid concreto me muestre un form creado por mi.

Se que no es una manera muy ortodoxa y que si actualizo joomla mepuede dar problemas, pero necesito sacarlo ya y con esto l otengo resuelto.

Pongo mi codigo por si a alguien le puede ayudar alguna vez.

El archivo modificado es components/com_user/views/login/tmpl/default_login.php


load( 'plg_authentication_openid', JPATH_ADMINISTRATOR );
		$langScript = 	'var JLanguage = {};'.
						' JLanguage.WHAT_IS_OPENID = ''.JText::_( 'WHAT_IS_OPENID' ).'';'.
						' JLanguage.LOGIN_WITH_OPENID = ''.JText::_( 'LOGIN_WITH_OPENID' ).'';'.
						' JLanguage.NORMAL_LOGIN = ''.JText::_( 'NORMAL_LOGIN' ).'';'.
						' var comlogin = 1;';
		$document = &JFactory::getDocument();
		$document->addScriptDeclaration( $langScript );
		JHTML::_('script', 'openid.js');
endif; 
//Este es mi código
//Almaceno en el array $url el parametro return, primero decodificandolo(me da la url completa de menu) y luego parseandola en los distintos trozos que la componen
$url = (parse_url(base64_decode($_GET['return'])));

//Con esta función troceo el campo $url['query'] en los distintos parametros que tiene la url del menu
$queryParts = explode('&', $url['query']);
    $params = array();
    foreach ($queryParts as $param) {
        $item = explode('=', $param);
        $params[$item[0]] = $item[1];
    } 

//Almaceno en $item el valor de $Itemid con la que se invocó la página
$item = $params['Itemid'];

//Si no es el item a personalizar, muestro el normal
if($item != "xx"){
?>
formularios normal

otro form

Un saludo y gracias

ResponderCitar
Respondido : 26/08/2011 1:02 pm