This is a really old post but I'm writing this for future reference (if you 
search cakephp tableheaders colspan this is one of the first hits).

Cake 2.2 implements a way of doing this:

http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html 

El jueves, 14 de diciembre de 2006 21:42:22 UTC-3, Seb escribió:
>
> I came accross this same problem 2 wks or so ago and decided I coun't
> live without that...! So I created my own helper, extending HtmlHelper
> and implemented the function as follow;
>
> [code location="my custom/extended helper"]
> /**
>  * Returns a row of formatted and named TABLE headers.
>  *
>  * @param array $names                Array of tablenames - if a tablename 
> is an
> array, index 1 should contain th options.
>  * @param array $trOptions        HTML options for TR elements.
>  * @param array $thOptions        HTML options for TH elements.
>  * @param  boolean $return        Wheter this method should return a value
>  * @return string
>  */
> function tableHeaders($names, $trOptions = null, $thOptions = null,
> $return = false) {
>
>         $out = array();
>         foreach($names as $arg) {
>                 if (is_array($arg) && isset($arg[0]) && isset($arg[1])) { 
> // the 2x
> isset() are pretty useless really... but well for the sake of
> robustness!
>                         $out[] = sprintf($this->tags['tableheader'],
> $this->parseHtmlOptions(array_merge($thOptions,$arg[1])), $arg[0]);
>                 } else {
>                         $out[] = sprintf($this->tags['tableheader'],
> $this->parseHtmlOptions($thOptions), $arg);
>                 }
>         }
>
>         $data = sprintf($this->tags['tablerow'],
> $this->parseHtmlOptions($trOptions), join(' ', $out));
>         return $this->output($data, $return);
> }
> [/code]
>
> then, I use it like this;
>
> [code location="any view"]
> $th = array (
>                         array($pagination->sortBy('weight','Order'),
> array('width'=>'60px')),
>                         $pagination->sortBy('name'),
>                         array($pagination->sortBy('status'), 
> array('width'=>'150px')),
>                         array('Actions', array('class' => 'actions')),
>                 );
>
> $eoHtml->tableHeaders($th);
>
> //
> // note that you could still provide 'global' th options like this;
> // $eoHtml->tableHeaders($th,null,array('class'=>'whatever'));
> ///
> [/code]
>
> I don't quite like the fact that names are linked with options, but I
> really wanted to keep the same signature... plus, it makes a bit of
> sense to link a specific header name with it's option(s)!
>
> so.. the above code will generate a 4 column table headers,
> column 1 is labeled Order, is sortable (because of the
> $pagination->sortBy()), and has a fixed width of 60px;
> column 2 is labeled Name, and is sortable - no other options (the
> defautl css still applies)
> column 3 is labeled Status, is sortable (...) and has a fixed width of
> 150px;
> and finally
> column 4 is labeled Actions, and will be generated a class="actions"
> attribute.
>
> Hope this helps...
>
> Seb.
>
> On Dec 15, 10:22 am, "Falagar" <[email protected]> wrote:
> > The html Helper does not implement such a behavior. You either have
> > attributes for all th's or for none.
> >
> > So you have a number of possibilities: you either don't use a helper
> > and write the HTML yourself (which shouldn't be hard).
> >
> > Or (if you make use of this helper function very often and changing all
> > instances would be tedious) you write your own function (probably
> > similar to the one in html Helper) that does excactly what you want.
> >
> > Another very ugly possibility would be to change the core html Helper
> > code to do what you want, which I do not recommend.
> >
> > On Dec 14, 6:39 am, "[email protected]" <[email protected]> wrote:
> >
> > > I need add an attribute for only a th, but the $helper extend to every
> > > TH.
> > > I want create a colspan for the 3 th.
> > > Ho I can?
> >
> > > $thop=array(COLSPAN=>1);
> > > $th = array (
> > >             $pagination->sortBy('id'),
> > >             $pagination->sortBy('title'),
> > >             $pagination->sortBy('created'),
> > >                         "Actions"
> > > ); // Generate the pagination sort links
> > > echo $html->tableHeaders($th,null,$thop); // Create the table headers
> > > with sort links if desired
> > 
> > > Thanks!
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en-US.


Reply via email to