1 min read

CakePHP Tema Yapısı Oluşturma

Her framework’de en çok merak edilen ve ilk incelenen başlıklardan biri tema yapısıdır, çoğunlukla mobil ve web arayüzü için oluşturulan bu tema yapıları benim için mobilden çok zevk meselesi olan görünümü daha rahat kişiselleştirip genişletmek için önemlidir. Tabii karar sizin ben illa mobil için “640 x 480 web arayüzü yapcam yeaa” diyorsanız karar sizin. Çünkü günümüzde popülerleşen retina ekranlar ve çözünürlüğü pc’leri geçen telefonlar için artık bunlar önemini yitirmiş gözüküyor.

Konumuzdan biraz saptım asıl meseleye dönersek cakePHP 2.x sürümü için tema yapısından bahsedelim.. Her controller için bir klasör ve her metot için bir CTP  dosyası mevcuttur. CakePHP işleri bu şekilde yürütür.

Örnek olarak bir mobil teması oluşturalım;

AppController Sınıfımızın BeforeRender Metotuna kullanacağımız temayı söylüyoruz:

 function beforeRender() {
    // ... other code
    $this->view = "Theme"; //Themed Klasörünün 
    $this->theme = "Mobile"; //Mobile teması
  }

 

Bu kodları söyledikten sonra View/Themed/Mobile klasörünü oluşturup içine aşağıdaki dosyaları atabilirsiniz;

./app/Views/Themed
    /Mobile
        layouts/           <-- Default tema layouts
        elements/          <-- Şablonların yer aldığı yer
        webroot/
            css/           <-- Css dosyalarımızın yer aldığı klasör
             js/           <-- JS dosyalarımızın yer aldığı klasör
            img/
        Pages/              <-- Pages controllerinin metotlarının view dosyalarını içeren klasör

Böylelikle tema yapımız oluşmuş oldu. Burada sizlere bir şeye dikkat çekmek istiyorum, webroot dizinin altında kullanılan JS ve CSS dosyaları ilk etapta anadizinde yer alan webroot klasöründe aranır ancak bulunamadığı zaman tema içindeki webroot klasöründe aranır bu dosyalar.

İkinci bir dikkat edilmesi gereken nokta, her controller için oluşturulan klasör ve altında yer alan metot ctp dosyaları Layouts klasörünün altında olan default.ctp dosyasında toplanır ve ekrana gönderilir.