как создать нод через функцию друпала

Главные вкладки

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 22 мая 2007 в 15:31

Вам нужна функция
/**
* Save a node object into the database.
*/
node_save(&$node);
Перед ее вызовом определяете поля объекта $node и создаете его.

P.S. Можно сначала вызвать $obj_node = node_load($nid); нужного материала и на основе полученного заполнить структуру объекта значениями, $obj_node ->nid оставить пустым и вызвать node_save(&$obj_node)
Smile

Аватар пользователя oblivion oblivion 22 мая 2007 в 16:35

node_save(&$node);
Перед ее вызовом определяете поля объекта $node и создаете его.

P.S. Можно сначала вызвать $obj_node = node_load($nid); нужного материала и на основе полученного заполнить структуру объекта значениями, $obj_node ->nid оставить пустым и вызвать node_save(&$obj_node)

интересно
обязательно посмотрю
а если мне нужно создать нод оприделенного типа (это значение поля type таблицы `node` созданного с помощью ССК)
как тогда мне поступать
Вообще есть у кого то пример создания нода.
наверно нужно смотреть в модуле node

и все же, как еще можно создать нод?

Аватар пользователя sas@drupal.org sas@drupal.org 22 мая 2007 в 17:00

Ну конечно в node,
дело в том, что перед созданием материала API все это подготавливает, да не забудьте что есть проверка прав пользователя в некоторых процедурах при вызове например удаления Smile

Аватар пользователя Dan Dan 22 мая 2007 в 18:22

> а если мне нужно создать нод оприделенного типа
А документацию на api.drupal.org и исходный код node.module религия не позволяет посмотреть?
Что за привычка сначала задавать вопрос на форуме, потом - думать.
Смотрим form.inc:
<?php
/**
* Retrieves a form using a form_id, populates it with $form_values,
* processes it, and returns any validation errors encountered. This
* function is the programmatic counterpart to drupal_get_form().
*
* param $form_id
* The unique string identifying the desired form. If a function
* with that name exists, it is called to build the form array.
* Modules that need to generate the same form (or very similar forms)
* using different $form_ids can implement hook_forms(), which maps
* different $form_id values to the proper form building function. Examples
* may be found in node_forms(), search_forms(), and user_forms().
* param $form_values
* An array of values mirroring the values returned by a given form
* when it is submitted by a user.
* param ...
* Any additional arguments needed by the form building function.
* return
* Any form validation errors encountered.
*
* For example:
*
* // register a new user
* $values['name'] = 'robo-user';
* $values['mail'] = 'robouser@example.com';
* $values['pass'] = 'password';
* drupal_execute('user_register', $values);
*
* // Create a new node
* $node = array('type' => 'story');
* $values['title'] = 'My node';
* $values['body'] = 'This is the body text!';
* $values['name'] = 'robo-user';
* drupal_execute('story_node_form', $values, $node);
*/
function drupal_execute($form_id, $form_values) {
$args = func_get_args();

$form_id = array_shift($args);
$form_values = array_shift($args);
array_unshift($args, $form_id);

if (isset($form_values)) {
$form = call_user_func_array('drupal_retrieve_form', $args);
$form['#post'] = $form_values;
return drupal_process_form($form_id, $form);
}
}
?>

Аватар пользователя oblivion oblivion 23 мая 2007 в 12:33

Спасибо, Dan.
>Что за привычка сначала задавать вопрос на форуме, потом - думать.
Smile
Если бы я знал ответ на вопрос то не задавал бы его, то что вы знаете друпал как свои 5 пальцов я уже понял, разве я прошу что бы за меня написли ф-ю и решили все мои проблемы...., я лиш прошу натолкнуть меня на правельное напрвление и дальше я как то сам , а насчет религии - причем тут она?
Еще раз, за пример пасиБО

Аватар пользователя Dan Dan 23 мая 2007 в 13:31

Погорячился, извини. Надеюсь не обидел Smile
Религия не при чём - выражение такое.
Drupal знаю хорошо, но нет придела совершенству - всегда что-то новое на форуме узнаю.
Чем смогу - помогу. Образчайся Smile

Удачи.