<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sp.Blog &#187; ajax</title>
	<atom:link href="http://blog.stephanepouyllau.org/tag/ajax/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.stephanepouyllau.org</link>
	<description>le blog de Stéphane Pouyllau</description>
	<lastBuildDate>Sat, 07 Jan 2012 18:07:33 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Frises chronologiques sur le web : utilisation de Timeline pour faire un mashup AJAX avec PHP et MySQL</title>
		<link>http://blog.stephanepouyllau.org/99</link>
		<comments>http://blog.stephanepouyllau.org/99#comments</comments>
		<pubDate>Sun, 02 Dec 2007 11:36:34 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[informatique]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/frises-chronologiques-sur-le-web-utilisation-de-timeline-un-mashup-ajax-avec-php-et-mysql</guid>
		<description><![CDATA[Bonsoir, Je profite d&#8217;un week-end loin de Paris et d&#8217;un long voyage en train pour décrire (mais avec beaucoup de retard) un petit mashup que j&#8217;ai réalisé pour le site @.ampère et l&#8217;histoire de l&#8217;électricité. L&#8217;idée de départ était de développer des chronologies avec l&#8217;outil Timeline mis au point par le MIT et que pas [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir,</p>
<p>Je profite d&#8217;un week-end loin de Paris et d&#8217;un long voyage en train pour décrire (mais avec beaucoup de retard) un petit mashup que j&#8217;ai réalisé pour le site <a href="http://www.ampere.cnrs.fr" target="_blank">@.ampère et l&#8217;histoire de l&#8217;électricité</a>. L&#8217;idée de départ était de développer des chronologies avec <a href="http://simile.mit.edu/timeline/" title="Timeline" target="_blank">l&#8217;outil Timeline</a> mis au point par le <a href="http://www.mit.edu/" title="MIT, Boston, US." target="_blank">MIT</a> et que pas mal de développeurs connaissent et utilisent. Timeline permet de créer des frises chronologiques à l&#8217;image de celles encore présentes dans les livres scolaires d&#8217;histoire (nous avons tous rêvés devant ces frises en couleurs présentant l&#8217;histoire de l&#8217;Homme par exemple). C&#8217;est outil utilise des éléments en javascript et du XML : c&#8217;est donc un système basé sur AJAX. Dans le site @.ampère nous voulions faire une frise avec des éléments historiques différents le tout devant être synchronisé :</p>
<ul>
<li>une sous-frise sur les grands personnages de l&#8217;histoire de l&#8217;électricité</li>
<li>une sous-frise sur les grandes découvertes de ce même domaine</li>
</ul>
<p>Dans Timeline, les évènements (events) sont stockés dans un fichier XML très simple. Dans le but d&#8217;inclure Timeline dans le système d&#8217;information (SI) du site, nous avons utilisé deux tables MySQL pour mettre les données brutes (date, contenu de l&#8217;évènement, etc.). Un script PHP utilisant DOM réalise alors une présentation XML de ces données : en sortie, nous avons deux fichiers XML, un pour chaque sous-frise, qui sont normés suivant le schéma des fichier nécessaire au fonctionnement de Timeline. Nos deux tables MySQL sont indépendantes du système AJAX de Timeline : c&#8217;est PHP/DOM qui formate les données en XML suivant la grammaire Timeline. Nous avons d&#8217;ailleurs un autre programme PHP qui présente ces même données sous la forme d&#8217;une page web classique. Le schéma suivant en résume le modèle :</p>
<p><a href="http://www.flickr.com/photos/stephanepouyllau/2079757325/" title="Modèle informatique de frise chronologique (site www.ampere.cnrs.fr) de stephane.pouyllau, sur Flickr"><img src="http://farm3.static.flickr.com/2275/2079757325_35b1f4a0ca.jpg" alt="Modèle informatique de frise chronologique (site www.ampere.cnrs.fr)" border="0" height="375" width="500" /></a></p>
<p>Les deux fichiers XML sont stockés dans un répertoire du serveur et chargé dans l&#8217;application AJAX qui gère Timeline. Le XML resemble à ceci :<br />
<code><br />
</code></p>
<pre id="line1"><span class="pi">&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;</span>&lt;<span class="start-tag">data</span>&gt;

&lt;<span class="start-tag">event</span><span class="attribute-name"> start</span>=<span class="attribute-value">"Jan 00 1544 00:00:00 GMT" </span><span class="attribute-name">end</span>=<span class="attribute-value">"Jan 00 1603 00:00:00 GMT" </span><span class="attribute-name"></span></pre>
<pre id="line1"><span class="attribute-name">image</span>=<span class="attribute-value">"AMP_1015.jpg" </span><span class="attribute-name">isDuration</span>=<span class="attribute-value">"true" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name">title</span>=<span class="attribute-value">"William GILBERT"</span>&gt;(1544-1603)&lt;/<span class="end-tag">event</span>&gt;&lt;<span class="start-tag">event</span><span class="attribute-name"> start</span>=<span class="attribute-value">"Jan 00 1666 00:00:00 GMT" </span><span class="attribute-name">end</span>=<span class="attribute-value">"Jan 00 1736 00:00:00 GMT" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name"></span></pre>
<pre id="line1"><span class="attribute-name">isDuration</span>=<span class="attribute-value">"true" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name">title</span>=<span class="attribute-value">"Stephen GRAY"</span>&gt;(1666-1736)&lt;/<span class="end-tag">event</span>&gt; ...</pre>
<pre id="line1">&lt;/data&gt;</pre>
<p>Pour le tout fonctionne, il nous a fallu ajouter un petit programme php de vérification de la forme des dates/heures histoire de ne pas avoir de bug dans l&#8217;une des deux sous-frises. Pour terminer nous avons ajouté, dans le fichier javascript de la frise (main.js) qui pilote l&#8217;affichage écran, les instructions suivantes :</p>
<pre><font color="#99cc00">bandInfos[1]</font>.eventPainter.setLayout(bandInfos[1].eventPainter.getLayout());

tl = Timeline.create(document.getElementById("my-timeline"), bandInfos, Timeline.HORIZONTAL);

Timeline.loadXML(<font color="#993366">"kronos1.xml"</font>, function(xml, url) { <font color="#ff6600">eventSourceA</font>.loadXML(xml, url); });

Timeline.loadXML(<font color="#993366">"kronos2.xml"</font>, function(xml, url) { <font color="#ff6600">eventSourceB</font>.loadXML(xml, url); });</pre>
<p>Nous avons une <font color="#99cc00">&laquo;&nbsp;bandInfos&nbsp;&raquo;</font> dans laquelle nous &laquo;&nbsp;chargeons&nbsp;&raquo; les deux fichier XML : <font color="#993366">kronos1.xml et kronos2.xml</font>. Ce chargement est réalisé au sein des deux <font color="#ff6600">eventSource (A et B)<font color="#000000">. Ce fichier, main.js, qui est un fichier javascript pur est chargé dans une page HTML (ou PHP dans notre cas) par l&#8217;utilisation d&#8217;une simple balise &lt;script&gt; dans l&#8217;entête. La frise &laquo;&nbsp;double&nbsp;&raquo; est ensuite affiché dans le code HTML via un &laquo;&nbsp;id&nbsp;&raquo; de balise &lt;div&gt; : </font></font></p>
<pre id="line10">&lt;<span class="start-tag">div</span><span class="attribute-name"> id</span>=<span class="attribute-value">"my-timeline" </span><span class="attribute-name">style</span>=<span class="attribute-value">"height:800px; width:100%;"</span>&gt;&lt;/<span class="end-tag">div</span>&gt;</pre>
<pre id="line10"></pre>
<p>Le tour est joué, nous avons une belle frise chronologique présentant de façon synoptique ces deux types d&#8217;évènements.  Voici le résultat :</p>
<p><a href="http://www.flickr.com/photos/stephanepouyllau/2079807147/" title="FriseChronoAmpere de stephane.pouyllau, sur Flickr"><img src="http://farm3.static.flickr.com/2088/2079807147_ae47b09cb8.jpg" alt="FriseChronoAmpere" border="0" height="375" width="500" /></a></p>
<p>Bonne fin de week-end,</p>
<p>Stéphane.</p>
<p>PS : Merci à Marie-Hélène Wronecki pour le travail sur la base de données MySQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/99/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax ?</title>
		<link>http://blog.stephanepouyllau.org/22</link>
		<comments>http://blog.stephanepouyllau.org/22#comments</comments>
		<pubDate>Sun, 12 Feb 2006 16:11:33 +0000</pubDate>
		<dc:creator>pouyllau</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[ajax]]></category>

		<guid isPermaLink="false">http://www.stephanepouyllau.org/wp/?p=22</guid>
		<description><![CDATA[Bonjour, Je vais tester ce nouveau &#171;&#160;language&#160;&#187; : l&#8217;Ajax ? curieux comme nom, non ? Je pense qu&#8217;il y a plein d&#8217;applications possibles pour les sites de recherche au CNRS : comme par exemple l&#8217;interaction d&#8217;élements composant une page de résultats de base de données en php+MySQL. Je ne sais ce que ça vaut en [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>Je vais tester ce nouveau &laquo;&nbsp;language&nbsp;&raquo; : l&#8217;Ajax ? curieux comme nom, non ? Je pense qu&#8217;il y a plein d&#8217;applications possibles pour les sites de recherche au CNRS : comme par exemple l&#8217;interaction d&#8217;élements composant une page de résultats de base de données en php+MySQL.</p>
<p>Je ne sais ce que ça vaut en terme de temps de développement et de sécurité sur le serveur. Je vous tiens au courant.</p>
<p>Stéphane.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/22/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

