Silverstripe’i ilk kurdugumuzda bazi standard sayfa türleri ile gelir.
Sistemimizin gereksinime göre degisik sayfa türleri üretmemiz gereklidir.
Bugünki yazimizda SS’de baska bir sayfa türü nasil olusturulur ona bakacagiz.
Önce SS ile default olarak gelen sayfa türlerini taniyalim:
- Page:en temel sayfa türüdür.Ilerki yazilarda üretecegimiz tüm sayfalar bu türden olacaktir
- ErrorPage:Hata oldugunda gösterilicek olan sayfa. Degisik hatalara degisik sayfalar üretile bilinir. mesela 404 bulunamadi ile 403 erisim engellendi sayfalari degisik görüne bilinir
- RedirectorPage: Baska bir sayfaya veya Websitesine yönlendirmek icin kullanilir
- VirtualPage: baska bir sayfanin icerigini kullanir. Redirector sayfasindan bunu ayiran, sadece sitemiz icindeki sitelerde kullanilir ve icerigini kopyalar.
Kendi Sayfa türümüzü olusturalim
/mysite/code klasörü icinde Baslik, tarih, resim ve icerik eklene bilen bir sayfa türü üretelim, adinida ArticlePage koyalim.
/mysite/code/ArticlePage.php
<?php class ArticlePage extends Page { // Model static $db = array( 'Date' => 'Date', ); public static $has_one = array( 'Picture' => 'Image', ); function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab('Root.Content.Main', new DateField('Date'), 'Content'); $fields->addFieldToTab("Root.Content.Main", new ImageField('Picture')); return $fields; } } /* controller */ class ArticlePage_Controller extends Page_Controller { } ?>
Silverstripe MVC tasarim kalibini kullanmaktadir.
Silverstripe de olusturdugumuz her sayfa Model ve Controller kismini barindirmaktadir.
Her sayfa Page sayfasindan extend etmelidir.
static $db = array('Date' => 'Date',);
db degiskeninin özel bir islevi vardir, veritabani alanlari tanimlamak icin kullanilir.
Örnegimizde tarihi kaydetmek icin Date tipinde bir alan adi tanimladik.
has_one degiskeni her ArticlePage sayfamiza bir resim eklemesini söylüyor.
Bu baglantilara daha sonraki bir yazimizda daha detayli bakacagiz.
Gerekli alanlari tanimladikdan sonra bunlari Admin e eklememiz gerekiyor.
GetCMSFields ile bu isi yapa biliriz.
View kismina bakalim.
theme dosyamizda ArticlePage.ss adinda bir dosya olusturalim.
/themes/blackcandy/templates/Layout/ArticlePages.ss
<div> <h1>$Title</h1> <div>Date : $Date.nice</div> <div>$Picture</div> $Content $Form </div>
Model, view ve Controlleri tamamladikdan sonra adres satirina /dev/build/?flush=all yazip degisiklikleri kaydedelim.
Simdi Admin de yeni bir sayfa üretmek istedigimizde ArticlePage sayfamizi sece biliriz.
One comment
görünüşe göre silverstripe ile pek içli dışlı olmuşsun 😀