err = false; $this->con = $con; $this->path_files = _ADSHOP_IMAGENES_DIR."/productos"; $this->path_files_texturas = _ADSHOP_IMAGENES_DIR."/colores"; } function hayCategorias(){ $sql = "SELECT count(*) as num FROM categorias"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); return $rs['num']; } //$orden llega con el siguiente formato function setOrden($productos_id, $orden){ $a_orden = explode("#",$orden); $sql = "UPDATE productos SET productos_orden=".$a_orden[0]." WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); $sql = "UPDATE productos SET productos_orden=".$a_orden[2]." WHERE productos_id=".$a_orden[1]; $res = $this->con->ejecutar_consulta($sql); return($res); } function getMaxOrden(){ $sql = "SELECT IFNULL(MAX(productos_orden),0)+1 as max_orden FROM productos"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if($rs){ return $rs['max_orden']; }else{ return 0; } } function alta($a_datos) { /* echo "
";
            print_r($a_datos);
            echo "
"; */ $sql = "INSERT INTO productos(productos_referencia, productos_modelo, productos_cantidad, productos_precio, productos_precio_anterior, productos_fecha_alta, productos_fecha_modificacion, productos_fecha_disponibilidad, productos_fecha_caducidad, productos_peso, productos_ancho, productos_alto, productos_fondo, productos_diametro, productos_estados_id, productos_fabricantes_id, productos_activo, productos_familias_tipos_id, productos_id_padre, productos_materiales_id, productos_color_rgb, productos_orden, productos_iva) VALUES "; $sql.= "("; $sql.= ($a_datos['productos_referencia']!=""?"'".$a_datos['productos_referencia']."'":"NULL").","; $sql.= ($a_datos['productos_modelo']!=""?"'".$a_datos['productos_modelo']."'":"NULL").","; $sql.= ($a_datos['productos_cantidad']!=""?$a_datos['productos_cantidad']:"NULL").","; $sql.= ($a_datos['productos_precio']!=""?"'".str_replace(",",".",$a_datos['productos_precio'])."'":"NULL").","; $sql.= ($a_datos['productos_precio_anterior']!=""?"'".str_replace(",",".",$a_datos['productos_precio_anterior'])."'":"NULL").","; $sql.= "NOW(),"; $sql.= "NULL,"; $sql.= ($a_datos['productos_fecha_disponibilidad']!=""?"'".$this->con->getFechaMysql($a_datos['productos_fecha_disponibilidad'])."'":"NULL").","; $sql.= ($a_datos['productos_fecha_caducidad']!=""?"'".$this->con->getFechaMysql($a_datos['productos_fecha_caducidad'])."'":"NULL").","; $sql.= ($a_datos['productos_peso']!=""?"'".str_replace(",",".",$a_datos['productos_peso'])."'":"NULL").","; $sql.= ($a_datos['productos_ancho']!=""?"'".$a_datos['productos_ancho']."'":"NULL").","; $sql.= ($a_datos['productos_alto']!=""?"'".$a_datos['productos_alto']."'":"NULL").","; $sql.= ($a_datos['productos_fondo']!=""?"'".$a_datos['productos_fondo']."'":"NULL").","; $sql.= ($a_datos['productos_diametro']!=""?"'".$a_datos['productos_diametro']."'":"NULL").","; $sql.= ($a_datos['productos_estados_id']!=""?$a_datos['productos_estados_id']:"NULL").","; $sql.= ($a_datos['productos_fabricantes_id']!=""?$a_datos['productos_fabricantes_id']:"NULL").","; $sql.= "'".$a_datos['productos_activo']."',"; $sql.= ($a_datos['productos_familias_tipos_id']!=""?$a_datos['productos_familias_tipos_id']:"NULL").","; $sql.= ($a_datos['productos_id_padre']!=""?$a_datos['productos_id_padre']:"NULL").","; $sql.= ($a_datos['productos_materiales_id']!=""?$a_datos['productos_materiales_id']:"NULL").","; $sql.= ($a_datos['productos_color_rgb']!=""?"'".$a_datos['productos_color_rgb']."'":"NULL").","; $sql.= $this->getMaxOrden().","; $sql.= ($a_datos['productos_iva']!=""?$a_datos['productos_iva']:_IVA).")"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); if(!$res){ $this->err = true; $this->err_descripcion = "Error al ejecutar la SQL de Alta de Categor�as: ".$sql; }else{ $this->lastID = $this->con->lastID; //Insertamos los textos para cada idioma //campos: //productos_nombre //productos_descripcion //productos_url //productos_visitas foreach($a_datos as $k=>$v){ if(strstr($k, "productos_nombre") !== false){ $a_dat = explode("_", $k); $idiomas_id = $a_dat[2]; $productos_nombre = ($a_datos['productos_nombre_'.$idiomas_id]!=""?"'".$a_datos['productos_nombre_'.$idiomas_id]."'":"NULL"); $productos_descripcion = ($a_datos['productos_descripcion_'.$idiomas_id]!=""?"'".$a_datos['productos_descripcion_'.$idiomas_id]."'":"NULL"); $productos_observaciones = ($a_datos['productos_observaciones_'.$idiomas_id]!=""?"'".$a_datos['productos_observaciones_'.$idiomas_id]."'":"NULL"); $productos_url = ($a_datos['productos_url_'.$idiomas_id]!=""?"'".$a_datos['productos_url_'.$idiomas_id]."'":"NULL"); $productos_color = ($a_datos['productos_color_'.$idiomas_id]!=""?"'".$a_datos['productos_color_'.$idiomas_id]."'":"NULL"); $productos_visitas = "NULL"; $sql = "INSERT INTO productos_detalles(productos_id, idiomas_id, productos_nombre, productos_color, productos_descripcion, productos_observaciones, productos_url, productos_visitas) VALUES "; $sql.= "(".$this->lastID.",".$idiomas_id.",".$productos_nombre.",".$productos_color.",".$productos_descripcion.",".$productos_observaciones.",".$productos_url.",".$productos_visitas.")"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); } } //Insertamos los atributos para cada idioma //los datos llegal del tipo //CONCAT('atributo_',fa.familias_atributos_id,'_',fai.idiomas_id) foreach($a_datos as $k=>$v){ if(strstr($k, "atributo_") !== false){ $a_dat = explode("_", $k); $productos_id = $this->lastID; $familias_atributos_id = $a_dat[1]; $idiomas_id = $a_dat[2]; $valor = (strlen($v)>255)?"NULL":"'".$v."'"; $valor_text = (strlen($v)>255)?"'".$v."'":"NULL"; $sql = "INSERT INTO productos_atributos(productos_id, familias_atributos_id, idiomas_id, valor, valor_text) VALUES "; $sql.= "(".$this->lastID.",".$familias_atributos_id.",".$idiomas_id.",".$valor.",".$valor_text.")"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); $productos_atributos_id = $this->con->lastID; //Si el atributo es de tipo "conjunto de valores" (SELECT o SELECT M�LTIPLE) if(is_array($v)){ foreach($v as $x=>$y){ $stock = $a_datos['stock_'.$familias_atributos_id.'_'.$idiomas_id.'_SELECT'][$x]; //Metemos los valores en productos_atributos_valores $sql = "INSERT INTO productos_atributos_valores(productos_atributos_id, productos_atributos_valores_valor,productos_atributos_valores_stock) VALUES "; $sql.= "(".$productos_atributos_id.",'".$y."','".$stock."')"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); } } } } ////////////////////////////////////////////////////////////////////////// //¿Hay alguna Textura-Imagen que subir? (sólo se soportan JPEG y GIF) $img = $this->con->getNameUpload($_FILES['productos_color_imagen']); if (($img['type']=="image/gif") || ($img['type']=="image/pjpeg") || ($img['type']=="image/jpeg") ){ if($img['name']!=""){ if(!move_uploaded_file($img['tmp_name'], $this->path_files_texturas.'/'.$this->lastID."_".$img['fullname'])){ $this->err = true; $this->err_descripcion = "Error al subir el archivo durante al actualización"; }else{ $sql = "UPDATE productos SET productos_color_imagen='".$img['fullname']."' WHERE productos_id=".$this->lastID; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); } } } ////////////////////////////////////////////////////////////////////////// } ////////////////////////////////////////////////////////////////////////// //Hay precios por rango? $this->insertaPreciosRangos($this->lastID, $a_datos['precio_rango'], $a_datos['precio_precio']); ////////////////////////////////////////////////////////////////////////// //Categorías if($a_datos['productos_id_padre']!=""){ //Se está dando de alta una variante $sql = "SELECT categorias_id FROM productos_categorias WHERE productos_id = ".$a_datos['productos_id_padre']; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); if($rs){ foreach($rs as $k2=>$v2){ $a_datos['categorias_id'][] = $v2['categorias_id']; } } } //Alta del producto en la categor�a foreach($a_datos['categorias_id'] as $k1=>$v1){ //Alta de categoría para el padre $sql = "INSERT INTO productos_categorias (productos_id, categorias_id) VALUES (".$this->lastID.",".$v1.")"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); } //�Hay alguna imagen que subir? (s�lo se soportan JPEG y GIF) if(isset($_FILES) && sizeof($_FILES)>0){ while(list($key,$value) = each($_FILES['productos_imagen']['name'])) { if(!empty($value)){ $nombre_archivo = $_FILES['productos_imagen']['name'][$key]; $tipo_archivo = $_FILES['productos_imagen']['type'][$key]; $tamano_archivo = $_FILES['productos_imagen']['size'][$key]; $tmp_archivo = $_FILES['productos_imagen']['tmp_name'][$key]; if(($tipo_archivo=="image/gif") || ($tipo_archivo=="image/pjpeg") || ($tipo_archivo=="image/jpeg") ){ switch($tipo_archivo){ case "image/gif": $extension = ".gif"; break; case "image/pjpeg": $extension = ".jpg"; break; case "image/jpeg": $extension = ".jpg"; break; } $nombre_definitivo = md5($this->lastID."_".$nombre_archivo)."_".date("YmdGis").$extension; if(!is_dir($this->path_files)){ mkdir($this->path_files); chmod($this->path_files,0777); } if(!move_uploaded_file($tmp_archivo, $this->path_files.'/'.$nombre_definitivo)){ chmod($this->path_files.'/'.$nombre_definitivo,0777); $this->err = true; $this->err_descripcion = "Error al subir el archivo durante el alta"; }else{ $img_data = getimagesize($this->path_files.'/'.$nombre_definitivo); $sql = "INSERT INTO productos_galerias (productos_id, productos_imagen, productos_imagen_ancho, productos_imagen_alto, productos_imagen_visitas, productos_imagen_kb, productos_imagen_type) VALUES "; $sql.= "(".$this->lastID.",'".$nombre_definitivo."',".$img_data[0].",".$img_data[1].",NULL,".$tamano_archivo.",'".$tipo_archivo."')"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); } } } } } return $this->lastID; } function baja($productos_id) { $this->borraGaleria($productos_id); $this->borraFicheros($productos_id); $this->borraColorImagen($productos_id); $this->borraPreciosRangos($productos_id); $sql = "DELETE FROM productos_detalles WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); $sql = "DELETE FROM productos WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); $sql = "DELETE FROM productos_categorias WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); $sql = "DELETE FROM productos_ofertas WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); //Si borramos un padre debemos asignarle ese roll a algunos de sus hijos //en el caso de que s�lo tenga uno quedar� al mismo nivel que el resto de productos $sql = "SELECT productos_id FROM productos WHERE productos_id_padre=".$productos_id." ORDER BY productos_fecha_alta"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if($rs){ //hacemos padre al producto hijo $sql = "UPDATE productos SET productos_id_padre=NULL WHERE productos_id=".$rs['productos_id']; $res = $this->con->ejecutar_consulta($sql); //hacemos hijos a todos los productos del antiguo padre al nuevo... $sql = "UPDATE productos SET productos_id_padre=".$rs['productos_id']." WHERE productos_id_padre=".$productos_id; $res = $this->con->ejecutar_consulta($sql); } } function actualizar($a_datos) { /* echo "
";
			print_r($a_datos);
			echo "
