【发布时间】:2014-06-23 07:03:53
【问题描述】:
我已经创建了带有事件 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;
}
【问题讨论】:
标签: plugins joomla-extensions joomla3.0