public function IndexAction()
 {
     $array = array();
     $atributos = new Propiedades();
     $rows = $atributos->fetchAll('Titulo', false);
     unset($atributos);
     foreach ($rows as $row) {
         $array[$row['Id']]['Titulo'] = $row['Value'];
         $valor = new PropiedadesValores();
         $valores = $valor->getValores($row['Id']);
         unset($valor);
         foreach ($valores as $valor) {
             $array[$row['Id']]['Valores'][$valor['Id']] = $valor['Valor'];
         }
     }
     $articulo = new Articulos();
     $rows = $articulo->cargaCondicion("IDArticulo", "BelongsTo='{$this->request[2]}'");
     unset($articulo);
     foreach ($rows as $row) {
         $articulos[] = new Articulos($row['IDArticulo']);
     }
     $this->values['articulos'] = $articulos;
     $this->values['propiedadesValores'] = $array;
     $this->values['idArticulo'] = $this->request[2];
     return array('template' => $this->entity . '/index.html.twig', 'values' => $this->values);
 }
 /**
  * Devuelve un array con las propiedades que están definidas
  * para el artículo en curso.
  * 
  * Cada elemento del array es:
  * 
  * - Id: El id de la propiedad
  * - Titulo: El título de la propiedad
  * - IDTipo: el id de tipo de la propiedad
  * - IDValor: el id del valor actual de la propiedad
  * - Valores: array con los valores posibles para dicha propiedad
  * 
  * @param boolean $valorAditional Si true añade el valor adicional "Indique un valor" en el subarray de valores. Por defato true
  * @return array
  */
 public function getPropiedades($valorAditional = true)
 {
     $array = array();
     switch ($this->TienePropiedades()) {
         case 0:
             break;
         case 1:
             $propiedades = new FamiliasPropiedades();
             $rows = $propiedades->cargaCondicion("IDPropiedad", "IDFamilia='{$this->IDCategoria->getIDFamilia()}'");
             break;
         case 2:
             $propiedades = new FamiliasPropiedades();
             $rows = $propiedades->cargaCondicion("IDPropiedad", "IDFamilia='{$this->IDFamilia->getIDFamilia()}'");
             break;
         case 3:
             $propiedades = new FamiliasPropiedades();
             $rows = $propiedades->cargaCondicion("IDPropiedad", "IDFamilia='{$this->IDSubfamilia->getIDFamilia()}'");
             break;
     }
     foreach ($rows as $row) {
         $propiedad = new Propiedades($row['IDPropiedad']);
         $propiedadesValores = new PropiedadesValores();
         $propArticulo = new ArticulosPropiedades();
         $propiedadesArticulo = $propArticulo->cargaCondicion("IDValor", "IDArticulo='{$this->IDArticulo}' and IDPropiedad='{$row['IDPropiedad']}'");
         $array[$propiedad->getId()] = array('Id' => $propiedad->getId(), 'Titulo' => $propiedad->getTitulo(), 'IDTipo' => $propiedad->getIDTipo()->getIDTipo(), 'IDValor' => $propiedadesArticulo[0]['IDValor'], 'Valores' => $propiedadesValores->getValores($row['IDPropiedad'], $valorAditional));
     }
     unset($propiedadesValores);
     unset($propiedades);
     unset($propiedad);
     return $array;
 }
Exemple #3
0
 /**
  * Devuelve un array con las propiedades y valores asignadas
  * a la familia en curso.
  * 
  * Si el parámetro $todas es false se incluyen todas las propiedades pero
  * con una marca a false para las propiedades que no están asignadas.
  * 
  * Si el parámetro $todas es true se incluyen solo las propiedades asignadas
  * y con la marca a true
  * 
  * El indice el array es el id de la propiedad y tiene dos elementos:
  * 
  * - Titulo: el titulo de la propiedad
  * - Asignada: true o false
  * - Filtrable: true o false
  * - Valores: array de valores (Id,Value)
  * 
  * @param boolean $todas
  * @return array
  */
 public function getPropiedades($todas = false)
 {
     $propiedades = array();
     $propiedad = new Propiedades();
     // Cojo todas las propiedades
     $aux = $propiedad->fetchAll('Titulo', false);
     foreach ($aux as $item) {
         $propiedadesTodas[$item['Id']] = $item['Value'];
     }
     // Cojo las que están asignadas a la familia
     $familiaPropiedad = new FamiliasPropiedades();
     $rows = $familiaPropiedad->cargaCondicion("IDPropiedad, Filtrable", "IDFamilia='{$this->IDFamilia}'");
     $valores = new PropiedadesValores();
     foreach ($rows as $row) {
         $propiedades[$row['IDPropiedad']] = array('Id' => $row['IDPropiedad'], 'Titulo' => $propiedadesTodas[$row['IDPropiedad']], 'Asignada' => true, 'Filtrable' => $row['Filtrable'], 'Valores' => $valores->getValores($row['IDPropiedad']));
     }
     if ($todas) {
         foreach ($propiedadesTodas as $key => $titulo) {
             if (!isset($propiedades[$key])) {
                 $propiedades[$key] = array('Id' => $key, 'Titulo' => $propiedadesTodas[$key], 'Asignada' => false, 'Valores' => $valores->getValores($key));
             }
         }
     }
     return $propiedades;
 }