Joomla! Wartung/Migration/1.0 zu 1.5/Template-Migration/Index

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] HTML Referenz

Weitere Informationen: index.php

[Bearbeiten] Zugriffskontrolle

Damit Sie auch ohne aktviertem Legacy Plugin auf Ihr Template zugreifen können, müssen einige Änderungen am Template vorgenommen werden. Zu Beginn einer jeden ausführbaren Datei in Joomla!, und damit auch Ihrem Template, wird geprüft ob ein direkter Aufruf erfolgt ist, oder die Datei Joomla! konform aufgerufen wurde.

Um überhaupt (ohne aktiviertem Legacy Plugin) auf das Template zugreifen zu können, muss der Zugriffstest, der direktes Aufrufen des Templates verhindert, angepasst werden. In Joomla! 1.5 wird _VALID_MOS zu _JEXEC.

<?php defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' ); ?>

wird zu

<?php defined('_JEXEC') or die('Restricted access'); ?>

[Bearbeiten] Encoding/Sprache/Richtung

Seit der Version 1.5 bietet Joomla! durchgenende Unterstützung des UTF8 Zeichensatzes, Waren vorher noch Tests nötig sind diese nun überflüssig. Darüber hinaus können Sie nun im Template die Sprache und die Schriftrichtung automatisch ausgeben lassen. Nutzen Sie dazu die Variablen $this->language bzw. $this->direction.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php $iso = split( '=', _ISO );
echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
?>
<html xmlns="http://www.w3.org/1999/xhtml">

wird zu

<?php echo '<?xml version="1.0" encoding="utf-8"?'.'>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >

[Bearbeiten] Head

Joomla! 1.5 generiert den Großteil der benötigten Angaben für den Kopf Bereich der Seite selbst. Ersetzen Sie deshalb Ihre Angaben durch den folgenden Befehl: <jdoc:include type="head" />. Es ist so nun beispielsweise nicht mehr nötig explizit den Editor zu laden oder verschiedene Metatags zu definieren.


Joomla! 1.5 generiert den Großteil der benötigten Angaben für den Kopf Bereich der Seite selbst. Ersetzen Sie deshalb Ihre Angaben durch den folgenden Befehl: <jdoc:include type="head" />. Es ist so nun beispielsweise nicht mehr nötig explizit den Editor zu laden oder verschiedene Metatags zu definieren.

<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<?php mosShowHead(); ?>
<?php
if ( $my->id ) {
	initEditor();
}
 
[...]
 
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />

wird zu

<jdoc:include type="head" />

Wie alle Funktionen mit mos im Namen, so wurde auch mosCountModules() durch eine Joomla! 1.5 Methode, in dem Fall $this->countModules() ersetzt. Das Besondere an dieser Methode ist, dass damit mehrere Modulpositionen gleichzeit getesten werden kann (or).

if ((mosCountModules( 'user1' )) && (mosCountModules( 'user2' ))) {
//if both modules are loaded, we need a 50%-layout for them
	$usera = 'user1';
	$userb = 'user2';
} else if ((mosCountModules( 'user1' )) || (mosCountModules( 'user2' ))) {
// if only one, then 100% no matter which one.
	$usera = 'user3';
	$userb = 'user3';
}
?>

wird zu

