I’m talking about this plugin: http://www.symfony-project.org/plugins/sfFormExtraPlugin
For some reason, getting the plugin to work took a lot of Googling and some trial and error.
So here is how I got it working. Hopefully I did this in the ‘correct’ way…
cd plugins wget "http://plugins.symfony-project.org/get/sfFormExtraPlugin/sfFormExtraPlugin-1.1.3.tgz" tar zxvf sfFormExtraPlugin-1.1.3.tgz mv sfFormExtraPlugin-1.1.3 sfFormExtraPlugin cd .. ./symfony plugin:publish-assets cd web/js wget "http://code.jquery.com/jquery-1.4.3.min.js" wget "http://jqueryui.com/download/jquery-ui-1.8.5.custom.zip" mkdir jquery-ui cd jquery-ui unzip ../jquery-ui-1.8.5.custom.zip mv jquery-ui/css/smoothness ../css
Edit config/ProjectConfiguration.class.php to add sfFormExtraPlugin as an enabled plugin:
class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->enablePlugins(array('sfDoctrinePlugin', 'sfFormExtraPlugin')); } }
Edit apps/<app_name>/config/view.yml to include the JS and CSS:
stylesheets: [main.css, smoothness/jquery-ui-1.8.5.custom.css] javascripts: [jquery-1.4.3.min.js, jquery-ui/js/jquery-ui-1.8.5.custom.min.js]
Edit lib/form/doctrine/<your_module_name>Form.class.php to make use of the widgets you want. I’m interested in sfWidgetFormJQueryDate:
public function configure() { $this->widgetSchema['created_at'] = new sfWidgetFormJQueryDate(array( 'image' => '/images/silk_icons/calendar.png', 'config' => '{}', )); $this->widgetSchema['updated_at'] = new sfWidgetFormJQueryDate(array( 'image' => '/images/silk_icons/calendar.png', 'config' => '{}', )); }
I have used the calendar.png icon from the famfamfam silk icon set. You can get the set here: http://www.famfamfam.com/lab/icons/silk/
I’ve used the date picker widget for filling in the created_at and updated_at fields. You can replace these values with the fields you need to manipulate in a user friendly way.
[Edit 17/10/2010:]
I’m not going mad, there is an issue with the ‘magic’ fields created_at and updated_at in that they have to be unset to become magic.
Found help here: http://levelx.me/technology/programming/symfony-1-4-doctrine-timestampable-behaviour/
Though the unset lines are better off being added just once to /lib/form/doctrine/BaseFormDoctrine.class.php, rather than each xxxForm.class.php file.