Ana ve Global Etiketler

Bu sayfadaki etiketler her şablonda çalışır: main.tpl dahil tüm .tpl dosyalarında kullanabilirsiniz. DLE bunları şablon her yüklendiğinde işler.

Koşul blokları

Bu etiketler bir bloğu sarar; koşul sağlanmazsa blok içeriği çıktıdan tamamen silinir. İç içe kullanılabilirler — bu yüzden güvenle birleştirebilirsiniz.

EtiketKoşul
[available=modul|modul2]Ziyaretçinin bulunduğu sayfa/modül listede mi? (ör. showfull, main)
[not-available=modul]Tersi
[group=1,2] · [not-group=5]Üyenin grubu listede mi? (5 = ziyaretçi) ve tersi
[country=tr,de] · [not-country=ru]Ziyaretçinin ülkesi listede mi? ve tersi
[tags=etiket1] · [not-tags=etiket1]Etiket bulutundan bu etiket mi görüntüleniyor? ve tersi
[news=12,15] · [not-news=12]Haberin kimliği listede mi? ve tersi
[page-count=1,2] · [not-page-count=1]Sayfa numarası listede mi? ve tersi (ör. yalnızca ilk sayfada reklam göstermek)
[active-plugins=X] · [not-active-plugins=X]Belirtilen eklenti etkin mi? ve tersi. X eklentinin kimliği veya adı olabilir; virgülle birden fazla yazılabilir.
[script]…[/script]İçeriği sayfanın JS listesine ekler (görünmez). Örnek kullanım: sayfaya özel bir script çalıştırmak.
[if …]Serbest karşılaştırma — aşağıda ayrı bölüm

Her birinin not- ile başlayan tersi de vardır. Kullanım: [group=1,2] … [/group] ve [not-group=5] … [/not-group].

[group] ve [category] gibi listelerde virgül "VE" değil "liste içinde" anlamına gelir; sayı aralığı da yazabilirsiniz: [category=1,2,7-10]. Yalnızca [custom] / [customcomments] koşullarında virgül "hepsi" (VE), dikey çizgi "herhangi biri" (VEYA) anlamına gelir — ayrıntısı Özel Bloklar sayfasında.

Cihaz koşulları

EtiketAnlamı
[smartphone]…[/smartphone]Akıllı telefon
[tablet]…[/tablet]Tablet
[tv]…[/tv]Televizyon / TV kutusu
[desktop]…[/desktop]Masaüstü bilgisayar
[android]…[/android]Android işletim sistemi
[ios]…[/ios]iOS (iPhone/iPad)
!
Cihaz etiketleri bağımsızdır — sıralama yoktur Bir iPhone'da hem [smartphone] hem [ios] aynı anda geçerlidir. Mobil/tablet/TV cihazlarda [desktop] geçersiz olur, ama [smartphone] bundan etkilenmez. Yani "şu önce gelir" diye bir kural yoktur; her etiket kendi bayrağına bakar. Ayrıntı: Akıllı Telefon Desteği.

Basit (tek başına) etiketler

Etiketİçeriği
{THEME}Seçili temanın tam adresi (css/js/görsel yolları için şart)
{cache-id}Önbellek kimliği
{page-title}Sayfanın meta başlığı
{page-description}Sayfanın meta açıklaması
{country}Ziyaretçinin ülke kodu
{news-id}Görüntülenen haberin ID'si
{cloudstag}Etiket bulutunda seçili etiket
{xfsearchtag}Ek alan aramasında aranan değer
{page-count}Geçerli sayfa numarası
{catnewscount id="5"}Belirtilen kategorideki haber sayısı

{page-title} ve {page-description} için blok sürümleri de vardır (başlık/açıklama varsa göster):

[page-title]
    <h1>{page-title}</h1>
[/page-title]
[not-page-title]
    <h1>Hoş geldiniz</h1>
[/not-page-title]

[page-description]
    <meta name="description" content="{page-description}">
[/page-description]
[not-page-description]
    <meta name="description" content="Varsayılan açıklama">
[/not-page-description]

Bu değerler yönetim panelindeki “Başlıklar, açıklamalar, meta etiketler” bölümünde sayfa başına tanımlanır. Tanımlanmamışsa {page-title} boş kalır ve [not-page-title] bloğu görünür.

Kategori etiketleri

