Проблема с представлениями автозаполнения ссылок на узлы
Во-первых, прошу прощения, если я использую неверную терминологию - я все еще новичок в Drupal!
Я создаю веб-сайт группы с использованием Drupal 6 с CCK, Представлениями, Датой, календарем, Ссылкой, местоположением и GMap. Здесь есть два типа контента, вызывающих озабоченность - Концерт и место проведения.
Тип контента "Место проведения" содержит поле Местоположения, в котором хранится вся адресная информация. В нем также есть некоторые другие поля, например "Веб-сайт места проведения" (field_venue_website).
Я хочу поле автозаполнения на странице "Создать концерт" для поиска существующего места из типа контента "Место проведения" и отображения мест в раскрывающемся списке автозаполнения в следующем формате:
[Название местоположения], [Город], [Страна]
Тем не менее, я хочу извлечь дополнительную информацию, которая будет доступна на странице концерта, предпочтительно так:
[Название места]<-- желательно в качестве ссылки на страницу места проведения [Улица] [Дополнительно] [Город] [Штат/провинция] [Почтовый индекс] [Страна] [Место проведения Веб-сайт] <-- помните, что это отдельное поле, а не поле местоположения.
Я частично достиг своей цели, выполнив следующее:
- Создал поле "Место проведения" (field_gig_venue) типа Ссылка на узел.
- Настройте поле следующим образом:
- Сопоставление автозаполнения: Содержит
- Размер текстового поля: 100
- Требуется: Выкл. (может быть изменено позже)
- Количество значений: 1
- Представление, используемое для выбора узлов: venue_search
- Создал представление (venue_search) со следующими настройками:
- Стиль строки: Поля
- Встроенные поля:
- Местоположение: Имя
- Местоположение: Город
- Местоположение: Страна
- Разделитель:,
- Скрыть пустые поля: Да
- Отношения:
- Содержание: Место проведения
- Поля:
- Местоположение: Имя
- Местоположение: Город
- Местоположение: Страна
- Узел: Заголовок (Исключить из отображения: Да)
- Фильтры:
- Узел: Тип = Место проведения
Это приводит к отображению раскрывающегося списка автозаполнения, как я и требовал. При отправке результатом будет [Название местоположения] в виде ссылки на страницу места проведения.
Однако я нахожу, что единственной частью места, распознаваемой автозаполнением, является [Название местоположения]. Например, если у меня есть два места следующим образом:
Форум Кентского города, Лондон, Великобритания
Форум Танбридж-Уэллс, Кент, Великобритания
Когда я начну вводить "форум", я получу раскрывающийся список предложений, который выглядит так, как указано выше. Отлично! Однако, если я наберу "Великобритания" или "Лондон", я ничего не получу.
Если это поможет, вот запрос, сгенерированный при предварительном просмотре представления:
SELECT node.nid AS nid,
location.name AS location_name,
location.city AS location_city,
location.country AS location_country,
node.title AS node_title
FROM drupal_node node
LEFT JOIN drupal_content_type_gig node_data_field_gig_venue ON node.vid = node_data_field_gig_venue.vid
LEFT JOIN drupal_node node_node_data_field_gig_venue ON node_data_field_gig_venue.field_gig_venue_nid = node_node_data_field_gig_venue.nid
LEFT JOIN drupal_location_instance location_instance ON node.vid = location_instance.vid
LEFT JOIN drupal_location location ON location_instance.lid = location.lid
WHERE node.type in ('venue')
Вот мои вопросы:
- Как сделать так, чтобы автозаполнение работало и для города или страны?
- Каков наилучший способ получить результат, который я требуется на последней странице (т. е. адресный блок)? Я предполагаю, что могу добавить другие соответствующие поля и исключить их из отображения в представлении, и они будут доступны для использования. Но как мне лучше всего их использовать? Одно поле с предварительно отформатированными данными? Поле для каждого значения?
- Как мне затем перенести данные, собранные из представления, в поле(поля)?
Мы будем очень признательны за любую помощь! Заранее спасибо!
[РЕДАКТИРОВАТЬ]
Как упоминалось ниже, у меня есть обнаружил, что происходит следующее:
Поле автозаполнения принимает введенный текст и проверяет, какие заголовки узлов в типе контента "Место проведения" соответствуют этому тексту. Затем он отображает результаты, используя мое представление для их форматирования. Вот картинка для иллюстрации:
Почему он игнорирует мое представление при проверке введенного текста, вместо того, чтобы проверять заголовки узлов?
2 answers
У меня есть альтернатива вашему 1. вопросу. Вы можете использовать модуль Автоматические заголовки узлов для автоматического создания заголовка для объектов в форме [Location name], [City], [Country]
из полей CCK в вашем типе контента. Это означает, что вам придется использовать дополнительное текстовое поле для имени местоположения, и заголовок будет автоматически создан для объединения трех полей.
Это решение означало бы, что город и страна будут видны везде, где вы используете заголовок типа контента места проведения, вам придется решить, соответствует ли это тому, что вам нужно.
Вы можете создать вычисляемое поле в Месте проведения с содержимым нужных полей и использовать это поле.
& 3. Как только у вас будет ссылка на узел, вы сможете показать любые поля, которые захотите, используя шаблон для выступления. В качестве альтернативы вы можете использовать представление.