Привет уважаемые!
выполняю вот такой код
<?php
db_query("UPDATE {content_type_in_stock} SET field_id_value = '%s' WHERE nid = '%d'", '12', $object->nid);
?>
$object->nid - присутствует в базе в это время.
Но этот запрос ничего не делает. Вопрос - почему?
ОТВЕТ - Потому, что в этот момент в таблице content_type_name запись ещё не создана.
Комментарии
в $object что?
в $object находится нода, вот та часть модуля в которой находится интересующи йзапрос
<?php
function actions_action_info(){
return array(
'actions_gen_ngs_xml_action' => array(
'type' => 'node',
'label' =>t('XML'),
'description' => t('XML'),
'configurable' => FALSE,
'hooks' => array(
'nodeapi' => array('insert', 'update'),
),
),
);
}
function
actions_gen_ngs_xml_action(&$object, $context = array()){if($context['op'] == 'insert'){
db_query("UPDATE content_type_in_stock SET field_id_value = '%s' WHERE nid = %d", 12, $object->nid);
}
}
?>
Я ошибочно думал, что в момент вызова этого запроса запись которую хочу обновиьт уже присутствует. Однако это не так.
А как написать action для собственного типа контента?
А если написать что то типа так?
<?php
db_query("UPDATE {content_type_in_stock} SET field_id_value = '%d' WHERE nid = '%d'", 12, $object->nid);
?>
Очень интересно, очень