Проблема с представлениями автозаполнения ссылок на узлы


Во-первых, прошу прощения, если я использую неверную терминологию - я все еще новичок в 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')

Вот мои вопросы:

  1. Как сделать так, чтобы автозаполнение работало и для города или страны?
  2. Каков наилучший способ получить результат, который я требуется на последней странице (т. е. адресный блок)? Я предполагаю, что могу добавить другие соответствующие поля и исключить их из отображения в представлении, и они будут доступны для использования. Но как мне лучше всего их использовать? Одно поле с предварительно отформатированными данными? Поле для каждого значения?
  3. Как мне затем перенести данные, собранные из представления, в поле(поля)?

Мы будем очень признательны за любую помощь! Заранее спасибо!

[РЕДАКТИРОВАТЬ]

Как упоминалось ниже, у меня есть обнаружил, что происходит следующее:

Поле автозаполнения принимает введенный текст и проверяет, какие заголовки узлов в типе контента "Место проведения" соответствуют этому тексту. Затем он отображает результаты, используя мое представление для их форматирования. Вот картинка для иллюстрации:

http://img215.imageshack.us/img215/3539/autocomplete.jpg

Почему он игнорирует мое представление при проверке введенного текста, вместо того, чтобы проверять заголовки узлов?

Author: eggplant_casserole, 2011-04-12

2 answers

У меня есть альтернатива вашему 1. вопросу. Вы можете использовать модуль Автоматические заголовки узлов для автоматического создания заголовка для объектов в форме [Location name], [City], [Country] из полей CCK в вашем типе контента. Это означает, что вам придется использовать дополнительное текстовое поле для имени местоположения, и заголовок будет автоматически создан для объединения трех полей.

Это решение означало бы, что город и страна будут видны везде, где вы используете заголовок типа контента места проведения, вам придется решить, соответствует ли это тому, что вам нужно.

 0
Author: Mad Scientist, 2011-04-15 10:28:16
  1. Вы можете создать вычисляемое поле в Месте проведения с содержимым нужных полей и использовать это поле.

  2. & 3. Как только у вас будет ссылка на узел, вы сможете показать любые поля, которые захотите, используя шаблон для выступления. В качестве альтернативы вы можете использовать представление.

 0
Author: sharpbites, 2011-04-12 16:38:52