Twig Fonksiyonları
T-SOFT, standart Twig'in üzerine tema geliştirmeyi hızlandıran yardımcı fonksiyonlar ekler. Bu sayfa, tüm bu fonksiyonların imzalarını ve kullanım örneklerini içeren tam referanstır.
t (locales)
Çeviri sözlüğüne erişim sağlar. Dil değişkenlerine t. ön eki ile ulaşılır; değer, mağazanın aktif diline göre döner.
{{ t.test_example }}
t.test_example çıktısı Türkçe mağazada Örnek Test, İngilizce mağazada Example Test olabilir. Detay için bkz. Locale ve Çeviriler.
format()
Sayısal ifadeleri KDV katmadan para formatına göre biçimlendirir.
| Parametre | Tip | Açıklama |
|---|---|---|
value | number | Biçimlendirilecek sayısal değer. |
{{ format(P.PRICE) }}
format(100) çıktısı 100,00 olur.
vat()
Sayısal ifadeleri KDV katarak para formatına göre biçimlendirir.
| Parametre | Tip | Açıklama |
|---|---|---|
price | number | KDV hariç fiyat. |
vat | number | KDV oranı (yüzde). |
{{ vat(P.PRICE_SELL, P.VAT) }}
vat(100, 20) çıktısı 120,00 olur.
snippet()
Tanımlı bir snippet'ı dahil eder. Aktif temada aynı isimde snippet varsa öncelikle o çağrılır; yoksa ana dizindeki snippet kullanılır.
| Parametre | Tip | Açıklama |
|---|---|---|
name | string | Snippet adı (klasörler için nokta notasyonu). |
params | object | Snippet'a geçirilecek ek değişkenler (opsiyonel). |
{# Basit kullanım #}
{{ snippet('header.live-search.default') }}
{# Parametre atama #}
{{ snippet('share', { IMAGE_URL: BLOG.IMG2.PATH, TITLE: BLOG.TITLE }) }}
{# Panelden seçilebilir snippet'lar #}
{{ snippet(SETTING.subfolder_header_mobile_menu | default('header.mobile-menu.accordion')) }}
Detaylı kullanım, klasör hiyerarşisi ve konvansiyonlar için bkz. Snippet.
dump()
Twig değişkenlerini ekrana detaylıca yazdırır. Yalnızca panelden tasarım modu aktif edildiğinde çalışır.
| Parametre | Tip | Açıklama |
|---|---|---|
variable | any | Yazdırılacak değişken. Boş bırakılırsa context'teki tüm değişkenler yazdırılır. |
{# Tüm değişkenleri yazdır #}
{{ dump() }}
{# Belirli bir değişkeni yazdır #}
{{ dump(SETTING) }}
menu()
Panelden oluşturulmuş menüleri getirir.
| Parametre | Tip | Açıklama |
|---|---|---|
name | string | Menü tanım adı. |
Öntanımlı menü tipleri:
| Menü adı | Kullanım alanı |
|---|---|
MENU_MAIN | Ana navigasyon menüsü. |
MENU_SOCIAL | Sosyal medya bağlantıları. |
MENU_FOOTER | Footer menüsü. |
MENU_PAYMENT_ICONS | Ödeme yöntemi ikonları. |
MENU_TOP | Üst bar menüsü. |
MENU_HEADER | Header menüsü. |
{% set MENU_MAIN = menu('MENU_MAIN') %}
{% if MENU_MAIN is not empty %}
{% for M in MENU_MAIN %}
<div>{{ M.NAME }}</div>
{% endfor %}
{% endif %}
url()
Mağaza içi sayfalara URL üretir.
| Parametre | Tip | Açıklama |
|---|---|---|
id | number | Hedef kaydın ID'si. |
type | string | Kayıt tipi (ör. page). |
{{ url(77, 'page') }}
url(77, 'page') çıktısı, 77 ID'li sayfanın adresi olan /blog gibi bir yol olur.
form()
Panelde Meta Formları alanından oluşturulan formları section içinde render eder. Fonksiyona formun ID'si verilir.
| Parametre | Tip | Açıklama |
|---|---|---|
id | string | Form kimliği (ör. form_1). |
dataOnly | boolean | true verilirse form render edilmez, yalnızca form değişkenleri döner (opsiyonel). |
{# Formu render et #}
{{ form('form_1') }}
Yalnızca form verisini almak için:
{% set formData = form('form_1', true) %}
{{ dump(formData) }}
request_path
Aktif sayfanın adres bilgisini verir. request_path.base alan adını, request_path.path sayfa yolunu döner.
<a href="https://www.facebook.com/sharer/sharer.php?u={{ request_path.base }}/{{ request_path.path }}"
target="_blank"
aria-label="facebook"></a>
exchange()
Döviz kuru çevirisi yapar.
| Parametre | Tip | Açıklama |
|---|---|---|
price | number | Çevrilecek tutar. |
from | string | Kaynak para birimi (ör. TL, USD). |
to | string | Hedef para birimi. |
vat | number | KDV oranı (opsiyonel). |
{{ exchange(100, 'TL', 'USD') }}
Güncel dolar kuru 38,85 TL ise exchange(10, 'USD', 'TL') çıktısı 388,50 olur.
category()
Verilen ID'ye ait kategori bilgisini getirir. Ürün liste sayfasında aktif kategorinin ID'si LINK_TABLE_ID olarak gelir.
| Parametre | Tip | Açıklama |
|---|---|---|
id | number | Kategori ID'si. |
{% set CATEGORY = category(335) %}
{{ CATEGORY.NAME }}
brand()
Verilen ID'ye ait marka bilgisini getirir.
| Parametre | Tip | Açıklama |
|---|---|---|
id | number | Marka ID'si. |
{% set BRND = brand(82) %}
{{ BRND.NAME }}
model()
Verilen ID'ye ait model bilgisini getirir.
| Parametre | Tip | Açıklama |
|---|---|---|
id | number | Model ID'si. |
{% set MDL = model(3) %}
{{ MDL.NAME }}
product()
Verilen ID'ye ait ürün bilgisini getirir.
| Parametre | Tip | Açıklama |
|---|---|---|
id | number | Ürün ID'si. |
{% set P = product(3) %}
{{ P.TITLE }}
query()
URL query parametresini okur.
| Parametre | Tip | Açıklama |
|---|---|---|
name | string | Okunacak parametre adı. |
{% set P = product(query('product_id')) %}
www.example.com?letter=A adresinde query('letter') çağrısı A değerini döner.
asset()
Proje içindeki dosya yollarından URL üretir. Detaylı kullanım için bkz. Asset.
<script src="{{ asset('resources/assets/js/endpoint.js') }}" defer></script>
theme()
Aktif tema bilgilerini getirir.
| Parametre | Tip | Açıklama |
|---|---|---|
key | string | Bilgi anahtarı (ör. current). |
{{ theme('current').name }}
{{ theme('current').author }}
{% set themeConfig = theme('current').config %}
theme_asset()
Aktif temanın assets klasöründeki bir dosyanın URL'sini üretir.
| Parametre | Tip | Açıklama |
|---|---|---|
path | string | assets/ klasörüne göre dosya yolu. |
{{ theme_asset('img/logo.svg') }}
assets klasörüne eklediğiniz dosyalar tsoft theme dev çalışırken otomatik senkronize edilir — bkz. Sıfırdan Tema Geliştirmek.csrf_token()
CSRF koruması için token üretir. Form gönderimlerinde gizli input olarak eklenir.
<input name="_token" type="hidden" value="{{ csrf_token() }}">
snippetUri()
JavaScript üzerinden snippet çağırmak için storefront API URI'si üretir.
| Parametre | Tip | Açıklama |
|---|---|---|
name | string | Snippet adı. |
params | object | URI'ye query parametresi olarak eklenecek değişkenler (opsiyonel). |
<button :data-url="snippetUri('product-comment-form', { 'include': 'product-detail', 'product_id': PRODUCT_ID })"
data-toggle="popup">
{{ t.make_comment }}
</button>
Yukarıdaki çağrı şu şekilde bir URI üretir:
/api/storefront/snippet/product-comment-form?include=product-detail&product_id=770&language=tr