63 lines
1.5 KiB
PHP
63 lines
1.5 KiB
PHP
<?php
|
||
|
||
namespace Trinity\Bundle\NewsletterBundle\Form\Type;
|
||
|
||
use Propel\PropelBundle\Form\BaseAbstractType;
|
||
use Symfony\Component\Form\FormBuilderInterface;
|
||
|
||
class NewsletterFilterType extends BaseAbstractType
|
||
{
|
||
protected $options = array(
|
||
'data_class' => 'Trinity\Bundle\NewsletterBundle\Model\Newsletter',
|
||
'name' => 'newsletter_filter',
|
||
'models' => array(),
|
||
'csrf_protection' => false,
|
||
);
|
||
|
||
/**
|
||
* {@inheritdoc}
|
||
*/
|
||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||
{
|
||
$builder->add('name');
|
||
|
||
$builder->add(
|
||
'classKeyValue',
|
||
'choice',
|
||
array(
|
||
'choices' => self::getModels(),
|
||
'label' => 'Modèle',
|
||
'required' => false,
|
||
'mapped' => false
|
||
)
|
||
);
|
||
|
||
$builder->add(
|
||
'sentAt',
|
||
'datetime',
|
||
array(
|
||
'widget' => 'single_text',
|
||
'input' => 'string',
|
||
'format' => 'yyyy-MM-dd hh:mm:ss',
|
||
'with_seconds' => true,
|
||
'attr' => array(
|
||
'class' => 'datetimepicker',
|
||
),
|
||
)
|
||
);
|
||
}
|
||
|
||
public function getModels()
|
||
{
|
||
$models = array();
|
||
|
||
if (is_array($this->getOption('models'))) {
|
||
foreach ($this->getOption('models') as $model => $settings) {
|
||
$models[$model] = $settings['title'];
|
||
}
|
||
}
|
||
|
||
return $models;
|
||
}
|
||
}
|