Viewing file: ci_galerias_de_fotos.php (7.79 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php class ci_galerias_de_fotos extends toba_ci { protected $s__datos_filtro; protected $s__datos; protected $s__id_galeria; protected $s__seleccion;
//---- Filtro -----------------------------------------------------------------------
function conf__filtro(toba_ei_formulario $filtro) { if (isset($this->s__datos_filtro)) { $filtro->set_datos($this->s__datos_filtro); } }
function evt__filtro__filtrar($datos) { $this->s__datos_filtro = $datos; }
function evt__filtro__cancelar() { unset($this->s__datos_filtro); }
//---- Cuadro -----------------------------------------------------------------------
function conf__cuadro(toba_ei_cuadro $cuadro) { if (isset($this->s__datos_filtro)) { $filtro = $this->s__datos_filtro; $datos = $this->dep('datos')->tabla('galeria')->get_listado($filtro); }else{ $datos = $this->dep('datos')->tabla('galeria')->get_listado(); }
$cuadro->set_datos($datos); }
function evt__cuadro__eliminar($datos) { /* $this->dep('datos')->resetear(); $this->dep('datos')->cargar($datos); $this->dep('datos')->eliminar_todo(); $this->dep('datos')->resetear(); */
if($this->dep('datos')->tabla('galeria')->eliminar_galeria($datos['id_galeria'])){ toba::notificacion()->agregar("Galería ".$seleccion['id_galeria']." eliminada.", "info"); }
}
function evt__cuadro__seleccion($datos) { $this->s__id_galeria = $datos['id_galeria'];
$this->dep('datos')->cargar($datos); $this->set_pantalla('pant_edicion'); }
//---- Form galeria -------------------------------------------------------------------
function conf__formulario(toba_ei_formulario $form) { if ($this->dep('datos')->esta_cargada()) { $form->set_datos($this->dep('datos')->tabla('galeria')->get()); } else { $this->pantalla()->eliminar_evento('eliminar'); } }
function evt__formulario__modificacion($datos) { if (empty($this->s__id_galeria)) { $datos['fecha_alta'] = date("Y-m-d H:i:s"); $datos['usuario_alta'] = toba::usuario()->get_id(); }
$this->dep('datos')->tabla('galeria')->set($datos); }
//---- ML Fotos -------------------------------------------------------------------
function conf__ml_foto(toba_ei_formulario $form) { if ($this->dep('datos')->tabla('foto')->esta_cargada()) { //Entran a modificar $datos = $this->dep('datos')->tabla('foto')->get_filas(null, true); $form->set_datos($datos); } }
function evt__ml_foto__modificacion($array_datos) { $folder_path = "../www/fotos/";
if ($this->dep('datos')->esta_cargada()) { //Modificacion //ei_arbol($array_datos);
foreach($array_datos as $key=>$datos){
//if (isset($datos['apex_ei_analisis_fila']) and $datos['apex_ei_analisis_fila']=='M' and empty($datos['foto'])) {//no puede ser alta sin foto // toba::notificacion()->agregar("Archivo de foto es obligatorio.", "error"); // return; //}
if (isset($datos['apex_ei_analisis_fila']) and $datos['apex_ei_analisis_fila']=='B') {// es baja, armamos array de eliminacion de fotos
$fotos = $this->dep('datos')->tabla('foto')->get_fotos_galeria($this->s__id_galeria); foreach($fotos as $key_foto=>$foto){ $fotos[$key_foto]['eliminar'] = 1; $array_eliminar[$foto['id_foto']]; foreach($array_datos as $key2=>$datos2){ if ($datos2['apex_ei_analisis_fila']=='M' and $datos2['id_foto'] == $foto['id_foto']) {// es modificacion $fotos[$key_foto]['eliminar'] = 0;
unset($array_eliminar[$foto['id_foto']]); } } } foreach($fotos as $foto){ if ($foto['eliminar']==1) { $array_eliminar[]['foto']= $foto['foto']; } }
}else{
$permite_eliminar = true; //variable que indica que tiene al menos un dato M o A, de lo contrario, no tiene detalle
//foto---------------------------------------------- if (isset($datos['foto']) and !empty($datos['foto']['name'])) {// Mover la imagen al servidor. $nombre_foto = $key.'_'.$datos['foto']['name']; $destino= $folder_path.$nombre_foto; move_uploaded_file($datos['foto']['tmp_name'], $destino ) ; if ( is_file( $destino ) ){// Le asigno solo el nombre de la imagen para que se guarde en la base y no de error $array_datos[$key]['foto'] = $nombre_foto; } }elseif (isset($datos['foto']) and empty($datos['foto']['name'])) { $array_datos[$key]['foto'] = $datos['foto']['name']; }else{ //Mantener el valor de foto anterior $url= $this->dep('datos')->tabla('foto')->get_foto($datos['id_foto']); if(empty($url['foto'])){ $array_datos[$key]['foto'] = $datos['foto']['name']; }else{ $array_datos[$key]['foto'] = $url['foto']; } } //--------------------------------------------------------------
} }
//Si hay fotos para eliminar, las eliminamos fisicamente if(count($array_eliminar)>0 and $permite_eliminar){ foreach($array_eliminar as $foto){ if($this->dep('datos')->tabla('foto')->eliminar_archivo($foto['foto'])){ toba::notificacion()->agregar("Foto ".$foto['foto']." eliminada del disco.", "info"); }else{ toba::notificacion()->agregar("Error al intentar eliminar el archivo ".$foto['foto']." del disco.", "error"); } } }
} else { //agregar
foreach($array_datos as $key=>$datos){
//foto------------------------------------------------------- if (isset($datos['foto']) and !empty($datos['foto']['name'])) {// Mover foto al servidor. $nombre_foto = $key.'_'.$datos['foto']['name']; $destino= $folder_path.$nombre_foto; move_uploaded_file($datos['foto']['tmp_name'], $destino ) ; if ( is_file( $destino ) ){// Le asigno solo el nombre al foto para que se guarde en la base y no de error $array_datos[$key]['foto'] = $nombre_foto; } }else{ $array_datos[$key]['foto'] = $datos['foto']['name']; }
}
}
$this->dep('datos')->tabla('foto')->procesar_filas($array_datos); }
//---- FUNCIONES -------------------------------------------------------------------
function resetear() { $this->dep('datos')->resetear(); $this->set_pantalla('pant_seleccion'); }
//---- EVENTOS CI -------------------------------------------------------------------
function evt__agregar() { $this->set_pantalla('pant_edicion'); }
function evt__volver() { $this->resetear(); }
function evt__eliminar() { //$this->dep('datos')->eliminar_todo();
if($this->dep('datos')->tabla('galeria')->eliminar_galeria($this->s__id_galeria)){ toba::notificacion()->agregar("Galería ".$seleccion['id_galeria']." eliminada.", "info"); $this->resetear(); }
}
function evt__guardar() { $this->dep('datos')->sincronizar(); $this->resetear(); }
}
?>
|