Zmiennie globalne w szablonach Smarty PrestaShop

Jak działa system szablonów PrestaShop i jak go edytować?
ODPOWIEDZ
Admin
Site Admin
Posty: 14
Rejestracja: sob mar 22, 2025 11:03 am

Zmiennie globalne w szablonach Smarty PrestaShop

Post autor: Admin »

Zmiennie globalne w szablonach Smarty PrestaShop

W szablonach `.tpl` PrestaShop dostępnych jest wiele zmiennych, które są automatycznie przekazywane do widoków. Poniżej znajduje się ich szczegółowy przegląd pogrupowany tematycznie.

🧩 Dane o sklepie, linkach i konfiguracji:
  • {$shop} – dane sklepu (id, name, email, domain, physical_uri, itd.)
    • {$shop.id}, {$shop.name}, {$shop.email}
    • {$shop.logo}, {$shop.logo_details.src}, {$shop.logo_details.width}, {$shop.logo_details.height}
    • {$shop.favicon}, {$shop.stores_icon}
    • {$shop.address.formatted}, {$shop.address.address1}, {$shop.address.address2}, {$shop.address.postcode}, {$shop.address.city}, {$shop.address.state}, {$shop.address.country}
    • {$shop.phone}, {$shop.fax}
  • {$link} – obiekt do generowania linków:
    • {$link->getProductLink($product)}
    • {$link->getCategoryLink($category)}
    • {$link->getCMSLink($cms)}
    • {$link->getManufacturerLink($manufacturer)}
    • {$link->getSupplierLink($supplier)}
    • {$link->getModuleLink('nazwa_modułu','kontroler', ['param'=>'wartość'])}
  • {$urls} – tablica z ważnymi URL-ami:
    • {$urls.base_url}
    • {$urls.current_url}
    • {$urls.shop_domain_url}
    • {$urls.img_ps_url}, {$urls.img_cat_url}, {$urls.img_lang_url}, {$urls.img_prod_url}, {$urls.img_manu_url}, {$urls.img_sup_url}, {$urls.img_ship_url}, {$urls.img_store_url}, {$urls.img_col_url}, {$urls.img_url}
    • {$urls.css_url}, {$urls.js_url}, {$urls.pic_url}, {$urls.theme_assets}
    • {$urls.pages.address}, {$urls.pages.addresses}, {$urls.pages.authentication}, {$urls.pages.register}
    • {$urls.pages.cart}, {$urls.pages.order_login}, {$urls.pages.checkout}
    • {$urls.pages.category}, {$urls.pages.product}, {$urls.pages.cms}, {$urls.pages.contact}
    • {$urls.pages.search}, {$urls.pages.guest_tracking}, {$urls.pages.discount}
    • {$urls.actions.logout}
  • {$configuration} – ustawienia z bazy danych (np. {$configuration.PS_SHOP_NAME})
    • {$configuration.display_taxes_label}, {$configuration.display_prices_tax_incl}, {$configuration.taxes_enabled}
    • {$configuration.is_b2b}, {$configuration.is_catalog}, {$configuration.show_prices}
  • {$language} – dane o aktualnym języku (name, iso_code, locale, language_code, is_rtl, date_format_lite, date_format_full, id)
  • {$lang_iso} – kod ISO języka (np. "pl")
  • {$locale} – locale języka (np. "pl-PL")
  • {$currency} – aktualna waluta (name, iso_code, iso_code_num, sign, id)
  • {$currencies} – lista dostępnych walut
  • {$cookie} – dane ciasteczek (tylko do odczytu)
  • {$token}, {$static_token} – tokeny anty-CSRF używane w formularzach/linkach
👤 Dane klienta i koszyka:
  • {$customer} – obiekt klienta (id, firstname, lastname, email, is_logged, company, siret, ape, birthday, newsletter, optin, gender, itd.)
    • {$customer.addresses} – tablica adresów (id, alias, firstname, lastname, company, address1, address2, postcode, city, country, country_iso, phone, phone_mobile, vat_number, dni, formatted)
  • {$logged} – 1 jeśli klient jest zalogowany, 0 jeśli nie
  • {$customer_addresses} – lista adresów klienta (skrótowo)
  • {$cart} – obiekt koszyka
    • {$cart.id}, {$cart.products} – lista pozycji (z atrybutami)
    • {$cart.products_count}
    • {$cart.subtotals} – np. products, shipping, discounts, gift_wrapping
    • {$cart.totals} – total, total_including_tax, total_excluding_tax (każdy: label, amount, value)
    • {$cart.vouchers}
    • {$cart.id_address_delivery}, {$cart.id_address_invoice}
