Stałe globalne w PrestaShop

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

Stałe globalne w PrestaShop

Post autor: Admin »

Stałe (const) dostępne w PrestaShop – ściąga dla modułów i motywów

PrestaShop udostępnia zestaw predefiniowanych stałych w PHP, które możesz wykorzystywać w modułach i motywach, aby odwoływać się do ścieżek, adresów URL i parametrów systemowych bez „twardego” wpisywania wartości. Dzięki temu kod jest przenośny i zgodny z różnymi instalacjami.

Uwaga: Część stałych wskazuje ścieżki na dysku, a inne adresy URL. Zwróć uwagę, czego potrzebujesz w danym miejscu.


📁 Stałe dotyczące ścieżek (system plików):
  • _PS_ROOT_DIR_ – ścieżka do katalogu głównego instalacji PrestaShop
  • _PS_MODULE_DIR_ – ścieżka do katalogu modułów (/modules)
  • _PS_OVERRIDE_DIR_ – ścieżka do katalogu overrides (/override)
  • _PS_THEME_DIR_ – ścieżka do katalogu aktualnego motywu (/themes/nazwa_motywu)
  • _PS_IMG_DIR_ – ścieżka do katalogu obrazów (/img)
  • _PS_CACHE_DIR_ – ścieżka do katalogu cache (/cache)
  • _PS_DOWNLOAD_DIR_ – ścieżka do katalogu pobrań (/download)
  • __PS_UPLOAD_DIR__ – ścieżka do katalogu uploadów (/upload)
  • _PS_TRANSLATIONS_DIR_ – ścieżka do tłumaczeń (/translations)
  • _PS_CONFIG_DIR_ – ścieżka do konfiguracji (/config)
  • _PS_TOOLS_DIR_ – ścieżka do narzędzi (/tools)
  • _PS_ADMIN_DIR_ – ścieżka do panelu administracyjnego (np. /adminxxxx, może być zmieniona)
  • _PS_JS_DIR_ – ścieżka do plików JS PrestaShop
  • _PS_CSS_DIR_ – ścieżka do plików CSS PrestaShop
⚙️ Stałe konfiguracyjne:
  • _PS_VERSION_ – wersja PrestaShop (np. 1.7.8.11)
  • _PS_DEBUG_MODE_ – czy tryb debugowania jest włączony (true/false)
  • _PS_MODE_DEV_ – czy tryb deweloperski jest włączony (true/false)
  • _PS_CACHE_ENABLED_ – czy cache systemowy jest aktywny (true/false)
  • _PS_CACHING_SYSTEM_ – używany system cache (np. CacheMemcache)
🌐 Stałe dotyczące adresów URL:
  • _PS_BASE_URL_ – bazowy URL sklepu (HTTP)
  • _PS_BASE_URL_SSL_ – bazowy URL sklepu po HTTPS
  • _PS_MODULE_URL_ – bazowy URL do modułów
  • _PS_THEME_URI_ – URL do katalogu aktualnego motywu
  • _PS_IMG_ – URL do katalogu obrazów
  • _PS_JS_DIR_ – URL do katalogu skryptów JS
  • _PS_CSS_ – URL do katalogu arkuszy CSS
Wskazówka: Nazewnictwo bywa mylące: w niektórych kontekstach te same nazwy spotkasz jako ścieżki, a w innych jako URL. Zawsze sprawdź, czy używasz odpowiedniej stałej do ścieżki lub URL w swoim przypadku użycia.

🎨 Stałe motywu:
  • _THEME_NAME_ – nazwa używanego motywu
  • _PARENT_THEME_NAME_ – nazwa motywu nadrzędnego (jeśli istnieje)
  • _THEME_IMG_DIR_ – ścieżka do obrazów motywu bieżącego
  • _THEME_CSS_DIR_ – ścieżka do CSS motywu (np. assets/css/)
  • _THEME_JS_DIR_ – ścieżka do JS motywu (np. assets/js/)
🗄️ Stałe bazy danych:
  • _DB_SERVER_ – host bazy danych
  • _DB_NAME_ – nazwa bazy
  • _DB_USER_ – użytkownik bazy
  • _DB_PASSWD_ – hasło
  • _DB_PREFIX_ – prefiks tabel (domyślnie ps_)
  • _MYSQL_ENGINE_ – silnik tabel (np. InnoDB)
🧪 Przykłady użycia:

1) Przekazanie zmiennych do Smarty:

Kod: Zaznacz cały

$this->smarty->assign([
  'customer_name'  => $this->context->employee->firstname.' '.$this->context->employee->lastname,
  'overridepath'   => _PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers'
                     .DIRECTORY_SEPARATOR.'admin'.DIRECTORY_SEPARATOR.'templates'.DIRECTORY_SEPARATOR
                     .'carts'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'view'.DIRECTORY_SEPARATOR.'view.tpl',
  'product_shop_id'=> $this->product_shop_id,
]);
2) Warunkowe działanie wg wersji PS:

Kod: Zaznacz cały

if (version_compare(_PS_VERSION_, '1.7.7', '<')) {
  $this->installOverrideAdminTemplates();
}
3) Budowa ścieżki do szablonu modułu (część administracyjna):

Kod: Zaznacz cały

$this->module_adminreview_path = _PS_MODULE_DIR_.$this->name.'/views/templates/admin/post-review-modal.tpl';
4) Folder cache motywu (np. do własnego cache):

Kod: Zaznacz cały

$themeCacheFolder = _PS_THEME_DIR_.'assets/cache/';
Dobre praktyki:
  • Zawsze używaj stałych zamiast wpisywania ścieżek/URL na sztywno – unikniesz problemów przy migracjach i środowiskach (dev/stage/prod).
  • Do konkatenacji ścieżek w PHP korzystaj z DIRECTORY_SEPARATOR tam, gdzie to sensowne.
  • Dla wersjonowania funkcji/feature flag używaj version_compare(_PS_VERSION_, ...).
  • Jeśli tworzysz zasoby w motywie, trzymaj porządek w assets/css i assets/js oraz korzystaj ze stałych motywu.
ODPOWIEDZ

Kto jest online

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