在我的joomla项目中,有一些隐藏的页面(意味着没有菜单直接指向该页面)。有些页面正在重定向到此页面。
我正在使用此代码来访问此页面
$app = JFactory::getApplication();
$app->redirect('index.php?option=com_package&view=testpage');
完美的工作。
我启用了SEF URL,URL后缀,应用程序的URL重写。但这些页面(没有适当的菜单)没有显示SEF URL。但那些显示SEF网址的菜单项的页面。
所以我添加了一个隐藏的菜单,并在该菜单中添加了所有这些页面。但它没有显示SEF URL。
是否有启用这些网页的SEF网址的想法?
请帮忙 提前致谢
我的Router.php看起来像
defined('_JEXEC') or die;
function GadminBuildRoute(&$query)
{
$segments = array();
if (isset($query['task'])) {
$segments[] = implode('/',explode('.',$query['task']));
unset($query['task']);
}
if (isset($query['id'])) {
$segments[] = $query['id'];
unset($query['id']);
}
return $segments;
}
/**
* @param array A named array
* @param array
*
* Formats:
*
* index.php?/gadmin/task/id/Itemid
*
* index.php?/gadmin/id/Itemid
*/
function GadminParseRoute($segments)
{
$vars = array();
// view is always the first element of the array
$count = count($segments);
if ($count)
{
$count--;
$segment = array_pop($segments) ;
if (is_numeric($segment)) {
$vars['id'] = $segment;
}
else{
$count--;
$vars['task'] = array_pop($segments) . '.' . $segment;
}
}
if ($count)
{
$vars['task'] = implode('.',$segments);
}
return $vars;
}
答案 0 :(得分:0)
隐藏菜单需要是一个已发布(未暂停)的菜单模块,没有位置/不存在位置;这样Joomla会考虑它;还必须启用菜单项。
此外,必须使用view / tmpl文件夹中的default.xml设置视图,并使用相同的参数。
如果仍然无法正常工作,router.php
可能会出错答案 1 :(得分:0)
您没有通过路由器传递URL。 尝试...
$app->redirect(JRoute::_('index.php?option=com_package&view=testpage'));