Programmgesteuertes Erstellen von Menüelementen in Joomla

Ich habe in Joomla 2.5 eine Komponente erstellt, die einen neuen Artikel erstellt und diesen Artikel einem Menüpunkt hinzufügt.

Das Erstellen des Artikels funktioniert einwandfrei, aber ich habe einige Probleme beim Erstellen des Menüelements.

Ich habe folgenden Code:

                //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;
                }

Der Fehler scheint darin zu liegen, dass parent_id und level festgelegt wurden. Beim Debuggen von Libraries setzt /joomla / database / tablenested.php die parent_id und die Ebene auf 0. Dies verursachte den folgenden Fehler auf meiner Administratorseite:

Warnung: str_repeat () [function.str-repeat]: Das zweite Argument muss in /Applications/MAMP/htdocs/joomla_2_5/administrator/components/com_menus/views/items/tmpl/default.php on größer oder gleich 0 sein Linie 129

Antworten auf die Frage(4)

Ihre Antwort auf die Frage