Добрый день!
Вопрос, возможно, наивный, но дайте на него ответ, пожалуйста.
Решил написать небольшой прикладной модуль для своего сайта, чтобы залить сразу много нод одного типа, и столкнулся с проблемой.
Необходимый тип ноды создан с помощью cck, и я хочу при массовой заливке использовать точно такой же insert, как использует модуль cck, чтобы ничего не перепутать и не повредить в процессе пополнения. Как мне найти этот insert или выстроить свой, полностью аналогичный?
Спасибо.
Комментарии
Вам инсерт не нужен совершенно.
используйте функцию node_save она сама сделает все за вас)))
$node->nid = 0;
$node->type = 'тип материала (машинное название)';
$node->status = 1;
присваи ваете значения вашим ССК полям (ниже пример для моего ССК текстового поля) посмотрите на свои и сделайте аналогично.
$node->field_prodinfo_descr[0]['value'] = $product->Description;
$node->field_prodinfo_descr[0]['format'] = '3';
node_save($node);
Спасибо! Сейчас буду разбираться с тем, куда это впихнуть, а то после месяца первого знакомства с Друпалом и чтения книжки (в дурацком переводе) по нему у меня уже голова пухнет -)))
PS «За...сь для народа»?
перед node_save($node) нужно вызывать node_submit($node);
не поясните ли для чего node_submit() ?
просто для 5-ки я эту функцию никогда не юзал, или это коструктивная особенность 6-ки?
А почему, кстати, $node->nid = 0; Почему нулю?
А вообще, CCK поля хранятся в таблицах вида content_type_тип_ноды (однозначные поля) и content_field_имя_поля (многозначные поля).
direqtor
Большое спасибо!
Кажется, со всем разобрался. Сейчас буду доводить модуль до ума.
предваритльная подготовка ноды, на этой стадии допускаются внесение изменений свойств и контента ноды другими модулями.
а почему бы не использовать drupal_execute для этих целей?