Il est nouveau, il bôôôô le formulaire :-D
Nouvelles entrées possibles : altitude, latitude, longitude, nom des habitants, commentaires.
Il n'est pas besoin que le fichier xml appelé détienne déja ces markup, le script les crée tout seul.
Par contre j'ai un pb avec les caractères spéciaux, et je ne vois pas trop la solution...
A vos tests !
J'ai créé une DTD pour Normandie Web pour le document XML pour permettre la validation. Cela pourra aider à voir certains problèmes. La DTD changera en fonction de nos besoins notamment si tout le formulaire marche bien, je pense que l'on va pouvoir complexifier certaines choses comme la zone éditeurs au niveau du markup.
Je pense notamment à avoir un ensemble éditeur, comme j'en avais parlé précédemment qui sera plus facileà gérer si l'on recherche un auteur en particulier. :)
<!DOCTYPE nwcity PUBLIC "-//NW//DTD NW 1.0//EN"
"http://www.normandieweb.org/nwxml/DTD/nw.dtd">
Voilà, voilà, Pascale, je ne sais pas si cela va t'aider dans la démarche.
Je suppose qu'à un moment ou un autre quand tu traites le texte, tu traites le contenu d'une variable que tu lis et sur laquelle tu apliques des modifications.
J'ai mis le programme en ligne : Read-index6.php (Code source)
Ce que tu vois dans la page qui t'es retourné est une reconstruction visuelle du fichier xml et la dernière ligne est le réaffichage du nom du département dans un H2. Juste pour te montrer que la variable peut-être réutiliser à l'extérieur de la fonction donc dans une autre fonction. :)
Pascale, Delphine,
Je suis là, j'ai eu juste une grooooosssseeee semaine et celle ci je l'envisage difficilement aussi. Donc dans les résolutions que j'ai prises hier, j'ai pris tous mes vendredi jusqu'à fin août, je pourrais donc consacrer plus de temps à NW.
Je suis en train de créer un petit script pour voir si cela peut t'aider Pascale, c'est à dire récupérer le contenu des données que tu veux dans la variable que tu veux comme cela tu seras capable de manipuler toutes les variables à ta guise.
C'est super pour les liens :)
Lien : Pour les liens, je préférerais que l'on affiche pas les URLs et que l'on fasse des vrais liens même s'il y en a beaucoup comme cela dû à l'histoire de Normandie Web. Mais on pourra les corriger au fur et à mesure. Donc je préferais un mécanisme du type [http://www.mammouthland.net/|Pascale]. Mais je pense que c'est prévu puisque tu l'as mis en commentaire ;)
Citation simple : pas de problèmes à priori, faudra juste trouver un moyen plus tard de donner une URL de source et la langue si nécéssaire. En gros une citation pour sa partie la plus simple se décompose en 3 morceaux.
La texte de citation, l'URL de la source si elle est disponible, et la langue de la citation. <q lang="fr" cite="http://www.example.org/lavoisier/">Rien ne ser perd, tout se transforme</q>.
Pour la citation blockquote, tu as un petit problème. Il manque les paragraphes. Le même commentaire s'applique pour la langue et l'origine, mais on va dire que c'est une deuxième priorité.
<blockquote lang="fr" cite="http://www.example.org/lavoisier/">
<p>Rien ne ser perd, tout se transforme</p>
<p>Deuxième paragraphe</p>
</blockquote>
Tu peux laisser tomber l'attribut style, car on peut gérer cela dans la feuille de style, mais je comprends que tu l'as fait pour la présentation ici.
Listes : parfait pour l'instant, en espérant que ce seront toujours des listes courtes.
Test de tortures contre les petits malins : A corriger, lorsque dans le formulaire tu peux ajouter des mots clés et des descriptions. Interdire les doubles guillemets, car au moment de la génération de la page, cela va tout foutre en l'air.
Par contre très bien tu as fait sauter dans le formulaire les balises non autorisées :) J'avais rentré des choses méchantes, frames et balises de fin html.
Grand Bravo grande prêtresse PHP...
Pascale,
je t'ai fait un exemple de parseur XML qui je pense devrait être simple, mais si tu as des doutes tu peux demander. En gros, tu as une fonction pour gérer la balise de début, une fonction pour gérer la balise de fin, et une pour les données à l'intérieur d'une balise. Si cela ne semble pas clair, dis le moi :)
Le programme s'appelle read-index4.php.
<?php $file = "index.xml"; $depth = array(); print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n"; print " \"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd\">\n"; print "<html>\n"; print "<head><title>Essai de lecture avec PHP</title></head>\n"; print "<body>\n"; print "<h1>lecture de la structure avec le script read-index4.php</h1>\n"; print "<p>Voir l'article de"; print " <a href=\"/weblog/archives/000065.html#000065\">"; print "Normandie WebLog</a></p>\n"; function startElement($parser, $name, $attrs) { global $currentTag; $currentTag = $name; switch($name) { case "NWNOMVILLE"; echo "<h2>"; break; case "NWNOMVILLE"; echo "<p>"; break; default: break; } } function endElement($parser, $name) { global $currentTag; $currentTag = $name; switch($name) { case "NWNOMVILLE"; echo "</h2>"; break; case "NWNOMVILLE"; echo "</p>"; break; default: break; } $currentTag = ""; } function characterData($parser, $data) { global $currentTag; switch ($currentTag) { case "NWNOMVILLE": echo "Nom de la Commune: $data"; break; case "NWREGION": echo "Nom de la region: $data"; break; //etc default: break; } } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); //ouvrir le fichier if (!($fp = fopen($file, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); print "</pre></body></html>"; ?>
J'ai ajouté un lien en haut à droite de la page index de Normandie WebLog pour rendre plus accessible le formulaire de test de Pascale. :)
Salut Pascale,
Deux petites choses rapides que je mets là en attendant de revenir plus en détails sur les autres.
Un formulaire très impressionnant XHTML et CSS. Très joli modèle de choses propres qu'il est possible de réaliser.
Aaron m'a donné deux liens car il lit ce que nous faisons.
editors: http://docbook.org/tdg/en/html/authorgroup.html
comments : http://docbook.org/tdg/en/html/xref.html
The xref thingy was used to handle comments (et. al.) in wblgml so that
you do...
<comments xref = "http://some-uri" />
....or...
<comments>
<comment id = "1235" />
<!-- comment data -->
</comment>
<comment xref = "http://some-uri" />
</comment>
You mileage may vary ;-)
*****
<!ENTITY % _item "(xref|(revhistory,post,comments?,footnotes?,(categoryref?|categoryref*)))">
<!ENTITY % _item.attrs "id ID #REQUIRED
state %local.attr.state; #IMPLIED
nextid IDREF #IMPLIED
parentid IDREF #IMPLIED">
<!ELEMENT comments (xref|(comment?|comment*))>
<!ELEMENT comment %_item;>
<!ATTLIST comment %_item.attrs;>
Intéressant à explorer. Ne pas paniquer Pascale ;) pour tout le verbiage technique. Je regarderais et expliquerait. :)
Bonjour !
Je ne me suis pas encore occupée de nouveaux markups, mais en revanche le formulaire ne permet plus au nouveau rédacteur de modifier le texte existant.
Mine de rien.. ça m'a prit du temps avant de trouver une ruse fiable !!
Autre amélioration : le rédacteur visualise son texte pour une éventuelle correction.
A vos petits doigts pour tester...
En effet, il faut générer de nouvelles balises pour cela je peux les définir mais tu peux le faire aussi Pascale, ce n'est pas si important que cela. Le toute c'est d'être logique dans les regroupements par exemple toutes les infos géographiques ensemble comme.
<geo>
<alt>123</alt> (altidtude donnée en mètre.)
<lat>45°23</lat>
<long>-1°24</long>
</geo>
etc...
De même pour Code Postal, nom des habitants, etc...
Les balises n'ont pas forcément besoin d'être remplis mais la fonction doit être là. Ainsi au fur et à mesure que l'on crée ou modifie on peut ajouter l'information.
:) Politique des petits pas. Avant d'avoir toutes les communes dans Normandie Web, je pense qu'il m'a fallu au moins 4 ans.
Toujours problème de date Pascale ;)
Je suis d'accord avec vous. L'auteur ne devrait peut-être pas avoir à modifier le texte original. Il sera à charge du modérateur
- de compléter une information
- de créer une nouvelle page
- de rajouter l'information à la suite de l'existante.
Pour le nouvel auteur qui vient s'ajouter créer un formulaire en 3 case. Prénom, Nom et Email, Site Web ???
Pour le markup à utiliser on aura alors:
<editeurs>
<auteur>
<prenom></prenom>
<nom></nom>
<email></email>
<web></web> ???
</auteur>
Ici un autre auteur, etc...
</editeurs>
Il serait également intéressant d'avoir une zone commentaire pour l'auteur. Par exemple l'auteur à fait une mise à jour mais veut expliquer le contexte de sa mise à jour et de son ajout. Donc on peut rajouter ce commentaire.
<comment>
<item date="2002-07-16-1" email="toto@toto.org">
Le commentaire de la personne.</item>
... commentaire suivant ...
</comment>
Les commentaires ne seront pas affichés pour le rendu HTML mais seront stockés dans le fichier xml.
Bonjour Delphine et heureux de te voir ici.
Tout d'abord, pour ce qui est des feuilles de style du weblog, je les ai modifié de façon à ce qu'elle ne soit pas chargées dans un vieux navigateur qui ne sait pas les comprendre.
Cela se résume à passer de l'élément link à l'élément style et d'utiliser un import.
Je te conseille tout de même à passer à Mozilla, qui est beaucoup mieux pour le support des technologies du W3C. Maintenant le site devrait être lisible sur ton vieux navigateur.
les modifs effectuées aujourd'hui :
- présentation du formulaire en deux colonnes
- blocs de citations gérant les paragraphes
- gestion de listes... simples
- "ajout" et non "remplacement" du redacteur et de son email
Questions :
- les infos supplémentaires (latitude, nom des hab etc.) devraient-elles avoir une balise xml spécifique ? si oui laquelle ?
- Pour le modérateur, le texte récupéré doit-il être avec balises (comme c'est le cas actuellement) ou les zigouigoui made in Pascale (eperluettes, tirets etc.) ?
Remarque :
- Est-il bien raisonnable de laisser à disposition au rédacteur lambda la contribution existante ? Ne serait-ce pas plus prudent de ne le laisser qu'ajouter au texte plutot que de modifier ?
Delphine, ce serait bien que tu joues les candides en testant aussi le formulaire : Justument, cela ne doit pas être trop technique pour être accessible à tout le monde. ;-)
Il fait un temps magnifique aujourd'hui en Normandie, je vais aller soigner mon allergie solaire et laisser un peu tomber l'écran cathodique. ;-)
Liste des petits problèmes concernant la génération du markup.
1. Les paragraphes fonctionnent bien félicitations :)
2. le citation est pas bon quand il est dans une phrase, utiliser q, une citation peut également être de langue différente et avoir une url de référence et un bien sûr un auteur que l'on peut mettre avec Karl.
3. Lorsque la citation s'étalent en dehors d'une phrase ou sur plusieurs paragraphes, cela est un blockquote.
4. Donner la possilibité de créer une URL avec un sens sémantique, par exemple, [http://www.la-grange.net/|Karl] va créer Karl.
5. Pour les listes peut-être quelquechose comme :
* premier élément
* 2eme item
* 3eme item, etc
Le problème est de faire des listes à plusieurs paragraphes.
Quelques idées qui ne sont pas urgentes car c'est juste en fait au niveau interface :).
Pour l'édition je pense qu'il serait plus facile pour les humanoïdes d'avoir ancien et nouveau contenu côte à côte, du genre deux colonnes avec correspondance droite gauche. Ainsi les gens ont directement sous les yeux ce qui a été précédemment fait.
Egalement, une chose importante, imaginons, qu'une commune était éditée conséquement par quelqu'un, il ne serait pas juste de faire disparaître son nom d'auteur parce-qu'une autre personne à pris la suite. Donc ma proposition :
L'auteur précédent n'est pas modifiable mais une case nouvelle auteur peut-être ajoutée, avec nom et prénom séparé et Email séparé ??? d'autres infos???
Et quand le formulaire est soumis à modération, le modérateur décide si les deux doivent être présents, juste l'un des deux etc...
Je pense qu'une liste des informations supplémentaires pourraient être dressés et ajouter comme la longitude et latitude, code postal, nom des habitants, etc.
Les mots Normandie, Normandie Web, etc... sont des mots standards que l'on peut cacher dans le sens où les gens n'ont uniquement qu'à rajouter les mots convenables :) le reste est ajouté par le programme.
Date de mofication: Tu l'écris à l'envers dans le nouveau fichier, le format standard est AAAA-MM-JJ donc pour éviter les erreurs, le mieux est de présenter 3 cases... ou mieux de ne rien présenter du tout... et de laisser le programme changer la date de modification.
Le texte existant a perdu son formatage ce qui diminue la lisibilité.
Salut Pacale,
Est-ce que la page sur le sujet est suffisante ou veux tu que j'explore un peu plus loin ?
Les deux sont des éléments de citation. Blockquote est un élément de niveau bloc qui peut contenir des paragraphes il agit comme un div mais avec une sémantique particulière, celle de la citation.
q est son équivalent mais en "inline", c'est à dire à l'intérieur d'un élément de bloc comme p par exemple.
Grand maître,
Modeste scarabée a besoin d'une révision en html :
En attendant, il faut tester et retester le formulaire de contribution et de modération pour mettre en évidence les bugs...
http://mammouthland.free.fr/nw/14/aunaysurodon/aunaysurodon/
La Grande rousse a trouvé ce lien très très très intéressant. Il s'agit du lexique des Normand. Cela permettra de compléter les infos une fois que Normandie Web sera reparti. :)
Salut Pascale,
Je pense que ce weblog a été la meilleure idée depuis bien longtemps pour Normandie Web, car cela permet de travailler plus facilement :)
J'ai mis en ligne ici le fichier de Caen
Mais en Général si tu veux un fichier de Normandie Web, c'est simple, les fichiers xml sont tous dans http://www.normandieweb.org/nwxml/meme/adresse/fichier.xml
Entre les balises texte je serais partisan d'autoriser le minimum vital quitte à augmenter après s'il y a des besoins spécifiques.
Pour les images pas de systèmes intelligent pour l'instant, si ce n'est que celles qui sont déjà présentes sont toujours dans le fichier xml avec la balise img :)
voila
Bon, puisque ça a l'air de te convenir (because pas de couple php/MySql), je t'expose mon pb suivant : les images.
Comment les images sont-elles gérées dans ton fichier xml ?
- balises classiques à inclure entre les balises <texte></texte> ?
- another one ?
J'ai bien lu toutes tes remarques et tous tes fichiers... Mais je ne m'en suis pas servie ;-)
En fait, ton parser read-index3 ne me sert pas à grand chose.
J'ai encore bcp de zones d'ombres, mais comme tu le dis "à chaque brique suffit sa peine" :-D
Essaye cela, s'il te plait, et dis-moi si cela commence à ressembler à ce que tu désires.
http://mammouthland.free.fr/nw/14/aunaysurodon/aunaysurodon/
Pascale,
Je poursuis dans nos aventures, voici un script très simple en PHP pour lire la structure d'un fichier XML : read-index3.php.
<?php $file = "index.xml"; $depth = array(); print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n"; print " \"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd\">\n"; print "<html>\n"; print "<head><title>Essai de lecture avec PHP</title></head>\n"; print "<body>\n"; print "<h1>lecture de la structure avec le script read-index3.php</h1>\n"; print "<p>Voir l'article de"; print " <a href=\"/weblog/archives/000065.html#000065\">"; print "Normandie WebLog</a></p>\n<pre>"; function startElement($parser, $name, $attrs) { global $depth; for ($i = 0; $i < $depth[$parser]; $i++) { print " "; } print "$name\n"; $depth[$parser]++; } function endElement($parser, $name) { global $depth; $depth[$parser]--; } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); if (!($fp = fopen($file, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); print "</pre></body></html>"; ?>