Расчетные поля или "WTF в API", или "Drupal сломали"

Прислано: weare

чт, 18/02/2010 - 22:22

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

Здравствуйте.

Есть необходимость пересчитать значение некоторых полей ноды после получения новых значений формы и до внесения обновления в базу.

Новые значения, конечно, должны попадать в базу.

Есть описание ноды, ее форма, задействовал и nodeapi и validate, не работает. Значение меняется, а в функции update все равно старое.

Что делать, подскажите. кто сталкивался.

Комментарии


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

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано weare в пт, 19/02/2010 - 00:24.

просидел всю ночь!

<?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_messaget"Network access parameters has been updated" ) , 'warning' ) ;
    }   
}

?>

Вроде все по феншую. А в update приходит со старым значением.


Опубликовано weare в пт, 19/02/2010 - 04:48.

Вот еще непонятное дело:

<?php
function formexample_nameform_validate($form, &$form_state) {


?>

Так в Pro Drupal Dev 2.0

А вот так в API, и в API кстати, верно написано.

<?php
function node_validate($node$form = array()) {
}
?>

Что делать! Не проходите мимо!

Drupal сломали!


Опубликовано penexe в пт, 19/02/2010 - 05:22.

hook_nodeapi
op = 'presave'


Опубликовано weare в пт, 19/02/2010 - 05:48.

"penexe" написал(а):

hook_nodeapi
op = 'presave'

Ваши пара строк спасли отца русской демократии!

Но API все равно сломали, раз такой разбег в документации.

Спасибо ОГРОМНОЕ!


Новое на сайте

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