İçeriğe geç
HisarBlok
Menü
EN

HisarBlok · belgeler

Modüller

Blog, forum, formlar, üyelik: HisarBlok'ta her büyük parça bir modüldür ve site başına açılıp kapanır. Çekirdeğin modülleri de sizin yazacağınız modülle tamamen aynı arayüzü kullanır.

Tüm belgeler

Sürüm 0.13.1 için.

Kutudan çıkan modüller

ModülNe yaparVarsayılan açık
pagesMarkdown ile yazılan ya da bloklardan kurulan sayfalarevet
blocksSayfaların kurulduğu standart blok türlerievet
mediaGörsel kitaplığı: yeniden kodlama, üst veri silme, boyutlandırma, WebPevet
redirectsEski adresleri yaşatır; gerçek 301 kuralı dışa aktarırevet
announcementsAna sayfada kısa duyurularevet
blogTarihli yazılar, etiketler, sayfalı dizin, beslemelerhayır
menuSite menüsünü panelden düzenlemehayır
searchTarayıcıda aranan statik dizinhayır
formsBlok olarak iletişim ve kayıt formlarıhayır
commentsSayfa ve yazı altında, önce onaylanan yorumlarhayır
forumKategori, konu, yanıt; statik sayfalarhayır
membersDoğrulanmış e-postalı ziyaretçi hesaplarıhayır
downloadsÜrün, sürüm, dosya, sayılan bağlantı, sağlama toplamıhayır

Açmak ve kapatmak

Her modül site başına panelin Modüller ekranından açılır ya da kapanır. Kapalı bir modül yüklenmez, kanca kaydetmez ve hiçbir şey sunmaz; siteye yazdığı dosyalar kalkar. Verisi ise kalır: yeniden açıldığında kaldığı yerden sürer. Kaldırma sırasında sitenin kökü, bir dilin kökü, yüklenen medya, temanın dosyaları ve başka bir modülün alanı hiçbir zaman silinmez.

Roller: bir modülü değiştirmek

forum, members ve downloads birer roldür. Bir rolü yalnız bir modül üstlenebilir: aynı rolü bildiren kendi modülünüzü açtığınızda, o rolü tutan modül kapanır. Böylece iki indirme yöneticisi birbirinin üzerine yazmaz ve bir sitenin bizim modülümüzü kendi modülüyle değiştirmesi mümkün olur.

Kendi modülünüz

Bir modül, modules/ altında bir klasör ve bir module.json bildirimidir:

modules/benimisim/
  module.json            bildirim (gerekli)
  src/module.php         yalnız modül o sitede açıkken yüklenir
  migrations/001-x.sql   her biri bir kez, sırayla uygulanır
  migrations/001-x.mysql.sql   aynı şema MySQL/MariaDB için
  themes/block-x.php     modülün bloklarının şablonları; her tema adıyla geçersiz kılabilir
  lang/tr.json           modülün kendi metinlerinin çevirisi

Bildirim modülün hangi tablolara ve yollara dokunduğunu, hangi dosyaları ürettiğini, hangi modüllere ihtiyaç duyduğunu ve hangi rolü üstlendiğini söyler. hisarblok make:module <ad> bütün bunların çalışan bir iskeletini yazar: bildirim, formlu ve silmeden önce soran bir panel ekranı, iki SQL lehçesinde bir tablo, bir kanca, Türkçe çeviri tablosu ve kendi testi.

Bir modülün yapabildikleri:

  • panel ekranı ve menü grubu eklemek (her ekran bir yetki bildirir; rol adı sınanmaz),
  • sayfa bloğu eklemek,
  • sayfa ve dosya yazmak (sitenin sahiplik kurallarına uyarak),
  • ziyaretçiden form almak: yalnız go.php üzerinden, ortak korumaların arkasında,
  • ziyaretçiye sayılan bağlantı vermek: get.php üzerinden,
  • kancalarla çekirdeğin davranışına katılmak ve işlem günlüğüne yazmak.

Güvenli modül kuralları

  • Ziyaretçiden gelen her şey güvenilmezdir: h() ile kaçışlayın, metni HTML'e yalnız markdown() ile çevirin, bağlantıyı javascript: ve data: adreslerini reddeden yardımcıyla kurun.
  • Panel formları CSRF jetonu taşır ve işleyici onu önce denetler.
  • Yalnız üzerinde çalışılan siteyle çalışın; istekten gelen bir kimliğin o siteye ait olduğunu sorguda denetleyin. Bir hesap bazı sitelere sınırlanmış olabilir.
  • Ziyaretçi uç noktasında oturum yoktur: hız sınırı kullanın, ziyaretçiyi adresiyle değil tuzlu bir özetle tanıyın, mümkünse kayıt yerine toplam saklayın.
  • Belge köküne yazılan dosyalar olduğu gibi sunulur: web sunucusunun çalıştıracağı hiçbir şeyi kabul etmeyin.