Расчетные поля или "WTF в API", или "Drupal сломали"
Прислано: weare
чт, 18/02/2010 - 22:22
Здравствуйте.
Есть необходимость пересчитать значение некоторых полей ноды после получения новых значений формы и до внесения обновления в базу.
Новые значения, конечно, должны попадать в базу.
Есть описание ноды, ее форма, задействовал и nodeapi и validate, не работает. Значение меняется, а в функции update все равно старое.
Что делать, подскажите. кто сталкивался.
- weare's blog
- Для комментирования войдите или зарегистрируйтесь
просидел всю ночь!
<?php
function channels_validate( $node, &$form ) {
if( !isset( $node->nid ) ) return ;
$node_old = node_load( $node->nid ) ;
if( $node_old->ctype != $node->ctype ) {
$form_item['#parents'] = array('output', 'cdst') ;
form_set_value( $form_item, 'new_value', &$form ) ;
//$form_state['rebuild'] = TRUE ;
drupal_set_message( t( "Network access parameters has been updated" ) , 'warning' ) ;
}
}
?>Вроде все по феншую. А в update приходит со старым значением.
- Для комментирования войдите или зарегистрируйтесь
Вот еще непонятное дело:
<?php
function formexample_nameform_validate($form, &$form_state) {
}
?>Так в Pro Drupal Dev 2.0
А вот так в API, и в API кстати, верно написано.
<?php
function node_validate($node, $form = array()) {
}
?>Что делать! Не проходите мимо!
Drupal сломали!
- Для комментирования войдите или зарегистрируйтесь
hook_nodeapi
op = 'presave'
- Для комментирования войдите или зарегистрируйтесь
hook_nodeapi
op = 'presave'
Ваши пара строк спасли отца русской демократии!
Но API все равно сломали, раз такой разбег в документации.
Спасибо ОГРОМНОЕ!
- Для комментирования войдите или зарегистрируйтесь

Комментарии