php – 以编程方式在Joomla中创建菜单项

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 以编程方式在Joomla中创建菜单项脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在jooMLa 2.5中创建了一个组件,它创建了一篇新文章并将该文章添加菜单项中.

创建文章工作正常,但我在创建菜单项时遇到了一些麻烦.

我有以下代码

//add the article to a menu ITem
                $menuTable = JTable::getInstance('Menu','JTable',array());

                    $menuData = array(
                    'menutyPE' => 'client-pages','title' => $data[name],'type' => 'component','component_id' => 22,'link' => 'index.PHP?option=com_content&view=article&id='.$resultID,'language' => '*','published' => 1,'parent_id' => '1','level' => 1,);

                // Bind data
                if (!$menuTable->bind($menuData))
                {
                    $this->setError($menuTable->getError());
                    return false;
                }

                // Check the data.
                if (!$menuTable->check())
                {
                    $this->setError($menuTable->getError());
                    return false;
                }

                // Store the data.
                if (!$menuTable->store())
                {
                    $this->setError($menuTable->getError());
                    return false;
                }

错误似乎与设置parent_id和级别有关.在调试库/ joomla / database / tablenested.PHP时,将parent_id和level设置为0.这会在我的管理员页面上导致以下错误

解决方法

尝试使用JTableNested :: setLocation($referenceid,$position =’after’):

$table->setLocation($parent_id,'last-child');

我还认为你需要重建路径:

// Rebuild the tree path.
if (!$table->rebuildPath($table->id)) {
    $this->setError($table->getError());
    return false;
}

如果它仍然不起作用,试着找出你不做的MenusModelItem::save.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 以编程方式在Joomla中创建菜单项全部内容,希望文章能够帮你解决php – 以编程方式在Joomla中创建菜单项所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。