mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Merge pull request #864 from dereuromark/2.3-radio-multiple-between
allow between to be an array of strings Fixes #2859
This commit is contained in:
commit
bc4db91b51
2 changed files with 119 additions and 119 deletions
|
@ -34,13 +34,6 @@ App::uses('Router', 'Routing');
|
|||
*/
|
||||
class ContactTestController extends Controller {
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'ContactTest'
|
||||
*/
|
||||
public $name = 'ContactTest';
|
||||
|
||||
/**
|
||||
* uses property
|
||||
*
|
||||
|
@ -57,13 +50,6 @@ class ContactTestController extends Controller {
|
|||
*/
|
||||
class Contact extends CakeTestModel {
|
||||
|
||||
/**
|
||||
* primaryKey property
|
||||
*
|
||||
* @var string 'id'
|
||||
*/
|
||||
public $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* useTable property
|
||||
*
|
||||
|
@ -71,13 +57,6 @@ class Contact extends CakeTestModel {
|
|||
*/
|
||||
public $useTable = false;
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'Contact'
|
||||
*/
|
||||
public $name = 'Contact';
|
||||
|
||||
/**
|
||||
* Default schema
|
||||
*
|
||||
|
@ -170,13 +149,6 @@ class ContactTagsContact extends CakeTestModel {
|
|||
*/
|
||||
public $useTable = false;
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'Contact'
|
||||
*/
|
||||
public $name = 'ContactTagsContact';
|
||||
|
||||
/**
|
||||
* Default schema
|
||||
*
|
||||
|
@ -215,13 +187,6 @@ class ContactNonStandardPk extends Contact {
|
|||
*/
|
||||
public $primaryKey = 'pk';
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'ContactNonStandardPk'
|
||||
*/
|
||||
public $name = 'ContactNonStandardPk';
|
||||
|
||||
/**
|
||||
* schema method
|
||||
*
|
||||
|
@ -279,20 +244,6 @@ class UserForm extends CakeTestModel {
|
|||
*/
|
||||
public $useTable = false;
|
||||
|
||||
/**
|
||||
* primaryKey property
|
||||
*
|
||||
* @var string 'id'
|
||||
*/
|
||||
public $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'UserForm'
|
||||
*/
|
||||
public $name = 'UserForm';
|
||||
|
||||
/**
|
||||
* hasMany property
|
||||
*
|
||||
|
@ -334,20 +285,6 @@ class OpenidUrl extends CakeTestModel {
|
|||
*/
|
||||
public $useTable = false;
|
||||
|
||||
/**
|
||||
* primaryKey property
|
||||
*
|
||||
* @var string 'id'
|
||||
*/
|
||||
public $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'OpenidUrl'
|
||||
*/
|
||||
public $name = 'OpenidUrl';
|
||||
|
||||
/**
|
||||
* belongsTo property
|
||||
*
|
||||
|
@ -397,13 +334,6 @@ class OpenidUrl extends CakeTestModel {
|
|||
*/
|
||||
class ValidateUser extends CakeTestModel {
|
||||
|
||||
/**
|
||||
* primaryKey property
|
||||
*
|
||||
* @var string 'id'
|
||||
*/
|
||||
public $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* useTable property
|
||||
*
|
||||
|
@ -411,13 +341,6 @@ class ValidateUser extends CakeTestModel {
|
|||
*/
|
||||
public $useTable = false;
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'ValidateUser'
|
||||
*/
|
||||
public $name = 'ValidateUser';
|
||||
|
||||
/**
|
||||
* hasOne property
|
||||
*
|
||||
|
@ -461,13 +384,6 @@ class ValidateUser extends CakeTestModel {
|
|||
*/
|
||||
class ValidateProfile extends CakeTestModel {
|
||||
|
||||
/**
|
||||
* primaryKey property
|
||||
*
|
||||
* @var string 'id'
|
||||
*/
|
||||
public $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* useTable property
|
||||
*
|
||||
|
@ -489,13 +405,6 @@ class ValidateProfile extends CakeTestModel {
|
|||
'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null)
|
||||
);
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'ValidateProfile'
|
||||
*/
|
||||
public $name = 'ValidateProfile';
|
||||
|
||||
/**
|
||||
* hasOne property
|
||||
*
|
||||
|
@ -535,13 +444,6 @@ class ValidateProfile extends CakeTestModel {
|
|||
*/
|
||||
class ValidateItem extends CakeTestModel {
|
||||
|
||||
/**
|
||||
* primaryKey property
|
||||
*
|
||||
* @var string 'id'
|
||||
*/
|
||||
public $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* useTable property
|
||||
*
|
||||
|
@ -549,13 +451,6 @@ class ValidateItem extends CakeTestModel {
|
|||
*/
|
||||
public $useTable = false;
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'ValidateItem'
|
||||
*/
|
||||
public $name = 'ValidateItem';
|
||||
|
||||
/**
|
||||
* schema property
|
||||
*
|
||||
|
@ -599,13 +494,6 @@ class ValidateItem extends CakeTestModel {
|
|||
*/
|
||||
class TestMail extends CakeTestModel {
|
||||
|
||||
/**
|
||||
* primaryKey property
|
||||
*
|
||||
* @var string 'id'
|
||||
*/
|
||||
public $primaryKey = 'id';
|
||||
|
||||
/**
|
||||
* useTable property
|
||||
*
|
||||
|
@ -613,12 +501,6 @@ class TestMail extends CakeTestModel {
|
|||
*/
|
||||
public $useTable = false;
|
||||
|
||||
/**
|
||||
* name property
|
||||
*
|
||||
* @var string 'TestMail'
|
||||
*/
|
||||
public $name = 'TestMail';
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3575,6 +3457,51 @@ class FormHelperTest extends CakeTestCase {
|
|||
'/fieldset'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Form->radio(
|
||||
'Model.field',
|
||||
array('option A', 'option B', 'option C'),
|
||||
array('separator' => '--separator--', 'between' => array('between A', 'between B', 'between C'))
|
||||
);
|
||||
|
||||
$expected = array(
|
||||
'fieldset' => array(),
|
||||
'legend' => array(),
|
||||
'Field',
|
||||
'/legend',
|
||||
'input' => array(
|
||||
'type' => 'hidden', 'name' => 'data[Model][field]',
|
||||
'value' => '', 'id' => 'ModelField_'
|
||||
),
|
||||
array('input' => array(
|
||||
'type' => 'radio', 'name' => 'data[Model][field]',
|
||||
'value' => '0', 'id' => 'ModelField0'
|
||||
)),
|
||||
array('label' => array('for' => 'ModelField0')),
|
||||
'option A',
|
||||
'/label',
|
||||
'between A',
|
||||
'--separator--',
|
||||
array('input' => array(
|
||||
'type' => 'radio', 'name' => 'data[Model][field]',
|
||||
'value' => '1', 'id' => 'ModelField1'
|
||||
)),
|
||||
array('label' => array('for' => 'ModelField1')),
|
||||
'option B',
|
||||
'/label',
|
||||
'between B',
|
||||
'--separator--',
|
||||
array('input' => array(
|
||||
'type' => 'radio', 'name' => 'data[Model][field]',
|
||||
'value' => '2', 'id' => 'ModelField2'
|
||||
)),
|
||||
array('label' => array('for' => 'ModelField2')),
|
||||
'option C',
|
||||
'/label',
|
||||
'between C',
|
||||
'/fieldset'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3729,6 +3656,72 @@ class FormHelperTest extends CakeTestCase {
|
|||
'/fieldset'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Form->input('Model.field', array(
|
||||
'options' => array('1' => 'first', '2' => 'second'),
|
||||
'type' => 'radio',
|
||||
'before' => '--before--',
|
||||
'after' => '--after--',
|
||||
'separator' => '--separator--',
|
||||
'between' => array('--between first--', '--between second--')
|
||||
));
|
||||
|
||||
$expected = array(
|
||||
'div' => array('class' => 'input radio'),
|
||||
'--before--',
|
||||
'fieldset' => array(),
|
||||
'legend' => array(),
|
||||
'Field',
|
||||
'/legend',
|
||||
array('input' => array('type' => 'hidden', 'name' => 'data[Model][field]', 'id' => 'ModelField_', 'value' => '')),
|
||||
array('input' => array('type' => 'radio', 'name' => 'data[Model][field]', 'value' => '1', 'id' => 'ModelField1')),
|
||||
array('label' => array('for' => 'ModelField1')),
|
||||
'first',
|
||||
'/label',
|
||||
'--between first--',
|
||||
'--separator--',
|
||||
array('input' => array('type' => 'radio', 'name' => 'data[Model][field]', 'value' => '2', 'id' => 'ModelField2')),
|
||||
array('label' => array('for' => 'ModelField2')),
|
||||
'second',
|
||||
'/label',
|
||||
'--between second--',
|
||||
'/fieldset',
|
||||
'--after--',
|
||||
'/div'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Form->input('Model.field', array(
|
||||
'options' => array('1' => 'first', '2' => 'second'),
|
||||
'type' => 'radio',
|
||||
'before' => '--before--',
|
||||
'after' => '--after--',
|
||||
'separator' => '--separator--',
|
||||
'between' => array('--between first--')
|
||||
));
|
||||
|
||||
$expected = array(
|
||||
'div' => array('class' => 'input radio'),
|
||||
'--before--',
|
||||
'fieldset' => array(),
|
||||
'legend' => array(),
|
||||
'Field',
|
||||
'/legend',
|
||||
array('input' => array('type' => 'hidden', 'name' => 'data[Model][field]', 'id' => 'ModelField_', 'value' => '')),
|
||||
array('input' => array('type' => 'radio', 'name' => 'data[Model][field]', 'value' => '1', 'id' => 'ModelField1')),
|
||||
array('label' => array('for' => 'ModelField1')),
|
||||
'first',
|
||||
'/label',
|
||||
'--between first--',
|
||||
'--separator--',
|
||||
array('input' => array('type' => 'radio', 'name' => 'data[Model][field]', 'value' => '2', 'id' => 'ModelField2')),
|
||||
array('label' => array('for' => 'ModelField2')),
|
||||
'second',
|
||||
'/label',
|
||||
'/fieldset',
|
||||
'--after--',
|
||||
'/div'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1417,7 +1417,8 @@ class FormHelper extends AppHelper {
|
|||
* ### Attributes:
|
||||
*
|
||||
* - `separator` - define the string in between the radio buttons
|
||||
* - `between` - the string between legend and input set
|
||||
* - `between` - the string between legend and input set or array of strings to insert
|
||||
* strings between each input block
|
||||
* - `legend` - control whether or not the widget set has a fieldset & legend
|
||||
* - `value` - indicate a value that is should be checked
|
||||
* - `label` - boolean to indicate whether or not labels for widgets show be displayed
|
||||
|
@ -1506,6 +1507,9 @@ class FormHelper extends AppHelper {
|
|||
if ($label) {
|
||||
$optTitle = $this->Html->useTag('label', $tagName, '', $optTitle);
|
||||
}
|
||||
if (is_array($between)) {
|
||||
$optTitle .= array_shift($between);
|
||||
}
|
||||
$allOptions = array_merge($attributes, $optionsHere);
|
||||
$out[] = $this->Html->useTag('radio', $attributes['name'], $tagName,
|
||||
array_diff_key($allOptions, array('name' => '', 'type' => '', 'id' => '')),
|
||||
|
@ -1523,6 +1527,9 @@ class FormHelper extends AppHelper {
|
|||
}
|
||||
$out = $hidden . implode($separator, $out);
|
||||
|
||||
if (is_array($between)) {
|
||||
$between = '';
|
||||
}
|
||||
if ($legend) {
|
||||
$out = $this->Html->useTag('fieldset', '', $this->Html->useTag('legend', $legend) . $between . $out);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue