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

Real9

Katılımcı Üye
1 Kas 2009
322
0
Bu yazımızda daha çok fonksiyon öğrenip bunları kullanabilme becerisi kazanacağız. Bu yazımızdan sonra artık ufak tefek modüller, mambotlar ve bileşenler yazmaya başlayacağız. Böylece isteyen arkadaşlar modül ve bileşenler geliştirerek Joomla ya daha çok katkı sağlamış olacaklar. Bu yazımızda includes klasöründe bulunan joomla.php dosyasını inceleyeceğiz. Joomlanın birçok fonksiyonu ve sınıfını içerisinde barındıran joomla.php dosyasını tam olarak anlayabilmek tek bir yazıyla mümkün olmadığı için sizlere kodlamada en çok kullanılan sınıf ve fonksiyonları anlatacağım.

joomla.php içerisindeki birinci önemdeki sınıfımız (class) mainFrame' dir. mainFrame sınıfı içerisinde joomlanın çalışmasını sağlayan birçok fonksiyon barınmaktadır.

Bunlardan bir tanesi Joomla sitemizin sayfa başlığını oluşturan setPageTitle fonksiyonudur. Kullanımı da oldukça basittir. Örneğin bir bileşen yaptık ve sayfamızda o bileşenin linkine tıklandığında sayfa başlığının değişmesini istiyoruz. O zaman bileşenimizin ana dosyasının içerisine şöyle bir kod koyduğumuzda sayfa başlığının değiştiğini göreceksiniz.

global $mainframe; $mainframe->setPageTitle('Bileşenimizin Adı');

Aynı şekilde bileşenimizin **** etiketlerini de html içerisine koyabiliriz. Örneğin;

$mainframe->add****Tag('Yapımcı', 'Soner Ekici');

head etiketleri arasına bir kod koymak istersek addCustomHeadTag fonksiyonu bizim işimizi görecektir. Örneğin bileşenimizin bir css dosyası var ve bunu bileşenimizin linki tıklandığında html sayfasına ekletmek istiyoruz. O zaman bileşen ana dosyasına şöyle bir kod eklersek istediğimizi yapmış olacağız;

$html = "<link href=\"http://www.siteadresi.com/components/com_bilesen/css/style.css\" rel=\"stylesheet\" type=\"text/css\" />"; $mainframe->addCustomHeadTag($html);

Bu kod sayesinde css dosyalarını sadece kodu koyduğumuz sayfada çağırabilir ve böylece css çakışmalarının önüne geçmiş oluruz. Ayrıca bu kod ile ...etiketleri arasına gelen birçok javascript uygulamasının da çakışmasını engelleyerek sitemizin düzgün görünmesini sağlayabiliriz. Bu kodun bir diğer faydalı tarafı ise sitemize çağırdığımız dosya sayısını azaltarak sitemizin açılış hızını arttırabilmemizdir.


Bir diğer faydalı fonksiyon ise sitemizin ayar dosyası olan configuration.php dosyasındaki verileri çekebilen getCfg fonksiyonudur. Örnek verecek olursak, sitemizin adresini belirten $mosConfig_live_site ve sitemizin dizinini söyleyen $mosConfig_absolute_path değerlerini tek bir global tanımlayarak çekelim.

Normalde şöyle bir kod yazımı hatalı olmamakla birlikte fazla kod yazmış olmamız nedeniyle işimizi uzatır;

<?php global $mosConfig_live_site, $mosConfig_absolute_path; echo "Sitemizin Adresi :".$mosConfig_live_site; echo "<br />"; echo "Sitemizin Ana Dizini :".$mosConfig_absolute_path; ?>

Bu kod yerine şöyle bir kodlama yapmak daha doğru olacaktır.

<?php global $mainframe; echo "Sitemizin Adresi :".$mainframe->getCfg('live_site'); echo "<br />"; echo "Sitemizin Ana Dizini :".$mainframe->getCfg('absolute_path'); ?>

$mainframe->getCfg() fonksiyonu ile configuration.php içerisindeki herhangi bir değeri alabilmek mümkündür.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.