NetBeans est mon éditeur depuis un moment, principalement pour le php.
Je ne sais pas trop pourquoi, c'est une sorte de hasard. On ne jure dans le développement que par Eclipse, et pourtant, chaque fois que j'ai essayé, je me suis heurtée à mes limites : je n'arrive pas à comprendre le fonctionnement de ce machin.
NetBeans, c'est simple, efficace, et complexe et compliqué à la fois, j'aime.
On peut l'utiliser "basiquement" comme éditeur, pour sa coloration syntaxique.
Il permet d'installer des plugins très facilement, ce qui m'autorise à programmer en c++, en javascript, et maintenant, je trouve même l'éditeur xml assez pratique, ce qui m'intéresse pour mon projet en XSLT.
J'ai installé un plug-in débogueur XSLT. On va voir ;)
Je suis sur la version 7.2.1
http://java.net/projects/netbeans-xslt-debugger/downloads
ici, je trouve cette version normalement adaptée pour netbeans 7.2. Je dois installer java comme plug-in pour que ça fonctionne. Une fois que c'est fait : trop de la balle. Tout fonctionne, je vois les erreurs que j'ai faites :o
GRATUIT !!
Mais 'ttention, c'est oracle, pas libre, netbeans. Plus facile semble-t-il au départ, mais moins puissant que Eclipse, et... Moins libre ;)
M'en fiche, pour l'instant ça répond à mes besoins.
J'écris mes apprentissages en espérant mieux les retenir. Aucune vocation pédagogique vers l'extérieur ni vers le partage :)
Affichage des articles dont le libellé est XML. Afficher tous les articles
Affichage des articles dont le libellé est XML. Afficher tous les articles
mardi 15 janvier 2013
jeudi 10 janvier 2013
travaux forum : archivage
Archivage des vieux posts à rallonge
La base de données est lourde, et les vieux membres réfractaires au droit à l'oubli voudraient éviter qu'on jette des messages pour tout archiver ad vitam aeternam.Même si personnellement, je ne suis pas du tout d'accord avec cette idée (je suis pour le droit à l'oubli, au droit de poster sans qu'on garde le moindre post quotidien éternellement) je tenterai de répondre à cette demande.
Le projet est simple :
- Exporter les posts en question en un fichier XML à l'aide de phpmyadmin
- les traiter à l'aide d'un php pour les mettre sous forme de pdf ou de html ou les deux.
- Stocker ces deux/trois fichier sur le serveur, récupérer le nom, l'indiquer quelque part... (ceci peut difficilement se faire automatiquement, étant donné qu'il faut décider de l'archivage ou non, on ne le fait pas d'office.)
- Aller fouiner dans les lignes du fichier XML de départ et recommencer l'opération dans le cas où un membre ayant participé décide de supprimer son compte et ses messages, c'est la moindre des choses.
Pré-requis : [...]
Linux : NetBeans -> OK après quelques heures...
php, mysql, phpmyadmin etc. ok ! Pfiou...
Etat d'avancement : Réflexion, aucune ligne tapée. Je lutte avec mon serveur local. Pas évident de passer sous linux comme ça.
Voici la structure de la requête jopinte (ou copmment réinventer l'eau chaude...)
SELECT phpbb3_posts.poster_id, phpbb3_posts.topic_id, phpbb3_users.username
FROM phpbb3_posts
INNER JOIN phpbb3_users ON (
SELECT user_id
FROM phpbb3_users
WHERE phpbb3_users.user_id = phpbb3_posts.poster_id ) = user_id
WHERE phpbb3_posts.topic_id = 12878;
Il me faut exporter le résultat en xml.
J'essaie...
SELECT phpbb3_posts.poster_id, phpbb3_posts.topic_id, phpbb3_users.username, phpbb3_posts.post_text, phpbb3_posts.post_subject
FROM phpbb3_posts
INNER JOIN phpbb3_users ON (
SELECT user_id
FROM phpbb3_users
WHERE phpbb3_users.user_id = phpbb3_posts.poster_id ) = user_id
WHERE phpbb3_posts.topic_id = 12878 order by post_id;
Je note que rien que sur MON post;, qui ne fait jamais que 30 pages, j'ai un fichier qui pèse près de 700 kb...
Je décide de voir du côté de XSL, finalement, parce que php n'apporte aucune plus-value (enfin, la seule, disons, c'est que je gère un peu mieux que XML à la base mais à part ça... C'est tout.)
Me voilà rendue ici :
http://www.lehtml.com/xml/xsl_first.html (à tout hasard, je me rappelle que j'ai un libre énormous sur XML que je n'ai pas encore lu... Je vais le mettre à côté de moi, vais en avoir besoin.)
Première chose à faire sur le xml exporté :
ajouter la référence vers la "feuille de style".
J'ai réussi à débuter ma feuille XSLT, mais voilà que je butte sur un problème assez... "problématique".
Comment écrire une date timestamp en date ?
Eh bien, en XSLT, surtout XSLT1.0, c'est carrément galère, aucune solution n'existe, il va me falloir formater ça.
Super simple, quoi...
A suivre.
Après deux jours sur le sujet, je passe à php pour exporter mon html.
En effet, il est en fin de compte quasi impossible de faire une fichue boucle sans user de moyens complètement stupides, et donc, je crois que le langage n'est pas adapté à ce que je veux faire.
Je vais donc compiler non pas avec netbeans, mais avec php.
A suivre
________________________________________________________________________
Me voici ici :
http://bob.developpez.com/phpxslt/
à lire un peu les possibilités que j'ai en php.
Heu, je découvre avec horreur qu'il me faut installer ça sur mon serveur local. C'est parti pour quelques bidouilles sympathiques encore...
Après une demie journée à m'arracher les cheveux, voilà que j'ai trouvé mon bonheur. Comme souvent, ce n'était pas bien difficile, mais... J'ai perdu un temps bête :
http://doc.ubuntu-fr.org/modules_php
ici, j'ai trouvé la commande, il suffisait d'ajouter xsl à php, comme indiqué sur la page.
Facile... Et fait.
:s
Allez, au boulot, j'ai perdu un temps bête.
La syntaxe n'est pas du tout celle que je crois.
http://www.phpfacile.com/creer_un_site_web_en_php/parser_un_document_xml_1.php5
la syntaxe décrite dans mon livre fonctionne... Y a des fois, c'est pas la peine d'aller chercher si loin, quoi. Maintenant, ça ne règle pas le problème du traitement de la date.
Erg.
En fait, je recommence mon projet, je vais également recommencer mon post ici du coup pour mieux l'organiser.
http://cybapprentie.blogspot.be/2012/11/manipuler-du-html-en-js-partie-2.html
En php, la méthode similaire est de créer un fichier xml sous forme de variable, qu'on peut sauver dans un document (xml...) et donc, je vais exporter mes données sous forme d'un beau xml que j'aurais moi-même ordonné comme j'en ai besoin, et pas comme phpMyadmin veut, parce que sinon, manipuler les chiffres de cette façon, c'est infernal.
http://forum.phpfrance.com/xml/indentation-xml-t31924.html
J'ajoute une méthode qui me servira sans doute : il s'agit de préserver l'indentation si l'on manipule le fichier.
samedi 3 décembre 2011
Exporter des données en XML
Le but de l'exercice :
Maintenant que ma requête est faite, que j'affiche les données dont j'ai besoin,
je veux exporter ça dans un flux RSS.
Ensuite, quand je serai grande, je voudrais en faire des .html à l'aide de XSLT, mais ça c'est pour après.
D'abord, attelons-nous à la tâche de l'export en XML.
Rien de plus simple...
-> On créé une page php qui appelle les données dont on a besoin en requête mysql.
-> On créé un fichier qu'on place dans le répertoire data, qui s'appelle par exemple news.xml
->Pour le RSS, je pense qu'il s'agit juste de le créer et de mettre en forme les données dont il a besoin ?! J'vais vérifier ça.
Du coup, par exemple, quand on entre une news, on créé automatiquement le fichier XML, ça me paraît plus prudent.
Il faudra en faire autant quand on l'éditera d'ailleurs.
MAIS
Je me pose une question.
Je développe en local, je ne compte pas mettre ça sur le net... Ca sert à rien qu'à me compliquer la vie.
Comment je fais pour vérifier que mon XML est bien formé ?
Et après, faudra que je fasse un schema... Ca sera encore mieux !
Mais là, je suis en week-end.
Voilà retour de week-end chargé, et un peu bossé.
Mon script ressemble à ça (j'ai enlevé beaucoup mais en gros ...)
C'est fait, mon flux rss est créé. Il est froid à souhait et il lui manque des fonctions du genre "n'afficher qu'un certain nombre de lettres ou de mots mais pas plus ça sert à rien..."
Maintenant que ma requête est faite, que j'affiche les données dont j'ai besoin,
je veux exporter ça dans un flux RSS.
Ensuite, quand je serai grande, je voudrais en faire des .html à l'aide de XSLT, mais ça c'est pour après.
D'abord, attelons-nous à la tâche de l'export en XML.
Rien de plus simple...
-> On créé une page php qui appelle les données dont on a besoin en requête mysql.
-> On créé un fichier qu'on place dans le répertoire data, qui s'appelle par exemple news.xml
->Pour le RSS, je pense qu'il s'agit juste de le créer et de mettre en forme les données dont il a besoin ?! J'vais vérifier ça.
Du coup, par exemple, quand on entre une news, on créé automatiquement le fichier XML, ça me paraît plus prudent.
Il faudra en faire autant quand on l'éditera d'ailleurs.
MAIS
Je me pose une question.
Je développe en local, je ne compte pas mettre ça sur le net... Ca sert à rien qu'à me compliquer la vie.
Comment je fais pour vérifier que mon XML est bien formé ?
Et après, faudra que je fasse un schema... Ca sera encore mieux !
Mais là, je suis en week-end.
Voilà retour de week-end chargé, et un peu bossé.
Mon script ressemble à ça (j'ai enlevé beaucoup mais en gros ...)
$string = "Et pour ma part, après, je créé un fichier xml =>
Daily Cyb
Les news en temps pas réel du tout
http://localhost/journal/
";
while($row=mysql_fetch_array($result))
{
$string .= "
" . ucfirst($row['titre']) . "
" . $row['contenu'] . "
" . $row['date'] . "
http://www.example.org/actu1
";
}
$string .= "
";
$handle = fopen("data/flux.xml", "w+");
fwrite($handle, $string);
fclose($handle);
C'est fait, mon flux rss est créé. Il est froid à souhait et il lui manque des fonctions du genre "n'afficher qu'un certain nombre de lettres ou de mots mais pas plus ça sert à rien..."
Inscription à :
Articles (Atom)