Пример #1
0
 protected function registrar_autoloaders_proyecto()
 {
     $punto_php = toba::puntos_montaje()->get(toba_modelo_pms::pm_php);
     $punto_php->registrar_autoload();
     if (toba::proyecto()->es_personalizable()) {
         $punto_pers = toba::puntos_montaje()->get(toba_modelo_pms::pm_pers);
         $punto_pers->registrar_autoload();
     }
 }
Пример #2
0
 /**
  * Retorna una referenca al Adm.Persistencia de la relación
  * @return toba_ap_relacion_db
  */
 function persistidor()
 {
     if (!isset($this->_persistidor)) {
         //Se incluye el archivo
         $particular = $this->_info_estructura['ap'] == 3;
         if ($particular && isset($this->_info_estructura['ap_archivo']) && isset($this->_info_estructura['ap_clase'])) {
             $clase = $this->_info_estructura['ap_clase'];
             if (!class_exists($clase)) {
                 $punto = toba::puntos_montaje()->get_por_id($this->_info_estructura['punto_montaje']);
                 $path = $punto->get_path_absoluto() . '/' . $this->_info_estructura['ap_archivo'];
                 require_once $path;
             }
         } else {
             $clase = "toba_ap_relacion_db";
         }
         $this->_persistidor = new $clase($this);
         if ($this->_info_estructura['sinc_susp_constraints']) {
             $this->_persistidor->retrasar_constraints();
         }
         $this->_persistidor->set_lock_optimista($this->_info_estructura['sinc_lock_optimista']);
     }
     return $this->_persistidor;
 }
Пример #3
0
 function get_listado()
 {
     return toba::puntos_montaje()->get_puntos_montaje_array();
 }
Пример #4
0
 protected function crear_zona()
 {
     $clase = 'toba_zona';
     if (trim($this->info['basica']['item_zona']) != "") {
         //--- Tiene subclase?
         if (isset($this->info['basica']['item_zona_archivo'])) {
             $punto = toba::puntos_montaje()->get_por_id($this->info['basica']['zona_punto_montaje']);
             $path = $punto->get_path_absoluto() . '/' . $this->info['basica']['item_zona_archivo'];
             require_once $path;
             $clase = $this->info['basica']['item_zona'];
         }
         //--- Tiene consulta?
         $consulta = array('archivo' => $this->info['basica']['zona_cons_archivo'], 'clase' => $this->info['basica']['zona_cons_clase'], 'metodo' => $this->info['basica']['zona_cons_metodo']);
         $this->zona = new $clase($this->info['basica']['item_zona'], $consulta);
     }
 }
Пример #5
0
 static function cargar_clase_archivo($pm, $clase_archivo, $id_proyecto)
 {
     $path = '';
     if (!is_null($pm)) {
         $punto = toba::puntos_montaje()->get_instancia_pm_proyecto($id_proyecto, $pm);
         $path = $punto->get_path_absoluto() . '/';
         toba::logger()->info("PUNTO MONTAJE: se cargó la clase {$clase_archivo} del punto de montaje {$punto->get_etiqueta()}. El path del mismo es {$punto->get_path_absoluto()}");
     }
     require_once $path . $clase_archivo;
 }
Пример #6
0
 /**
  * @ignore 
  */
 protected function ef_metodo_carga_php($id_ef, $parametros, $maestros)
 {
     // Fix. En la descripci?n de un popup $maestros llega con el valor directamente,
     // no como un arreglo con el valor como lo espera call_user_func
     $maestros = !is_array($maestros) ? array($maestros) : $maestros;
     if (isset($parametros['carga_include']) || isset($parametros['carga_clase'])) {
         if (!class_exists($parametros['carga_clase']) && isset($parametros['carga_include']) && $parametros['carga_include'] != '') {
             $pm = toba::puntos_montaje()->get_por_id($parametros['punto_montaje']);
             $path = $pm->get_path_absoluto() . '/' . $parametros['carga_include'];
             require_once $path;
         }
         $instanciable = isset($parametros['instanciable']) && $parametros['instanciable'] == '1';
         if ($instanciable) {
             $obj = new $parametros['carga_clase']();
             $clase = $obj;
         } else {
             $clase = $parametros['carga_clase'];
         }
         if (!method_exists($clase, $parametros['carga_metodo'])) {
             throw new toba_error_def("ERROR en la carga del ef {$id_ef}. No existe el método '{$parametros['carga_metodo']}' de la clase '{$parametros['carga_clase']}'");
         }
         $metodo = array($clase, $parametros['carga_metodo']);
         return call_user_func_array($metodo, $maestros);
     } else {
         //--- Es un metodo del CI contenedor
         if (!method_exists($this->_controlador->controlador(), $parametros['carga_metodo'])) {
             $clase = get_class($this->_controlador->controlador());
             throw new toba_error_def("ERROR en la carga del ef {$id_ef}. No existe el método '{$parametros['carga_metodo']}' en la clase '{$clase}'");
         }
         $dato = call_user_func_array(array($this->_controlador->controlador(), $parametros['carga_metodo']), $maestros);
         return $dato;
     }
 }
