예제 #1
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     /** @var \Claroline\CoreBundle\Entity\User $user */
     $user = $this->tokenStorage->getToken()->getUser();
     $locale = null === $user->getLocale() ? $this->platformConfigHandler->getParameter('locale_language') : $user->getLocale();
     $builder->add('badge', 'zenstruck_ajax_entity', array('attr' => array('class' => 'fullwidth'), 'theme_options' => array('control_width' => 'col-md-3'), 'placeholder' => $this->translator->trans('badge_form_badge_selection', array(), 'icap_badge'), 'class' => 'IcapBadgeBundle:Badge', 'use_controller' => true, 'repo_method' => sprintf('findByNameForAjax'), 'extra_data' => array('userId' => $user->getId(), 'locale' => $locale)));
 }
예제 #2
0
 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));
         }
     });
 }
예제 #3
0
 /**
  * @InjectParams({
  *     "configHandler"  = @Inject("claroline.config.platform_config_handler"),
  *     "userManager"    = @Inject("claroline.manager.user_manager"),
  *     "tokenStorage"   = @Inject("security.token_storage")
  * })
  */
 public function __construct(PlatformConfigurationHandler $configHandler, UserManager $userManager, TokenStorageInterface $tokenStorage)
 {
     $this->configHandler = $configHandler;
     $this->userManager = $userManager;
     $this->defaultLocale = $configHandler->getParameter('locale_language');
     $this->finder = new Finder();
     $this->tokenStorage = $tokenStorage;
 }
 protected function addPortfolioLink(ItemInterface $menu)
 {
     $menuItemConfig = ['route' => 'icap_portfolio_index'];
     if ($this->platformConfigHandler->getParameter('portfolio_url')) {
         $menuItemConfig = ['uri' => $this->platformConfigHandler->getParameter('portfolio_url')];
     }
     $menu->addChild($this->translator->trans('my_portfolios', array(), 'icap_portfolio'), $menuItemConfig)->setAttribute('class', 'dropdown')->setAttribute('role', 'presentation')->setExtra('icon', 'fa fa-list-alt');
 }
 public function __construct(ConnectionFactory $connectionFactory, PlatformConfigurationHandler $configHandler)
 {
     $this->connectionFactory = $connectionFactory;
     $this->platformName = $configHandler->getParameter("name");
     if ($this->platformName === null || empty($this->platformName)) {
         $this->platformName = "ClarolineNoName";
     }
 }
예제 #6
0
 /**
  * transform.
  *
  * @param \Icap\BadgeBundle\Entity\Badge $entity
  * @param string                         $format
  *
  * @return string
  */
 public function transform($entity, $format)
 {
     $templatePath = __DIR__ . '/../../Resources/exporter/Badge';
     $this->container->get('twig.loader')->addPath($templatePath);
     $templateNameFormat = $this->getTemplateNameFormat($entity, $format);
     $template = sprintf($templateNameFormat, $format);
     $entity->setLocale($this->platformConfigHandler->getParameter('locale_language'));
     return $this->getTemplate()->render($template, array('entity' => $entity));
 }
예제 #7
0
 /**
  * @DI\InjectParams({
  *     "configHandler"    = @DI\Inject("claroline.config.platform_config_handler"),
  *     "container"        = @DI\Inject("service_container"),
  *     "contentManager"   = @DI\Inject("claroline.manager.content_manager"),
  *     "userManager"      = @DI\Inject("claroline.manager.user_manager"),
  *     "workspaceManager" = @DI\Inject("claroline.manager.workspace_manager")
  * })
  */
 public function __construct(PlatformConfigurationHandler $configHandler, ContainerInterface $container, ContentManager $contentManager, UserManager $userManager, WorkspaceManager $workspaceManager)
 {
     $this->configHandler = $configHandler;
     $this->container = $container;
     $this->contentManager = $contentManager;
     $this->isActive = $configHandler->getParameter('terms_of_service');
     $this->userManager = $userManager;
     $this->workspaceManager = $workspaceManager;
 }
