Joomla 3.2 onAfterInitialise() 会话

问题描述 投票:0回答:1

我已经使用 onAfterInitialise() 事件创建了系统插件,如果 URL 是我正在等待的内容,我会获取 URL 字符串并在其中设置会话。之后,我重定向到根页面并获取会话。而且工作正常。但是,如果我有另一个 URL,我会在 onAfterInitialise() 方法中重写会话,但它会提供旧会话,因此我需要刷新才能获取新会话。

我可以自动重写会话吗?这是代码:

function onAfterInitialise()
{
    $session = &JFactory::getSession();
    $jApp = &JFactory::getApplication();

    $url = $_SERVER['REQUEST_URI'];
    $url = str_replace('/','',$url);

    if($url != "" && $url != NULL )
    {
        if($url == "something"){
            $session->clear('newRequest');
            $jApp->redirect('http://'.$_SERVER['HTTP_HOST']);
        } else {
            $db =  &JFactory::getDBO();
            $query = ' SELECT *'
                    .' FROM #__new_requests '
                    .' WHERE url ="'.$url.'" AND state = 1';
            $db->setQuery($query);
            $newRequest= $db->loadObjectList();
            if($newRequest!= NULL)
            {
                $session->clear('newRequest');
                $newRequestArray = array();
                $newRequestArray['color'] = $marque[0]->color;
                $newRequestArray['image'] = $marque[0]->image;
                $newRequestArray['banner'] = $marque[0]->banner;

                $session->set( 'newRequest', $newRequestArray);
                $jApp->redirect('http://'.$_SERVER['HTTP_HOST']);
            }
        }
    }
    return true;
}
php plugins joomla3.0 joomla-extensions
1个回答
0
投票

这是模板缓存。我在模板的params.ini中设置了

devmode="1"

© www.soinside.com 2019 - 2024. All rights reserved.