it-swarm-eu.dev

Aggiungi a livello di codice voce di menu nel componente

Sto cercando di creare un componente in cui l'utente può aggiungere una voce di menu a un menu esistente dopo aver creato l'articolo (o selezionando da un elenco di articoli). Il più vicino a cui ho potuto imbattermi in un esempio di ordinamento è stata la risposta collegata di seguito, ma era per 2.xe sembra la strada da percorrere. Ma una cosa che ho notato è che non c'era nulla da dimostrare che aggiungeva dati alla tabella #__assets.

Mi manca qualcosa qui, ma ricordo che quando viene creata una voce di menu quando ne aggiungo una dal back-end, inserisce anche un record nella tabella delle risorse. Quindi, se volessi inserire una nuova voce di menu, avrei dovuto inserire i dati rilevanti nella tabella #_assets separatamente?

https://stackoverflow.com/questions/12651075/programatically-create-menu-item-in-joomla?lq=1

6
sifu

in primo luogo - le voci di menu non vengono inserite nella tabella delle risorse, quindi questa domanda riguarda un problema inesistente. Il link fornito nella domanda fornisce la risposta corretta per joom 2.5 e 3.x. ma come riferimento qui è un esempio nella tabella di preparazione di un modello.

$menuTable = JTableNested::getInstance('Menu');

// which menu you want to add to - 
$menutype = 'thisismymenusname';

// this is heading menu item but what data you have and require will vary per case - just look at an appropriate row in yr menu table
$menuData = array(
  'menutype' => $menutype,
  'title' => $table->alias,
  'alias' => $table->alias,
  'path' => $table->alias,
  'type' => 'heading',
  'component_id' => 0,                  
  'language' => '*',
  'published' => 1,
);

// this item is at the root so the parent id needs to be 1
$parent_id = 1;
$menuTable->setLocation($parent_id, 'last-child');

// save is the shortcut method for bind, check and store
if (!$menuTable->save($menuData))
{
  $this->setError($menuTable->getError());
  return false;
}
5
jamesgarrett

Non proprio una soluzione, ma un'idea:

Di recente ho appreso Kazaam! , un plugin che crea un menu basato sulla tua categoria e struttura dell'articolo.

Come afferma il sito Web, All code is open source, and you are completely free to make changes.. Guardando il codice sorgente, dovresti essere in grado di vedere come funziona e forse usare parti del codice per il tuo progetto.

3
johanpw

Il codice più semplice e leggibile che ha funzionato per me è qui => https://webkul.com/blog/menu-item-joomla-rebuild-automatically/

0
Pratyush