ソースを参照

Add templateVars support to widgets.

ADmad 10 年 前
コミット
146d7c81e9

+ 2 - 0
src/View/Widget/ButtonWidget.php

@@ -49,9 +49,11 @@ class ButtonWidget extends BasicWidget
             'text' => '',
             'type' => 'submit',
             'escape' => false,
+            'templateVars' => []
         ];
         return $this->_templates->format('button', [
             'text' => $data['escape'] ? h($data['text']) : $data['text'],
+            'templateVars' => $data['templateVars'],
             'attrs' => $this->_templates->formatAttributes($data, ['text']),
         ]);
     }

+ 2 - 0
src/View/Widget/CheckboxWidget.php

@@ -47,6 +47,7 @@ class CheckboxWidget extends BasicWidget
             'value' => 1,
             'val' => null,
             'disabled' => false,
+            'templateVars' => []
         ];
         if ($this->_isChecked($data)) {
             $data['checked'] = true;
@@ -61,6 +62,7 @@ class CheckboxWidget extends BasicWidget
         return $this->_templates->format('checkbox', [
             'name' => $data['name'],
             'value' => $data['value'],
+            'templateVars' => $data['templateVars'],
             'attrs' => $attrs
         ]);
     }

+ 2 - 1
src/View/Widget/DateTimeWidget.php

@@ -127,7 +127,7 @@ class DateTimeWidget implements WidgetInterface
 
         $selected = $this->_deconstructDate($data['val'], $data);
 
-        $templateOptions = [];
+        $templateOptions = ['templateVars' => $data['templateVars']];
         foreach ($this->_selects as $select) {
             if ($data[$select] === false || $data[$select] === null) {
                 $templateOptions[$select] = '';
@@ -178,6 +178,7 @@ class DateTimeWidget implements WidgetInterface
             'minute' => [],
             'second' => [],
             'meridian' => null,
+            'templateVars' => [],
         ];
 
         $timeFormat = isset($data['hour']['format']) ? $data['hour']['format'] : null;

+ 2 - 0
src/View/Widget/FileWidget.php

@@ -57,11 +57,13 @@ class FileWidget implements WidgetInterface
         $data += [
             'name' => '',
             'escape' => true,
+            'templateVars' => [],
         ];
         unset($data['val']);
 
         return $this->_templates->format('file', [
             'name' => $data['name'],
+            'templateVars' => $data['templateVars'],
             'attrs' => $this->_templates->formatAttributes(
                 $data,
                 ['name', 'val']

+ 3 - 1
src/View/Widget/MultiCheckboxWidget.php

@@ -111,7 +111,8 @@ class MultiCheckboxWidget implements WidgetInterface
             'options' => [],
             'disabled' => null,
             'val' => null,
-            'idPrefix' => null
+            'idPrefix' => null,
+            'templateVars' => []
         ];
         $out = [];
         $this->_idPrefix = $data['idPrefix'];
@@ -120,6 +121,7 @@ class MultiCheckboxWidget implements WidgetInterface
             $checkbox = [
                 'value' => $key,
                 'text' => $val,
+                'templateVars' => $data['templateVars']
             ];
             if (is_array($val) && isset($val['text'], $val['value'])) {
                 $checkbox = $val;

+ 4 - 1
src/View/Widget/RadioWidget.php

@@ -94,7 +94,8 @@ class RadioWidget implements WidgetInterface
             'escape' => true,
             'label' => true,
             'empty' => false,
-            'idPrefix' => null
+            'idPrefix' => null,
+            'templateVars' => [],
         ];
         if ($data['options'] instanceof Traversable) {
             $options = iterator_to_array($data['options']);
@@ -181,6 +182,7 @@ class RadioWidget implements WidgetInterface
         $input = $this->_templates->format('radio', [
             'name' => $radio['name'],
             'value' => $escape ? h($radio['value']) : $radio['value'],
+            'templateVars' => $data['templateVars'],
             'attrs' => $this->_templates->formatAttributes($radio, ['name', 'value', 'text']),
         ]);
 
@@ -201,6 +203,7 @@ class RadioWidget implements WidgetInterface
         return $this->_templates->format('radioWrapper', [
             'input' => $input,
             'label' => $label,
+            'templateVars' => $data['templateVars'],
         ]);
     }
 

+ 2 - 0
src/View/Widget/SelectBoxWidget.php

@@ -110,6 +110,7 @@ class SelectBoxWidget extends BasicWidget
             'options' => [],
             'disabled' => null,
             'val' => null,
+            'templateVars' => []
         ];
 
         $options = $this->_renderContent($data);
@@ -127,6 +128,7 @@ class SelectBoxWidget extends BasicWidget
         $attrs = $this->_templates->formatAttributes($data);
         return $this->_templates->format($template, [
             'name' => $name,
+            'templateVars' => $data['templateVars'],
             'attrs' => $attrs,
             'content' => implode('', $options),
         ]);

+ 3 - 1
src/View/Widget/TextareaWidget.php

@@ -46,11 +46,13 @@ class TextareaWidget extends BasicWidget
             'val' => '',
             'name' => '',
             'escape' => true,
-            'rows' => 5
+            'rows' => 5,
+            'templateVars' => []
         ];
         return $this->_templates->format('textarea', [
             'name' => $data['name'],
             'value' => $data['escape'] ? h($data['val']) : $data['val'],
+            'templateVars' => $data['templateVars'],
             'attrs' => $this->_templates->formatAttributes(
                 $data,
                 ['name', 'val']