-- [email protected] <[email protected]> wrote
(on Wednesday, 01 April 2009, 10:14 AM +0000):
> Thanks for the response again. I just read in an issue that this is made
> intentional behaviour:
> http://framework.zend.com/issues/browse/ZF-277
> 
> But I strongly disagree with this. Therefor I created a new issue:
> 
> http://framework.zend.com/issues/browse/ZF-6174

I can't get to the issue tracker right now, but I can tell you now that
I'm going to deny the request.

The reason is two-fold.

First, the design of the form view helpers since the very beginning has
been to *always* create IDs. This is to make it trivial to get to the
discrete elements using JavaScript, as well as to make testing easy
(easier to select DOM elements by ID than other methods, though
Zend_Dom_Query now makes it less of an issue).

Second, if you're having ID collisions, there is another mechanism you
can use that's built into Zend_Form: array notation. Call the
setElementsBelongTo() method of your form (or pass the
'elementsBelongTo' configuration key) and provide a unique namespace for
your form. All elements within will then be prefixed by "<name>-".

Refactoring to allow *optional* display of IDs at this point only serves
an edge case for something that can be easily avoided with proper
configuration.

> PS.:
> Vince, my apologies for sending the same message to you twice. I messed up
> twice with replying to the list in stead of you.
> 
> 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> Date: Wed, 1 Apr 2009 11:43:59 +0300
> Subject: Re: [fw-general] Disable id attribute for form elements?
> From: [email protected]
> To: [email protected]
> CC: [email protected]
> 
> Hey,
> 
> Yes, sorry i meant you CAN set null and it should unset the property. I think
> it's either a bug or something is wrong or is working not as the way it 
> should.
> 
> Not sure but you could raise an issue.
> 
> Vince.
> 
> On Wed, Apr 1, 2009 at 11:36 AM, <[email protected]> wrote:
> 
>     Hi,
> 
>     Looking at it I can see I *can* set null as the value, as per:
> 
> 
>             if (null === $value) {
>                 unset($this->$name);
> 
> 
>     But I presume some decorator or other render method replaces attribute 
> "id"
>     with the "name" attribute value if "id" equals null
> 
>     I haven't been able to figure out where this is though. I looked in:
> 
> 
>     Zend_Form_Element
>     Zend_Form_Element_Hidden (which I need it for)
>     Zend_Form_Element_Xhtml
>     Zend_Form_Decorator_Abstract
>     Zend_Form_Decorator_FormElements
>     Zend_Form_Decorator_HtmlTag
> 
>     ...all to no avail.  So any other pointers much appreciated.
> 
>     Cheers
> 
> 
>     
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>     Date: Wed, 1 Apr 2009 11:09:54 +0300
>     Subject: Re: [fw-general] Disable id attribute for form elements?
>     From: [email protected]
>     To: [email protected]
>     CC: [email protected]
> 
>     Hi,
> 
>     looking at Form/Element.php at the setAttrib function you can understand
>     how the function works. you can tell that you can't just set null as the
>     value.
> 
> 
>         /**
>          * Set element attribute
>          *
>          * @param  string $name
>          * @param  mixed $value
>          * @return Zend_Form_Element
>          * @throws Zend_Form_Exception for invalid $name values
>          */
>         public function setAttrib($name, $value)
>         {
>             $name = (string) $name;
>             if ('_' == $name[0]) {
>                 require_once 'Zend/Form/Exception.php';
>                 throw new Zend_Form_Exception(sprintf('Invalid attribute "%s";
>     must not contain a leading underscore', $name));
>             }
> 
>             if (null === $value) {
>                 unset($this->$name);
>             } else {
>                 $this->$name = $value;
>             }
> 
>             return $this;
>         }
> 
>     Vince.
> 
>     On Wed, Apr 1, 2009 at 10:31 AM, <[email protected]> wrote:
> 
>         Hi all,
> 
>         Is there a way to disable the rendering of id attributes for form
>         elements? I'm building a CMS which displays a tree of pages that can 
> be
>         edited. The tree consists of multiple forms for each page. I'ld rather
>         not create unique for all of them.
> 
>         I tried:
>         Zend_Form_Element::setAttrib( 'id', '' ); // results in invalid W3C
>         code: id=""
>         Zend_Form_Element::setAttrib( 'id', null ); // results in rendering 
> id=
>         "<name of the element>"
> 
>         I just simply want to disable the id attribute. Any possibilities?
> 
>         Cheers
> 
>         
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>         Alle tips en trics. Ontdek nu de nieuwe Windows Live
> 
> 
> 
> 
>     --
>     Vincent Gabriel.
>     Lead Developer, Senior Support.
>     Zend Certified Engineer.
> 
>     
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>     Haal meer uit je Hotmail met Internet Explorer 8. Download nu
> 
> 
> 
> 
> --
> Vincent Gabriel.
> Lead Developer, Senior Support.
> Zend Certified Engineer.
> 
> 
> 
> 
> 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> Alle tips en trics. Ontdek nu de nieuwe Windows Live

-- 
Matthew Weier O'Phinney
Software Architect      | [email protected]
Zend Framework          | http://framework.zend.com/

Reply via email to