Joomla ile Basit Bir Form Bileşeni Yapımı

Bu makale ile joomla 1.0.x için kendimize basit bir form bileşeni yapacağız ve bunu daha sonra geliştireceğiz.

Bu makale ile joomla 1.0.x için kendimize basit bir form bileşeni yapacağız ve bunu daha sonra geliştireceğiz.

Bu yazımızdan itibaren artık birçok sınıf ve fonksiyonu bildiğimizi düşünerek ufak bir form oluşturmaya başlayacağız. Öncelikle bir HTML editörü ile kendimize bir form oluşturalım. Ben Dreamweaver ile kendime aşağıdaki gibi bir form oluşturdum;


<form action="index.php" method="post">

    <table cellpadding="0" cellspacing="0" border="0" width="100%">

    <tr>

    <th colspan="2">Geri Bildirim Formu</th>

    </tr>

    <tr>

      <td width="50%">Adınız, Soyadınız:</td>

    <td width="50%"><input type="text" name="isim" value="" class="inputbox" size="30" /></td>

    </tr>

    <tr>

      <td>Kullanıcı Adınız:</td>

    <td><input type="text" name="kullanici" value="" class="inputbox" size="30" /></td>

    </tr>

    <tr>

      <td>E-posta Adresiniz:</td>

    <td><input type="text" name="eposta" value="" class="inputbox" size="30" /></td>

    </tr>

    <tr>

      <td>Mesajın Konusu:</td>

    <td><input type="text" name="konu" value="" class="inputbox" size="30" /></td>

    </tr>

    <tr>

      <td colspan="2">Mesajınız:</td>

    </tr>

    <tr>

      <td colspan="2"><textarea name="mesaj" cols="50" rows="15" class="inputbox"></textarea></td>

    </tr>

    </table>

    <input type="hidden" name="option" value="com_form" />

    <input type="hidden" name="task" value="gonder" />

    <input type="submit" name="submit" value="Formu Gönder" class="inputbox" />

    </form>




Bu formu inceleyecek olursak;


<form action="index.php" method="post">




Formun ilk satırında formun nereye ve hangi metod ile gönderileceğini belirttim.


<input type="hidden" name="option" value="com_form" />

    <input type="hidden" name="task" value="gonder" />




Formun sonundaki son iki satırda option (yani bileşenin adı) olarak com_form olarak belirttim. Çünkü tüm herşeyi bitirdiğimizde bu form bileşeninin adı com_form olacak. Hemen altındaki satırda da form verilerinin gideceği fonksiyonu (gonder) belirttim.

Formdaki alanlara bakacak olursak;
- isim,
- kullanici,
- eposta,
- konu,
- mesaj


Şimdi bir yazı editörü ile php dosyamızı oluşturalım. Bileşenimizin adını com_form olarak adlandıracağımızı belirtmiştik. Dolayısıyla dosyanın adı form.php olacak.

form.php:



<?php 

    
//direkt erişimi engelleyelim

    
defined('_VALID_MOS') or die('Kısıtlı erişim');



    
//task oluşturalım

    
switch($task) {

      
//varsayılan fonksiyonumuz yani formumuzun gösterileceği yer

      
default:

      
Form();

      break;



      
//form gonderildiğinde çalışacak olan fonksiyon (gonder fonksiyonu)

      
case 'gonder':

      
FormuGonder();

      break;

    }



    function 
