Dienstag, 25. August 2009

Typo3 rgtabs mit Mootools 1.21 (t3mootools)

Leider läßt sich rgtabs nicht so einfach mit den t3mootools zusammen benutzen. Dies liegt daran, dass bei den t3mootoools bereits die Version 1.21 von mootools eingesetzt wird.

T3MOOTOOLS
Die automatisch ausgewählten Anpassungen innerhalb des selbstgenerierten Skripts werden vollkommen korrekt bestimmt. Der Fehler liegt also nicht in der Selektion der richtigen Komponenten . Es ist ein reines Problem der neueren Version von mootools und muß mit einer Anpassung des Skripts gelöst werden.

RGTABS
Original Skript
Dazu müssen ein paar Anpassungen unter /typo3conf/ext/rgtabs/res/scripts/rgtabs.js eingefügt werden. Das geht relativ einfach, denn in rgtabs wird zurzeit die Version 1.0rc0 des "SimpleTabs - Unobtrusive Tabs with Ajax" Skripts von Harald Kirschner genutzt. Die neue Version 1.0 kann bereits mit der neuen mootools Version umgehen und hat die nötigen Änderungen einprogrammiert. Im Listing (siehe unten) sind diese Änderungen im Skript eingearbeitet.

Typo3 Änderungen
Der Autor von rgtabs, Georg Ringer, benutzt des weiteren ein paar spezifische Änderungen, wie die Möglichkeit zwischen den Tabs mit Pfeiltasten zu manövrieren. Um die Pfeiltasten einzublenden wird der Parameter "showMenuPrevNext" gesetzt. Das Menü kann sowohl oberhalb (default) als auch unterhalb angezeigt werden. Für das Menü ist der Parameter "showMenuBottom" zuständig.
Um diese Javascript Funktionen in typo3 nutzen zu können, müssen Sie am Ende der Funktion
function init($conf) in der Datei class.tx_rgtabs_pi1.php, die folgende Zeile ergänzen (Listing 1).

Listing 1:
$this->config['showMenuPrevNext'] = $this->conf['showMenuPrevNext'];


In der Funktion function getJs ($id,$count) ergänzt man noch das Listing 2.

Listing 2:
if ($this->config['showMenuBelow']==1) {
$js.= ', showMenuBelow:1';
}
// Zeilen eingefügt BEGIN
if ($this->config['showMenuPrevNext']==1) {
$js.= ', showMenuPrevNext:1';
}
// Zeilen eingefügt END

Tabs direkt aufrufen
Außerdem habe ich in der rgtabs.js noch die Funktion (Listing 3) hinzugefügt, so dass bestimmte Tabs aufgerufen werden können und für den Benutzer immer wieder das zuletzt aufgerufene Tab wieder erscheint. Diese Funktion ist auch auf der Seite von Harald Kirschner in den Kommentaren dokumentiert und im Listing bereits enthalten.

Listing 3:
Vor der Klasse werden diese beiden Zeilen hinzugefügt:
var selectedTab = Cookie.read('selectedTab');
if (!selectedTab) { selectedTab = 0; }

In der "options" Funktion wird die Zeile show: 0, durch
show: selectedTab,
ersetzt.

In der "select" Funktion wird die Zeile eingesetzt
var cookie = Cookie.write('selectedTab', index, {duration: 30});


Nun kann unter Typo3 mit dem Link (Listing 4) der dritte Tab ausgewählt werden.

Listing 4:
javascript: Cookie.write('selectedTab', 3, {duration: 30}); window.location.reload();


Ein vollständiges Listing der rgtabs.js kann bei ProNetwork heruntergeladen werden.

Donnerstag, 20. August 2009

Bei uns sind Ihre Daten gut geschützt

Vor unserem Rechenzentrum parken seit kurzem viele Polizeifahrzeuge...