diff --git a/core/modules/views/views_ui/templates/views-ui-expose-filter-form.html.twig b/core/modules/views/views_ui/templates/views-ui-expose-filter-form.html.twig
new file mode 100644
index 0000000..2c5fd20
--- /dev/null
+++ b/core/modules/views/views_ui/templates/views-ui-expose-filter-form.html.twig
@@ -0,0 +1,68 @@
+{#
+/**
+ * @file
+ * Default theme implementation for expose filter form.
+ *
+ * Available variables:
+ * - form_description: @todo.
+ * - expose_button: @todo.
+ * - group_button: @todo.
+ * - required: @todo.
+ * - label: @todo.
+ * - description: @todo.
+ * - operator: @todo.
+ * - value: @todo.
+ * - use_operator: @todo.
+ * - widget: @todo.
+ * - label: @todo.
+ * - description: @todo.
+ * - has_left_column: @todo.
+ * - children: Child elements of the form that still need to be printed.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_views_ui_expose_filter_form()
+ *
+ * @ingroup themeable
+ */
+#}
+{{ form_description }}
+{{ expose_button }}
+{{ group_button }}
+
+{% if required %}
+ {{ required }}
+{% endif %}
+
+{{ label }}
+{{ description }}
+
+{% if operator %}
+ {{ operator }}
+{% endif %}
+{% if value %}
+ {{ value }}
+{% endif %}
+
+{% if use_operator %}
+
+ {{ use_operator }}
+
+{% endif %}
+
+
+ {% if widget %}
+ {{ widget }}
+ {% endif %}
+ {{ label }}
+ {{ description }}
+
+
+{% if has_left_column %}
+
+ {{ children }}
+
+{% else %}
+ {{ children }}
+{% endif %}
+
+{{ more }}
diff --git a/core/modules/views/views_ui/views_ui.module b/core/modules/views/views_ui/views_ui.module
index 8434656..979c2a8 100644
--- a/core/modules/views/views_ui/views_ui.module
+++ b/core/modules/views/views_ui/views_ui.module
@@ -125,6 +125,7 @@ function views_ui_theme() {
'views_ui_expose_filter_form' => array(
'render element' => 'form',
'file' => 'views_ui.theme.inc',
+ 'template' => 'views-ui-expose-filter-form',
),
// list views
diff --git a/core/modules/views/views_ui/views_ui.theme.inc b/core/modules/views/views_ui/views_ui.theme.inc
index 2f92bdd..4d21b41 100644
--- a/core/modules/views/views_ui/views_ui.theme.inc
+++ b/core/modules/views/views_ui/views_ui.theme.inc
@@ -75,43 +75,57 @@ function theme_views_ui_view_info($variables) {
}
/**
- * Theme the expose filter form.
+ * Prepares variables for Views UI expose filter form.
+ *
+ * Default template: views-ui-expose-filter-form.html.twig.
+ *
+ * @param array $variables
+ * An associative array containing:
+ * - form: A render element representing the form.
*/
-function theme_views_ui_expose_filter_form($variables) {
+function template_preprocess_views_ui_expose_filter_form(&$variables) {
$form = $variables['form'];
- $more = drupal_render($form['more']);
+ $variables['form_description'] = $form['form_description'];
+ $variables['expose_button'] = $form['expose_button'];
+ $variables['group_button'] = $form['group_button'];
+ unset($form['form_description']);
+ unset($form['expose_button']);
+ unset($form['group_button']);
- $output = drupal_render($form['form_description']);
- $output .= drupal_render($form['expose_button']);
- $output .= drupal_render($form['group_button']);
if (isset($form['required'])) {
- $output .= drupal_render($form['required']);
+ $variables['required'] = $form['required'];
+ unset($form['required']);
}
- $output .= drupal_render($form['label']);
- $output .= drupal_render($form['description']);
- $output .= drupal_render($form['operator']);
- $output .= drupal_render($form['value']);
+ $variables['label'] = $form['label'];
+ $variables['description'] = $form['description'];
+ unset($form['label']);
+ unset($form['description']);
+
+ $variables['operator'] = $form['operator'];
+ $variables['value'] = $form['value'];
+ unset($form['operator']);
+ unset($form['value']);
if (isset($form['use_operator'])) {
- $output .= '';
- $output .= drupal_render($form['use_operator']);
- $output .= '
';
+ $variables['use_operator'] = $form['use_operator'];
+ unset($form['use_operator']);
}
- // Only output the right column markup if there's a left column to begin with
+ // Only output the right column markup if there's a left column to begin with.
if (!empty($form['operator']['#type'])) {
- $output .= '';
- $output .= drupal_render_children($form);
- $output .= '
';
+ $variables['has_left_column'] = TRUE;
}
else {
- $output .= drupal_render_children($form);
+ $variables['has_left_column'] = FALSE;
}
- $output .= $more;
+ $variables['more'] = $form['more'];
+ unset($form['more']);
- return $output;
+ // Remove elements from the 'children' render array.
+ // @todo Refactor when http://drupal.org/node/1920886 is resolved.
+ $variables['children'] = drupal_render_children($form);
}
/**