コード例 #1
0
 public function generateEnumToEntity($nameMethod = null, $overwrite = false)
 {
     $entity = $this->getEntityName();
     $array = explode('\\', $entity);
     $file = 'E' . $array[count($array) - 1] . '.php';
     //         $dir = __DIR__."/Enums/$file";
     $kernel = UtilRepository2::getContainer()->get('kernel');
     $dir = $kernel->locateResource("@ComunBundle/Enums/" . $file);
     //         ldd($dir);
     $objs = $this->findAll();
     $enum = "<?php \n namespace backend\\ComunBundle\\Enums;\n class " . 'E' . $array[count($array) - 1] . "{\n";
     $class = "backend\\ComunBundle\\Enums\\" . $array[count($array) - 1];
     $enumsIds = array();
     if ($overwrite === false && class_exists($class)) {
         $enumsIds = $this->getEnumIds($class);
     }
     foreach ($objs as $obj) {
         if ($overwrite === false) {
             if (in_array($obj->getId(), $enumsIds)) {
                 $row = $this->createRowFromExisting($this->getConstNameByValue($class, $obj->getId()), $obj->getId());
             } else {
                 $row = $this->createRow($obj, null, $nameMethod);
             }
             $enum .= $row;
         } else {
             $row = $this->createRow($obj, $array[count($array) - 1], $nameMethod);
             $enum .= $row;
         }
     }
     $enum .= "} \n ?>";
     $r = file_put_contents($dir, $enum);
     return $r;
 }
コード例 #2
0
 public function obtenerMenusPadresXUsuarioLogueado()
 {
     $markedPadres = array();
     $hojas = $this->obtenerHojas();
     for ($i = 0; $i < count($hojas); $i++) {
         //            ld($hojas[$i]->getId());
         if (UtilRepository2::getContainer()->get('security.context')->isGranted($hojas[$i]->getPermiso()) && $hojas[$i]->getId() != -1 && !array_key_exists($hojas[$i]->getPadre()->getId(), $markedPadres)) {
             $markedPadres[$hojas[$i]->getPadre()->getId()] = $hojas[$i]->getPadre()->getId();
             $padre = $hojas[$i]->getPadre();
             while ($padre->getId() != -1 && !array_key_exists($padre->getPadre()->getId(), $markedPadres)) {
                 $markedPadres[$padre->getPadre()->getId()] = $padre->getPadre()->getId();
                 $padre = $padre->getPadre();
             }
         }
     }
     return array_keys($markedPadres);
     //        UtilRepository2::getContainer()->get('security.context')->isGranted()
 }
コード例 #3
0
ファイル: TreeModel.php プロジェクト: jjspider277/weddings
 /**
  * @return NomencladoresRepository
  */
 protected function getRepo($entity = null)
 {
     if (!$entity) {
         return UtilRepository2::getContainer()->get('doctrine.orm.entity_manager')->getRepository($this->entity);
     } else {
         return UtilRepository2::getContainer()->get('doctrine.orm.entity_manager')->getRepository($entity);
     }
 }
