Drupal 7 如何在自定义模块中使用node_save()和node_autotitle模块保存节点?

Drupal 7 如何在自定义模块中使用node_save()和node_autotitle模块保存节点?,drupal-7,nodes,Drupal 7,Nodes,我正在编写一个Drupal自定义模块,其中我基于自定义值创建了一个节点。这是以正确方式创建节点的代码 global $user; $node = new stdClass(); $node->type = 'my_node_type'; //$node->title = $nodeInfo->title; node_object_prepare($node); $node->language = LANGUAGE_NONE; $node->uid = $user-

我正在编写一个Drupal自定义模块,其中我基于自定义值创建了一个节点。这是以正确方式创建节点的代码

global $user;
$node = new stdClass();
$node->type = 'my_node_type';
//$node->title  = $nodeInfo->title;
node_object_prepare($node);
$node->language = LANGUAGE_NONE;
$node->uid = $user->uid;    
$node->field_node_refrence_field['und'][0]['nid'] = $nid-of-reference-field;
$node = node_submit($node); 
node_save($node);
我已为此内容类型启用了节点自动字幕模块。因此,标题显示为空白。我检查了模块,发现
auto\u nodetitle\u set\u title($node)
设置了标题。当我在代码中使用这个函数时,什么都不会发生

有人能告诉我如何使用node_autotitle设置保存节点吗?

执行的代码如下。(识别部分代码的注释是我的。)

如果存在该内容类型的标题设置,则执行第一条控制语句。如果没有,并且您正在更新模块,则执行第二条控制语句,否则执行第三条控制语句

标题不应为空,因为模块总是将其设置为空。只有当Drupal没有关于节点使用的内容类型的信息时,它才能为空;在这种情况下,
$types[$node->type]
将为空,但
$types[$node->type]->name
将引发错误“尝试访问非对象的某个对象的属性”

我将使用以下代码来保存节点

global $user;

$node = new stdClass();
$node->type = 'my_node_type';
node_object_prepare($node);

$node->uid = $user->uid;    

$node->language = LANGUAGE_NONE;
$node->field_node_refrence_field[$node->language][0]['nid'] = $nid-of-reference-field;

$node = node_submit($node); 
node_save($node);
auto_nodetitle_set_title($node);
node_save($node);

由于要保存新节点,因此在
node\u save()
之前调用
auto\u nodetitle\u set\u title()
将不允许函数执行标记为(2)的代码,并使用节点ID作为标题。调用
auto\u nodetitle\u set\u title()
后,您需要调用
node\u save()
来保存新标题。

您应该显示如何调用
auto\u nodetitle\u set\u title()
。函数总是设置标题,标题永远不能为空,除非Drupal没有任何关于内容类型的信息。
global $user;

$node = new stdClass();
$node->type = 'my_node_type';
node_object_prepare($node);

$node->uid = $user->uid;    

$node->language = LANGUAGE_NONE;
$node->field_node_refrence_field[$node->language][0]['nid'] = $nid-of-reference-field;

$node = node_submit($node); 
node_save($node);
auto_nodetitle_set_title($node);
node_save($node);