Я столкнулся с той же проблемой и нашел решение благодаря подсказке Бердира.
Как вы упомянули, text_format возвращает массив с двумя значениями, такими как:
$items[0]['MY_WYSIWYG_FIELD'] = array(
'value' => 'some text.',
'format' => 'filtered_html'
);
Использованиеhook_field_presave () Я смог подготовить значения, чтобы сохранить их в моей базе данных.
Поскольку я не хочу сохранять значение формата, я просто извлекаю текстовое значение из массива ['MY_WYSIWYG_FIELD'] изамените массив извлеченным значением:
$items[0]['MY_WYSIWYG_FIELD'] = 'some text.';
мой хук выглядит так:
function MY_FIELD_MODULE_field_presave($entity_type, $entity, $field, $instance, $langcode, &$items) {
if ($field['type'] == 'MY_FIELD_TYPE') {
foreach ($items as $delta => $item) {
if (isset($item['MY_WYSIWYG_FIELD'])) {
$value = $item['MY_WYSIWYG_FIELD']['value'];
$items[$delta]['MY_WYSIWYG_FIELD'] = $value;
}
}
}
}
Надеюсь, это поможет!