function vincular_proyecto($proyecto, $path = null, $url = null) { if (isset($path) || toba_modelo_proyecto::existe($proyecto, false)) { $datos_ini = array(); $ini = $this->get_ini(); $datos = explode(',', $ini->get_datos_entrada('proyectos')); $proyectos_instancia = array(); foreach ($datos as $valor) { if (trim($valor) != '') { $proyectos_instancia[] = trim($valor); } } $existe_proyecto = in_array($proyecto, $proyectos_instancia); if (!$existe_proyecto) { //Si el proyecto no existe en la instancia lo agrego $proyectos_instancia[] = $proyecto; $ini->set_datos_entrada('proyectos', implode(', ', array_unique($proyectos_instancia))); } elseif ($ini->existe_entrada($proyecto)) { //Si ya estaba, levanto sus datos anteriores $datos_ini = $ini->get_datos_entrada($proyecto); } //Actualizo los datos del proyecto si se cambiaron if (isset($path)) { $datos_ini['path'] = $path; } elseif (is_null($path)) { $datos_ini['path'] = $this->get_path_proyecto($proyecto); toba_logger::instancia()->debug("El path elegido para el proyecto '{$proyecto}' es {$datos_ini['path']}"); } if (isset($url)) { $datos_ini['url'] = $url; } elseif (is_null($url)) { $datos_ini['url'] = $this->get_url_proyecto($proyecto); toba_logger::instancia()->debug("La url elegida para el proyecto '{$proyecto}' es {$datos_ini['url']}"); } $usar_perfiles_propios = $this->get_proyecto_usar_perfiles_propios($proyecto); if ($usar_perfiles_propios) { $datos_ini['usar_perfiles_propios'] = $usar_perfiles_propios; toba_logger::instancia()->debug("El proyecto '{$proyecto}' usa perfiles propios"); } if (!$ini->existe_entrada($proyecto)) { //Si no hay entrada previa para los datos del proyecto $ini->agregar_entrada($proyecto, $datos_ini); } else { $ini->set_datos_entrada($proyecto, $datos_ini); } $ini->guardar(); toba_logger::instancia()->debug("Vinculado el proyecto '{$proyecto}' a la instancia"); // Recargo la inicializacion de la instancia $this->cargar_info_ini(); //Genera .ini templates de rest $this->generar_ini_rest($proyecto); } else { throw new toba_error("El proyecto '{$proyecto}' no existe."); } }