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