2009-09-27 136 views
1

我正在使用自動節點標題,它將生成一個節點的標題。但是,當我使用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));

到那個邏輯

回答

1

我固定它,像這樣:

$edit['field_contact_name'] = array(); 
$edit['field_contact_name'][0]['value'] = 
    $edit['field_contact_name'][0]['safe'] = 
     $edit['field_contact_name'][0]['view'] = $firstName; 

$edit['field_contact_surname'] = array(); 
$edit['field_contact_surname'][0]['value'] = 
    $edit['field_contact_surname'][0]['safe'] = 
     $edit['field_contact_surname'][0]['view'] = $lastName; 

$edit['field_contact_email'] = array(); 
$edit['field_contact_email'][0]['email'] = 
    $edit['field_contact_email'][0]['safe'] = 
     $edit['field_contact_email'][0]['view'] = $email; 

換句話說,我只好也specifiy安全和視野。

1

,你有沒有包含在auto_nodetitle您接觸內容類型?如果聯繫人僅包含「可選」,那麼在此處設置您的標題將阻止模塊執行操作。

+0

我已經設置了聯繫,有一個自動node_title [field_contact_name格式] [field_contact_surname格式] 我的問題是,爲什麼它居然提出,標題,而不是「NAME姓」。我必須在什麼時候設置標題以繞過自動節點標題? – coderama 2009-10-02 07:19:49

+0

或者我必須設置哪些字段,以便自動正確設置標題? – coderama 2009-10-02 07:20:19

+0

從峯值開始,它看起來像節點標題被設置爲node_submit()過程的一部分。 – Grayside 2009-10-02 23:59:54