Form() {

    
?>

    <form action="index.php" method="post">

    <table cellpadding="0" cellspacing="0" border="0" width="100%">

    <tr>

    <th colspan="2">Geri Bildirim Formu</th>

    </tr>

    <tr>

    <td width="50%">Adınız, Soyadınız:</td>

    <td width="50%"><input type="text" name="isim" value="" class="inputbox" size="30" /></td>

    </tr>

    <tr>

    <td>Kullanıcı Adınız:</td>

    <td><input type="text" name="kullanici" value="" class="inputbox" size="30" /></td>

    </tr>

    <tr>

    <td>E-posta Adresiniz:</td>

    <td><input type="text" name="eposta" value="" class="inputbox" size="30" /></td>

    </tr>

    <tr>

    <td>Mesajın Konusu:</td>

    <td><input type="text" name="konu" value="" class="inputbox" size="30" /></td>

    </tr>

    <tr>

    <td colspan="2">Mesajınız:</td>

    </tr>

    <tr>

    <td colspan="2"><textarea name="mesaj" cols="50" rows="15" class="inputbox"></textarea></td>

    </tr>

    </table>

    <input type="hidden" name="option" value="com_form" />

    <input type="hidden" name="task" value="gonder" />

    <input type="submit" name="submit" value="Formu Gönder" class="inputbox" />

    </form>

    

    }



    function FormuGonder() {

    //formdaki gonderilen verileri alalım

    $isim = mosGetParam($_REQUEST, 'isim');

    $kullanici = mosGetParam($_REQUEST, 'kullanici');

    $eposta = mosGetParam($_REQUEST,'eposta');

    $konu = mosGetParam($_REQUEST, 'konu');

    $mesaj = mosGetParam($_REQUEST, 'mesaj');



    //Burayı kendi mail adresinizle değiştirin!

    $mailim = ' benimmailim@benimsitem.com';



    //Formu mosMail fonksiyonu ile kendi e-posta adresimize göndertelim

    mosMail($eposta, $isim, $mailim, $konu, $mesaj);



    //Bileşene geri gönderelim ve uyarı mesajımızı gösterelim

    mosRedirect('index.php?option=com_form','Gönderiniz başarıyla iletildi');

    }

    ?> ?>





Şimdi gelelim bileşenin diğer dosyalarını oluşturmaya;

form.xml:



xml version="1.0" encoding="iso-8859-9"?>

    <mosinstall type="component" version="1.0.0">

        <name>Form</name>

        <author>Soner Ekici</author>

        <creationDate>Temmuz 2007</creationDate>

        <copyright>(C) 2006 Soner Ekici. All rights reserved.</copyright>

        <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>

        <authorEmail>admin@sonerekici.com</authorEmail>

        <authorUrl>www.sonerekici.com</authorUrl>

        <version>1.0</version>

        <description>Bu bizim ilk form bileşenimiz.</description>

        <files>

        <filename>form.php</filename>

        </files>

    <install>

    </install>

    <uninstall>

    <queries>

    </queries>

    </uninstall>

    <installfile>install.form.php</installfile>

    <uninstallfile>uninstall.form.php</uninstallfile>

    </mosinstall>





install.form.php:


<?php 

    defined
'_VALID_MOS' ) or die( 'Kısıtlı erişim' );



    function 
com_install()

    {

      

    }

    
?> ?>



uninstall.form.php:



<?php 

    defined
'_VALID_MOS' ) or die( 'Kısıtlı erişim' );



    function 
com_uninstall()

    {

      

    }

    
?> ?>




Şimdi elimizde 4 adet dosya oluştu;

- form.xml (Bileşenimizin kurulum dosyası)
- install.form.php ve uninstall.form.php (Bileşenimizin kurulum ve kaldırılmasında gerekecek dosyalar)
- form.php (Bileşenimizin çalışması için gereken kodların olduğu dosya)

Bu 4 dosyayı zipleyip yönetim panelinden yüklediğinizde ve daha sonra menüden link verdiğinizde elinizde oldukça basit bir formMail denilen (yani form ile mailimize veri gönderen) bir bileşenimiz olacaktır.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

benim bu kodalrı kullanacak programım yok. aslında kodalr yerine doğrudan kendisini paylaşsanız hiç te fena olmaz
arkadaşım eline sağlık. böyle bir bileşen geliştirmeye çalışıyorum ama senin hazırladığın form.xml için administration element eksik diyor. dolayısıyla siteye kurmuyor bileşeni. sende bu hata çıkıyor mu? bir de 1.5.x sürümü için yazmak istesek neyi değiştirmemiz gerekiyor anlamadım?? kod yerine dosyaları paylaşabilirsek, bir de nereye ne eklediğinizi tam anlamamız için resim ekleyebilirseniz çok güzel olur. bu şekliyle bileşeni kuramadım. bir de ben veritabanı ile iletişimde olsun istiyorum. yeni anlatımını bekliyorum. sevgiler:kirp:

Yukarı Git