создать ноду программно пример друпал

в 7-ом друпале вполне себе пашет такая вот функция (просто передайте в неё заголовок длиннее z) из хука _presave_node , при условии, что длинна текста сохраняемого ноды (из которой запустится хук) не будет превышать z (число) символов - а вообще лучше просто создать новую пустую ноду.
Текст функции такой:

function make_node($title)
{
  $body_text = 'This is the body text I want entered with the node.';
  
  $node = new stdClass();
  $node->type = 'article';
  node_object_prepare($node);
  
  $node->title    = $title. date('c');
  $node->language = LANGUAGE_NONE;
 
  $node->body[$node->language][0]['value']   = $body_text;
  $node->body[$node->language][0]['summary'] = text_summary($body_text); // аннотация
  $node->body[$node->language][0]['format']  = 'filtered_html'; // формат
  
  
  
  $path = 'content/programmatically_created_node_' . date('YmdHis');
  $node->path = array('alias' => $path);
 $node = node_submit($node);
 //print_r($node);
  if ($node = node_submit($node)) node_save($node);
  return  $node;
}

наслаждайтесь)

Comments

drupalDrum's picture

ещё есть такой пример - кажется с офф сайта - но он не проверен=

function make_node2($qwe)
{
 global $user;

$customNode = new stdClass();

$customNode->type = 'page';
node_object_prepare($customNode);
$customNode->uid = $user->uid;
$customNode->name = $user->name;

$customNode->title = 'Your page title';
$customNode->language = 'en';
$customNode->body[$customNode->language][0]['value'] = 'Your value';
$customNode->body[$customNode->language][0]['summary'] = 'Your summary';
$customNode->body[$customNode->language][0]['format'] = 'filtered_html';

$customNode->menu['enabled'] = 1;       // 1 to enable providing a link in main menu
$customNode->menu['link_title'] = 'Your page link title';
$customNode->menu['description'] = 'Your page description';
$customNode->menu['parent'] = 'main-menu:0';
$customNode->menu['weight'] = 5;

$customNode->path['alias'] = 'Your Alias';
$customNode->comment = 1;

$customNode->status = 1;        // 1 means published
$customNode->promote = 0;
$customNode->revision = 0;

$customNode->changed = $_SERVER['REQUEST_TIME'];
$customNode->created = $_SERVER['REQUEST_TIME'];

node_submit($customNode);
node_save($customNode);
}