Занялся я на выходных созданием портала об архитектуре, выбрал Drupal, и в принципе всем доволен, но есть немного вопросов, ответ на которые достаточно сложно получить, не могли бы вы мне помочь?:) Использую Drupal 7.7 голый.
Итак, вопросы:
1. Каким образом можно реализовать в друпале следующее: допустим есть здание, оно было построено в 1948 году, также есть здание, дата постройки которого конец 1940-хх (1947-1949), и хотелось бы чтобы при сортировке по нажатию на 1948, выходили все здания, у которых конец 1940-хх. То есть он бы считывал диапазон и подставлял дату. Также необходимо чтобы в этом поле можно было указать несколько дат (допустим здание построено в 1947, реконструкция в 1989). С помощью чего это можно реализовать? Какой тип поля в данном случае должен быть?
2. Также хочу сделать карту. Есть тип материала объект, надо чтобы данный материал помещался на карту (гмапс или ямапс роли не играет) с иконкой в зависимости от значения в определённом поле данного типа. Посмотрел в сторону модуля gmaps — но там только девелопмент релиз, побаиваюсь его использовать. Плюс все гайды по нему на английском и непонятно каким именно образом реализовать данную задачу. Может подскажите как это сделать? Помещать объект на карту я так понимаю самое удачное это — пользователь при создании материала тыкает мышкой в определённую область на карте, координаты записываются в определённое поле и потом при построении карты считываются? Плюс также интересно, а каким образом можно реализовать фильтр объектов на карте, на самой странице с картой?
Пока вроде всё, подскажите пожалуйста, а то я конкретно так застопорился.
Нельзя в одной «универсальной» CMS реализовать все задумки всех людей. 2 пункт, мне кажется, только через создание собственного модуля на базе модуля GMap. Интересная реализация есть на хабре — habrahabr.ru/blogs/drupal/56505/ — можно много почерпнуть о картах, местонахождении и т.д. Возможно, поигравшись, можно реализовать ваше 2 желание
Основная проблема в том, что вы используете 7-ю ветку Drupal. К сожалению, многие решения, которые работают на 6-ке (например, ), находятся в стадии сырой беты или вообще не будут портированы на 7-ку.
1. Реализуется через таксономию. При создании материала ставите в термин честный 1938й год постройки. Далее если вывод материалов через views — делаете PHP фильтр, в нем берете поисковый запрос (например нужно найти «около 1940»), своим кодом получаете термины таксономии на предмет «1940 год +-5 лет», далее опять же своим кодом получаете ID нод, назначенных этим терминам и возвращаете массивом. В итоге в запрос, который строит views, будет добавлено что-то вида WHERE nid IN (25,26,27,28).
Если вывод свой — еще проще, сразу SELECT с LEFT JOIN.
2. gmaps и location. DEV — ну что делать, либо они, либо самому писать. Помещать именно так: при создании нового типа ноды выбирается кол-во местоположений на карте (т.е. в нашем случае 1) и ставятся доп. параметры, в т.ч. тип значка (кстати тип значка по условию можно заменить хуками). Фильтр делается через views — выбирается тип представления google maps, далее exposed filters (комбобоксы и т.д.).
Далее ИМХО. Риэлтерские сайты лучше на друпале не реализовывать. Мнимое преимущество «о!!! куча модулей из коробки!!» приводит в один прекрасный момент к тому, что для реализации новых «хотелок» заказчика приходится либо писать свой полноценный модуль (что проще), либо вообще выкидывать друпал. Ну или ситуация «сделал-забыл», тогда да, имеет смысл.