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(); }
function parsear_editores(toba_modelo_instancia $instancia) { toba_contexto_info::set_db($instancia->get_db()); //--- Se busca el CI asociado a cada clase $sql = "SELECT\n\t\t\t\t\tc.clase,\n\t\t\t\t \to.proyecto,\n\t\t\t\t\to.objeto\n\t\t\t\tFROM\n\t\t\t\t\tapex_clase c,\n\t\t\t\t\tapex_item_objeto io,\n\t\t\t\t\tapex_objeto o\n\t\t\t\tWHERE\n\t\t\t\t\tc.clase IN ('" . implode("','", toba_info_editores::get_lista_tipo_componentes()) . "')\tAND\n\t\t\t\t\tc.proyecto = 'toba' AND\n\t\t\t\t\tc.editor_item = io.item AND\t\t\t\t-- Se busca el item editor\n\t\t\t\t\tc.editor_proyecto = io.proyecto AND\n\t\t\t\t\tio.objeto = o.objeto AND\t\t\t\t-- Se busca el CI del item\n\t\t\t\t\tio.proyecto = o.proyecto AND\n\t\t\t\t\to.clase = 'toba_ci'"; $rs = $instancia->get_db()->consultar($sql); $clase_php = new toba_clase_datos("toba_datos_editores"); foreach ($rs as $datos) { //--- Se buscan las pantallas asociadas a un CI especifico $this->manejador_interface->mensaje("Procesando " . $datos['clase'] . "..."); $proyecto = $instancia->get_db()->quote($datos['proyecto']); $objeto = $instancia->get_db()->quote($datos['objeto']); $sql = "\n\t\t\t\tSELECT\n\t\t\t\t\tpant.identificador,\n\t\t\t\t\tpant.etiqueta,\n\t\t\t\t\tpant.imagen,\n\t\t\t\t\tpant.imagen_recurso_origen\n\t\t\t\tFROM\n\t\t\t\t\tapex_objeto_ci_pantalla pant\n\t\t\t\tWHERE\n\t\t\t\t\t\tpant.objeto_ci_proyecto = {$proyecto}\n\t\t\t\t\tAND pant.objeto_ci = {$objeto}\n\t\t\t\tORDER BY pant.orden\n\t\t\t"; $pantallas = $instancia->get_db()->consultar($sql); $clase_php->agregar_metodo_datos('get_pantallas_' . $datos['clase'], $pantallas); } $dir = toba_dir() . "/php/modelo/info"; $clase_php->guardar($dir . '/toba_datos_editores.php'); }