En date de : Mer 8.7.09, Committo,Ergo:sum <esj@rezo.net> a écrit :
[...]
> En traçant un peu ce qui se passe dans
> /ecrire/install/etape_sup2.php, il semble y avoir une
> coquille qui empêche le passage du paramètre $server_db
> dans la fonction install_etape_sup2_dist()oui en effet
>
> Patch proposé:Il me semble qu'il y a plus qu'une coquille. Essaye ça:
à priori ça fonctionnerait bien... si ce n'est que ça dépend complètement de ce qui est défini comme constantes dans le fichier mes_options.php !
En effet, pour faciliter les installations de nouvelles instances de SPIP, le fichiers mes_options.php.txt distribué dans le pseudo-plugin de mutualisation comme modèle de fichier mes_options.php a partager par les SPIP mutualisés (donc à mettre dans le /config du SPIP primaire de mutu) donne ce code comme exemple:
define ('_INSTALL_SERVER_DB', 'mysql');
define ('_INSTALL_HOST_DB', 'localhost');
define ('_INSTALL_USER_DB', 'loginsql');
define ('_INSTALL_PASS_DB', '123456HDJ');
define ('_INSTALL_NAME_DB', 'mu_'.prefixe_mutualisation($site));
du coup, pour celles de ces constantes qui sont définies dans ce mes_options.php de la mutu, les valeurs correspondantes envoyées par le formulaire de création d'une nouvelle connexion ne sont pas envoyées dans un input hidden par la fonction predef_ou_cache() de /inc/install.php => cf le code de cette fonction:
return ((defined('_INSTALL_HOST_DB'))
? ''
: "\n<input type='hidden' name='adresse_db'
value=\"".htmlspecialchars($adresse_db)."\" />"
) ... idem pour toutes les autres constantes...
Donc effectivement la coquille cachait une incompatibilité de fonctionnement entre la création de fichiers de connexion pour serveurs/bases supplémentaires et la création d'instances de mutu avec des constantes prédéfinies "en dur" par l'admin de la mutu...
Cette incompatibilité demande donc:
- soit d'avertir les admins de mutu que s'ils veulent laisser la possibilité aux webmestres des SPIP mutu de créer des fichiers de connexion supplémentaires ils faut qu'ils enlèvent les pré-définition de constantes dans le mes_options.php central
=> c'est une régression du point de vue facilité de l'install des instances de mutu... ![]()
- soit de modifier predef_ou_cache() pour gérer ce conflit, par ex comme proposé dans le (mauvais) patch ci-dessous.
A priori ça fonctionne en mutu ou non, pour une installation de 0 ou pour créer un nouveau fichier de connexion à une base externe mais ça me semble un peu trop "sale" pour qu'il n'y ait pas des trucs qui risquent de foirer par ailleurs...
Index: install.php