Drupal - полный контент узла, а не тизер - PullRequest
0 голосов
/ 12 апреля 2011

Я делаю блог, но у меня нет большого опыта работы с Drupal (я использую Drupal 6).

На индексной странице должно быть сообщение с полным содержанием, а в следующих 10 публикациях будет показан тизер. Я хочу знать, как показать полное содержимое только первого загруженного узла.

Я часами бьюсь головой об клавиатуру, но не могу найти простое решение для этого. Я пытался увидеть все определенные_вары и все они заполнены тизером, я пытался использовать node_view ($ node-> nid), но, похоже, он входит в бесконечную рекурсию. Я много искал в Google, но, кажется, ничто не удовлетворяет.

Полагаю, мне не нужно использовать модуль View для него, потому что я просто хочу изменить $ teaser = true на false при загрузке узла.

У кого-то есть идея для этого?

Спасибо всем!

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

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

1 голос
/ 13 апреля 2011

Как сказал Мэтт В., используйте модуль Views ... но чтобы быть более конкретным ..

1) Создать новое представление с фильтром. Тип узла = блог, опубликованный узел = да

2) Создание «отображения страницы» (левая сторона пользовательского интерфейса видов, выберите страницу -> добавить отображение)

3) на отображении страницы установите "элементы на страницу" в 1, задайте стиль строки для узла и выберите полный узел. затем установите URL страницы вашего индекса "index"

4) Создать «отображение блока» (левая сторона пользовательского интерфейса видов, выбрать блок -> добавить отображение)

5) на дисплее блока установите для «элементов на странице» значение 10, задайте стиль строки для узла и выберите тизер.

6) сохраните вид, перейдите в / admin / build / block и добавьте вид блочного блога в конец вашей области контента. в настройках блока (нажмите «настроить» -> переключатель для «показывать только на страницах, перечисленных ниже» -> введите URL-адрес «индекса» вашего блога.

бум. вид.

Таким образом, в итоге вы используете модуль представлений для создания представления с одним узлом с двумя дисплеями. 1 дисплей - это страница с 1 полным узлом, другой - блок с 10 тизерными узлами.

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

Этот чувак делает что-то похожее: http://www.designtotheme.com/tutorials/views-and-offsets-grouping-multiple-displays-one-view

удачи !!

0 голосов
/ 12 апреля 2011

Просмотров отлично подходит для вашей проблемы. Если вы используете представления, вы можете создать представление для всех тизеров, а затем добавить полное представление узла в качестве заголовка представления или использовать тему представления. тема просмотра дает вам большую гибкость.

Если вы хотите сделать все программно, попробуйте это загрузить узел.

$node = node_load($nid);
$content = node_build_content($node);

, если это не сработает, попробуйте

$node = node_load($nid);
$node = (object)$node; // may need to cast to an object
$content = node_build_content($node);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...