Un componente di Joomla! è un programma ovvero un set di funzioni o compiti (task) che permettono di realizzare una specifica funzionalità: un e-commerce, ad esempio, può essere realizzato mediante un componente che si occupa di elaborare tutte le azioni finalizzate al processo di acquisto (per Joomla!, non a caso, esiste un ottimo componente per sviluppare un e-commerce [link a virtuemart]).
A meno di avere le URL del proprio sito in Joomla! riscritte da un componente per generare SEF url [link a artio], ci accorgiamo della presenza di un componente lato front dalla url:
/index.php?option=com_mycomponent&task=welcome
che sta ad indicare che il CMS sta presentando la vista relativa al task ‘welcome’ del componente com_mycomponent
Nel caso di un e-commerce, ad esempio, i task che possono essere necessari ad effettuare l’acquisto di prodotti possono essere:
- avere un elenco dei prodotti
- guardare la scheda di un prodotto
- gestire il carrello
- formalizzare l’acquisto
Queste sono solo alcune delle possibili funzioni di un e-commerce.
A prescindere, quindi, da come sono collegati questi task e come vengono gestiti i dati comuni al componente, per strutturare un componente in Joomla! dovremo aspettarci una struttura che riflette quanto prescritto dal pattern MVC:
- modello di dati (ad esempio il carrello)
- view delle schermate di input/output dei task del componente
- controller preposto all’elaborazione di task
Per le view, inoltre, dovremo disporre un template per le singole azioni in cui è prevista interazione con l’utente (vi rimando alla pillola su come creare un template [link])
Poiché il componente può essere anche piuttosto complesso, è ipotizzabile una pagina di amministrazione dal back-end.
In linea di massima, quindi, un componente di Joomla! prevede i seguenti file:
Per il front-end:
/components/com_mycomponent/helpers/ (contenente i file di model )
/components/com_mycomponent/controllers/
/components/com_mycomponent/views/
/components/com_mycomponent/mycomponent.php
/components/com_mycomponent/mycomponent.xml
…e, aspettandoci un’area di amministrazione del componente dal back-end, potremmo avereper il back-end:
/administrator/components/com_mycomponent/helpers/ (contenente i file di model )
/administrator/components/com_mycomponent/controllers/
/administrator/components/com_mycomponent/views/
/administrator/components/com_mycomponent/mycomponent.php
/administrator/components/com_mycomponent/mycomponent.xml
A titolo di esempio, si può analizzare la struttura di com_search (compnente standard di Joomla! per eseguire ricerche all’interno del sito, com_banners e così via.
A questo punto potete consultare anche la pillola su come realizzare un componente di Joomla!









