Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add comment programmatically in Drupal 7

trying to create a comment in own module.

$comment = new stdClass();
$comment->nid = 555; // Node Id the comment will attached to
$comment->cid = 0;
$comment->pid = 0;
$comment->uid = 1;
$comment->mail = '[email protected]';
$comment->name = 'admin';
$comment->is_anonymous = 0;
$comment->homepage = '';
$comment->status = COMMENT_PUBLISHED;
$comment->language = LANGUAGE_NONE;
$comment->subject = 'Comment subject'; 
$comment->comment_body[$comment->language][0]['value'] = 'Comment body text';
$comment->comment_body[$comment->language][0]['format'] = 'filtered_html'; 
comment_submit($comment);
comment_save($comment);

The code causes the following error:

Fatal error: Call to undefined function node_load() in BLA/BLA/comment.module on line 1455

node_load() function is in node module which, of course, enabled.

How to fix it?

Thanks!

like image 405
ymakux Avatar asked Nov 24 '11 01:11

ymakux


1 Answers

Try like this:

  $comment = (object) array(
    'nid' => $node_id,
    'cid' => 0,
    'pid' => 0,
    'uid' => 1,
    'mail' => '',
    'is_anonymous' => 0,
    'homepage' => '',
    'status' => COMMENT_PUBLISHED,
    'subject' => 'dsk subject',
    'language' => LANGUAGE_NONE,
    'comment_body' => array(
      LANGUAGE_NONE => array(
        0 => array (
          'value' => 'aaa',
          'format' => 'filtered_html'
        )
      )
    ),
  );

  comment_submit($comment);
  comment_save($comment);
like image 86
qwertmax Avatar answered Oct 05 '22 09:10

qwertmax