Sviluppo estensioni per Joomla - progetto aperto alla community
-
A partire dall'anno prossimo ho in programma di estendere una serie di servizi web. Dopo anni in cui il 99% di quello che ho sviluppato era destinato solo alla mia azienda, vorrei provare a fare qualcosa di nuovo.
Tra le cose che ho in mente di realizzare ci sono anche delle estensioni per Joomla da distribuire pubblicamente e questo thread è un primo passo in quella direzione. Il thread è aperto a tutta la community e sarà aggiornato nel tempo mano a mano che il progetto evolve. Esistono vari modi in cui, chi è interessato, può partecipare in base al proprio tempo, alle proprie competenze e alle proprie aspirazioni.IDEE E PROPOSTE
Se c'è un'estensione che vorreste fosse realizzata per Joomla (versioni 4 e 5) potete usare questo spazio per scrivere le vostre idee e proposte. Non posso garantire ovviamente che tutte le proposte vedranno la luce, ma possiamo parlarne e ragionarci insieme. Io ho un paio di idee, ma vorrei sentire anche le vostre.COLLABORAZIONI ATTIVE
Chi vuole partecipare attivamente alla realizzazione di un'estensione può proporsi. Cercheremo di sentirci in privato e valutare insieme se possibile collaborare su uno o più progetti. Realizzare un'estensione da distribuire richiede molto lavoro e molte competenze diverse: backend, frontend, interfaccia, traduzioni, beta testing ecc ecc. quindi le cose da fare non mancano. Anche in questo caso non posso garantire che tutte le richieste saranno accolte, io stesso sono il primo ad avere pochissima esperienza in fatto di lavorare in un team di sviluppo, ma... parliamone. Uno che spero sia della partita è @pstrada. Con lui c'è già stata una videochiamata ed è sempre molto aperto verso la community e quindi mi farebbe piacere coinvolgerlo.COSA, COME E QUANDO
Sicuramente inizierò (o inizieremo) con qualcosa di piccolo e semplice. Realizzare un'estensione non è una passeggiata e quindi è meglio fare un passo alla volta. Probabilmente serviranno tempi lunghi e questo thread potrebbe anche non venire aggiornato per settimane. Appena possibile sarà pubblicato qui un link dove poter scaricare le estensioni e raccogliere i feedback di chi le usa (indicativamente i primi mesi del 2025). Le estensioni saranno rilasciate sotto licenza GNU GPLv3, saranno disponibili a tutti gratuitamente, ma senza supporto. E poi vedremo come evolve il tutto. Sarebbe un grande, grandissimo risultato riuscire a creare delle collaborazioni efficenti e basandosi su quelle andare poi a realizzare estensioni più sofisticate da distribuire anche in forma commerciale. Non so se sarà possibile, l'unico modo per saperlo è provarci.ALCUNE NOTE IMPORTANTI
- Non chiedetemi di realizzare un'estensione e-commerce per Joomla. Ho sviluppato e continuo a mantenere il mio e-commerce negli ultimi 15 anni e attualmente non ho spazio per altro. Ad oggi chi vuole un e-commerce per Joomla dovrebbe (a mio avviso) orientarsi su J2Commerce e seguire il progetto nel lungo periodo.
- Questo progetto è realizzato in ambito professionale, non amatoriale. Sul lavoro tendo ad essere molto rigido e nel corso degli anni mi è capitato di sentirmi dire spesso che lavorare con me è difficile. Ne sono consapevole, quindi lo dico subito in modo chiaro e diretto: nessuno è obbligato a collaborare con me. Là fuori è pieno di persone talentuose molto migliori di me.
- Come ogni iniziativa, anche questo progetto potrebbe fallire molto in fretta. Le cose cambiano velocemente e anche dopo anni di lavoro nel web so di avere ancora moltissimo da imparare. Sono pronto a dedicare una parte del mio tempo e delle mie competenze a questo progetto e vedere a cosa porterà, ma ovviamente non posso prevedere il futuro.
- Lasciatemi dire anche che non sto facendo questo per "salvare Joomla!" o per "far rinascere Joomla!". Joomla non ha sicuramente bisogno di me per "salvarsi". Joomla ha solo bisogno di figure professionali che lo usino correttamente sfruttando le sue potenzialità e io al massimo posso provare di fare proprio questo.
Grazie in anticipo a chi userà questo thread.
-
Che onore, metto la mia ignoranza a disposizione, ma non sono uno sviluppatore, e quindi posso dare una mano nel testing o nella documentazione. In ogni caso ottima proposta la tua.
A caldo, il mio desiderata sarebbe un modulo CRUD base, che consenta di andare a leggere e scrivere tabelle sul DB. -
@pstrada anch'io metto la mia ignoranza da sviluppatore a disposizione, quindi tranquillo.
Dimmi qualcosa di più specifico su questo modulo CRUD. Un modulo può operare con il database se associato ad un componente. Però leggere e scrivere tabelle sul DB può avvenire solo nel contesto limitato stabilito dal componente, quindi mi serve capire meglio cosa vorresti fare. Non aver timore di spiegarla in termini molto semplici -
E' sempre bello vedere professionisti che si lanciano nel mondo delle estensioni di Joomla, quindi per quanto mi riguarda qualsiasi cosa avrai voglia e intenzione di fare sarà oro colato!
Non sviluppo estensioni ma me la cavo con php e javascript e soprattutto ho una voglia matta di fare qualcosa per l'ecosistema joomla che non sia solo divulgazione, quindi ben venga partecipare ad una tavola rotonda o anche attivamente nella realizzazione di qualcosa di importante.
Butto lì qualche idea di roba che secondo me manca e mi ha portato a cambiare CMS nel corso degli anni in alcuni progetti.
- So che non vuoi fare e-commerce, ma è il tallone d'achille di Joomla. Se pensi che J2Commerce sia un'estensione valida e che possa avere un futuro io procederei nella creazione di un sistema di creazione di XML per fatturazione elettronica, altrimenti un qualsiasi e-commerce non può effettivamente essere usato in Italia (a meno di clienti che non vogliano fare tutto a mano, cosa impossibile al giorno d'oggi)
- Sempre lato e-commerce (ma non troppo) manca un sistema di vendita video on-demand semplice e veloce. L'utente compra un video (hostato su vimeo, o localmente) singolarmente (quindi niente abbonamenti, pacchetti, aree riservate comuni ecc..) e se lo ritrova nella sua area personale
- Sempre in ambito "video" quello che mi pare carente è un buon componente LMS. Ne ho provati vari ma per un modo o per l'altro ho sempre trovato problemi
Stando invece su cose più terra-terra noto la mancanza di:
- Semplice plugin per gestione degli opengraph
- Plugin per il salvataggio dei campi aggiuntivi nelle versioni degli articoli (ma questa è, lo ammetto, una mancanza del core di joomla)
- Modulo mappa con integrazione dei campi aggiuntivi per visualizzare location e utilizzare geolocalizzazione, indicazioni stradali e ricerca basata sulla distanza (API di Google Maps)
- plugin gratuito per registrarsi/loggarsi al sito senza usare username ma solo con email (optional: integrare registrazione con i social networks)
Se mi viene in mente altro posto qui, intanto grazie!
-
Ciao @jabba e grazie.
Se vuoi sporcarti le mani con qualcosa di concreto credo che potremo provarci.-
Un plugin per la gestione degli opengraph è un potenziale candidato che avevo in mente anch'io. Bisogna dare un occhio perchè credo che Joomla 5 abbia introdotto delle funzionalità in questo senso ma non ho ancora controllato. Essendo un plugin che si deve integrare con i template occorre tener conto che non vada a cozzare contro qualcosa. Forse inizierei con qualcosa di ancora più semplice, ma comunque teniamola lì.
-
Ho avuto diversi contatti con i ragazzi che si sono presi in carico il progetto J2Commerce. Ho parlato loro anche dell'aspetto fatturazione elettronica. Al momento è prematuro parlare di tutto, ma una delle cose che cercherò di fare anno prossimo è proprio curare una versione di J2Commerce ottimizzata per il mercato italiano. Sicuramente ne riparlerò anche qui.
-
Il componente e-commerce che ho realizzato per la mia azienda ha una parte che gestisce tutto l'aspetto della fatturazione. Posso convertire preventivi, ordini e fatture con un click, inviare tutto via mail con in allegato il pdf e generare gli xml delle fattura elettroniche. Email e pdf hanno un sistema di template interno al componente. Quindi potrei sviluppare una suite di fatturazione completa che si integra con Joomla e affiancargli vari plugin per importare i dati dai vari componenti esterni (come gli e-commerce Virtuemart, Hikashop, J2Commerce ma non solo) rendendolo quindi uno strumento scalabile e completo. Questo sarebbe un progetto sicuramente di tipo commerciale che richiede quindi un approccio di un certo tipo. Sviluppare il componente è la parte che mi preoccupa di meno perchè so di poterlo fare, è tutto il resto che mi preoccupa perchè so di non poter fare tutto da solo (solo gli ingenui credono di poter fare tutto da soli). Se nasceranno delle collaborazioni concrete sicuramente affronteremo anche questi aspetti. Perchè nascano delle collaborazioni concrete dobbiamo provare a fare qualcosa in team, ecco la ragione di questo thread aperto.
-
Il plugin per il salvataggio dei campi aggiuntivi nelle versioni degli articoli non ho capito bene cosa sia
-
Gli altri progetti che suggerisci al momento sono un po' ambiziosi. Vedremo.
-
-
@AlanT ha detto in Sviluppo estensioni per Joomla - progetto aperto alla community:
Ciao @jabba e grazie.
Se vuoi sporcarti le mani con qualcosa di concreto credo che potremo provarci.A disposizione per un call, quando vuoi, anche solo per conoscersci a fare due chiacchiere a riguardo
- Un plugin per la gestione degli opengraph è un potenziale candidato che avevo in mente anch'io. Bisogna dare un occhio perchè credo che Joomla 5 abbia introdotto delle funzionalità in questo senso ma non ho ancora controllato. Essendo un plugin che si deve integrare con i template occorre tener conto che non vada a cozzare contro qualcosa. Forse inizierei con qualcosa di ancora più semplice, ma comunque teniamola lì.
Nativamente si possono gestire solo gli structured data, gli open graph sono ad appannaggio del template/framework per il momento (o di plugin esterni). Nel mio piccolo ho fatto una mini guida per inserirli in un override, si può partire da qui per sviluppare il plugin che faccia poi questo, super semplice e senza fronzoli. Sarebbe una manna dal cielo.
-
Ho avuto diversi contatti con i ragazzi che si sono presi in carico il progetto J2Commerce. Ho parlato loro anche dell'aspetto fatturazione elettronica. Al momento è prematuro parlare di tutto, ma una delle cose che cercherò di fare anno prossimo è proprio curare una versione di J2Commerce ottimizzata per il mercato italiano. Sicuramente ne riparlerò anche qui.
-
Il componente e-commerce che ho realizzato per la mia azienda ha una parte che gestisce tutto l'aspetto della fatturazione. Posso convertire preventivi, ordini e fatture con un click, inviare tutto via mail con in allegato il pdf e generare gli xml delle fattura elettroniche. Email e pdf hanno un sistema di template interno al componente. Quindi potrei sviluppare una suite di fatturazione completa che si integra con Joomla e affiancargli vari plugin per importare i dati dai vari componenti esterni (come gli e-commerce Virtuemart, Hikashop, J2Commerce ma non solo) rendendolo quindi uno strumento scalabile e completo. Questo sarebbe un progetto sicuramente di tipo commerciale che richiede quindi un approccio di un certo tipo. Sviluppare il componente è la parte che mi preoccupa di meno perchè so di poterlo fare, è tutto il resto che mi preoccupa perchè so di non poter fare tutto da solo (solo gli ingenui credono di poter fare tutto da soli). Se nasceranno delle collaborazioni concrete sicuramente affronteremo anche questi aspetti. Perchè nascano delle collaborazioni concrete dobbiamo provare a fare qualcosa in team, ecco la ragione di questo thread aperto.
Questa parte penso sia fondamentale. L'e-commerce è un vero problema per Joomla al momento, soprattutto lato italiano perché manca tutto quello che riguarda la fatturazione elettronica e il bridge con i vari gestionali sul mercato (Danea, TeamSystem, ecc...). Parliamone anche con @mangi-1 che poco tempo fa aveva detto di essere disponibile ad aiutare (come host.it direi) nella realizzazione di qualcosa che riguarda l'e-commerce.
- Il plugin per il salvataggio dei campi aggiuntivi nelle versioni degli articoli non ho capito bene cosa sia
Anche qui possiamo parlarne con calma, ma fondamentalmente il discorso è questo: gli articoli di joomla hanno nativamente un sistema di versioning (si può settare di tenere fino a X versioni precedenti dell'articolo e ripristinarlo in caso di necessità). Questo sistema è ottimo, soprattutto se si lascia un sito in mano ai clienti, ma ha una pecca enorme: funziona solo per le parti "base" dell'articolo (titolo, testo, metadati) ma non funziona per i campi aggiuntivi. Quindi se io modifico il contenuto dei campi aggiuntivi e poi salvo viene salvata una nuova versione dell'articolo, ma con i campi aggiuntivi vecchi. Quello di cui c'è bisogno (e qui potremmo fare i buoni samaritani e donare il codice al progetto joomla) è fare in modo che le versioni degli articoli salvino (e poi nel caso ripristino) anche i valori dei campi aggiuntivi, oltre a titolo, descrizione, ecc...
- Gli altri progetti che suggerisci al momento sono un po' ambiziosi. Vedremo.
Certo, un passo alla volta. Intanto ho buttato giù qualche idea
Ancora grazie -
@jabba e @pstrada se volete possiamo provare a organizzare una call per parlarci a voce. Vi scrivo in privato.
PLUGIN PER LA GESTIONE DEGLI OPENGRAPH
Ho dato un'occhiata al tuo tutorial sugli opengraph @jabba, l'approccio con l'override template è quello che ho usato anch'io per diversi anni.
Se passiamo alla modalità "progettazione di un'estensione" dobbiamo cambiare modo di ragionare. Molti pensano che la parte più difficile nello sviluppare sia scrivere il codice, in realtà è cambiare punto di vista.
Il tuo ragionamento funziona fino a quando gestiamo gli articoli e le categorie di Joomla. Ma non è detto che un sito di Joomla sia fatto solo dagli articoli. Cosa succede per i componenti che vengono installati in un sito? Come si gestiscono gli opengraph per quelli? E come possiamo realizzare un plugin che vada a integrarsi anche con i componenti? TUTTI i componenti?Ho controllato e Joomla 5.2.2 ha davvero inserito la gestione degli opengraph nativa nel CMS. Purtroppo non ho trovato nessuna documentazione a riguardo, probabilmente non è stata ancora pubblicata, ma credo che se ne parlerà.
La gestione degli opengraph in Joomla 5.2.2 comunque avviene a livello di voce di menu, che effettivamente è il modo più intelligente per l'ecosistema di Joomla. Ogni voce di menu ha ora una tab dedicata alla gestione degli opengraph, in questo modo si possono gestire i meta tag per qualunque cosa. Non l'ho ancora testata, sono curioso di vedere come vengono gestiti i singoli articoli per le voci di menu categoria blog. Prevedo che si integri con le immagini preview ed estese dell'articolo, il che sarebbe fantastico.Questa scoperta aggiunge quindi altre domande ad un nostro ipotetico plugin da sviluppare. Cosa succede se un utente installa il plugin e poi configurare il sistema nativo di Joomla dal menu? Se non si prende in considerazione questo aspetto nasce un conflitto.
La nostra estensione "semplice, giusto per smanettare un po'" è già diventata più complicata, oltre che obsoleta dal momento che usare i sistemi nativi è sempre la scelta migliore. -
Sapevo che se ne parlava di metterli nel core ma non ho mai letto nulla di ufficiale, se hai trovato del codice forse è un test o qualcosa di deprecato (anche su github non ci sono riferimenti), si può provare a sentire su github o mastodon, per vedere se qualche dev può dare più info a riguardo.
Per quanto riguarda il tuo discorso sulle estensioni di terze parti come dici tu allarga l'orizzonte ma io appunto rimarrei sul "piccolo", che vuol dire il core di Joomla.
Un'estensione per settare i meta tag a livello menu/pagina in modo esterno (quindi da una view componente e non direttamente da voce di menu/articolo) in realtà esiste già e funziona più che bene (TAGZ), la mia idea era qualcosa di ancora più basic, direttamente all'interno dell'articolo stesso (o del menu, che effettivamente ti risolve il problema dei componenti di terze parti che non lo settano o delle pagine di raccordo, tipo le categorie o simili). Ovviamente ti "perdi" gli item che non siano articoli o voci di menu (esempio i prodotti di un catalogo di Virtuemart, ma in questo caso penso sia appannaggio dello sviluppatore dell'estensione gestirsi i suoi opengraph).
Per quanto riguarda i conflitti col sistema nativo si può risolvere come fa Tassos per i dati strutturati oppure Tagz stesso: tabula rasa di tutti i meta tag og nella head e poi inserimento dei propri
Ad ogni modo sentiamoci tra di noi, lasciamo questo post libero per idee di tutti -
Se parliamo della PA, sarebbe carino, se fattibile, lo sviluppo di un plugin/componente per accesso con SPID/CIE.
In passato c'era qualcosa per Joomla 3 ma poi mi sa che era abbandonato.
https://paswjoomla.net/joomla/attachments/article/900/manuale spid for joomla.pdf -
Ciao @webman e grazie.
Questo sarebbe bellissimo, ma anche estremamente complesso. Ci darò un'occhiata ma non posso promettere nulla.Vedo che l'applicativo originale funzionava su Joomla 3.7 e php 5.4 e non è stato più aggiornato da diversi anni: https://github.com/retepasw/simplespidphp-pasw
L'applicativo originale da cui era stato forkato invece è ancora mantenuto: https://github.com/simplesamlphp/simplesamlphp
Sarei curioso di sapere se i siti sui quali è stato implementato questo sistema di accesso con SPID (che quindi sono siti della PA) stanno ancora usando Joomla 3.7 e php 5.4 dal momento che non esiste la versione per Joomla 4 o 5. (Spero di no...)
-
@AlanT bellissima idea.
Mi piacerebbe prendere parte come apprendista, ma anche come tester.
Non ho mai provato a mettere le mani nel realizzare estensioni anche se mi sarebbe piaciuto.
Fai sapere. -
Se serve una mano mi rendo disponibile come tester.
-
Ciao @Gioacchino e @elmir
Continuate a seguire il thread, questo è un progetto nel lungo termine e ci vorrà un po' prima di avere qui il link per scaricare le estensioni, ma la fase di testing dopo sarà molto importante.
Se avete delle idee per delle estensioni riportatele pure. Più sono semplici, prima saranno pronte. -
@AlanT ha detto in Sviluppo estensioni per Joomla - progetto aperto alla community:
@pstrada anch'io metto la mia ignoranza da sviluppatore a disposizione, quindi tranquillo.
Dimmi qualcosa di più specifico su questo modulo CRUD. Un modulo può operare con il database se associato ad un componente. Però leggere e scrivere tabelle sul DB può avvenire solo nel contesto limitato stabilito dal componente, quindi mi serve capire meglio cosa vorresti fare. Non aver timore di spiegarla in termini molto sempliciAl momento lo metterei come ultima priorità, grazie a @jabba ho visto che hanno finalmente rispolverato il buon Fabrik, anche per j4/5. Questo è già un componente CRUD con il quale si possono realizzare applicazioni gestionali senza entrare in sviluppi specifici.