Carrello acquisti
Il tuo carrello è vuoto

jfbchat logo

Introduzione: Sviluppare estensioni con Joomla PDF Stampa E-mail

Questa serie di tutorial accompagnerà passo per passo il lettore ad apprendere i concetti fondamentali per sviluppare estensioni per il CMS Joomla.

Per seguire facilmente questa serie di tutorial sono richieste conoscenze basilari di PHP, XHTML, MYSQL.

In questo primo appuntamento, faremo un'introduzione generale a Joomla, spiegando le basi di questo Content Management System.

Iniziamo cercando di comprendere al meglio il concetto che sta alla base di Joomla!, ovvero…cos’è Joomla! ?

Possiamo definire questo sistema software come CMS (Content Management System), un sistema di gestione di contenuti che viene installato su un server web per poter gestire in modo automatizzato un sito internet. Tra tutti i CMS disponibili sul mercato Joomla! si colloca sicuramente tra i più flessibili e meno specializzati, poiché con migliaia di estensioni riesce a soddisfare un numero enorme di esigenze, negozi virtuali, fruizione di media, esposizione di notizie, forum, social networks e molto altro. A voler essere precisi diciamo che un CMS si divide sempre in due parti, ovvero una sezione di amministrazione al sito detta backend, e una sezione che è usata realmente dall’utente detta frontend.

 

Questa serie di tutorial accompagnerà passo per passo il lettore ad apprendere i concetti fondamentali per sviluppare estensioni per il CMS Joomla.

Per seguire facilmente questa serie di tutorial sono richieste conoscenze basilari di PHP, XHTML, MYSQL.

In questo primo appuntamento, faremo un'introduzione generale a Joomla, spiegando le basi di questo Content Management System.

Iniziamo cercando di comprendere al meglio il concetto che sta alla base di Joomla!, ovvero…cos’è Joomla! ?

Possiamo definire questo sistema software come CMS (Content Management System), un sistema di gestione di contenuti che viene installato su un server web per poter gestire in modo automatizzato un sito internet. Tra tutti i CMS disponibili sul mercato Joomla! si colloca sicuramente tra i più flessibili e meno specializzati, poiché con migliaia di estensioni riesce a soddisfare un numero enorme di esigenze, negozi virtuali, fruizione di media, esposizione di notizie, forum, social networks e molto altro. A voler essere precisi diciamo che un CMS si divide sempre in due parti, ovvero una sezione di amministrazione al sito detta backend, e una sezione che è usata realmente dall’utente detta frontend.

 

Nella figura 1 possiamo vedere la pagina iniziale mostrata per default ai visitatori del sito web. Abbiamo la possibilità di personalizzare come vogliamo l’aspetto della prima pagina e dell’intero sito. A questo punto ci si potrebbe chiedere quali sono i motivi che hanno spinto a creare tali software, ma la risposta molto semplice sta nel fatto che un CMS permette di costruire veri e propri portali dinamici, senza bisogno di saper svolgere i seguenti compiti:

• Progettare la struttura HTML

• Scrivere il codice lato server in un linguaggio come PHP o ASP

• Progettare il database.

Quindi il motto di un CMS è: massima resa con minimo sforzo!

Non per questo un qualunque webmaster che voglia cimentarsi nella creazione di un sito usando un CMS deve sentirsi vincolato al framework sottostante, visto che le modifiche che potremo apportare sono innumerevoli, basti pensare ai fogli di stile CSS che potremmo andare a personalizzare, o semplicemente al layout di pagina. Da qui parte tutta una serie di possibilità - che esula dalla presente trattazione - e richiederebbe una sezione a sé, ma che può essere pensata nei termini di un’unica parola: estendere.

Questa parola è alla base dei tutorial qui proposti. Vogliamo entrare CON VOI nel mondo delle estensioni per Joomla!, ovvero aggiungere funzionalità a quelle di base offerte dal CMS. Se ad esempio volessimo visualizzare una galleria immagini facente uso di AJAX nella nostra home page, potremmo pensare di includere le librerie Javascript necessarie e poi imparare a farne uso, ma ecco che dopo una breve ricerca troviamo che è già stata scritta un’estensione per Joomla! basata su di esse e che con una semplice installazione e personalizzazione fa tutto il lavoro per noi in meno che non si dica. E questa è la potenza delle estensioni e dell’Open Source, una moltitudine di programmatori sparsi per il mondo che mettono le loro conoscenze alla portata di tutti a volte gratuitamente e a volte chiedendo un piccolo contributo (vale la pena pagare qualcosina per avere un buon codice e un prodotto di livello così da garantire la sopravvivenza e la crescita del software open source!).

Se ti piace il web, la programmazione perchè non entri anche tu a far parte di questa community? Perché non contribuisci a scrivere estensioni per Joomla! come fanno gli altri e magari arrivare a scriverne alcune adatte perfettamente alle tue esigenze? Questo è proprio quello che impareremo a fare leggendo seguendo i tutorial che qui proporremo, entreremo nella community degli sviluppatori partendo da zero. Una volta sviluppata la nostra estensione sarà sufficiente comprimerla in formato ‘.zip’ per poterla distribuire e installare. Non sarà necessaria alcuna conoscenza particolare di programmazione per usarla e sarà garantita la massima portabilità. A questo punto si rivela doveroso spendere alcune parole sulla suddivisione dei tipi di estensione supportati dalla attuale versione di Joomla! 2.5.

Componenti