📦 Produkt (na stronie produktu):
  • {$product} – główny obiekt produktu
    • Identyfikatory: {$product.id_product}, {$product.id_manufacturer}, {$product.id_supplier}, {$product.id_category_default}
    • Podstawowe: {$product.name}, {$product.reference}, {$product.link_rewrite}, {$product.link}
    • Kody: {$product.ean13}, {$product.isbn}, {$product.upc}, {$product.mpn}
    • Ceny: {$product.price} (formatowana), {$product.price_amount} (brutto float), {$product.price_tax_exc} (netto float)
    • Ceny bez promocji: {$product.price_without_reduction} (brutto), {$product.price_without_reduction_without_tax} (netto)
    • VAT: {$product.rate} (stawka VAT), {$product.ecotax}
    • Stan i dostępność: {$product.quantity}, {$product.minimal_quantity}, {$product.available_for_order}, {$product.show_price}, {$product.condition}, {$product.is_virtual}, {$product.pack}
    • Treści: {$product.description}, {$product.description_short}, {$product.title}
    • Producent: {$product.manufacturer_name}
    • Obrazy: {$product.cover}, {$product.images} (tablica)
    • Kombinacje/atrybuty: {$product.id_product_attribute} (aktywna), {$product.attributes} (lista atrybutów), {$product.combinations} (jeśli przekazane)
    • Załączniki: {$product.attachments} (tablica: id_product, id_attachment, file, file_name, file_size, file_size_formatted, mime, id_lang, name, description)
  • {$product_brand} / {$product_manufacturer} – obiekt producenta (jeśli przypisany)
📂 Kategoria (na stronie kategorii):
  • {$category} – obiekt kategorii
    • {$category.id}, {$category.name}, {$category.link_rewrite}
    • {$category.description}
    • {$category.image} (jeśli dostępne)
    • {$category.nb_products} – liczba produktów
  • {$products} – lista produktów z kategorii
  • {$subcategories} – lista podkategorii
  • {$categoryName} – nazwa kategorii (skrótowo)
📃 CMS i strony statyczne:
  • {$cms} – obiekt strony CMS
    • {$cms.id}, {$cms.meta_title}, {$cms.meta_description}, {$cms.link_rewrite}
    • {$cms.content} – treść HTML
  • {$cms_category} – obiekt kategorii CMS (jeśli wyświetlana)
  • {$cms_titles} – lista tytułów stron w danej kategorii
📄 Dane strony i layoutu:
  • {$page} – informacje o aktualnej stronie:
    • {$page.page_name} – identyfikator (np. "index", "product", "category", "checkout", "cms")
    • {$page.title} – tytuł strony
    • {$page.canonical} – kanoniczny URL
    • {$page.meta.title}, {$page.meta.description}, {$page.meta.keywords}, {$page.meta.robots}
    • {$page.meta.body_classes} – tablica klas dla <body>
    • {$page.meta.admin_notifications} – zwykle nieużywane
    • {$page.password-policy} – komunikaty dot. złożoności hasła
  • {$layout} – layout aktualnej strony
  • {$breadcrumb} – dane do okruszków
    • {$breadcrumb.count}
    • {$breadcrumb.links} – tablica elementów (title, url)
📥 Inne zmienne używane w szablonach:
  • {$errors} – lista błędów
  • {$success} – lista komunikatów sukcesu
  • {$warning} – ostrzeżenia
  • {$search_string} – wpisana fraza wyszukiwania
  • {$search_products} – wyniki wyszukiwania
  • {$modules} – moduły dostępne w danym hooku
  • {$HOOK_TOP}, {$HOOK_HEADER}, {$HOOK_FOOTER}, {$HOOK_HOME}, itd. – HTML wygenerowany przez moduły w hookach
ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości