summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwebchick2014-03-07 22:20:52 (GMT)
committerwebchick2014-03-07 22:20:52 (GMT)
commitad5980c7aee3085552ec179f6f2513ad43c8933f (patch)
tree2b9e4f1a12a5927f6e301dee8636d0b69ca9b22b
parentf258db4ddd8d49480cb850fff5f08fe477bb3f95 (diff)
Issue #2152211 by joelpittet, IshaDakota, rteijeiro, steveoliver, hussainweb, shanethehat, jenlampton, kpa, AnythonyR, EVIIILJ, kgoel, Cottser, dsdeiz, hanpersand: Convert theme_form() to Twig.
-rw-r--r--core/includes/form.inc12
-rw-r--r--core/includes/theme.inc1
-rw-r--r--core/modules/system/templates/form.html.twig15
3 files changed, 22 insertions, 6 deletions
diff --git a/core/includes/form.inc b/core/includes/form.inc
index 638f56c..8867456 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -2680,16 +2680,16 @@ function form_pre_render_color($element) {
}
/**
- * Returns HTML for a form.
+ * Prepares variables for form templates.
+ *
+ * Default template: form.html.twig.
*
* @param $variables
* An associative array containing:
* - element: An associative array containing the properties of the element.
* Properties used: #action, #method, #attributes, #children
- *
- * @ingroup themeable
*/
-function theme_form($variables) {
+function template_preprocess_form(&$variables) {
$element = $variables['element'];
if (isset($element['#action'])) {
$element['#attributes']['action'] = UrlHelper::stripDangerousProtocols($element['#action']);
@@ -2698,8 +2698,8 @@ function theme_form($variables) {
if (empty($element['#attributes']['accept-charset'])) {
$element['#attributes']['accept-charset'] = "UTF-8";
}
- // Anonymous DIV to satisfy XHTML compliance.
- return '<form' . new Attribute($element['#attributes']) . '><div>' . $element['#children'] . '</div></form>';
+ $variables['attributes'] = $element['#attributes'];
+ $variables['children'] = $element['#children'];
}
/**
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index cf9b880..0787de7 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -2608,6 +2608,7 @@ function drupal_common_theme() {
),
'form' => array(
'render element' => 'element',
+ 'template' => 'form',
),
'textarea' => array(
'render element' => 'element',
diff --git a/core/modules/system/templates/form.html.twig b/core/modules/system/templates/form.html.twig
new file mode 100644
index 0000000..b95fe71
--- /dev/null
+++ b/core/modules/system/templates/form.html.twig
@@ -0,0 +1,15 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a 'form' element.
+ *
+ * Available variables
+ * - attributes: A list of HTML attributes for the wrapper element.
+ * - children: The child elements of the form.
+ *
+ * @see template_preprocess_form()
+ *
+ * @ingroup themeable
+ */
+#}
+<form{{ attributes }}><div>{{ children }}</div></form>