2013-04-29 60 views
0

我正在构建drupal模块,我想使保存某些内容类型后触发的功能。示例 保存文章后,我想将文章的数据保存为另一个表格的nid,标题,类型,状态。 我被困在这里,请帮助我。这一些代码,我做了:保存节点后将节点数据保存到另一个表

//using hook_node_insert 
//i just wanna save data from content type 'article' only. 

function mymodule_node_insert($node) { 
db_insert('mytable')->fields(array(
'nid' => $node->nid, 
'title' => $node->title, 
'type' => $node->type, 
'status' => $node->status 
))->execute(); 
} 
+0

你能告诉我这段代码有什么问题吗?是的,规则是一种更好的方法,但是如果它是一个模块,那么在节点插入中写入钩子并将数据插入到另一个表中时,我没有发现任何问题。但是,是的,如果你正在使用drupal sql查询...那么我会建议你编写安装文件并生成表格。 – 2013-04-30 11:22:33

回答

0

Rules模块将帮助你处理这个问题,

**

规则模块,管理员可以有条件地基于 执行的操作定义发生事件(称为反应或ECA 规则)。它是核心触发器模块 的更多功能的替代品。

**

您可以使用事件的内容部分“保存新的内容后”。

在此,您可以使用规则中的条件来确保仅针对所需的内容类型触发操作。