Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] Publication/Edition de fichier de configuration

3 réponses
Avatar
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

3 réponses

Avatar
Yves Rutschle
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
Avatar
Stephane Bortzmeyer
On Sun, Feb 17, 2008 at 07:06:03PM +0100,
Franck JONCOURT wrote
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
Avatar
Yves Rutschle
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