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.
| Konu | Ayrıntı |
|---|---|
| Haber ek alanları | engine/inc/xfields.php → admin.php?mod=xfields |
| Üye ek alanları | engine/inc/userfields.php → admin.php?mod=userfields |
| Yetkiler | admin_xfields ve admin_userfields |
| Depolama | Tanımlar: engine/data/xfields.json ve engine/data/userxfields.jsonDeğerler: veritabanında (haberlerde _post.xfields sütunu) |
Haber ek alanları — ?mod=xfields
Alan türleri
| Tür (kod) | Panelde görünen ad | Ne için? |
|---|---|---|
text | Tek satır | Kısa metin (ör. yönetmen adı) |
textarea | Birden fazla satır | Uzun metin |
htmljs | Saf HTML veya JS kodu | Filtrelenmeden basılacak kod — riskli |
select | Liste | Açılır listeden tek (veya çoklu) seçim |
image | Yüklenen görsel | Tek görsel yükleme |
imagegalery | Yüklenen görsel galerisi | Çoklu görsel |
video | Yüklenen video çalma listesi | Video dosyaları |
audio | Yüklenen ses çalma listesi | Ses dosyaları |
file | Yüklenen dosya | Genel dosya eki |
yesorno | 'Evet' veya 'Hayır' anahtarı | İki durumlu seçim |
datetime | Tarih ve saat | Tarih 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
| Alan | Paneldeki adı | Anlamı |
|---|---|---|
name | Alan adı | Şablonda kullanılacak ad. Latin harfleriyle, azami 30 karakter. |
description | Alan açıklaması | Haber ekleme ekranında görünen etiket |
hint | Alan ipucu | Alanın altında görünen yardım metni |
default | Varsayılan değer | Boş bırakılırsa kullanılacak değer |
category | Kategori | Alanın hangi kategorilerde görüneceği (Tümü seçilebilir) |
rubric | Sekme grubu | Haber ekleme ekranında aynı sekmede toplanma |
| min / max | Alandaki asgari / azami karakter sayısı | Boş bırakılırsa sınır uygulanmaz |
allow_add_usergroups | Şu gruplar için eklemeye izin ver | Alanı hangi gruplar doldurabilir |
allow_view_usergroups | Şu gruplar için görüntülemeye izin ver | Değeri hangi gruplar görebilir |
allow_multi | Birden fazla değer seçimine izin ver | Kapatılırsa listede tek değer seçilir |
dynamic | Dinamik alan | Kullanıcı "+" ile kendi değerlerini ekleyebilir (çoklu değer) |
is_public | Dosyayı herkese açık olarak yükle | Açı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 ver | Açıksa [xfvalue_X] etiketi haber metninin içine de yazılabilir |
use_opengraph | Open Graph işaretlemesinde görsel kullan | Gö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_files | Yüklenen dosya sayısı | Azami dosya sayısı (0 = sınırsız) |
files_ext | — | Dosya türü alanında izin verilen uzantılar |
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ürler | Ek seçenek |
|---|---|
| Tek satır, birden fazla satır, liste, Evet/Hayır anahtarı, tarih ve saat | allow_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.
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
| Etiket | Ne 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>
{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 |
| | 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
| Hata | Sonuç |
|---|---|
| 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ımlamak | Alanlar çakışır, değerler karışır |
| Alan türünü sonradan değiştirmek | Mevcut değerler yeni türle uyumsuz olabilir (ör. metin → görsel) |
| Alan tanımını silip değerlerin de silindiğini sanmak | Veritabanında değerler kalır |
htmljs türünü geniş gruplara açmak | Filtresiz kod enjeksiyonu |
[xfvalue_AD]'yi {xfvalue_AD} sanmak | Hiçbir şey olmaz; etiket boş kalır |
| Alanı bir kategoriye kilitleyip diğerlerinde aramak | Alan 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.
htmljstü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).