[SPIP Zone] Organisation des dossiers sur la zone

Bonjour,

Est-ce qu'il serait concevable de mettre dans chaque dossier racine de la zone un fichier index.xml qui indiquerait notamment la nature (le type) des contenus dudit dossier ?

Je demande ça car il me semble que dans le cadre du plugin "habillages" (par exemple, mais il doit y en avoir d'autres), si il existe un tel fichier dans les dossiers racines, cela permettrait de faire agir le plugin indépendemment des noms de dossier : le plugin prendrait le contenu d'une balise "type" (ou autre) d'un fichier index.xml situé à la racine d'un dossier, et si le type est "squelettes" le plugin sait qu'il a affaire à un dossier de squelettes, que ce dossier s'appelle "squelettes", "_squelettes_", "skels", "themes", "machin", "toussa". Et on rejoindrait l'idée de James de commenter un peu le contenu des dossiers racines de la zone...

Exemple pas très pertinent, mais ça illustre quand même :
On peut imaginer avec ça une vrai interaction entre les plugins : si par exemple le plugin comarquage a besoin du plugin boucles_xml (ce qui est le cas), il (comarquage) pourrait aller le (boucles xml) cocher automatiquement dès que le plugin comarquage est choisi (bon, ceci est aussi possible via une nouvelle balise dans plugin.xml, mais c'est pour illustrer l'idée générale).

A+

Franck.

Franck Ducas a écrit :

Bonjour,

Est-ce qu'il serait concevable de mettre dans chaque dossier racine de la zone un fichier index.xml qui indiquerait notamment la nature (le type) des contenus dudit dossier ?

je ne crois pas que ce soit la bonne approche, car il ne faut pas raisonner en fonction du dossier de la zone, mais en fonction du dossier plugins/ des utilisateurs, qui n'a rien a voir : il peut etre organisé n'importe comment, ne contenir que certains plugins ...
Et il est hors de question de demander aux utilisateurs de maintenir un tel fichier representatif de leur dossier.

Je demande ça car il me semble que dans le cadre du plugin "habillages" (par exemple, mais il doit y en avoir d'autres), si il existe un tel fichier dans les dossiers racines, cela permettrait de faire agir le plugin indépendemment des noms de dossier : le plugin prendrait le contenu d'une balise "type" (ou autre) d'un fichier index.xml situé à la racine d'un dossier, et si le type est "squelettes" le plugin sait qu'il a affaire à un dossier de squelettes, que ce dossier s'appelle "squelettes", "_squelettes_", "skels", "themes", "machin", "toussa". Et on rejoindrait l'idée de James de commenter un peu le contenu des dossiers racines de la zone...

Exemple pas très pertinent, mais ça illustre quand même :
On peut imaginer avec ça une vrai interaction entre les plugins : si par exemple le plugin comarquage a besoin du plugin boucles_xml (ce qui est le cas), il (comarquage) pourrait aller le (boucles xml) cocher automatiquement dès que le plugin comarquage est choisi (bon, ceci est aussi possible via une nouvelle balise dans plugin.xml, mais c'est pour illustrer l'idée générale).

A+

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

cedric.morin@yterium.com a écrit :

Est-ce qu'il serait concevable de mettre dans chaque dossier racine de la zone un fichier index.xml qui indiquerait notamment la nature (le type) des contenus dudit dossier ?

je ne crois pas que ce soit la bonne approche, car il ne faut pas raisonner en fonction du dossier de la zone, mais en fonction du dossier plugins/ des utilisateurs, qui n'a rien a voir : il peut etre organisé n'importe comment, ne contenir que certains plugins ...
Et il est hors de question de demander aux utilisateurs de maintenir un tel fichier representatif de leur dossier.

Je me suis certainement mal fait comprendre (mais c'est probablement une question de vocabulaire que j'ai certainement mal utilisé). Quand je parle de dossier "racine", je parle d'un dossier qui est à la racine de la zone, pas de tous les dossiers contenus dans le dossier "plugins" par exemple, ni dans les sous dossiers des dossiers racines de la zone.

Ex. : le dossier "_squelettes_" de la zone ne contiendrait qu'un seul fichier index.xml (qui indiquerait notamment "<type>squelettes</type>") et non dans ses sous dossiers. Le dossier "_filtres_" de la zone ne contiendrait qu'un seul fichier index.xml (qui indiquerait notamment "<type>filtres</type>") et non dans ses sous dossiers. Le dossier "_images_" ne contiendrait qu'un seul fichier index.xml (qui indiquerait notamment "<type>images</type>") et non dans ses sous dossiers.

Bien sûr les noms de dossier sont à titre d'exemple. Je ne parle que de mettre un index.xml dans le dossier de premier niveau de la zone et nulle part ailleurs (et surtout pas dans les sous dossiers).

Ceci permet de reconnaitre *le* dossier de squelettes de la zone (ou le dossier "styles", ou le dossier "images") *et* celui installé sur un site dans un dossier "plugins", quel que soit le nom qu'on donne au dossier en question. Il s'agit d'un seul dossier, et non de ses sous dossiers.

Je ne sais pas si je suis clair... En gros, ça donnerait ça :

_squelettes_
  index.xml
  squeletteMachin
  squeletteTruc
  squeletteBidule
  ...
plugins
  index.xml
  pluginMachin
  pluginTruc
  pluginBidule
  ...
filtres
  index.xml
  filtresMachin
  filtresTruc
  filtresBidule
  ...

En gros, le index.xml aurait le même sens qu'un lisez-moi.txt situé dans le dossier de premier niveau de la zone et indiquerait la nature du contenu du dossier. C'est tout. Il ne serait mis qu'à la racine du dossier, pas dans ses sous dossiers...

Le 29/09/06, Franck Ducas <franck.ducas@free.fr> a écrit :En gros, le index.xml aurait le même sens qu’un lisez-moi.txt situé dans

le dossier de premier niveau de la zone et indiquerait la nature du
contenu du dossier. C’est tout. Il ne serait mis qu’à la racine du
dossier, pas dans ses sous dossiers…

Dans quel but ce fichier ? cela fige la structure et de toute façon si quelque chose doit chercher ses petits dans les fichiers de la zone il faut le faire à mon avis en parsant chacun des petits xml associés aux composants comme ça il y a indépendance entre une organisation physique des dossiers qui n’est ni plus ni moins que décorative pour faciliter la navigation sur la zone (en dehors de l’aspect tronc et branche/tags … )


Arnaud

En gros, le index.xml aurait le même sens qu'un lisez-moi.txt situé dans
le dossier de premier niveau de la zone et indiquerait la nature du
contenu du dossier. C'est tout. Il ne serait mis qu'à la racine du
dossier, pas dans ses sous dossiers...

Le nom du dossier ne peut-il pas suffire ???

-Nicolas

--
Nicolas "Brush" HOIZEY
Clever Age : http://www.clever-age.com/
Gastero Prod : http://www.gasteroprod.com/
phpHeaven : http://www.phpheaven.net/

cedric.morin@yterium.com a écrit :

Franck Ducas a écrit :

Bonjour,

Est-ce qu'il serait concevable de mettre dans chaque dossier racine de la zone un fichier index.xml qui indiquerait notamment la nature (le type) des contenus dudit dossier ?

je ne crois pas que ce soit la bonne approche, car il ne faut pas raisonner en fonction du dossier de la zone, mais en fonction du dossier plugins/ des utilisateurs, qui n'a rien a voir : il peut etre organisé n'importe comment, ne contenir que certains plugins ...
Et il est hors de question de demander aux utilisateurs de maintenir un tel fichier representatif de leur dossier.

j'ai du mal avec cette histoire de nom du dossier ...

OK, techniquement, beaucoup de choses en dependent, mais ca ne devrait avoir aucune implication au niveau "API".

Pour moi, la seule chose unique, importante, qui caracterise aujourd'hui un plugin, c'est le prefixe.

Si on regarde liste_plugins(), ca retourne le nom des repertoires, c'est dommage.
Ca ne permet pas à un plugin X de detecter si un plugin Y est installé.

Sinon, pour tout autre renseignement complementaire (version, version mini de spip, dependance, groupe...), le fichier plugin.xml est fait pour, non ?
il faut juste qu'on se mette d'accord sur la DTD et sur les grands themes dans lesquels regrouper les plugins.

mes 2 sous.

@++

Ventre Arnaud a écrit :

Le 29/09/06, *Franck Ducas* <franck.ducas@free.fr <mailto:franck.ducas@free.fr>> a écrit :En gros, le index.xml aurait le même sens qu'un lisez-moi.txt situé dans

    le dossier de premier niveau de la zone et indiquerait la nature du
    contenu du dossier. C'est tout. Il ne serait mis qu'à la racine du
    dossier, pas dans ses sous dossiers...

Dans quel but ce fichier ?

Pour que par exemple un gestionnaire de squelettes dans le plugin "habillages" ne s'intéresse qu'au contenu du dossier qui contient les squelettes. On peut mettre ce dossier dans un dossier "plugins" ou dans la zone, quel que soit son nom, de telle façon que le plugin habillage le reconnaissance comme un dossier de squelettes. Si il faut que le plugin parse tous les xml associés aux composants de chaque sous dossiers de chaque dossier de la zone (ou d'un site), comme tu le soulignes ci-dessous, et étant donné que pour le plugin habillages nous avons comme obligation de ne pas fourrer les dossiers de styles, de squelettes et d'images dans le dossier plugins, ça risque de ramer pour réunir tous les squelettes en scrutant tous els dossiers et sous-dossiers...

> cela fige la structure et de toute façon si

quelque chose doit chercher ses petits dans les fichiers de la zone il faut le faire à mon avis en parsant chacun des petits xml associés aux composants comme ça il y a indépendance entre une organisation physique des dossiers qui n'est ni plus ni moins que décorative pour faciliter la navigation sur la zone (en dehors de l'aspect tronc et branche/tags ... )

Tu veux dire qu'il faudrait, sur la zone, pouvoir mettre des squelettes dans un dossier "filtres" (l'exemple est volontairement grossier) ?

Nicolas Hoizey a écrit :

En gros, le index.xml aurait le même sens qu'un lisez-moi.txt situé dans
le dossier de premier niveau de la zone et indiquerait la nature du
contenu du dossier. C'est tout. Il ne serait mis qu'à la racine du
dossier, pas dans ses sous dossiers...

Le nom du dossier ne peut-il pas suffire ???

Si celui-ci change ?
Si on est pas d'accord sur le nom ?
Si quelqu'un installe le contenu du dossier sous un autre nom sur son site (dans le dossier plugins ou pas) ?

En gros, il faut soit fixer trois répertoires pour le plugin habillages *et* pour le développement en général (squelettes, images, styles), soit mettre en eux un seul fichier xml (ou autre) qui indique le type des contenus du dossier.

Ca me semble plus propre avec un fichier qui donne des infos sur le contenu d'un répertoire.

Je ne parle pas des plugins : je parle de trois dossiers (squellettes, styles, et images) dont deux seront chargés, lourds, et hors répertoire "plugins" (squelettes et images) dans lesquels il faudra que le plugin aille puiser les squelettes dispos et les images qui s'appliquent aux styles adaptés à ce jeu de squelettes.

En gros, le plugin va chercher dans les dossiers à la racine du site si il trouve un dossier qui contient *un* fichier index.xml (ou autre) qui contient une balise <prefix> nommée "squelettes". Si il le trouve, il parse les theme.xml dans les sous dossiers du dossier en question pour faire sa petite cuisine sur les compatibilités (charger les infos sur le jeu de styles et d'images adaptés à ce jeu de squelettes). Si il ne le trouve pas, il cherche dans le dossier "plugins". Si il ne le trouve toujours pas, il cherche dans tous les sous dossiers. Si rien, le plugin ne peut pas fonctionner.

Un fichier theme.xml, on en a déjà parlé, donnerait des infos sur la compatibilité entre les styles, images et jeux de squelettes. Mais il est à mon avis trop lourd d'indiquer le type du dossier en question dedans, car si un dossier contient 60 sous dossiers dont 30 de squelettes, il faudra s'ouvrir 60 fichiers theme.xml pour repérer les 30 squelettes... Tandis que là, on classe les squelettes dans un dossier, les images dans un autre, les styles dans un autre, et à l'intérieur de chacun de ces dossiers, on mets un index.xml (ou autre) qui indique la nature du contenu du dossier : le plugin ne lit que 3 (voire un peu plus) fichiers xml pour savoir quel dossier contient des squelettes, des images, ou des styles.

On 29 Sep, 2006, at 09:14, Franck Ducas wrote:

cedric.morin@yterium.com a écrit :

Est-ce qu'il serait concevable de mettre dans chaque dossier racine de
la zone un fichier index.xml qui indiquerait notamment la nature (le
type) des contenus dudit dossier ?

je ne crois pas que ce soit la bonne approche, car il ne faut pas
raisonner en fonction du dossier de la zone, mais en fonction du dossier
plugins/ des utilisateurs, qui n'a rien a voir : il peut etre organisé
n'importe comment, ne contenir que certains plugins ...
Et il est hors de question de demander aux utilisateurs de maintenir un
tel fichier representatif de leur dossier.

Je me suis certainement mal fait comprendre (mais c'est probablement une
question de vocabulaire que j'ai certainement mal utilisé). Quand je
parle de dossier "racine", je parle d'un dossier qui est à la racine de
la zone, pas de tous les dossiers contenus dans le dossier "plugins" par
exemple, ni dans les sous dossiers des dossiers racines de la zone.

mais ça revient au même: tu ne peux pas supposer de la structure des dossiers dans le rep plugins de l'utilisateur. Que ce se soit pour le dossier precis du plugin ou le dossier "racine" dans lequel il se trouve.

La zone, comme on l'a bcp dit est organisé pour les dev, mais apres, dans l'ideal, les utilisateurs récupèrent les plugins individuellement en package dans un coin.
Il n'y a donc aucune raison pour qu'ils installent un nouveau plugin "squelettes" dans un sous repertoire specifique de leur dossier plugins. Et il y a aussi peut de chance que s'il crée un tel sous-rep, il aille chercher qq part un index.xml pour le placer dans son nouveau répertoire.

Tu ne peux faire aucune presupposition sur la structure des dossiers dans le rep plugins. Le cas minimum, c'est que tout soit à plat (c'est ce que je fais en prod, où je n'ai que 3 ou 4 plugs d'installés) et le cas max, c'est que l'utilisateur ait construit une structure de fichiers totalement diffèrente et pas du tout organisé par type de plugin (genre, organisé par nom du webmestre qui a installé le plugin et s'oqp de sa mise à jour...)

Voilà, c'est ça que voulait dire Cedric :wink:

Pierre

Pierre Andrews a écrit :

Tu ne peux faire aucune presupposition sur la structure des dossiers dans le rep plugins. Le cas minimum, c'est que tout soit à plat (c'est ce que je fais en prod, où je n'ai que 3 ou 4 plugs d'installés) et le cas max, c'est que l'utilisateur ait construit une structure de fichiers totalement diffèrente et pas du tout organisé par type de plugin (genre, organisé par nom du webmestre qui a installé le plugin et s'oqp de sa mise à jour...)

Voilà, c'est ça que voulait dire Cedric :wink:

Ben moi je ne parle toujours pas de plugins exclusivement :slight_smile: Je commites un exemple (sans incidence) de ce dont je parle, ce sera mieux je pense. :wink:

Franck Ducas a écrit :

 a écrit :

  
Est-ce qu'il serait concevable de mettre dans chaque dossier racine de 
la zone un fichier index.xml qui indiquerait notamment la nature (le 
type) des contenus dudit dossier ?
 

      
je ne crois pas que ce soit la bonne approche, car il ne faut pas 
raisonner en fonction du dossier de la zone, mais en fonction du dossier 
plugins/ des utilisateurs, qui n'a rien a voir : il peut etre organisé 
n'importe comment, ne contenir que certains plugins ...
Et il est hors de question de demander aux utilisateurs de maintenir un 
tel fichier representatif de leur dossier.
    

Je me suis certainement mal fait comprendre (mais c'est probablement une 
question de vocabulaire que j'ai certainement mal utilisé). Quand je 
parle de dossier "racine", je parle d'un dossier qui est à la racine de 
la zone, pas de tous les dossiers contenus dans le dossier "plugins" par 
exemple, ni dans les sous dossiers des dossiers racines de la zone.

Ex. : le dossier "_squelettes_" de la zone ne contiendrait qu'un seul 
fichier index.xml (qui indiquerait notamment "<type>squelettes</type>") 
et non dans ses sous dossiers. Le dossier "_filtres_" de la zone ne 
contiendrait qu'un seul fichier index.xml (qui indiquerait notamment 
"<type>filtres</type>") et non dans ses sous dossiers. Le dossier 
"_images_" ne contiendrait qu'un seul fichier index.xml (qui indiquerait 
notamment "<type>images</type>") et non dans ses sous dossiers.

Bien sûr les noms de dossier sont à titre d'exemple. Je ne parle que de 
mettre un index.xml dans le dossier de premier niveau de la zone et 
nulle part ailleurs (et surtout pas dans les sous dossiers).

Ceci permet de reconnaitre *le* dossier de squelettes de la zone (ou le 
dossier "styles", ou le dossier "images") *et* celui installé sur un 
site dans un dossier "plugins", quel que soit le nom qu'on donne au 
dossier en question. Il s'agit d'un seul dossier, et non de ses sous 
dossiers.

Je ne sais pas si je suis clair... En gros, ça donnerait ça :

_squelettes_
	index.xml
	squeletteMachin
	squeletteTruc
	squeletteBidule
	...
plugins
	index.xml
	pluginMachin
	pluginTruc
	pluginBidule
	...
filtres
	index.xml
	filtresMachin
	filtresTruc
	filtresBidule
	...

En gros, le index.xml aurait le même sens qu'un lisez-moi.txt situé dans 
le dossier de premier niveau de la zone et indiquerait la nature du 
contenu du dossier. C'est tout. Il ne serait mis qu'à la racine du 
dossier, pas dans ses sous dossiers...
  

oui mais c’est le meme probleme, les utilisateurs ne doivent pas a avoir a gerer ce genre de soucis dans leur repertoire local
ils chargent des paquets zip de leur plugins ou theme, les dezippent dans plugins/ et ca doit marcher
a nous de se debrouiller pour que ca marche sans le mettre a contribution

Cedric

Le 29/09/06, Franck Ducas <franck.ducas@free.fr> a écrit :

Ventre Arnaud a écrit :

Le 29/09/06, Franck Ducas <franck.ducas@free.fr
mailto:[franck.ducas@free.fr](mailto:franck.ducas@free.fr)> a écrit :En gros, le index.xml aurait le
même sens qu’un lisez-moi.txt situé dans

le dossier de premier niveau de la zone et indiquerait la nature du
contenu du dossier. C’est tout. Il ne serait mis qu’à la racine du
dossier, pas dans ses sous dossiers…

Dans quel but ce fichier ?

Pour que par exemple un gestionnaire de squelettes dans le plugin
« habillages » ne s’intéresse qu’au contenu du dossier qui contient les
squelettes. On peut mettre ce dossier dans un dossier « plugins » ou dans
la zone, quel que soit son nom, de telle façon que le plugin habillage
le reconnaissance comme un dossier de squelettes. Si il faut que le
plugin parse tous les xml associés aux composants de chaque sous
dossiers de chaque dossier de la zone (ou d’un site), comme tu le
soulignes ci-dessous, et étant donné que pour le plugin habillages nous
avons comme obligation de ne pas fourrer les dossiers de styles, de
squelettes et d’images dans le dossier plugins, ça risque de ramer pour
réunir tous les squelettes en scrutant tous els dossiers et sous-dossiers…

j’ai pas tout suivi mai ce genre de chose e se fait que quand on modifie la config non, est-ce si long que ça ? en plus pour moi ce genre de fichier devrait s’auto générer par ananlyse du contenu si vraiment il en faut un (en gros on crée un fichier cache si ya pb de temps de réponse).

cela fige la structure et de toute façon si
quelque chose doit chercher ses petits dans les fichiers de la zone il
faut le faire à mon avis en parsant chacun des petits xml associés aux
composants comme ça il y a indépendance entre une organisation physique
des dossiers qui n’est ni plus ni moins que décorative pour faciliter la
navigation sur la zone (en dehors de l’aspect tronc et branche/tags … )

Tu veux dire qu’il faudrait, sur la zone, pouvoir mettre des squelettes
dans un dossier « filtres » (l’exemple est volontairement grossier) ?

non juste que comme la structure de la zone ne semble pas encore claire cela revient à figer la structure 1 rep = 1 type de contenu.

C’est juste histoire de donner mon point de vue et qui se rapproche de ma méthode de classement en général (un gros tas avec des petites étiquettes ;-b)

a+


Arnaud