function proyecto__agregar_config_rest() { $proyecto = $this->elemento->get_id(); $dir_proyecto = $this->elemento->get_dir(); $destino = $dir_proyecto . '/www/rest.php'; copy(toba_dir() . '/php/modelo/template_proyecto/www/rest.php', $destino); $editor = new toba_editor_archivos(); $editor->agregar_sustitucion('|__proyecto__|', $proyecto); $editor->procesar_archivo($destino); }
/** * Crea un proyecto NUEVO */ static function crear(toba_modelo_instancia $instancia, $nombre, $usuarios_a_vincular) { //- 1 - Controles $dir_template = toba_dir() . self::template_proyecto; if ($nombre == 'toba') { throw new toba_error("INSTALACION: No es posible crear un proyecto con el nombre 'toba'"); } if (self::existe($nombre)) { throw new toba_error("INSTALACION: Ya existe una carpeta con el nombre '{$nombre}' en la carpeta 'proyectos'"); } try { //- 2 - Modificaciones en el sistema de archivos $dir_proyecto = $instancia->get_path_proyecto($nombre); $url_proyecto = $instancia->get_url_proyecto($nombre); // Creo la CARPETA del PROYECTO $excepciones = array(); $excepciones[] = $dir_template . '/www/aplicacion.produccion.php'; toba_manejador_archivos::copiar_directorio($dir_template, $dir_proyecto, $excepciones); // Modifico los archivos $editor = new toba_editor_archivos(); $editor->agregar_sustitucion('|__proyecto__|', $nombre); $editor->agregar_sustitucion('|__instancia__|', $instancia->get_id()); $editor->agregar_sustitucion('|__toba_dir__|', toba_manejador_archivos::path_a_unix(toba_dir())); $editor->agregar_sustitucion('|__version__|', '1.0.0'); $editor->procesar_archivo($dir_proyecto . '/www/aplicacion.php'); $modelo = $dir_proyecto . '/php/extension_toba/modelo.php'; $comando = $dir_proyecto . '/php/extension_toba/comando.php'; $editor->procesar_archivo($comando); $editor->procesar_archivo($modelo); $editor->procesar_archivo($dir_proyecto . '/www/rest.php'); $editor->procesar_archivo($dir_proyecto . '/www/servicios.php'); rename($modelo, str_replace('modelo.php', $nombre . '_modelo.php', $modelo)); rename($comando, str_replace('comando.php', $nombre . '_comando.php', $comando)); $ini = $dir_proyecto . '/proyecto.ini'; $editor->procesar_archivo($ini); // Asocio el proyecto a la instancia $instancia->vincular_proyecto($nombre, null, $url_proyecto); //- 3 - Modificaciones en la BASE de datos $db = $instancia->get_db(); try { $db->abrir_transaccion(); $db->retrazar_constraints(); $db->ejecutar(self::get_sql_metadatos_basicos($nombre)); $sql_version = self::get_sql_actualizar_version(toba_modelo_instalacion::get_version_actual(), $nombre); $db->ejecutar($sql_version); foreach ($usuarios_a_vincular as $usuario) { self::do_vincular_usuario($db, $nombre, $usuario, array('admin')); } $db->cerrar_transaccion(); } catch (toba_error $e) { $db->abortar_transaccion(); $txt = 'PROYECTO : Ha ocurrido un error durante la carga de METADATOS del PROYECTO. DETALLE: ' . $e->getMessage(); throw new toba_error($txt); } } catch (toba_error $e) { // Borro la carpeta creada if (is_dir($dir_proyecto)) { $instancia->desvincular_proyecto($nombre); toba_manejador_archivos::eliminar_directorio($dir_proyecto); } throw $e; } }
static function crear_archivo_apache($alias_nucleo) { $archivo = self::get_archivo_alias_apache(); copy(toba_dir() . '/php/modelo/var/toba.conf', $archivo); $editor = new toba_editor_archivos(); $editor->agregar_sustitucion('|__toba_dir__|', toba_manejador_archivos::path_a_unix(toba_dir())); $editor->agregar_sustitucion('|__toba_alias__|', $alias_nucleo); $editor->agregar_sustitucion('|__instalacion_dir__|', toba_manejador_archivos::path_a_unix(self::dir_base())); $editor->procesar_archivo($archivo); }