web-dev-qa-db-ja.com

クッキーを設定するにはどうすればよいですか?

匿名ユーザーの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()の実装で使用されます。

6
Malabya Tewari

Drupal 7と同様に、 user_cookie_save() を使用します。Drupal 8では、その関数を使用するコアクラス SystemController::compactPage()

関数は値の配列を受け入れることに注意してください。各値は独自のCookieを取得します。また、関数は値の名前の前にDrupal.visitor。を付加して、Cookie名を作成します。そのため、user_cookie_save(['myCookie' => 10])Drupal.visitor.myCookieCookieを作成します。

7
kiamlaluno