Kullanım tekniği Xenforo Template Syntax Rehberi: Xf:İf, Xf:Foreach, Xf:Set ve Temel Etiketler
XenForo Template Syntax Rehberi
xf:if, xf:foreach, xf:set, xf:include ve temel şablon mantığı
Bu rehber XenForo 2.3.10 sürümüne göre hazırlanmıştır. XenForo şablonları düz PHP dosyaları değildir; kendine ait güvenli bir template syntax yapısı kullanır.
Bu syntax sayesinde koşul yazabilir, döngü kurabilir, değişken tanımlayabilir, başka şablonları dahil edebilir ve phrase sisteminden metin çekebilirsiniz.
XenForo şablonlarında genellikle üç yapı karşınıza çıkar:
Dikkat: Şablonlara doğrudan PHP kodu yazılmaz. Karmaşık iş mantığı gerekiyorsa PHP tarafında controller, repository veya service içinde çözülmelidir.
Koşullu içerik göstermek için kullanılır.
Bu örnekte ziyaretçi giriş yapmışsa kullanıcı adı gösterilir; giriş yapmamışsa alternatif metin gösterilir.
Liste veya koleksiyon döndürmek için kullanılır.
loop döngüye girilecek veri setini, value ise her satırda kullanılacak geçici değişkeni belirtir.
Şablon içinde geçici değişken tanımlamak için kullanılır.
Daha uzun içerikler için açılış/kapanış şeklinde de kullanılabilir.
Başka bir şablonu mevcut şablon içine dahil etmek için kullanılır.
Parametre göndermek isterseniz <xf:set> ile birlikte kullanabilirsiniz.
Tekrar kullanılabilir şablon parçaları oluşturmak için kullanılır. XenForo’nun birçok temel şablonu macro yapısına dayanır.
Bir macro başka bir yerden çağrılabilir:
Sabit metinleri doğrudan şablona yazmak yerine phrase kullanmak daha doğru yaklaşımdır.
Eklenti geliştiriyorsanız kendi phrase anahtarlarınızı anlamlı şekilde isimlendirin.
Bir şablon içinde özel LESS dosyası dahil etmek için:
JavaScript dosyası dahil etmek için:
xf:if, xf:foreach, xf:set, xf:include ve temel şablon mantığı
Bu rehber XenForo 2.3.10 sürümüne göre hazırlanmıştır. XenForo şablonları düz PHP dosyaları değildir; kendine ait güvenli bir template syntax yapısı kullanır.
Bu syntax sayesinde koşul yazabilir, döngü kurabilir, değişken tanımlayabilir, başka şablonları dahil edebilir ve phrase sisteminden metin çekebilirsiniz.
XenForo şablonlarında genellikle üç yapı karşınıza çıkar:
- Etiketler: <xf:if>, <xf:foreach>, <xf:include> gibi yapılar.
- Değişkenler: {$thread.title}, {$user.username} gibi değerler.
- İfadeler: {{ phrase('save') }} veya {{ $xf.visitor.user_id ? 'yes' : 'no' }} gibi çıktılar.
Dikkat: Şablonlara doğrudan PHP kodu yazılmaz. Karmaşık iş mantığı gerekiyorsa PHP tarafında controller, repository veya service içinde çözülmelidir.
Koşullu içerik göstermek için kullanılır.
Kod:
<xf:if is="$xf.visitor.user_id">
Hoş geldin, {$xf.visitor.username}
<xf:else />
Lütfen giriş yapın.
</xf:if>
Bu örnekte ziyaretçi giriş yapmışsa kullanıcı adı gösterilir; giriş yapmamışsa alternatif metin gösterilir.
Liste veya koleksiyon döndürmek için kullanılır.
Kod:
<xf:foreach loop="$threads" value="$thread">
<div>{$thread.title}</div>
</xf:foreach>
loop döngüye girilecek veri setini, value ise her satırda kullanılacak geçici değişkeni belirtir.
Şablon içinde geçici değişken tanımlamak için kullanılır.
Kod:
<xf:set var="$buttonText" value="{{ phrase('save') }}" />
Kod:
<xf:set var="$noticeHtml">
<div class="blockMessage">Bakım modu aktif.</div>
</xf:set>
5. xf:include Kullanımı
Başka bir şablonu mevcut şablon içine dahil etmek için kullanılır.
Kod:
<xf:include template="my_custom_template" />
Kod:
<xf:include template="my_custom_template">
<xf:set var="$context" value="{{ 'message' }}" />
</xf:include>
6. xf:macro Kullanımı
Tekrar kullanılabilir şablon parçaları oluşturmak için kullanılır. XenForo’nun birçok temel şablonu macro yapısına dayanır.
Kod:
<xf:macro id="user_link" arg-user="!">
<a href="{{ link('members', $user) }}">{$user.username}</a>
</xf:macro>
Kod:
<xf:macro template="my_macros" name="user_link" arg-user="{$user}" />
7. Phrase Kullanımı
Sabit metinleri doğrudan şablona yazmak yerine phrase kullanmak daha doğru yaklaşımdır.
Kod:
{{ phrase('save') }}
Kod:
{{ phrase('myaddon_custom_button') }}
8. CSS ve JS Dahil Etme
Bir şablon içinde özel LESS dosyası dahil etmek için:
Kod:
<xf:css src="my_custom.less" />
Kod:
<xf:js src="vendor/addon/script.js" />
9. Sık Yapılan Hatalar
- PHP yazmaya çalışmak: XenForo template syntax PHP değildir.
- Değişkenin varlığını kontrol etmemek: Her sayfada her değişken bulunmayabilir.
- Çok fazla iş mantığını şablona taşımak: Şablonlar görünüm katmanıdır.
- Phrase kullanmamak: Çok dilli yapı ve bakım açısından sorun çıkarır.
- Kapanış etiketlerini unutmak: </xf:if> veya </xf:foreach> eksikliği sayfa hatalarına yol açabilir.