Пример #7
0
 /**
  * Retorna una clase de consultas php declarada en el editor
  * @param string $clase Nombre de la clase	 
  */
 static function consulta_php($clase)
 {
     if (!isset(self::$consultas_php[$clase])) {
         $datos = toba::proyecto()->get_info_consulta_php($clase);
         if ($datos['archivo']) {
             if (isset($datos['punto_montaje']) && toba::puntos_montaje()->existe_por_id($datos['punto_montaje'])) {
                 $path_pm = toba::puntos_montaje()->get_por_id($datos['punto_montaje'])->get_path_absoluto();
                 $archivo = $path_pm . '/' . $datos['archivo'];
             } else {
                 $archivo = $datos['archivo'];
             }
             require_once $archivo;
             if ($datos['archivo_clase'] && $datos['archivo_clase'] != '') {
                 $clase_php = $datos['archivo_clase'];
             } else {
                 $clase_php = $clase;
             }
             self::$consultas_php[$clase] = new $clase_php();
         } else {
             throw new toba_error("La consulta_php solicitada no posee un archivo asociado");
         }
     }
     return self::$consultas_php[$clase];
 }
Пример #8
0
 /**
  * Retorna la referencia a la pantalla a graficar
  * Una vez que se invoca este metodo se fija la pantalla para el resto del pedido de pagina
  * Es importante relegar esta desicion en caso de querer variar la pantalla a mostrar dinamicamente
  * @return toba_ei_pantalla
  */
 function pantalla()
 {
     if (!isset($this->_pantalla_servicio)) {
         $this->_log->debug($this->get_txt() . "Pantalla de servicio: '{$this->_pantalla_id_servicio}'", 'toba');
         $id_pantalla = $this->get_id_pantalla();
         if (!isset($id_pantalla)) {
             //Se esta consumiendo la pantalla antes de la configuracion,
             //y sin un set_pantalla de por medio: utilizo la misma pantalla de los eventos.
             $id_pantalla = $this->_pantalla_id_eventos;
         }
         $info_pantalla = $this->get_info_pantalla($id_pantalla);
         $obj_pantalla = $this->get_info_objetos_asoc_pantalla($id_pantalla);
         $evt_pantalla = $this->get_info_eventos_pantalla($id_pantalla);
         $info = array('_info' => $this->_info, '_info_ci' => $this->_info_ci, '_info_eventos' => $this->_info_eventos, '_info_ci_me_pantalla' => $this->_info_ci_me_pantalla);
         $info['_info_pantalla'] = $info_pantalla;
         $info['_objetos_pantalla'] = $obj_pantalla;
         $info['_eventos_pantalla'] = $evt_pantalla;
         $info['_const_instancia_numero'] = 0;
         if (isset($info_pantalla['subclase_archivo'])) {
             $pm = toba::puntos_montaje()->get_por_id($info_pantalla['punto_montaje']);
             $path = $pm->get_path_absoluto() . '/' . $info_pantalla['subclase_archivo'];
             require_once $path;
         }
         $clase = 'toba_ei_pantalla';
         if (isset($info_pantalla['subclase'])) {
             $clase = $info_pantalla['subclase'];
         }
         $this->_pantalla_servicio = new $clase($info, $this->_submit, $this->objeto_js);
         $this->_pantalla_servicio->set_controlador($this, $id_pantalla);
         $this->_pantalla_servicio->pre_configurar();
         //Se le pasan las notificaciones
         foreach ($this->_notificaciones as $notificacion) {
             $this->_pantalla_servicio->agregar_notificacion($notificacion['mensaje'], $notificacion['tipo']);
         }
         $this->_notificaciones = array();
     }
     return $this->_pantalla_servicio;
 }
Пример #9
0
 /**
  * Retorna el admin. de persistencia que asiste a este objeto durante la sincronización
  * @return toba_ap_tabla_db
  */
 function persistidor()
 {
     if (!isset($this->_persistidor)) {
         if ($this->_info_estructura['ap'] == '0') {
             $clase = $this->_info_estructura['ap_sub_clase'];
             $include = $this->_info_estructura['ap_sub_clase_archivo'];
             if (trim($clase) == '') {
                 throw new toba_error_def($this->get_txt() . "Error en la definicion, falta definir la subclase");
             }
         } else {
             $clase = 'toba_' . $this->_info_estructura['ap_clase'];
             $include = $this->_info_estructura['ap_clase_archivo'];
         }
         if (!class_exists($clase)) {
             $punto = toba::puntos_montaje()->get_por_id($this->_info_estructura['punto_montaje']);
             $path = $punto->get_path_absoluto() . '/' . $include;
             require_once $path;
         }
         $this->_persistidor = new $clase($this);
         if ($this->_info_estructura['ap_modificar_claves']) {
             $this->_persistidor->activar_modificacion_clave();
         }
     }
     return $this->_persistidor;
 }
Пример #10
0
 /**
  * @return toba_tp_normal
  */
 function tipo_pagina()
 {
     if (!isset($this->tipo_pagina)) {
         //Carga el TP a demanda
         if (!class_exists($this->info['basica']['tipo_pagina_clase'])) {
             if ($this->info['basica']['tipo_pagina_archivo']) {
                 $punto = toba::puntos_montaje()->get_por_id($this->info['basica']['tipo_pagina_punto_montaje']);
                 $path = $punto->get_path_absoluto() . '/' . $this->info['basica']['tipo_pagina_archivo'];
                 require_once $path;
             }
         }
         $this->tipo_pagina = new $this->info['basica']['tipo_pagina_clase']();
     }
     return $this->tipo_pagina;
 }