Ana Sayfa Şablonu — main.tpl

main.tpl, sitenizin ana iskeletidir. Menü, kenar çubuğu, üst panel, alt bilgi buradadır. Diğer tüm şablonların çıktısı {content} yerine oturur — yani hangi sayfa açılırsa açılsın, ziyaretçi her zaman main.tpl'i görür.

KonuAyrıntı
İşleyen dosyaengine/modules/main.php
ÇıktıDoğrudan ekrana basılır ($tpl->result['main'])
Her sayfada mı?Evet — özel çıktılar (RSS, yazdırma) hariç

İskeletin temel etiketleri

Etiketİçeriği
{content} Sayfanın içeriği. Diğer tüm modüllerin çıktısı buraya oturur. Etiketi silerseniz site boş görünür.
{info} Sayfaya özel bilgi/hata mesajı (varsa).
{AJAX} Sayfanın ihtiyaç duyduğu satır içi JavaScript. Silmemelisiniz.
{THEME} Temanızın tam adresi. Görsel/CSS/JS yollarında kullanın.
{headers} Meta etiketleri ve stil/script bağlantıları. <head> içinde olmalı.
{jsfiles} Script bağlantıları. Bunu kullanırsanız {headers} yalnızca meta basar.
✕
Üç etiketi silmek siteyi bozar {content}, {AJAX} ve {headers} (veya {jsfiles}) etiketleri zorunludur. Özellikle {AJAX} silinirse oylama, favori, yorum düzenleme gibi tüm AJAX işlevleri sessizce çalışmaz hâle gelir.

Yerleşim blokları (widget'lar)

Bu etiketler, ilgili modül çalıştıysa dolar; çalışmadıysa boş kalır. Yani menüye koymadığınız bir widget boş bir kutu bırakır — bu yüzden her birini bir koşul bloğuyla sarmak iyi bir alışkanlıktır.

EtiketİçeriğiKaynak
{login}Giriş/üye panelilogin.tpl
{speedbar}Hız çubuğu (breadcrumb)speedbar.tpl
{calendar}Takvim / arşiv takvimicalendar.php
{archives}Arşiv listesiarşiv modülü
{tags}Etiket bulututagscloud.php
{vote}Sitedeki oylamavote.tpl
{topnews}Popüler / önemli haberlertopnews.tpl
{related-news}İlgili haberler (tam makale sayfasında)relatednews.tpl

Koşul blokları

BlokNe zaman görünür?
[navigation]…[/navigation]Sayfalama varsa. Yoksa [not-navigation] görünür.
[category=5]…[/category]Yalnız belirtilen kategoride
[not-category=5]Belirtilen kategori dışında
[static=hakkimizda]Yalnız belirtilen statik sayfada
[changeskin]…[/changeskin]Tema değiştirme izni varsa
[sort]…[/sort]Sıralama değiştirme açıksa
[custom=X]…[/custom]Özel haber bloğu koşulu
[customcomments=X]…[/customcomments]Özel yorum bloğu koşulu

Sayfalama ({navigation})

Haber listelerinde sayfalama iki etiketle gelir:

Etiketİçeriği
{navigation}Sayfalamanın kendisi (navigation.tpl çıktısı)
{newsnavigation}Haber navigasyonunun yerleşimi (haber modülüne özel)

Blok sarmalayıcısıyla birlikte en güvenli kullanım:

[navigation]
    <div class="pagination">
        {navigation}
    </div>
[/navigation]

Sosyal ağ blokları

Her sosyal ağ için bir koşul bloğu ve bir adres etiketi vardır. Adres tanımlı değilse blok otomatik gizlenir:

BlokEtiket
[vk]{vk_url}
[odnoklassniki]{odnoklassniki_url}
[facebook]{facebook_url}
[google]{google_url}
[mailru]{mailru_url}
[yandex]{yandex_url}
[telegram]{telegram_url}
[vk]
    <a href="{vk_url}" rel="nofollow">Bizi VK'da takip edin</a>
[/vk]

Reklam ve RSS bilgilendirici

Etiketİçeriği
{banner_GRUP}
[banner_GRUP]…[/banner_GRUP]
Reklam bloğu. GRUP panelde tanımladığınız grup adıdır.
{inform_AD} RSS bilgilendirici çıktısı. AD panelde tanımladığınız etikettir (informer.tpl üretir).

Favori etiketleri (giriş yapmış üyelerde dolar) main.tpl içinde de kullanılabilir: {favorites}, [add-favorites], [del-favorites]. Ayrıntı: Favoriler.

İşlem sırası (neden önemli?)

main.php şablonu şu sırayla işler — bir etiketin neden boş geldiğini anlamak için bu sıra işinize yarar:

  1. main.tpl yüklenir Global etiketler bu anda işlenir ([group], cihaz koşulları vb.).
  2. Hazır çıktılar bağlanır {calendar}, {archives}, {tags}, {vote}, {login}, {speedbar} — bunlar başka modüllerin ürettiği çıktılardır.
  3. Bloklar ve adresler set edilir İlgili haber, tema değiştirme, sıralama, popüler haber, sosyal adresler.
  4. {AJAX}, {info}, {content} bağlanır Sayfanın asıl içeriği burada yerine oturur.
  5. Şablon derlenir Tüm süslü parantezli etiketler tek seferde değiştirilir.
  6. JS/CSS listeleri tamamlanır İçeriğe göre kod vurgulama, galeri, tembel yükleme, oynatıcı gibi dosyalar eklenir.
  7. {headers} / {jsfiles} yerleştirilir Meta etiketleri ve script bağlantıları sayfaya basılır.
  8. {THEME} değiştirilir ve sayfa basılır Son olarak tema adresi yerine konur ve çıktı gönderilir.
★
Doğru yerleşim kalıbı Her widget'ı kendi koşuluyla sarmak, boş kutuları ve gereksiz "boş modül" sorgularını engeller:
[customcomments=pop]
    <aside class="widget">
        <h3>En beğenilen yorumlar</h3>
        {customcomments name="pop" order="rating" limit="5" cache="1h"}
    </aside>
[/customcomments]

Sık yapılan hatalar

HataSonuç
{content} silmekSite boş; sayfa içeriği hiç görünmez.
{AJAX} silmekOylama, favori, yorum işlemleri sessizce çalışmaz.
{headers}/{jsfiles} silmekMeta etiketleri ve script'ler kaybolur; sayfa bozulur.
Widget'ı koşulsuz koymakModül kapalıysa boş kutu kalır.
Görsel yollarında sabit adres kullanmakTema değiştirildiğinde görseller kırılır. {THEME} kullanın.

Kontrol listesi

  • {content}, {AJAX}, {headers} yerinde.
  • Tüm görsel/CSS/JS yolları {THEME} ile başlıyor.
  • Her widget bir koşul bloğuyla sarılmış.
  • Sosyal bloklar kullanılıyor ([vk] vb.), adresler tanımlı.
  • <head> içinde {headers} var (ya da {jsfiles} ayrı kullanılıyor).
  • Değişiklikten sonra önbellek temizlendi.