Zenito'da eklenti yazmak isteyenler için temel yapıyı özetliyorum. Yapı XenForo'ya çok benziyor, oradan gelen biri hemen alışır.
Böylece
Ayrıntılı belge Zenito paketindeki
Klasör yapısı
Her eklentisrc/addons/Firma/EklentiAdi/ altında duruyor. İki isim de büyük harfle başlamalı, sadece harf ve rakam içermeli. PHP namespace'i de klasörle aynı: Firma\EklentiAdi\...Kod
src/addons/Firma/EklentiAdi/
addon.json başlık, sürüm, gereksinimler
Setup.php kurulum / yükseltme / kaldırma adımları
Listener.php olay dinleyicileri
_data/ rotalar, seçenekler, izinler, şablonlar, ifadeler...
Pub/Controller/ ön yüz sayfaları
Admin/Controller/ yönetim paneli sayfaları
Entity/ Repository/ Service/İskeleti komutla oluşturun
Kod
php cmd.php addon:create Firma/EklentiAdi "Eklenti başlığı"
php cmd.php addon:install Firma/EklentiAdiaddon.json'da dikkat edilecekler
version_id her sürümde büyümeli; panel "Yükselt" düğmesini buna bakarak gösteriyor. 1.0.0 için 1000070, 1.0.1 için 1000170 gibi gidiyor. require kısmına minimum Zenito ve PHP sürümünü yazın.Çekirdeğe dokunmadan değişiklik
Zenito dosyalarını asla düzenlemeyin, ilk güncellemede gider. Bunun yerine üç yol var:- Olay dinleyiciler: 24 hazır olay var (kayıt tamamlandı, giriş yapıldı, konu açılmadan önce doğrulama, şablon kurulumu vb.).
- Sınıf genişletme: Çekirdek bir sınıfın arasına kendi sınıfınızı ekliyorsunuz. Birden fazla eklenti aynı sınıfı genişletebiliyor.
- Şablon değişiklikleri: Şablonu kopyalamadan bul-değiştir yapıyorsunuz, böylece güncellemede şablonunuz eskide kalmıyor.
Geliştirme modu
src/config.php içine şunları ekleyin:Kod
$config['debug'] = true;
$config['development']['enabled'] = true;_data içindeki şablon ve ifade dosyalarını değiştirdiğinizde bir sonraki sayfa açılışında veritabanına aktarılıyor. Bitince php cmd.php dev:check çalıştırın; derlenmeyen şablonları ve eksik ifadeleri listeliyor.Paketleme ile ilgili bir tuzak
Panelden zip ile kurulumda sadece eklentinin kendi klasörü açılıyor. Zip'ejs/ klasörü koysanız bile kopyalanmıyor. O yüzden CSS'i şablon olarak (.css), küçük JS'leri de şablonun içine yazmak en sorunsuz yol.Ayrıntılı belge Zenito paketindeki
docs/gelistirici-rehberi.md dosyasında. Sorularınızı bu konuya yazabilirsiniz.