2013-02-25 6 views
5

Sto creando un semplice modulo Joomla 2.5 che avrà un modulo html.Sviluppo del modulo joomla con modulo - come elaborare

mod_mymodule/tmpl/default.php:

<form method="post" id="myemailform" action=""> 
    <label for="ReferralName">Enter Name:</label><input type="text" name="name" value="<?php echo modCamcloudReferralHelper::getReferralName(); ?>"> 
    <label for="ReferralEmail">Enter Email Address:</label><input type="text" name="email"> 
    <label for="ReferralMessage">Enter Message (optional):</label><textarea class="message"></textarea> 
    <span class="countdown"></span> 
    <button type="submit" value="Send Email">Send Email</button> 
    <?php echo JHtml::_('form.token'); ?> 
</form> 

Ho una classe di supporto a:

mod_mymodule/helper.php - questo ha solo alcune funzioni di utilità in esso.

La mia domanda è qual è la solita convenzione qui per elaborare il mio modulo sul lato server. Ho cercato di trovare esempi di ciò che le persone hanno fatto, ma non riesco a trovare nulla. Devo solo mettere tutto nella classe helper:

<form method="post" id="myemailform" action="..\helper.php"> 

O qualcosa del genere? Grazie in anticipo.

risposta

3

Sì, è necessario eseguire l'elaborazione dei moduli nella classe helper modulo. Mantenere qualsiasi logica fuori dal file modello ed è possibile utilizzare mod_mymodule.php per chiamare metodi helper e assegnare variabili prima di includere il file di visualizzazione.

Non impostare come file di supporto per l'azione del modulo! Penso che nel tuo caso l'azione dovrebbe essere la stessa pagina, quindi puoi anche omettere l'URL di azione.

Edit: Come richiesto nei commenti, questo sarebbe il contenuto del tuo mod_mymodule.php

// include helper file 
require_once dirname(__FILE__).'/helper.php'; 
// call some method of the helper class 
$items = modMymoduleHelper::getItems(); 

$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx')); 
// render view file from mod_mymodule/tmpl/default.php, $items is available in the view file 
require JModuleHelper::getLayoutPath('mod_mymodule', $params->get('layout', 'default')); 
+0

Dal momento che il mio file di supporto non è la stessa directory non avrei dovuto specificare il file helper con form action? Non sono sicuro di capire i meccanismi di questo altrimenti? Puoi fornire un semplice esempio? Grazie. – Tom

+0

Quando si invia il modulo alla stessa pagina, il modulo verrà caricato di nuovo. Joomla chiamerà 'mod_mymodule.php', che dovrebbe essere incaricato di chiamare i metodi helper e passare le variabili necessarie alla vista' mod_mymodule/tmpl/default.php'. 'my_module.php' include sia il file di visualizzazione che comunica con la classe helper, Joomla non chiama nessun altro file php quando include il modulo –

+0

Ho aggiunto un esempio di' mod_mymodule.php' –