Ek Alanlar — Yönetim Paneli

Ek alanlar, bir haberin ya da üyenin standart bilgilerine sizin eklediğiniz alanlardır: "Yönetmen", "Süre", "Kapak görseli", "Telefon" gibi. Bu bölüm, bu alanların tanımlandığı yönetim ekranlarını anlatır.

KonuAyrıntı
Haber ek alanlarıengine/inc/xfields.php → admin.php?mod=xfields
Üye ek alanlarıengine/inc/userfields.php → admin.php?mod=userfields
Yetkileradmin_xfields ve admin_userfields
DepolamaTanımlar: engine/data/xfields.json ve engine/data/userxfields.json
Değerler: veritabanında (haberlerde _post.xfields sütunu)
i
Alan tanımı ile alan değeri farklı yerlerde tutulur Alan tanımları JSON dosyalarında (okunabilir, yedeklenebilir, sürüm kontrolüne alınabilir), alan değerleri ise veritabanında yaşar. Bir alan tanımını silmek, o alana girilmiş değerleri veritabanından temizlemez.

Haber ek alanları — ?mod=xfields

Alan türleri

Tür (kod)Panelde görünen adNe için?
textTek satırKısa metin (ör. yönetmen adı)
textareaBirden fazla satırUzun metin
htmljsSaf HTML veya JS koduFiltrelenmeden basılacak kod — riskli
selectListeAçılır listeden tek (veya çoklu) seçim
imageYüklenen görselTek görsel yükleme
imagegaleryYüklenen görsel galerisiÇoklu görsel
videoYüklenen video çalma listesiVideo dosyaları
audioYüklenen ses çalma listesiSes dosyaları
fileYüklenen dosyaGenel dosya eki
yesorno'Evet' veya 'Hayır' anahtarıİki durumlu seçim
datetimeTarih ve saatTarih seçimi
!
htmljs türünü yalnızca yöneticilere verin Bu tür, habere filtresiz HTML/JS kodu eklenmesine izin verir. Panelin kendi açıklaması bile bu yetkinin yalnızca "Yöneticiler" grubuna verilmesini önerir. Yayın gönderebilen bir üye grubuna bu türü açarsanız, sitenize istediği kodu enjekte edebilecek bir yol açmış olursunuz.

Alan tanımındaki seçenekler

AlanPaneldeki adıAnlamı
nameAlan adıŞablonda kullanılacak ad. Latin harfleriyle, azami 30 karakter.
descriptionAlan açıklamasıHaber ekleme ekranında görünen etiket
hintAlan ipucuAlanın altında görünen yardım metni
defaultVarsayılan değerBoş bırakılırsa kullanılacak değer
categoryKategoriAlanın hangi kategorilerde görüneceği (Tümü seçilebilir)
rubricSekme grubuHaber ekleme ekranında aynı sekmede toplanma
min / maxAlandaki asgari / azami karakter sayısıBoş bırakılırsa sınır uygulanmaz
allow_add_usergroupsŞu gruplar için eklemeye izin verAlanı hangi gruplar doldurabilir
allow_view_usergroupsŞu gruplar için görüntülemeye izin verDeğeri hangi gruplar görebilir
allow_multiBirden fazla değer seçimine izin verKapatılırsa listede tek değer seçilir
dynamicDinamik alanKullanıcı "+" ile kendi değerlerini ekleyebilir (çoklu değer)
is_publicDosyayı herkese açık olarak yükleAçıksa yüklenen dosya doğrudan bağlantıyla indirilebilir; kapalıysa yalnızca ek (attachment) etiketiyle
allow_in_newsÇıktı etiketinin haber metnine eklenmesine izin verAçıksa [xfvalue_X] etiketi haber metninin içine de yazılabilir
use_opengraphOpen Graph işaretlemesinde görsel kullanGörsel alanının sosyal paylaşım görseli olarak kullanılması
lazy_load(Görsel yükleme davranışı)Görsellerin gecikmeli yüklenmesi
max_filesYüklenen dosya sayısıAzami dosya sayısı (0 = sınırsız)
files_ext—Dosya türü alanında izin verilen uzantılar
i
Liste (select) seçeneklerini yazma biçimi Her satıra bir değer yazılır. İsterseniz "gönderilen değer" ile "sitede görünen metin" farklı olabilir; bunun için | ayırıcısı kullanılır: Yes|Evet satırı, ekleme ekranında Evet gösterir ama sitede değeri Yes olarak basar.