"; die(); */ $imagen = $_FILES['productos_imagen']; $nombre_definitivo = ""; $sql = "UPDATE productos SET "; $sql.= "productos_referencia=".($a_datos['productos_referencia']!=""?"'".$a_datos['productos_referencia']."'":"NULL").", "; $sql.= "productos_modelo=".($a_datos['productos_modelo']!=""?"'".$a_datos['productos_modelo']."'":"NULL").", "; $sql.= "productos_cantidad=".($a_datos['productos_cantidad']!=""?$a_datos['productos_cantidad']:"NULL").", "; $sql.= "productos_precio=".($a_datos['productos_precio']!=""?"'".str_replace(",",".",$a_datos['productos_precio'])."'":"NULL").", "; $sql.= "productos_precio_anterior=".($a_datos['productos_precio_anterior']!=""?str_replace(",",".",$a_datos['productos_precio_anterior']):"NULL").", "; $sql.= "productos_iva=".(($a_datos['productos_iva']!="")?$a_datos['productos_iva']:_IVA).", "; $sql.= "productos_fecha_modificacion=NOW(), "; $sql.= "productos_fecha_disponibilidad=".($a_datos['productos_fecha_disponibilidad']!=""?"'".$this->con->getFechaMysql($a_datos['productos_fecha_disponibilidad'])."'":"NULL").", "; $sql.= "productos_fecha_caducidad=".($a_datos['productos_fecha_caducidad']!=""?"'".$this->con->getFechaMysql($a_datos['productos_fecha_caducidad'])."'":"NULL").", "; $sql.= "productos_peso=".($a_datos['productos_peso']!=""?"'".$a_datos['productos_peso']."'":"NULL").", "; $sql.= "productos_ancho=".($a_datos['productos_ancho']!=""?"'".$a_datos['productos_ancho']."'":"NULL").", "; $sql.= "productos_alto=".($a_datos['productos_alto']!=""?"'".$a_datos['productos_alto']."'":"NULL").", "; $sql.= "productos_fondo=".($a_datos['productos_fondo']!=""?"'".$a_datos['productos_fondo']."'":"NULL").", "; $sql.= "productos_diametro=".($a_datos['productos_diametro']!=""?"'".$a_datos['productos_diametro']."'":"NULL").", "; $sql.= "productos_estados_id=".($a_datos['productos_estados_id']!=""?$a_datos['productos_estados_id']:"NULL").", "; $sql.= "productos_fabricantes_id=".($a_datos['productos_fabricantes_id']!=""?$a_datos['productos_fabricantes_id']:"NULL").", "; $sql.= "productos_familias_tipos_id=".($a_datos['productos_familias_tipos_id']!=""?$a_datos['productos_familias_tipos_id']:"NULL").", "; $sql.= "productos_activo="."'".($a_datos['productos_activo'])."', "; $sql.= "productos_color_rgb=".($a_datos['productos_color_rgb']!=""?"'".$a_datos['productos_color_rgb']."'":"NULL").", "; $sql.= "productos_materiales_id=".($a_datos['productos_materiales_id']!=""?$a_datos['productos_materiales_id']:"NULL")." "; //$sql.= "productos_orden=".($a_datos['productos_orden']!=""?$a_datos['productos_orden']:"NULL")." "; $sql.= "WHERE productos_id=".$a_datos['frm_id']; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); if(!$res){ $this->err = true; $this->err_descripcion = "Error al ejecutar la SQL de Alta de Categor�as: ".$sql; }else{ //Insertamos los textos para cada idioma //campos: //productos_nombre //productos_descripcion //productos_url //productos_visitas $sql = "DELETE FROM productos_detalles WHERE productos_id=".$a_datos['frm_id']; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); foreach($a_datos as $k=>$v){ if(strstr($k, "productos_nombre") !== false){ $a_dat = explode("_", $k); $idiomas_id = $a_dat[2]; $productos_nombre = ($a_datos['productos_nombre_'.$idiomas_id]!=""?"'".$a_datos['productos_nombre_'.$idiomas_id]."'":"NULL"); $productos_color = ($a_datos['productos_color_'.$idiomas_id]!=""?"'".$a_datos['productos_color_'.$idiomas_id]."'":"NULL"); $productos_descripcion = ($a_datos['productos_descripcion_'.$idiomas_id]!=""?"'".$a_datos['productos_descripcion_'.$idiomas_id]."'":"NULL"); $productos_observaciones = ($a_datos['productos_observaciones_'.$idiomas_id]!=""?"'".$a_datos['productos_observaciones_'.$idiomas_id]."'":"NULL"); $productos_url = ($a_datos['productos_url_'.$idiomas_id]!=""?"'".$a_datos['productos_url_'.$idiomas_id]."'":"NULL"); $productos_visitas = "NULL"; $sql = "INSERT INTO productos_detalles(productos_id, idiomas_id, productos_nombre, productos_color, productos_descripcion, productos_observaciones, productos_url, productos_visitas) VALUES "; $sql.= "(".$a_datos['frm_id'].",".$idiomas_id.",".$productos_nombre.",".$productos_color.",".$productos_descripcion.",".$productos_observaciones.",".$productos_url.",".$productos_visitas.")"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); } } ////////////////////////////////////////////////////////////////////////// //Hay precios por rango? $this->insertaPreciosRangos($a_datos['frm_id'], $a_datos['precio_rango'], $a_datos['precio_precio']); ////////////////////////////////////////////////////////////////////////// //Si es un hijo no puede cambiar la categor�a $sql = "SELECT IFNULL(productos_id_padre,'') as productos_id_padre FROM productos WHERE productos_id=".$a_datos['frm_id']; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if($rs){ if($rs['productos_id_padre']==""){ //Alta del producto en la categoría $sql = "DELETE FROM productos_categorias WHERE productos_id=".$a_datos['frm_id']; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); //Hijos $sql = "DELETE FROM productos_categorias WHERE productos_id IN (SELECT productos_id FROM productos WHERE productos_id_padre=".$a_datos['frm_id'].") "; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); foreach($a_datos['categorias_id'] as $k1=>$v1){ //Alta de categoría para el padre $sql = "INSERT INTO productos_categorias (productos_id, categorias_id) VALUES (".$a_datos['frm_id'].",".$v1.")"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); //¿Tiene hijos? $sql = "SELECT productos_id FROM productos WHERE productos_id_padre=".$a_datos['frm_id']; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); if($rs){ foreach($rs as $k2=>$v2){ //Alta de categorías para cada hijo $sql = "INSERT INTO productos_categorias (productos_id, categorias_id) VALUES (".$v2['productos_id'].",".$v1.")"; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); } } } } } //Insertamos los atributos para cada idioma //los datos llegal del tipo //CONCAT('atributo_',fa.familias_atributos_id,'_',fai.idiomas_id) $sql = "DELETE FROM productos_atributos WHERE productos_id=".$a_datos['frm_id']." AND valor!='Array'"; $res = $this->con->ejecutar_consulta($sql); //Se desea subir un atributo de tipo imagen? foreach($_FILES as $key=>$val){ if( (strstr($key,"atributo_")!==false) && (strstr($key,"_IMG")!==false ) ) { if(is_array($_FILES)){ while(list($key,$value) = each($_FILES[$key]['name'])) { if(!empty($value)){ $att_img_name = $_FILES[$key]['name'][$key]; $att_img_type = $_FILES[$key]['type'][$key]; $att_img_tmp_name = $_FILES[$key]['tmp_name'][$key]; $extension = $this->getExtension($att_img_type); $nombre_definitivo = md5($this->lastID."_".$att_img_name)."_".date("YmdGis").$extension; if(!is_dir($this->path_files)){ mkdir($this->path_files); chmod($this->path_files,0777); } if(!move_uploaded_file($att_img_tmp_name, $this->path_files.'/'.$nombre_definitivo)){ chmod($this->path_files.'/'.$nombre_definitivo,0777); $this->err = true; $this->err_descripcion = "Error al subir el archivo durante la actualizaci�n"; }else{ $a_dat = explode("_", $key); $productos_id = $a_datos['frm_id']; $familias_atributos_id = $a_dat[1]; $idiomas_id = $a_dat[2]; $valor = (strlen($v)>255)?"NULL":"'".$v."'"; $valor_text = (strlen($v)>255)?"'".$v."'":"NULL"; $sql = "INSERT INTO productos_atributos(productos_id, familias_atributos_id, idiomas_id, valor, valor_text) VALUES "; $sql.= "(".$productos_id.",".$familias_atributos_id.",".$idiomas_id.",".$valor.",".$valor_text.")"; $res = $this->con->ejecutar_consulta($sql); } } } } } } //////////////////////////////////////////////////////////////////// //Borramos los datos previos de atributos y posibles valores de �stos $sql2 = "DELETE FROM productos_atributos_valores WHERE productos_atributos_id IN (SELECT productos_atributos_id FROM productos_atributos WHERE valor='Array' AND productos_id=".$a_datos['frm_id'].")"; $res2 = $this->con->ejecutar_consulta($sql2); $sql2 = "DELETE FROM productos_atributos WHERE valor='Array' AND productos_id=".$a_datos['frm_id']; $res2 = $this->con->ejecutar_consulta($sql2); //////////////////////////////////////////////////////////////////// foreach($a_datos as $k=>$v){ if(strstr($k, "atributo_")!== false){ $a_dat = explode("_", $k); $productos_id = $a_datos['frm_id']; $familias_atributos_id = $a_dat[1]; $idiomas_id = $a_dat[2]; $valor = (strlen($v)>255)?"NULL":"'".$v."'"; $valor_text = (strlen($v)>255)?"'".$v."'":"NULL"; $sql = "INSERT INTO productos_atributos(productos_id, familias_atributos_id, idiomas_id, valor, valor_text) VALUES "; $sql.= "(".$productos_id.",".$familias_atributos_id.",".$idiomas_id.",".$valor.",".$valor_text.")"; $res = $this->con->ejecutar_consulta($sql); //echo "
".$sql."
"; $productos_atributos_id = $this->con->lastID; //Si el atributo es de tipo "conjunto de valores" (SELECT o SELECT M�LTIPLE) if(is_array($v)){ foreach($v as $x=>$y){ $stock = ($a_datos['stock_'.$familias_atributos_id.'_'.$idiomas_id.'_SELECT'][$x]!='')?$a_datos['stock_'.$familias_atributos_id.'_'.$idiomas_id.'_SELECT'][$x]:$a_datos['stock_'.$familias_atributos_id.'_'._IDIOMAS_ID.'_SELECT'][$x]; if($y!=""){ //Metemos los valores en productos_atributos_valores $sql = "INSERT INTO productos_atributos_valores(productos_atributos_id, productos_atributos_valores_valor,productos_atributos_valores_stock) VALUES "; $sql.= "(".$productos_atributos_id.",'".$y."','".$stock."')"; $res = $this->con->ejecutar_consulta($sql); //echo "
".$sql."
"; } } } } } } //�Hay alguna imagen que subir? (s�lo se soportan JPEG y GIF) if(isset($_FILES)) { while(list($key,$value) = @each($_FILES['productos_imagen']['name'])) { if(!empty($value)){ $nombre_archivo = $_FILES['productos_imagen']['name'][$key]; $tipo_archivo = $_FILES['productos_imagen']['type'][$key]; $tamano_archivo = $_FILES['productos_imagen']['size'][$key]; $tmp_archivo = $_FILES['productos_imagen']['tmp_name'][$key]; $extension = $this->getExtension($tipo_archivo); $nombre_definitivo = md5($a_datos['frm_id']."_".$nombre_archivo)."_".date("YmdGis").$extension; if(!is_dir($this->path_files)){ mkdir($this->path_files); chmod($this->path_files,0777); } if(!move_uploaded_file($tmp_archivo, $this->path_files.'/'.$nombre_definitivo)){ chmod($this->path_files.'/'.$nombre_definitivo,0777); $this->err = true; $this->err_descripcion = "Error al subir el archivo durante el alta"; }else{ $img_data = getimagesize($this->path_files.'/'.$nombre_definitivo); $sql = "INSERT INTO productos_galerias (productos_id, productos_imagen, productos_imagen_ancho, productos_imagen_alto, productos_imagen_visitas, productos_imagen_kb, productos_imagen_type) VALUES "; $sql.= "(".$a_datos['frm_id'].",'".$nombre_definitivo."',".$img_data[0].",".$img_data[1].",NULL,".$tamano_archivo.",'".$tipo_archivo."')"; $res = $this->con->ejecutar_consulta($sql); } } } } //Imagen Color Textura??? if(isset($_FILES)) { if(!empty($_FILES['productos_color_imagen']['name'])){ $nombre_archivo = $_FILES['productos_color_imagen']['name']; $tipo_archivo = $_FILES['productos_color_imagen']['type']; $tamano_archivo = $_FILES['productos_color_imagen']['size']; $tmp_archivo = $_FILES['productos_color_imagen']['tmp_name']; $extension = $this->getExtension($tipo_archivo); $nombre_definitivo = $a_datos['frm_id']."_".$nombre_archivo; if(!is_dir($this->path_files)){ mkdir($this->path_files); chmod($this->path_files,0777); } if(!move_uploaded_file($tmp_archivo, $this->path_files_texturas.'/'.$nombre_definitivo)){ chmod($this->path_files_texturas.'/'.$nombre_definitivo,0777); $this->err = true; $this->err_descripcion = "Error al subir el archivo durante el alta"; }else{ $sql = "UPDATE productos SET productos_color_imagen = '".$nombre_definitivo."' WHERE productos_id=".$a_datos['frm_id']; $res = $this->con->ejecutar_consulta($sql); } } } } function getNumImagenes($id){ $sql = "SELECT COUNT(*) as num FROM productos_galerias WHERE productos_id=".$id; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); return $rs['num']; } function borraImagen($id) { $sql = "SELECT productos_imagen FROM productos_galerias WHERE productos_galerias_id=".$id; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if($rs) { if($rs['productos_imagen']!=""){ @unlink($this->path_files."/".$rs['productos_imagen']); $sql = "DELETE FROM productos_galerias WHERE productos_galerias_id=".$id; $res = $this->con->ejecutar_consulta($sql); } } } function borraColorImagen($id) { $sql = "SELECT productos_color_imagen FROM productos WHERE productos_id=".$id; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if($rs) { if($rs['productos_color_imagen']!=""){ unlink($this->path_files_texturas."/".$rs['productos_color_imagen']); $sql = "UPDATE productos SET productos_color_imagen = NULL WHERE productos_id=".$id; //echo $sql."
"; $res = $this->con->ejecutar_consulta($sql); } } } function borraGaleria($productos_id) { $sql = "SELECT productos_galerias_id, productos_imagen FROM productos_galerias WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); if($rs){ foreach($rs as $k=>$v){ $this->borraImagen($v['productos_galerias_id']); } } } function borraFicheros($productos_id) { $sql = "SELECT productos_ficheros_disco FROM productos_ficheros WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); if($rs){ foreach($rs as $k=>$v){ @unlink($this->path_files."/".$rs['productos_ficheros_disco']); } } $sql = "DELETE FROM productos_ficheros WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); $sql = "DELETE FROM productos_ficheros_detalle WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); } function getDatos($productos_id, $idiomas_id=""){ if($idiomas_id=="") $idiomas_id = $this->getIdiomaDefault(); $sql = "SELECT p.productos_id, p.productos_materiales_id, pc.categorias_id, cd.categorias_nombre, pd.productos_nombre, pd.productos_descripcion, pd.productos_observaciones, pd.productos_url, p.productos_referencia, p.productos_modelo, p.productos_cantidad, p.productos_precio, p.productos_precio_anterior, DATE_FORMAT(p.productos_fecha_alta, '%d/%m/%Y') as productos_fecha_alta, DATE_FORMAT(p.productos_fecha_modificacion, '%d/%m/%Y') as productos_fecha_modificacion, DATE_FORMAT(p.productos_fecha_disponibilidad, '%d/%m/%Y') as productos_fecha_disponibilidad, DATE_FORMAT(p.productos_fecha_caducidad, '%d/%m/%Y') as productos_fecha_caducidad, p.productos_peso, p.productos_ancho, p.productos_alto, p.productos_fondo, p.productos_diametro, p.productos_estados_id, p.productos_fabricantes_id, p.productos_familias_tipos_id, p.productos_activo, p.productos_id_padre, p.productos_color_rgb, pd.productos_color, p.productos_color_imagen, p.productos_iva FROM productos p INNER JOIN productos_categorias pc ON p.productos_id=pc.productos_id INNER JOIN categorias_detalles cd ON pc.categorias_id=cd.categorias_id AND cd.idiomas_id=".$idiomas_id." INNER JOIN productos_detalles pd ON p.productos_id=pd.productos_id WHERE p.productos_id=".$productos_id; //echo $sql; $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); //echo $sql; return ($rs); } function getNextID($productos_id = false, $productos_orden = false, $filtrado_categoria = true) { $sql = "SELECT p.productos_id FROM productos p "; $sql.= "JOIN productos_categorias pc ON pc.productos_id=p.productos_id "; $sql.= "WHERE p.productos_orden > ".$productos_orden." "; if($filtrado_categoria) { $rs = $this->getDatos($productos_id); $sql.= "AND pc.categorias_id=".$rs['categorias_id']." "; } $sql.= "ORDER BY p.productos_orden ASC LIMIT 1 "; //echo $sql; $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if(!$rs) return null; return $rs['productos_id']; } function getPrevID($productos_id = false, $productos_orden = false, $filtrado_categoria = true) { $sql = "SELECT p.productos_id FROM productos p "; $sql.= "JOIN productos_categorias pc ON pc.productos_id=p.productos_id "; $sql.= "WHERE p.productos_orden < ".$productos_orden." "; if($filtrado_categoria) { $rs = $this->getDatos($productos_id); $sql.= "AND pc.categorias_id=".$rs['categorias_id']." "; } $sql.= "ORDER BY p.productos_orden DESC LIMIT 1"; $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if(!$rs) return null; return $rs['productos_id']; } function getDetalles($productos_id, $idiomas_id){ $sql = "SELECT productos_nombre, productos_descripcion, productos_observaciones, productos_url, productos_color FROM productos_detalles WHERE productos_id=".$productos_id." AND idiomas_id=".$idiomas_id; $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); return ($rs); } function getDatosRs($categorias_id) { $sql = "SELECT o.idOferta, o.imagen, DATE_FORMAT(o.fechaInicio, '%d/%m/%Y') as fechaInicio, DATE_FORMAT(o.fechaFin, '%d/%m/%Y') as fechaFin, DATE_FORMAT(o.fechaAlta, '%d/%m/%Y') as fechaAlta, o.activo FROM ofertas o WHERE o.idOferta=".$idOferta; $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); return $rs; } function getImagenesRs($id){ $sql = "SELECT productos_galerias_id, productos_id, productos_imagen, productos_imagen_ancho, productos_imagen_alto, productos_imagen_visitas, productos_imagen_kb, productos_imagen_type FROM productos_galerias WHERE productos_id=".$id." ORDER BY productos_galerias_id"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); return $rs; } function getTextosOferta($idOferta, $idIdioma, &$descripcion_breve, &$texto) { $sql = "SELECT id, idIdioma, idOferta, descripcion_breve, texto FROM ofertas_idiomas WHERE idOferta=".$idOferta." AND idIdioma=".$idIdioma; $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if($rs){ $descripcion_breve = $rs['descripcion_breve']; $texto = $rs['texto']; } } function getDatosIdioma($categorias_id, $idiomas_id) { $sql = "SELECT c.categorias_id, c.categorias_id_padre, c.categorias_ordenacion, c.categorias_imagen, cd.categorias_nombre, cd.categorias_descripcion, DATE_FORMAT(c.categorias_fecha_alta, '%d/%m/%Y') as categorias_fecha_alta, DATE_FORMAT(c.categorias_fecha_modificacion, '%d/%m/%Y') as categorias_fecha_modificacion, c.categorias_activo FROM categorias c INNER JOIN categorias_detalles cd ON c.categorias_id=cd.categorias_id WHERE c.categorias_id=".$categorias_id." AND cd.idiomas_id=".$idiomas_id; $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if($rs) { $this->categorias_id = $categorias_id; $this->categorias_id_padre = $rs['categorias_id_padre']; $this->categorias_ordenacion = $rs['categorias_ordenacion']; $this->categorias_imagen = $rs['categorias_imagen']; $this->categorias_fecha_alta = $rs['categorias_fecha_alta']; $this->categorias_fecha_modificacion = $rs['categorias_fecha_modificacion']; $this->categorias_activo = $rs['categorias_activo']; $this->categorias_nombre = $rs['categorias_nombre']; $this->categorias_descripcion = $rs['categorias_descripcion']; } } function getCategoriasActivasIdioma($idiomas_id){ $sql = "SELECT c.categorias_id, c.categorias_id_padre, c.categorias_ordenacion, c.categorias_imagen, cd.categorias_nombre, cd.categorias_descripcion, DATE_FORMAT(c.categorias_fecha_alta, '%d/%m/%Y') as categorias_fecha_alta, DATE_FORMAT(c.categorias_fecha_modificacion, '%d/%m/%Y') as categorias_fecha_modificacion, c.categorias_activo FROM categorias c INNER JOIN categorias_detalles cd ON c.categorias_id=cd.categorias_id WHERE c.activo='S' AND cd.idiomas_id=".$idiomas_id; $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); return ($rs); } function getDatosCategoriaIdioma($categorias_id, $idiomas_id){ $sql = "SELECT c.categorias_id, c.categorias_id_padre, c.categorias_ordenacion, c.categorias_imagen, cd.categorias_nombre, cd.categorias_descripcion, DATE_FORMAT(c.categorias_fecha_alta, '%d/%m/%Y') as categorias_fecha_alta, DATE_FORMAT(c.categorias_fecha_modificacion, '%d/%m/%Y') as categorias_fecha_modificacion, c.categorias_activo FROM categorias c "; $sql.= "INNER JOIN categorias_detalles cd ON c.categorias_id=cd.categorias_id "; $sql.= "INNER JOIN idiomas i ON cd.idiomas_id=i.idiomas_id "; $sql.= "WHERE c.categorias_id=".$categorias_id." AND i.idiomas_id=".$idiomas_id; $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); return ($rs); } function getCategoriasProducto($productos_id){ $ret = array(); $sql = "SELECT categorias_id FROM productos_categorias WHERE productos_id=".$productos_id; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); if($rs) { foreach($rs as $k=>$v){ $ret[$k] = $v['categorias_id']; } } return $ret; } function getOptionsComboCategorias($prefix="",$html_sub_options=""){ $sql = "SELECT c.categorias_id, c.categorias_id_padre, cd.categorias_nombre FROM categorias c INNER JOIN categorias_detalles cd ON c.categorias_id=cd.categorias_id INNER JOIN idiomas i ON cd.idiomas_id=i.idiomas_id WHERE i.idiomas_default='S' AND c.categorias_id_padre IS NULL order by c.categorias_ordenacion"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); if($rs) { $cont=0; foreach($rs as $key=>$val){ if($id_excluir!=$val['categorias_id']){ $html.= ""; $html.= $this->getSubCategorias($val['categorias_id'],$prefix,$html_sub_options); } } } return $html; } function getSubCategorias($categorias_id,$prefix = "", $html_sub_options = ""){ $sql = "SELECT c.categorias_id, c.categorias_id_padre, cd.categorias_nombre FROM categorias c INNER JOIN categorias_detalles cd ON c.categorias_id=cd.categorias_id INNER JOIN idiomas i ON cd.idiomas_id=i.idiomas_id WHERE i.idiomas_default='S' AND c.categorias_id_padre=".$categorias_id." order by c.categorias_ordenacion"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); if($rs) { $cont=0; foreach($rs as $key=>$val){ if($id_excluir!=$val['categorias_id']){ $html.= ""; $html.= $this->getSubCategoriasNivel3($val['categorias_id'],$prefix,$html_sub_options.$html_sub_options); } } } return $html; } function getSubCategoriasNivel3($categorias_id,$prefix = "", $html_sub_options = ""){ $sql = "SELECT c.categorias_id, c.categorias_id_padre, cd.categorias_nombre FROM categorias c INNER JOIN categorias_detalles cd ON c.categorias_id=cd.categorias_id INNER JOIN idiomas i ON cd.idiomas_id=i.idiomas_id WHERE i.idiomas_default='S' AND c.categorias_id_padre=".$categorias_id." order by c.categorias_ordenacion"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); if($rs) { $cont=0; foreach($rs as $key=>$val){ if($id_excluir!=$val['categorias_id']){ $html.= ""; } } } return $html; } function getComboCategorias($nombre_combo, $prefix="", $id_excluir=""){ $sql = "SELECT c.categorias_id, c.categorias_id_padre, cd.categorias_nombre FROM categorias c INNER JOIN categorias_detalles cd ON c.categorias_id=cd.categorias_id INNER JOIN idiomas i ON cd.idiomas_id=i.idiomas_id WHERE i.idiomas_default='S' AND c.categorias_id_padre IS NULL order by c.categorias_ordenacion"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); $html = ""; return $html; } function getIdiomaDefault(){ $sql = "SELECT idiomas_id FROM idiomas WHERE idiomas_activo='S' AND idiomas_default='S'"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); return $rs['idiomas_id']; } function getIdiomasNoDefault(){ $sql = "SELECT idiomas_id, idiomas_nombre, idiomas_imagen FROM idiomas WHERE idiomas_default='N'"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); return $rs; } function getIdiomas(){ $sql = "SELECT idiomas_id, idiomas_nombre, idiomas_imagen FROM idiomas ORDER BY idiomas_default DESC"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); return $rs; } function getCamposFamiliasTipoByIdProducto($id, $id_idioma){ $sql = "SELECT CONCAT('atributo_',fa.familias_atributos_id,'_',fai.idiomas_id) as atributo, fai.idiomas_id, fa.familias_atributos_id, p.productos_familias_tipos_id, fai.familias_atributos_nombre, fat.familias_atributos_tipos_tipo FROM productos p "; $sql.= "INNER JOIN familias_atributos fa ON p.productos_familias_tipos_id = fa.familias_tipos_id "; $sql.= "INNER JOIN familias_atributos_idiomas fai ON fa.familias_atributos_id=fai.familias_atributos_id "; $sql.= "INNER JOIN idiomas i ON fai.idiomas_id=i.idiomas_id AND i.idiomas_id=".$id_idioma." "; $sql.= "INNER JOIN familias_atributos_tipos fat ON fa.familias_atributos_tipos_id=fat.familias_atributos_tipos_id "; $sql.= "AND p.productos_id = ".$id." ORDER BY fa.familias_atributos_ordenacion"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); return $rs; } function getCamposFamiliasTipoByIdTipo($idTipo, $id_idioma){ $sql = "SELECT fa.familias_atributos_tipos_stock, i.idiomas_imagen, fa.familias_atributos_tipos_id, CONCAT('atributo_',fa.familias_atributos_id,'_',fai.idiomas_id) as atributo, fai.idiomas_id, fa.familias_atributos_id, fai.familias_atributos_nombre, fat.familias_atributos_tipos_tipo, fa.familias_atributos_icono FROM familias_atributos fa "; $sql.= "INNER JOIN familias_atributos_idiomas fai ON fa.familias_atributos_id=fai.familias_atributos_id "; $sql.= "INNER JOIN idiomas i ON fai.idiomas_id=i.idiomas_id AND i.idiomas_id=".$id_idioma." "; $sql.= "INNER JOIN familias_atributos_tipos fat ON fa.familias_atributos_tipos_id=fat.familias_atributos_tipos_id "; $sql.= "AND fa.familias_tipos_id = ".$idTipo." ORDER BY fa.familias_atributos_ordenacion"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); return $rs; } function getExtension($tipo_archivo) { if(($tipo_archivo=="image/gif") || ($tipo_archivo=="image/pjpeg") || ($tipo_archivo=="image/jpeg") ){ switch($tipo_archivo){ case "image/gif": $extension = ".gif"; break; case "image/pjpeg": $extension = ".jpg"; break; case "image/jpeg": $extension = ".jpg"; break; default: $extension = ".jpg"; } } return $extension; } function insertaPreciosRangos($productos_id, $arr_rangos, $arr_precios){ $sql = "DELETE FROM productos_precios_rangos WHERE productos_id = ".$productos_id; $res = $this->con->ejecutar_consulta($sql); $cont = 0; if(is_array($arr_rangos)){ foreach($arr_rangos as $key=>$val){ if($val!=""){ $sql = "INSERT INTO productos_precios_rangos (productos_id, productos_precios_rangos, productos_precios_rangos_precio) VALUES ("; $sql.= $productos_id.", ".$val.", '".$arr_precios[$cont]."') "; $res = $this->con->ejecutar_consulta($sql); } $cont+=1; } } } function borraPreciosRangos($productos_id){ $sql = "DELETE FROM productos_precios_rangos WHERE productos_id = ".$productos_id; $res = $this->con->ejecutar_consulta($sql); } function getValueAtributo($productos_id, $idiomas_id, $productos_atributos_id){ $sql = "SELECT valor, valor_text FROM productos_atributos WHERE productos_id = ".$productos_id." AND idiomas_id=".$idiomas_id." AND productos_atributos_id=".$productos_atributos_id; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); $res = ""; if($rs){ $res = ($rs['valor']!="")?$rs['valor']:$rs['valor_text']; } return $res; } function existeReferencia($ref){ $sql = "SELECT 1 FROM productos WHERE productos_referencia='".$ref."'"; $res = $this->con->ejecutar_consulta($sql); $rs = $this->con->consultar(); if($rs){ return true; }else{ return false; } } function getListado($categorias_id, $fabricantes_id, $idiomas_id){ $sql = "SELECT p.productos_id, p.productos_materiales_id, pc.categorias_id, cd.categorias_nombre, pd.productos_nombre, pd.productos_descripcion, pd.productos_observaciones, pd.productos_url, p.productos_referencia, p.productos_modelo, p.productos_cantidad, p.productos_precio, p.productos_precio_anterior, DATE_FORMAT(p.productos_fecha_alta, '%d/%m/%Y') as productos_fecha_alta, DATE_FORMAT(p.productos_fecha_modificacion, '%d/%m/%Y') as productos_fecha_modificacion, DATE_FORMAT(p.productos_fecha_disponibilidad, '%d/%m/%Y') as productos_fecha_disponibilidad, DATE_FORMAT(p.productos_fecha_caducidad, '%d/%m/%Y') as productos_fecha_caducidad, p.productos_peso, p.productos_ancho, p.productos_alto, p.productos_fondo, p.productos_diametro, p.productos_estados_id, p.productos_fabricantes_id, p.productos_familias_tipos_id, p.productos_activo, p.productos_id_padre, p.productos_iva FROM productos p INNER JOIN productos_categorias pc ON p.productos_id=pc.productos_id INNER JOIN categorias_detalles cd ON pc.categorias_id=cd.categorias_id AND cd.idiomas_id=".$idiomas_id." INNER JOIN productos_detalles pd ON p.productos_id=pd.productos_id "; if($categorias_id!=""||$fabricantes_id!=""){ $sql.= "WHERE 1 "; $sql.= ($categorias_id!="")?" AND pc.categorias_id=".$categorias_id:""; $sql.= ($fabricantes_id!="")?" AND p.productos_fabricantes_id=".$fabricantes_id:""; } $this->con->ejecutar_consulta($sql); $rs = $this->con->result_array_asoc(); return $rs; } } ?> Output has already been sent to the browser at /var/www/vhosts/tempobuy.com/httpdocs/adshop_core/includes/productos.class.php:1042. Please make sure the command $xajax->processRequest() is placed before this.