Как в contemplate добавить только текст ноды (drupal)

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

Основная проблема contemplate  в том, что он в $node->body смешивает весь контент целиком. Т.е. там уже встроены голосования, рейтинги, поля CCK и прочее, прочее, прочее...

На самом деле, решение тривиальное: нужно просто подгрузить ноду из базы данных. Делается это стандартной функцией ядра Drupal: node_load ();

Документацию по всем функциям друпала можно прочесть здесь: api.drupal.org — очень сильно за это люблю друпал.

Немного исходного кода, чтобы было понятней:

<?php

$node2 = node_load (array («nid» => $node->nid));

var_dump ($node2);

?>

И вы увидите разницу, между тем, что предлагает $node и $node2. Думаю, что с сегодняшнего дня открою рубрику «хаки на каждый день», в которую буду пистаь мелкие и полезные вещи.

И если уж заговорил про контемплэйт, любопытно спросить, как вы заполняете его? Делаете вывод сразу или складируете всё в одну переменную, а уже затем выводите?

Рекомендую прочитать:

About arti

Php-программист со стажем в 5 лет. Люблю путешествовать и знакомиться с новыми людьми. Женат на самой красивой и лучшей девушке в мире: Дашеньке.

, , , , ,

  • Костюкевич Сергей

    Основная проблема contemplate в том, что он в $node->body смешивает весь контент целиком. Т.е. там уже встроены голосования, рейтинги, поля CCK и прочее, прочее, прочее...

    А если вот так?

    <code><?php print $node->content['body']['#value'] ?></code>

    P. S. Прикрутите, пожалуйста, предпросмотр комментариев, раз уж разрешаете теги использовать.

    • Костюкевич Сергей

      Вот, а я о чем: почему в предыдущем комментарии тег «<code>» виден?