Sviluppo estensioni con Joomla – Capitolo 11
Continuiamo ad approfondire il libro “Learning Joomla 1.5 Extension Development“, di Joseph Le Blanc, che nel capitolo 11 ci introduce altre opzioni quali l’invio di e-mail, l’uso dei linguaggi, e la gestione del caricamento di file da parte dell’utente.
Invio via e-mail
Nel libro viene riportato un esempio di inoltro via e-mail di un contenuto: viene creata una vista apposita contenente la form di invio, che il visitatore può compilare con i dati necessari (ad esempio il destinatario a cui inoltrare il contenuto).
Poi viene creata, nel file principale del componente, una apposita funzione che gestisce l’invio. Ovviamente non è necessario gestire l’invio a basso livello: il framework di Joomla già ci mette a disposizione i metodi necessari, come abbiamo già avuto modo di spiegare in questo post.
Gestione dei linguaggi
Ciascun utente di Joomla può scegliere di vedere l’interfaccia amministrativa nel proprio linguaggio, se tale linguaggio è caricato sul sito.
Per fare in modo che anche la nostra estensioni si adegui alla lingua selezionata, possiamo sfruttare la gestione centralizzata dei linguaggi, semplicemente usando la funzione JText::_().
Ad esempio, l’etichetta di un campo riservato all’inserimento del nome, precedentemente inserita come
<label for="Name">Name</label>
deve diventare invece
<label for="Name"><'?php echo JText::_('NAME')?></label>
Il metodo invocato sostanzialmente dice a Joomla di mostrare la versione della stringa “NAME” corrispondente al linguaggio correntemente attivo nel sito.
File di linguaggio
Le traduzioni delle varie estensioni sono tutte in un un punto centralizzato, e precisamente nella cartella languages (per il frontend) e administrator/languages (per il backend). All’interno di questa cartella sono presenti le cartelle corrispondenti a tutti i linguaggi attualmente installati e disponibili per Joomla: ad esempio en-GB, it-IT, fr-FR, e così via.
All’interno di tali cartelle dovremo creare i file di traduzione per la nostra estensione. Quindi, seguendo l’esempio del libro, esisteranno i file
-
/administrator/languages/en-GB/en-GB.com_restaurants.ini
-
/administrator/languages/it-IT/it-IT.com_restaurants.ini
-
/administrator/languages/fr-FR/fr-FR.com_restaurants.ini
che conterranno rispettivamente le stringhe
-
NAME=Name
-
NAME=Nome
-
NAME=Nom
oltre ovviamente a tutte le altre stringhe usate dalla nostra applicazione.
Nota: attivando il debug sul nostro sito Joomla, tutte le stringhe che non hanno una corrispondente traduzione nel linguaggio attuale ci vengono mostrate in maniera diversa (tra due punti di domanda) in modo da identificarle più facilmente,.
Caricamento di file
Aggiungere alla nostra estensione la possibilità di un caricamento di file è una procedura che non presenterà molti misteri per chi avesse già realizzato una funzione simile in un qualunque altro ambiente web.
Va solo tenuto presente che esistono alcuni metodi nella classe JFile per semplificarne la gestione (ad esempio lo spostamento del file caricato nella sua destinazione definitiva, o l’accesso ad alcune proprietà del file stesso).