2013-02-25 24 views
5

Bir html formuna sahip olacak basit bir Joomla 2.5 modülü oluşturuyorum. Form ile joomla modül geliştirme - nasıl işlenir

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> 

Ben bir yardımcı sınıf var:

mod_mymodule/helper.php - Bu sadece içinde bazı ek işlevler vardır.

Sorunuz, buradaki formumu sunucu tarafında işlemek için kullanılan genel kuraldır. İnsanların ne yaptığına dair örnekler bulmaya çalıştım ama hiçbir şey bulamıyorum. Sadece yardımcı sınıfında her şeyi koymak mı: Böyle

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

Ya bir şey? Şimdiden teşekkürler.

cevap

3

Evet, modül yardımcı sınıfında işlem oluşturmalısınız. Herhangi bir mantığı şablon dosyasından uzak tutun ve yardımcı yöntemlerini çağırmak ve görünüm dosyasını eklemeden önce değişkenleri atamak için mod_mymodule.php'u kullanabilirsiniz.

Form eylem yardımcı dosyası olarak ayarlamayın! Senin davayla ilgili eylemin aynı sayfa olması gerektiğini düşünüyorum, bu yüzden eylem URL'sini de uygulayabilirsiniz.

Düzenleme: Açıklamalarda istediği gibi bu içeriği olurdu senin 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

benim yardımcı dosyasını ben formu eylem ile yardımcı dosyası belirtmek gerek olmazdı aynı dizin olmadığından? Aksi halde bunun mekaniğini anladığımdan emin değilim? Basit bir örnek verebilir misiniz? Teşekkürler. – Tom

+0

Aynı sayfaya form gönderdiğinizde, modülünüz tekrar yüklenecektir. Joomla, 'mod_mymodule.php' diyerek, yardımcı yöntemleri çağırmaktan sorumlu olmalı ve' mod_mymodule/tmpl/default.php' görünümüne gerekli değişkenleri geçirmelidir. 'my_module.php', hem görünüm dosyasını içerir hem de yardımcı sınıfla iletişim kurar, Joomla modülü –

+0

içerdiğinde başka bir php dosyasını çağırmaz. 'mod_mymodule.php' –