Browse Source

Merge pull request #6221 from cakephp/form-group-by-types

Support form groups templates by type
Mark Story 11 years ago
parent
commit
b299e2a953
2 changed files with 24 additions and 1 deletions
  1. 4 1
      src/View/Helper/FormHelper.php
  2. 20 0
      tests/TestCase/View/Helper/FormHelperTest.php

+ 4 - 1
src/View/Helper/FormHelper.php

@@ -1053,7 +1053,10 @@ class FormHelper extends Helper
      */
     protected function _groupTemplate($options)
     {
-        $groupTemplate = $options['options']['type'] === 'checkbox' ? 'checkboxFormGroup' : 'formGroup';
+        $groupTemplate = $options['options']['type'] . 'FormGroup';
+        if (!$this->templater()->get($groupTemplate)) {
+            $groupTemplate = 'formGroup';
+        }
         return $this->templater()->format($groupTemplate, [
             'input' => $options['input'],
             'label' => $options['label'],

+ 20 - 0
tests/TestCase/View/Helper/FormHelperTest.php

@@ -6968,6 +6968,26 @@ class FormHelperTest extends TestCase
     }
 
     /**
+     * Test that *Container templates are used by input.
+     *
+     * @return void
+     */
+    public function testFormGroupTemplates()
+    {
+        $this->Form->templates([
+            'radioFormGroup' => '<div class="radio">{{label}}{{input}}</div>',
+        ]);
+
+        $this->Form->create($this->article);
+
+        $result = $this->Form->input('accept', [
+            'type' => 'radio',
+            'options' => ['Y', 'N']
+        ]);
+        $this->assertContains('<div class="radio">', $result);
+    }
+
+    /**
      * Test resetting templates.
      *
      * @return void