function ini() { $this->proyecto = toba_editor::get_proyecto_cargado(); //Obtengo el proyecto cargado en el editor if ($editable = toba::zona()->get_editable()) { $this->fuente = $editable[1]; //La fuente a editar viene por la zona if (!$this->dep('datos')->esta_cargada()) { $this->dep('datos')->cargar(array('fuente_datos' => $this->fuente, 'proyecto' => $this->proyecto)); $datos = $this->dep('datos')->get(); // Si no hay lote, saco la pantalla de la prueba if (trim($datos['lote']) == '') { $this->set_pantalla('sql'); //Redireccion temprana a la pantalla correcta $this->pantalla()->eliminar_tab('test'); } // Seteo elegidos if (isset($datos['seleccionados']) && $datos['seleccionados'] != '') { $this->s__sqls_elegidos = explode(',', $datos['seleccionados']); } // Seteo los parametros del TEST if (isset($datos['parametros']) && $datos['parametros'] != '') { $this->s__detalle_test = unserialize($datos['parametros']); } } } else { throw new toba_error('ERROR: Esta operacion debe ser llamada desde la zona de fuentes'); } }
function evt__guardar() { $this->dependencia('datos')->sincronizar(); $clave = $this->dependencia('datos')->get_clave_valor(0); toba::zona()->cargar(array($clave['proyecto'], $clave['usuario_grupo_acc'])); admin_util::refrescar_barra_lateral(); }
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 ini() { if ($editable = toba::zona()->get_editable()) { $this->fuente = $editable[1]; } else { throw new toba_error('ERROR: Esta operacion debe ser llamada desde la zona de fuentes'); } }
function ini() { if ($editable = toba::zona()->get_editable()) { $clave['proyecto'] = toba_editor::get_proyecto_cargado(); $clave['consulta_php'] = $editable[1]; $this->carga_ok = $this->dependencia('datos')->cargar($clave); } }
function ini__operacion() { $zona = toba::zona(); if (!$zona->cargada()) { throw new toba_error('La zona de carpetas no fue cargada'); } list($proyecto, $item) = $zona->get_editable(); $this->dep('datos')->cargar(array('padre' => $item, 'padre_proyecto' => $proyecto)); }
function ini() { if ($editable = toba::zona()->get_editable()) { $clave = array(); $clave['proyecto'] = toba_editor::get_proyecto_cargado(); $clave['servicio_web'] = $editable[1]; $this->carga_ok = $this->dependencia('datos')->cargar($clave); } }
function ini() { if ($editable = toba::zona()->get_editable()) { $clave['proyecto'] = toba_editor::get_proyecto_cargado(); $clave['fuente_datos'] = $editable[1]; if (!$this->dependencia('datos')->esta_cargada()) { $this->s__carga_ok = $this->dependencia('datos')->cargar($clave); } } }
function evt__procesar() { $this->dependencia('datos')->sincronizar(); if (!isset($this->usuario_actual)) { //Si era un alta $basicas = $this->dependencia('datos')->tabla('basicas')->get(); $this->usuario_actual = $basicas['usuario']; //Hay que avisarle a la zona toba::zona()->cargar($this->usuario_actual); } }
function evt__eliminar() { $opciones = array(); foreach ($this->lista_comp as $comp) { $opciones[$comp['componente']] = array('eliminar' => $comp['eliminar'], 'eliminar_archivo' => $comp['eliminar_archivo']); } $this->operacion->eliminar($this->eliminar_item, $opciones, true); toba::notificacion()->agregar('Los componentes seleccionados han sido eliminado', 'info'); if ($this->eliminar_item) { toba::zona()->resetear(); } }
function conf__form_molde() { //-- Asume los nombres a partir de la operación $datos = $this->dep('datos')->tabla('molde')->get(); $nombre = strtolower(toba::zona()->get_info('nombre')); if (!isset($datos['prefijo_clases'])) { $datos['prefijo_clases'] = '_' . toba_texto::nombre_valido_clase($nombre); } if (!isset($datos['carpeta_archivos'])) { $datos['carpeta_archivos'] = toba_texto::nombre_valido_clase($nombre); } return $datos; }
function conf__opciones() { if (!isset($this->opciones)) { $this->opciones = array(); list($proyecto_actual, $item_actual) = toba::zona()->get_editable(); $id = array('proyecto' => $proyecto_actual, 'componente' => $item_actual); $sql = 'SELECT pagina_tipo_proyecto, pagina_tipo FROM apex_item WHERE proyecto = ' . quote($proyecto_actual) . ' AND item = ' . quote($item_actual); $datos = toba::db()->consultar_fila($sql); $this->opciones['proyecto'] = $proyecto_actual; $this->opciones['pagina_tipo_proyecto'] = $datos['pagina_tipo_proyecto']; $this->opciones['pagina_tipo'] = $datos['pagina_tipo']; } return $this->opciones; }
function ini() { $datos = toba::zona()->get_info(); $this->recuperar_tipo_elemento(); $this->recuperar_id_entidad($datos); $info = $this->get_metaclase(); if (!isset($this->s__modo_pers)) { $hay_personalizacion = toba_personalizacion::get_personalizacion_iniciada(toba_editor::get_proyecto_cargado()); $this->s__subclase_orig = toba::memoria()->get_parametro('subclase_pers'); //Indica el nombre de la clase que se personaliza $this->s__modo_pers = $hay_personalizacion && !is_null($this->s__subclase_orig); } if (!$this->s__modo_pers) { if ($info->get_subclase_archivo() != '' && $info->get_subclase_nombre() != '') { $this->s__path_relativo = dirname($info->get_subclase_archivo()); if ($this->s__path_relativo == '.') { $this->s__path_relativo = ''; } $this->s__datos_nombre = array('nombre' => basename($info->get_subclase_archivo(), '.php')); $this->set_pantalla('pant_generacion'); } } }
/** * Elimina opcionalmente un conjunto de componentes pertencientes a la operación * * @param boolean $borrar_item Debe borrar el item una vez borradas sus dependencias * @param array $opciones Arreglo 'id_componente' => array('eliminar'=>true/false, 'eliminar_archivo'=>true/false) * @param boolean $con_transaccion Debe enmarcar la eliminación en una transaccion */ function eliminar($borrar_item, $opciones, $con_transaccion = true) { $item = toba::zona()->get_info(); $db = toba_contexto_info::get_db(); $arbol_componentes = array_slice($this->arbol, 1); //--- Se eliminan metadatos if ($con_transaccion) { $db->abrir_transaccion(); } foreach ($arbol_componentes as $comp) { $opcion = $opciones[$comp['componente']]; if ($opcion['eliminar']) { //--- Elimina metadatos $id_dr = toba_info_editores::get_dr_de_clase($comp['tipo']); $componente = array('proyecto' => $id_dr[0], 'componente' => $id_dr[1]); $dr = toba_constructor::get_runtime($componente, 'toba_datos_relacion', false); $dr->inicializar(); $dr->persistidor()->desactivar_transaccion(); $dr->resetear(); $dr->cargar(array('proyecto' => $this->id_proyecto, 'objeto' => $comp['componente'])); $dr->eliminar_todo(); } } //--Borro el item if ($borrar_item) { $id_dr = toba_info_editores::get_dr_de_clase('toba_item'); $componente = array('proyecto' => $id_dr[0], 'componente' => $id_dr[1]); $dr = toba_constructor::get_runtime($componente, 'toba_datos_relacion', false); $dr->inicializar(); $dr->persistidor()->desactivar_transaccion(); $dr->resetear(); $dr->cargar(array('proyecto' => $this->id_proyecto, 'item' => $this->id_item)); $dr->eliminar_todo(); } if ($con_transaccion) { $db->cerrar_transaccion(); } //--- Se eliminan subclases foreach ($arbol_componentes as $comp) { $opcion = $opciones[$comp['componente']]; if ($opcion['eliminar'] && $opcion['eliminar_archivo']) { $archivo = $this->get_path_archivo($comp); unlink($archivo); } } }
function evt__generar() { $this->asistente()->ejecutar(toba::zona()->get_info('item'), $this->s__opciones_generacion); admin_util::refrescar_editor_item(toba::zona()->get_info('item')); }
function evt__procesar() { if (!$this->componente_existe_en_db()) { //Seteo los datos asociados al uso de este editor $fijos = array('proyecto' => toba_editor::get_proyecto_cargado(), 'clase_proyecto' => 'toba', 'clase' => $this->get_clase_actual()); $this->get_entidad()->tabla('base')->set($fijos); } //Sincronizo el DBT $this->get_entidad()->sincronizar(); if ($this->componente_existe_en_db()) { //Algun cambio de valor del componente puede cambiar el display de la zona toba::zona()->recargar(); } // Seteo el objeto INTERNO $datos = $this->get_entidad()->tabla('base')->get(); $this->set_objeto(array('proyecto' => $datos['proyecto'], 'objeto' => $datos['objeto'])); }
function evt__cuadro__cargar($seleccion) { toba::zona()->cargar($seleccion); }
<?php $editable = toba::zona()->get_editable(); define('separador_camino', '_%_'); $grupo = $editable[1]; $arbol = new toba_catalogo_items(toba_editor::get_proyecto_cargado()); $arbol->cargar_todo(); $arbol->sacar_publicos(); $maximo = $arbol->profundidad(); $formulario = 'permisos'; $boton_post = 'asignar_permisos'; $boton_post_nombre = 'Guardar'; $prefijo_items = 'item_'; //Prefijo de los checkbox if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST[$boton_post])) { if ($_POST[$boton_post] == $boton_post_nombre) { //SI hay un POST, y estuvo disparado por este formulario $items = array(); foreach ($_POST as $etiqueta => $valor) { if (substr($etiqueta, 0, strlen($prefijo_items)) == $prefijo_items) { $nodo = trim(substr($etiqueta, strlen($prefijo_items))); $items[] = $nodo; } } $arbol->cambiar_permisos($items, $grupo); echo ei_mensaje('Los permisos han sido actualizados correctamente'); } } //-------------------------------------------------------------------------- //--------------< INTERFACE DE ASIGNACION de PERMISOS >------------------- //--------------------------------------------------------------------------
function evt__procesar() { abrir_transaccion('instancia'); $directorio = false; if ($this->datos['con_subclases']) { $directorio = $this->datos['carpeta_subclases']; } list($proyecto_actual, $comp_actual) = toba::zona()->get_editable(); $id = array('proyecto' => $proyecto_actual, 'componente' => $comp_actual); $info = toba_constructor::get_info($id, null, $this->datos['profundidad']); $nuevos_datos = array('anexo_nombre' => $this->datos['anexo_nombre']); $clon = $info->clonar($nuevos_datos, $directorio, false); //--- Asignación if (isset($this->destino)) { $asignador = new asignador_objetos($clon, $this->destino); $asignador->asignar(); } cerrar_transaccion('instancia'); admin_util::redireccionar_a_editor_objeto($clon['proyecto'], $clon['objeto']); }
function ini__operacion() { list($proyecto, $fuente) = toba::zona()->get_editable(); $this->s__catalogo = new catalogo_tablas($proyecto, $fuente); $this->s__catalogo->cargar(); }
/** * Retorna el querystring propagando la zona actual (si es que hay y está cargada) * @return string */ function get_qs_zona() { $qs = ''; $solicitud_actual = toba::solicitud(); if ($solicitud_actual->hay_zona() && toba::zona()->cargada()) { if (toba::zona()->get_modo_url()) { $editable = $this->variable_a_url(toba::zona()->get_editable()); $qs .= '&' . apex_hilo_qs_zona . "=" . $editable; } else { $qs .= '&' . apex_hilo_qs_zona . '=1'; toba::zona()->propagar_id(); } } return $qs; }
function evt__eliminar() { $this->get_entidad()->eliminar(); toba::notificacion()->agregar('La operación ha sido eliminada', 'info'); toba::zona()->resetear(); admin_util::refrescar_editor_item(); }
/** * Retorna el html y js localizado de un componente y sus dependencias. * Pensado como respuesta a una solicitud AJAX */ protected function servicio__html_parcial($objetos) { echo "[--toba--]"; //-- Se reenvia el encabezado $this->tipo_pagina()->barra_superior(); echo "</div>"; //--- Parte superior de la zona if (toba::solicitud()->hay_zona() && toba::zona()->cargada()) { toba::zona()->generar_html_barra_superior(); } //--- Se incluyen botones en la botonera de la operacion $this->generar_html_botonera_sup($objetos); echo "[--toba--]"; $ok = true; try { //--- Se envia el HTML foreach ($objetos as $objeto) { $objeto->generar_html(); } } catch (toba_error $e) { $ok = false; toba::logger()->error($e, 'toba'); $mensaje = $e->get_mensaje(); $mensaje_debug = null; if (toba::logger()->modo_debug()) { $mensaje_debug = $e->get_mensaje_log(); } toba::notificacion()->error($mensaje, $mensaje_debug); } echo "[--toba--]"; //-- Se envia info de debug if (toba_editor::modo_prueba()) { $item = toba::solicitud()->get_datos_item('item'); $accion = toba::solicitud()->get_datos_item('item_act_accion_script'); toba_editor::generar_zona_vinculos_item($item, $accion, false); } echo "[--toba--]"; //--- Se envian los consumos js $consumos = array(); foreach ($objetos as $objeto) { $consumos = array_merge($consumos, $objeto->get_consumo_javascript()); } echo "toba.incluir(" . toba_js::arreglo($consumos, false) . ");\n"; echo "[--toba--]"; //--- Se envia el javascript //Se actualiza el vinculo del form $autovinculo = toba::vinculador()->get_url(); echo "document.formulario_toba.action='{$autovinculo}'\n"; toba::vinculador()->generar_js(); toba_js::cargar_definiciones_runtime(); if ($ok) { try { foreach ($objetos as $objeto) { //$objeto->servicio__html_parcial(); $objeto_js = $objeto->generar_js(); echo "\nwindow.{$objeto_js}.iniciar();\n"; } } catch (toba_error $e) { toba::logger()->error($e, 'toba'); $mensaje_debug = null; if (toba::logger()->modo_debug()) { $mensaje_debug = $e->get_mensaje_log(); } toba::notificacion()->error($e->get_mensaje(), $mensaje_debug); } } toba::notificacion()->mostrar(false); toba::acciones_js()->generar_js(); $this->generar_analizador_estadistico(); }