/** * Gets article types array collection needed for the form * * @return ArrayCollection */ private function getArticleTypesCollection() { $articleTypes = $this->em->getRepository('Newscoop\\Entity\\ArticleType')->getAllTypes()->getArrayResult(); $settings = new Settings(); foreach ($articleTypes as $key => $type) { $position = new Position(); $position->articleTypeName = $type['name']; $settings->getPositions()->add($position); } return $settings->getPositions(); }
/** * Setting up new default settings, when isGlobal is set to true for given setting, * there will be the possibility to change this setting for all users. * * @param array $settings Array of settings * @param bool $isGlobal If edit settings for all users */ private function setUpSettings($settings, $isGlobal = false) { $qb = $this->em->createQueryBuilder(); foreach ($settings as $option => $value) { $setting = $this->em->getRepository('Newscoop\\EditorBundle\\Entity\\Settings')->createQueryBuilder('s')->select('s')->where($qb->expr()->isNull('s.user'))->andWhere('s.option = :option')->setParameter('option', $option)->getQuery()->getOneOrNullResult(); if (!$setting) { $setting = new Settings(); $setting->setOption($option); $setting->setValue($value); $setting->setUser(null); $setting->setIsGlobal($isGlobal); $this->em->persist($setting); } else { $setting->setValue($value); } } $this->em->flush(); }