drupal node_load и проблема с тизером - PullRequest
1 голос
/ 06 июня 2011
$MrNode = node_load(array("nid" => 679)); 
$teaser_content = truncate_utf8(strip_tags($MrNode->teaser),400,true,true); 

print $teaser_content;

выше приведен php-код, который я использовал для загрузки узла drupal и отображения определенного количества символов нашего сайта ... но, похоже, он не работает ... Может кто-нибудь помочь мне с этим? Большое спасибо!

1 Ответ

1 голос
/ 06 июня 2011

Вы работаете с Drupal 6 или 7? Ваш код работал нормально для меня в template.php Гарланда в Drupal 6. Он не будет работать в Drupal 7, так как $ node-> teaser больше не существует (см. http://drupal.org/node/889058).

Это сработало для меня в Drupal 7:

$MrNode = node_load(1);
$teaser_content = truncate_utf8(strip_tags($MrNode->body['und']['0']['summary']),400,true,true); 
print $teaser_content;

Если вы используете D7, вы, вероятно, также захотите изменить свой аргумент node_load, чтобы он принимал идентификатор узла как целое число, а не массив, так как значение по умолчанию, похоже, изменилось в D7 (см http://api.drupal.org/api/drupal/modules--node--node.module/function/node_load/7).

Вам также необходимо иметь сводку, которую вы можете проверить, позвонив по номеру print_r($MrNode).

Конечно, это полезно, только если вы используете D7 - если вы можете указать, какую версию вы используете, это поможет найти проблему.

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