Üst Alt
  • Cevap yazabilmek için lütfen kayıt olun ya da giriş yapın. Foruma giriş yaparak veya kayıt olarak tüm özelliklere erişebilirsiniz.

Kullanım tekniği Xenforo Template Syntax Rehberi: Xf:İf, Xf:Foreach, Xf:Set ve Temel Etiketler

Konuyu okuyanlar
0 dk
0 active
Kullanım tekniği Xenforo Template Syntax Rehberi: Xf:İf, Xf:Foreach, Xf:Set ve Temel Etiketler

FoxFox doğrulanmış üyedir.

Code Manager
PHP Kodlayıcı
Katılım
28 Nis 2026
Mesajlar
138
Tepkime puanı
41
Kaynak
56
Konum
ABD
Cinsiyet
Erkek
İlgi Alanı
XenForo
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:

  • 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') }}" />
Daha uzun içerikler için açılış/kapanış şeklinde de kullanılabilir.
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" />
Parametre göndermek isterseniz &lt;xf:set&gt; ile birlikte kullanabilirsiniz.
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>
Bir macro başka bir yerden çağrılabilir:
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') }}
Eklenti geliştiriyorsanız kendi phrase anahtarlarınızı anlamlı şekilde isimlendirin.
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" />
JavaScript dosyası dahil etmek için:
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: &lt;/xf:if&gt; veya &lt;/xf:foreach&gt; eksikliği sayfa hatalarına yol açabilir.
 
Sitemiz bir forum sitesi olduğu için kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. 5651 sayılı kanunun 8. maddesi ve T.C.K'nın 125. maddesine göre; ircforumlari.gen.tr olan forum sitemize eklenen içeriklerden, içeriği ekleyen kullanıcı sorumludur. Kullanıcı bazlı herhangi bir telif hakkından ircforumlari.gen.tr sitesi ve site yetkilileri sorumlu değildir. Telif hakkı kapsamında bulunan içerikler ile ilgili hukuksal bildirimleriniz için buradan iletişime geçebilirsiniz. ircforumlari.gen.tr yönetimi size en geç 48 saat içerisinde dönüş yapacaktır.
Geri