Viewing file: ci_dimensiones.php (5.72 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class ci_dimensiones extends toba_ci { protected $s__carga_ok;
function ini__operacion() { if ($editable = toba::zona()->get_editable()) { $clave['proyecto'] = toba_editor::get_proyecto_cargado(); $clave['dimension'] = $editable[1]; $this->s__carga_ok = $this->dependencia('datos')->cargar($clave); } }
function conf() { if (!$this->s__carga_ok) { $this->pantalla()->eliminar_evento('eliminar'); $this->pantalla()->eliminar_tab('pant_gatillos_d'); $this->pantalla()->eliminar_tab('pant_gatillos_i'); $this->pantalla()->eliminar_tab('pant_elementos'); } }
//---- Eventos CI -------------------------------------------------------
function evt__guardar() { $this->dependencia('datos')->sincronizar(); $clave = $this->dependencia('datos')->tabla('dimension')->get_clave_valor(0); $clave_carga[0] = $clave['proyecto']; $clave_carga[1] = $clave['dimension']; $zona = toba::solicitud()->zona(); if (! $zona->cargada()) { $zona->cargar(array_values($clave_carga)); } $this->s__carga_ok = true; admin_util::refrescar_barra_lateral(); }
function evt__eliminar() { $this->dependencia('datos')->eliminar_todo(); toba::solicitud()->zona()->resetear(); $this->s__carga_ok = false; admin_util::refrescar_barra_lateral(); } //------------------------------------------------------------------- //--- Propiedades basicas //-------------------------------------------------------------------
function evt__formulario__modificacion($datos) { $datos['proyecto'] = toba_editor::get_proyecto_cargado(); $this->dependencia('datos')->tabla('dimension')->set($datos); }
function conf__formulario($form) { if ($this->s__carga_ok) { $form->ef('fuente_datos')->set_solo_lectura(); $form->set_datos($this->dependencia('datos')->tabla('dimension')->get()); } }
//------------------------------------------------------------------- //--- GATILLOS //-------------------------------------------------------------------
function get_tablas_gatillo($tipo='directo') { $temp = $this->dependencia('datos')->tabla('gatillos')->get_filas(array('tipo'=>$tipo)); $utilizadas = array(); foreach ($temp as $t) { $utilizadas[] = $t['tabla_rel_dim']; } return $utilizadas; }
//--------- DIRECTOS --------------------------
function evt__form_gatillos_dir__modificacion($datos) { $tablas_utilizadas = $this->get_tablas_gatillo(); foreach (array_keys($datos) as $id) { $datos[$id]['tipo'] = 'directo'; } $this->dependencia('datos')->tabla('gatillos')->procesar_filas($datos); }
function conf__form_gatillos_dir($form) { $gatillos = $this->dependencia('datos')->tabla('gatillos')->get_filas(array('tipo'=>'directo')); $form->set_datos($gatillos); $form->set_tablas_utilizadas($this->get_tablas_gatillo('indirecto'), 'INDIRECTOS'); }
//--------- INDIRECTOS ------------------------
function conf__pant_gatillos_i($pantalla) { if (count($this->get_tablas_gatillo('directo')) == 0) { $pantalla->set_descripcion('Para definir gatillos INDIRECTOS, es necesario configurar previamente los gatillos DIRECTOS.'); $pantalla->eliminar_dep('form_gatillos_indir'); } }
function evt__form_gatillos_indir__modificacion($datos) { foreach (array_keys($datos) as $id) { $datos[$id]['tipo'] = 'indirecto'; //control de caminos validos entre tablas $camino = array(); $camino[] = $datos[$id]['tabla_rel_dim']; if (isset($datos[$id]['ruta_tabla_rel_dim'])) { //Contiene un camino intermedio $temp = explode(',', $datos[$id]['ruta_tabla_rel_dim']); $temp = array_map('trim', $temp); $camino = array_merge($camino, $temp); } $camino[] = $datos[$id]['tabla_gatillo']; //$datos[$id]['ruta_tabla_rel_dim'] = implode(',', $camino); } $this->dependencia('datos')->tabla('gatillos')->procesar_filas($datos); }
function conf__form_gatillos_indir($form) { $gatillos = $this->dependencia('datos')->tabla('gatillos')->get_filas(array('tipo'=>'indirecto')); $form->set_datos($gatillos); $form->set_tablas_utilizadas($this->get_tablas_gatillo('directo'), 'DIRECTOS'); }
//------------------------------------------------------------------- //-- Combos //-------------------------------------------------------------------
/** * Lista de tablas */ function get_tablas($fuente) { return toba::db($fuente['fuente_datos'], toba_editor::get_proyecto_cargado())->get_lista_tablas_y_vistas(); } /** * Lista de tablas que pueden usarse como gatillos * No puede utilizarse dos veces la misma tabla como gatillo, por eso las utilizadas se excluyen */ function get_tablas_gatillos() { $temp = $this->dependencia('datos')->tabla('dimension')->get(); $tablas = toba::db($temp['fuente_datos'], toba_editor::get_proyecto_cargado())->get_lista_tablas_y_vistas(); return $tablas; } /** * Lista de gatillos directos, para seņalarlos desde los indirectos */ function get_gatillos_directos() { $datos = $this->dependencia('datos')->tabla('gatillos')->get_filas(array('tipo'=>'directo')); $indirectos = array(); foreach ($datos as $dato) { $indirectos[]['gatillo_directo'] = $dato['tabla_rel_dim']; } return $indirectos; }
//------------------------------------------------------------------- //--- Previsualizacion de elementos //-------------------------------------------------------------------
function conf__elementos() { $datos = $this->dependencia('datos')->tabla('dimension')->get(); $id = explode(',', $datos['col_id']); $desc = explode(',', $datos['col_desc']); $sql = 'SELECT ' . implode(" || ' - ' || ", $id) . ' as clave, ' . implode(' || ', $desc) . " as descripcion FROM {$datos['tabla']} ORDER BY descripcion"; $datos = toba_editor::db_proyecto_cargado($datos['fuente_datos'])->consultar($sql); return $datos; } } ?>
|