匿名ユーザーのCookieをDrupal 8に保存する必要があります。これは、ユーザーが初めてサイトにアクセスしたときにメッセージを表示するために使用されます。
setcookie("FirstTimer", 1, strtotime('+1 year'));
を使用して1つを正常に保存できますが、Drupal 8にはいくつかの代替手段があるはずです。
次のコードも使用できます。
_$user_is_first_timer = !isset($_COOKIE["Drupal_visitor_FirstTimer"]);
_
Google Chromeで開くと動作しますが、シークレットモードまたはFirefoxで開くと、メッセージが表示されません。どういうわけかキャッシュされたページが提供されています。
コードは、hook_page_attachments()
の実装で使用されます。
Drupal 7と同様に、 user_cookie_save()
を使用します。Drupal 8では、その関数を使用するコアクラス SystemController::compactPage()
。
関数は値の配列を受け入れることに注意してください。各値は独自のCookieを取得します。また、関数は値の名前の前にDrupal.visitor。を付加して、Cookie名を作成します。そのため、user_cookie_save(['myCookie' => 10])
はDrupal.visitor.myCookieCookieを作成します。