Example #1
0
 /**
  * Crea un proyecto NUEVO.
  * @consola_parametros Opcional: [-x] Si se utiliza esta opción el proyecto creado será personalizable
  * @gtk_icono nucleo/agregar.gif 
  * @gtk_no_mostrar 1
  */
 function opcion__crear()
 {
     $id_instancia = $this->get_id_instancia_actual();
     $id_proyecto = $this->get_id_proyecto_actual();
     $instancia = $this->get_instancia($id_instancia);
     $params = $this->get_parametros();
     // --  Creo el proyecto
     $this->consola->mensaje("Creando el proyecto '{$id_proyecto}' en la instancia '{$id_instancia}'...", false);
     $usuarios = $this->seleccionar_usuarios($instancia);
     toba_modelo_proyecto::crear($instancia, $id_proyecto, $usuarios);
     $this->consola->progreso_fin();
     // Extendemos las clases de toba a clases del proyecto
     $proyecto = $this->get_proyecto($id_proyecto);
     $pms = $proyecto->get_pms();
     util_modelo_proyecto::extender_clases($proyecto, $this->consola, 'toba');
     $pms->crear_pm_proyecto();
     // -- Modifica el proyecto para que sea apto para personalizaciones
     if (isset($params['-x'])) {
         $this->hacer_personalizable(false);
     }
     $proyecto->generar_autoload($this->consola);
     // -- Asigno un nuevo item de login
     $proyecto->actualizar_login();
     // -- Exporto el proyecto creado
     $proyecto->exportar();
     if (isset($params['-d'])) {
         //Como necesita si o si, ser creado en el dir proyectos.. luego de creado lo muevo
         $origen = $proyecto->get_dir();
         // lo revinculo con el directorio nuevo y re-instancio el proyecto para que arme bien el alias
         $path = $params['-d'];
         $instancia->vincular_proyecto($id_proyecto, $path);
         toba_manejador_archivos::copiar_directorio($origen, $path);
         toba_manejador_archivos::eliminar_directorio($origen);
         $proyecto = $this->get_proyecto($id_proyecto);
     }
     $instancia->exportar_local();
     if (!$proyecto->esta_publicado()) {
         $this->consola->separador();
         $agregar = $this->consola->dialogo_simple("El proyecto ha sido creado. ¿Desea agregar el alias de apache al archivo toba.conf?", true);
         if ($agregar) {
             $proyecto->publicar();
             $this->consola->mensaje('OK. Debe reiniciar el servidor web para que los cambios tengan efecto');
         }
     }
 }
Example #2
0
 static function extender_clases(toba_modelo_proyecto $proyecto, $consola, $de)
 {
     $seguir = true;
     if ($proyecto->tiene_clases_extendidas($de)) {
         $mensaje = "Las clases ya están extendidas. Si las reextiende se ";
         $mensaje .= "perderán todos los cambios que se introdujeron en las ";
         $mensaje .= "mismas. Desea reextender de cualquier manera?";
         $seguir = $consola->dialogo_simple($mensaje);
     }
     if ($seguir) {
         $prefijo = $de == 'proyecto' ? '/personalizacion' : '';
         $path = $proyecto->get_dir() . $prefijo . '/php/extension_toba/componentes';
         util_modelo_proyecto::extender_componentes($proyecto, $path, $de);
         util_modelo_proyecto::marcar_clases_extendidas($proyecto, $de);
     }
     return $seguir;
 }
Example #3
0
 protected function get_clases_componentes_toba()
 {
     return util_modelo_proyecto::get_clases_componentes_toba($this);
 }