Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Присвоить полю значение просчитывающиеся PHP

Присвоить полю значение просчитывающиеся PHP
, by

Вообще, мне нужно в одном поле получить значение другого. Когда я пытался это делать на "тестовом" типе материала с помощью поля 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 и тд ?>

Помогите, пожалуйста. Очень важную функцию хочу реализовать.. 
 

1 answer
votes: 1023
Answer

Не морочтесь с 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_о