Example #1
0
 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();
 }
Example #2
0
 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');
 }