Bir kategori sayfasındayken bu etiketler dolar:

Etiketİçeriği
{category-id}Kategori ID
{category-title}Kategori adı
{category-description}Kategori açıklaması
{category-url}Kategorinin SEF adresi
{category-icon}Kategori ikonu

Blok sürümleri: [category-description]…[/category-description], [not-category-description], [category-icon], [not-category-icon].

i
İkon yoksa varsayılan kullanılır Kategori ikonu tanımlı değilse DLE {THEME}/dleimages/no_icon.gif dosyasını kullanır. Bu yüzden [category-icon] bloğu neredeyse her zaman doludur.

Dil etiketi

{lang text="news_read"}

Bu etiket, dil dosyasındaki (website.lng) anahtarı basar. Sırayla $lang, zaman dilimi ve tarih dizilerine bakar; bulamazsa boş çıktı verir. Şablonda sabit metin yazmak yerine bunu kullanmak, çok dilli sitelerde metinlerin otomatik çevrilmesini sağlar.

Şablon birleştirme ve yorum

{include file="modules/sidebar.tpl"}
{include file="css/ozel.css"}
{include file="js/ozel.js"}

{* bu bir yorumdur, çıktıya girmez *}
YazımSonuç
{include file="x.tpl"}Alt şablon buraya derlenir
{include file="x.css"}Dosya, sayfanın CSS listesine eklenir
{include file="x.js"}Dosya, sayfanın JS listesine eklenir
{* yorum *}Çıktıdan tamamen silinir

Koşul motoru: [if …]

[if], serbest karşılaştırma yapmanızı sağlar. İç içe kullanılabilir.

[if xfield_fiyat > 100] … [/if]
[if category=5 and xfield_stok=var] … [/if]
[if xfield_baslik~"indirim"] … [/if]

Operatörler

OperatörAnlamı
=Eşit
!=Eşit değil
>, <, >=, <=Sayısal karşılaştırma
~İçerir (metin araması)
!~İçermez

Alan adları

YazımNeyi okur?
xfield_ALANHaberin ek alanı
date, editdate, lastdate, reg_dateTarih alanları (karşılaştırma için zaman damgasına çevrilir)
tagsHaber etiketleri
categoryHaberin kategorileri
diğer adlarHaber satırındaki ilgili sütun
✕
Üç önemli tuzak
  • == desteklenmez. Yalnızca tek = vardır. [if x= 5] yazarsanız değer yanlış okunur ve koşul beklenmedik sonuç verir.
  • Operatörsüz kullanım her zaman false'tur. [if xfield_x] çalışmaz. "Alan dolu mu?" kontrolü için [xfgiven_x]…[/xfgiven_x] kullanın.
  • and / or küçük harfle ve boşluklu yazılmalıdır. Ayrıca motor or'u önce ayırdığı için a and b or c gibi karışık kullanım güvenilir değildir. Gerekirse koşulu iç içe [if] bloklarına bölün.

Karşılaştırmalar büyük/küçük harf duyarsızdır ve değeri tırnak içine almak zorunlu değildir: [if status=aktif] ile [if status="aktif"] aynıdır.

Kelime çekimi: [declination]

{catnewscount id="5"} [declination={catnewscount id="5"}]haber|haber|haber[/declination]

Sayıya göre doğru kelime biçimini seçer. Kelimeler | ile ayrılır ve en fazla 3 biçim verilir. DLE'nin çekim kuralı Slav dilleri (Rusça) içindir; Türkçe'de çoğul eki olmadığı için genellikle tek biçim yazmak yeterlidir ([declination=5]haber|haber|haber[/declination]).

Dinamik bloklar ve hedefli etiketler

EtiketNe üretir?
{custom …}Kriterlerinize göre haber listesi — Özel Bloklar
{customcomments …}Kriterlerinize göre yorum listesi — Özel Bloklar
{catmenu …}Kategori menüsü — Kategori Menüsü
{banner_ETIKET} · [banner_ETIKET]Reklam kodu ve "reklam varsa göster" bloğu — Reklam Yönetimi
{inform_ETIKET}Dış RSS bilgilendiricisi — RSS Bilgilendirici
[static=SAYFA] · [not-static=SAYFA]Yalnızca belirtilen statik sayfada / sayfa dışında göster — Statik Sayfalar
i
{custom} ve {customcomments} ayrı sayfada Bu iki etiketin tam parametre listesi, sıralama/sabitleme seçenekleri, hangi sayfada gösterileceği ve blok koşulu mantığı (, = hepsi, | = herhangi biri) kendi sayfasında anlatılıyor: Özel Bloklar — {custom} ve {customcomments}.

