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/
|