Hazır Tema Entegrasyonu
"ZN Framework düzenlenebilir dizin yapısı ile kendi kod çatınızı oluşturmanıza imkan veren dünyadaki tek kod çatısıdır."
Mezbaha kütüphanesi ile ZN Framework temalarınızı tek bir komutla programlamaya uygun hale getiriyor. Hatta görünümlerin içerisinde yer alan linkler dahi otomatik olarak düzenleniyor. Artık tema entegrasyonunu sistem kendi yapacak temada yer alan sayfalar için kontrolcü ve görünüm hazırlamak veya varlıkları taşımak zorunda kalmayacaksınız.Tema entegre etmek artık bu kadar basit. Bunun için bu güncellemeyle birlikte proje dizini içerisine Butchery/ dizini getirilmiştir. Bu dizin projenize entegre edilecek tema dosyalarını barındıracak dizindir. Eğer sistem güncellemelerinden sonra Butchery/ dizini oluşturulamamışsa kendiniz oluşturabilirsiniz.
# Kurulum
Minimum 5.7.0 ve üzeri sürümler için Mezbaha kütüphanesi çekirdek paket olan package-zerocore paketi içinde yer aldığı için ZN OE, ZN SE ve ZN CE dağıtımları için aşağıdaki terminal güncelleme komutu kullanılarak kurulur.
↓ composer update
# Yöntemler
# Run / RunDelete (ZN >= 5.7.2)
Bu yöntem aşağıdaki yolda bulunan tema klasör veya dosyalarını kullanılan proje üzerinde tema entegrasyonunu gerçekleştirir.
5.7.0 | mixed |
$theme = 'Default' |
Tema içindeki gerekli kaynak dosyalarının Resources/Themes/ yolunda bulunan hangi dizin içerisine taşınacağı belirtilir. | |
5.7.0 | {name} | Tema dosyalarını sizin belirleyeceğiniz bir tema adına göre taşınır. | ||
5.7.3 | multiple | Projects/Any/Butchery/ dizini içerisine birden fazla tema eklemeniz durumunda bu temalar aynı proje içerisine görünümleri ayrıştırılacak şekilde çıkartılır. Theme::active() değerini değiştirerek istediğiniz temaya geçiş yapabilirsiniz. | ||
5.7.0 | string |
$location = 'project' |
Tema dosyalarının hangi lokasyona taşınacağı belirtilir. | |
project | Tema dosyaları Projects/Any/Resources/Themes/$theme dizini içerisine taşınır. | |||
external | Tema dosyaları External/Resources/Themes/$theme dizini içerisine taşınır. | |||
return | string |
Aşağıdaki dizin yapısına benzer bir temamız olduğunu varsayalım.
theme.zip
img/
css/
js/
less/
index.html
contact.html
about.html
blog.html
Entegre edeceğiniz tema dosyalarını içerisindeki .html dosyaları da dahil Butchery/ dizini içerisine taşıyın. Taşıma işleminde .zip uzantılı dosya da kullanabilirsiniz. Klasörler iç içe olabilir. Bu durumlar entegrasyonun çalışmasını engellemez.
Butchery/
theme.zip
Tema entegasyon işlemini bir kontrolcü veya terminal üzerinden başlatabilirsiniz.
Kontrolcü üzerinden;
Butcher::run();
Terminal üzerinden;
php zerocore run-butcher
komutları kullanılır.
Farklı bir tema dizinine taşıma yapmak için 1. parametreyi kullanabilirsiniz.
Butcher::run('Blue');
php zerocore run-butcher Blue
Projenin tema dosyalarını kendi içerisindeki Themes/ dizini yerine External/Resources/Themes/ dizine taşımak isterseniz 2. parametreyi kullanın.
Butcher::run('Blue', 'external');
php zerocore run-butcher Blue external
Aşağıdaki devtools menüsü kullanarak da tema entegrasyonu yapabilirsiniz.
Devtools ile entegrasyon yaparken dikkat edlmesi gerekenler;
● Hangi projeye entegrasyon yapılacağı üst menüden seçilmelidir.
● Tema dosyanız .zip uzantılı olmalıdır.
Bu yöntem Butcher::run() yönteminden farklı olarak tema entegrasyonu işleminden sonra Butchery/ dizininde yer alan tema dosyaları siler.
Butcher::runDelete();
php zerocore run-butcher-delete
# Extract / ExtractForce / ExtractDelete (ZN >= 5.7.2)
Çoklu proje tema entegrasyonun amacı her bir temanın Projects/ dizini içerisinde bir proje olarak oluşturulup teması ile birlikte hazır hale getirilmesidir. Bu işlem için tema dosyaları aşağıdaki yolda bulunur.
Parametreler
string | $which = 'all' | Hangi temaların çıkarılacağıdır. |
all | Tüm temaları proje haline dönüştürür. | |
{name} | Proje haline getirilecek temanın adı. | |
string | $case = 'title' | Çıkartılan temaların proje isimlerinin hangi yazım standartı ile oluşturulacağıdır. |
title | Çıkartılan proje isimlerinin ilk harfini büyük yapar. Örn: HospitalSite | |
slug | Çıkartılan proje isimlerinin tüm harfini küçük ve boşluk arasına tire ekler. Örn: hospital-site | |
lower | Çıkartılan proje isimlerinin tüm harflerini küçük harf yapar. Örn: hospitalsite | |
normal | Çıkartılan proje isimlerine herhangi bir müdahale yapılmaz. | |
{name} | Çıkarılan proje ismini kendiniz belirtebilirsiniz. Ancak bu seçenek $which parametresinin all seçeneği ile birlikte kullanılarsa her tema için verilen ismin sonuna sıra numarası koyulmak sureti ile çıkartılır. Örn: HospitalSite - HospitalSite, HospitalSite1, HospitalSite2 ... | |
{name:inc[start]} | Oluşturulacak proje dizinlerine start değerinden itiraberen artan sayı son eki eklemek için kullanılır. Örn: HospitalSite:inc[20] - HostpitalSite20, HospitalSite21 ... | |
{name:rand[min,max]} | Oluşturulacak aynı isimli proje dizinlerinin sonuna rasgele sayı ekletmek için kullanılır. Örn: HospitalSite:rand[1000,9999] - HospitalSite1032, HospitalSite7893 ... | |
return | string |
Bu dizinin içeriği aşağıdakine benzer bir yapıda olmalıdır.
External/Butchery/
hospital.zip
business.zip
school.zip
Butcher::extract();
php zerocore extract-butcher
Çıkarma işleminde aynı proje dizininden daha önce varsa tekrar çıkarma yapılmaz. Buna rağmen çıkarma işlemine zorlamak için aşağıdaki komut kullanılır.
Çıkarma işleminde aynı proje dizininden daha önce varsa tekrar çıkarma yapılmaz. Buna rağmen çıkarma işlemine zorlamak için aşağıdaki komut kullanılır.
Butcher::extractForce();
php zerocore extract-butcher-force
Çıkarma işleminden sonra External/Butchery/ içerisinde yer alan tema dosyalarını silmek için aşağıdaki kodu kullanabilirsiniz.
Butcher::extractDelete();
php zerocore extract-butcher-delete
Yukarıdaki komutlardan birinin çalıştırılması durumunda Projects/ dizininin içeriği aşağıdaki gibi görünecek.
Projects/
Hospital/
Business/
School/
Çıkarılan tema isimlerin harf dönüşümünü değiştirebilirsiniz.
Butcher::extractDelete('all', 'lower');
php zerocore extract-butcher all lower
Projects/
hospital/
business/
school/
Çıkarma işleminden sonra External/Butchery/ içerisinde yer alan tema dosyalarını silmek için aşağıdaki komutu kullanabilirsiniz.
Butcher::extractDelete();
php zerocore extract-butcher-delete
Devtools ile proje oluşturma esnasında External/Butchery/ dizininde hali hazırda var olan temalardan birini entegre edebilirsiniz. Devtools'un proje oluşturma ekranı olan anasayfaya var olan tema dizinlerinin listesi gelir. Bu listeden bir tema seçilip proje oluşturulursa o tema oluşturulan projeye entegre edilerek oluşturulmuş olur.
Devtools ile entegrasyon yaparken dikkat edlmesi gerekenler;
● External/Butchery/ dizininde en az 1 tema bulunmalıdır.