Alle Bilder, JavaScript- und Stylesheet-Dateien von Stud.IP liegen in einem gemeinsamen Verzeichnis public/assets
(siehe zum Beispiel: http://develop.studip.de/trac/browser/trunk/public/assets)
Ausserdem exisitiert die Konfigurationsvariable $GLOBALS['ASSETS_URL']
, die eine URI zu diesem Verzeichnis enthält. Standardmässig verweist diese auf das relativ zur jeweiligen Stud.IP-URI gelegene Verzeichnis assets
.
Beispiel: Ein Stud.IP liegt unter https://www.meinstudip.de
, dann liegt das Assets-Verzeichnis standardmässig unter https://www.meinstudip.de/assets
.
Zweck dieser Übung ist, statische Inhalte von anderen Servern ausliefern zu können, um so die eigentlichen Webserver zu entlasten. Ein speziell eingerichteter Assets-Webserver ist viel effizienter in der Auslieferung der statischen Inhalte, als das der normale Webserver könnte.
Vorraussetzung ist ein bereits vorhandener Webserver, der als Assets-Webserver dienen kann. In dieser Hinsicht ist lighttpd sehr zu empfehlen. Kopieren Sie nun einfach das komplette assets
-Verzeichnis in Ihren Webbereich und notieren Sie sich die URI für dieses Verzeichnis. In Ihrer Stud.IP-Installation öffnen Sie die Konfigurationsdatei config/config_local.inc.php
und suchen Sie dort nach dem Text $ASSETS_URL = $ABSOLUTE_URI_STUDIP . 'assets/';
, den Sie dann in die oben notierte URI ändern müssen. '''Achten Sie darauf, dass die $ASSETS_URL
mit einemn Slash enden muss.
Um Bilder, JavaScripts usw., die sich im Assets-Verzeichnis befinden, im HTML-Markup ansprechen zu können, bestünde selbstverständlich die Möglichkeit, direkt die globale Variable $ASSETS_URL
zu verwenden. Einfacher geht es aber mit der Klasse Assets
. Deren Verwendung soll hier kurz dargestellt werden.
echo Assets::img('blank.gif');
gibt einen kompletten Image-Tag aus:
[[- <img alt="Blank" src="assets/images/blank.gif" /> -]]
Will man das alt
-Attribut ändern oder weitere Attribute hinzufügen, kann man einfach als zweiten Parameter ein Array von Attribut => Attributwerten hinzufügen:
[[- echo Assets::img('blank.gif', array('alt' => 'nothing here', 'class' => 'some_class')); <img alt="nothing here" class="some_class" src="assets/images/blank.gif" /> -]]