Back to top

Autore Topic: [GUIDA] Creazione di un semplice modulo per Joomla 1.5  (Letto 13510 volte)

Offline Vulpiani

  • Appassionato
  • ***
  • Post: 360
  • Sesso: Maschio
  • Il mio messaggio è troppo lungo!
    • Mostra profilo
Ho fatto di necessità virtù traducendo questa ottima e semplice guida, e anche se l'inglese dovesse risultare un pò maccheronico, dubito che avrete qualche difficoltà a comprendere i concetti di questa semplicissima guida.

Francesco

Un modulo è un'estensione leggera e flessibile che è usata per
la rappresentazione della pagina. Sono usati per le piccole punte della pagina
e sono generalmente più o meno complessi e possono essere usati attraverso
vari componenti. Potete vedere molti esempi dei moduli nel Joomla standard!
Ad esempio: - menu - ultime notizie - Login e molto altro ancora.
Questa Semplice lezione spiegherà come creare un semplice modulo "Hello World".
Imparerete a creare una semplice struttura base che potrà poi essere utilizzata per crerare
moduli più o meno elaborati.

Struttura Files

Ci sono quattro File di base che sono utilizzati nel modello standard dello
sviluppo del modulo:

* mod_helloworld.php - Questo File è il punto di ingresso
principale per il modulo. Effettuerà tutte le procedure di inizio necessarie,
denominerà le procedure di Routine per raccogliere qualunque dato necessario e
comprenderà la mascherina che visualizzerà l'uscita del modulo.


*mod_helloworld.xml = Questo file contiene le informazioni di Copyright del modulo,
definisce i file necessari per il "Joomla!installer" e i parametri di configurazione
del modulo.

*helper.php = Questo file contiene la Classe Helper che sarà usata in questo lavoro per ricavare
le informazioni da mostrare a schermo (solitamente da un Database o da altre fonti)


*tmpl/default.php - questa è il template del modulo. Quest file prenderà i dati raccolti
da mod_helloworld.php e genererà l'HTML da visualizzare alla pagina.

Creazione del File mod_helloword.php

Il File mod_helloworld.php effettuerà tre mansioni:

* includere il file helper.php che contiene la classe necessaria per raccogliere i dati
* invocare class helper richiamare i dati
* comprendere il per visualizzare l'uscita.

il Class Helper è definita dal File Helper.php. In questo file c'è una dichiarazione require_once

Codice: [Seleziona]
require_once( dirname(__FILE__).DS.'helper.php' );
il require_once è usato perché le nostre funzioni dell'helper sono definite
all'interno di una classe e possiamo avere soltanto una classe
definita per volta.

la nostra Helper Class non è stata ancora definita, ma quando lo sarà,
conterrà un metodo: getHello ().
Per il nostro esempio di base, non è necessario realmente fare questo,il nostro
- “Hello world„ che questo metodo restituisce, potrebbe essere incluso semplicemente
nel template. Usiamo un Class Helper qui per dimostrare questa tecnica di base.

Il modulo attualmente non usa alcun parametro, ma li passeremo comunque al metodo
Helper in modo da poterlo usare successivamente se decidiamo di ampliare le funzionalità
del nostro modulo.

il Metodo Helper Class si usa in questo modo:
Codice: [Seleziona]
$hello = modHelloWorldHelper::getHello( $params );
ecco il codice del file mod_helloworld.php
Codice: [Seleziona]
<?php
/**
 * Hello World! Module Entry Point
 * 
 * @package    Joomla.Tutorials
 * @subpackage Modules
 * @link http://dev.joomla.org/component/option,com_jd-wiki/Itemid,31/id,tutorials:modules/
 * @license        GNU/GPL, see LICENSE.php
 * mod_helloworld is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 */

// no direct access
defined'_JEXEC' ) or die( 'Restricted access' );

// Include the syndicate functions only once
require_once( dirname(__FILE__).DS.'helper.php' );

$hello modHelloWorldHelper::getHello$params );
require( 
JModuleHelper::getLayoutPath'mod_helloworld' ) );

L'unica riga che non abbiamo spiegato finora è la prima riga.
Questa riga si assicurarsi che il file si eseguito solo da Joomla!.
Ciò è necessario per impedire futuri problemi di sicurezza.He

Creazione di helper.php

Helper.php contiene la Helper Class per il recupero dei dati e l'output del template
l'helper class d'esempio contien un solo metodo:gethello().
Questo metodo da il messaggio di ritorno "Hello World".

Eccone il codice
Codice: [Seleziona]
<?php
/**
 * Helper class for Hello World! module
 * 
 * @package    Joomla.Tutorials
 * @subpackage Modules
 * @link http://dev.joomla.org/component/option,com_jd-wiki/Itemid,31/id,tutorials:modules/
 * @license        GNU/GPL, see LICENSE.php
 * mod_helloworld is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 */
class modHelloWorldHelper
{
    
/**
     * Retrieves the hello message
     *
     * @param array $params An object containing the module parameters
     * @access public
     */    
    
function getHello$params )
    {
        return 
'Hello, World!';
    }
}

Non c'è una regola precisa che dice che dobbiamo chiamare il nostro codice Class Helper
ma è utile per poter identificare facilmente il file.I moduli più avanzati
hanno potuto comprendere richieste dal Database o altre funzionalità nel Class Helper.

Creazione di tmpl/default.php

