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

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.

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 meta etiketlerini de html içerisine koyabiliriz. Örneğin;


$mainframe->addMetaTag('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.
  • Etiketler;
Yorum Yaz

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

Yukarı Git