Joomla内容编辑调用堆栈和URL路由

cod*_*.me 5 joomla joomla3.0

我正在使用Joomla 3.x CMS.我启用了SEO.我也在路由URL,以便隐藏文章ID,类别和类别ID.因此,具有别名的典型文章my-alias将具有URL : http://localhost/my-alias. 我在方法中的系统插件中进行此路由onAfterInitialise().确保系统中的所有别名都是唯一的.现在,当正在查看文章时,任何有权访问的人都会看到如下编辑网址:http://localhost/my-alias?task=article.edit&return=someValidToken.这也正确地路由到要编辑的实际文章.

查看文章时,用户/浏览器不会看到文章ID(根据需要).编辑时,用户/浏览器会看到文章ID(不是我想要的).也就是说,当用户单击编辑链接时,浏览器会加载编辑表单,并且用户会看到以下URL: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
Run Code Online (Sandbox Code Playgroud)

我想知道如何解决这个问题.通过Joomla框架了解呼叫流程将有所帮助.