我正在使用Joomla 3.x CMS。我启用了SEO。我也在路由URL,以便隐藏文章ID,类别和类别ID。因此,别名为my-alias
的典型文章将包含以下网址:http://localhost/my-alias
。我在方法onAfterInitialise()
的系统插件中进行此路由。确保系统中的所有别名都是唯一的。现在,在查看文章时,任何有权访问权限的人都会看到如下编辑网址:http://localhost/my-alias?task=article.edit&return=someValidToken
。这也正确地路由到要编辑的实际文章。
查看文章时,用户/浏览器不会看到文章ID(根据需要)。编辑时,用户/浏览器会看到文章ID(不是我想要的)。也就是说,当用户点击编辑链接时,浏览器会加载编辑表单,用户会看到以下网址:http://localhost/edit-article?view=form&layout=edit&a_id=1002&return=someValidToken
,其中1002是文章ID。
以下是onAfterInitialise()
的代码段:
if (isset($query['task']) && $query['task']=='article.edit') {
// TODO Hide this change from the user/browser
JFactory::getApplication()->input->set('view', 'form');
JFactory::getApplication()->input->set('layout', 'edit');
JFactory::getApplication()->input->set('a_id', $articleId);
}
else {
JFactory::getApplication()->input->set('option', 'com_content');
JFactory::getApplication()->input->set('view', 'article');
JFactory::getApplication()->input->set('id', $articleId);
}
JFactory::getApplication()->input->set('Itemid', 111); // map to dummy item in hidden menu with alias edit-article
我想知道如何解决这个问题。了解通过Joomla框架的呼叫流程将有所帮助。