Üye ek alanları — ?mod=userfields

Üye profilleri için tanımlanan ek alanlardır (ör. "Telefon", "Şehir"). Aynı mantıkla çalışır ama daha az alan türü sunar:

Desteklenen türlerEk seçenek
Tek satır, birden fazla satır, liste, Evet/Hayır anahtarı, tarih ve saatallow_change — üye bu alanı kendi profilinden değiştirebilir mi?

Dosya/görsel yükleme türleri üye alanlarında yoktur; bu bilinçli bir sınırlamadır.

i
Yazar bilgilerini haberlerde göstermek Üye ek alanlarını haber sayfalarında göstermek için sistem ayarlarındaki "Yayınlarda yazarın tüm bilgilerini göstermeyi etkinleştir" (user_in_news) seçeneği açılmalıdır. Kapalıyken haber şablonlarında yalnızca yazarın kullanıcı adı ve profil bağlantısı gösterilebilir. Bu seçenek veritabanında ek sorgular çalıştırdığı için sunucuya ek yük bindirir.

Şablonda kullanım

EtiketNe yapar?
[xfgiven_AD]…[/xfgiven_AD]Alan doluysa bloğu gösterir
[xfnotgiven_AD]…[/xfnotgiven_AD]Alan boşsa bloğu gösterir
[xfvalue_AD]Alanın değerini basar
[xfvalue_image_url_AD]Görsel alanının tam dosya adresi
[xfvalue_thumb_url_AD]Görsel alanının küçük (thumbnail) adresi
[xfvalue_image_description_AD]Görselin açıklaması

AD yerine alan tanımındaki name değeri yazılır. Örnek bir şablon parçası:

<div class="movie-meta">
    [xfgiven_yonetmen]
        <span>Yönetmen: <b>[xfvalue_yonetmen]</b></span>
    [/xfgiven_yonetmen]

    [xfgiven_afis]
        <img src="[xfvalue_image_url_afis]" alt="[xfvalue_image_description_afis]" loading="lazy">
    [/xfgiven_afis]
</div>
!
İki yaygın yazım hatası
  • {xfvalue_AD} — süslü parantezle yazılmaz. Doğrusu köşeli parantezdir: [xfvalue_AD].
  • [xfvalue_AD]'yi düz metin gibi değil, bir işaret olarak yazın; şablon motoru bunu bir etiket olarak bulup değiştirir.

Değerler nasıl saklanır? (ileri düzey)

Haber ek alanı değerleri, haber kaydının xfields sütununda tek bir metin olarak tutulur:

AyırıcıGörevi
||Alanları birbirinden ayırır
|Alan adını değerinden ayırır
&#124;Değerin içindeki | karakterinin kaçışlı hâli
\x01 (SOH)Çoklu değerleri birbirinden ayırır

Bu biçimi bilmek, veritabanında elle arama yaparken veya bir eklentiyle alan değerlerini toplu düzenlerken işinize yarar. Ancak elle düzenlemek risklidir: ayırıcıyı yanlış kullanmak alanların karışmasına yol açar.

Sık yapılan hatalar

HataSonuç
Alan adında Türkçe karakter/boşluk kullanmakŞablonda çağrılamaz (ad Latin harfleriyle ve tekil olmalı)
Aynı name ile ikinci alan tanımlamakAlanlar çakışır, değerler karışır
Alan türünü sonradan değiştirmekMevcut değerler yeni türle uyumsuz olabilir (ör. metin → görsel)
Alan tanımını silip değerlerin de silindiğini sanmakVeritabanında değerler kalır
htmljs türünü geniş gruplara açmakFiltresiz kod enjeksiyonu
[xfvalue_AD]'yi {xfvalue_AD} sanmakHiçbir şey olmaz; etiket boş kalır
Alanı bir kategoriye kilitleyip diğerlerinde aramakAlan o kategorilerde ekleme ekranında görünmez

Kontrol listesi

  • Alan adları Latin harfleriyle, tekil ve anlaşılır.
  • Her alan için açıklama ve ipucu yazdım.
  • Eklemeye/görüntülemeye izin verilen grupları bilinçli seçtim.
  • Dosya alanlarında azami dosya sayısını ve uzantıları sınırladım.
  • htmljs türünü yalnızca yönetici grubuna bıraktım.
  • Şablonda [xfgiven_…] ile boş alanları korudum.
  • Alan tanımlarını bir kenara yedekledim (xfields.json / userxfields.json).