我正在使用自动节点标题,它将生成一个节点的标题。但是,当我使用node_save创建节点时,这不会发生。见下文:Drupal的自动节点标题和node_save?
function save_contact($firstName, $lastName, $email, $showErrors = false) {
global $user;
$edit = array();
$edit['type'] = 'contact';
$edit['uid'] = $user->uid;
$edit['name'] = $user->name;
$edit['promote'] = 0;
$edit['comment'] = 0;
$edit['status'] = 1;
$edit['field_contact_name'][0]['value'] = $firstName; // NOTE
$edit['field_contact_surname'][0]['value'] = $lastName; // NOTE
$edit['field_contact_email'][0]['email'] = $email; // NOTE
$edit['title'] = $firstName.' '.$lastName; // NOTE
node_invoke_nodeapi($edit, 'contact');
node_validate($edit);
$node = node_submit($edit);
node_save($node);
}
save_contact("NAME", "SURNAME", "[email protected]");
当产生节点,标题变为: “[field_contact_name格式化] [field_contact_surname格式化]” 代替, “NAME姓”。
任何想法,为什么?我猜测自动节点标题没有提到我输入的值,或者可能标题生成发生在我指定值的时间点之前。
任何想法?
线74 auto_nodetitle.module
return empty($node->auto_nodetitle_applied) && ($setting = auto_nodetitle_get_setting($node->type)) && !($setting == AUTO_NODETITLE_OPTIONAL && !empty($node->title));
到那个逻辑
我已经设置了联系,有一个自动node_title [field_contact_name格式] [field_contact_surname格式] 我的问题是,为什么它居然提出,标题,而不是“NAME姓”。我必须在什么时候设置标题以绕过自动节点标题? – coderama 2009-10-02 07:19:49
或者我必须设置哪些字段,以便自动正确设置标题? – coderama 2009-10-02 07:20:19
从峰值开始,它看起来像节点标题被设置为node_submit()过程的一部分。 – Grayside 2009-10-02 23:59:54