Ready Theme Integration



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 bu dizinin oluşturulamamışsa kendiniz oluşturabilirsiniz.

 

 

# Kurulum


Minimum 5.7.0 ve üzeri sürümler için Mazbaha 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


String run(String $theme = 'Default', String $location = 'project')
String runDelete(String $theme = 'Default', String $location = 'project')
String extract(String $which = 'all', String $case = 'title', String $location = 'project')
String extractForce(String $which = 'all', String $case = 'title', String $location = 'project')
String extractDelete(String $which = 'all', String $case = 'title', String $location = 'project')
This application(String $project)
This location(String $location)
This defaultProjectFile(String $path)
This cleanComments(Void)

 

 

# 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.

Dizin: Projects/Any/Butchery/
Parametreler
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

Kesime Hazırlama

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

Uyarı: Tema ayırma işlemi ilk .html uzantılı dosyayı bulunca başlar. Eğer tema dosyalarınız bir dizin içerisinde yer alıyorsa o temanın üst dizinlerinde .html uzantılı dosya bulunmamalıdır.
Kullanımlar

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 
Devtools Kullanımı

Aşağıdaki devtools menüsü kullanarak da tema entegrasyonu yapabilirsiniz. 

URI: Devtools/integration

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.

Tezgahı Temizleme

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.

Dizin: External/Butchery/

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
Kesime Hazırlama

Bu dizinin içeriği aşağıdakine benzer bir yapıda olmalıdır.

External/Butchery/

hospital.zip
business.zip
school.zip

Kullanımlar
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.

Kesime Zorlama

Çı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
Tezgahı Temizleme

Çı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 Kullanımı

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.

URI: Devtools/

Devtools ile entegrasyon yaparken dikkat edlmesi gerekenler;

External/Butchery/ dizininde en az 1 tema bulunmalıdır.