public function buildForm(FormBuilderInterface $builder, array $options) { $platformLanguage = $this->platformConfigHandler->getParameter('locale_language'); $languages = array_values($this->localeManager->getAvailableLocales()); $sortedLanguages = array(); usort($languages, function ($language1, $language2) use($platformLanguage) { if ($language1 === $platformLanguage) { return -1; } elseif ($language2 === $platformLanguage) { return 1; } else { return 0; } }); $translationBuilder = $builder->create('translations', 'form', array('virtual' => true)); foreach ($languages as $language) { $fieldName = sprintf('%sTranslation', $language); $translationBuilder->add($fieldName, new BadgeTranslationType()); } $builder->add($translationBuilder)->add('automatic_award', 'checkbox', array('required' => false))->add('file', 'file', array('label' => 'badge_form_image'))->add('is_expiring', 'checkbox', array('required' => false))->add('expire_duration', 'integer', array('attr' => array('class' => 'input-sm', 'min' => 1)))->add('expire_period', 'choice', array('choices' => Badge::getExpirePeriodLabels(), 'attr' => array('class' => 'input-sm'))); $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { /** @var \Icap\BadgeBundle\Entity\Badge $badge */ $badge = $event->getData(); if ($badge && null !== $badge) { $this->badgeRuleType->setBadgeId($badge->getId()); $form = $event->getForm(); $form->add('rules', 'collection', array('type' => $this->badgeRuleType, 'by_reference' => false, 'attr' => array('class' => 'rule-collections'), 'theme_options' => array('label_width' => 'col-md-3'), 'prototype' => true, 'allow_add' => true, 'allow_delete' => true)); } }); }
public function __construct(LocaleManager $localeManager, TermsOfServiceManager $termsOfService, TranslatorInterface $translator, array $facets = array()) { $this->langs = $localeManager->retrieveAvailableLocales(); $this->termsOfService = $termsOfService; $this->facets = $facets; $this->translator = $translator; }
/** * @InjectParams({ * "localeManager" = @Inject("claroline.manager.locale_manager"), * "contentManager" = @Inject("claroline.manager.content_manager") * }) */ public function __construct(LocaleManager $localeManager, ContentManager $contentManager) { $this->langs = $localeManager->getAvailableLocales(); $this->contentManager = $contentManager; $this->tinymce = true; }