09. September 2010 10:20
Willkommen Gast 
Sie befinden sich hier  Artikel: Panel-Status speichern, aber wie?!
Panel-Status speichern, aber wie?!
Damit dieses gelingt, benötigt ihr allererst die [b]flipBox-Funktion[/b] der v7.

[code]function flipBox(who) {
var tmp;
if (document.images['b_' + who].src.indexOf('_on') == -1) {
tmp = document.images['b_' + who].src.replace('_off', '_on');
document.getElementById('box_' + who).style.display = 'none';
if (document.getElementById('box_' + who + '_diff')) {
document.getElementById('box_' + who + '_diff').style.display = 'block';
}
document.images['b_' + who].src = tmp;
disply = 'none';
now = new Date();
now.setTime(now.getTime()+1000*60*60*24*365);
expire = (now.toGMTString());
document.cookie = "fusion_box_"+who+"=" + escape(disply) + "; expires="+expire;
} else {
tmp = document.images['b_' + who].src.replace('_on', '_off');
document.getElementById('box_' + who).style.display = 'block';
if (document.getElementById('box_' + who + '_diff')) {
document.getElementById('box_' + who + '_diff').style.display = 'none';
}
document.images['b_' + who].src = tmp;
disply = 'block';
now = new Date();
now.setTime(now.getTime()+1000*60*60*24*365);
expire = (now.toGMTString());
document.cookie = "fusion_box_"+who+"=" + escape(disply) + "; expires="+expire;
}
}[/code]

Diese speichert den in der Funktion mitgegebenen Parameter in einem Cookie mit dem aktuellen Status ab (fusion_box_PanelName = Status).
Dazu den Code kopieren und mit dem in eurer [b]jscript.js[/b] (im includes/-Ordner) ersetzen. Habt ihr bereits die v7, so könnt ihr diesen Schritt überspringen.

Dann benötigt ihr eine Funktion, die die Panel-Namen formatiert, d.h. Sonderzeichen, Leerzeichen werden ersetzt, damit der Cookie vernünftig abgespeichert werden kann.

[code]function format_string($string) {
$string = preg_replace("/[[:punct:]]/", "-", $string);
$string = preg_replace("/[[:space:]]/", "-", $string);
$string = preg_replace("/[^[:alnum:]-]/", "", $string);
$string = preg_replace("/[-]+/", "-", $string);
$string = strtolower($string);
return $string;
}[/code]

Diese Funktion kopiert ihr an das Ende der maincore.php, aber noch vor dem ?> ! ;)

Jetzt kommt der eigentliche Teil !
Öffnet die theme.php eures Themes und scrollt bis zu der Funktion opensidex(...) { (v6) - bei v7 bleibt es bei der openside(...) {
In den runden Klammern dieser Funktionen sollte ein Parameter $state oder ähnlich vorhanden sein, der den Status des Panels beeinflusst.
Hier müssen wir ansetzen !
Oberhalb in der Funktion verschaffen wir uns nun ein bisschen Platz und fügen folgenden Code ein:

[code]$cookie_name = "fusion_box_".format_string($title);
if(isset($_COOKIE[$cookie_name])) {
$state = $_COOKIE[$cookie_name] == 'none' ? "off" : "on";
}[/code]

Wenn nun ein Cookie existiert, wird geprüft, welchen Wert dieser hat - in unserem Fall welchen Status - und zudem die Variable $state dementsprechend geändert. Sollte eure Status-Variable anders heißen, so müsst ihr $state anpassen.

Wenn ihr nun weiterschaut, müsstet ihr zudem eine Variable $boxname oder ähnlich finden, die ihr folgender anpasst bzw. schreibt:

[code]$boxname = format_string($title);[/code]

Prüft zuletzt noch in dieser PHP-Funktion, welcher Parameter in der JS-Funktion flipBox übergeben wird. Wenn dieser $boxname oder ähnlich ist, ist alles in Ordnung, andernfalls bitte anpassen.

Beispiel:


[code]... onclick=\"flipBox('".$boxname."');\" ...[/code]

Login
Benutzername

Passwort



Noch kein Mitglied?
Registriere dich jetzt.

Passwort vergessen?
Jetzt ein neues Passwort zuschicken lassen.
Neuste Artikel
TeamSpeak2 / IC ComTec
Winamp-Status für diese Seite einrichten
Momentane Seite bei Login beibehalten
Panel-Status speichern, aber wie?!
ReadMe: ClanMOD 1.0
Mitglieder Umfrage
Wie gefällt euch unser neues Design?









Nur Mitglieder können an der Umfrage teilnehmen.