Сложная задача обернулась странным решением...
Мне нужно сохранить значение (цифра), которое вычисляется в 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 ('работает')";?>
результата, разумеется нет.
Помогите, как реализовать?
Спасибо)
Комментарии
Сохранять значения поля в node.tpl.php - неверно, так как шаблоны существуют для вывода, а не для логики приложения. Создайте свое собственное поле через FieldAPI с вычислением всего того, что вам нужно.
Поддерживаю emzzy: в 7-ке на Fields API писать свои модули для полей заметно проще, чем для ССК в 6-ке.
Во-первых, я делаю все для 6х.
Во-вторых, разместил код прямо в шаблоне, потому что мне нужно получать результат вычисления для каждого юзера.
Использую модуль node profile для того, что бы к каждому юзеру была своя нода. В ней как раз и разместил код парсера+калькулятора.
уже не знаю как и быть в данной ситуации
Проще юзать computed_field или как его там по батюшке, я про модуль cck
справедливо на 100%
смотрите в сторону [ru-api=hook_nodeapi]hook_nodeapi()[/ru-api]
в шаблоне:
<?php
$lnode = node_load($node->nid);
$lnode->field_name[0]['value'] = 'блаблабла';
node_save($lnode);
?>
оченя не рекомендую использовать
divined, спасибо за наводку!
А почему не рекомендуете? нагрузка высокая получится или...?
Это увеличит загрузку вашей страницы мс на 200. А в остальном хз, безопасность не нарушится, удобство впринципе тоже.
Да, думаю только скорость.
ну на самом деле не так страшно, если не так много параметров. Если на большом проекте, то 200 мс за запрос - это конечно дофига.