예제 #8
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $actionChoices = $this->eventManager->getSortedEventsForFilter();
     /** @var \Claroline\CoreBundle\Entity\User $user */
     $user = $this->tokenStorage->getToken()->getUser();
     $locale = null === $user->getLocale() ? $this->platformConfigHandler->getParameter('locale_language') : $user->getLocale();
     $builder->add('action', 'twolevelselect', array('translation_domain' => 'log', 'attr' => array('class' => 'input-sm'), 'choices' => $actionChoices, 'choices_as_values' => true))->add('isUserReceiver', 'checkbox')->add('occurrence', 'integer', array('attr' => array('class' => 'input-sm')))->add('result', 'text')->add('resource', 'resourcePicker', array('required' => false))->add('resultComparison', 'choice', array('choices' => BadgeRule::getResultComparisonTypes()));
     $builder->addEventListener(FormEvents::PRE_SET_DATA, array($this, 'onPreSetData'));
 }
 /**
  * Sets the locale on a badge.
  *
  * @param Badge              $badge
  * @param LifecycleEventArgs $event
  */
 public function postLoad(Badge $badge, LifecycleEventArgs $event)
 {
     $platformLocale = $this->platformConfigHandler->getParameter('locale_language');
     $userLocale = null;
     if ($token = $this->tokenStorage->getToken()) {
         if ('anon.' !== ($user = $token->getUser())) {
             $userLocale = $user->getLocale();
         }
     }
     $badge->setLocale($userLocale ?: $platformLocale);
 }
 /**
  * @DI\InjectParams({
  *     "templating"         = @DI\Inject("templating"),
  *     "badgeUsageForm"     = @DI\Inject("icap_badge.widget.form.badge_usage"),
  *     "badgeManager"       = @DI\Inject("icap_badge.manager.badge"),
  *     "badgeClaimManager"  = @DI\Inject("icap_badge.manager.badge_claim"),
  *     "badgeWidgetManager" = @DI\Inject("icap_badge.manager.badge_widget"),
  *     "configHandler"      = @DI\Inject("claroline.config.platform_config_handler"),
  *     "tokenStorage"       = @DI\Inject("security.token_storage")
  * })
  */
 public function __construct(TwigEngine $templating, FormInterface $badgeUsageForm, BadgeManager $badgeManager, BadgeWidgetManager $badgeWidgetManager, PlatformConfigurationHandler $configHandler, TokenStorageInterface $tokenStorage)
 {
     $this->templating = $templating;
     $this->badgeUsageForm = $badgeUsageForm;
     $this->badgeManager = $badgeManager;
     $this->badgeWidgetManager = $badgeWidgetManager;
     $this->platformName = $configHandler->getParameter('name');
     if ($this->platformName === null || empty($this->platformName)) {
         $this->platformName = 'Claroline';
     }
     $this->tokenStorage = $tokenStorage;
 }
예제 #11
0
 /**
  * Constructor.
  *
  * @DI\InjectParams({
  *      "em" = @DI\Inject("doctrine.orm.entity_manager"),
  *      "tokenStorage" = @DI\Inject("security.token_storage"),
  *      "eventDispatcher" = @DI\Inject("event_dispatcher"),
  *      "configHandler" = @DI\Inject("claroline.config.platform_config_handler"),
  *      "notificationParametersManager" = @DI\Inject("icap.notification.manager.notification_user_parameters"),
  *      "notificationPluginConfigurationManager" = @DI\Inject("icap.notification.manager.plugin_configuration")
  * })
  */
 public function __construct(EntityManager $em, TokenStorageInterface $tokenStorage, EventDispatcherInterface $eventDispatcher, PlatformConfigurationHandler $configHandler, NotificationUserParametersManager $notificationParametersManager, NotificationPluginConfigurationManager $notificationPluginConfigurationManager)
 {
     $this->em = $em;
     $this->tokenStorage = $tokenStorage;
     $this->eventDispatcher = $eventDispatcher;
     $this->platformName = $configHandler->getParameter('name');
     if ($this->platformName === null || empty($this->platformName)) {
         $this->platformName = 'Claroline';
     }
     $this->notificationParametersManager = $notificationParametersManager;
     $this->notificationPluginConfigurationManager = $notificationPluginConfigurationManager;
 }
예제 #12
0
 public function createNewAccount(Request $request, $translator, $service)
 {
     $user = new User();
     $form = $this->getRegistrationForm($user, $translator);
     $form->handleRequest($request);
     $session = $request->getSession();
     if ($form->isValid()) {
         $user = $this->userManager->createUser($user);
         $oauthUser = new OauthUser($service['name'], $service['id'], $user);
         $this->em->persist($oauthUser);
         $this->em->flush();
         $session->remove('icap.oauth.resource_owner');
         $facets = $this->facetManager->findForcedRegistrationFacet();
         //then we adds the differents value for facets.
         foreach ($facets as $facet) {
             foreach ($facet->getPanelFacets() as $panel) {
                 foreach ($panel->getFieldsFacet() as $field) {
                     $this->facetManager->setFieldValue($user, $field, $form->get($field->getName())->getData(), true);
                 }
             }
         }
         $msg = $translator->trans('account_created', array(), 'platform');
         $session->getFlashBag()->add('success', $msg);
         if ($this->platformConfigHandler->getParameter('registration_mail_validation')) {
             $msg = $translator->trans('please_validate_your_account', array(), 'platform');
             $session->getFlashBag()->add('success', $msg);
         }
         return $this->loginUser($user, $request);
     }
     return array('form' => $form->createView());
 }
