Как я мог иметь поле cck, чтобы получить вычисленное значение другого поля cck? - PullRequest
2 голосов
/ 17 октября 2010

Допустим, у меня есть поле cck под названием foo. Это текстовое поле с вводом php. Скажем, код php в поле foo приводит к значению 1,256 при вычислении. Мне нужно поле cck, называемое bar, чтобы получить / получить / получить ЗНАЧЕНИЕ (1256) поля cck foo.


Node XYZ
Foo:*some php code*      ===>results in value of 1,256
Bar:1,256

Если в узле просто есть поле cck Foo, оно выдает правильное значение (1256), но это поле - способ сортировки наших представлений; и представления не могут сортировать по полю php.

Я пытался получить computed_field.module для получения его значения, но он выложил бы код php, а не значение.

Есть идеи?

1 Ответ

2 голосов
/ 17 октября 2010

Вам нужно перехватить форму отправки узла и добавить обработчик отправки

function moduleNameHere_form_nodeNameHere_node_form_alter(&$form, $form_state) {
             //Add handler
             $form['#submit'][] = 'moduleNameHere_submit_function';
}

затем вы создаете обработчик, который будет вызываться при отправке

function moduleNameHere_submit_function($form, &$form_state) {
   //Assign foo's value to variable
   $myValue = $form_state['values']['foo'];

   //Set bar to foo's variable
   $form_state['values']['bar'] = $myValue;

}
...