При использовании Inline entityform периодически возникает необходимость сделать ее более красивой, более соответсвующей концепту сайта. Есть несколько способо реализации этого, сегодян я расскажу об одном из - использование шаблона темизации.
Так как Inline entityform это обычная форма, значит у нее как миниму должен быть некий hook_alter. Смотрим документацию, которая кстати находиться в самом модуле - inline_entity_form.api.php. В документации нашел нужный hook - hook_inline_entity_form_entity_form_alter.
На входе которого как раз и подается наша inline form.
Следующий шаг добавляем функцию темизации
/** * hook_inline_entity_form_entity_form_alter */ function sm_inline_entity_form_entity_form_alter(&$entity_form, &$form_state) { // added theme function $entity_form['#theme'][] = 'inline_entity_form_entity_form_' . $entity_form['#bundle']; dpm($entity_form); }
Чуть не забыл сказать, всю магию делаем в template.php нашей формы.
Рассказываю что произошло, что мы сделали в предыдущем пункте? Мы добавили функцию темизаиции для нашей inline form, причем не только для одно а для всех. Функция модуля devel dpm() поможет нам изучить внутренности нашей Inline form
Следующий шаг в нашей магии, это в template.php создать hook_theme и в нем объявить шаблон для нашей inline form
/** * Implements hook_theme(). */ function sm_theme($existing, $type, $theme, $path) { $items['inline_entity_form_entity_form_shoes'] = array( 'render element' => 'form', 'template' => 'inline-entity-form-entity-form-shoes', // this will set to module/theme path by default: 'path' => drupal_get_path('theme', 'sm') . '/templates/inline_form', ); return $items; }
Так же обязательно создаем файл нашего шаблона и ложим его по кути указанным в 'path' hook_theme.
Далее я в шаблон вставляем следующий код
<?php dpm($form); ?> <!--Start inline-entity-form-entity-form-shoes.tpl.php--> <!--@see sm_theme adn template.php--> <div class="row"> <?php print drupal_render_children($form); ?> </div>
Далее смотрим что нам выдаст dpm(), далее используя drupal_render выводим поля в нужном нам порядке