Z
Eklenti ve Tema Geliştirme

Zenito eklenti yapısı: klasörler, addon.json ve ilk eklenti

  • ZntLabs
  • 0 cevap
  • 1 görüntülenme
Z
Üye
Yönetici
  • Katılım14 Eki 2026
  • Mesajlar11
  • Tepki puanı0
#1
Zenito'da eklenti yazmak isteyenler için temel yapıyı özetliyorum. Yapı XenForo'ya çok benziyor, oradan gelen biri hemen alışır.

Klasör yapısı

Her eklenti src/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/EklentiAdi

addon.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;
Böylece _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'e js/ 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.

Benzer konular

Cevap yazabilmek için giriş yapmalı veya kayıt olmalısınız.

Şu an bu konuyu okuyanlar

0

0 üye, 0 ziyaretçi ve 0 arama motoru