Kullanıcı (üye) etiketleri

Oturum açmış üyeyle ilgili bu etiketler her şablonda doludur; en çok main.tpl içindeki üye panelinde ve kenar çubuğunda kullanılır. Ziyaretçi giriş yapmamışsa boş kalırlar — bu yüzden her zaman bir [not-group=5] veya [group=…] koşulu içinde kullanın.

Etiketİçeriği
{profile-link}Üyenin profil adresi
{profile-login}Üyenin kullanıcı adı
{foto}Avatar adresi
{fullname} + [fullname]Tam ad — blok sürümü yalnızca tanımlıysa görünür
{land} + [land]Ülke — blok sürümü yalnızca tanımlıysa görünür
{mail}E-posta adresi
{group}, {group-icon}Üye grubunun adı ve simgesi
{registration}, {lastdate}Kayıt tarihi ve son giriş
{time_limit} + [time_limit]Geçici üyelikte grupta kalınacak son tarih (sınır yoksa "sınırsız" metni)
{ip}Ziyaretçinin kendi IP adresi
{news}, {news-num}, [news-num], [not-news-num]Üyenin haberlerine bağlantı, haber sayısı ve "haberi var / yok" blokları
{comments}, {comm-num}, [comm-num], [not-comm-num]Üyenin yorumlarına bağlantı, yorum sayısı ve "yorumu var / yok" blokları
{rss}Üyenin haber RSS bağlantısı
{new-pm} + [new-pm]Okunmamış özel mesaj sayısı ve "okunmamış varsa" bloğu
{all-pm}Toplam özel mesaj sayısı
{favorite-count}Yer imlerindeki yayın sayısı
{admin-link} + [admin-link]Yönetim paneli bağlantısı — yalnızca erişimi olan grupta

Profil ek alanları

Üye ek alanlarını (Ek Alanlar) okumak için profile_ önekli etiketler kullanılır. X yerine alan adı yazılır.

Yazımİçeriği
[profile_xfvalue_X]Alanın değeri
[profile_xfgiven_X]…[/profile_xfgiven_X]Alan doluysa görünür
[profile_xfnotgiven_X]…[/profile_xfnotgiven_X]Alan boşsa görünür
[profile_xfvalue_X item="2"]Dinamik alanlarda 2. sıradaki değer
[profile_xfvalue_X format="d.m.Y"]Tarih/saat türündeki alanı biçimlendirir
[not-group=5]
    <div class="user-panel">
        <img src="{foto}" alt="">
        <a href="{profile-link}">{profile-login}</a>
        <span>{group}</span>
        [fullname]<span>{fullname}</span>[/fullname]
        <a href="?do=pm">Mesajlar [new-pm]<b>{new-pm}</b>[/new-pm]</a>
        [admin-link]<a href="/admin.php">Yönetim paneli</a>[/admin-link]
    </div>
[/not-group]

[group=5]
    <a href="?do=register">Kayıt ol</a> · <a href="?do=lostpassword">Parolamı unuttum</a>
[/group]
!
{ip} yanlış anlaşılıyor {ip}, sayfayı açan kişinin kendi IP adresidir; profili görüntülenen üyenin IP'si değildir. Yorum listesindeki {ip} ise yorumu yazanın IP'sidir ve yalnızca yetkili gruplara gösterilir.

Kontrol listesi

  • Görsel ve bağlantı yollarında {THEME} kullanıyorum (sabit yol yazmıyorum).
  • Çok dilli metinler için {lang text="…"} kullanıyorum.
  • Koşullarda == yerine = kullandım.
  • "Alan dolu mu?" için [if] değil [xfgiven_…] kullanıyorum.
  • Üye etiketlerini [not-group=5] gibi bir koşul içine aldım (ziyaretçide boş kalmasın).
  • Uzun şablonları {include file="…"} ile böldüm.
  • Yorumlar için {* … *} kullanıyorum.
  • {custom} bloklarını Özel Bloklar sayfasına göre yazdım.

Sırada: Haber Etiketleri.