/**
  *	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);
 }
Exemple #2
0
 /**
  * @return toba_cargador
  */
 static function instancia()
 {
     if (!isset(self::$instancia)) {
         self::$instancia = new toba_cargador();
     }
     return self::$instancia;
 }
Exemple #3
0
 /**
  * Retorna una fuente de datos
  *
  * @param string $id Id. de la fuente
  * @param string $proyecto Proyecto al que pertenece la fuente
  * @return toba_fuente_datos
  */
 function get_fuente($id, $proyecto = null)
 {
     if (!isset($proyecto)) {
         $proyecto = toba::proyecto()->get_id();
     }
     if (!isset($id)) {
         $id = $this->get_fuente_predeterminada(true, $proyecto);
     }
     if (!isset($this->fuentes[$id])) {
         $parametros = toba::proyecto()->get_info_fuente_datos($id, $proyecto);
         $clase = isset($parametros['subclase_nombre']) ? $parametros['subclase_nombre'] : 'toba_fuente_datos';
         if (isset($parametros['subclase_archivo'])) {
             $pm = $parametros['punto_montaje'];
             if (toba::proyecto()->get_id() != $proyecto) {
                 //Si la fuente esta extendida, puede necesitar otros archivos del proyecto, agregar el include path
                 $path_proyecto = toba::instancia()->get_path_proyecto($proyecto) . '/php';
                 agregar_dir_include_path($path_proyecto);
             }
             $archivo = $parametros['subclase_archivo'];
             toba_cargador::cargar_clase_archivo($pm, $archivo, $proyecto);
         }
         $this->fuentes[$id] = new $clase($parametros);
     }
     return $this->fuentes[$id];
 }
Exemple #4
0
 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);
 }
 function procesar()
 {
     $accion = $this->info['basica']['item_act_accion_script'];
     if (trim($accion) != '') {
         toba_cargador::cargar_clase_archivo($this->info['basica']['punto_montaje'], $this->info['basica']['item_act_accion_script'], $this->info['basica']['item_proyecto']);
     } else {
         throw new toba_error_def("La solicitud_accion requiere la definición de un archivo php plano para ejecutar");
     }
 }
Exemple #6
0
 protected function get_subclase_usuario_proyecto()
 {
     $subclase = 'toba_usuario';
     $archivo = toba::proyecto()->get_parametro('usuario_subclase_archivo');
     $pm = toba::proyecto()->get_parametro('pm_usuario');
     if (trim($archivo) != '') {
         toba_cargador::cargar_clase_archivo($pm, $archivo, toba::proyecto()->get_id());
         $subclase = toba::proyecto()->get_parametro('usuario_subclase');
     }
     return $subclase;
 }
Exemple #7
0
 /**
  *	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'));
 }
Exemple #8
0
 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();
 }
Exemple #10
0
 /**
  * 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;
 }
 private function cargar_clase_usuario()
 {
     $archivo = toba::proyecto()->get_parametro('usuario_subclase_archivo');
     $subclase = toba::proyecto()->get_parametro('usuario_subclase');
     if (trim($archivo) != '' && trim($subclase) != '') {
         $pm = toba::proyecto()->get_parametro('pm_usuario');
         toba_cargador::cargar_clase_archivo($pm, $archivo, toba::proyecto()->get_id());
     }
 }