i wouldn't have said it was included in the Cake core unless Nate or
someone else has come out and said so in the last 24 hrs.

if it is a successful method then I'm sure you could use it in your own helper.

i have written a html helper of my own that wraps around most of the
existing html helper functions as i just wanted a few changes and
tweaks here and there. e.g. image input function.

does this make sense?

On 26/10/06, Troy Schmidt <[EMAIL PROTECTED]> wrote:
>
> Okay just trying to keep with the same thread.  Has anyone used this
> helper?  Is this something included now in the Cake core?
>
>
> ---------- Forwarded message ----------
> From: "zis" <[EMAIL PROTECTED]>
> Date: Apr 11, 4:38 am
> Subject: Select tag with optgroup
> To: Cake PHP
>
>
> Hi i would like to share with you a helper function to print a select
> tag with optgroups.
>
> Actually it's just a small mod the the existing selecttag function.
>
> To have optgroups, make the $optionElements parameter a two dimensional
> array. With the key for the sub array the name of the subgroup.. for
> example
>
> array(
> 'Fruits' => array(
> 'banana' => 'Bananas',
> 'apl' => 'Apples'
> ),
> 'Animals' => array(
> 'horse' => 'Horse',
> 'donley' => 'Donkey'
> ),
> 'car'=>'Car'
> )
>
> Note that car in the example will be outputed as a regular option
> element..
>
> Here's the helper.
>
> class MorehtmlHelper extends Helper {
>
>         var $helpers = array('Html');
>
>         /**
>  * Returns a SELECT element,
>  *
>  * @param string $fieldName Name attribute of the SELECT
>  * @param array $optionElements Array of the OPTION elements (as
> 'value'=>'Text' pairs) to be used in the SELECT element. Can be a
> 2dimensional array.
>  * @param boolean $show_empty Show/hide the empty select option
>  * @param array $selectAttr Array of HTML options for the opening
> SELECT element
>  * @param array $optionAttr Array of HTML options for the enclosed
> OPTION elements
>  * @return string Formatted SELECT element
>  */
>     function selectOptTag($fieldName, $optionElements, $selected=null,
> $selectAttr=null, $optionAttr=null, $showEmpty=true)
>     {
>         $this->Html->setFormTag($fieldName);
>         if ($this->Html->tagIsInvalid($this->Html->model,
> $this->Html->field))
>         {
>             if (isset($selectAttr['class']) &&
> trim($selectAttr['class']) != "")
>             {
>                 $selectAttr['class'] .= ' form_error';
>             }
>             else
>             {
>                 $selectAttr['class'] = 'form_error';
>             }
>         }
>         // do not display the select tag if no option elements are
> avaible
>         if (!is_array($optionElements) || count($optionElements) == 0)
>         {
>             return null;
>         }
>
>         if(!isset($selected))
>         {
>             $selected = $this->Html->tagValue($fieldName);
>         }
>
>         if( isset($selectAttr) && array_key_exists( "multiple",
> $selectAttr) )
>         {
>             $select[] =
> sprintf($this->Html->tags['selectmultiplestart'], $this->Html->model,
> $this->Html->field, $this->Html->parseHtmlOptions($selectAttr));
>         }
>         else
>         {
>             $select[] = sprintf($this->Html->tags['selectstart'],
> $this->Html->model, $this->Html->field,
> $this->Html->parseHtmlOptions($selectAttr));
>         }
>
>         if($showEmpty == true)
>         {
>             $select[] = sprintf($this->Html->tags['selectempty'],
> $this->Html->parseHtmlOptions($optionAttr));
>         }
>
>         foreach ($optionElements as $name => $title)
>         {
>                 if (is_array($title)) {
>                         $select[] = '<optgrouplabel="'.$name.'">';
>                         foreach ($title as $subname => $subtitle)
>                         {
>                                 $optionsHere = $optionAttr;
>                             if (($selected !== null) && ($selected ==
> $subname))
>                             {
>                                 $optionsHere['selected'] = 'selected';
>                             } else if ( is_array($selected) &&
> array_key_exists($subname, $selected) )
>                             {
>                                 $optionsHere['selected'] = 'selected';
>                             }
>                             $select[] =
> sprintf($this->Html->tags['selectoption'],
> $subname, $this->Html->parseHtmlOptions($optionsHere), $subtitle);
>
>                         }
>                         $select[] = '</optgroup>';
>
>                 }
>                 else {
>                     $optionsHere = $optionAttr;
>                     if (($selected !== null) && ($selected == $name))
>                     {
>                         $optionsHere['selected'] = 'selected';
>                     } else if ( is_array($selected) &&
> array_key_exists($name,
> $selected) )
>                     {
>                         $optionsHere['selected'] = 'selected';
>                     }
>                     $select[] =
> sprintf($this->Html->tags['selectoption'],
> $name, $this->Html->parseHtmlOptions($optionsHere), $title);
>                 }
>         }
>
>         $select[] = sprintf($this->Html->tags['selectend']);
>
>         return implode("\n", $select);
>     }
>
> }
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" 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/cake-php
-~----------~----~----~----~------~----~------~--~---

Reply via email to