Friday, August 1, 2014

Re: CakePHP 3.0 - Correct way to append / prepend HTML on FormHelper

I think my question was not clear actually...

What I'm doing is inheriting standard CakePHP FormHelper to generate HTML form with bootstrap templates. It's currently working well, but in the 'input' method overload, I'm doing a temporary change to the 'input' template as shown in my first post.

My question is: Is that a 'good' way of doing what I want? I mean, using temporary template changes. 

I don't want people to have to change the template manually when calling the 'input' method, it should be transparent for users.

Thanks for your answer,

On Friday, August 1, 2014 2:21:34 PM UTC+2, José Lorenzo wrote:
You can make temporary changes to the templates both with Form->create() and Form->input()

$this->From-input('foo', ['templates' => ['inputContainer' => $template]]); 

An alternative is not using input(); but just build the html yourself in the template and call $this->Form->text('foo') , for example

On Friday, August 1, 2014 1:51:48 PM UTC+2, Mikaël Capelle wrote:
Thanks for your answer!

The problem is still the same with 'inputContainer', I need to make a temporary update if I want to prepend / append something.

I will look at custom widget but I am not sure it's match what I want... The prepend / append options should be available with most type of input, it's not really a widget itself.

On Friday, August 1, 2014 1:37:54 PM UTC+2, Thomas von Hassel wrote:
use the `inputContainer` template to wrap the content like this:

'inputContainer' => '<div class="form-group input {{type}}{{required}}">{{content}}</div>',

or create a custom widget, depending on how much customisation you want

 


On 01 Aug 2014, at 12:24, Mikaël Capelle <capelle...@gmail.com> wrote:

> Hi everyone,
>
> I am porting my CakePHP 2.0 helpers to CakePHP 3.0 and I am facing some troubles with my custom FormHelper. The helpers are made to be used with bootstrap, the two form helpers can be found here:
>         • CakePHP 2 - https://github.com/Holt59/cakephp-bootstrap3-helpers/blob/master/View/Helper/BootstrapFormHelper.php
>         • CakePHP 3 - https://github.com/Holt59/cakephp3-bootstrap3-helpers/blob/master/View/Helper/BootstrapFormHelper.php
> In the BootstrapFormHelper::input method, I have a 'prepend' and 'append' options which are used to create bootstrap input groups. With the 2.0 version, I used the 'before' and 'after' options to create such groups but these options are not available anymore with CakePHP 3.0 so what I'm doing is a temporary template change:
>
> $oldTemplate = $this->templates('input') ;
> if ($options['prepend']) {
>     $this->templates([
>         'input' => /* ... */
>     ]) ;
> }
> $res = parent::input(/* ... */) ;
> $this->templates([
>     'input' => $oldTemplate
> ]) ;
> return $res ;
>
> Is there a better way to do such thing with CakePHP 3.0?
>
> Thanks,
>
> --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups "CakePHP" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+u...@googlegroups.com.
> To post to this group, send email to cake...@googlegroups.com.
> Visit this group at http://groups.google.com/group/cake-php.
> For more options, visit https://groups.google.com/d/optout.

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

No comments: