In Magento benötigt man häufig Pfade zu lokalen Verzeichnissen, um Dateien auszulesen, zu schreiben, zu bearbeiten oder zu referenzieren. Das Shopsystem bietet Hilfsmethoden, mit denen diese Informationen ausgelesen werden können. Die Aufrufe sollten anstatt fix codierter Pfade verwendet werden, um Probleme bei Änderungen in der Verzeichnisstruktur zu vermeiden.
Die folgenden Befehle sind überall verwendbar:
- in Controllern,
- Model-Klassen,
- Block-Klassen sowie
- in .phtml-Dateien und
- Dateien eigener Bibliotheken.
- Ebenso können die Pfade außerhalb von Magento verwendet werden, wenn zuvor das Mage-Framework initialisiert wurde.
Achtung: Die Pfade werden immer ohne Verzeichnistrenner am Ende („trailing slash“) ausgegeben.
Lokale Pfade
Verzeichnis | Beispiel-Code | Beispiel-Ausgabe |
---|---|---|
Shop-Basis-Verzeichnis | $path = Mage::getBaseDir('base'); | /path/to/magento |
app-Verzeichnis Grundverzeichnis für Magento-Code | $path = Mage::getBaseDir('app'); | /path/to/magento/app |
code-Verzeichnis für die Code-Pools community, core und local | $path = Mage::getBaseDir('code'); | /path/to/magento/app/code |
design-Verzeichnis | $path = Mage::getBaseDir('design'); | /path/to/magento/app/design |
locale-Verzeichnis Übersetzungsdateien | $path = Mage::getBaseDir('locale'); | /path/to/magento/app/locale |
lib-Verzeichnis Pfad zu den Vendor-Bibliotheken (Varien, Zend Framework, ...) | $path = Mage::getBaseDir('lib'); | /path/to/magento/lib |
media-Verzeichnis Produktbilder etc. | $path = Mage::getBaseDir('media'); | /path/to/magento/media |
skin-Verzeichnis Übergeordnetes Verzeichnis für die Frontend- und Admin-Skins | $path = Mage::getBaseDir('skin'); | /path/to/magento/skin |
var-Verzeichnis Übergeordnetes Verzeichnis für Cache-Dateien, Error-Logs etc. | $path = Mage::getBaseDir('var'); | /path/to/magento/var |
tmp-Verzeichnis Temporäre Dateien | $path = Mage::getBaseDir('tmp'); | /path/to/magento/var/tmp |
cache-Verzeichnis Cache-Dateien | $path = Mage::getBaseDir('cache'); | /path/to/magento/var/cache |
log-Verzeichnis Log-Dateien | $path = Mage::getBaseDir('log'); | /path/to/magento/var/log |
session-Verzeichnis Session-Dateien | $path = Mage::getBaseDir('session'); | /path/to/magento/var/session |
upload-Verzeichnis Verzeichnis, in das Dateien aus Backend-Upload-Formularen gespeichert werden | $path = Mage::getBaseDir('upload'); | /path/to/magento/media/upload |
export-Verzeichnis Ziel-Ordner für Backend-Export-Funktionen | $path = Mage::getBaseDir('export'); | /path/to/magento/var/export |
Modul-Verzeichnis Grund-Verzeichnis der Extension | $path = Mage::getModuleDir('','Mage_Core'); | /path/to/magento/app/code/core/Mage/Core |
Modul-Konfigurationsverzeichnis Verzeichnis für die Konfigurations-Dateien der Extension | $path = Mage::getModuleDir('etc','Mage_Core'); | /path/to/magento/app/code/core/Mage/Core/etc |
Modul-controller-Verzeichnis Verzeichnis für die Controller der Extension | $path = Mage::getModuleDir('controllers','Mage_Core'); | /path/to/magento/app/code/core/Mage/Core/controllers |
Modul-locale-Verzeichnis Verzeichnis für die Übersetzungen (Sprachdateien) der Extension | $path = Mage::getModuleDir('locale','Mage_Core'); | /path/to/magento/app/code/core/Mage/Core/locale |
Modul-SQL-Verzeichnis Verzeichnis für die (SQL-)Installations-Dateien der Extension | $path = Mage::getModuleDir('','Mage_Core'); | /path/to/magento/app/code/core/Mage/Core/sql |
Skin-Basis-Verzeichnis Grundverzeichnis für den Skin | $path = Mage::getDesign()->getSkinBaseDir(); | /path/to/magento/skin/frontend/default/default |
Skin-Basis-Verzeichnis relativ Grundverzeichnis für den Skin relativ zum skin-Verzeichnis | $path = Mage::getDesign()->getSkinBaseDir(array('_relative' => true)); | frontend/default/default |
Theme-locale-Verzeichnis Verzeichnis für die Übersetzungsdateien des Themes in der aktuellen Storeview. Wie bei "Skin-Basis-Verzeichnis relativ" kann als Parameter _relative angegeben werden. | $path = Mage::getDesign()->getLocaleBaseDir(); | /path/to/magento/app/design/frontend/default/default/locale/de_DE |
Theme-Verzeichnisse Der Methodenaufruf ohne Parameter-Array gibt das Verzeichnis des Themes zurück. Im Parameter-Array können folgende Parameter angegeben werden: _relative: relativer Pfad _area: adminhtml|frontend|install _package: Package-Name _theme: Theme-Name Es wird nicht überprüft, ob die entsprechenden Areas, Packages und Themes tatsächlich existieren. | $path = Mage::getDesign()->getBaseDir(); --- $path = Mage::getDesign()->getBaseDir(array( '_relative' => true, '_area' => 'adminhtml', '_package' => 'foo', '_theme' => 'bar' )); | /path/to/magento/app/design/frontend/default/default --- adminhtml/foo/bar |
Pfad zu Datei in Theme Sucht die Datei im angegebenen (bzw. aktuellen) Theme und versucht sie im Fallbacktheme zu finden, falls sie im angegebenen Theme nicht existiert. Parameter können wie in "Theme-Verzeichnisse" angegeben werden. | $path = Mage::getDesign()->getFilename('etc/widget.xml'); | /path/to/magento/app/design/frontend/default/default//etc/widget.xml |
Quelle(n) & weitere Hinweise:
Gute Sache! Danke dafür 😉
Ich habe mir für sowas ein gist angelegt und alles bunt reingewürfelt – eventuell hilft es Dir ja auch einmal: https://gist.github.com/klein0r/5441524