banner Burada Havadan Sudan Bahsedip yormadim sizi zmler ve sonular var

Updates: 2.5 surumune getim denemelerim devam ediyor. More...
Aug
23rd

Joomla Bilesen Yapımı cok basarili bir makale …nerdeyse satır satır..

Yazar: admin | dosya Joomla

 Joomla ile Basit Bir Form Bileseni Yapimi       
Yazar Soner Ekici  
Persembe, 19 Temmuz 2007
Bu yazimizdan itibaren artik birçok sinif ve fonksiyonu bildigimizi düsünerek ufak bir form olusturmaya baslayacagiz. Öncelikle bir HTML editörü ile kendimize bir form olusturalim. Ben Dreamweaver ile kendime asagidaki gibi bir form olusturdum;

<form action="index.php" method="post">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<th colspan="2">Joomla Türkiye Geri Bildirim Formu</th>
</tr>
<tr>
  <td width="50%">Adiniz, Soyadiniz:</td>
<td width="50%"><input type="text" name="isim" value="" class="inputbox" size="30" /></td>
</tr>
<tr>
  <td>Kullanici Adiniz:</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>Mesajin Konusu:</td>
<td><input type="text" name="konu" value="" class="inputbox" size="30" /></td>
</tr>
<tr>
  <td colspan="2">Mesajiniz:</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 satirinda formun nereye ve hangi metod ile gönderilecegini belirttim.

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

Formun sonundaki son iki satirda option (yani bilesenin adi) olarak com_form olarak belirttim. Çünkü tüm herseyi bitirdigimizde bu form bileseninin adi com_form olacak. Hemen altindaki satirda da form verilerinin gidecegi fonksiyonu (gonder) belirttim.

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

Simdi bir yazi editörü ile php dosyamizi olusturalim. Bilesenimizin adini com_form olarak adlandiracagimizi belirtmistik. Dolayisiyla dosyanin adi form.php olacak.

form.php:

<?php
//direkt erisimi engelleyelim
defined(’_VALID_MOS’) or die(’Kisitli erisim’);

//task olusturalim
switch($task) {
  //varsayilan fonksiyonumuz yani formumuzun gösterilecegi yer
  default:
  Form();
  break;
 
  //form gonderildiginde çalisacak 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">Joomla Türkiye Geri Bildirim Formu</th>
</tr>
<tr>
<td width="50%">Adiniz, Soyadiniz:</td>
<td width="50%"><input type="text" name="isim" value="" class="inputbox" size="30" /></td>
</tr>
<tr>
<td>Kullanici Adiniz:</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>Mesajin Konusu:</td>
<td><input type="text" name="konu" value="" class="inputbox" size="30" /></td>
</tr>
<tr>
<td colspan="2">Mesajiniz:</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>
<?php
}

function FormuGonder() {
//formdaki gonderilen verileri alalim
$isim = mosGetParam($_REQUEST, ‘isim’);
$kullanici = mosGetParam($_REQUEST, ‘kullanici’);
$eposta = mosGetParam($_REQUEST,’eposta’);
$konu = mosGetParam($_REQUEST, ‘konu’);
$mesaj = mosGetParam($_REQUEST, ‘mesaj’);

//Burayi kendi mail adresinizle degistirin!
$mailim = ‘ benimmailim@benimsitem.comBu mail adresi spam botlara karsi korumalidir, görebilmek için Javascript açik olmalidir ‘;

//Formu mosMail fonksiyonu ile kendi e-posta adresimize göndertelim
mosMail($eposta, $isim, $mailim, $konu, $mesaj);

//Bilesene geri gönderelim ve uyari mesajimizi gösterelim
mosRedirect(’index.php?option=com_form’,'Gönderiniz basariyla iletildi’);
}
?>

Simdi gelelim bilesenin diger dosyalarini olusturmaya;

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> pisdoktor@joomlaturkiye.orgBu mail adresi spam botlara karsi korumalidir, görebilmek için Javascript açik olmalidir </authorEmail>
    <authorUrl>www.sonerekici.com</authorUrl>
    <version>1.0</version>
    <description>Bu bizim ilk form bilesenimiz.</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( ‘Kisitli erisim’ );

function com_install()
{
  
}
?>

uninstall.form.php:

<?php
defined( ‘_VALID_MOS’ ) or die( ‘Kisitli erisim’ );

function com_uninstall()
{
  
}
?>

Simdi elimizde 4 adet dosya olustu;

- form.xml (Bilesenimizin kurulum dosyasi)
- install.form.php ve uninstall.form.php (Bilesenimizin kurulum ve kaldirilmasinda gerekecek dosyalar)
- form.php (Bilesenimizin çalismasi için gereken kodlarin oldugu dosya)

Bu 4 dosyayi zipleyip yönetim panelinden yüklediginizde ve daha sonra menüden link verdiginizde elinizde oldukça basit bir formMail denilen (yani form ile mailimize veri gönderen) bir bilesenimiz olacaktir.



2 yanıt. Bir şeyler yazmak istermisin ?

  1. umut karaman
    Feb 15, 2008 at 17:08:14
    #1

    bu bileşen 1.0.x için mi yoksa 1.5.x için mi eger ikisi icinde geçerli ise bende yukleme başarısız oldu tanımsız tip uyarısı verdi eger 1.5.x icin değilse 1.5.x icin ne eklememiz gerekir bu bileşene?

  2. admin
    Feb 15, 2008 at 18:07:22
    #2

    Bileşen 1.0.x için .. Daha 1.5 inceleme fırsatım olmadı:(

Yorum Gönder