il file Default.php contien il Template d'uscita del nostro modulo.

il codice di questo file è
Codice: [Seleziona]
<?php // no direct access
defined'_JEXEC' ) or die( 'Restricted access' ); ?>

<?php echo $hello?>

Un aspetto importante è che il file è simile al file mod_helloworld.php.
la variabile $hello può essere definita nel file mod_helloworld.php
e può essere utilizzato nel file $hello senza alcune dichiarazioni o
chiamate di funzione supplementari.

Creazione di mod_helloworld.xml

il file mod_helloworld.xml sarà utilizzato per specificare quali sono i file
che l'installer deve copiare ed è usato per determinare quali sono i parametri di
configurazione per il modulo. Altre informazioni sul modulo inoltre sono specificate
in questa file.

Eccone il codice
Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
    <name>Hello, World!</name>
    <author>John Doe</author>
    <version>1.5.0</version>
    <description>A simple Hello, World! module.</description>
    <files>
        <filename module="mod_helloworld">mod_helloworld.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
    </files>
    <params>
    </params>
</install>

Noterete che ci sono due file supplementari a cui ancora non abbiamo accennato:
index.html e tmpl/index.html.
Questi file sono inclusi in modo da non potere passare in rassegna questi index.
Queste file possono essere lasciati vuoti o possono contenere una semplice riga:

Codice: [Seleziona]
<html><body bgcolor="#FFFFFF"></body></html>Poiché il nostro modulo non usa alcun parametro, questa pagina è vuota.

« Ultima modifica: 16 Giu 2009, 09:15:53 da teakor »
Quando tutto salta
Bisogna fermarlo
con una morsa (mia)

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re: [GUIDA] Creazione di un semplice modulo per Joomla 1.5
« Risposta #1 il: 24 Nov 2008, 20:57:47 »
E' la prima volta che questo post mi cade sotto gli occhi. Bel lavoro.

Grazie!

Offline TheShark

  • Team Joomla.it
  • Abituale
  • *******
  • Post: 920
  • Sesso: Maschio
    • Mostra profilo
Re: [GUIDA] Creazione di un semplice modulo per Joomla 1.5
« Risposta #2 il: 31 Dic 2008, 10:31:55 »
Aggiungerei una modifica per renderlo configurabile dalle impostazione del modulo:

Modifichiamo la classe in helper.php da cosi:

Codice: [Seleziona]
class modHelloWorldHelper
{
    /**
     * Retrieves the hello message
     *
     * @param array $params An object containing the module parameters
     * @access public
     */   
    function getHello( $params )
    {
        return 'Hello, World!';
    }
}

a cosi:

Codice: [Seleziona]
class modHelloWorldHelper
{
    /**
     * Retrieves the hello message
     *
     * @param array $params An object containing the module parameters
     * @access public
     */   
    function getHello( $params )
    {
        return $hello_world = $params->get( 'hello_world', 'ciao mondo' );
    }
}

poi aggiungiamo nel file xml il parametro per rendere il testo configurabile:

da cosi:

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
    <name>Hello, World!</name>
    <author>John Doe</author>
    <version>1.5.0</version>
    <description>A simple Hello, World! module.</description>
    <files>
        <filename module="mod_helloworld">mod_helloworld.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
    </files>
    <params>
    </params>
</install>

a cosi:

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
    <name>Hello, World!</name>
    <author>John Doe</author>
    <version>1.5.0</version>
    <description>A simple Hello, World! module.</description>
    <files>
        <filename module="mod_helloworld">mod_helloworld.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
    </files>
    <params>
<param name="hello_world" type="text" default="ciao mondo" label="Inserisci Testo" description="Testo da inserire" />
    </params>
</install>

con questa parte ---> type="text" definiamo il tipo di campo,ad esempio se volessimo un piccolo menù a tendina e' sufficiente mettere la stringa in questo modo:

Codice: [Seleziona]
   <params>
    <param name="hello_world" type="list" size= "30" default="Ciao Mondo" label="Scegli Testo" description="Scegli il Testo da inserire">
<option value="Ciao Mondo">Ciao Mondo</option>
<option value="Hello World">Hello World</option>
</param>
    </params>

Da notare

Codice: [Seleziona]
</param>
    </params>
il primo chiude il parametro hello_world --> </param>
il secondo chiude la stringa dei parametri --> </params>
« Ultima modifica: 31 Dic 2008, 10:46:17 da theshark »

Offline pasalino

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:[GUIDA] Creazione di un semplice modulo per Joomla 1.5
« Risposta #3 il: 28 Lug 2009, 12:24:59 »
Complimenti utilissima guida essenziale, completa ed elegante.

Anche il post riferito ai parametri è utilissimo.

Darei un ottimo voto a tutto il post

Offline lukesky

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
Re:[GUIDA] Creazione di un semplice modulo per Joomla 1.5
« Risposta #4 il: 09 Giu 2011, 01:18:35 »
Ciao, ho notato che se inserisco due funzioni nella stessa classe, provando a chiamare l'una dall'altra mi dà errore. Sapresti come risolvere la cosa? (mantenendo però il richiamo tra le funzioni della classe)

allego un esempio veloce:

Codice: [Seleziona]
class EsempioClasse
{
function funzioneUno($var)
{
return $var
}

function funzioneDue()
{
funzioneUno("scrivi a video questo");

}

}

 



Web Design Bolzano Kreatif