#5891: Form helper's radio() function incorrectly generates ID attribute
-------------------------+--------------------------------------------------
    Reporter:  robechar  |         Owner:  mark_story
        Type:  Bug       |        Status:  assigned  
    Priority:  Medium    |     Milestone:  1.2.x.x   
   Component:  Helpers   |       Version:  RC3       
    Severity:  Normal    |    Resolution:            
    Keywords:            |   Php_version:  n/a       
Cake_version:            |  
-------------------------+--------------------------------------------------
Changes (by mark_story):

  * owner:  => mark_story
  * status:  new => assigned

Old description:

> For radio buttons with a $fieldName more than 2 levels deep, ids are
> being improperly generated.
>
> For example <code>$form->radio('Response.524.test', array('Yes'=>'Yes',
> 'No'=>'No'));</code> should generate inputs with an ID of
> Response524TestYes and Response524TestNo respectively.  Currently it
> returns Response524Yes and Response524No, ignoring anything past the
> second level.
>

> Line # 884 of the FormHelper uses this logic to create the ID:
>
> $tagName = Inflector::camelize(
>         $this->model() . '_' . $this->field() . '_' .
> Inflector::underscore($optValue)
> );
>

> When it should be something like this:
>
> $tagName = Inflector::camelize($attribute[ 'id' ] . '_' .
> Inflector::underscore($optValue));

New description:

 For radio buttons with a $fieldName more than 2 levels deep, ids are being
 improperly generated.

 For example <code>$form->radio('Response.524.test', array('Yes'=>'Yes',
 'No'=>'No'));</code> should generate inputs with an ID of
 Response524TestYes and Response524TestNo respectively.  Currently it
 returns Response524Yes and Response524No, ignoring anything past the
 second level.


 Line # 884 of the FormHelper uses this logic to create the ID:
 {{{
 $tagName = Inflector::camelize(
         $this->model() . '_' . $this->field() . '_' .
 Inflector::underscore($optValue)
 );
 }}}

 When it should be something like this:
 {{{
 $tagName = Inflector::camelize($attribute[ 'id' ] . '_' .
 Inflector::underscore($optValue));
 }}}

Comment:

 Fixing formatting.  Thanks for the bug report.  In the future, please
 supply changes in universal diff format.  It makes everyone's life a bit
 easier :)

-- 
Ticket URL: <https://trac.cakephp.org/ticket/5891#comment:1>
CakePHP : The Rapid Development Framework for PHP <https://trac.cakephp.org/>
Cake is a rapid development framework for PHP which uses commonly known design 
patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. 
Our primary goal is to provide a structured framework that enables PHP users at 
all levels to rapidly develop robust web applications, without any loss to 
flexibility.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"tickets cakephp" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/tickets-cakephp?hl=en
-~----------~----~----~----~------~----~------~--~---

  • [CakePHP : The Rapid Dev... CakePHP : The Rapid Development Framework for PHP
    • Re: [CakePHP : The ... CakePHP : The Rapid Development Framework for PHP

Reply via email to