• Manu

    Thank you !

  • http://www.codebalancer.de Dominic

    Awesome. I’ve also been looking for this.
    Thanks a lot!

  • Nop

    thanks a lot!

  • Brett

    Thanks, this was helpful.

    For anyone copy and pasting this widget code. The line

    use_helper(’Form’);

    has funky single quotes (’) that need to be changed to straight quotes (‘).

  • Pingback: Brett Wayne Stoppel » Blog Archive » Custom Symfony widgets, changing widgets, and removing widgets.

  • vfclists

    I am to new symfony and using input_date_tag() in my files results in an error.

    How would I get this working in symfony 1.2.0?

  • Matt Daum

    vfclists- in Symfony 1.2 you don’t need the above widget. Instead you can just use the sfFormExtraPlugin to get the rich date widget. http://www.symfony-project.org/plugins/sfFormExtraPlugin is the link to the plugin, I suggest you use it rather than the above widget.

  • vfclists

    I am to new symfony and using input_date_tag() in my files results in an error.

    How would I get this working in symfony 1.2.0?

    Are there any libraries, helpers and plugins I need to add to the forms code?

  • Josh

    This is great – I can’t upgrade to 1.2 just yet, and its a real life saver.

    However, I encountered a couple of problems trying to set some configuration options of the rich data tag. I eventually discovered that input_date_tag() expects a string of options in the form ‘key=val key=val’, as opposed to an array. Here’s my kludgy work around:

    addOption( ‘calendar_button_txt’, false );
    $this->addOption( ‘calendar_button_img’, false );
    $this->addOption( ‘css’, ‘skins/aqua/theme’ );
    $this->addOption( ‘calendar_options’, false );
    $this->addOption( ‘rich’, true );
    }

    public function render($name, $value = null, $attributes = array(), $errors = array())
    {
    //Get the date input function from Form helper
    use_helper(‘Form’);

    $opts = ”;
    foreach( array_merge( $attributes, $this->getOptions() ) as $k => $v ) {
    $opts .= “$k=$v “;
    }

    return input_date_tag($name,$value, $opts );
    }
    }

  • http://www.iliveinperego.com Simone Fumagalli

    Great, but in which file do I have to save/add this code ?

  • Matt Daum

    Simone-
    You just need to take the code from above and you can put it in the /lib folder of the project (or create a folder called ‘widget’ inside /lib if you want to keep it organized). You can name the file something like myWidgetFormRichDate.class.php and then you just call it as you would with any other widget.

  • John

    Hi,

    Nice tip that I’ve used a few times now!

    However…

    This time I wanted to use it in a partial. To get the calendar to load in one though, I had to specifically include /sf/calendar/calendar.js, /sf/calendar/lang/calendar-en.js, /sf/calendar/calendar-setup.js and /sf/calendar/skins/aqua/theme.css in my view.yml

    This works great in the partial, but in this instance when validation fails you end up back on a standard template, resulting in everything loading twice (once because I specified in view.yml and once autoloading as they should) which causes a nasty error in calendar.js…

    Just thought someone here might have been aware of the way around this? I tried creating a view.yml at the module level and specifying the javascripts and css for my partial while removing them from the app level view.yml but it doesn’t seem to load them unfortunately…

    If anyone reading this comes up with the solution would be interested to hear… I think I’ll have to give up and find another approach though…