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; }
/** * 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; }