it-swarm.com.de

Wie setze ich einen Cookie?

Ich muss ein Cookie für anonyme Benutzer in Drupal 8) speichern, wenn Benutzer die Site zum ersten Mal besuchen, das zum Anzeigen einer Nachricht verwendet wird.

Ich kann eine erfolgreich mit setcookie("FirstTimer", 1, strtotime('+1 year')); speichern, aber ich bin sicher, dass Drupal 8 sollte einige Alternativen haben.

Ich kann auch den folgenden Code verwenden.

$user_is_first_timer = !isset($_COOKIE["Drupal_visitor_FirstTimer"]);

Wenn ich es in Google Chrome öffne, funktioniert dies, aber wenn ich es inkognito oder in Firefox öffne, wird keine Nachricht angezeigt. Irgendwie werden zwischengespeicherte Seiten bereitgestellt.

Der Code wird in einer Implementierung von hook_page_attachments() verwendet.

6
Malabya Tewari

Wie bei Drupal 7) verwenden Sie user_cookie_save() . In Drupal 8 gibt es nur eine Methode in eine Kernklasse, die diese Funktion verwendet: SystemController::compactPage() .

Beachten Sie, dass die Funktion ein Array von Werten akzeptiert. Jeder Wert erhält ein eigenes Cookie. Außerdem stellt die Funktion Drupal.visitor dem Namen des Werts voran, um den Cookie-Namen zu erstellen. user_cookie_save(['myCookie' => 10]) erstellt also ein Drupal.visitor.myCookie - Cookie.

7
kiamlaluno