Tale è la sua popolarità e utilità nell'ultimo decennio che Joomla! è considerato uno dei CMS open source di alto livello in tutto il mondo al momento. Fin dalla sua nascita da Mambo CMS, negli ultimi dieci anni, è migliorato così tanto che non c'è da meravigliarsi che ci siano già molti premi nel suo gattino e che contano ancora.
In particolare, se sei nel campo dello sviluppo web, non importa la tecnologia con cui hai a che fare, è impossibile allontanarsi dalla parola Joomla! Se è così, sono sicuro che appartieni ad un altro pianeta! Può sembrare un po 'opprimente, ma posso assicurarti che è qualcosa di più che vale la pena guardare se non lo hai ancora fatto per la tua prossima soluzione di gestione dei contenuti. In realtà, è più di un semplice CMS - discuteremo più avanti in questo articolo di Joomla! è capace di.
In questo articolo, discuteremo approfonditamente su cosa Joomla! è e come potrebbe essere utile per i tuoi progetti basati sul web. Iniziando con un assaggio del CMS di base, esamineremo le funzionalità di Joomla! in tutto l'articolo, e nell'ultima sezione vi lascerò alcune risorse utili con riferimenti.
Un sistema di gestione dei contenuti, denominato CMS, è un sistema che consente di gestire le informazioni in modo facile ed efficace. L'informazione potrebbe essere qualsiasi cosa, sia che si tratti di un semplice articolo o di un complesso sistema di gestione dei media. L'obiettivo di un CMS è fornire un flusso di lavoro efficace che descriva lo stato chiaro di un'entità in un dato momento. In termini semplici, consente alle informazioni di passare attraverso diversi stati come bozza, revisione, modifica e pubblicazione.
Nello specifico, sono utenti non tecnici che amano avere un sistema di questo tipo che consente loro di organizzare facilmente i contenuti e rende l'intero processo più gioioso che frenetico. In qualsiasi applicazione basata sul Web, ci sono tre operazioni di base, la maggior parte delle volte che gli amministratori si trovano a svolgere, eseguite su qualsiasi entità specifica: aggiunta, modifica ed eliminazione. Ed è per questo che è progettato un CMS. Che ti consenta di farlo fornendo un editor WYSIWYG, la modifica in linea o altri oggetti di fantasia, l'idea è di rendere l'intero processo senza sforzo.
Non è solo l'organizzazione e la gestione dei contenuti, ma quanto è efficace fornire un controllo granulare degli accessi a diversi gruppi di utenti, considerata una delle funzionalità premium di qualsiasi CMS. È ovvio che ti piacerebbe suddividere le responsabilità in ruoli diversi come autore, editore e editore. Anche la fornitura del controllo delle versioni dei contenuti è qualcosa che vorresti tenere d'occhio poiché ti consente di ripristinare gli articoli se le cose non vanno come previsto.
Nella sua forma più semplice, il tipico flusso di lavoro di qualsiasi CMS potrebbe essere qualcosa del tipo:
In generale, ciò che abbiamo elencato sopra è uno dei più semplicicasi d'uso efficaci a cui si potrebbe aderire. Senza contare che nel mondo reale assisterai a flussi di lavoro più complessi accompagnati da funzionalità avanzate come tagging, condivisione social e commenti, per citarne alcuni.
Quindi, questa è un'introduzione rapida e, si spera, utile di come potrebbe essere un sistema CMS. Dalla prossima sezione in poi, ci concentreremo sull'argomento principale di questo articolo, Joomla !, che è qualcosa che ho promesso esploreremo in questo articolo.
Sin dal suo inizio nel 2005, Joomla! si è evoluto nel corso degli anni e il risultato finale è uno dei CMS più potenti e ricchi di funzionalità, scaricato da milioni di utenti. Come si suol dire, è veramente un CMS basato sulla comunità, gestito da e per la comunità! Per qualsiasi progetto open-source, come con Joomla !, il supporto dei membri della comunità è un fattore importante nella persistenza e sostenibilità del progetto.
Joomla! è costruito utilizzando alcune delle tecnologie web più utilizzate come PHP, MySQL e Apache. Detto questo, non si limita solo alle tecnologie sopra citate, ma supporta anche altri database e server Web popolari. Se preferisci farlo, puoi scegliere tra SQL Server o PostgreSQL anziché il motore di database MySQL. D'altra parte, Microsoft IIS e NGINX sono candidati per la scelta del server web insieme ad Apache.
Per gli sviluppatori, Joomla! è costruito utilizzando il modello di progettazione MVC, un modello popolare già utilizzato da molti altri framework. Sebbene la discussione sul modello di progettazione MVC sia qualcosa che non rientra nell'ambito di questo tutorial, fornisce una separazione delle preoccupazioni, consentendo allo sviluppatore di concentrarsi maggiormente sullo sviluppo piuttosto che preoccuparsi di come apparirebbe nel front-end.
Non sorprende che l'ultima versione principale di Joomla! è responsive out-of-the-box e mobile-first, poiché al giorno d'oggi è impossibile ignorarlo, e potrebbe essere costoso per qualsiasi framework che lo facesse. Al momento di scrivere questo, Joomla! 3.4.x supporta la versione PHP 5.5+ ma non PHP 7. Tuttavia, il rilascio della tanto attesa versione di Joomla! 3.5 è dietro l'angolo, e sostiene di supportare PHP 7, che sarà un enorme incremento delle prestazioni in modo nativo, se si vuole credere agli esperti.
Quindi, se quella fosse una panoramica di alto livello su cosa fosse Joomla! è tutto, la seguente lista evidenzia alcune delle caratteristiche concrete che stavate aspettando, che vengono fornite con Joomla! core stesso.
Certo, è impossibile discutere in dettaglio ogni singola funzionalità in un singolo articolo, quindi per quegli utenti curiosi lascerò alcune risorse utili alla fine di questo articolo.
Sei dalla parte sbagliata del tavolo se credi che Joomla! è utile solo per la gestione dei contenuti, poiché ti sorprenderà sapere che ci sono più di 7000 estensioni disponibili sul sito ufficiale JED (Directory di estensioni di Joomla), che offre funzionalità che vanno da una semplice soluzione di galleria di immagini a una prenotazione a pieno titolo e sistema di gestione delle prenotazioni. In effetti, c'è una forte possibilità che l'estensione che stai cercando di sviluppare da sola sia già disponibile sul JED!
L'architettura estensibile di Joomla! rende lo sviluppo di estensioni personalizzate un gioco da ragazzi. Stai cercando un sistema che funge da blog? Forse la tua nuova avventura richiede che tu costruisca un nuovo tipo di sistema YouTube, o stai cercando di costruire il prossimo Facebook! Il JED fornisce estensioni per ciascuno dei requisiti sopra menzionati.
Diamo uno sguardo al lusso che potresti avere se scegli Joomla! come soluzione
Questo è solo per citarne alcuni, poiché è molto difficile elencare ogni possibilità. Come si suol dire, la limitazione è la tua immaginazione, così vera per Joomla!
Nella giornata di Joomla! sviluppo, ci sono momenti in cui ritieni che avresti voluto estrarre una determinata parte del framework, ad esempio l'API di routing, piuttosto che un intero gruppo di funzionalità CMS che sono obsolete per quel particolare progetto. Per una semplice applicazione basata su PHP, sarebbe bello avere quelle funzionalità selezionate dal framework che sono più adatte alla tua applicazione, piuttosto che un intero CMS.
Ad esempio, supponi di voler creare un servizio che esponga Joomla! dati a un'applicazione mobile di terze parti. Per riuscirci, è assolutamente bene creare un'estensione personalizzata che soddisfi le funzionalità desiderate, ma con il bagaglio aggiuntivo di quelle funzioni CMS indesiderate nel tuo caso. Invece, ciò che ti piacerebbe fare è selezionare le API delle tue necessità evitando il resto delle funzionalità e il prodotto finale è un'applicazione web superleggera.
Questo è lo scopo di Joomla! Framework, precedentemente noto come Joomla! Piattaforma. Ti consente di creare un'applicazione utilizzando un set familiare di API, se provieni da Joomla! Sfondo CMS. Fornisce un insieme comune di API, come con gli altri framework PHP, consentendo di concentrarsi maggiormente sulle funzionalità specifiche dell'applicazione piuttosto che reinventare la ruota per funzionalità come la gestione degli input, il livello di astrazione del database, il routing e simili.
Non è assolutamente da confondere con Joomla! CMS, poiché esiste una linea di sviluppo separata per entrambi i software. L'idea principale è quella di disaccoppiare i pacchetti software in moduli separati, anziché legarli in un unico pacchetto, permettendo loro di evolvere da soli. In effetti, potresti pensare a Joomla! CMS come combinazione di Joomla! Framework e moduli CMS.
Un esempio promettente di Joomla! Quadro è il Issue Tracker applicazione di Joomla! CMS stesso. Allo stesso modo, potresti creare qualsiasi applicazione web che avresti creato con qualsiasi altro framework basato su PHP. Esploralo e sono sicuro che c'è qualcosa che ha da offrire per tutti.
In questa sezione, discuteremo gli elementi importanti di Joomla! architettura che funge da elementi costitutivi di base in qualsiasi applicazione.
Questo è uno degli elementi più importanti e indispensabili nello stack che fornisce la funzionalità completa di ogni sezione specifica. Ti consente di creare una base che si occupa della logica di business di un'applicazione. Inoltre, è uno degli elementi che estende Joomla !, se desideri introdurre nuove funzionalità.
Ad esempio, se si desidera creare un'applicazione di directory business, si dovrebbe essere in grado di aggiungere, modificare ed eliminare le voci dal back-end. D'altra parte, nel front-end dovrebbe mostrare un bel elenco insieme a funzioni di ricerca avanzata, cercapersone e ordinamento. Quindi è il componente che ti piacerebbe costruire per avvolgere la funzionalità di cui sopra.
Come regola generale, ogni volta che vuoi creare nuove funzionalità in Joomla !, è il componente che viene in soccorso.
Prima di andare avanti e spiegare che cos'è un modulo in Joomla!, Vorrei darti un paio di esempi per semplificare le cose. Se hai mai visitato Joomla! front-end, vedrai molti blocchi come Login, Ultimi articoli, Feed recenti, ecc. Per tua sorpresa, sono Joomla! moduli assegnati a diverse posizioni nel modello! Un Joomla! module è un blocco mobile che crea l'output recuperando i dati dal componente, la maggior parte del tempo, e visualizza l'output.
Nella maggior parte dei casi è necessario modificare il comportamento del framework principale per soddisfare le proprie esigenze personalizzate, ed è qui che i plug-in entrano nell'immagine. Un Joomla! plugin consente di catturare determinati eventi definiti dal sistema, aprendo la porta per la personalizzazione di alcuni dei flussi di lavoro importanti.
Ad esempio, supponiamo che desideri notificare un'applicazione di terze parti in caso di nuova registrazione dell'utente sul tuo sito web. Naturalmente, c'è una disposizione per modificare i dati che transita avanti e indietro tra le chiamate di eventi.
Come suggerisce il nome, si occupa del livello di presentazione del tuo sito web e aiuta a strutturare il layout del tuo sito web. A volte viene anche chiamato Joomla! tema in quanto ti permette di cambiare l'aspetto del tuo sito web. Per cambiare l'aspetto predefinito di Joomla! core, è necessario creare un tema personalizzato come da Joomla! struttura a tema, ed è qualcosa che incontrerai spesso se sei un Joomla! sviluppatore.
Senza contare che l'ultima versione di Joomla! viene fornito con un tema reattivo nel front-end e nel back-end. Inoltre, è qualcosa che ci si aspetta dai progettisti di temi anche durante lo sviluppo di temi personalizzati.
Il JED è qualcosa con cui dovresti familiarizzarti, perché probabilmente trascorrerai un bel po 'di tempo alla ricerca di un'estensione per il tuo scopo. È un Joomla ufficiale! sito che offre numerose estensioni tra cui scegliere sotto forma di componenti, moduli e plugin.
Le estensioni di JED sono rilasciate con due tipi di licenza e commerciale. Come avrai intuito, le estensioni commerciali sono offerte a pagamento, disponibili su un modello di abbonamento o pagando una commissione una tantum. Come sviluppatore, è un'area di cui vorresti ottenere il beneficio, sviluppando estensioni di qualità e rilasciando quelle con licenza commerciale.
Di fatto, la maggior parte delle volte funziona in questo modo: la versione gratuita di un'estensione è disponibile con funzionalità di base e la versione a pagamento della stessa estensione è potenziata con funzionalità avanzate, in alcuni casi sotto forma di componenti aggiuntivi. Per non parlare del fatto che il lusso del supporto tecnico del fornitore di servizi di estensione arriva con la versione commerciale. Quindi, è un modello di business di successo e comprovato per molti provider di interni commerciali.
Detto questo, non mi prendo alcun credito da quelle estensioni gratuite di qualità che servono allo scopo così come qualsiasi estensione a pagamento. In effetti, è un insieme di norme e regole rigorose che ogni estensione deve attraversare per garantire che le estensioni elencate su JED soddisfino gli standard di qualità desiderati.
Quindi, questo è il JED a tua disposizione: mettiti comodo e sarai contento di averlo fatto.
Per gli utenti principianti, è sempre consigliabile installare Joomla! sul tuo sistema locale ed esplora le funzionalità nel front-end e nel back-end per abituarti al sistema. Ecco alcune risorse importanti per i neofiti:
Per sviluppatori PHP esperti:
È un tema così vasto che troverai un sacco di tutorial online e video a tua disposizione. Inoltre, i membri di Joomla! forum della comunità sono abbastanza amichevoli da aiutarti a risolvere eventuali problemi.
Ho avuto il piacere di presentare uno dei più popolari CMS open source nel campo dello sviluppo web: Joomla! Anche se abbiamo appena graffiato la superficie di Joomla! mondo, spero di essere in grado di rendere giustizia all'argomento.
Partendo da un'introduzione ai CMS, abbiamo analizzato i diversi aspetti di Joomla !, seguito da una discussione di importanti elementi architettonici. Abbiamo anche esaminato il JED e fornito alcune utili risorse nella parte successiva di questo articolo.
Non esitare a vedere ciò che abbiamo a disposizione per la vendita e per studiare nel mercato, e non esitare a fare qualsiasi domanda e fornire il tuo prezioso feedback utilizzando il feed qui sotto.