コード例 #4
0
 /**
  * @author Franlin Rivero Grcia <*****@*****.**>
  * @param string $key
  * @param type $fields
  * @param \Doctrine\ORM\Mapping\ClassMetadata $meta
  * @param QueryBuilder $qb
  * @param type $asoc
  */
 public static function fieldFilter($class, &$filters, &$fields, &$asoc, &$meta, &$qb)
 {
     if (array_key_exists('select', $filters)) {
         $qb->select($filters['select']);
         unset($filters['select']);
     }
     $fTemp = json_decode(UtilRepository2::getContainer()->get('request')->get('filters'));
     if (is_array($fTemp)) {
         if (!(is_array($filters) && count($filters) > 0 || !is_array($filters) && $filters != null)) {
             $filters = $fTemp;
         }
     }
     if ($filters == null) {
         $filters = array();
     }
     if (!is_array($filters)) {
         $filters = array($filters);
     }
     foreach ($filters as $key => $value) {
         if ($value !== null && $value !== '') {
             if (in_array($key, $fields)) {
                 $map = $meta->getFieldMapping($key);
                 if ($map['type'] == 'string' || $map['type'] == 'text' || $map['type'] == 'varchar') {
                     if (UtilRepository2Config::$defaultStringComparer == 'like') {
                         $qb->andWhere("lower({$class}.{$key}) like :{$key}");
                         if (strpos($value, '%') === false) {
                             $qb->setParameter($key, "%" . strtolower($value) . "%");
                         } else {
                             $qb->setParameter($key, strtolower($value));
                         }
                     } else {
                         if (is_array($value)) {
                             $op = $value[0];
                             $qb->andWhere("lower({$class}.{$key}) {$op} :{$key}");
                             $qb->setParameter($key, strtolower($value[1]));
                         } else {
                             $qb->andWhere("lower({$class}.{$key}) = :{$key}");
                             $qb->setParameter($key, strtolower($value));
                         }
                     }
                 } else {
                     if (is_array($value)) {
                         $op = $value[0];
                         if ($op == 'in') {
                             $qb->andWhere("{$class}.{$key} {$op} (:{$key})");
                             $qb->setParameter($key, $value[1]);
                         } elseif ($op == 'is') {
                             $qb->andWhere("{$class}.{$key} is null");
                         } else {
                             $qb->andWhere("{$class}.{$key} {$op} :{$key}");
                             $qb->setParameter($key, strtolower($value[1]));
                         }
                     } else {
                         $qb->andWhere("{$class}.{$key} = :{$key}");
                         $qb->setParameter($key, $value);
                     }
                 }
             } elseif (in_array($key, $asoc)) {
                 if (is_array($value)) {
                     $op = $value[0];
                     if ($op == 'is') {
                         $qb->andWhere("{$class}.{$key} is null");
                     }
                 } else {
                     $qb->andWhere("{$class}.{$key} = :{$key}");
                     $qb->setParameter($key, $value);
                 }
             } else {
                 $op = UtilRepository2Config::$defaultForeignCompareOperator;
                 $param = str_replace(".", '', $key);
                 if (!is_array($value)) {
                     if ($op == 'like') {
                         $qb->andWhere("lower({$key}) {$op} :{$param}");
                     } else {
                         $qb->andWhere("{$key} {$op} :{$param}");
                     }
                     if ($op == 'like') {
                         if (strpos($value, '%') === false) {
                             $qb->setParameter($param, "%" . strtolower($value) . "%");
                         } else {
                             $qb->setParameter($param, strtolower($value));
                         }
                     } else {
                         $qb->setParameter($param, $value);
                     }
                 } else {
                     if ($value[0] == 'like') {
                         $qb->andWhere("lower({$key}) {$value['0']} :{$param}");
                     } elseif ($value[0] == 'in') {
                         $qb->andWhere("{$key} {$value['0']} (:{$param})");
                     } else {
                         $qb->andWhere("{$key} {$value['0']} :{$param}");
                     }
                     if ($value[0] == 'like') {
                         if (strpos($value[1], '%') === false) {
                             $qb->setParameter($param, "%" . strtolower($value[1]) . "%");
                         } else {
                             $qb->setParameter($param, strtolower($value[1]));
                         }
                     } else {
                         $qb->setParameter($param, $value[1]);
                     }
                 }
             }
         }
     }
     if (array_key_exists('start', $filters) && array_key_exists('limit', $filters) && $filters['start'] != null && $filters['limit'] != null) {
         $total = UtilRepository2::getTotalResult($qb, $class);
         $start = $filters['start'];
         $limit = $filters['limit'];
         $limit = $limit == -1 ? $total : $limit;
         unset($filters['start']);
         unset($filters['limit']);
         UtilRepository2::getSession()->set("total", $total);
         $qb->setFirstResult($start);
         $qb->setMaxResults($limit);
     } else {
         $start = UtilRepository2::getContainer()->get('request')->get('iDisplayStart');
         $size = UtilRepository2::getContainer()->get('request')->get('iDisplayLength');
         if ($start !== null && $size !== null) {
             $total = UtilRepository2::getTotalResult($qb, $class);
             $size = $size == -1 ? $total : $size;
             if ($start != null && $size != null) {
                 UtilRepository2::getSession()->set("total", $total);
                 $qb->setFirstResult($start);
                 $qb->setMaxResults($size);
             }
         }
     }
 }
コード例 #5
0
 /**
  * @return NomencladoresRepository
  */
 public static function getRepo($entity)
 {
     return \backend\ComunBundle\Util\UtilRepository2::getContainer()->get('doctrine.orm.entity_manager')->getRepository($entity);
 }