вторник, 24 мая 2011 г.

Перенаправление на страницу авторизации со своего компонента Joomla 1.5

Мне понадобилось добиться от компонента того, чтобы если каким-то образом не авторизованный пользователь перейдёт на страницу компонента, то выскочит форма авторизации и после авторизации пользователь получит желанное содержимое. Не буду многословным, просто приведу код контроллера:


<?php
defined('_JEXEC') or die( 'Restricted access' );
jimport( 'joomla.application.component.controller' );
class HostOrderController extends JController
{
function show()
{
$user =& JFactory::getUser();

if ($user->guest) {
$redirecturl = base64_encode("index.php?option=com_hostorder");
$joomlaLoginUrl = 'index.php?option=com_user&view=login&return=';
       $finalUrl = $joomlaLoginUrl.$redirecturl;

global $mainframe;
$mainframe->redirect($finalUrl);
}
echo "YEAP!";
}
}


На всякий случай код точки доступа:

<?php
defined('_JEXEC') or die('Restricted access');
require_once (JPATH_COMPONENT.DS.'controller.php');


$controller = new HostOrderController( array('default_task' => 'show') );
$controller->execute(JRequest::getVar('task', null, 'default', 'cmd'));
$controller->redirect();