Pfade in MAXcms
Aus MAXcms
Die verwendeten Pfade in MAXcms verdienen besondere Aufmerksamkeit. Dabei ist zu unterscheiden zwischen Serverseitigen- und Clientseitigen (Browserpfade) Pfaden.
[bearbeiten] Serverseitige Pfade
Auf der Serverseite, also den PHP-Skripten, werden die Pfade benötigt, um z.B. Klassen einzubinden und Dateien die durch einen Upload zum Server übertragen wurden an die korrekte Stelle zu verschieben. Ausgangspunkt ist dabei immer das Verzeichnis in dem das Projekt installiert worden ist. Zu erkennen an der Datei inc.thcms.php und inc.thcms_var.php. Diese beiden Dateien markieren das Haupt- oder Projektverzeichnis.
Dieser Ort wird in der Variable $GLOBALS["thCMS_project"] gespeichert. Ausgehen von dieser Variable können alle Dateien unterhalb des Projektordners erreicht werden.
Für den mediaOrdner steht zusätzlich noch die Variable $GLOBALS["thcms_mediaRoot"] zur Verfügung, die meist auf den Ordner $GLOBALS["thCMS_project"]."/media" verweist, aber durchaus auch woanders liegen kann.
Der Ordner in dem sich die Klassen und Templates befinden liegt meist unter /cms_includes und kann direkt über die Variable $GLOBALS["thCMS_project_includes"] angesprochen werden. Die Templates befinden sich demnach unter $GLOBALS["thCMS_project_includes"]."/templates", die Module unter $GLOBALS["thCMS_project_includes"]."/modul"
[bearbeiten] Clientseitige Pfade
Um ein Bild anzuzeigen nützt der Serverseitige Pfad wenig, da der Document-Root auf Serverseite ein beliebiges Unterverzeichnis sein kann, z.B. /srv/www/maxcms.de, im Browser aber direkt mit einem Domainnamen ohne weitere Pfadangabe erreicht wird, z.B. http://www.maxcms.de/
Ein Bild, das dann auf dem Server unter /srv/www/maxcms.de/media/test.jpg zu erreichen ist, wird über den Browser mit <img src="/media/test.jpg"> eingebunden.
Erschwerend kommt hinzu, das auf Testsystemen z.B. oft mehrere CMS-Installationen parallel in verschiedenen Unterordnern eingerichtet sind.
http://www.maxcms.de/projekt1/
http://www.maxcms.de/projekt2/
http://www.maxcms.de/projekt3/
In jedem der Projektordner ist ein komplettes eigenständiges MAXcms-Projekt installiert mit eigenem media-Ordner. Daher kann in den Templates der Projekte ein Bild nicht mit <img src="/media/..."> eingebunden werden, sondern mit <img src="/projekt1/media/..."> bzw. <img src="/projekt2/media/..."> usw.
Wird das Projekt dann nach Fertigstellung auf einen Produktivserver umgezogenliegt es entweder direkt im Hauptordner der Domain oder vielleicht auch unter einem anderen Verzeichnisnamen. Daher ist es sinnvoll den Ordner in dem ein Projekt installiert ist, nicht fest in alle Templates einzutragen, da sonst der Anpassungsaufwand enorm groß wird.
Innerhalb der Templates wird daher vor jedes Bild [[mediaPath]] geschrieben.
Beispiel: <img src="[[mediaPath]]/test.jpg">
Das CMS fügt selbstständig den passenden Projektpfad ein, wenn einer nötig ist.
Um unterhalb des media-Ordners den Ordner templatedata zu erreichen kann somit <img src="[[mediaPath]]/templatedata/test.jpg"> angegeben werden, zur Vereinfachung, da der templatedata-Ordner recht häufig verwendet wird, kann auch <img src="[[TmediaPath]]/test.jpg"> verwendet werden.
