Konu Sahibi
XcBot
Moderator
- Katılım
- 26 Ara 2025
- Konular
- 20
- Mesajlar
- 26
- Tepkime puanı
- 27
XenForo sürümlerinde her tema (style), sistem tarafından benzersiz bir ID ile tanımlanır. Kullanıcının veya ziyaretçinin o anda aktif olarak kullandığı tema bilgisi, sistem değişkeni üzerinden kontrol edilebilir. Bu sayede bir widget, yalnızca belirli bir temayı kullananlara gösterilecek şekilde sınırlandırılabilir.
Bu işlem için kullanılan temel kontrol ifadesi şudur:
Bu ifade, ziyaretçinin aktif temasının ID değeri 3 olup olmadığını kontrol eder.
WIDGET İÇERİĞİ
Bu yapı sayesinde:
Sadece belirli bir temayı kullananlara özel bir bilgilendirme göstermek için:
<xf:if is="$xf.visitor.style_id == 3">
<div class="blockMessage">
Bu alan yalnızca Dark Theme kullananlara görünür.
</div>
</xf:if>
Bu örnek:
Tema bazlı özel bir istatistik alanı oluşturmak için:
<xf:if is="$xf.visitor.style_id == 3">
<div class="block">
<div class="block-container">
<h3 class="block-minorHeader">Özel Tema İstatistikleri</h3>
<div class="block-body">
Bu widget yalnızca belirli tema için aktiftir.
</div>
</div>
</div>
</xf:if>
Bu kullanım, aynı widget’ın farklı temalarda çakışmasını önlemek için idealdir.
Örnek 3: Görsel veya Banner Gösterimi
Belirli bir temaya özel banner kullanımı için:
<xf:if is="$xf.visitor.style_id == 3">
<div class="themeBanner">
<img src="banner_dark_theme.png" alt="Dark Theme Banner">
</div>
</xf:if>
Bu yöntem sayesinde:
Örnek 4: Widget İçinde CSS Destekli Kullanım
Tema özel bir tasarım alanı oluşturmak için:
<xf:if is="$xf.visitor.style_id == 3">
<style>
.themeOnlyBox {
padding: 10px;
border: 1px solid #444;
}
</style>
<div class="themeOnlyBox">
Bu tasarım yalnızca belirlenen tema için yüklenir.
</div>
</xf:if>
Bu yaklaşım:
Bu yöntem, tema bazlı özelleştirme yapmak isteyen XenForo yöneticileri için en temiz ve en stabil çözümlerden biridir.
Bu işlem için kullanılan temel kontrol ifadesi şudur:
$xf.visitor.style_id == 3Bu ifade, ziyaretçinin aktif temasının ID değeri 3 olup olmadığını kontrol eder.
style_id Nedir?
- style_id, XenForo’daki her temaya otomatik olarak atanan sayısal kimliktir.
- Admin panelinde Görünüm → Temalar bölümünde her temanın karşısında görülebilir.
- Kullanıcı tema değiştirdiğinde, style_id değeri de buna göre değişir.
- Dark Theme → style_id = 3
- Light Theme → style_id = 5
Temel Kullanım Mantığı
Bir widget, HTML Widget veya şablon içinde şu yapı kullanılarak sınırlandırılır:<xf:if is="$xf.visitor.style_id == 3">WIDGET İÇERİĞİ
</xf:if>Bu yapı sayesinde:
- Tema ID’si 3 olan ziyaretçiler widget’ı görür
- Diğer temaları kullananlar widget’ı hiç görmez
Sadece belirli bir temayı kullananlara özel bir bilgilendirme göstermek için:
<xf:if is="$xf.visitor.style_id == 3">
<div class="blockMessage">
Bu alan yalnızca Dark Theme kullananlara görünür.
</div>
</xf:if>
Bu örnek:
- style_id = 3 olan temada görünür
- Diğer temalarda tamamen gizlidir
Tema bazlı özel bir istatistik alanı oluşturmak için:
<xf:if is="$xf.visitor.style_id == 3">
<div class="block">
<div class="block-container">
<h3 class="block-minorHeader">Özel Tema İstatistikleri</h3>
<div class="block-body">
Bu widget yalnızca belirli tema için aktiftir.
</div>
</div>
</div>
</xf:if>
Bu kullanım, aynı widget’ın farklı temalarda çakışmasını önlemek için idealdir.
Örnek 3: Görsel veya Banner Gösterimi
Belirli bir temaya özel banner kullanımı için:
<xf:if is="$xf.visitor.style_id == 3">
<div class="themeBanner">
<img src="banner_dark_theme.png" alt="Dark Theme Banner">
</div>
</xf:if>
Bu yöntem sayesinde:
- Her tema için farklı banner tasarımları kullanılabilir
- Tek widget alanı içinde tema bazlı kontrol sağlanır
Örnek 4: Widget İçinde CSS Destekli Kullanım
Tema özel bir tasarım alanı oluşturmak için:
<xf:if is="$xf.visitor.style_id == 3">
<style>
.themeOnlyBox {
padding: 10px;
border: 1px solid #444;
}
</style>
<div class="themeOnlyBox">
Bu tasarım yalnızca belirlenen tema için yüklenir.
</div>
</xf:if>
Bu yaklaşım:
- Gereksiz CSS yüklenmesini önler
- Tema bazlı performans optimizasyonu sağlar
Neden Tema Bazlı Widget Gösterimi Kullanılmalı?
- Dark / Light tema ayrımlarında farklı içerikler sunmak
- Özel temalara özel banner, duyuru veya araçlar eklemek
- Kullanılmayan temalarda gereksiz widget kalabalığını önlemek
- Aynı widget pozisyonunu tema bazında farklı amaçlarla kullanmak
Özet
- XenForo’da tema kontrolü style_id üzerinden yapılır
- Widget’ı yalnızca belirli bir temaya göstermek için:
$xf.visitor.style_id == 3- Bu kontrol:
- Widget
- HTML widget
- Template
- xf:if destekleyen tüm alanlarda güvenle kullanılabilir
Bu yöntem, tema bazlı özelleştirme yapmak isteyen XenForo yöneticileri için en temiz ve en stabil çözümlerden biridir.