В ядро семёрки входит небольшой jQuery плагин — Cookie plugin 1.0, с помощью которого можно из javascript добавлять, изменять и удалять куки.
Перед тем как использовать плагин, его нужно подключить одним из двух способов:
// способ подключения в конструкторе формы
$form['#attached']['library'][] = array('system', 'jquery.cookie');
// общий способ подключения
drupal_add_library('system', 'jquery.cookie');
После этого в js станет доступна ф-я $.cookie
:
var myCookie = $.cookie('myCookie'); // получение значения куки myCookie
$.cookie('myCookie', 'some val'); // установка значения куки myCookie
$.cookie('myCookie', null); // удаление куки myCookie
Пример установки куки с дополнительными параметрами:
$.cookie('myCookie', 'some val', {
path: Drupal.settings.basePath,
expires: 365
});
Написанное актуально для
Drupal 7
Похожие записи
- Модуль DataTables — шустрые javascript таблицы с помощью Views
- Как открыть в Fancybox любую страницу сайта
- Как из Javascript-a подключить Lightbox к определённым элементам
- Новый видео-курс от Lullabot — jQuery and JavaScript in Drupal
- Модуль Fancybox — удобный просмотр изображений в всплывающих окнах
Комментарии
Ни одного коммента...((( Оставлю первый.
Плагин нужный, удобный. Жаль что я только что о нём узнал. Нужно было как то сохранить для юзера фразу по которой пришел. Куки - самое удобное место. Я пытался как то через сессию(php) - но это даже для зарегиных не правильно работает, видимо мешает кеширование.
Надо внимательней изучать папку: /misc...)))
Ещё пример как можно использовать:
Теперь у меня появилось желание составить свой список, а то он пока что только в голове: "Самые используемые плагины jQuery".
Подобное раньше изучал - кто какие модули drupal использует.
Опять здесь только я пишу...)))
Как получить куку во вьюсе?
Например сделать представление для анонимов: Вы это смотрели или Вы это хотите сравнить...
И по сложнее: если включено разное кеширование, модуль Boost...
контекстный фильтр по nid - return $nids_from_cookie;
Если пропустить аргумент - expires, срок действия cookie истечет с окончанием сессии (при закрытии броузера).
как в $.cookie положить title страницы а на нужной странице достать title страницы с которой пришел пользователь?
Ну это же элементарно, ватсон.
а это работает по сей день?
drupal 8 пока вроде не вышел
написано актуально для 7ки, но че то не пашет
Что не пашет? Трактор на поле?
Пишите конкретно и как можно подробнее. Что делали, куда вставили, что должно получиться... Здесь ванг нету...)))
в
preprocess_page();
подключаюdrupal_add_library('system', 'jquery.cookie');
в js файле пишу$.cookie('myCookie', 'some val');
в консоле дает ошибку неизвестная функция - $.cookie1. Проверить - подключился ли файл - отключить агрегацию js - найти подключенный файл в - найти файл физически на сервере - /misc/jquery.cookie.js
Кстати, стоит поставить jquery_update - там он обновляется тоже - /sites/all/modules/jquery_update/replace/ui/external/jquery.cookie.js
А вы в js файле обернули функцию - чтобы доллар использовать?
2. В Drupal 7 нужно дополнительно обернуть код в:
(function($) {
...
}(jQuery));
3. Я подключаю в своей теме в template.php
Хотел сказать, что слишком много кук для домена браузер не разрешит. Обычно это около 20.
Так что лучше использовать массив, но записывать его строкой.
http://javascript.ru/forum/jquery/14048-massiv-v-cookie.html#post85337 - это решение мне показалось удачным.
Если подключать так, сайт уходит в циклическую переадресацию, лечится переустановкой global redirect. Непонятно почему...
а как потом эту куку прочитать в php
в js работает
var mail1 = $("#edit-mergevars-email").val();
$.cookie('usermail', mail1);
приложение в браузере куку видит а друпал $mail = $_COOKIE['usermail'];
сорри не дописал друпал не видит
Добавить комментарий