Die Fragen kommen immer wieder auf...Soll ich den Domainnamen ins Template schreiben oder nicht? Warum bekomme ich Css, Js oder Bilder nicht vernünftig eingebunden und dies oder jenes wird nicht dargestellt?

 

Pfade und Url's

Vorab ein No-Go: Niemals irgendwo den Domainnamen eintragen.
Diese Domainangabe wird in Joomla zentral verwaltet. Ändert man beispielsweise den Webseiten-Zugriff von http://www auf http://ohne-www, müsste man diese Änderung überall von Hand eintragen. Also bitte niemals den Domainnamen dieser Joomla-Webseite in das Template oder sonstwo eintragen!

 

Domainnamen good practice

Der Joomla Php Ausdruck für diese Domain als absolute URL

/* 
* über die Funktion base wird das Protokoll, der Domainname 
* und ggf. der relative Pfad zu dieser Joomla-Installation
* mit diesem Ausdruck landet man immer in dieser Joomla Installation
*/
<?php echo JUri::base() ?>

Als Beispiel im Tempalte

<!-- Bitte darauf achten, das zwischen dem Php Ausdruck und images kein / (Schrägstrich) reingehört -->
<img src="/<?php echo JUri::base()?>images/irgendeinbildchen.jpg" />

Der Joomla Php Ausdruck für diese Domain als relative URL

/* 
* hier wird ausschließlich der relative Pfad zu dieser Joomla-Installation angezeigt
* also ohne http://www.domainname
*/
<?php echo $this->baseurl ?>

Als Beispiel im Template

<!-- Bitte darauf achten, das zwischen dem Php Ausdruck und images in jedem Falle der / (Schrägstrich) reingehört -->
<img src="/<?php echo $this->baseurl ?>/images/irgendeinbildchen.jpg" />

Soweit so gut, nun wissen wir, wie wir diese Joomla Installation mit der absoluten und relativen URL grundsätzlich ansteuern müssen.

Der Domainname kann sich ändern ohne dass wir von Hand im Template nacharbeiten müssten. Ähnlich flexibel sind wir bei der URL zum jeweiligen Template.

Ein weiteres No-Go: Den Template-Namen irgendwo im Template rein zu tippen. Ändert sich der Template Name, muss man wieder von Hand ran und diverse .css und .js Pfade anpassen

/* 
* hier wird der Template-Name ausgegeben
*/
<?php echo $this->template ?>

Als Beispiel im Template für Css Dateien

<link type="text/css" href="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" rel="stylesheet" >

Abschließend für den Zugriff auf Dateien und Ordner im Template sollte man das der Marke Sorglos, egal welche Domain oder Template schreiben

Relative Url zum Template

<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>

Absolute Url zum Template

<?php echo JUri::base() ?>templates/<?php echo $this->template ?>
Publiziert in Tutorial