BaseTheme

BaseTheme, CoreDB\Kernel\BaseController sınıfından kalıtım alır.
BaseController tarafından sağlanan metodlar ise şu şekildedir.

render() metodu twig şablon motoru ve twig kullanarak sayfanın HTML kodunu oluşturur.
getTemplateFile() metodu kullanılacak olan twig dosyasının adını belirtmelidir. Varsayılan olarak "page.twig" dosyası kullanılır.
checkAccess() metodu sayfanın erişim kontrolünün yapılması içindir. Yönlendirici (Router) tarafından kontrol edilir. Eğer "false" belirtilir ise "403" erişim engellendi sayfası gösterilir.
printMessages() metodu createMessage() metodu ile oluşturulan mesajların sayfada görüntülenmesini sağlar.

addJsFiles() metodu sayfaya urlsi belirtilen javascript dosya(sı)(ları)nı ekler. Bunlar <script></script> etiketleri ile sayfaya yazdırılır.
Örnek kullanım: 
$this->addJsFiles("dist/_global/_global.js");

addMetaTag() metodu sayfaya metataglari eklemek için kullanılır.
Örnek kullanım:
$this->addMetaTag("charset", [
"charset" => "utf-8"
]);

addJsCode() metodu sayfaya saf javascript eklemek için kullanılır.
Örnek kullanım:
//Google analytics entegrasyonu
$this->addJsCode(
"window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-********-*');"
);


addCssFiles() metodu sayfaya css dosyaları eklemek için kullanılır. Eklenen dosyalar <link rel='stylesheet'> etiketi ile sayfaya eklenir.
$this->addCssFiles([
"dist/_global/_global.css",
"dist/icons/icons.css"
]);

addFrontendTranslation() metodu sayfada javascrit tarafına çeviri yayınlanmasını sağlar.
Örnek kullanım:
$this->addFrontendTranslation("yes");

BaseTheme tarafından kontrolcü sınıflar için bir yaşam dögüsü processPage metodu ile tanımlanmıştır.
public function processPage()
{
$this->buildNavbar();
$this->buildSidebar();
$this->addDefaultMetaTags();
$this->addDefaultJsFiles();
$this->addDefaultCssFiles();
$this->addDefaultTranslations();
$this->preprocessPage();
$this->render();
}


buildNavbar() metodu istenen tema sınıfında ezilerek navbar kısmına yeni ögeler eklenebilir ya da yeni bir navbar oluşturulubilir.
Aynı şekilde buildSidebar() ile sidebar değiştirilebilir.
addDefaultMetaTags(), addDefaultJsFiles(), addDefaultCssFiles(), addDefaultTranslations() tema tarafından sağlanan varsayılan değişkenleri kontrolcü sınıflara yükler.
preprocessPage() metodu ise sayfa yüklenmeden önce kontrolcü sınıf üzerinde yapılması gereken kontrollerin bulunduğu yerdir. Kontrolcü sınıf işlemleri (Form oluşturmak, mesaj oluşturmak, e-posta göndermek gibi.) burada yapılır.

processPage() metodu istenildiği takdirde ezilerek yeni bir yaşam döngüsü CustomTheme ya da oluşturulacak başka temalar için kurulabilir.