Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过自定义joomla组件中的db创建3级菜单项?_Joomla_Menu - Fatal编程技术网

如何通过自定义joomla组件中的db创建3级菜单项?

如何通过自定义joomla组件中的db创建3级菜单项?,joomla,menu,Joomla,Menu,我正在开发Joomla 3.4组件,该组件允许从前端创建特定类别的文章。文章的创作正如期进行。现在,我想为那篇文章添加一个菜单项。除了用于rgt和lft的值之外,其他一切都在为此工作 菜单项应为3级。在后端配置中设置父级ID。有没有Joomla专家可以给我一个简短的解释,说明如何设置菜单项本身的lft和rgt值,以及它的父项和父项的父项?为什么不直接使用菜单API来创建菜单项?无论如何,您都不应该试图弄乱您自己的rgt和lft,它非常复杂,因为它使用JTableNested,您需要更新整个树。您

我正在开发Joomla 3.4组件,该组件允许从前端创建特定类别的文章。文章的创作正如期进行。现在,我想为那篇文章添加一个菜单项。除了用于rgtlft的值之外,其他一切都在为此工作


菜单项应为3级。在后端配置中设置父级ID。有没有Joomla专家可以给我一个简短的解释,说明如何设置菜单项本身的lft和rgt值,以及它的父项和父项的父项?

为什么不直接使用菜单API来创建菜单项?无论如何,您都不应该试图弄乱您自己的rgt和lft,它非常复杂,因为它使用JTableNested,您需要更新整个树。您知道吗,core com_content article create菜单项允许您指定article create默认为某个类别?您可以这样做,这样用户就不能更改类别,而不是创建一个全新的组件。感谢您提供有关菜单API的提示,我以前在文档中没有遇到过它。文章不仅是从用户条目创建的,还创建了一个包含附加信息和链接的“页脚”。该组件是关于创建关于教师及其各自课程的文章,该组件是将教师和文章相互链接并提供联系表单。对于每个老师和课程,都会生成一个菜单项,这就是为什么我要构建一个组件,而不是使用“创建文章”菜单项的原因。。但无论如何,请查看com_菜单。它之所以被简化是因为它确实是一段很旧的代码,但基本上我会创建一个MenusTableMenu实例并添加具有适当父值集的项,然后在保存do rebuild()之后——除非已经发生了这种情况,否则我确实没有深入研究代码,但这应该会给您带来正确的方向。rebuild()听起来不错,谢谢。通过在后端打开菜单项并保存,我可以手动使其工作,然后重新计算lft和rgt并使其工作。已解决:
$menutable=JTable::getInstance('menu','JTable');如果(!$menutable->rebuild()){JError::raiseError('500','rebuild failed');}