Master Page nedir? PHP ile Master Page Nasıl Yapılır? (Uygulamalı)

Merhaba PHP’ciler. Uzunca bir aradan sonra bu ilk PHP makalemizde bugün Master Page kavramından ve PHP ile nasıl Master Page proje yapılabileceğinden bahsedeceğim.

Microsoft Visual Studio platformunda daha doğrusu ASP.Net ile uygulama gelişirenler Master Page kavramına aşinadır fakat bilmeyenler için yine de bahsetmekte fayda var. Web projeleri genel olarak 2 bölümden oluşur.

  1. Statik (sabit) alanlar
  2. Dinamik (değişen) alanlar

Statik alanlar bildiğiniz üzere web projesinin belli başlı yerlerinde tasarımın neredeyse hiç değişmediği alanlardır. (Banner yada menü alanları gibi.) Dinamik alanlar ise sürekli değişen alanlardır. (İçerik alanı gibi.)

Her ne kadar kullanmasam da MS Visual Studio bu soruna kendi içerisinde bir seçenek ile çözümü geliştiricilere sunuyor ve yapıyı kendisi oluşturuyor. Fakat PHP’de belli başlı platform olmadığı için (Ne olursa olsun PHP candır… :-)) bu Master Page yapısını geliştiricilerin kendileri kurmak ve yönetmek zorundadırlar. Aslına bakarsanız az sonra kodlamaya geçince bahsedeceğim yöntem ile PHP ile Master Page çok ta zor değil.

Neyse sözü fazla uzatmadan biz icraate geçelim. 🙂

Öncelikle bir tasarım yapıyoruz. (Div yada tablo ile hiç fark etmez. Fakat tasarımın yapısını Div ile oluşturursanız başınız ağrımaz.)

Daha önceden ben divler ile ve CSS kullanarak HTML de yazdığım divleri biçimlendirerek tasarımımı 3 bölüm halinde oluşturdum. (Banner, menü, içerik alanları.)

<div class="ana">


<div class="banner"></div>


<div class="menu"></div>


<div class="icerik"></div>


</div>

Tasarımımızı oluşturduktan sonra şimdi sıra geldi kodlamaya…

Yalnız koda başlamadan öncelikle PHP ile Master Page kavramının mantığını anlatayım. Çok eski bir yazımızda PHP ile sayfalar arası verilerin nasıl aktarılabileceğini anlatmıştım. Bu uygulamada da bir veri aktarım metodu olan GET’i kullanacağız. Verimizi de çektikten sonra o veriye karşılık gelen sayfayı herhangi bir kontrol mekanizması kullanarak Master Page’imize dahil edeceğiz.

İlk olarak kendimize GET ile çekebileceğimiz bir değişken belirliyoruz. Ben “Sayfa” olarak kararlaştırdım, siz de kendi istediğiniz değişkeni kullanabilirsiniz. Ardından menü bölümünde bulunan linklere “?Sayfa=SayfaAdı” şeklinde linkler yerleştiriyoruz.

<div class="menu">

Burası menü </br></br>
 <a href="?Sayfa=Sayfa1">Sayfa 1 </a></br>
 <a href="?Sayfa=Sayfa2">Sayfa 2 </a></br>
 <a href="?Sayfa=Sayfa3">Sayfa 3 </a></br>

</div>

Linklerimizi oluşturduktan sonra da gelelim içerik bölümüne..

Daha önce de bahsettim. “Sayfa” değişkenini Master Page tarafında GET metodu ile çekeceğim.

$Sayfa = $_GET['Sayfa'];

Değişkeni çektikten sonra da içindeki değere göre “include()” deyimini kullanarak çektiğimiz değer hangi sayfaya ait ise o sayfayı Master Page’imizdeki içerik alanına dahil edeceğiz.

Çektiğimiz veriye ait olan sayfayı eklemek için de bir kontrol mekanizması olan Switch-Case’i kullanacağım. Dilerseniz Switch-Case yerine if mekanizmasını da kullanabilirsiniz fakat bu gibi uygulamalarda Switch-Case kullanmanız daha mantıklı.

Gelen  veriyi kontrol etmeden önce o sayfa verilerine ait alt sayfalar oluşturalım. Ben Sayfa isimli bir klasör oluşturdum ve uygulamamızda 4 farklı sayfa kullanacağımızdan 4 adet sayfa oluşturdum.

GET ile sayfa bilgisi verimizi çektikten sonra Switch-Case kullanarak o veriye ait sayfayı include() deyimi ile içerik alanımıza dahil ediyoruz.

switch($Sayfa){

 case 'Sayfa1' : include('Sayfa/Sayfa1.php'); break;
 case 'Sayfa2' : include('Sayfa/Sayfa2.php'); break;
 case 'Sayfa3' : include('Sayfa/Sayfa3.php'); break;

 default : include('Sayfa/anaSayfa.php'); break;

 }

Ardından da yazdığımız kodu deniyoruz.

Ayrıca belirtmem gereken bir yer var. Switch-Case’de default olarak bir seçenek belirtebiliriz. Yani olur da çalışmamızda kullanıcılar tarafından URL manuel olarak yanlış girildiğinde kullanıcıyı, “Sayfa bulunamadı..” gibisinden bir hata sayfasına yönlendirebiliriz. Ben uygulamamızda hata sayfası yerine ana sayfaya yönlendirdim.

Son olarak ta include() deyimi ile ilgili bilmeniz gereken bir şey;

include() deyimi içine bir ana sayfaya dahil ettiğimiz alt sayfanın yolunda o sayfa bulunamazsa aşağıdaki gibi bir hata mesejı ile karşılaşabilirsiniz.

Warning: include(Sayfa/Sayfa33.php) [function.include]: failed to open stream: No such file or directory inC:\AppServ\www\blog\masterPageUygulama\index.php on line 62

Warning: include() [function.include]: Failed opening ‘Sayfa/Sayfa33.php’ for inclusion (include_path=’.;C:\php5\pear’) inC:\AppServ\www\blog\masterPageUygulama\index.php on line 62

Hata mesajını görünmesini engellemek için  include() un başına “@” karakteri koymamız gerekiyor. Fakat proje geliştirme aşamasında bu gibi hata mesajlarını engellemek hatayı bulmanızı zorlaştıracaktır.

Uygulamanın kaynak kodlarını da buradan indirebilirsiniz. İşte bu kadar basit. Hepinize bol PHP’li günler dilerim..

Bir önceki yazımız olan PHP Google Translate Eklentisi Hazırlama başlıklı makalemizde google translate, php ve php google translate sayfa çevirme eklentisi hazırlama hakkında bilgiler verilmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

*

code

%d blogcu bunu beğendi: