Я создал вид с несколькими открытыми фильтрами, но он выглядит ужасно.
Я хотел бы улучшить тематику, в том числе обернуть все это в набор полей, а также сгруппировать некоторые другие элементы (например, объединить опубликованные и обновленные входные данные), но не уверен, как это сделать.
Я пытался изменить форму var_dump, но, кажется, она продолжается вечно, и мой браузер блокируется, поэтому я не могу легко узнать что-либо о форме таким образом.
Я также попытался поместить форму как дочерний набор полей в другую форму, но получение всей информации об идентификаторе формы и т. Д. Оказалось проблематичным (хотя я получил стилизацию набора полей).
У кого-нибудь есть указатели?
Обновить:
Я скопировал шаблон из модуля в каталог тем моего сайта и начал.
<fieldset>
<legend>Filters</legend>
<div class="views-exposed-form">
<div class="views-exposed-widgets clear-block">
<?php foreach($widgets as $id => $widget): ?>
<div class="views-exposed-widget">
<?php if (!empty($widget->label)): ?>
<label for="<?php print $widget->id; ?>">
<?php print $widget->label; ?>
</label>
<?php endif; ?>
<?php if (!empty($widget->operator)): ?>
<div class="views-operator">
<?php print $widget->operator; ?>
</div>
<?php endif; ?>
<div class="views-widget">
<?php print $widget->widget; ?>
</div>
</div>
<?php endforeach; ?>
<div class="views-exposed-widget">
<?php print $button ?>
</div>
</div>
</div>
</fieldset>
Я не могу понять, как соединить поля даты - мне нужно как-то изменить свойства виджета, чтобы я мог обернуть их в HTML (использование hook_form_alter не работает, потому что добавлены #prefix и #suffix, $widget->widget
чтобы они сломать вывод)
views-exposed-form--view_id.tpl.php
илиviews-exposed-form--view_id--display_id.tpl.php
, больше информацииТакже взгляните на модуль Better Exposed Filters . Вам понадобится релиз -dev, чтобы получить опцию свертываемых фильтров, хотя я надеюсь скоро выпустить правильный релиз 1.1 ...
источник
Вы должны посмотреть, что в
form['#theme']
пункте. Лучшим способом сделать это (лучше чемvar_dump()
) было бы использованиеdsm($form)
или дажеkpr($form)
, эти функции будут доступны после установки модуля devel ( http://drupal.org/project/devel ).form['#theme']
должен быть массив около 7 элементов. Эти элементы являются именами хуков тем, которые вызываются при визуализации этой формы. Вы можете использовать их, чтобы реализовать свой собственный способ оформления формы.Один из предметов будет называться
views_exposed_form__VIEW_NAME__DISPLAY_ID
.В вашем модуле (если он у вас есть) должна быть реализация hook_theme ()
источник
В предыдущих ситуациях я использовал Hook_form_alter (), чтобы добавить префикс и суффикс, чтобы сформировать элементы, чтобы обернуть их в div, который затем можно стилизовать. Не уверен насчет оборачивания в fieldsets все же.
например.
источник
Используйте hook_form_FORM_ID_alter в Drupal, чтобы изменить форму. Вот что решило мою проблему с префиксом символа £ в моем ценовом поле (поместите это в свой пользовательский модуль):
источник
Модуль макетов представлений представлений (D7) поможет вам с отображением тематических представлений.
источник
на странице редактирования представления мы можем проверить информацию о теме (нижний правый угол). Он предоставляет информацию о файлах шаблонов, используемых Drupal для отображения различных частей представления на экране. По умолчанию используются файлы шаблонов, предоставляемые модулем представлений (внутри его папки тем), но в случае, когда мы хотим изменить способ отображения представления, мы можем переопределить эти файлы шаблонов с помощью пользовательских файлов шаблонов, которые мы можем поместить в наш собственная настраиваемая папка темы (или тема, которая будет использоваться для отображения этого представления)
Эта информация о теме показывает нам, как дать имя файлу в соответствии с иерархией (или область действия файла шаблона, которую вы собираетесь переопределить в собственных шаблонах представлений).
Теперь эта информация о теме может отображать не все файлы шаблонов, которые представление использует для визуализации этого конкретного представления.
Итак, перейдите на сайты / all / modules / views / theme и скопируйте views -cted-form.tpl.php (потому что в этом случае мы хотим переопределить значение по умолчанию для фильтров рендеринга!) и вставьте его в свою собственную папку темы, теперь вы должны следовать тому же методу, чтобы управлять эффектом этого перезаписываемого файла шаблона, который вы поместили в свою папку темы, переименовав его соответствующим образом. например, views -cted-form - ваша панель имен name.tpl.php (вы поймете номенклатуру, посмотрев на theme: информацию на странице редактирования представления)
Теперь вы можете добавить CSS к отдельным виджетам (сгенерированным обработчиками фильтров) в этом файле шаблона, и эти настройки будут применены к фильтрам.
посетите http://eureka.ykyuen.info/2011/07/25/drupal-theme-the-exposed-filter-in-views/
источник