MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

Basit bir sablon (template) tabanli site ornegi. Yazar: Oktay Altunergil Tarih: 01/04/02

Site basitce iki bolumden olusuyor. Ilk bolum sitenin genel gorunusunu belirleyen sablon sayfasi. Diger bolum ise sitenin icerik bolumlerini olusturacak olan eklenti dosyalarindan olusuyor.

Sablonu hazirlarken yapilmasi gereken, dinamik icerik sayfalarina yer birakacak sekilde sitenin genel duzenini hazirlamak. FreeLinuxCD.org sitesinin sablonunda bu is icin buyuk bir ana tablonun sol tarafindaki buyuk bir tablo hucresi icerik alani olarak ayrilmis bulunuyor. Bu alan haric sitenin sablon kullanan her sayfasi ayni gorunume sahip.

Bu sablon dosyasina index.php adini vermek en kolay yontem. Dosyanin en basinda icerik dosyalarinin uzantisinin ne oldugunu belirtiyoruz.

> # extension : uzanti
> $extension = "php";
> if(!$page) $page = "index.$extension"; else $page = "$page.$extension";

Yukarida gordugumuz gibi su anki sitemizde icerik dosyalarinin php uzantili olmasi bekleniyor.Eger sizin web sunucunuz kontrolunuz altinda degil ve php taninan uzantilardan biri degilse yukaridaki $extension degiskeninin degerini phtml, php4, php3 gibi degistirerek kullanmak da mumkun. Tabi ki bunu yaptiginizda icerik dosyalarinin uzantilarini da ayni sekilde yaratmaniz gerekiyor.
Yukaridaki kisa kodu yaptigi bir baska sey ise eger hic bir sayfa adi verilmemis ise index.php sayfasini cagirmak.

Sitenin her sayfasi bu sablon dosyasi araciligiyla olusturuluyor. Yani butun sayfalarin url'sinde index.php var. Gidilen sayfanin icerigini $page degiskeni belirliyor.

> http://www.freelinuxcd.org/ // ana sayfa (index.php)
> http://www.freelinuxcd.org/?page=index //ana sayfa (index.php) alternatif yontem
> http://www.freelinuxcd.ogr/?page=getcd // getcd sayfasi. Icerik hucresi getcd.php sayfasindan

Sitemizde kolaylik olsun diye icerik sayfalarini index.php'nin oldugu dizinin altindaki 'pages' dizininde tutuyorum. Boylece icerik degistirilmesi gerektiginde pages dizinine gidip gerekli dosyayi degistirmek yeterli oluyor.

Simdi icerik alani olarak ayirdigimiz tablo hucresinin icine yazilacak ve icerik sayfasini cagirmaya yarayacak koda bir goz atalim.

> <?
> if(file_exists("pages/$page"))
> {
> include ("pages/$page");
> }
> else
> {
> include ("pages/error_document.php");
> }
> ?>

Ilk once $pages degiskeni ile gecirilen sayfa adinin icerik sayfalarini sakladigimiz pages dizininde olup olmadigina bakiyoruz. Eger bu dosya mevcut ise icerik alaninda onu 'include' ediyoruz. Eger sayfa mevcut degil ise icerik alanina ozel olarak hazirladigimiz hata mesaji sayfasi (error_document.php) 'nin icerigi yaziliyor. Bu sayfada ne diyeceginiz size kalmis. Aradiginiz sayfaya ulasilamadi gibi bir mesaj yeterli olacaktir. Dikkat ettiginiz uzere aldigimiz bu tedbirlerle mevcut olmayan bir sayfa adi verilmesi halinde dogabilecek sorunlari engellemis oluyoruz. En kotu ihtimalle kendi dizayn ettigimiz bir hata sayfasina ulasilacak. Hata halinde index.php dosyasina da yonlendirme yapabilirdik ama bunun kullanicinin kafasini karistirma tehlikesi var.

Bir de bu icerik dosyalarinin nasil dizayn edilmesi gerektigi konusuna deginelim. Bu sistemin guzelligi, icerik dosyalarinin bir ozelligi olmasinin gerekmedigidir. Ornegin;

> <!-- error_document.php icerigi-->
> Yanlis bir sayfa adi girdiniz. Lutfen yaraticiliginizi bir yana birakip linkleri kullaniniz.

seklindeki bir error_document.php sayfanin icerik alaninda istediginiz uyari mesajini gosterecektir. Bu icerik sayfasinda ne html, ne de php kullanmak gerekmedigine dikkat ediniz. Tabi ki <? ?> tag'leri icerisine koyacagimiz bir php kodu, veya html taglerini kullanarak dizayn edecegimiz bir alt sayfa da bu icerik sayfalarinda yer alabilir. Hatta bu icerik sayfalari kendileri de baska sayfalari icerebilir (boyle cok derine inen 'include' lar tavsiye edilmez)

Eger ilgileniyorsaniz FreeLinuxCD.org'u olusturan kodun tamamini https://sourceforge.net/projects/freelinuxcd/ adresindeki proje sayfasinda bulabilirsiniz.

Not: Bu makale baslangic seviyesindeki kullanicilarimiz icin hazirlanmistir. Web'de bulabileceginiz cok daha karmasik bir cok site sistemi bu ana prensip ile calisir. Bu cok basit sablonla site yonetimi ornegini gelistirerek cok daha iyi siteler hazirlamak mumkundur.

Oktay Altunergil
19 Agustos 2001
oktay@turk-php.com
http://www.turk-php.com/

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>