自定义模块转换论坛主题以发表评论

时间:2014-11-28 11:05:23

标签: drupal drupal-hooks drupal-comments

我需要开发一个模块,将网站的“论坛主题”(即内容类型)转换为内容类型“Action”的另一个节点的一个注释。论坛主题和节点“行动”在commun中具有分类术语。 所以我开始从表'node','user'中搜索我需要的值,然后在表'comment'中创建db_insert之后。

function mymodule_entry_insert($entry) {
    $select = db_select('node', 'n');
    $select->join('users','u','u.uid = n.uid');

$select->fields('n', array('nid', 'title',  'created'));
$select->fields('u', array('name'));


$select->condition(db_or()->condition('n.type', 'forum', '='));

// Return the result in object format.
return $select->execute()->fetchAll();

$fields = array(

'nid' => $select->fields('n', array('nid')),
'uid' => $select->fields('n', array('uid')), 
'subject' => $select->fields('n', array('title')),
'hostname' =>'::1',
'created' => $select->fields('n', array('created')),
'changed' => $select->fields('n', array('created')),
'status' => '1',
'language' => 'und',
'thread' => '01/',
'name' => $select->fields('u', array('name')),
'mail' => '',
'homepage' => '',);

try {
     $return_value = db_insert('comment')
    ->fields($fields)
    ->execute();

  }

catch (Exception $e) {
drupal_set_message(t('db_insert failed. Message = %message, query= %query',
array('%message' => $e->getMessage(), '%query' => $e->query_string)), 'error');
}
 return $return_value;
}

在互联网上搜索几天后,我还没有找到任何解决方案,这似乎很容易。我没有丰富的经验。 该模块的第二部分是将前论坛的评论转换为已创建的新评论的儿童评论。 所以我必须将评论分组为nid('这个评论是回复的节点'),除了一个(父亲,旧论坛)之外的所有人都必须插入他们父亲的cid('主键')在“pid”列中发表评论(评论cid以此评论为回复)

第三部分是使用与论坛相同的术语来获取节点的id,并更改受影响的注释的nids。

我希望我能够以与第一部分相同的方式开发第二部分和第三部分。

谢谢:)

0 个答案:

没有答案