Constants & Variables

Common storefront globals: use the PHP column in controllers/modules, and the Smarty (TPL) column in theme templates. Empty cells mean there is no matching counterpart.

Most Smarty variables are assigned in config/settings.php. Page fields (pageName, pageTitle, …) come from Page::add(). Settings keys live in the database via Settings::get() / Settings::set().

Site & settings

PHPSmarty (TPL)Description
Settings::get('SITE_NAME') {$siteName} Store / brand name
Settings::get('DOMAIN') or $domain {$domain} Site base URL (with trailing slash style as configured)
Settings::get('FOLDER') {$rootDir} Install folder path segment (subfolder installs)
Settings::get('THEME') {$activeTheme} Active theme folder name
Settings::get('SHOP_TOKEN') Cron / module API token (never expose in TPL)
Settings::get('CONTACT_EMAIL') {$contactEmail} Public contact e-mail
Settings::get('CONTACT_PHONE') {$contactPhone} Display phone
Settings::get('CONTACT_PHONE_TEL') {$contactPhoneTel} Phone for tel: links
Settings::get('CONTACT_ADDRESS') {$contactAddress} Street address
Settings::get('CONTACT_CITY') {$contactCity} City
Settings::get('CONTACT_COUNTRY') {$addressCountry} Country
Settings::get('POSTAL_CODE') {$postalCode} Postal / ZIP code
Settings::get('LATITUDE') {$latitude} Map latitude
Settings::get('LONGITUDE') {$longitude} Map longitude
Settings::get('OPEN_HOUR') {$openHour} Opening hour
Settings::get('CLOSE_HOUR') {$closeHour} Closing hour
Settings::getFooterDescription() {$footerDescription} Footer about text
Settings::get('FACEBOOK_LINK') {$facebookLink} / {$socialLinks.facebook} Facebook URL
Settings::get('INSTAGRAM_LINK') {$instagramLink} / {$socialLinks.instagram} Instagram URL
Settings::get('X_LINK') {$xLink} / {$socialLinks.x} X (Twitter) URL
Settings::get('YOUTUBE_LINK') {$youtubeLink} YouTube URL
Settings::get('LINKEDIN_LINK') {$linkedinLink} LinkedIn URL
Settings::get('PINTEREST_LINK') {$pinterestLink} Pinterest URL
Settings::get('TIKTOK_LINK') {$tiktokLink} TikTok URL
Settings::get('SITE_VISIBILITY') e.g. members_only storefront gate
Settings::get('MEMBER_APPROVAL') manual = pending member accounts
Settings::get('DEMO_MODE') Demo lock (blocks risky admin actions)

Page context

PHPSmarty (TPL)Description
Page::add('home', $title, …) {$pageName} Current page key (e.g. home, product, cart)
2nd arg of Page::add() {$pageTitle} Document / SEO title
5th arg of Page::add() {$pageDesc} Meta description
3rd / 4th args of Page::add() {$css} / {$js} Extra per-page CSS/JS filenames
{$year} Current year (footer copyright)
{$time} / {$minute} Cache-busting time stamps

Customer, cart & session

PHPSmarty (TPL)Description
Customer::isLoggedIn() {$isLoggedIn} Whether a customer session exists
Customer::getCurrent() (typical) {$customer} Logged-in customer array / object
Cart::getSummary() (typical) {$cart} Cart summary (items, totals, count)
$_SESSION['csrf_token'] {$token} CSRF token — JS usually reads csrfToken from header
{$saveToken} Legacy hourly token (prefer CSRF for APIs)
{$favoriteCount} Wishlist / favorites count
{$notificationCount} Customer notification badge count
{$headerNotifications} Header notification list
{$cartI18n} / {$cartI18nJson} Cart UI translation strings (JS-safe JSON)

Paths & assets

PHPSmarty (TPL)Description
_BASE_DIR_ {$base_dir} Filesystem / base dir constant
_THEME_BASE_DIR_ {$tpl_dir} Active theme template directory
_THEME_CSS_DIR_ {$css_dir} Theme CSS URL path
_THEME_JS_DIR_ {$js_dir} Theme JS URL path
_THEME_IMG_DIR_ {$img_dir} Theme images URL path
_BASE_IMG_DIR_ {$base_img} Shared / product images base
_BASE_JS_DIR_ {$base_js} Shared JS base
_THEME_REEL_DIR_ {$tRealDir} Theme real filesystem path
Performance::versionedUrl($url) {'css/app.css'|asset_url} Cache-busted asset URL (?v=…)
SiteAssets::resolveLogoUrl('header') {$siteLogos.header} Logo URLs (header, bar, footer)
Theme::getColors($theme) {$themeColors} Theme color variables array
{$themeOptions} Theme option flags / config
Module::… (aggregated) {$moduleAssets.css} / {$moduleAssets.js} Active module front CSS/JS URL lists

Catalog, language & currency

PHPSmarty (TPL)Description
{$menuCategories} Header / menu category tree
Cms::getFooterLinks() {$cmsFooterLinks} CMS pages linked in footer
Lang::getAvailable() {$shopLanguages} Enabled storefront languages
Lang::getDefault() {$defaultLang} Default language code
$_SESSION['selectLang'] {$selectLang} Current language code
Lang::getSwitcherList() {$langSwitcher} Language switcher entries
Currency::getDisplayCurrency() {$displayCurrency} Customer display currency
Currency::getShopCurrency() {$shopCurrencyCode} Shop base currency code
Tools::displayPrice($price) Format price for current display currency
translate('Key') {'Key'|translate} Storefront i18n string
Cargo::getDisplayHints() {$freeShippingMin} / {$shippingFee} Free-shipping threshold and shipping fee hints

Hooks & modules

PHPSmarty (TPL)Description
Module::getRenderedDisplayHooks() {$hooks} All display hook HTML (e.g. {$hooks.footer})
Module::refreshHook($smarty, 'product_detail', $ctx) {$hooks.product_detail} Fill a deferred hook on the current page
Module::renderAdminHooks([…]) {$adminHooks.admin_header} Admin panel display hooks
{$newsletterApiUrl} Default newsletter subscribe API URL
Module::registerHook('order.placed', $cb) Event listener (no TPL variable)

Admin & env (PHP only)

PHPSmarty (TPL)Description
Admin::url('orders') {$adminUrl} (admin templates) Admin URL using ADMIN_URI from config/env.php
$_SESSION['admin_csrf_token'] / $adminToken {$adminToken} Admin CSRF token
adminT('Key') {'Key'|adminT} Admin panel translation
FShop::VERSION Core version string (admin footer)
config/env.phpADMIN_URI Public admin path (folder stays admin/)
config/env.phpDB_*, REWRITE_BASE Database and rewrite base — not for templates
Module templates: Prefer $this->renderFrontTemplate('hook', $vars) so you do not overwrite globals like {$isLoggedIn} or {$cart}. Parent Smarty variables are still readable inside the module TPL.