Modül mantığı
Zonely modülleri ZIP paket olarak yüklenir. Panel, paketi doğrular ve uygun ise seçilen alan adına uygular. Genel akış:- Modül ZIP olarak hazırlanır.
- Panel ZIP içeriğini kontrol eder.
- Modül seçilen alan adına uygulanır.
- Gerekirse şablon değişiklikleri devreye alınır.
Herkese Açıkişaretlenirse topluluk listesinde görünür.
Güncelleme mantığı
Mevcut bir modülü güncellemek için modül kimliği (id) aynı kalmalıdır.
- Aynı
idile yükleme yapılırsa panel bunu güncelleme olarak işler. - Sürüm (
version) arttırılarak değişiklik takibi yapılır. - Yapımcı, açıklama, sürüm gibi bilgiler paket içindeki config dosyasından okunur.
ZIP yapısı
ZIP içinde en az bir config dosyası bulunmalıdır:Şablon kuralları
- Şablon tarafında
.tplformatı kullanılmalıdır. - Tema yolları doğru ve tutarlı olmalıdır.
- Yeni şablon ekliyorsanız tema yapısına uygun klasöre koyun.
Route bağlantısı
Yeni eklenen bir şablonun çalışması için route tarafında çağrılması gerekir. Örnek frontend route:Mevcut dosyada değişiklik yaklaşımı
Modül güncellemelerinde en güvenli yöntem:- Hedef dosyayı aynı relatif yol ile modüle eklemek.
- Sadece gereken bölümü değiştirmek.
- Gereksiz geniş değişiklikten kaçınmak.
API kuralları (genel)
Modül API dosyaları modül paketi içinde tanımlanmalı ve action bazlı kullanılmalıdır. Temel prensip:- Her action açık şekilde tanımlı olmalı.
- Method (GET/POST vb.) net belirlenmeli.
- Cevaplar standart JSON formatında dönmelidir.
- Hata durumunda tutarlı hata mesajı dönülmelidir.
API çağrısının çalışması için gerekenler
Bir modül action çağrısında:module_idveactiongönderilmelidir.- İlgili action, modül config içinde tanımlı olmalıdır.
- Modül ilgili alanda aktif olmalıdır.
- Method kuralı ile çağrı methodu uyumlu olmalıdır.
- Action private ise yetkili oturum gereklidir.
Örnek modül yapısı
Örnek config.json
Örnek widget dosyası
Örnek API dosyası
Frontend tarafında API çağrısı
Hata dönüşleri
Panel yükleme veya çağrı sırasında hata döndürdüğünde genelde şu alanlar kullanılır:Kısa kontrol listesi
Yayın öncesi kontrol:- Config dosyası mevcut mu.
- Modül kimliği ve sürüm doğru mu.
- Şablon yolları tema yapısıyla uyumlu mu.
- API action tanımları eksiksiz mi.
- JSON cevap formatı düzgün mü.
- Modül doğru alan adı ve doğru tema için test edildi mi.
