[HS] Publication/Edition de fichier de configuration

Le
Franck JONCOURT
Bonsoir,

Actuellement, je dispose d'un fichier de configuration à la
php.ini :

[block_1]
param1 =
param2 =

[block_2]
param1 =
param2 =

J'aimerais le publier via un serveur web et le rendre éditable
par l'utilisateur. Le contenu du fichier est très variable d'une
application à une autre.

Du coup, j'avais dans l'idée de modifier le fichier de configuration
pour le mettre au format xml, le rendant ainsi __affichable__ via une
page web grâce aux transformations xsl.

http://www.w3.org/TR/xslt

Je dois aussi pouvoir le rendre __éditable__ de la même manière,
je pense :p!

Quelqu'un aurait-il un avis la dessus ? ou une méthode plus
appropriée.

Merci.


Franck Joncourt
http://www.debian.org/ - http://smhteam.info/wiki/



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yves Rutschle
Le #9713141
On Sun, Feb 17, 2008 at 07:06:03PM +0100, Franck JONCOURT wrote:
Du coup, j'avais dans l'idée de modifier le fichier de configuration
pour le mettre au format xml, le rendant ainsi __affichable__ via une
page web grâce aux transformations xsl.

http://www.w3.org/TR/xslt

Je dois aussi pouvoir le rendre __éditable__ de la même manière,
je pense :p!

Quelqu'un aurait-il un avis la dessus ? ou une méthode plus
appropriée.



Je suis rétrograde, et je pense que 6 lignes de Perl valent
mieux que 6 lignes de xslt, d'autant que je préfère avoir
des fichiers INI que des fichiers XML (les fichiers XML sont
rapidement lourds à éditer à la main).

Après, c'est chacun son truc... et tu peux sans doute
trouver des solutions toutes faites pour faire exactement ce
que tu veux, en Perl, PHP, ... ou en xslt (c'est un besoin
assez classique).

Pour illustration, mes 6 lignes de Perl:

(apt-get install libconfig-inifiles-perl)

#! /usr/bin/perl -w

use strict;
use Config::IniFiles;
tie my %conf, 'Config::IniFiles', (-file=>'toto.ini');

print "<html> <body> <form>";
foreach my $section (keys %conf) {
print "<h1>$section</h1>";
foreach my $param (keys %{$conf{$section}}) {
print "$param: <input type=text value="$conf{$section}{$param}" />";
}
}
print "</form></body></html>";

Le traitement du formulaire ne serait pas beaucoup plus
compliqué.

Y.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Stephane Bortzmeyer
Le #9710701
On Sun, Feb 17, 2008 at 07:06:03PM +0100,
Franck JONCOURT a message of 46 lines which said:

le rendre éditable par l'utilisateur.



Pas de solution simple (bref, il faut programmer).

Sur le papier, Xforms (http://www.w3.org/MarkUp/Forms/) résoud une
partie du problème. Mais je ne connais aucun navigateur qui les mette
en oeuvre, donc c'est à programmer côté serveur ou bien dans un
greffon du navigateur.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Yves Rutschle
Le #9710661
On Tue, Feb 19, 2008 at 10:09:30PM +0100, Stephane Bortzmeyer wrote:
> le rendre éditable par l'utilisateur.

Pas de solution simple (bref, il faut programmer).



C'est pas non plus la mer à boire, voici une solution
complète:


#! /usr/bin/perl -wT

use strict;
use CGI qw(:standard);
use Config::IniFiles;

my $ini_file = 'toto.ini';
tie my %conf, 'Config::IniFiles', (-file=>$ini_file);

foreach my $param_name (param()) {
my ($section,$param) = split "/", $param_name;
$conf{$section}{$param} = param($param_name);
}

print header;

(tied %conf)->RewriteConfig;

print start_html("Editing $ini_file"), start_form;
foreach my $section (sort keys %conf) {
print hr, h1($section);
foreach my $param (sort keys %{$conf{$section}}) {
print "$param:",textfield("$section/$param",$conf{$section}{$param}),br;
}
}
print hr, submit, end_form, end_html;


Après, pour bien faire (et surtout si ça va sur l'internet,
il faut bien sûr valider un peu les paramètres d'entrée,
authentifier les utilisateurs... ça n'est plus forcément
trivial.

Y.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme