php - open - Joomla mod_login redirige usando el nombre de usuario
open graph facebook (3)
Prueba esto,
para redirigir después de iniciar sesión correctamente en joomla desde cualquier página que pueda usar
<input type="hidden" name="return" value="<?php echo base64_encode("your return url"); ?>" />
Este campo oculto debería encontrarse dentro de su formulario de inicio de sesión a continuación.
<form action="<?php echo JRoute::_(''index.php?option=com_users&task=user.login''); ?>" method="post">
<fieldset>
<?php foreach ($this->form->getFieldset(''credentials'') as $field): ?>
<?php if (!$field->hidden): ?>
<div class="login-fields"><?php echo $field->label; ?>
<?php echo $field->input; ?></div>
<?php endif; ?>
<?php endforeach; ?>
<button type="submit" class="button"><?php echo JText::_(''JLOGIN''); ?></button>
<input type="hidden" name="return" value="<?php echo base64_encode($this->params->get(''login_redirect_url'',$this->form->getValue(''return''))); ?>" />
<?php echo JHtml::_(''form.token''); ?>
</fieldset>
</form>
Solo necesita colocar su url de retorno en el campo oculto con base64_encoded joomla lo redirigirá a esta url cuando el inicio de sesión fue exitoso.
Espero que ayude ...
Estoy construyendo un sitio usando Joomla 3 y me gustaría redirigir a cada usuario único a una página específica cuando inician sesión desde la página de inicio. Por ejemplo, cuando ingresan sus detalles en el formulario de inicio de sesión y hacen clic en enviar, los redirecciona a su página con la URL index.php / username
Encontré el archivo mod_login / helper.php pero no tengo conocimiento de PHP sobre cómo editarlo.
¿Cómo puedo redirigirlos a una página específica usando PHP?
El siguiente código es el archivo mod_login / helper.php
<?php
/**
* @package Joomla.Site
* @subpackage mod_login
*
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined(''_JEXEC'') or die;
/**
* Helper for mod_login
*
* @package Joomla.Site
* @subpackage mod_login
* @since 1.5
*/
class ModLoginHelper
{
public static function getReturnURL($params, $type)
{
$app = JFactory::getApplication();
$router = $app->getRouter();
$url = null;
if ($itemid = $params->get($type))
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName(''link''))
->from($db->quoteName(''#__menu''))
->where($db->quoteName(''published'') . ''=1'')
->where($db->quoteName(''id'') . ''='' . $db->quote($itemid));
$db->setQuery($query);
if ($link = $db->loadResult())
{
if ($router->getMode() == JROUTER_MODE_SEF)
{
$url = ''index.php?Itemid=''.$itemid;
}
else {
$url = $link.''&Itemid=''.$itemid;
}
}
}
if (!$url)
{
// Stay on the same page
$uri = clone JURI::getInstance();
$vars = $router->parse($uri);
unset($vars[''lang'']);
if ($router->getMode() == JROUTER_MODE_SEF)
{
if (isset($vars[''Itemid'']))
{
$itemid = $vars[''Itemid''];
$menu = $app->getMenu();
$item = $menu->getItem($itemid);
unset($vars[''Itemid'']);
if (isset($item) && $vars == $item->query)
{
$url = ''index.php/?Itemid=''.$itemid;
}
else {
$url = ''index.php?''.JURI::buildQuery($vars).''&Itemid=''.$itemid;
}
}
else
{
$url = ''index.php?''.JURI::buildQuery($vars);
}
}
else
{
$url = ''index.php?''.JURI::buildQuery($vars);
}
}
return base64_encode($url);
}
public static function getType()
{
$user = JFactory::getUser();
return (!$user->get(''guest'')) ? ''logout'' : ''login'';
}
}
Una solución rápida y fea para redirigir a cualquier página específica, o para permanecer en la misma página, desde el ID del elemento del menú.
En los módulos de archivo / mod_login / helper.php, clase ModLoginHelper, function getReturnURL, usando el módulo de inicio de sesión joomla predeterminado.
Joomla! 3.2.3 Estable, con EasyPHP (PHP 5.3.5 MySQL 5.1.54-community)
Espero que esto ayude, ya que algunas personas han tenido / están teniendo problemas con esta opción de falta de conf.
Probada rápidamente, no mucha confiabilidad, [un nuevo novato en PHP]
class ModLoginHelper
{
public static function getReturnURL($params, $type)
{
$app = JFactory::getApplication();
$router = $app->getRouter();
$url = null;
// JT.add:stay on same page (quickfix)
$stayOnSamePage = false;
if ($itemid = $params->get($type))
{
if($vars[''Itemid''] == 101)
// 101 = site default page, to get from the Menu Manager
// Can get it programmatically? Worth the fix?
// assuming you set the redirect page in the Login module to the site default one
{
// stay on the same page
$stayOnSamePage = true;
}
}
// endOf JT.add: stay on same page
//JT.rm: if ($itemid = $params->get($type))
if (($itemid = $params->get($type)) & !$stayOnSamePage) //JT.add
{
¿Cómo redirige a los usuarios después de un inicio de sesión exitoso?
No necesita saber PHP para hacer esto. Por favor, consulte el enlace de arriba.
Lee mas
http://forum.joomla.org/viewtopic.php?t=729718
Cómo redirigir al usuario después de iniciar sesión en Joomla 2.5
Cambiar la URL de redireccionamiento de la página de inicio de sesión de Joomla