コード例 #1
0
ファイル: MediaManager.php プロジェクト: Vooodoo/MediaBundle
 /**
  * Custom find all, sort by createAt desc.
  *
  * @param array $filtersKeys List medias in this filters
  */
 public function findAllByFiltersKeys(array $filtersKeys)
 {
     $qb = $this->entityManager->getRepository($this->class)->createQueryBuilder('m');
     $filters = array();
     $addNull = false;
     $inversedfilters = array();
     foreach ($filtersKeys as $filter) {
         if ($this->filter->has($filter)) {
             $value = $this->filter->get($filter);
             $inversedfilters[$value] = $filter;
             if ($value === null) {
                 $addNull = true;
             } else {
                 $filters[] = $value;
             }
         }
     }
     if ($addNull === false && empty($filters)) {
         return array();
     }
     if (!empty($filters)) {
         $qb->select('m')->where($qb->expr()->in('m.filter', $filters));
     }
     if ($addNull === true) {
         $qb->orWhere('m.filter IS NULL');
     }
     $medias = $qb->orderBy('m.createdAt', 'DESC')->getQuery()->getResult();
     foreach ($medias as $media) {
         $media->setCryptedFilter($inversedfilters[$media->getFilter()]);
     }
     return $medias;
 }
コード例 #2
0
 /**
  * {@inheritDoc}
  */
 public function buildView(FormView $view, FormInterface $form, array $options)
 {
     $view->vars['filter'] = $this->filter->set($options['filter']);
     $this->contextsManipulator->addContexts($options['contexts'])->addAllowedExtensions($options['allowed_extensions']);
     $view->vars['allowed_extensions'] = $this->contextsManipulator->getAllowedExtensions();
 }