Joomla Kodlarına Giriş (Bölüm 7)

Bu yazı dizisi ile joomla 1.0.x sürümünün kodlarına giriş yaparak kendimizi joomla konusunda daha çok geliştirmeye çalışacağız.

Yazımıza mosHTML sınıfındaki emailCloaking fonksiyonu ile devam ediyoruz. Bu fonksiyon sayesinde sitemizdeki e-posta adreslerini spam botların almasını engelliyoruz. Fonksiyonun kullanımı şu şekildedir;


$eposta = mosHTML::emailCloaking('eposta adresi', 'mailto linki olacak mı', 'mail yerine gosterilecek yazı');



Örnek verelim;

$eposta = mosHTML::emailCloaking('admin@sonerekici.com', 1, 'Pisdoktora E-posta Atın');

    echo $eposta;



Kullanımı oldukça kolay olan bu fonksiyon ile birlikte mosHTML sınıfını bitirmiş olduk.

Gene joomla.php içerisinde olan ve geçmiş yazılarımızda çok kısa da olsa değindiğimiz mosGetParam fonksiyonuna detaylı bir bakış atmamızın kodlama oldukça faydalı olacağını düşünüyorum.

mosGetParam fonksiyonu ile çeşitli parametreleri kolayca ve güvenli bir şekilde almanın mümkün olduğunu daha önceki yazılarımızda belirtmiştik. Şimdi kullanımını inceleyelim;


$deger = mosGetParam('istek türü', 'deger', 'önceden tanımlanmış değer');



istek türleri bilindiği üzere;

$_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE, $_FILES, $_ENV dir. Şimdi örnek üzerinde kullanımını açıklayalım. Bir formumuzdan gelen verileri almak istiyoruz. Formumuzun hareket türü POST olsun. O zaman formun gönderildiği fonksiyonun (veya dosyanın) ilk satırlarına şöyle bir kod yazmamız gönderilen verinin güvenli bir şekilde alınmasını sağlayacaktır;


$deger = mosGetParam($_POST, 'deger');



Eğer bu değer rakamsal bir değer ise veriyi daha güvenli yapmak için intval kullanabiliriz;


$deger = intval(mosGetParam($_POST, 'deger'));



Eğer bu değer rakamsal değil ise strval kullanabiliriz;


$deger = strval(mosGetParam($_POST, 'deger'));



Kısacası "mosGetParam" formlarımızda güvenlik için muhakkak kullanmamız gereken bir fonksiyondur.

joomla.php içerisindeki bir diğer fonksiyon mosStripslashes fonksiyonu olup bu fonksiyona gönderilen metnin içerisindeki kesme işaretlerini kaldıracaktır. Örneğin;


$yazi = "Benim Adım Soner Ekici";



    $yazi = mosStripslashes($yazi);

    echo $yazi;



Bu kodlar şöyle görünür; "Benim Adım Soner Ekici"

Başka bir fonksiyon olan mosReadDirectory fonksiyonu ile bir dizinin içerisindeki dizinleri listeletebiliriz. Fonksiyonun kullanımı şu şekildedir;


mosReadDirectory('ana dizin', 'filtrelenecek sey', 'alt dizinlerin gosterme', 'tam yolu gosterme');



Örneğin joomla adında bir dizinimiz olsun ve bunun içerisindeki alt dizinleri listeletelim;


$dizinler = mosReadDirectory('joomla', '', 1, 0);

    $liste = array();

    foreach($dizinler as $dizin) {

    $liste[] = mosHTML::makeOption($dizin, $dizin);  

    }



    $listele = mosHTML::selectList($liste, 'dizin', 'class=inputbox', 'value', 'text');

    echo $listele;



Biraz daha detaya inelim ve sitemizin ana dizinine uygulayalım ve sadece php uzantılı dosyaları göstertelim;


global $mainframe;



    $anadizin = $mainframe->GetCfg('absolute_path');



    $dizinler = mosReadDirectory($anadizin, '.php', 1, 0);

    $liste = array();

    foreach($dizinler as $dizin) {

    $liste[] = mosHTML::makeOption($dizin, $dizin);  

    }



    $listele = mosHTML::selectList($liste, 'dizin', 'class=inputbox', 'value', 'text');

    echo $listele;



Joomla içerisinde yönlendirme yapmaya yarayan mosRedirect fonksiyonunu kullanmak oldukça kolaydır. Hemen örnekle açıklayalım;


$deger = 0;



    if ($deger) {

    mosRedirect('index.php', 'Değer 1 olduğu için buraya yönlendirildiniz');

    }



Yukarıdaki kodlarda $deger = 1; yaparsanız sayfa index.php ye yönlenecek ve size "Değer 1 olduğu için buraya yönlendirildiniz" diye bir uyarı mesajı gösterilecektir. Eğer fonksiyonu;


mosRedirect('index.php ');



olarak değiştirirseniz size hiçbir uyarı mesajı gösterilmeden direkt olarak index.php ye yönlendirileceksiniz.

Bir diğer fonksiyon mosErrorAlert fonksiyonudur. Kullanımı şu şekildedir;


mosErrorAlert('Uyarı mesajı', 'mesaj onaylanınca yapılacak işlem', 'uyarı modu');



Hemen örnek ile açıklayalım. Bir formumuz var ve gönderilen veri boş gönderilmişse kişinin form sayfasına geri gitmesini sağlayalım.


$deger = intval(mosGetParam($_POST, 'deger'));



    if (!$deger) {

    mosErrorAlert('Eksik bilgi girmişsiniz', 'window.history.go(-1);', '2');

    }



Bunu biraz daha sadeleştirelim ve hata gösterimini farklılaştıralım;


if (!$deger) {

    mosErrorAlert('Eksik bilgi girmişsiniz');

    }



İki kodun arasındaki ve gösterimlerindeki farkı gördüğünüzü varsayıyorum.
  • Etiketler;
Yorum Yaz

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

Yukarı Git