Сайт для тех кто хочет определиться
Как сделать вывод ссылок Все туры, все гостиницы с помощью Views

Здравствуйте!

Вопрос по друпал 7. Сделала страницу страны, где отображаются список стран, при клике на ссылке одной страны, посетитель переходить на страницу Страны (например Турция).

На этой странице, я вывели список туров, список курортов, список гостиниц в этой стране.

Передо мной стоит задача. Нужно ограничить количество туров, гостиниц и курортов (например в списке по 4 туров, 4 курортов и 4 гостиниц Турции) и под каждым из них нужно отобразить ссылки на Все туры страны, Все гостиницы страны и Все курорты страны, при клике на одной из этих ссылок, посетитель попадает на страницу, где отображается весь список туров или курортов или гостиниц.

Пожалуйста, подскажите как это сделать на друпал 7?

Travel Central
Ответов: 5

В урле знак % - это ID термина таксономии. Чтобы узнать ИД страны, нужно зайти на вкладку редактирования страны  и посмотреть цифру в урле. Эту цифру мы и будем подставлять вместо процентов

 Я зашла в таксономию - термины. Там список стран, например, Турция, Египет, ОАЭ. Посмотрела id каждой и у каждой id по-разному. ID которой нужно использовать вместо %?

Travel Central
  1. в блоке "туры по этой стране" нужно создать подвал и написать в нем код ссылки
  2. создать новое views представление которое называется "туры по этой стране (все туры)"

для начала нужно клонировать представление "туры по этой стране". Это можно сделать как на списке всех представлений (вьюх) так и на странице редактирования вьюхи.

Давайте различать два представления, в итоге, у нас будет две вьюхи:

  1. туры по этой стране (блок, отображаемый на странице страны вместе с другими блоками)
  2. туры по этой стране (все туры страны) - страница, которая будет отдельной страницей и на которой будут перечислены все туры с постраничной навигацией.

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

Должен сказать что есть два способа сделать клонирование представления (отображения): 

  1. во время редактирования вьюхи нажать "добавить", потом "добавить страница" (пока не рекомендую)
  2. на странице всех представлений admin/structure/views в колонке "действия нажать стрелочку и выбрать clone (рекомендую пока клонировать так)

Второй способ он требует больше ручной работы если вы решите поменять что-то в обоих представлениях (и в блоке и на странице), но для новичков это лучше так как если оба отображения будут в одной вьюхе - то можно случайно переопределить некоторые нужные настройки.

В общем нужно научиться отличать представления от отображений  :)

Представление - (друпалеры называют вьюхой) это то что перечислено на странице всех представлений

Отображение (блок, страница, rss-лента) это формат что-ли отображения этого представления. То есть одна и та-же вьюха может иметь одновременно сразу 3 отображения - быть блоком, быть отдельной страницей, и одновременно RSS-лентой. Во всех отображениях могут быть одинаковые поля, но может например отличаться количество отображаемых элементов - в блоке 5, на странице 20, а в RSS - 10.

После того как вы клонируете представление туры, и назовете клон "туры (все туры этой страны)", нужно зайти на страницу редактирования этого представления, добавить новое отображение "страница", а отображение "блок" - удалить, так как оно не нужно, у нас блок будет в другой вьюхе (предке).

Вообще, на английском мне проще, это будет View и Display, мне как-то сразу понятно становится. "Представление" и "отображение" в русском звучат как-то не внятно.

Во вьюхе "туры (все туры)" в настройках страницы в поле адрес пишем следующее:

strana/%/tours

Вместо процента у нас там будет подставляться ID страны по которой мы хотим посмотреть туры. Аналог на бестмапсе: http://bestmaps.ru/strana/61/goroda

Во вьюхе "туры (блок, 4 тура)" в настройках указываем подвал: "глобальное текстовое поле", и туда пишем: 

<span class="tours">
    <a href="/strana/<?php print substr($_GET['q'], 14, 5); ?>/tours">
          Все города в этой стране
    </a>
</span>

Причем формат текста там должен быть такой, который поддерживает обработку PHP. А это значит что перед этим нужно сделать формат фильтра который мы назовем допустим "php" или "views" и активируем для этого формата ввода (формата текста) фильтр PHP.

PHP filter нужно включить - он идет в системных модулях

Возможно, в функции substr($_GET['q'], 14, 5) в вашем случае могут быть другие буквы честно говоря не помню какая там строка в запросе на этой странице

petrovnn 14 Apr 2013

Как вывести название страны на странице Все туры? Например, посетитель кликнул на все туры страны и перешел на страницу полного списка туров, которые относятся к Турции.

У меня на этой странице Заголовок отображается как Все туры или Все туры страны. Но хотелось бы чтобы после Все туры отображалась и название страны, например, Все туры Турции.

Я пробовала использовать разные коды в этом пункте views:

ЗАГОЛОВОК

Заголовок:Все туры этой страны [term:name], [term] и много другие, но не получилось.
Travel Central

вспомнил что настройки контекстного фильтра должны быть другие, нежели в блоке.

В урле знак % - это ID термина таксономии. Чтобы узнать ИД страны, нужно зайти на вкладку редактирования страны  и посмотреть цифру в урле. Эту цифру мы и будем подставлять вместо процентов

это настройка фильтра в представлении "все туры в этой стране":

Петров Николай 14 Apr 2013

По-моему, все получилось. Посмотрите пожалуйста результат.

Travel Central

вспомнил что настройки контекстного фильтра должны быть другие, нежели в блоке.

В урле знак % - это ID термина таксономии. Чтобы узнать ИД страны, нужно зайти на вкладку редактирования страны  и посмотреть цифру в урле. Эту цифру мы и будем подставлять вместо процентов

это настройка фильтра в представлении "все туры в этой стране":

petrovnn

Мне не понятен этот момент:

Причем формат текста там должен быть такой, который поддерживает обработку PHP. А это значит что перед этим нужно сделать формат фильтра который мы назовем допустим "php" или "views" и активируем для этого формата ввода (формата текста) фильтр PHP.

Я сейчас нахожусь в view блока Туры. 

Travel Central
Ответить на вопрос
* Отвечать на вопросы могут только авторизованные пользователи,
пожалуйста войдите с помощью:
node/148/
qa/148/kak-sdelat-vyvod-ssylok-vse-tury-vse-gostinicy-s-pomoshchyu-views
Ссылки
Обзорные статьи, интервью разработчиков и критика CMS Drupal
Joomla vs Drupal
Что лучше джумла или друпал? Мои мысли
на этот счет
Видео
Обучающие видео, интервью и промо-ролики Drupal
Сайты на друпале
«Образцовые» сайты
на друпале. Подборка крупных сайтов рунета.
Недостатки
Некоторые вещи
в друпале меня
напрягают
Рецепты
Учитесь друпалу
на примерах реальных сайтов
Книги
Drupal намного легче
и приятнее осваивать
по книгам
Приемущества
Друпал удобен разработчику
и выгоден клиенту
Может фреймворк?
Когда оправдано применять друпал,
а когда фреймворк?
Обзоры CMS
Когда оправдано использовать
другие CMS?