예제 #13
0
 public function export(Workspace $workspace, array &$files, Path $path)
 {
     $data = [];
     // Get path data
     $pathData = [];
     $pathData['description'] = $path->getDescription();
     $pathData['breadcrumbs'] = $path->hasBreadcrumbs();
     $pathData['modified'] = $path->isModified();
     $pathData['published'] = $path->isPublished();
     $pathData['summaryDisplayed'] = $path->isSummaryDisplayed();
     $pathData['completeBlockingCondition'] = $path->isCompleteBlockingCondition();
     $pathData['manualProgressionAllowed'] = $path->isManualProgressionAllowed();
     // Get path structure into a file (to replace resources ID with placeholders)
     $uid = uniqid() . '.txt';
     $tmpPath = $this->ch->getParameter('tmp_dir') . DIRECTORY_SEPARATOR . $uid;
     $structure = $path->getStructure();
     file_put_contents($tmpPath, $structure);
     $files[$uid] = $tmpPath;
     $pathData['structure'] = $uid;
     $data['path'] = $pathData;
     // Process Steps
     $data['steps'] = [];
     if ($path->isPublished()) {
         $stepsData = [];
         foreach ($path->getSteps() as $step) {
             $stepsData[] = $this->stepManager->export($step);
         }
         $data['steps'] = $stepsData;
     }
     return $data;
 }
 public function testExistentParameterCanBeAccessed()
 {
     $this->handler->setParameter('name', 'foo');
     $this->assertEquals('foo', $this->handler->getParameter('name'));
 }
예제 #15
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $language = $this->platformConfigHandler->getParameter('locale_language');
     $builder->add('label', 'text')->add('children', 'collection', array('type' => 'icap_badge_portfolio_widget_form_badges_badge', 'by_reference' => false, 'allow_add' => true, 'allow_delete' => true, 'property_path' => 'badges'));
 }
 /**
  * Return a user if need to accept the terms of service.
  *
  * @param \Symfony\Component\HttpFoundation\Request $request
  *
  * @return Claroline\CoreBundle\Entity\User
  */
 private function getUser(Request $request)
 {
     if ($this->configurationHandler->getParameter('terms_of_service') && $request->get('_route') !== 'claroline_locale_change' && $request->get('_route') !== 'claroline_locale_select' && $request->get('_route') !== 'bazinga_exposetranslation_js' && ($token = $this->tokenStorage->getToken()) && ($user = $token->getUser()) && $user instanceof User) {
         return $user;
     }
 }
예제 #17
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $language = $this->platformConfigHandler->getParameter('locale_language');
     $builder->add('name', 'text')->add('startDate', 'datepicker', ['required' => false, 'language' => $language, 'format' => 'Y/M/d'])->add('endDate', 'datepicker', ['required' => false, 'language' => $language, 'format' => 'Y/M/d'])->add('establishmentName', 'text')->add('diploma', 'text')->add('children', 'collection', ['type' => 'icap_portfolio_widget_form_formations_formation', 'by_reference' => false, 'allow_add' => true, 'allow_delete' => true, 'property_path' => 'resources']);
 }
예제 #18
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $language = $this->platformConfigHandler->getParameter('locale_language');
     $builder->add('birthDate', 'datepicker', ['required' => false, 'language' => $language, 'format' => 'Y/M/d'])->add('city', 'text')->add('show_avatar', 'checkbox', ['required' => false])->add('show_mail', 'checkbox', ['required' => false])->add('show_phone', 'checkbox', ['required' => false])->add('show_description', 'checkbox', ['required' => false])->add('text', 'tinymce');
 }
예제 #19
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $language = $this->platformConfigHandler->getParameter('locale_language');
     $builder->add('post', 'text')->add('companyName', 'text')->add('startDate', 'datepicker', ['required' => false, 'language' => $language, 'format' => 'Y/M/d'])->add('endDate', 'datepicker', ['required' => false, 'language' => $language, 'format' => 'Y/M/d'])->add('description', 'tinymce')->add('website', 'url', ['required' => false]);
 }
예제 #20
0
 public function setPortalEnabledResourceTypes($resourceTypes)
 {
     $this->configHandler->setParameter('portal_enabled_resources', $resourceTypes);
 }