Come sviluppare un modulo Joomla?


10

Ho cercato in lungo e in largo un tutorial su questo, ma non riesco a trovare nulla di soddisfacente. Come si crea un nuovo modulo per joomla?

In questo momento sto usando moduli HTML personalizzati in tutto il mio codice e mi piacerebbe essere in grado di entrare in PHP e trasformarli tutti in un modulo, ma non ho trovato un tutorial per farlo. Ho già modificato i moduli installati ma non so come crearne uno che verrà installato.

La documentazione di Joomla è piuttosto confusa e dopo averla letta varie volte ho rinunciato. Qualcuno può aiutarmi a spiegarmi questo processo? Grazie!

Risposte:


17

Apprendimento dello sviluppo del modulo Joomla

Il modo in cui ho imparato è stato studiando e personalizzando il core o altri moduli di terze parti.
I moduli come concetto sono più semplici dei componenti (che potremmo dire sono 2 app front-end / back-end) e sono progettati per visualizzare un'informazione.
Quindi, se apri la cartella / i file del modulo e inizi a leggere il codice, probabilmente ci andrai velocemente.

Joomla Module Anatomy con l'esempio

Ad esempio, puoi aprire il modulo Ultimi articoli in Joomla 3.2 e controllare il suo codice, leggendo le righe seguenti. Nella cartella del modulo troveremo i 4 file di base:

1. mod_articles_latest.php
2. helper.php
3. tmpl/default.php
4.mod_articles_latest.xml

  1. Il mod_articles_latest.phpè il file principale dei moduli, quello che viene utilizzato per primo quando il modulo è chiamato. Inizializza il modulo e include il helper.php, chiama il metodo della classe dell'helper per recuperare i dati e infine include il modello del modulo ( default.php) per visualizzare i dati.

  2. Il helper.phpfile è il "macchinario" del modulo (se potessimo nominarlo così). Nell'helper creiamo la classe del modulo e i suoi metodi per recuperare i dati. Questo è il luogo in cui possiamo far "parlare" il modulo con il database. Leggendo il codice nel file di aiuto di questo modulo, si vedrà che contiene la ModArticlesLatestHelperclasse , che ha un metodo:getList(&$params) .
    All'interno di questo metodo il modulo sta controllando le impostazioni di back-end del modulo e alla fine crea l'elenco degli articoli che restituirà, in base a queste condizioni. Si noti che questo modulo utilizza il JModelLegacy::getInstancemetodo per restituire l' oggetto modello di contenuto .

  3. Il default.phpè il modello principale del modulo e responsabile per visualizzare il contenuto del modulo. - Qui costruiamo l'output html, utilizzando i dati recuperati in precedenza mod_articles_latest.phpchiamando la classe del modulo. Si trova all'interno della cartella tmpl . * Si noti che il file del modulo principale include il file modello con il JModuleHelper::getLayoutPathmetodo, che per primo verificherà eventuali sostituzioni del modello.

  4. Alla fine, lo mod_articles_latest.xmlchiamerei "l'ambasciatore" del modulo. È il file che "introduce" il modulo a Joomla durante l'installazione, specifica i file che verranno copiati dal programma di installazione e contiene anche informazioni sui parametri del modulo utilizzati dal gestore del modulo, nonché informazioni aggiuntive sul modulo.

Queste sono le parti essenziali di un modulo di base. Un altro aspetto che potresti prendere in considerazione è il supporto di più lingue. Ciò può essere ottenuto utilizzando le stringhe di lingua e i file di traduzione delle lingue . Se avessi raggiunto così tanto successo, per creare un modulo di base, aggiungere il supporto delle lingue dovrebbe essere piuttosto semplice.


15

3

Abbiamo sviluppato un modulo gratuito per lo stesso scopo Modulo PHP personalizzato per Joomla CMS .

Devi creare un file PHP, ad esempio login.php in [website-root] / modules / mod_customphp / files

  • Ora per usare questo file
  • Vai a [backend] -> module-manager
  • Crea un nuovo modulo php personalizzato
  • Nel parametro includefile put login
  • Questo renderà login.php nel modulo.

che risponde al mio caso d'uso wrt php, ma non risponde a quello che stavo effettivamente chiedendo (nel mio caso, devo salvare alcune impostazioni come il colore ecc. per ogni uso del modulo, che sarà più facile se posso creare un nuovo modulo invece di accedere a php) anche se grazie per il suggerimento.
serakfalcon,

Puoi aggiungere più parametri al modulo e usare questi parametri nei tuoi file php.
Shyam,

3

È possibile copiare un modulo esistente in un'installazione locale. Quindi rinominalo nel modo desiderato. Devi anche rinominare i file php e xml così come i nomi delle classi php nel codice. Quindi basta creare un file zip del modulo. Questo file zip che puoi installare nella tua installazione di joomla.

Desideri ulteriori dettagli sulla ridenominazione?


Funziona in una certa misura, ed è spesso il mio modo di iniziare, ma non è sufficiente per gestire stringhe di lingue e supporti aggiuntivi che vengono installati in posizioni diverse.
Peter Wiseman,

@PeterWiseman Sì, hai ragione, ma è un modo semplice e veloce per iniziare.
seagul
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.