예제 #1
0
 /**
  * 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;
 }
// CARGO LOS PARAMETROS DE CONFIGURACION.
// ---------------------------------------------------------------
$config = sfYaml::load('../config/config.yml');
$app = $config['config']['app'];
// ---------------------------------------------------------------
// ACTIVAR EL AUTOLOADER DE CLASES Y FICHEROS A INCLUIR
// ---------------------------------------------------------------
define("APP_PATH", $_SERVER['DOCUMENT_ROOT'] . $app['path'] . "/");
include_once "../" . $app['framework'] . "Autoloader.class.php";
Autoloader::setCacheFilePath(APP_PATH . 'tmp/class_path_cache.txt');
Autoloader::excludeFolderNamesMatchingRegex('/^CVS|\\..*$/');
Autoloader::setClassPaths(array('../' . $app['framework'], '../entities/', '../lib/'));
spl_autoload_register(array('Autoloader', 'loadClass'));
$v = $_GET;
$relacion = new ArticulosPropiedades();
$rows = $relacion->cargaCondicion("Id", "IDArticulo='{$v['idArticulo']}' and IDPropiedad='{$v['idPropiedad']}'");
$idRelacion = $rows[0]['Id'];
if (!$idRelacion) {
    // Hacer relacion
    $relacion = new ArticulosPropiedades();
    $relacion->setIDArticulo($v['idArticulo']);
    $relacion->setIDPropiedad($v['idPropiedad']);
    $relacion->setIDValor($v['idValor']);
    $relacion->setPublish(1);
    $relacion->create();
} else {
    if ($v['idValor'] > 0) {
        // Actualizar la relación
        $relacion = new ArticulosPropiedades($idRelacion);
        $relacion->setIDValor($v['idValor']);
        $relacion->save();