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

Прислано: ingumsky@drupal.org

пт, 26/12/2008 - 12:55

Другие статьи по теме:

Добрый день!

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

Спасибо.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано glu2006 в пт, 26/12/2008 - 13: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 в пт, 26/12/2008 - 14:21.

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

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


Опубликовано kyky в пт, 26/12/2008 - 17:29.

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


Опубликовано ingumsky@drupal.org в пт, 26/12/2008 - 17:44.

А почему, кстати, $node->nid = 0; Почему нулю?


Опубликовано direqtor в сб, 27/12/2008 - 09:45.

"ingumsky@drupal.org" написал(а):

А почему, кстати, $node->nid = 0; Почему нулю?

Посмотрите код функции  node_save, если 0, то создается новая нода, если не 0 - апдейтится существующая.

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


Опубликовано ingumsky@drupal.org в сб, 27/12/2008 - 13:46.

direqtor
Большое спасибо!

Кажется, со всем разобрался. Сейчас буду доводить модуль до ума.


Опубликовано glu2006 в вс, 28/12/2008 - 11:12.

kyky написал(а):

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

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


Опубликовано kyky в вс, 04/01/2009 - 06:11.

$node = node_submit($node);

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


Опубликовано Willy в ср, 04/03/2009 - 22:17.

а почему бы не использовать drupal_execute для этих целей?


Ссылки партнёров