2012-03-26 11 views
5

Estoy usando Joomla 2.5 para crear un componente especial que se ejecuta desde el front-end.Cómo invocar la reconstrucción del menú desde el componente front-end personalizado en Joomla?

Este componente analiza sintácticamente archivo XML para construir menú de Joomla, estoy ejecutando INSERT INTO #__menu consulta, pero dejo 0s para LFT y rgt campos.

El menú se está construyendo muy desordenado, y cuando hago clic Reconstruir botón en el back-end todo se ve perfecto después de eso, ruta, LFT, y rgt campos están siendo llenados correctamente.

he pasado 2 días tratando de ejecutar reconstrucción tarea del controlador y el módulo de mi componente front-end, incluso he intentado utilizar jimport ('joomla.database.tablenested') pero mi falta de PHP conocimiento programación orientada a objetos no me ayuda para ejecutar correctamente reconstrucción función ...

lo último que escribí fue la siguiente:

jimport('joomla.database.tablenested'); 
class BSImportModelBSImport extends JModel 
{ 
    ... 
    function theimport() 
    { 
    ... 
    $db =& JFactory::getDBO(); 
    $menu = new JTableNested('Menu', 'id',&$db); 
    return $menu->rebuild(); 
    } 
} 

Por favor, no tirar piedras a la cabeza si mi pregunta parece tonta ... soy re aliado necesitan ayuda ...

+3

Holy StackOverflow! ¡Gracias, gracias, gracias! Me disculpo por haber renunciado tan rápido cuando la respuesta estuvo tan cerca ... ¡¡¡Por supuesto !!! Sólo tenía que volver a colocar: 'menú $ = new JTableNested ('Menú', 'id', &$db);' con '$ menu = nueva JTableNested ('#__ menú', 'id', &$db);' Espero que esto ayude a alguien ... Pido disculpas a los moderadores por mi error nuevamente ... ¡Gracias! –

+0

debe publicar una respuesta y aceptarla para cerrar esta pregunta ... – StiGMaT

Respuesta

0

que utiliza Guardar método de tabla de menús:

$data = array ( 
    'id' => 0 , 
    'title' => '{menu name}' , 
    'note' => '', 
    'link' => '{link}', 
    'menutype' => '{menutype}' , 
    'type' => 'url', 
    'published' => 1 , 
    'parent_id' => 1 , 
    'level' => 1 , 
    'component_id' => 0 , 
    'browserNav' => 0 , 
    'access' => getLevel() , 
    'template_style_id' => 0 , 
    'language' => '*' , 
    'params' => array ( 
     'menu-anchor_title' => '' , 
     'menu-anchor_css' => '' , 
     'menu_image' => '{url of logo for menu}', 
     'menu_text' => 1) , 
); 
$menuTable = JTable::getInstance('Menu', 'JTable', array()); 
$menuTable->save($data); 

Este método de crear nuevo menú y reconstruir de forma automática.

Cuestiones relacionadas