节点保存状态

时间:2012-04-30 12:39:28

标签: drupal

我尝试添加未发布的新节点。

我设置status = 0;

但检查此节点时status = 1;

此代码。

$node = new StdClass();
                $node->type = 'article'; //giving it type
                $node->title = $article->headline; //gives title
                $node->body = $article->body; //gives body

                $node->field_abstract[0]['value'] = $article->summary;
                $node->field_is_syndigate[0]['value'] = 1;
                $node->field_syndigate_first_time[0]['value'] = 1;

                $node->language = $language->language; //'en' or 'ar'
                $node->comment = 2; //read&write comment

                //$node->created = $article->parsed_at;
                $node->created = '';
                $node->changed = $node->created;
                $node->status = 0;
                $node->promote = 0;
                $node->sticky = 0;
                $node->format = 4; // Editor Filtered HTML
                $node->uid = $user->uid;

                //$node->field_attribution[0]['value'] = $article->copyright; // attribution
                $attribution = '';
                if($article->logo_path){
                    $attribution = '<img src="http://pub.syndigate.info/logos/small/'.$article->title_id.'.png" title="'.$article->title_name.'" border="0" />';
                    if($article->website){
                        $attribution = '<a href="'.$article->website.'" title="'.$article->title_name.'" target="_blank">'.$attribution.'</a>';
                    }
                    $attribution .= ' ';

                }
                $attribution .= $article->copyright;
                $node->field_attribution[0]['value'] = $attribution; // attribution
                $node->field_source[0]['value'] = $article->title_id; // source
                node_save($node);

如何将节点保存为未发布。

1 个答案:

答案 0 :(得分:2)

以编程方式创建节点时,需要设置

$node->is_new = TRUE; 

如果您将$node->created设置为空值,我建议您从脚本中删除此行,node_save()将处理它。与$node->changed相同,因为您提供相同的值,只需从脚本中删除此行

希望这个帮助