Drupal ссылка для просмотра в зависимости от аргумента - PullRequest
2 голосов
/ 17 января 2010

У меня есть узел (узел a), с которым ссылаются различные другие узлы (узел b / c / d / e).

Я могу создать представление с аргументом в качестве просматриваемого узла (узел а) и получить список узлов, которые ссылаются на этот узел.

В основном на узле просматривается список узлов b-e.

Я хочу создать страницу представлений только для ссылок на узлы этого узла. Но как я могу передать аргумент новой странице?

Спасибо.

Редактировать: Я прошу прощения за запутанный вопрос.

В основном у меня есть узел фильма. У меня есть много отзывов, ссылающихся на узел фильма.

В узле фильма я использую аргумент: content: review_of, чтобы получить список отзывов к этому фильму.

Это замечательно, но, поскольку на узле фильма есть только несколько обзоров, мне нужна страница, где я могу увидеть все отзывы по этому фильму. Вопрос заключается в передаче аргумента для фильма из блока просмотра (скажем, 3 отзыва для фильма) на страницу просмотра (со всеми отзывами).

В идеале URL для страницы просмотра должен быть: / movies / movie-name / reviews

Я пробовал это с отношениями, как в ответе Оуэна, но не смог сделать эту работу.

Ответы [ 2 ]

3 голосов
/ 17 января 2010

Если я понимаю, что вы говорите, вы хотите создать страницу представлений, которая позволит вам просматривать узлы, связанные с родительским узлом (через поле ссылки на узел CCK)?

После настройкиВ вашем представлении вы можете просто передать nid (или заголовок, или любое другое поле, выбранное в качестве аргумента) по URL-адресу.

Итак, при условии, что у вас есть настройки страницы просмотра по адресу: http://yourinstall.com/related-nodes

Просто передайте аргумент в: http://yourinstall.com/related-nodes/5

Выше (при условии, что ваши отношения / аргументы верны) покажет все связанные узлы с NID 5.

Вот изображение из конфигурации представлений , которую я использовал.

Вы заметите, что настройка «пути» в представлениях - «фильмы /% / обзоры».У меня было два фильма «Первый фильм» и «Второй фильм», по несколько обзоров на каждый.Затем вы можете использовать http://yourinstall.com/movies/movie-one/reviews, и т. Д. ..., чтобы увидеть названия обзоров.

edit: Хорошо, так что прояснение проблемы: у вас есть представленияблок, который отображает список обзоров, характерных для фильма.Кроме того, вы хотели бы, чтобы ссылка "еще ..." указывала на страницу просмотров, на которой отображаются все обзоры, относящиеся к этому фильму.

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

  1. Ваш блок Views может быть настроен аналогично приведенной выше странице Views.
  2. Переопределить ваш блок Views Аргументы (Просмотр) Node: Title и в разделе «Действие дляпринять, если аргумент отсутствует ", выберите" Предоставить аргумент по умолчанию "->" Код PHP ".
  3. Код, который вы используете:

    if (arg(0) == 'node' && is_numeric(arg(1) ) ) {
      $node = node_load(arg(1) );
      return str_replace(' ', '-', strtolower($node->title) );
    }
    

По сути, блок Views действует аналогично (ожидает заголовок узла Movie), но будет использовать приведенный выше код, чтобы попытаться извлечь заголовок из URL (обратите внимание, что это отлично работает с псевдонимами пути).Заголовок узла Movie также помещается в дополнительную ссылку (см. Изображение выше) в формате "movies / [movie-title] / reviews", которая, как и ожидалось, будет ссылаться на страницу видов.

0 голосов
/ 19 января 2010

Правильно ли я понимаю эту проблему?

Реальная проблема в том, что ссылка "more" в блоке не ссылается на правильный вид?

Другими словами, если вы просматриваете "movie_reviews" и на странице узла фильма у вас есть: блок movie_reviews->, добавленный сбоку, в этом блоке movie_reviews-> block ссылка "more" направляет посетителей на фильмы / все / Отзывы?

Рассматривали ли вы шаблоны этих изменений? (манипулирование ссылкой внутри блока для работы с узлом просматриваемого в данный момент узла фильма.) Блоки очень легко поддаются теме.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...