A set of Form Types for symfony2 framework using JQuery
- Add this bundle to your vendor/ dir * Vendor Mode Add the following lines in your deps file::
[IoFormBundle]
git=git://github.com/ioalessio/IoFormBundle.git
target=/bundles/Io/FormBundle
Run the vendor script:
./bin/vendors install
- Submodule Mode
$ git submodule add git://github.com/ioalessio/IoFormBundle.git vendor/bundles/Io/FormBundle
- Add the "Io" namespace to your autoloader:
<?php
// app/autoload.php
$loader->registerNamespaces(array(
'Io' => __DIR__.'/../vendor/bundles',
// your other namespaces
));
- Add the "Io" namespace to your autoloader:
<?php
// app/ApplicationKernel.php
public function registerBundles()
{
return array(
// ...
new Io\FormBundle\IoFormBundle(),
// ...
);
}
- Add the twig form configuration:
// app/config/config.yml
twig:
form:
resources:
- 'IoFormBundle:Form:fields.html.twig'
io_form:
jquery_tinymce:
source: /bundles/yourbundle/js/tiny_mce/tiny_mce.js
theme: simple
Build your form:
<?php
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('user', 'jquery_entity_combobox', array('class' => 'Io\MyBundle\Entity\MyEntity'))
->add('date', 'jquery_date', array('format' => 'dd/MM/y')
->add('int_field', 'jquery_range', array('min' => 0, 'max' => 50, 'step' => 2)
->add('note', 'jquery_tinymce')
);
}
Several options are available on jquery_date widget
<?php
$builder->add('the_date', 'jquery_date', array(
'format' => 'dd/MM/y' 'dd.MM.yy' 'd MMM, y'
'changeMonth'=> 'true',
'changeYear' => true,
'minDate'=> '-1y',
'maxDate'=> '+1y',
'yearRange' => '-1y:+1y',
'showOn' => 'focus'
));
In addition, non-supported datepicker options can be added by prepending with "jqd."
<?php
$builder->add('the_date', 'jquery_date', array(
...
'jqd.appendText' => 'extra text',
'jqd.buttonText' => 'BUTTON!'
))
Will render as:
$( "#wn_trackingbundle_resulttype_date" ).datepicker({
...
appendText: 'boosh!',
buttonText: 'BUTTON!'
});
More details on some types:
WARNINGS: Form Types uses last version of Jquery v1.6 and JQueryUI v1.8 Libraries You must have jquery and jquery ui already loaded in your template You must include jquery tinymce library (v3.4.4) in your project ( http://www.tinymce.com/download/download.php )
#yourlayout.html.twig
<body>
...
{% block js %}
<script type="text/javascript" src="{{ asset('path/js/jquery-ui-1.8.15.custom.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('path/js/js/combobox.js') }}"></script>
<script type="text/javascript" src="{{ asset('path/js/js/tiny_mce/jquery.tinymce.js') }}"></script>
{% endblock %}
</body>