'Deblan\Bundle\BlogBundle\Model\Post', 'name' => 'post', ); /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add( 'Title', 'text', array( 'label' => 'Titre', 'constraints' => array( new NotBlank(), ), ) ); $builder->add( 'Content', 'textarea', array( 'label' => 'Article', 'attr' => array( 'class' => 'markitup', 'data-set' => $builder->getData()->getContentFormat(), ), 'constraints' => array( new NotBlank(), ), ) ); // $builder->add( // 'Content', // 'ace_editor', // array( // 'label' => 'Article', // 'wrapper_attr' => array(), // 'width' => '100%', // 'height' => 500, // 'font_size' => 12, // 'mode' => 'ace/mode/'.$builder->getData()->getContentFormat(), // 'theme' => 'ace/theme/idle_fingers', // 'tab_size' => 4, // 'read_only' => false, // 'use_soft_tabs' => false, // 'use_wrap_mode' => true, // 'show_print_margin' => false, // 'highlight_active_line' => true, // 'constraints' => array( // new NotBlank(), // ), // ) // ); $builder->add( 'ContentFormat', 'choice', array( 'label' => 'Format', 'required' => true, 'choices' => array( 'html' => 'HTML', 'markdown' => 'Markdown', ), 'constraints' => array( new NotBlank(), ), ) ); $builder->add( 'Tags', 'text', array( 'constraints' => array( //new NotBlank(), ), ) ); $builder->add( $builder->create( 'Picture', 'file', array( 'label' => 'Illustration', 'constraints' => array( new Image(), ), ) )->addModelTransformer(new StringToFileTransformer($builder->getData(), 'Picture')) ); $builder->addEventSubscriber( new FileDeleteFormListener( $builder->getFormFactory(), array( 'Picture', ) ) ); $builder->add( 'PublishedAt', 'date', array( 'label' => 'Date de publication', 'widget' => 'single_text', 'format' => 'yyyy-MM-dd HH:mm:ss', 'attr' => array( 'class' => 'datetimepicker', ), 'constraints' => array( new DateTime(), ), ) ); $builder->add( 'Categories', 'model', array( 'label' => 'Catégories', 'class' => 'Deblan\Bundle\BlogBundle\Model\Category', 'query' => \Deblan\Bundle\BlogBundle\Model\CategoryQuery::create()->filterByActive(true)->orderByTitle(), 'multiple' => true, 'expanded' => false, 'attr' => array( 'class' => 'chosen-select', 'data-placeholder' => 'Sélectionnez un groupe' ), ) ); $builder->add( 'Active', 'checkbox', array( 'label' => 'En ligne', ) ); } }