При заходе пользователя на сайт рандомно генерится номер цветовой схемы, который в дальнейшем должен быть неизменен для пользователя на всём протяжении работы с сайтом. Хочу сохранить номер цветовой схемы. Искал информацию о cookies как на этом форуме, так и на drupal.org. Единственная страница, которая (вероятно) могла бы мне помочь, ссылается на похеренную ссылку: http://drupal.org/node/48448. Вопрос к умельцам: в каком файле и какую функцию надо использовать, чтобы оставить и забрать куки? Если можно, приведите конкретный пример.
Вот функция, которая работает с цветовыми схемами (template.php):
<?php
function template_preprocess_page(&$vars) {
// Случайно выбираем стиль гаммы страницы
$rand_index = mt_rand(0, 6);
$path_style1 = path_to_theme() .'/styles/gamma-'.$rand_index.'.css';
drupal_add_css($path_style1, 'theme', 'all', FALSE);
if (!
$vars['is_front']) {
$path_style2 = path_to_theme() .'/styles/secondary-defauts.css';
drupal_add_css($path_style2, 'theme', 'all', FALSE);
}
$vars['styles'] = drupal_get_css();
}
?>
Комментарии
А зачем куки? Пишите в объект $user или сессию
Спасибо, последовал совету сохранить переменную в сессии:
<?php
$path_style1 = path_to_theme() .'/styles/gamma-'.$rand_index.'.css';
drupal_add_css($path_style1, 'theme', 'all', FALSE);
$vars['styles'] = drupal_get_css();
function template_preprocess_page(&$vars) {
if (empty(
$_SESSION['usercolornum'])){$rand_index = mt_rand(0, 6);
$_SESSION['usercolornum'] = $rand_index;
}
else {
$rand_index = $_SESSION['usercolornum'];
}
if (!
$vars['is_front']) {$path_style2 = path_to_theme() .'/styles/secondary-defauts.css';
drupal_add_css($path_style2, 'theme', 'all', FALSE);
}
}
?>