Ich übernehme hier mal Leos Beitrag aus dem alten Forum mit den Infos welche Anpassungen man bei einem Update von TL 2.6.x auf die Version 2.7.x machen muss:
In der Version 2.7 habe ich endlich ein paar Änderungen vorgenommen, die wir in der Vergangenheit aus Gründen der Abwärtskompatibilität vermieden hatten. Außerdem habe ich etlichen veralteten Code entfernt und alle (!) Sprachdateien überarbeitet, so dass ihr als Entwickler, Übersetzer oder Systemadmin mit einigen Anpassungsarbeiten rechnen solltet
1. Template nav_default
Das p-Tag, das bisher den aktiven Menüpunkt markiert hatte, wurde nun endgültig aus Gründen der Barrierefreiheit durch ein span-Tag ersetzt. Das erfordert jedoch entweder die Anpassung des CSS-Codes oder die Erstellung eines eigenen Templates, in dem das p-Tag wieder eingefügt wird.
2. Klasse "error" in Formularfeldern
Bisher hatte in Formularen nur das div-Tag mit der Fehlermeldung die Klasse "error". Ab der Version 2.7 wird diese jedoch allen Feldelementen zugewiesen (label, input field und Fehlermeldung), damit man mehr Kontrolle über die Formatierung hat. Das erfordert die Anpassung des CSS-Codes mit möglichst exakten Selektoren (z.B. div.error, p.error anstatt nur .error).
Widget-Fehlermeldungen werden zukünftig nicht mehr als DIV-, sondern als P-Tags ausgegeben. Damit wird das Verhalten des Formulargenerators an das der Module angeglichen, die Fehlermeldungen schon immer als P-Tags rendern. Zudem erspart es das zusätzliche Anlegen einer Formatdefinition div.error und verhindert unklare Referenzierungen der Checkbox- und Radio-Widgets. Die Änderung wird jedoch erst ab der Version 2.7.0 enthalten sein.
3. Mootools Version 1.2
Auch wenn die erste Beta-Version (2.7.RC1) noch mit mootools 1.1 läuft, wird die JavaScript-Bibliothek mit dem nächsten Release aktualisiert (2.7.RC2). Eigene mootools-Skripte müssen dann eventuell an die neue Syntax angepasst werden.
4. Datumsformat bei Nachrichten entfällt
Das Feld "Datumsformat", das es bisher bei den Nachrichtenmodulen gegeben hat, entfällt in der Version 2.7 komplett, weil es endlich eine Möglichkeit gibt, im Frontend Text-Datumsformate zu definieren (z.B. 28. Januar 2009). Wer trotzdem ein individuelles Datumsformat bei Nachrichten braucht, kann das Template entsprechend anpassen (auch dort können jetzt Text-Datumsformate mittels $this->formatDate($format, $date); geparst werden).
5. Textausrichtung bei Inhaltselementen und Modulen entfällt
Das Auswahlmenü "Textausrichtung", das bisher bei Inhaltselementen und Modulen verfügbar war, entfällt in der Version 2.7 komplett, weil es in der Vergangenheit zu vielen Verwirrungen geführt hat (z.B. funktioniert es bei Text anders als bei Tabellen oder Bildern). Die Ausrichtung sollte zukünftig über eine CSS-Klasse oder den Rich Text Editor erfolgen.
6. Geänderte Redirect-Header
Die zentrale Funktion redirect() wurde an den HTTP/1.1-Standard angepasst und sendet nun standardmäßig einen 303 See Other Header. Um eine permanente oder temporäre Weiterleitung einzurichten, muss nun als zweites Argument der Statuscode übergeben werden und nicht mehr wie bisher true oder false!
Code:
$this->redirect($target); // 303 See Other
$this->redirect($target, 302); // 302 Found
$this->redirect($target, 301); // 301 Moved Permanently
7. IE8-spezifische Stylesheets
Die IE8-Kompatibilität konnte leider trotz bestandenem Acid-Test nur mit einer zusätzlichen ie8fixes.css umgesetzt werden, daher müssen alle eigenen Backendtemplates angepasst werden. Falls individuelle Backend-Themes verwendet werden, sollten zusätzlich die Änderungen an den vorhandenen Stylesheets nachvollzogen werden.
Neue Reihenfolge der Stylesheets im Template be_main:
Code:
<link rel="stylesheet" type="text/css" href="system/themes/<?php echo $this->theme; ?>/basic.css" media="screen" />
<link rel="stylesheet" type="text/css" href="system/themes/<?php echo $this->theme; ?>/main.css" media="screen" />
<link rel="stylesheet" type="text/css" href="plugins/calendar/calendar.css" media="screen" />
<?php if ($this->be27): ?>
<link rel="stylesheet" type="text/css" href="system/themes/<?php echo $this->theme; ?>/be27.css" media="screen" />
<?php endif; ?>
<?php if ($this->isMac): ?>
<link type="text/css" rel="stylesheet" href="system/themes/<?php echo $this->theme; ?>/macfixes.css" media="screen" />
<?php endif; ?>
<!--[if lte IE 7]><link type="text/css" rel="stylesheet" href="system/themes/<?php echo $this->theme; ?>/iefixes.css" media="screen" /><![endif]-->
<!--[if IE 8]><link type="text/css" rel="stylesheet" href="system/themes/<?php echo $this->theme; ?>/ie8fixes.css" media="screen" /><![endif]-->
<?php echo $this->stylesheets; ?>
8. Modul Mini-Kalender
Das Modul Mini-Kalender entfällt in der Version 2.7 komplett. Stattdessen kann man die Ansicht "Mini-Kalender" als Template im Kalendermodul auswählen. Neben der flexibleren Möglichkeit, eigene Layouts umzusetzen, ergeben sich daraus eventuell Änderungen am CSS-Code:
Code:
/* Ab 2.7 nicht mehr möglich */
.mod_calendar td { … }
.mod_minicalendar td { … }
/* Schon immer möglich, ab 2.7 empfohlen */
table.calendar td { … }
table.minicalendar td { … }
9. Newsletter-Templates
Das Menü zum Auswählen der Verteiler, die abonniert bzw. gekündigt werden sollen, kann zukünftig versteckt werden. In diesem Fall ist die Auswahl der Verteiler statisch und kann nicht vom Besucher angepasst werden. Damit das funktioniert, ist eine Anpassung des Templates "nl_default.tpl" notwendig:
Code:
<input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formId; ?>" />
<?php if (!$this->showChannels): ?>
<?php foreach ($this->channels as $id=>$title): ?>
<input type="hidden" name="channels[]" value="<?php echo $id; ?>" />
<?php endforeach; ?>
<?php endif; ?>
<input type="text" name="email" class="text" value="<?php echo $this->email; ?>" />
<?php if ($this->showChannels): ?>
<div class="checkbox_container">
<?php foreach ($this->channels as $id=>$title): ?>
<span><input type="checkbox" name="channels[]" id="opt_<?php echo $this->id; ?>_<?php echo $id; ?>" value="<?php echo $id; ?>" class="checkbox" /> <label for="opt_<?php echo $this->id; ?>_<?php echo $id; ?>"><?php echo $title; ?></label></span>
<?php endforeach; ?>
</div>
<?php endif; ?>
<input type="submit" name="submit" class="submit" value="<?php echo $this->submit; ?>" />
10. Alte Navigationsmodule wurden entfernt
Die beiden Navigationsmodule "Navigation Hauptpunkte" (NavigationMain) und "Navigation Unterpunkte" (NavigationSub) entfallen komplett. Durch Nutzung des auch vorher schon vorhandenen Moduls "Navigation" mit der Angabe eines Start- und Stoplevels können beide Modulformen nachgebildet werden.
NavigationMain = Navigation mit Startlevel 0, Stoplevel 1 und "Hard Limit"
NavigationSub = Navigation mit Startlevel 1 und beliebigem oder keinem Stoplevel
Nach der Umstellung müssen unter Umständen noch die CSS-Angaben angepasst werden, falls .mod_navigationMain oder .mod_navigationSub zur Referenzierung im Stylesheet verwendet wurden. Die CSS-Eigenschaften können nun entweder durch Verschachtelung der CSS-Anweisungen #header .mod_navigation bzw #left .mod_navigation oder durch die Vergabe einer CSS-ID angesprochen werden.
11. Anpassung des einspaltigen Login-Templates
Das Login-Template "mod_login_1cl" wird an den Aufbau der tabellenlosen Formularfelder angepasst.
Code:
<form action="<?php echo $this->action; ?>" method="post">
<div class="formbody">
<?php if ($this->message): ?>
<p class="error"><?php echo $this->message; ?></p>
<?php endif; ?>
<input type="hidden" name="FORM_SUBMIT" value="tl_login" />
<label for="username"><?php echo $this->username; ?></label>
<input type="text" name="username" id="username" class="text" maxlength="64" value="<?php echo $this->value; ?>" /><br />
<label for="password"><?php echo $this->password; ?></label>
<input type="password" name="password" id="password" class="text password" maxlength="64" value="" /><br />
<div class="submit_container">
<input type="submit" class="submit" value="<?php echo $this->slabel; ?>" />
</div>
</div>
</form>
Außerdem erhalten die Templates die Klasse "tableless" (einspaltig) bzw. "tableform" (zweispaltig).
Sonstige Anmerkungen von Nutzern und Leos Antworten darauf:
marcus: ist es korrekt, wenn beim Login-Template hinter dem Label kein <br /> steht? Bei mir funktioniert das einspaltige Formular nur, wenn ich dies entsprechend im Template anpasse.
Leo: Ja, das ist korrekt. Die Ausgabe wurde der des Formulargenerators angepasst. Eine Funktionsstörung kann das jetzt nicht mehr vorhandene <br />-Tag jedoch sicherlich nicht verursachen.
andreas.schempp: mir ist aufgefallen das in der tl_module das Feld "searchable" nicht mehr vorhanden ist. Wurde diese Funktion entfernt oder umbenannt oder etwas ähnliches?
Leo: Das Feld wurde entfernt. Man kann ja im Template festlegen, ob ein Modul indiziert wird oder nicht.
Lesezeichen