<?php
if (($this->countModules('user1') && $this->countModules('user2')) {
//if both modules are loaded, we need a 50%-layout for them
	$usera = 'user1';
	$userb = 'user2';
} else if ($this->countModules('user1 or user2')) {
// if only one, then 100% no matter which one.
	$usera = 'user3';
	$userb = 'user3';
}
?>

[Bearbeiten] Stylesheets/Javascript

In Joomla! 1.0 war es Brauch die Haupt CSS Datei template_css.css zu nennen. In Joomla! 1.5 wurde diese zu template.css.

Weitere Informationen: CSS Dateien Migrieren

Es gibt zwei sinnvolle Möglichkeiten eine CSS Datei auszugeben. Die erste funktioniert mittels der Joomla! Klasse JHTML, die zweite ist das Schreiben des kompletten Aufrufes in die index.php. Normalerweise ist die erste Methode vorzuziehen, aber in einem Template sollte die zweite genutzt werden, damit die CSS Dateien als letztes eingebunden werden und somit nicht von einer Komponenten CSS Datei überschrieben werden kann. Es werden hier beide Methoden vorgestellt.

Mittels dem Objekt $this->template erhalten Sie den aktuellen Templatenamen. $this->baseurl liefert den Pfad zum Joomla! root.

<link href="<?php echo $mosConfig_live_site; ?>/templates/madeyourweb/css/template_css.css" rel="stylesheet" type="text/css" />
<link href="<?php echo $mosConfig_live_site; ?>/templates/madeyourweb/css/css_color_green.css" rel="stylesheet" type="text/css" />

wird zu

(nicht empfehlenswert)

$csspath = 'templates/'.$this->template.'/css/';
JHTML::_('stylesheet', 'template.css', $csspath);
JHTML::_('stylesheet', 'css_color_green', $csspath);

oder

(empfehlenswert)

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

Javascript wird im Regelfall genauso eingebunden, aber da in diesem Template kein Javascript genutzt wird, wird hier nicht weiter darauf eingegangen.

[Bearbeiten] Module

Im Body wird nun wie oben jedes mosCountModules mit $this->countModules ersetzt. Das Laden der Module selbst übernimmt nun <jdoc:include type="modules" name="[...]" style="[...]" />, wobei name der Name der Modulposition und style der Anzeigetyp ist. Aktuell gibt es sechs verschiedene "Styles":

rounded
Die Module werden in 4 divs ausgegeben (entspricht in Joomla! 1.0 den Wert -3)
none
Die Module werden unformatiert ausgegeben (entspricht in Joomla! 1.0 den Wert -1)
table
Die Module werden in einer Tabelle ausgegeben (entspricht in Joomla! 1.0 den Wert 0)
horz
Die Module werden horizontal in verschachtelten Tabellen angezeigt (entspricht in Joomla! 1.0 den Wert 1)
xhtml
Die Module werden in einem div ausgegeben (entspricht in Joomla! 1.0 den Wert -2)
outline
Die Module werden ausgegeben, wie wenn der Parameter tp gesetzt worden wäre
<?php mosLoadModules ( 'user4',-1); ?>
 
<?php mosLoadModules ( 'user3',-1); ?>
 
<?php mosLoadModules ( 'user2',-2); ?>
 
<?php mosLoadModules ( 'user1',-2); ?>
 
<?php mosLoadModules ( 'banner',-1); ?>
 
<?php mosLoadModules ( 'top',-3); ?>
 
<?php mosLoadModules ( 'left',-3); ?>
 
<?php mosLoadModules ( 'right',-3); ?>
 
<?php mosLoadModules ( 'debug',-1); ?>

werden zu

<jdoc:include type="modules" name="user4" style="none" />
 
<jdoc:include type="modules" name="user3" style="none" />
 
<jdoc:include type="modules" name="user2" style="xhtml" />
 
<jdoc:include type="modules" name="user1" style="xhtml" />
 
<jdoc:include type="modules" name="banner" style="none" />
 
<jdoc:include type="modules" name="top" style="rounded" />
 
<jdoc:include type="modules" name="left" style="rounded" />
 
<jdoc:include type="modules" name="right" style="rounded" />
 
<jdoc:include type="modules" name="debug" style="none" />

Für den Footer gibt es in Joomla! 1.5 auch ein extra Modul.

<?php include_once( $mosConfig_absolute_path .'/includes/footer.php' ); ?>

wird zu

<jdoc:include type="modules" name="footer" />

Das selbe gilt für die Breadcrumbs.

<?php mospathway() ?>

wird zu

<jdoc:include type="modules" name="breadcrumb" />
Info.png
Besonders zu beachten ist, dass die Joomla! 1.5 Module NICHT mehr in PHP Tags stehen; das heißt <?php ?> müssen mit entfernt werden. Achten Sie weiterhin darauf, dass die zurück gebliebenen <?php ?> Tags richtig geöffnet und geschlossen werden.

[Bearbeiten] Content

Der Contentbereich bekommt auch einen neuen Befehl: <jdoc:include type="component" />. Dazu fügen wir auch noch <jdoc:include type="message" /> hinzu. Damit werden Systemnachrichten (wie Fehler- und Erfolgsmeldungen) ausgegeben.

<?php mosMainBody(); ?>

wird zu

<jdoc:include type="message" />
<jdoc:include type="component" />

[Bearbeiten] Abschluss

Zum Schluss müssen noch ein paar Aufräumarbeiten gemacht werden.

$mosConfig_live_site

wird zu

$this->baseurl

und

$GLOBALS['cur_template']

wird zu

$this->template

Somit ist die migrierte index.php des Templates Joomla! 1.5 native.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge