我想通过与组件相关的编程方式添加标准的 joomla 菜单项。是否有一种 api 方式来添加菜单项或只是 SQL 方式。我可以通过 SQL 方式添加菜单项,但之后会出现一些问题。我们可以从 joomla 管理员创建一个菜单并将菜单项链接到我的 Joomla 组件项。但是我想以编程方式将菜单和菜单项添加到我的组件中,而不是手动添加。例如,我将在我的组件编辑中创建一个按钮。当我们按下它时,菜单项会自动创建。
问问题
1627 次
3 回答
0
如果你想为你的组件创建一个菜单项,它是从组件 XML 配置文件中自动创建的,如果你想添加额外的项目作为子菜单,那么 JSubMenuHelper 可能就是你要找的。
它们将在本教程的创建组件部分进行讨论。
于 2012-04-27T07:00:23.727 回答
0
于 2012-04-27T07:02:22.450 回答
0
$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;
}
$db = $this->getDbo();
$qry = "UPDATE `#__menu` SET `parent_id` = 1 , `level` = 1 WHERE `id` = ".$menuTable->id;
$db->setQuery($qry);
$db->query();
于 2015-11-03T10:24:13.373 回答