Записать значение в куки перед загрузкой страницы

Аватар пользователя Artalek Artalek 3 декабря 2020 в 11:09

Здравствуйте, я подключил свою тему на сайте, теперь мне надо перед каждой загрузки страницы, чтобы в куки создавалась(обновлялась) язык сайта.

Сделал, вот так(расположение - /themes/mytheme/mytheme.theme):

<?php
function mytheme_preprocess_node(&$variables) {
    
$session = \Drupal::request()->getSession();
    
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
    
setcookie('lang_site'''time() - 3600);
    
setcookie('lang_site'$languagetime()+3600'/');
}
?>

Я думаю, что это вообще не правильно, т.к. еще он не всегда обновляет, 1-2 раза обновит и все, пока кэш не сбросишь.

Комментарии

Аватар пользователя Artalek Artalek 6 декабря 2020 в 12:13

Может кто подсказать?
Как можно перед загрузкой страницы перезаписывать в куки язык сайта?

Аватар пользователя VasyOK VasyOK 7 декабря 2020 в 13:37

А почему нет? Допустим пользователь зашел на сайт, выставил язык и при последующем входе этот язык по умолчанию.

Аватар пользователя Artalek Artalek 7 декабря 2020 в 13:47

Долго рассказывать, мне приходится использовать iframe на сайте, и там надо получить какой язык на сайте, и я нашёл единственный вариант через куки.

Аватар пользователя gun_dose gun_dose 7 декабря 2020 в 14:40

Я хз, никогда не пользовался этой опцией) У меня обычно языки по префиксам пути различаются.

Аватар пользователя gun_dose gun_dose 8 декабря 2020 в 9:22

А зачем вообще куки? Друпал ставит на тег html атрибут lang. Можно использовать его значение через jQuery.

Аватар пользователя gun_dose gun_dose 8 декабря 2020 в 9:35

То есть после того фрагмента кода, что вы привели в первом посте, вы не знаете, как получить текущий язык в PHP? Серьёзно?

Аватар пользователя Artalek Artalek 8 декабря 2020 в 9:41

я Вам говорю, что на странице я подключаю Iframe, и в нем мне надо получить язык сайта

Аватар пользователя gun_dose gun_dose 8 декабря 2020 в 11:07

Из вашей постановки задачи абсолютно ничего непонятно. А именно:
1. Непонятно, вы вставляете друпаловский айфрейм на сторонний сайт, либо сторонний айфрейм на дрпаловский сайт.
2. Непонятно, язык какой страницы вы хотите получить - той, на которой расположен айфрейм или той, которая внутри айфрейма.
3. вы "подключаете айфрейм" - что под этим подразумевается? Вы его выводите текстом, хардкодите в шаблон, выводите через модуль iframe или как?

Аватар пользователя Artalek Artalek 8 декабря 2020 в 12:06

1. сторонний айфрейм на дрпаловский сайт
2. Сайт где расположен iframe, Сайт Друпал.
3. Кодом, через тег в шаблоне

Аватар пользователя Artalek Artalek 8 декабря 2020 в 15:46

Об этом тоже думал, но этот вариант не подходит, т.к. в этом фрейме можно переходить по страницами, и получается, что ссылка уже меняется.
Самый лучший способ это либо в Сессию, либо в Куки, но в Сессию не получится, т.к. Сессия Друпала и Фрейма отличается.