Как программно печатать все комментарии с данного узла?

Мне нужно распечатать комментарии, принадлежащие данному узлу. Таким образом, в принципе, получите идентификатор узла, затем выберите все комментарии из данного узла и распечатайте их. Я знаю, что могу напечатать один комментарий (например, с id = 12), используя следующий код:

<?php
$comment = _comment_load(12);
return theme('comment',$comment);
?>

Может ли кто-нибудь сказать мне, как это сделать?

4 голоса | спросил Vonder 8 22011vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2011 04:41:46 +0400 2011, 04:41:46

3 ответа


6

Если вы ищете готовые к использованию функции, взгляните на comment_render () .

Пример использования (скажем, для узла, для которого нужны комментарии для nid = 5):

<?php
  $node = node_load(5);
 print comment_render($node);
?>

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

<?php
  $nid = 5;
  db_query('SELECT * FROM {comments} WHERE nid = %d', $nid);
?>
ответил Laxman13 8 22011vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2011 05:24:08 +0400 2011, 05:24:08
3

Если вы хотите загрузить полные объекты комментариев, вы можете использовать это:

$result = db_select('comment')
  ->fields('comment', array('cid'))
  ->condition('nid', $node->nid, '=')
  ->execute();

$cids = $result->fetchCol();
$comments=comment_load_multiple($cids);

foreach($comments as $comment) {
  //do some stuff with the comment
  print $comment->comment_body ["und"][0] ["value"];
}
ответил Thomas Kaemmerling 29 Jam1000000amWed, 29 Jan 2014 01:26:10 +040014 2014, 01:26:10
1

В Drupal 7 и далее comment_render был удален. Вместо этого вы можете загружать такие комментарии.

$result = db_select('comment')
                  ->fields('comment', array('name','subject'))
                  ->condition('nid', $node->nid, '=')
                  ->execute()
                  ->fetchAssoc();
foreach($result as $comment) {
   print $comment;
 }
ответил rashidkhan 13 Maypm13 2013, 18:45:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132