Как добавить значение прямо из кода шаблона (node.tpl) в поле CCK?

Аватар пользователя fit fit 18 августа 2012 в 2:00

Сложная задача обернулась странным решением...
Мне нужно сохранить значение (цифра), которое вычисляется в node.tpl.php прямо в поле CCK (например: field_new).

По сути: у меня есть большой (огромный) код парсера с калькулятором по итогам работы которого получается какое-то число. Это число должно храниться в поле CCK (field_new).
Пробовал Computed Field, но код парсера+калькулятора, который отлично работает в node.tpl.php не работает через computed_field (получаю кучу ошибок) з.ы. принцип computed field и как с ним работать я понимаю, поэтому проблема где-то еще, может из-за использования CURL в парсере, ХЗ.

Пробовал прямо в шаблон добавить что-то вроде:
<?php$query = "INSERT INTO content_type_profile (field_new_value) VALUES ('работает')";?>
результата, разумеется нет.

Помогите, как реализовать?

Спасибо)

Комментарии

Аватар пользователя emzzy emzzy 18 августа 2012 в 9:09

Сохранять значения поля в node.tpl.php - неверно, так как шаблоны существуют для вывода, а не для логики приложения. Создайте свое собственное поле через FieldAPI с вычислением всего того, что вам нужно.

Аватар пользователя RedRat RedRat 18 августа 2012 в 11:34

Поддерживаю emzzy: в 7-ке на Fields API писать свои модули для полей заметно проще, чем для ССК в 6-ке.

Аватар пользователя fit fit 18 августа 2012 в 13:17

Во-первых, я делаю все для 6х.
Во-вторых, разместил код прямо в шаблоне, потому что мне нужно получать результат вычисления для каждого юзера.
Использую модуль node profile для того, что бы к каждому юзеру была своя нода. В ней как раз и разместил код парсера+калькулятора.

уже не знаю как и быть в данной ситуации

Аватар пользователя Andruxa Andruxa 18 августа 2012 в 13:55

"emzzy" wrote:
Сохранять значения поля в node.tpl.php - неверно, так как шаблоны существуют для вывода, а не для логики приложения.

справедливо на 100%

смотрите в сторону [ru-api=hook_nodeapi]hook_nodeapi()[/ru-api]

Аватар пользователя divined divined 18 августа 2012 в 20:03

в шаблоне:

<?php
$lnode 
node_load($node->nid);
$lnode->field_name[0]['value'] = 'блаблабла';
node_save($lnode);
?>

оченя не рекомендую использовать

Аватар пользователя fit fit 18 августа 2012 в 23:39

divined, спасибо за наводку!
А почему не рекомендуете? нагрузка высокая получится или...?

Аватар пользователя divined divined 19 августа 2012 в 13:39

Это увеличит загрузку вашей страницы мс на 200. А в остальном хз, безопасность не нарушится, удобство впринципе тоже.

Да, думаю только скорость.

Аватар пользователя fit fit 19 августа 2012 в 16:36

ну на самом деле не так страшно, если не так много параметров. Если на большом проекте, то 200 мс за запрос - это конечно дофига.