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.
| Etiket | Koş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ı
| Etiket | Anlamı |
|---|---|
[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) |
[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].
{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ım | Sonuç |
|---|---|
{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ör | Anlamı |
|---|---|
= | Eşit |
!= | Eşit değil |
>, <, >=, <= | Sayısal karşılaştırma |
~ | İçerir (metin araması) |
!~ | İçermez |
Alan adları
| Yazım | Neyi okur? |
|---|---|
xfield_ALAN | Haberin ek alanı |
date, editdate, lastdate, reg_date | Tarih alanları (karşılaştırma için zaman damgasına çevrilir) |
tags | Haber etiketleri |
category | Haberin kategorileri |
| diğer adlar | Haber satırındaki ilgili sütun |
==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/orküçük harfle ve boşluklu yazılmalıdır. Ayrıca motoror'u önce ayırdığı içina and b or cgibi 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
| Etiket | Ne ü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 |
{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}, 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.