function evt__ejecutar($item, $opcion, $atributos) { if (isset($this->progreso)) { $this->progreso->cerrar(); } try { $param_extra = null; //---- Ejecución de dialogos particulares if (isset($atributos['tags']['gtk_param_extra'])) { $clase = 'toba_gtk_' . $atributos['tags']['gtk_param_extra']; require_once "instalacion/{$clase}.php"; $parametros_comando = $this->determinar_comando($this->seleccion); $dialogo = new $clase($this->toba_instalador, $parametros_comando); $param_extra = $dialogo->show(); if (!isset($param_extra)) { return; } } //-------------------------------------- $this->progreso = new inst_dlg_progreso($this, false); $this->comp['frame']->set_visible(true); $this->comp['frame_contenido']->add($this->progreso->get_widget()); $this->progreso->set_cant_pasos_general(1); $this->progreso->set_cant_pasos_internos(100); $objeto_com = $this->get_objeto_comando($this->seleccion); $info = $objeto_com->get_nombre() . " {$opcion} " . $objeto_com->get_argumentos_string(); $this->comp['frame_label']->set_markup("<b>Comando</b>: " . $info); $objeto_com->procesar('opcion__' . $opcion, $param_extra); if (isset($this->progreso)) { $this->progreso->finalizar(); } } catch (Exception $e) { inst_fact::logger()->error($e->__toString()); inst_fact::gtk()->mostrar_excepcion($e); $this->evt__progreso__cancelar(); } }
function crear_instancia($nombre_instancia, $datos_motor) { $nombre_toba = 'toba_' . toba_modelo_instalacion::get_version_actual()->get_string_partes(); //--- Agrega la fuente de datos de la instancia $datos_motor['base'] = $nombre_toba . '_' . $nombre_instancia; $confirmado = false; do { $this->get_instalacion()->agregar_db($nombre_instancia, $datos_motor); //--- Si la base existe, pregunta por un nombre alternativo, por si no quiere pisarla if ($this->get_instalacion()->existe_base_datos($nombre_instancia)) { $mensaje = "La base <b>{$datos_motor['base']}</b> ya está siendo utiliza en este servidor."; $confirmado = inst_fact::gtk()->confirmar_pisar_base($mensaje); if ($confirmado !== true) { $datos_motor['base'] = $confirmado; $confirmado = false; } } else { $confirmado = true; } } while ($confirmado === false); //--- Crea la instancia $proyectos = toba_modelo_proyecto::get_lista(); if (isset($proyectos['toba_testing'])) { //--- Elimina el proyecto toba_testing unset($proyectos['toba_testing']); } toba_modelo_instancia::crear_instancia($nombre_instancia, $nombre_instancia, $proyectos); $instancia = $this->get_instancia($nombre_instancia); $instancia->cargar(true); //--- Vincula un usuario a todos los proyectos $instancia->agregar_usuario('toba', 'Usuario Toba', 'toba'); foreach ($instancia->get_lista_proyectos_vinculados() as $id_proyecto) { $proyecto = $instancia->get_proyecto($id_proyecto); $grupo_acceso = $proyecto->get_grupo_acceso_admin(); $proyecto->vincular_usuario('toba', $grupo_acceso); } $instancia->exportar_local(); //--- Crea los nuevos alias $instancia->crear_alias_proyectos(); //--- Ejecuta instalaciones particulares de cada proyecto foreach ($instancia->get_lista_proyectos_vinculados() as $id_proyecto) { $instancia->get_proyecto($id_proyecto)->instalar(); } }