[SPIP Zone] Chemin en dur dans les plugins ?!

Hello,

En faisant des recherches sur mon serveur sur un script qui cherche un chemin en /htdocs/, je constate que beaucoup de plugins spip ont des chemins en dur dans leur code. Cela marche pour celui qui est à l'origine du plugin mais rien ne vous dit que cela marchera chez un autre utilisateur (pour certains, faudrait même qu'ils aient le même nom de domaine).

Note : Je pars sur le résultat du grep (grep htdocs * -R), donc peut être que le code est commenté plus haut - je n'ai pas le temps de checker les fichiers mais ça vaut peut être le coup que vous vérifiez ce qu'il en est réellement :slight_smile:

Ex :
plugins/_dev_/loudblog/loudblog.php: ini_set(

/plugins/_dev_/gis/balise/formulaire_gis.php: move_uploaded_file($freshfile['tmp_name'], "/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']) OR die ("<p>Error!</p>");
plugins/_dev_/gis/balise/formulaire_gis.php: inc_ajouter_documents_dist ("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'], $freshfile['name'], 'article', $id_novo_article , 'document', $id_document, $documents_actifs);
plugins/_dev_/gis/balise/formulaire_gis.php: unlink ("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);
gasteroprod.com/gasteroprod/spip/plugins/_dev_/gis/balise/formulaire_gis.php: move_uploaded_file($freshfile['tmp_name'], "/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']) OR die ("<p>Error!</p>");
plugins/_dev_/gis/balise/formulaire_gis.php: inc_ajouter_documents_dist ("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'], $freshfile['name'], 'article', $id_novo_article , 'document', $id_document, $documents_actifs);
plugins/_dev_/gis/balise/formulaire_gis.php: unlink ("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

etc.

Mes 2 cents...
Nicolas

Moi, j'aimerai bien savoir comment ne pas mettre en dur, le chemin dans les CSS
que l'on met dans les plugins afin que ceux-ci soient facilement portable.

Xavier BUROT

Selon Nicolas Steinmetz <nsteinmetz@gmail.com>:

Hello,

En faisant des recherches sur mon serveur sur un script qui cherche un
chemin en /htdocs/, je constate que beaucoup de plugins spip ont des
chemins en dur dans leur code. Cela marche pour celui qui est à
l'origine du plugin mais rien ne vous dit que cela marchera chez un
autre utilisateur (pour certains, faudrait même qu'ils aient le même nom
de domaine).

Note : Je pars sur le résultat du grep (grep htdocs * -R), donc peut
être que le code est commenté plus haut - je n'ai pas le temps de
checker les fichiers mais ça vaut peut être le coup que vous vérifiez ce
qu'il en est réellement :slight_smile:

Ex :
plugins/_dev_/loudblog/loudblog.php: ini_set(

"include_path",
ini_get("include_path").":/data/web/org/b/e/africa-web.org/t/s/s

       piptest/htdocs/loudblog/");

/plugins/_dev_/gis/balise/formulaire_gis.php:
move_uploaded_file($freshfile['tmp_name'],

"/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'])

OR die ("<p>Error!</p>");
plugins/_dev_/gis/balise/formulaire_gis.php:
inc_ajouter_documents_dist

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'],

$freshfile['name'], 'article', $id_novo_article , 'document',
$id_document, $documents_actifs);
plugins/_dev_/gis/balise/formulaire_gis.php: unlink

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

gasteroprod.com/gasteroprod/spip/plugins/_dev_/gis/balise/formulaire_gis.php:
                   move_uploaded_file($freshfile['tmp_name'],

"/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'])

OR die ("<p>Error!</p>");
plugins/_dev_/gis/balise/formulaire_gis.php:
inc_ajouter_documents_dist

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'],

$freshfile['name'], 'article', $id_novo_article , 'document',
$id_document, $documents_actifs);
plugins/_dev_/gis/balise/formulaire_gis.php:
unlink

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

etc.

Mes 2 cents...
Nicolas

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Tu peux utiliser le pipeline insert_head, et utiliser find_in_path();

Et tu te retrouves avec ton css en entete de page. (il y a des exemples dans thickbox et dans le plugin multimedia par ex)

BoOz

Xavier BUROT a écrit :

Moi, j'aimerai bien savoir comment ne pas mettre en dur, le chemin dans les CSS
que l'on met dans les plugins afin que ceux-ci soient facilement portable.

Xavier BUROT
http://xebiaut.free.fr

Selon Nicolas Steinmetz <nsteinmetz@gmail.com>:

Hello,

En faisant des recherches sur mon serveur sur un script qui cherche un
chemin en /htdocs/, je constate que beaucoup de plugins spip ont des
chemins en dur dans leur code. Cela marche pour celui qui est à
l'origine du plugin mais rien ne vous dit que cela marchera chez un
autre utilisateur (pour certains, faudrait même qu'ils aient le même nom
de domaine).

Note : Je pars sur le résultat du grep (grep htdocs * -R), donc peut
être que le code est commenté plus haut - je n'ai pas le temps de
checker les fichiers mais ça vaut peut être le coup que vous vérifiez ce
qu'il en est réellement :slight_smile:

Ex :
plugins/_dev_/loudblog/loudblog.php: ini_set(

"include_path",
ini_get("include_path").":/data/web/org/b/e/africa-web.org/t/s/s

      piptest/htdocs/loudblog/");

/plugins/_dev_/gis/balise/formulaire_gis.php:
move_uploaded_file($freshfile['tmp_name'],

"/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'])

OR die ("<p>Error!</p>");
plugins/_dev_/gis/balise/formulaire_gis.php:
inc_ajouter_documents_dist

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'],

$freshfile['name'], 'article', $id_novo_article , 'document',
$id_document, $documents_actifs);
plugins/_dev_/gis/balise/formulaire_gis.php: unlink

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

gasteroprod.com/gasteroprod/spip/plugins/_dev_/gis/balise/formulaire_gis.php:
                  move_uploaded_file($freshfile['tmp_name'],

"/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'])

OR die ("<p>Error!</p>");
plugins/_dev_/gis/balise/formulaire_gis.php:
inc_ajouter_documents_dist

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'],

$freshfile['name'], 'article', $id_novo_article , 'document',
$id_document, $documents_actifs);
plugins/_dev_/gis/balise/formulaire_gis.php:
unlink

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

etc.

Mes 2 cents...
Nicolas

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Il y a la balise #CHEMIN pour les squelettes, _DIR_PLUGIN_NOMPLUGIN pour le code PHP.

Jo

Xavier BUROT a écrit :

Moi, j'aimerai bien savoir comment ne pas mettre en dur, le chemin dans les CSS
que l'on met dans les plugins afin que ceux-ci soient facilement portable.

Xavier BUROT
http://xebiaut.free.fr

Selon Nicolas Steinmetz <nsteinmetz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:

Hello,

En faisant des recherches sur mon serveur sur un script qui cherche un
chemin en /htdocs/, je constate que beaucoup de plugins spip ont des
chemins en dur dans leur code. Cela marche pour celui qui est à
l'origine du plugin mais rien ne vous dit que cela marchera chez un
autre utilisateur (pour certains, faudrait même qu'ils aient le même nom
de domaine).

Note : Je pars sur le résultat du grep (grep htdocs * -R), donc peut
être que le code est commenté plus haut - je n'ai pas le temps de
checker les fichiers mais ça vaut peut être le coup que vous vérifiez ce
qu'il en est réellement :slight_smile:

Ex :
plugins/_dev_/loudblog/loudblog.php: ini_set(

"include_path",
ini_get("include_path").":/data/web/org/b/e/africa-web.org/t/s/s

       piptest/htdocs/loudblog/");

/plugins/_dev_/gis/balise/formulaire_gis.php:
move_uploaded_file($freshfile['tmp_name'],

"/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'])

OR die ("<p>Error!</p>");
plugins/_dev_/gis/balise/formulaire_gis.php:
inc_ajouter_documents_dist

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'],

$freshfile['name'], 'article', $id_novo_article , 'document',
$id_document, $documents_actifs);
plugins/_dev_/gis/balise/formulaire_gis.php: unlink

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

gasteroprod.com/gasteroprod/spip/plugins/_dev_/gis/balise/formulaire_gis.php:
                   move_uploaded_file($freshfile['tmp_name'],

"/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'])

OR die ("<p>Error!</p>");
plugins/_dev_/gis/balise/formulaire_gis.php:
inc_ajouter_documents_dist

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'],

$freshfile['name'], 'article', $id_novo_article , 'document',
$id_document, $documents_actifs);
plugins/_dev_/gis/balise/formulaire_gis.php:
unlink

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

etc.

Mes 2 cents...
Nicolas

_______________________________________________
spip-zone-JM9gtpQu/Ho@public.gmane.org - http://listes.rezo.net/mailman/listinfo/spip-zone

Cette fonction n'est pas applicable dans un fichier CSS où l'on veut par exemple
donner le chemin d'une image de fond par défaut, car le fichier CSS n'est pas
interpréter par SPIP.

Xavier BUROT

Selon Joseph Larmarange <joseph@larmarange.net>:

Il y a la balise #CHEMIN pour les squelettes, _DIR_PLUGIN_NOMPLUGIN pour
le code PHP.

Jo

Xavier BUROT a écrit :
> Moi, j'aimerai bien savoir comment ne pas mettre en dur, le chemin dans les
CSS
> que l'on met dans les plugins afin que ceux-ci soient facilement portable.
>
> Xavier BUROT
> http://xebiaut.free.fr
>
>
> Selon Nicolas Steinmetz
<nsteinmetz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
>
>> Hello,
>>
>> En faisant des recherches sur mon serveur sur un script qui cherche un
>> chemin en /htdocs/, je constate que beaucoup de plugins spip ont des
>> chemins en dur dans leur code. Cela marche pour celui qui est à
>> l'origine du plugin mais rien ne vous dit que cela marchera chez un
>> autre utilisateur (pour certains, faudrait même qu'ils aient le même nom
>> de domaine).
>>
>> Note : Je pars sur le résultat du grep (grep htdocs * -R), donc peut
>> être que le code est commenté plus haut - je n'ai pas le temps de
>> checker les fichiers mais ça vaut peut être le coup que vous vérifiez ce
>> qu'il en est réellement :slight_smile:
>>
>> Ex :
>> plugins/_dev_/loudblog/loudblog.php: ini_set(
>>
>>
>> "include_path",
>> ini_get("include_path").":/data/web/org/b/e/africa-web.org/t/s/s
>>
>>
>> piptest/htdocs/loudblog/");
>>
>>
>> /plugins/_dev_/gis/balise/formulaire_gis.php:
>> move_uploaded_file($freshfile['tmp_name'],
>>
>

"/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'])

>> OR die ("<p>Error!</p>");
>> plugins/_dev_/gis/balise/formulaire_gis.php:
>> inc_ajouter_documents_dist
>>
>

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'],

>> $freshfile['name'], 'article', $id_novo_article , 'document',
>> $id_document, $documents_actifs);
>> plugins/_dev_/gis/balise/formulaire_gis.php: unlink
>>
>

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

>>
gasteroprod.com/gasteroprod/spip/plugins/_dev_/gis/balise/formulaire_gis.php:
>> move_uploaded_file($freshfile['tmp_name'],
>>
>

"/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'])

>> OR die ("<p>Error!</p>");
>> plugins/_dev_/gis/balise/formulaire_gis.php:
>> inc_ajouter_documents_dist
>>
>

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name'],

>> $freshfile['name'], 'article', $id_novo_article , 'document',
>> $id_document, $documents_actifs);
>> plugins/_dev_/gis/balise/formulaire_gis.php:
>> unlink
>>
>

("/web/htdocs/www.vhplab.net/home/web/plugins/gis/upload_form/".$freshfile['name']);

>> etc.
>>
>> Mes 2 cents...
>> Nicolas
>>
>> _______________________________________________
>> spip-zone-JM9gtpQu/Ho@public.gmane.org -
http://listes.rezo.net/mailman/listinfo/spip-zone
>>

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Xavier BUROT wrote:

Cette fonction n'est pas applicable dans un fichier CSS où l'on veut par
exemple
donner le chemin d'une image de fond par défaut, car le fichier CSS n'est
pas
interpréter par SPIP.

l'emplacement d'une ressource dans un fichier css est relatif à celui-ci,
tu n'as donc pas besoin de mettre un chemin complet.

si tu as un truc du genre dans un fichier style.css

body { background: url('img/fond.png'); }

tu devras fournir

./style.css
./img/fond.png

et comme ta feuille de style est appelée via insert head/find_in_path() ou
#CHEMIN, tu n'auras aucun problème

--
James

Dernier point,
il est possible de d'interpréter le CSS en tant que squelette. Dans ton en-tête HTML, au lieu d'appeler style.css, tu appelles spip.php?page=styles

Au début du squelette style tu fais une déclaration comme quoi il s'agit d'une CSS. Enfin, tu écris ton CSS comme d'habitude mais tu peux utiliser la balise #CHEMIN.

Par exemple, dans le head de ta page : <link rel="stylesheet" type="text/css" href="#URL_PAGE{inc-css}" />

et au début du fichier inc-css.html :
#CACHE{24*3600}
#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
#HTTP_HEADER{Vary: Accept-Encoding}

Joseph

James a écrit :

Xavier BUROT wrote:

Cette fonction n'est pas applicable dans un fichier CSS où l'on veut par
exemple
donner le chemin d'une image de fond par défaut, car le fichier CSS n'est
pas
interpréter par SPIP.

l'emplacement d'une ressource dans un fichier css est relatif à celui-ci,
tu n'as donc pas besoin de mettre un chemin complet.

si tu as un truc du genre dans un fichier style.css

body { background: url('img/fond.png'); }

tu devras fournir

./style.css
./img/fond.png

et comme ta feuille de style est appelée via insert head/find_in_path() ou
#CHEMIN, tu n'auras aucun problème

--
James

Je connais cette facilité mais je n'arrive pas à la faire fonctionner avec la
fonction insert_head().

Xavier BUROT

Selon Joseph Larmarange <joseph@larmarange.net>:

Dernier point,
il est possible de d'interpréter le CSS en tant que squelette. Dans ton
en-tête HTML, au lieu d'appeler style.css, tu appelles spip.php?page=styles

Au début du squelette style tu fais une déclaration comme quoi il s'agit
d'une CSS. Enfin, tu écris ton CSS comme d'habitude mais tu peux
utiliser la balise #CHEMIN.

Par exemple, dans le head de ta page : <link rel="stylesheet"
type="text/css" href="#URL_PAGE{inc-css}" />

et au début du fichier inc-css.html :
#CACHE{24*3600}
#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
#HTTP_HEADER{Vary: Accept-Encoding}

Joseph

James a écrit :
> Xavier BUROT wrote:
>> Cette fonction n'est pas applicable dans un fichier CSS où l'on veut par
>> exemple
>> donner le chemin d'une image de fond par défaut, car le fichier CSS n'est
>> pas
>> interpréter par SPIP.
>>
>
> l'emplacement d'une ressource dans un fichier css est relatif à celui-ci,
> tu n'as donc pas besoin de mettre un chemin complet.
>
> si tu as un truc du genre dans un fichier style.css
>
> body { background: url('img/fond.png'); }
>
> tu devras fournir
>
> ./style.css
> ./img/fond.png
>
> et comme ta feuille de style est appelée via insert head/find_in_path() ou
> #CHEMIN, tu n'auras aucun problème
>
> --
> James
>

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone