从Joomla模块发出重定向 [英] Issuing a redirect from a Joomla module

查看:104
本文介绍了从Joomla模块发出重定向的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对Joomla并不是很熟悉,但是我受命编写一个功能与问题无关的模块.

I am not really familiar with Joomla but I have been tasked with writing a module which functionality is irrelevant to the question.

其中一项要求是,如果模块已加载,则应检查用户是否登录,如果没有登录,则将其重定向到特定的URL.

One of the requirements is that if the module is loaded, it should check if the user is logged in and if not - redirect him into a specific URL.

经过一番搜索,我想到了类似的东西,但这显然不是一个可行的答案:

After some searching I came up with something like this, but it's obviously not a working answer:

$user =& JFactory::getUser();

if (!$user->id) {
    include_once JPATH_COMPONENT . DIRECTORY_SEPARATOR . "controller.php"; // assuming com_content
    $contentController = new ContentController();
    $link = JRoute::_("my url");
    $contentController->setRedirect($link);
    return;
}

我认为问题出在控制器上.创建新的控制器当然不是要走的路.有没有办法从Joomla模块获取当前控制器并发出重定向消息?

I think the problem lies in getting to the controller. Creating a new controller certainly isn't the way to go. Is there a way to get the current controller from a Joomla module and the issue a redirect?

谢谢您的回答.

推荐答案

我在我的每个控制器构造中都调用此静态函数

i call this static function in each of my controllers construct

static function forceLoggedIn(){


    $user = JFactory::getUser();

        if($user->guest||$user->id == 0)
        {
            $error = JText::_('YOU MUST BE LOGGED IN');
            //base xkè altrimenti andrebbe in loop di redirect
            JFactory::getApplication()->redirect(JURI::base(), $error, 'error' );
            return false;
        }
    }

这篇关于从Joomla模块发出重定向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