Programar sistemáticamente un elemento de menú en Joomla
He creado un componente en joomla 2.5 que crea un nuevo artículo y agrega ese artículo a un elemento del menú.
La creación del artículo funciona bien, pero tengo algunos problemas para crear el elemento del menú.
Tengo el siguiente código:
//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;
}
El error parece estar en la configuración de parent_id y level. Al depurar las bibliotecas / joomla / database / tablenested.php establece el parent_id y el nivel en 0. Esto causó el siguiente error en mi página de administrador:
Advertencia: str_repeat () [function.str-repeat]: el segundo argumento debe ser mayor o igual a 0 en /Applications/MAMP/htdocs/joomla_2_5/administrator/components/com_menus/views/items/tmpl/default.php on línea 129