I componenti sono sicuramente il tipo di estensione più potente tra quelle disponibili per Joomla!. Anzi potremo dire che il core stesso di Joomla! è basato su componenti che danno vita a tutto il suo environment. Essi si presentano sempre in due parti dedicate rispettivamente al frontend e al backend, e possono essere anche molto complicati e ricchi di funzionalità, il solo limite è la potenza offerta dal PHP. Nel backend si offrono solitamente funzionalità dedicate ai settaggi, all’amministrazione, alla gestione del database.

Moduli

I moduli non devono essere visti come la parte fondamentale di una pagina, ma piuttosto come un tipo di estensione complementare ai componenti, rispetto ai quali possono estenderne le funzionalità soprattutto per la visualizzazione e formattazione dei loro risultati elaborati. Infatti numerosi moduli possono essere agevolmente indirizzati in punti ben precisi (blocchi) all’interno di una pagina dal backend di Joomla! attraverso posizioni ben precise. L’amministratore del sito potrà decidere in quali pagine essi dovranno apparire e sfruttarli per la personalizzazione finale del proprio sito. La parte backend dei moduli essenzialmente consta di controlli dedicati alla formattazione di base. In ultima analisi un modulo può anche essere completamente svincolato dai componenti e contenere testo,immagini o HTML personalizzati, ma anche consistere in parti di codice PHP che va ad esempio a recuperare dati dal database per mostrarli in un output formattato.

Plugins

Possiamo considerare i plugins (o mambot per la versione 1.0.x) come una sorta di piccoli programmi in grado di essere presenti in ogni parte del nostro sito, e quindi parti di codice che offrono funzionalità globali. Un plugin viene mandato in esecuzione nel momento in cui si verifica un determinato evento, ad esempio quando nel back end usiamo l’editor WYSIWYG per editare i nostri contenuti, avviamo il plugin relativo come risposta all’evento onGetEditorArea. Pensiamo in definitiva a Joomla! come un’unica grande applicazione formata da componenti, moduli e plugin, che possono interagire tra loro e possono essere usati per personalizzare ed espandere le capacità dell’intero CMS. In Joomla! 1.5 anche le lingue sono considerate estensioni, ma in questa sede non è nostro interesse occuparcene, volendoci concentrare essenzialmente su aspetti riguardanti prettamente la programmazione di estensioni in grado di offrire funzionalità più complesse basandosi sul linguaggio dinamico PHP.

Lingue

I package delle lingue possono essere relativi o al core o alle estensioni di Joomla. I pacchetti di lingua contengono dei fili INI, all'interno dei quali troviamo delle coppie Chiave/Valore utilizzate per tradurre le stringhe di testo statiche, dentro il codice sorgente di Joomla. Scopo principale di questa estensione è quello di rendere facilmente multilanguage sia il core di joomla, sia le estensioni sviluppate da terzi.

I package di lingua del core, includono anche un metafile XML che esplicita la lingua usata e specifica informazioni sui font da usare per la generazione dinamica dei pdf.

Template

I template sono l'estensioni di Joomla che si occupano dell'aspetto grafico del sito. Di default un'installazione tipica di Joomla permette di scegliere alcuni template base, che ci permettono di ottenere una visualizzazione differente del sito.

Ci sono due tipologie di template:

  • Frontend (cambia il layout della parte pubblica del sito)
  • Backend (cambia il layout della parte di amministrazione del sito)

Librerie

Le estensioni di tipo 'library', permettono di installare librerie di terze parti all'interno dell'installazione di Joomla! per fare in modo che da più punti di utlizzo si abbia a disposizione una libreria allo stesso modo in cui si utlizza la libreria nativa di Joomla! che ne rappresenta il framework.

Package

I package sono stati introdotti dalla versione 1.6 di Joomla. Permettono di installare un estensione complessa, composta per esempio da un componente, da vari moduli e plugin, come se fosse un unica estensione. Allo stesso modo è possibile disinstallare il package piuttosto che ogni singola estensione che compone il package.

I package possono essere creati zippando in un unico archivio tutti i singoli archivi che compongono l'estensione, insieme al classico file xml. Inoltre anche per i package è supportato il meccanismo di update automatico, rendendo possibile tramite un server di aggiornamento contenente un file xml di tipo 'collection', aggiornare le varie estensioni contenute nel package. Tutti questi aspetti verranno comunque approfonditi in successivi articoli e spiegati passo a passo.

File

Le estensioni di tipo 'file', permettono di copiare o sostituire un insieme arbitrario di files all'interno di Joomla! in modo automatico. Questo viene usato dallo stesso core di Joomla! per permettere gli aggiornamenti automatici, in quanto le patch vengono installate come estensioni di tipo 'file' e procedono a copiare tutti i files aggiornati in maniera automatica nella propria installazione.

Tutti i tipi di estensioni citati godono del sistema di update automatico implementato in Joomla! 1.6 e superiori, scegliendo tra i due tipi 'extension' e 'collection'.

Il primo permette di esporre un file XML in cui fornire i dettagli relativi a una nuova versione disponibile per una singola estensione. L'altro permette invece di esporre un file XML in cui viene contenuto un extensionset contenente più estensioni eterogenee, che rimanda ad altrettanti files XML di aggiornamento per ogni singola estensione specificata nella collection.

 

Nel prossimo tutorial in uscita i primi di maggio 2012 parleremo in maniera approfondita delle librerie.

 

Scritto da: Marco Biagioni
Scritto il: 28/03/2012 17:18:28
Ultima revisione: 21/06/2012 09:39:57