[gelöst] Cookie soll gelöscht werden (nach bestimmter Zeit/Logout)
am 01.01.2011 - 02:03 Uhr in
Hallo Freunde,
ich nutze CollapsiBlocks um diverse Blöcke auf/zuklappbar zu machen. Die Angabe - ob der Block auf oder zugeklappt wurde - wird in einem Cookie gespeichert.
Das Setzen des Cookies wird über folgenden JS-Code gesteuert.
jQuery.cookie = function(name, value, options) {
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
// CAUTION: Needed to parenthesize options.path and options.domain
// in the following expressions, otherwise they evaluate to undefined
// in the packed version for some reason...
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else { // only name given, get cookie
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
};
Ich möchte erreichen, dass der Cookie, nach dem Logout, gelöscht wird, sodass, wenn ein User den Block zugeklappt hat, sich bei nächsten Einloggen der Block wieder aufgeklappt darstellt. Im Moment wird der Cookie beibehalten und der Block bleibt beim nächsten Login auch zugeklappt (wenn der User das bei vorherigen Login gemacht hat). Alternativ wäre es auch ok wenn der Cookie nach einer bestimmten Zeit gelöscht wird. Ich hatte dazu einfach mal testweise ...
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); auf
date.setTime(date.getTime() + (options.expires * 24)); (24 Sekunden)
geändert aber leider hatte dies keine Auswirkung.
Könnte mir hier vielleicht jemand auf die Sprünge helfen wie/wo man den Code anpassen müsste?
Danke schonmal im Voraus.
Schöne Grüße
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Ok - ich hab den Fehler
am 01.01.2011 - 02:12 Uhr
Ok - ich hab den Fehler selbst gefunden. Die Zeitangabe wird ja erst aktiv wenn man die URL wieder verlässt bzw. wenn man den Browser schließt. Das war mir nicht bewusst.
Jetzt klappt es wunderbar.
Drupal rockt!!!