Как я могу установить выбранное пользователем значение фильтра представлений местоположения для всего веб-сайта Drupal 6?

В настоящее время я работаю над веб-сайтом, на котором перечислены предприятия либо по их местонахождению, либо по категории, к которой они принадлежат. Проверьте: http://frugalmillionaire.net/

Реализованные существующие функциональные возможности (представления, CCK и таксономия):

При щелчке по ссылкам основного меню бизнес-категория передается в качестве аргумента в представление. Следовательно, в представлении отображаются списки компаний только определенной категории. Также для реализации блока «Найти местные купоны»; фильтр того же вида отображается в блоке.

Мой клиент хочет дать пользователю возможность указать свое местоположение на веб-сайте. Как только пользователь устанавливает это местоположение, после щелчка по ссылкам в главном меню (Ресторан) должны быть перечислены только те рестораны, которые имеют заданное местоположение. Аналогичным образом, щелчок по любой из ссылок основного меню должен отображать только предприятия указанного местоположения.

Возможные способы сделать это: 1) Установить значение, выбранное пользователем в выставленном фильтре. Как это может быть сделано? 2) Использование файлов cookie. Могу ли я как-то этого добиться с помощью файлов cookie Drupal?

Пожалуйста, помогите мне. Любая помощь / указатели / соответствующие ссылки будут глубоко признательны.

Спасибо


person Sbhambry    schedule 08.09.2009    source источник
comment
Так же, как и помощник, модуль geo может делать отличные вещи с местоположением и видами.   -  person Jeremy French    schedule 09.09.2009


Ответы (1)


Я думаю, вы спрашиваете о трех разных вещах.

1. Как получить информацию о местоположении от текущего пользователя и сохранить ее? Если пользователь задает и забывает свое местоположение, создайте поле профиля. Модуль Location может помочь. Если пользователь просто вводит местоположение для временного использования, сохраните его в своем сеансе.

2. Как оформить сайт на основе местоположения пользователя? можно использовать hook_menu_alter (), чтобы изменить действия ваших основных ссылок на основе пользовательских данных.

3. Как предварительно загрузить бизнес-представления на основе этого местоположения?

  1. Вызовите представление программно, где информация о местоположении (если она доступна) вставляется вместо открытых фильтров. Документация по полезным представлениям.

  2. Установите соответствующую информацию в вашем представлении с аргументами. Установите значение по умолчанию для местоположения пользователя. Поскольку вы полагаетесь на динамическое значение по умолчанию, вам никогда не нужно отправлять «настоящий» аргумент в представление.

person Grayside    schedule 11.09.2009
comment
Большое спасибо за то, что нашли время ответить на этот вопрос. То, что вы говорите, правильно. Однако после такого чистого анализа поставленной вами проблемы я убежден, что для ее решения потребуется довольно много кода. В настоящее время я все еще учусь :). Тем не менее, спасибо за ответ .. - person Sbhambry; 11.09.2009
comment
Имейте в виду, что для Компонента № 3 я дал два разных варианта, а не два шага к одному решению. - person Grayside; 15.09.2009