/** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $help = $options['help']; if ($help === null && $builder->hasParent()) { $parentClass = $builder->getParent()->getOption('data_class'); $fieldName = $builder->getName(); if ($parentClass !== null) { $reflector = new ReflectionProperty($parentClass, $fieldName); $annot = $this->reader->getPropertyAnnotation($reflector, 'Tg\\OkoaBundle\\Form\\Annotation\\Help'); if ($annot !== null) { $help = $annot->value; } } } $builder->setAttribute('help', $help); }
public function buildForm(FormBuilderInterface $builder, array $options) { $format_date = $this->_container->get('pi_app_admin.twig.extension.tool')->getDatePatternByLocalFunction($this->_locale); $id_media = NULL; $id_tags = NULL; // get the id of media if ($builder->getParent()->getData()->getBlocGeneral() instanceof \Cmf\ContentBundle\Entity\BlocGeneral && $builder->getParent()->getData()->getBlocGeneral()->getMedia() instanceof \Sfynx\MediaBundle\Entity\Mediatheque) { $id_media = $builder->getParent()->getData()->getBlocGeneral()->getMedia()->getId(); } if (isset($_POST['plugins_contentbundle_articletype']['blocgeneral']['media'])) { $id_media = $_POST['plugins_contentbundle_articletype']['blocgeneral']['media']; } elseif (isset($_POST['plugins_contentbundle_pagetype']['blocgeneral']['media'])) { $id_media = $_POST['plugins_contentbundle_pagetype']['blocgeneral']['media']; } elseif (isset($_POST['plugins_contentbundle_testtype']['blocgeneral']['media'])) { $id_media = $_POST['plugins_contentbundle_testtype']['blocgeneral']['media']; } elseif (isset($_POST['plugins_contentbundle_diaporamatype']['blocgeneral']['media'])) { $id_media = $_POST['plugins_contentbundle_diaporamatype']['blocgeneral']['media']; } // get the ids of tag if ($builder->getParent()->getData()->getBlocGeneral() instanceof \Cmf\ContentBundle\Entity\BlocGeneral && $builder->getParent()->getData()->getBlocGeneral()->getTag()->count() >= 1) { $entities = $builder->getParent()->getData()->getBlocGeneral()->getTag()->toArray(); foreach ($entities as $k => $v) { $id_tags[] = $v->getId(); } } if (isset($_POST['plugins_contentbundle_articletype']['blocgeneral']['tag'])) { $id_tags = $_POST['plugins_contentbundle_articletype']['blocgeneral']['tag']; } elseif (isset($_POST['plugins_contentbundle_pagetype']['blocgeneral']['tag'])) { $id_tags = $_POST['plugins_contentbundle_pagetype']['blocgeneral']['tag']; } elseif (isset($_POST['plugins_contentbundle_testtype']['blocgeneral']['tag'])) { $id_tags = $_POST['plugins_contentbundle_testtype']['blocgeneral']['tag']; } elseif (isset($_POST['plugins_contentbundle_diaporamatype']['blocgeneral']['tag'])) { $id_tags = $_POST['plugins_contentbundle_diaporamatype']['blocgeneral']['tag']; } $builder->add('title', 'text', array('label' => "pi.form.label.field.title", "label_attr" => array("class" => ""), 'required' => true, 'constraints' => array(new Constraints\NotBlank())))->add('enabled', 'hidden', array('data' => true))->add('author', 'text', array('label' => "Auteur", "label_attr" => array("class" => ""), 'required' => true))->add('published_at', 'date', array('widget' => 'single_text', 'input' => 'datetime', 'format' => $format_date, 'required' => true, "attr" => array("class" => "pi_datepicker"), 'label' => 'Date de mise en ligne'))->add('archive_at', 'date', array('widget' => 'single_text', 'input' => 'datetime', 'format' => $format_date, 'required' => false, "attr" => array("class" => "pi_datepicker"), 'label' => 'Date d\'expiration'))->add('created_at', 'date', array('read_only' => true, 'widget' => 'single_text', 'input' => 'datetime', 'format' => $format_date, 'required' => true, 'label' => 'Date de création'))->add('updated_at', null, array('attr' => array('style' => 'display:none;'), "label_attr" => array("style" => 'display:none;')))->add('descriptif', 'textarea', array('label' => "Description courte", "label_attr" => array("class" => "text_collection"), "attr" => array("class" => "pi_editor_easy"), 'required' => true))->add('subrub', 'entity', array('class' => 'PluginsContentBundle:Rub', 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('k')->select('k')->andWhere('k.parent IS NOT NULL')->orderBy('k.id', 'ASC'); }, 'empty_value' => 'Choisir une sous-rubrique', 'multiple' => false, 'group_by' => "parent.title", 'required' => true, 'label' => "Rubrique principale", 'constraints' => array(), "label_attr" => array("class" => "classement_collection"), "attr" => array("class" => "pi_simpleselect")))->add('rub', 'entity', array('class' => 'PluginsContentBundle:Rub', 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('k')->select('k')->andWhere('k.parent IS NOT NULL')->orderBy('k.id', 'ASC'); }, 'empty_value' => 'Choisir une sous-rubrique', 'multiple' => true, 'group_by' => "parent.title", 'required' => false, 'label' => "Rubriques associées", "label_attr" => array("class" => "classement_collection"), "attr" => array("class" => "pi_multiselect")))->add('tag', 'entity', array('class' => 'PluginsContentBundle:Tag', 'query_builder' => function (EntityRepository $er) use($id_tags) { $translatableListener = $this->_container->get('gedmo.listener.translatable'); $translatableListener->setTranslationFallback(true); return $er->createQueryBuilder('a')->select('a')->where("a.id IN (:id)")->andWhere('a.enabled = 1')->setParameter('id', $id_tags)->orderBy('a.id', 'ASC'); }, 'empty_value' => 'pi.form.label.select.choose.tag', 'label' => "Tag", 'multiple' => true, 'required' => false, 'constraints' => array(new Constraints\NotBlank()), "label_attr" => array("class" => "classement_collection"), "attr" => array("class" => "pi_multiselect ajaxselect", "data-url" => $this->_container->get('bootstrap.RouteTranslator.factory')->getRoute("admin_content_tag_selectentity_ajax"), "data-max" => 19), 'widget_suffix' => '<a class="button-ui-mediatheque button-ui-dialog" title="Ajouter un tag à la sélection" data-title="Tags" data-href="' . $this->_container->get('bootstrap.RouteTranslator.factory')->getRoute("admin_content_tag_new", array("NoLayout" => "false", "category" => '')) . '" data-selectid="#piapp_gedmobundle_tagtype_id" data-selecttitle="#piapp_gedmobundle_tagtype_title" data-insertid="#' . str_replace('_blocgeneral_media', '_blocgeneral_tag', $this->_insertid) . '" data-inserttype="multiselect" ></a>'))->add('metaKeywords', 'text', array('label' => "metaKeywords", "label_attr" => array("class" => "meta_definition"), 'required' => false))->add('metaDescription', 'textarea', array("label" => "pi.form.label.field.meta_description", "label_attr" => array("class" => "meta_definition"), 'required' => false))->add('media', 'entity', array('class' => 'PiAppGedmoBundle:Media', 'query_builder' => function (EntityRepository $er) use($id_media) { $translatableListener = $this->_container->get('gedmo.listener.translatable'); $translatableListener->setTranslationFallback(true); return $er->createQueryBuilder('a')->select('a')->where("a.id IN (:id)")->setParameter('id', $id_media); }, 'empty_value' => 'pi.form.label.select.choose.media', 'label' => "Media", 'multiple' => false, 'required' => false, "label_attr" => array("class" => 'bg_image_collection'), "attr" => array("class" => "pi_simpleselect ajaxselect", "data-url" => $this->_container->get('bootstrap.RouteTranslator.factory')->getRoute("admin_gedmo_media_selectentity_ajax", array('type' => 'image')), "data-max" => 50), 'widget_suffix' => '<a class="button-ui-mediatheque button-ui-dialog" title="Ajouter une image à la médiatheque" data-title="Mediatheque" data-href="' . $this->_container->get('bootstrap.RouteTranslator.factory')->getRoute("admin_gedmo_media_new", array("NoLayout" => "false", "category" => '', 'status' => 'image')) . '" data-selectid="#piapp_gedmobundle_mediatype_id" data-selecttitle="#piapp_gedmobundle_mediatype_title" data-insertid="#' . $this->_insertid . '" data-inserttype="multiselect" ></a>')); }