Всем привет!
Выпала возможность наконец опробовать commerce И при разработке случилась следующая ситуация.
Для создания товара commerce_product я использую inline_entity_form-виджет для поля вариантов товара в ноде. У commerce_product есть поле изображения. У типа материала ноды есть поле с анлим-списком, который добавляет новые поля, соответственно, с помощью AJAX. Когда это происходит, то выскакивает ошибка, если картинка не выбрана:
Notice: Undefined index: #title в функции file_managed_file_validate() (строка 567 в файле ...\modules\file\file.module).
То есть, при выводе поля с выбором картинки в inline_entity_form, он убирает из него #title (так как выводит его через свой заголовок в $entity_form['product_image']) и в file_managed_file_validate происходит ошибка, так как при валидации этот #title используется для оповещения о названии поля с ошибкой.
Я искал здесь, на орге подобную проблему - тишина... Все модули свежие, dev-версий среди них нет.
В итоге я пока обошёлся следующим решением, при условии, что моё поле с картинкой называется field_product_image:
<?php
function MODULENAME_inline_entity_form_entity_form_alter(&$entity_form, &$form_state) {
if ($entity_form['#entity_type'] == 'commerce_product') {
$field_product_image = field_info_instance($entity_form['#entity_type'], 'field_product_image', $entity_form['#bundle']);
$entity_form['field_product_image'][LANGUAGE_NONE][0]['#title'] = $field_product_image['label'];
}
}
?>
Ничего другого я придумать не смог. Рыскал настройки полей, но никак titie вернуть полю с изображением, кроме как руками, не смог. Может, я что-то такое упустил? Подскажите, кто сталкивался с подобным, есть ли решение красивее. Но факт есть факт - ошибка присутствует и это не есть гуд.
Комментарии
кто нибудь вообще поясните как пользоваться Inline Entity Form