T-SOFT/Tema Geliştirme/Twig Fonksiyonları

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.

Bu sayfa tam referanstır; Twig dilinin temelleri için bkz. Twig (Şablon Dili).

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.

ParametreTipAçıklama
valuenumberBiç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.

ParametreTipAçıklama
pricenumberKDV hariç fiyat.
vatnumberKDV 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.

ParametreTipAçıklama
namestringSnippet adı (klasörler için nokta notasyonu).
paramsobjectSnippet'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.

ParametreTipAçıklama
variableanyYazdı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) }}

Panelden oluşturulmuş menüleri getirir.

ParametreTipAçıklama
namestringMenü tanım adı.

Öntanımlı menü tipleri:

Menü adıKullanım alanı
MENU_MAINAna navigasyon menüsü.
MENU_SOCIALSosyal medya bağlantıları.
MENU_FOOTERFooter menüsü.
MENU_PAYMENT_ICONSÖdeme yöntemi ikonları.
MENU_TOPÜst bar menüsü.
MENU_HEADERHeader 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.

ParametreTipAçıklama
idnumberHedef kaydın ID'si.
typestringKayı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.

ParametreTipAçıklama
idstringForm kimliği (ör. form_1).
dataOnlybooleantrue 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.

ParametreTipAçıklama
pricenumberÇevrilecek tutar.
fromstringKaynak para birimi (ör. TL, USD).
tostringHedef para birimi.
vatnumberKDV 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.

ParametreTipAçıklama
idnumberKategori ID'si.
{% set CATEGORY = category(335) %}
{{ CATEGORY.NAME }}

brand()

Verilen ID'ye ait marka bilgisini getirir.

ParametreTipAçıklama
idnumberMarka ID'si.
{% set BRND = brand(82) %}
{{ BRND.NAME }}

model()

Verilen ID'ye ait model bilgisini getirir.

ParametreTipAçıklama
idnumberModel ID'si.
{% set MDL = model(3) %}
{{ MDL.NAME }}

product()

Verilen ID'ye ait ürün bilgisini getirir.

ParametreTipAçıklama
idnumberÜrün ID'si.
{% set P = product(3) %}
{{ P.TITLE }}

query()

URL query parametresini okur.

ParametreTipAçıklama
namestringOkunacak 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.

ParametreTipAçıklama
keystringBilgi 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.

ParametreTipAçıklama
pathstringassets/ klasörüne göre dosya yolu.
{{ theme_asset('img/logo.svg') }}
Tema 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.

ParametreTipAçıklama
namestringSnippet adı.
paramsobjectURI'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

Sonraki adımlar