Как определить, какой точно INSERT с данными отправляет cck?

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

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 26 декабря 2008 в 15:55

Добрый день!

Вопрос, возможно, наивный, но дайте на него ответ, пожалуйста.
Решил написать небольшой прикладной модуль для своего сайта, чтобы залить сразу много нод одного типа, и столкнулся с проблемой.
Необходимый тип ноды создан с помощью cck, и я хочу при массовой заливке использовать точно такой же insert, как использует модуль cck, чтобы ничего не перепутать и не повредить в процессе пополнения. Как мне найти этот insert или выстроить свой, полностью аналогичный?

Спасибо.

Комментарии

Аватар пользователя glu2006 glu2006 26 декабря 2008 в 16:44

Вам инсерт не нужен совершенно.
используйте функцию node_save она сама сделает все за вас)))

    $node = new StdClass();
    $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);

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 26 декабря 2008 в 17:21

Спасибо! Сейчас буду разбираться с тем, куда это впихнуть, а то после месяца первого знакомства с Друпалом и чтения книжки (в дурацком переводе) по нему у меня уже голова пухнет -)))

PS «За...сь для народа»? Wink

Аватар пользователя glu2006 glu2006 28 декабря 2008 в 14:12

kyky wrote:
перед node_save($node) нужно вызывать node_submit($node);

не поясните ли для чего node_submit() ?
просто для 5-ки я эту функцию никогда не юзал, или это коструктивная особенность 6-ки?

Аватар пользователя direqtor direqtor 27 декабря 2008 в 12:45

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
А почему, кстати, $node->nid = 0; Почему нулю?
Посмотрите код функции [ru-api=node_save], если 0, то создается новая нода, если не 0 - апдейтится существующая.

А вообще, CCK поля хранятся в таблицах вида content_type_тип_ноды (однозначные поля) и content_field_имя_поля (многозначные поля).

Аватар пользователя kyky kyky 4 января 2009 в 9:11
$node = node_submit($node);

предваритльная подготовка ноды, на этой стадии допускаются внесение изменений свойств и контента ноды другими модулями.