Sviluppo estensioni con Joomla – Capitolo 7
Continuiamo la nostra panoramica del libro “Learning Joomla 1.5 Extension Development“, di Joseph Le Blanc, introducendo l’uso di azioni comuni come la pubblicazione, la cancellazione, la paginazione e la ricerca. Vediamo inoltre alcuni consigli su come posizionare e organizzare al meglio alcune specifiche parti del nostro codice.
Azioni comuni
Alcune funzionalità sono comuni a qualsiasi componente, e con un po’ di attenzione nella nomenclatura possiamo risparmiarci molto lavoro.
Aggiungendo un campo published nella tabella, e creando una funzione publish nel nostro controller, possiamo sfruttare i pulsanti preesistenti che invocano l’attivazione o disattivazione di ogni singolo record. Notare che solitamente la funzione publish si occupa sia di pubblicare che di spubblicare, a seconda di un parametro che viene passato.
Lo stesso discorso si applica alle funzioni delete, per cancellare un record, e apply, per salvare le modifiche senza uscire dal record che stiamo modificando.
Controlli JavaScript
Se dobbiamo aggiungere controlli JavaScript sulla validità dei dati inseriti, il posto giusto per il codice è il file default.php contenuto nella cartella tmpl della relativa vista. Nell’esempio del libro:
/administrator/components/com_restaurants/views/single/tmpl/default.php
Paginazione e ricerca
La classe JPagination ci offre alcuni metodi per inserire la paginazione nei nostri elenchi, incluso il footer con tutti i pulsanti per muoversi tra le pagine.
Per gestire la ricerca, dobbiamo invece modificare sia la vista che il modello, creando nella prima la form per passare i parametri di ricerca, e aggiungendo nel secondo i filtri aggiuntivi al reperimento dei dati.
Toolbar
All’inizio del libro viene introdotto l’argomento toolbar, ovvero il sistema di gestione dei pulsanti di azione. Mentre all’inizio il relativo codice veniva gestito tutto nel controller, ora si consiglia di spostarlo invece nelle varie viste, in modo che ciascuna di esse possa avere solo i pulsanti rilevanti.
Controller aggiuntivi
Mentre fino ad ora abbiamo sempre gestito tutto con unico controller, scopriamo come sia possibile avere più controller, che si occupano di dati separati all’interno dello stesso componente (nell’esempio del libro: un controller per le recensioni e un altro per i commenti alle receensioni).
Il parametro controller verrà poi specificato nell’URL per indicare quale deve essere utilizzato. Questo ci permette di riutilizzare gli stessi nomi di task ma applicandoli a tabelle diverse e compiendo operazioni diverse.