Aggiunta della barra degli strumenti predefinita di joomla in una pagina di visualizzazione dei componenti


10

Sto sviluppando un componente mvc sia per joomla 2.5 che per 3. In molti componenti ho visto che hanno aggiunto i pulsanti di comando predefiniti di joomla come nuove opzioni di modifica, pubblicazione, cestino, nella parte superiore della pagina delle impostazioni nel lato amministratore. Per esempio. se uno va nella pagina dei componenti-> collegamenti web-> collegamenti, sto parlando di quei pulsanti di comando in alto a destra.

Quindi, come posso aggiungere quei pulsanti di comando nella pagina delle impostazioni del mio componente? quando si fa clic, farebbe la rispettiva azione e mostrerà la rispettiva vista. Ad esempio, se faccio clic sul pulsante "nuovo", visualizzerà la vista di aggiunta del mio componente mvc così com'è.

Quindi, come potrei aggiungere i pulsanti di comando di joomla completamente funzionanti nella pagina delle impostazioni del mio componente nel lato amministratore.

Risposte:


12

La procedura migliore è creare il addToolBar()metodo all'interno della classe View e quindi utilizzare la JToolBarHelperclasse per creare pulsanti di comando:

protected function addToolBar()
{
  JToolBarHelper::addNew('yourcontroller.add');
  JToolBarHelper::editList('yourcontroller.edit');
}

Quindi questi chiameranno l'attività / la funzione "aggiungi" / "modifica" nel controller specificato. Quindi chiama semplicemente $this->addToolBar()il display()metodo di visualizzazione.

Riferimento Creazione di una barra degli strumenti per il componente


Ho solo un file controller controller.php nel mio componente e al suo interno ho una funzione, function add() { JRequest::setVar('view', 'entry'); JRequest::setVar('layout', 'form'); parent::display(); }quindi nel mio file view.html.php ho aggiunto JToolBarHelper :: addNewX ('controller.add'); quindi viene visualizzato un nuovo pulsante, ma quando viene cliccato non va al mio modulo di visualizzazione, invece aggiunge un # all'URL
dev-m

Cerca di omettere controller.task-JToolBarHelper::addNewX();
Dmitry Rekun,

Aggiunto solo JToolBarHelper :: addNewX (); ma non funziona.
dev-m,

Quindi è necessario creare un controller appropriato nella controllersdirectory. Vedi Aggiunta di azioni di back-end
Dmitry Rekun,

5

Devi assicurarti che la vista che mostra i pulsanti abbia un modulo da inviare. Il nome del modulo deve essere adminForm. Il modulo dovrebbe inoltre avere un campo nascosto denominato task e il token generato dinamicamente. Non riesco a ricordare l'API dalla parte superiore della mia testa, ma qualcosa del genere JHtml::_('form.token');(qualcuno per favore correggi questo, se sbaglio)

Questo fa il trucco.


Il problema che ho scoperto prima era che stavo usando il nome del modulo come adminform invece adminForm.it sembra joomla un po 'sensibile al maiuscolo / minuscolo!
dev-m,

È più una cosa di JavaScript che specifica di Joomla. Quando si fa clic sui pulsanti, si attiva effettivamente una funzione di invio del modulo JS, quindi se il modulo non può essere trovato, allora non riesce.
Mathew Lenning,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.