Ta lecture du code est erronée. DR_RC_PATH est fixée en priorité si une
variable serveur DC_RC_PATH est présente, et en cas d'absence une variable
serveur REDIRECT_DC_RC_PATH et, l'absence de ces 2 variables
d'environnement, par la valeur par défaut présente dans inc/prepend.php
Je te déconseille fortement de fixer des valeurs REDIRECT_XXX depuis tes
fichiers de configuration Apache (.htaccess compris) pour la simple et bonne
raison que ce préfixe REDIRECT_ est généralement rajouté dans
l'arrière-boutique par le serveur, suivant sa configuration (rewrite, proxy,
fastcgi ou non, etc.).
-----Message d'origine-----
De : dev-bounces(a)list.dotclear.org [mailto:dev-bounces@list.dotclear.org] De
la part de Christopher Crouzet
Envoyé : dimanche 1 septembre 2013 14:37
À : dev(a)list.dotclear.org
Objet : Re: [Dotclear Dev] REDIRECT_DC_RC_PATH
J'aurais rien contre mais apres lecture du code, ca m'est impossible. Je
souligne que l'idee est de n'avoir a bidouiller aucun fichier venant de
Dotclear et d'externaliser tout ce qui est config et tout le tsoin-tsoin.
Pour modifier la valeur DC_RC_PATH, il faudrait que je la change directement
dans le fichier `prepend.php` ce qui va a l'encontre de ce que je cherche.
Je pourrais modifier la valeur DC_RC_PATH directement dans mon fichier
index.php a moi mais ca ne marcherait que pour la partie public, pas pour la
partie admin.
Au final, Dotclear semble simplement assigner DC_RC_PATH avec
REDIRECT_DC_RC_PATH si la valeur existe, et apres recherche
REDIRECT_DC_RC_PATH ne semble qu'a ce genre de cas, donc pas de bobo a
premiere vue si tous les fichiers l'utilisant recoivent la meme update.
2013/9/1 Pep <pep(a)callmepep.org>
Bonjour,
Tu devrais déjà essayer de jouer avec une valeur DC_RC_PATH et non
REDIRECT_DC_RC_PATH.
Tu limiteras les risques de mauvaises surprises.
-----Message d'origine-----
De : dev-bounces(a)list.dotclear.org
[mailto:dev-bounces@list.dotclear.org]
De
la part de Christopher Crouzet
Envoyé : dimanche 1 septembre 2013 14:27 À : dev(a)list.dotclear.org
Objet : [Dotclear Dev] REDIRECT_DC_RC_PATH
Hello!
Est-ce que quelqu'un s'est deja servi de cette variable ?
Mon but serait de mettre le dossier `dotclear` quelque part sous mon
www/ et de faire en sorte de le laisser intact, comme un vrai clone de
ce qu'il y a sur le repo mercurial.
C'est facile de definir de nouveaux chemins externes de plugins et
cache grace a `DC_PLUGINS_ROOT` et `DC_TPL_CACHE`, ainsi que les
chemins public et themes directement dans l'admin de Dotclear, mais
par contre pour le `config.php`, c'est moins evident.
J'ai vu que la variable `$_SERVER['REDIRECT_DC_RC_PATH']` semblait
justement faire ca, donc je suis alle voir mon fichier .htaccess et y
ai rajoute :
SetEnv REDIRECT_DC_RC_PATH /config.php
Le truc c'est qu'ensuite Dotclear va faire un `require` la-dessus, et
donc ca va marcher seulement si le fichier .php qui est appele se
trouve sur le document root. Donc ca marche bien quand on ouvre le
fichier `index.php`du blog, mais ca ne marche plus quand on essaye
d'ouvrir
l'admin.
Il y a 2 solutions :
- soit je me demerde dans le .htaccess a faire un truc du genre
`SetEnv REDIRECT_DC_RC_PATH %{DOCUMENT_ROOT}/config.php`, mais non
seulement ca me semble etre un peu du hack parceque `/config.php`
devrait justement deja representer un chemin relatif depuis le root,
mais surtout j'arrive pas a le faire marcher... la valeur
%{DOCUMENT_ROOT} (et une autre infinite de variations que j'ai teste)
ne sont pas converties en chemin, et PHP recoit le string
%{DOCUMENT_ROOT} tel quel.
- soit dans le code de Dotclear on rajoute manuellement le
DocumentRoot, ce qui me semble etre mieux. Et pour pas casser l'ancien
comportement, le fichier prepend.php serait modifie dans ce genre la :
if (isset($_SERVER['DC_RC_PATH'])) {
define('DC_RC_PATH',$_SERVER['DC_RC_PATH']);
} elseif (isset($_SERVER['REDIRECT_DC_RC_PATH']) &&
isfile($_SERVER['REDIRECT_DC_RC_PATH'])) {
define('DC_RC_PATH',$_SERVER['REDIRECT_DC_RC_PATH']);
} elseif (isset($_SERVER['REDIRECT_DC_RC_PATH']) &&
isfile($_SERVER['DOCUMENT_ROOT'].$_SERVER['REDIRECT_DC_RC_PATH'])) {
define('DC_RC_PATH',$_SERVER['DOCUMENT_ROOT'] .
$_SERVER['REDIRECT_DC_RC_PATH']);
} else {
define('DC_RC_PATH',dirname(__FILE__).'/config.php');
}
Des avis ?
Christopher.
--
Dev mailing list - Dev(a)list.dotclear.org -
http://ml.dotclear.org/listinfo/dev
--
Dev mailing list - Dev(a)list.dotclear.org -
http://ml.dotclear.org/listinfo/dev
--
Dev mailing list - Dev(a)list.dotclear.org -
http://ml.dotclear.org/listinfo/dev