为什么我的 Joomla 3 MVC 组件有一个空的边栏?

Why does my MVC component for Joomla 3 have an empty sidebar?

我正在将我的 Joomla 2.5 组件更改为 Joomla 3 组件。然而,据我所知,这是一个很大的障碍,几乎没有任何文档......

在 Joomla 3(撰写本文时使用 3.5.1)中,原本水平的子菜单垂直进入侧边栏。

我打电话给 JHtmlSidebar::addEntry( "Item", "index.php?option=com_example", false ) 添加了一个子菜单项。然后在视图的模板文件中调用 echo JHtmlSidebar::render()

我确实得到了一个可以打开和关闭的侧边栏,但是里面没有任何项目...

我从 https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Adding_an_install-uninstall-update_script_file 下载了 Hello World 示例组件。它有一个侧边栏,但一团糟:在它的消息视图中有一个侧边栏,里面有项目但不是可折叠的,在它的类别视图中,可折叠的显示为空,在另一个侧边栏上:

它还使用 JSubMenuHelper(而不是 JHtmlSidebar),已弃用...

然后我试图找出它是如何在 Joomla 的核心 com_installer 中完成的,它有一个带有子菜单项的漂亮的可折叠侧边栏,但没有找到比我上面已经描述的更多...

谁能告诉我如何获得合适的侧边栏?已经非常感谢了!!

而且经常发生:在我发布问题后,我找到了答案...

在admin/controller.php中我定义了一个方法addSubmenu(),其中调用了JHtmlSidebar::addEntry()。我从方法 display() 调用了 addSubmenu(),但我在调用 parent::display() 后不小心这样做了,所以在执行该方法时还没有添加任何条目。

现在在调用 parent::display() 之前调用 addSubmenu(),结果得到一个非常漂亮的边栏。