/** * @return toba_cargador */ static function instancia() { if (!isset(self::$instancia)) { self::$instancia = new toba_cargador(); } return self::$instancia; }
/** * Carga un asistente a partir de un molde de generacion * @return toba_asistente */ static function cargar_por_molde($id_molde_proyecto, $id_molde, $dr_molde) { $tipo_molde = self::get_asistente_molde($id_molde_proyecto, $id_molde); $datos = toba_cargador::instancia()->get_metadatos_extendidos(array('proyecto' => $id_molde_proyecto, 'componente' => $id_molde), $tipo_molde); $clase = $datos['molde']['clase']; return new $clase($datos, $dr_molde); }
function ini() { $clave = array('componente' => '1000127', 'proyecto' => 'toba_testing'); $metadatos = toba_cargador::instancia()->get_metadatos_extendidos($clave, 'toba_ei_formulario'); $nuevo_ef = array('identificador' => 'nuevo_ef', 'columnas' => 'nuevo_ef', 'obligatorio' => 1, 'elemento_formulario' => 'ef_editable', 'etiqueta' => 'NUEVO!!!', 'descripcion' => 'Este ef se añadio dinámicamente', 'inicializacion' => '', 'colapsado' => 0, 'oculto_relaja_obligatorio' => 0); $metadatos['_info_formulario_ef'] = array(); $metadatos['_info_formulario_ef'][] = $nuevo_ef; toba_cargador::instancia()->set_metadatos_extendidos($metadatos, $clave); }
/** * Retorna la definicion compilada de un componente */ static function get_metadatos_compilados($id, $item = false) { //Chequea si no se redefinieron en runtime $extendidos = toba_cargador::instancia()->get_metadatos_redefinidos($id); if (isset($extendidos)) { return $extendidos; } if ($item) { $clase = 'toba_mc_item__' . toba_manejador_archivos::nombre_valido($id['componente']); } else { $clase = 'toba_mc_comp__' . $id['componente']; } return call_user_func(array($clase, 'get_metadatos')); }
function conf__pant_generacion() { $archivo_php = new toba_archivo_php($this->get_path_archivo()); $codigo_existente = null; if (!$archivo_php->esta_vacio()) { $codigo_existente = $archivo_php->get_codigo(); } $molde_clase = $this->get_metaclase()->get_molde_subclase(); $metodos = $molde_clase->get_lista_metodos($codigo_existente); $grupos = array(); //-- Agrupamos los metodos segun dependencia y tipo foreach ($metodos as $metodo) { $elemento = $metodo['elemento']; $id = $metodo['id']; $grupo = $elemento->get_grupo(); if ($elemento instanceof toba_codigo_metodo_js) { $grupo = 'Javascript'; } $grupos[$grupo][$id] = $elemento; } //-- Agrupamos por javascript // Se definen los EFs del formulario en runtime. $clave = array('componente' => '2291', 'proyecto' => 'toba_editor'); $metadatos = toba_cargador::instancia()->get_metadatos_extendidos($clave, 'toba_ei_formulario'); $ef_base = array('obligatorio' => 0, 'elemento_formulario' => 'ef_checkbox', 'descripcion' => '', 'colapsado' => 0, 'oculto_relaja_obligatorio' => 0); $metadatos['_info_formulario_ef'] = array(); $i = 0; foreach ($grupos as $id_grupo => $metodos) { if ($id_grupo == '') { $id_grupo = 'Propios'; } $nombre_grupo = "{$id_grupo} <div><a href='javascript: cambiar_grupo(\"{$id_grupo}\", true);'>todos</a> / <a href='javascript: cambiar_grupo(\"{$id_grupo}\", false);''>ninguno</a></div>"; $separador = $ef_base; $separador['identificador'] = "sep_{$i}"; $separador['columnas'] = $separador['identificador']; $separador['etiqueta'] = $nombre_grupo; $separador['elemento_formulario'] = 'ef_barra_divisora'; $metadatos['_info_formulario_ef'][] = $separador; foreach ($metodos as $id => $metodo) { $ef = $ef_base; $ef['identificador'] = 'metodo_' . $id_grupo . "_{$id}"; $ef['columnas'] = $ef['identificador']; $ef['etiqueta'] = $metodo->get_descripcion(); $ef['descripcion'] = $metodo->get_doc(); $metadatos['_info_formulario_ef'][] = $ef; } $i++; } toba_cargador::instancia()->set_metadatos_extendidos($metadatos, $clave); }
private function compilar_operaciones() { $this->manejador_interface->mensaje('Operaciones resumidas', false); foreach (toba_info_editores::get_lista_items() as $item) { $clases_creadas = array(); //Indice para proteger no crear una dos veces $php = "<?php\n"; $directorio = $this->get_dir_componentes_compilados() . '/oper'; toba_manejador_archivos::crear_arbol_directorios($directorio); $nombre_archivo = toba_manejador_archivos::nombre_valido('toba_mc_oper__' . $item['id']); $arbol = toba_info_editores::get_arbol_componentes_item($item['proyecto'], $item['id']); foreach ($arbol as $componente) { $tipo = $componente['tipo']; $prefijo_clase = $tipo == 'toba_item' ? 'toba_mc_item__' : 'toba_mc_comp__'; $nombre_clase = toba_manejador_archivos::nombre_valido($prefijo_clase . $componente['componente']); if (!in_array($nombre_clase, $clases_creadas)) { $clase = new toba_clase_datos($nombre_clase); $metadatos = toba_cargador::instancia()->get_metadatos_extendidos($componente, $tipo, $this->db); $clase->agregar_metodo_datos('get_metadatos', $metadatos); $php .= $clase->get_contenido(); $clases_creadas[] = $nombre_clase; } } $php .= "\n?>"; file_put_contents($directorio . '/' . $nombre_archivo . '.php', $php); $this->manejador_interface->progreso_avanzar(); } $this->manejador_interface->progreso_fin(); }
/** * Destruye los componentes asociados a la operación y el hilo */ function finalizar_objetos() { //--- Finalizo objetos TOBA ---------- //echo "Empiezo a finalizar los objetos...<br>"; for ($a = 0; $a < count($this->objetos); $a++) { $this->objetos[$a]->destruir(); } toba_cargador::instancia()->destruir(); //--- Finalizo objetos BASICOS ------- toba::memoria()->destruir(); //dump_session(); // Guardo cronometro }
protected function add_metadata($tipo, &$componentes, $borrados = false) { $res = array(); foreach ($componentes as $id) { $aux = array('id' => $id, 'tipo' => $tipo); if (!$borrados) { $aux['metadata'] = toba_cargador::instancia()->get_metadatos_simples_diff($id, $tipo, $this->db); } $res[] = $aux; } return $res; }