Присвоить полю значение просчитывающиеся PHP
Вообще, мне нужно в одном поле получить значение другого. Когда я пытался это делать на "тестовом" типе материала с помощью поля Computed, всё работает, но, когда стал переносить на другой материал выдаёт ошибку.
Точнее: мне нужно получить адрес сайта из поля field_link и посчитать Тиц, PR, наличие в ЯК и DMOZ.
Вот ошибка, которую выдаёт:
PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1: INSERT INTO {field_data_field_link} (entity_type, entity_id, revision_id, bundle, delta, language, field_link_url, field_link_title, field_link_attributes) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8_rel, :db_insert_placeholder_8_class); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 120 [:db_insert_placeholder_2] => 120 [:db_insert_placeholder_3] => ad [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => http://сайтпользователя.ru [:db_insert_placeholder_7] => Перейти на ресурс [:db_insert_placeholder_8_rel] => nofollow [:db_insert_placeholder_8_class] => art-button but ) в функции field_sql_storage_field_storage_write() (строка 448 в файле /home/p/pratru/swap-ad/public_html/modules/field/modules/field_sql_storage/field_sql_storage.module.
Как это решить не знаю.. видимо конфликт какой 0_0
Хочу попробовать так:
Присвоивать значение, получаемое php кодом, "по умолчанию". Как можно это реализовать? вроде бы через хуки.. Но в хуках я совсем не разбираюсь
+ мне как-то нужно получать значение поля field_link..
вот так я получаю значение field_link:
<?php $node=menu_get_object();
if(isset($node->field_link)) {
$b = render(field_view_field('node', $node, 'field_link'));
$entity_field[0]['value'] = $b; //получив адрес сайта из того поля, определяется тиц, pr и тд ?>
Помогите, пожалуйста. Очень важную функцию хочу реализовать..
Не морочтесь с computed field, выносите код в отдельный модуль.
Создаем модуль на друпал, быстрый старт
Дальше вам нужно будет добавить изменение поля в ноде, по добавлению:
https://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_insert/7
По изменению
https://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_update/7
Или по расписанию hook_cron().
Хорошо, спасибо, я попробую..
Пока решил переносом поля из одного материала в другой..
как я вообще это сделал, я не знаю :D
потому что стал пробовать на другом сайте и ничего не получилось, а тут, в этом типе материала, работает 0_о