<?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>Le blogue d&#039; &#187; Développement</title>
	<atom:link href="http://blogue.infoglobe.ca/category/web/developpement/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogue.infoglobe.ca</link>
	<description>Veille technologique et logiciels libres</description>
	<lastBuildDate>Tue, 11 Oct 2011 17:05:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>PHPUnit; Intégration de nouvelles fonctionnalités</title>
		<link>http://blogue.infoglobe.ca/2011/06/30/phpunit-integration-de-nouvelles-fonctionnalites/</link>
		<comments>http://blogue.infoglobe.ca/2011/06/30/phpunit-integration-de-nouvelles-fonctionnalites/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 19:15:39 +0000</pubDate>
		<dc:creator>Yannick Voyer</dc:creator>
				<category><![CDATA[CMS/SGC]]></category>
		<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=2325</guid>
		<description><![CDATA[Lorsque nous développons de nouvelles fonctionnalités dans notre code, il nous arrive de se demander si une modification viendra en briser une autre créée antérieurement. Afin de s&#8217;assurer de la stabilité de notre composante, il est impératif d&#8217;avoir un système qui nous assure que les fonctionnalités implémentées auparavant n&#8217;aient pas été supprimées. PHPUnit à la [...]]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { so-language: zxx } -->Lorsque nous développons de nouvelles fonctionnalités dans<img class="alignright" title="PHPunit" src="data:image/png;base64,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" alt="" width="108" height="90" /> notre code, il nous arrive de se demander si une modification viendra en briser une autre créée antérieurement. Afin de s&#8217;assurer de la stabilité de notre composante, il est impératif d&#8217;avoir un système qui nous assure que les fonctionnalités implémentées auparavant n&#8217;aient pas été supprimées. PHPUnit à la rescousse!</p>
<p>&nbsp;</p>
<p>PHPUnit permet de tester nos blocs de code indépendamment les uns des autres. Lors de la création d&#8217;un test de fonctionnalité, nous devons donner une valeur à notre fonction. PHPUnit s&#8217;assurera que la valeur retournée par la fonction sera la valeur attendue. Plus la fonction sera étendue afin de supporter de nouveaux paramètres, plus les tests nous permettront de nous assurer qu&#8217;aucune fonctionnalité précédemment développée ne sera brisée.</p>
<p><strong>Installation</strong></p>
<p>Le mode d&#8217;installation à été trouvé sur <a href="http://www.phpunit.de/manual/current/en/installation.html">PHPUnit.de</a>. Il nous permet d&#8217;installer la version via les canaux PEAR.</p>
<p><em>Installer xdebug</em></p>
<p><em>Installer PHPUnit</em></p>
<blockquote><p><em>sudo pear channel-discover pear.phpunit.de</em></p>
<p><em>sudo pear install &#8211;alldeps phpunit/PHPUnit</em></p></blockquote>
<p>Une fois que PHPUnit est installé et fonctionnel, vous êtes prêt à créer votre premier test. Idéalement, si vous utilisez une librairie ou un framework, vous voudrez sans doute vouloir configurer vos tests afin que chacun utilise les classes de votre librairie. Pour cela, je vous suggère de vous créer une classe qui servira de « bootstrap » et qui sera appelée avant chaque test.</p>
<p>Voici un exemple de « bootstrap ».</p>
<p><strong>setup.php</strong></p>
<blockquote><p>class Setup {</p>
<p style="padding-left: 30px;">public static function init() {</p>
<p style="padding-left: 60px;">// Root, libraries, classes and tests directories.<br />
$root       = dirname(dirname(__FILE__));<br />
$config     = $root} . &#8216;/config&#8217;;<br />
$librairies = $root . &#8216;/libraries&#8217;;<br />
$tests      = $root . &#8216;/tests&#8217;;</p>
<p style="padding-left: 60px;">// Empêche le coverage du dossier de tests.<br />
PHPUnit_Util_Filter::addDirectoryToFilter($tests);</p>
<p style="padding-left: 60px;">// Update include path.<br />
$path = array($config, $librairies, $tests, get_include_path());<br />
set_include_path(implode(PATH_SEPARATOR, $path));</p>
<p style="padding-left: 60px;">// Add files to the PHPUnit code coverage whitelist.<br />
if (version_compare(PHPUnit_Runner_Version::id(), &#8217;3.1.6&#8242;, &#8216;&gt;=&#8217;)) {<br />
PHPUnit_Util_Filter::addDirectoryToWhitelist($starLib);</p>
<p style="padding-left: 30px;">}</p>
<p>}</p></blockquote>
<p>Votre classe de test</p>
<p><strong>Blog.php</strong></p>
<blockquote><p>require_once &#8216;PHPUnit/Framework.php&#8217;;<br />
//require_once dirname(__FILE__) . &#8216;/setup.php&#8217;;</p>
<p>class Blog extends PHPUnit_Framework_TestCase {</p>
<p style="padding-left: 30px;">public function test_failed() {</p>
<p style="padding-left: 60px;">$this-&gt;assertFalse(true, &#8216;Ce test ne fonctionne pas&#8217;);</p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 30px;">public function test_success() {</p>
<p style="padding-left: 60px;">$this-&gt;assertTrue(true, &#8216;Ce test fonctionne&#8217;);</p>
<p style="padding-left: 30px;">}</p>
<p>}</p></blockquote>
<p>Une fois ces étapes réalisées, vous n&#8217;avez qu&#8217;à exécuter le fichier Blog.php pour obtenir ce résultat:</p>
<blockquote><p>phpunit &#8211;colors Blog.php</p></blockquote>
<p><a href="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Screenshot.png"><img class="alignnone size-medium wp-image-2481" src="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Screenshot-300x198.png" alt="" width="300" height="198" /></a></p>
<p>Pour plus d&#8217;informations sur l&#8217;utilisation de PHPUnit, voir sur le <a href="https://github.com/sebastianbergmann/phpunit/">site </a>.</p>
<p>Bon test !</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2011/06/30/phpunit-integration-de-nouvelles-fonctionnalites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flexform et itemsProcFunc</title>
		<link>http://blogue.infoglobe.ca/2011/06/21/flexform-et-itemsprocfunc/</link>
		<comments>http://blogue.infoglobe.ca/2011/06/21/flexform-et-itemsprocfunc/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 20:27:01 +0000</pubDate>
		<dc:creator>Mehdi Guermazi</dc:creator>
				<category><![CDATA[CMS/SGC]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[flexform]]></category>
		<category><![CDATA[gestion de projets]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=2519</guid>
		<description><![CDATA[Ces derniers temps, l&#8217;équipe Infoglobe a été assez active sur le blogue. C&#8217;est le T3CON à San Francisco qui nous a inspiré tous. Nos articles, bien qu&#8217;intéressants, n&#8217;étaient pas très techniques. Cependant, notre blogue s&#8217;adresse aussi aux programmeurs et aux utilisateurs invétérés de notre SGC favori TYPO3. C&#8217;est la raison pour laquelle j&#8217;ai décidé aujourd&#8217;hui, [...]]]></description>
			<content:encoded><![CDATA[<p>Ces derniers temps, l&#8217;équipe Infoglobe a été assez active sur le blogue. C&#8217;est le T3CON à San Francisco qui nous a inspiré tous. Nos articles, bien qu&#8217;intéressants, n&#8217;étaient pas très techniques. Cependant, notre blogue s&#8217;adresse aussi aux programmeurs et aux utilisateurs invétérés de notre SGC favori TYPO3.</p>
<p>C&#8217;est la raison pour laquelle j&#8217;ai décidé aujourd&#8217;hui, de vous parler d&#8217;une astuce que j&#8217;ai appris il y a de cela quelques mois. Les logiciels libres c&#8217;est avant tout un partage de connaissances!</p>
<p><strong>Flexform et itemsProcFunc</strong></p>
<p>Récemment, j&#8217;ai dû développer une extension qui liste des enregistrements provenant du DAM (Digital Assets Management). Très simple me diriez-vous? C&#8217;est vrai lorsque nous sommes seul à gérer un site. La plupart du temps, les sites web et les intranets que nous développons pour nos clients sont beaucoup plus complexes que ça. Ils impliquent un grand nombre d&#8217;intervenants (utilisateurs back-end BE) et un grand nombre de rôles et de permissions (groupes back-end BE). Le choix des enregistrements dans le formulaire back-end créé grâce à un &laquo;&nbsp;flexform&nbsp;&raquo; dépend donc des permissions accordées à l&#8217;utilisateur BE courant et aux groupes auxquels ce dernier appartient.</p>
<p>Supposons par exemple que notre utilisateur BE appartienne à un groupe BE qui a pour &laquo;&nbsp;filemount&nbsp;&raquo; un dossier bien précis. Il ne faudrait pas dans ce cas, lui afficher des enregistrements du DAM qui ne sont pas inclus dans ce dossier.</p>
<p><strong>Exemple :</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong></p>
<div id="attachment_2520" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Capture-blog.png"><img class="size-medium wp-image-2520" src="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Capture-blog-300x85.png" alt="Un champ de type select dans un flexform" width="300" height="85" /></a><p class="wp-caption-text">Un champ de type select dans un flexform</p></div>
<p></strong></p>
<p><strong> </strong></p>
<p>&nbsp;</p>
<pre>&lt;config&gt;
  &lt;type&gt;select&lt;/type&gt;
  &lt;foreign_table&gt;table&lt;/foreign_table&gt;
  &lt;foreign_table_where&gt;
      AND table.champ_1 = x  AND table.champ_2 = y
      AND table.deleted = 0 AND table.hidden = 0
      ORDER BY table.champ_3 ASC
  &lt;/foreign_table_where&gt;
&lt;/config&gt;</pre>
<p><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; font-size: 13px;">Dans un flexform, nous pouvons utiliser un &laquo;&nbsp;select&nbsp;&raquo; avec un &laquo;&nbsp;foreign_table&nbsp;&raquo; et faire des requêtes simples avec &laquo;&nbsp;foreign_table_where&nbsp;&raquo; comme dans l&#8217;exemple ci-haut. Par contre, </span>la tâche devient plus ardue <span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; font-size: 13px;">lorsqu&#8217;on arrive au point où il faut jouer dans plusieurs tables de la base de données et chercher dans des relations stockées dans un champ grâce à des indentifiants séparés par des virgules.  Heureusement que TYPO3 est assez flexible pour nous permettre de tout configurer selon nos besoins. Dans le &laquo;&nbsp;flexform&nbsp;&raquo; nous pouvons utiliser &laquo;&nbsp;itemsProcFunc&nbsp;&raquo;, qui nous permet d&#8217;aller chercher les items de notre &laquo;&nbsp;select&nbsp;&raquo; dans une userfunc.</span></p>
<p><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; font-size: 13px;">Dans la classe user_maclass, il suffit d&#8217;avoir une fonction addElements qui nous permettra de faire les requêtes les plus complexes possibles. Cette fonction peut recevoir deux variables par référence : &amp;$config et &amp;$ref. La première contient toute la configuration du champ du flexform en question. On pourra alors accéder à la valeur du paramètre &laquo;&nbsp;exemple&nbsp;&raquo; dans $config['config']['exemple']. Nous pouvons aussi modifier les valeurs dynamiquement, seulement en les attribuant à la variable : $config['items'] = array_merge($config['items'],$optionList);.</span></p>
<p><strong>Flexform :</strong></p>
<pre><strong> </strong>&lt;config&gt;
  &lt;type&gt;select&lt;/type&gt;
  &lt;itemsProcFunc&gt;user_maclass-&gt;addElement&lt;/itemsProcFunc&gt;
  &lt;exemple&gt;valeur&lt;/exemple&gt;
&lt;/config&gt;</pre>
<p><strong>class PHP :</strong></p>
<pre><strong> </strong>class user_maclass {        
   function addElement(&amp;$config) {
      $optionList = $this-&gt;getList($config);
      if(is_array($optionList)){	    
         $config['items'] = array_merge($config['items'],$optionList);
      }	    
   }
}</pre>
<p><strong>Attention</strong> &#8211; la class class.user_maclass.php doit être incluse par le fichier ext_tables.php de la façon suivante :</p>
<pre>include_once(t3lib_extMgm::extPath($_EXTKEY).'class.user_maclass.php');</pre>
<p>Pour accéder aux données de l&#8217;utilisateur BE courant, nous avons la variable globale $BE_USER.</p>
<p><strong>Exemple :</strong></p>
<pre>global $BE_USER;

if(!$BE_USER-&gt;isAdmin()){        
   //Récuperer les usergroup de l'utilisateur actuel    
   $ug = $BE_USER-&gt;user['usergroup'];    
   $arrug = explode(',',$ug);
}</pre>
<p>On pourra toujours affirmer que TYPO3 est difficile à apprendre, du moins, pour les développeurs et non pas pour l&#8217;utilisateur final. Mais personne ne peut nier la force et la flexibilité de ce SGC.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2011/06/21/flexform-et-itemsprocfunc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erreur de BOM (Byte Order Mark).</title>
		<link>http://blogue.infoglobe.ca/2011/06/14/erreur-de-bom-byte-order-mark/</link>
		<comments>http://blogue.infoglobe.ca/2011/06/14/erreur-de-bom-byte-order-mark/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 20:17:44 +0000</pubDate>
		<dc:creator>Yannick Voyer</dc:creator>
				<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=2390</guid>
		<description><![CDATA[ï»¿       Ça vous dit quelque chose? Dernièrement, j&#8217;ai tenté de mettre du code en production. C&#8217;est alors que ces caractères plutôt étranges sont apparus dans le haut de ma page. J&#8217;ai d&#8217;abord pensé que c&#8217;était un problème d&#8217;encodage. Je me suis donc mis à la recherche d&#8217;un saut de ligne ou d&#8217;un autre caractère qui [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<p style="text-align: center;"><a href="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Blogue-sur-les-BOM.jpg"><img class="aligncenter size-medium wp-image-2506" title="Blogue sur les BOM" src="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Blogue-sur-les-BOM-300x261.jpg" alt="" width="136" height="117" /></a></p>
<p style="text-align: center;"><strong>ï»¿       Ça vous dit quelque chose?</strong></p>
</blockquote>
<p>Dernièrement, j&#8217;ai tenté de mettre du code en production. C&#8217;est alors que ces caractères plutôt étranges sont apparus dans le haut de ma page. J&#8217;ai d&#8217;abord pensé que c&#8217;était un problème d&#8217;encodage. Je me suis donc mis à la recherche d&#8217;un saut de ligne ou d&#8217;un autre caractère qui pouvait être rendu avant le <em>doctype</em>. Il m&#8217;a fallu bien peu de temps pour me rendre compte que ces recherches ne règleraient en rien mon problème. J&#8217;ai donc regardé l&#8217;encodage des fichiers sur le serveur afin de les comparer avec l&#8217;encodage de la page dans Firefox. Mon constat : les deux étaient identiques, soit UTF-8.</p>
<p>&nbsp;</p>
<p><strong><em> </em></strong>J&#8217;ai alors eu l&#8217;idée d&#8217;utiliser le « valideur W3C»  afin de vérifier s&#8217;il n&#8217;y avait pas d&#8217;autres problèmes sur la page en question. À ma grande surprise, cette note est apparue:</p>
<p style="text-align: center;"><strong><em> Byte-Order Mark found in UTF-8 File</em></strong></p>
<p><a href="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Blogue-BOM-2.jpg"> </a>Le Byte-Order Mark permet aux programmes de comprendre que le texte est en UTF-8, UTF-16 ou UTF-32. Le <strong><em><a href="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Blogue-BOM-2.jpg"><img class="size-medium wp-image-2507 alignright" title="Blogue BOM 2" src="http://blogue.infoglobe.ca/wp-content/uploads/2011/06/Blogue-BOM-2-225x300.jpg" alt="Idée" width="119" height="157" /></a></em></strong>BOM est un espace insécable de largeur nulle <em>zero-width no-break space. </em>Certains encodages tel que <em>UTF-16</em> ont besoin des <em>BOM</em> pour bien fonctionner. Pour ce qui est de <em>UTF-8</em>, il n&#8217;est pas nécessaire et est plutôt mal supporté par les IDE. Par contre, certains programmes peuvent l&#8217;ajouter pour diverses raisons. Puisque les <em>BOM</em> ne sont pas visibles, nous sommes incapables de les remplacer avec un &laquo;&nbsp;search/replace&nbsp;&raquo;.</p>
<p>On peut corriger ce problème en utilisant un éditeur qui permet d&#8217;enregistrer un fichier dans un encodage sans BOM. En faisant quelques recherches sur le net, j&#8217;ai trouvé que <em>Notepad++</em> nous offre cette possibilité. Dans l&#8217;éditeur, cliquez sur l&#8217;option <em>UTF-8 without BOM </em>dans le menu <em>Encoding</em>. Il ne vous restera qu&#8217;à <em> </em>sauvegarder votre fichier pour que le caractère ne s&#8217;affiche plus sur la page.</p>
<p>Voilà donc une bonne raison pour laquelle il vaut mieux utiliser des éditeurs standards pour tous les développeurs afin qu&#8217;aucun problème causé par une personne ne surgisse et bloque tous les autres développeurs.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2011/06/14/erreur-de-bom-byte-order-mark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TOP 51 des sites Web créés avec TYPO3</title>
		<link>http://blogue.infoglobe.ca/2008/10/22/51-references-typo3-prestigieuses/</link>
		<comments>http://blogue.infoglobe.ca/2008/10/22/51-references-typo3-prestigieuses/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 03:02:26 +0000</pubDate>
		<dc:creator>Infoglobe</dc:creator>
				<category><![CDATA[CMS/SGC]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Air France-KML]]></category>
		<category><![CDATA[Audi]]></category>
		<category><![CDATA[BAYER]]></category>
		<category><![CDATA[besto]]></category>
		<category><![CDATA[Bonjour Québec]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[Epson]]></category>
		<category><![CDATA[Ford]]></category>
		<category><![CDATA[Handicap International]]></category>
		<category><![CDATA[l'UNICEF]]></category>
		<category><![CDATA[Philips]]></category>
		<category><![CDATA[reférence]]></category>
		<category><![CDATA[The Economist]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[Total]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Unesco]]></category>
		<category><![CDATA[unicef]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=817</guid>
		<description><![CDATA[Il arrive régulièrement que nous nous posions la question de savoir quelles sont les grosses entreprises qui utilisent TYPO3. On se rend très vite compte qu&#8217;il y en a un nombre très impressionnant dès lors qu&#8217;on regarde en Allemagne; mais encore faut-il savoir parler allemand&#8230; pas comme moi! Donc je me suis dit qu&#8217;il serait [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-847" title="Logo de TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/rtemagicc_typo3-logo.gif" alt="" width="154" height="204" />Il arrive régulièrement que nous nous posions la question de savoir quelles sont les grosses entreprises qui utilisent TYPO3. On se rend très vite compte qu&#8217;il y en a un nombre très impressionnant dès lors qu&#8217;on regarde en Allemagne; mais encore faut-il savoir parler allemand&#8230; pas comme moi!</p>
<p align="justify">Donc je me suis dit qu&#8217;il serait surement intéressant de faire le tour et de lister les grosses entreprises qui utilisent le CMS TYPO3 pour gérer leur site Web.</p>
<p align="justify">Et voici ce que ça donne! TYPO3 est utilisé par de nombreuses références prestigieuses telles CISCO, l&#8217;UNICEF, Air France-KML, The Economist, Total, EDS, Epson, BAYER, Ford, UNESCO, Audi, Philips, Handicap International ou encore Bonjour Québec&#8230; Vous en trouverez ici 51 des meilleures.</p>
<p align="justify">Bien entendu, nous n&#8217;avons pu valider que les sites Web. Il fut en effet impossible de vérifier si 3M, American Express et MGM Home Entertainment utilisent TYPO3 sur leurs intranets, tel que c&#8217;est mentionné sur le site TYPO3.com.</p>
<p><strong>Mise à jour</strong>: EDS a été ajouté à la liste (il remplace http://performance-publique.gouv.fr).</p>
<p><span id="more-817"></span></p>
<p align="justify"><strong>CISCO WebEx</strong></p>
<p style="text-align: center;" align="justify"><img class="size-full wp-image-819 aligncenter" title="CISCO Webex" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/webexcom.png" alt="CISCO Webex use TYPO3" width="450" height="266" /></p>
<p align="justify">CISCO Systems utilise TYPO3 dans plusieurs sites Web corporatifs internationnaux. Il est notamment utilisé pour le site Internet de WebEx (N°1 mondial des services de téléconférence sur le Net). <a title="WebEx" href="http://www.webex.com" target="_blank">http://www.webex.com</a></p>
<hr />
<p align="justify"><strong>EPSON</strong></p>
<p style="text-align: center;" align="justify"><img class="aligncenter size-full wp-image-825" title="Epson Suisse" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/epsonch.png" alt="Epson Suisse use TYPO3" width="450" height="196" /></p>
<p align="justify">EPSON utilise TYPO3 dans de très nombreux sites corporatifs tels <a href="http://www.epson.ch/" target="_blank">http://www.epson.ch</a> et <a href="http://www.epson.at/" target="_blank">http://www.epson.at/</a>&#8230;</p>
<hr />
<p align="justify"><strong>UNICEF</strong></p>
<p style="text-align: center;" align="justify"><img class="aligncenter size-full wp-image-833" title="UNICEF Allemagne" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/unicefde.png" alt="UNICEF Germany use TYPO3" width="450" height="237" /></p>
<p align="justify">Site Internet de l&#8217;UNICEF Allemagne: <a href="http://www.unicef.de/" target="_blank">http://www.unicef.de/</a>.</p>
<hr /><strong>THE ECONOMIST</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-837" title="THE ECONOMIST use TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/adseconomistcom.png" alt="THE ECONOMIST use TYPO3" width="449" height="230" /></p>
<p align="justify">Site Internet de The Economist: <a href="http://ads.economist.com/" target="_blank">http://ads.economist.com/</a></p>
<hr />
<p align="justify"><strong>BAYER TECHNOLOGIES SERVICES &#8211; GmbH</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-838" title="Bayer Technology Services et TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/bayertechnologycom.png" alt="" width="450" height="235" /></p>
<p align="justify">Bayer Technology Services GmbH, est une entreprise de Bayer AG: <a href="http://www.bayertechnology.com" target="_blank">http://www.bayertechnology.com</a></p>
<hr />
<p align="justify"><strong>BRITA</strong></p>
<p style="text-align: center;" align="justify"><img class="aligncenter size-full wp-image-841" title="BRITA et TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/britanet.png" alt="" width="449" height="280" /></p>
<p align="justify">BRITA est le N°1 mondial de la filtration de l&#8217;eau. BRITA utilise TYPO3 pour ses sites Web corporatifs internationaux: <a href="http://www.brita.com" target="_blank">http://www.brita.com</a></p>
<hr />
<p align="justify"><strong>AIR FRANCE CORPORATE</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-851" title="Air France Corporate et TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/corporateairfrancecom.png" alt="Air France-KLM use TYPO3" width="450" height="250" /></p>
<p align="justify">Le groupe Air France-KLM est la première entreprise mondiale en terme de trafic international de passagers, le deuxième groupe mondial pour l&#8217;activité cargo. Le groupe Air France-KML utilise TYPO3 pour son site corporatif: <a title="Air France est développé en TYPO3" href="http://corporate.airfrance.com" target="_blank">http://corporate.airfrance.com</a></p>
<hr />
<p align="justify"><strong>TOTAL LUBRIFIANTS</strong></p>
<p style="text-align: center;" align="justify"><img class="size-full wp-image-855 aligncenter" title="TOTAL LUBRIFIANTS" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/total-lubrifiantsca.png" alt="TOTAL use TYPO3" width="450" height="292" /></p>
<p align="justify">Total utilise TYPO3 pour son site Web <a title="TOTAL et TYPO3" href="http://www.total-lubrifiants.ca" target="_blank">http://www.total-lubrifiants.ca</a></p>
<hr />
<p align="justify"><strong>BONJOUR QUÉBEC</strong></p>
<p style="text-align: center;" align="justify"><img class="aligncenter size-full wp-image-857" title="BONJOUR QUÉBEC et TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/bonjourquebeccom.png" alt="Bonjour Quebec use TYPO3" width="450" height="287" /></p>
<p align="justify">Bonjour Québec est le portail touristique officiel du Québec. Bonjour Québec est développé en TYPO3: <a title="Bonjourquebec et TYPO3" href="http://www.bonjourquebec.com" target="_blank">http://www.bonjourquebec.com</a></p>
<hr />
<p align="justify"><strong>FORD</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-860" title="Intranet de FORD est en TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/fordinterninfo.png" alt="" width="450" height="348" /></p>
<p align="justify">FORD a choisi que son intranet soit développé en TYPO3: <a title="FORD Intranet en TYPO3" href="http://www.fordintern.info/" target="_blank">http://www.fordintern.info/</a></p>
<hr />
<p align="justify"><strong>KONICA MINOLTA</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-862" title="Konica Minolta et TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/konicaminoltaeu.png" alt="Konica Minolta use TYPO3" width="450" height="231" /></p>
<p align="justify">Le groupe KONICA MINOLTA utilise TYPO3 pour de nombreux sites Web corporatifs tels son site européen (<a title="Konica Minolta et TYPO3 (site Europe)" href="http://www.konicaminoltasupport.com/" target="_blank">http://www.konicaminolta.eu/</a>), son site Web pour le support technique (<a title="Konica Minolta et TYPO3" href="http://www.konicaminoltasupport.com/" target="_blank">http://www.konicaminoltasupport.com/</a>) et son site corporatif allemand (<a title="Konica Minolta et TYPO3" href="http://www.konicaminolta.de/" target="_blank">http://www.konicaminolta.de/</a>).</p>
<hr />
<p align="justify"><strong>CDC FAST</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-864" title="CDC FAST et TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/cdcfastfr.png" alt="CDC FAST use TYPO3" width="449" height="244" /></p>
<p align="justify">CDC FAST est une filiale de la Caisse des dépôts et consignations (banque de l&#8217;état français créée en 1816). CDC FAST (Fournisseur d’Accès Sécurisé Transactionnel) a choisi TYPO3 pour son site Web corporatif (<a title="CDC FAST et TYPO3" href="http://www.cdcfast.fr" target="_blank">http://www.cdcfast.fr</a>).</p>
<hr />
<p align="justify"><strong>UNESCO</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-865" title="UNESCO Bangkok utilise TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/unescobkkorg.png" alt="UNESCO Bangkok use TYPO3" width="450" height="233" /></p>
<p align="justify">L&#8217;UNESCO Bangkok utilise TYPO3 pour son site Web corporatif (<a title="UNESCO Bangkok utilise TYPO3" href="http://www.unescobkk.org/" target="_blank">http://www.unescobkk.org/</a>).</p>
<hr />
<p align="justify"><strong>Ministère de la Culture, des Communications et de la Condition féminine (Québec)</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-870" title="Ministère de la Culture, des Communications et de la Condition féminine (MCCCF) utilise TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/mcccfgouvqcca.png" alt="MCCCF use TYPO3" width="450" height="290" /></p>
<p align="justify">Le Ministère de la Culture, des Communications et de la Condition féminine (MCCCF) du Québec utilise TYPO3 : <a title="MCCCF utilise TYPO3" href="http://www.mcccf.gouv.qc.ca/" target="_blank">http://www.mcccf.gouv.qc.ca/</a> (réalisation TYPO3 par <a title="Le MCCCF utilise TYPO3" href="http://Www.infoglobe.ca" target="_blank">Infoglobe</a>).</p>
<hr />
<p align="justify"><strong>Les Inrockuptibles</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-872" title="Les Inrockuptibles utilise TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/lesinrockscom.png" alt="" width="450" height="225" /></p>
<p align="justify">Les Inrockuptibles, familièrement appelés Les Inrocks, est un magazine culturel et musical français. Les Inrockuptibles utilise TYPO3 pour son site Web officiel (<a title="Les Inrockuptibles utilise TYPO3" href="http://www.lesinrocks.com/" target="_blank">http://www.lesinrocks.com/</a>).</p>
<hr />
<p align="justify"><strong>Dassault Systemes</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-874" title="Dassault Systemes utilise TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/3dscom.png" alt="Dassault use TYPO3" width="450" height="252" /></p>
<p align="justify">Dassault Systemes (3DS)  est une entreprise française éditeur de logiciels (PLM et 3D) et filiale du Groupe Dassault. Dassault Systemes a commencé d&#8217;utiliser TYPO3 en 2003 et l&#8217;a depuis déployé dans de très nombreux sites Web (notamment son site corporatif <a title="Dassault Systemes utilise TYPO3" href="http://www.3ds.com/" target="_blank">http://www.3ds.com/</a>). L&#8217;utilisation de TYPO3 par Dassault Systemes est décrite en détail sur <a title="TYPO3 et 3DS" href="http://typo3.com/Dassault_Systemes.1386.0.html" target="_blank">TYPO3.com </a></p>
<hr />
<p align="justify"><strong>Université Paris Dauphine (France)</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-876" title="Université Paris Dauphine utilise TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/dauphinefr.png" alt="Université Paris Dauphine use TYPO3" width="450" height="253" /></p>
<p align="justify">L&#8217;Université Paris-Dauphine a choisi TYPO3 comme site pour la gestion de son site Web (<a title="L'Université Paris-Dauphine utilise TYPO3" href="http://www.dauphine.fr" target="_blank">http://www.dauphine.fr</a>).</p>
<hr />
<p align="justify"><strong>Université de Sherbrooke (Québec)</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-877" title="Université de Sherbrooke utilise TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/usherbrookeca.png" alt="Sherbrooke use TYPO3" width="449" height="281" /></p>
<p align="justify">L&#8217;Université de Sherbrooke (Québec) utilise TYPO3 pour son site Web (<a title="Université de Sherbrooke utilise TYPO3" href="http://www.usherbrooke.ca/" target="_blank">http://www.usherbrooke.ca/</a>) et de nombreux autres sites internes et externes.</p>
<hr />
<p align="justify">Tournez la page pour voir la suite&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2008/10/22/51-references-typo3-prestigieuses/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Framework FORMidable pour TYPO3</title>
		<link>http://blogue.infoglobe.ca/2008/10/07/framework-formidable-pour-typo3/</link>
		<comments>http://blogue.infoglobe.ca/2008/10/07/framework-formidable-pour-typo3/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 17:47:55 +0000</pubDate>
		<dc:creator>pboivin</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[formidable]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=689</guid>
		<description><![CDATA[Une extension qui fait parler beaucoup d&#8217;elle ces temps-ci est l&#8217;extension ameos_formidable. Il s&#8217;agit d&#8217;un API (interface de programmation) qui permet de créer facilement et rapidement des formulaires pour des extensions TYPO3. Il s&#8217;agit probablement en effet de l&#8217;extension la plus mature pour le moment pour créer des formulaires frontend. L&#8217;extension possède une solide librairie [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-692" title="Logo de TYPO3" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/typo3-logo.jpg" alt="" width="100" height="96" />Une extension qui fait parler beaucoup d&#8217;elle ces temps-ci est l&#8217;extension <a title="Site officiel de l'extension" href="http://formidable.typo3.ug/" target="_blank">ameos_formidable</a>. Il s&#8217;agit d&#8217;un API (interface de programmation) qui permet de créer facilement et rapidement des formulaires pour des extensions TYPO3.</p>
<p>Il s&#8217;agit probablement en effet de l&#8217;extension la plus mature pour le moment pour créer des formulaires frontend. L&#8217;extension possède une solide librairie de fonctions pour créer toutes les sortes de contrôles habituelles et plus encore.</p>
<p><span id="more-689"></span>Les formulaires comme telles sont créer à partir d&#8217;un fichier XML. Des validations et de l&#8217;Ajax peuvent être ajoutés pour chacun des contrôles définis. Il est aussi possible d&#8217;appliquer du PHP directemet dans le formulaire pour les valeurs par défaut ou les valeurs courantes.</p>
<p><strong>Quelques contrôles existent en plus des contrôles de bases (text, textarea, button, etc.) :</strong></p>
<ul>
<li><strong>Date : </strong>pour afficher un élément texte avec un petit calendrier pour sélectionner la date désirée.</li>
<li><strong>Sélecteur (chooser) :</strong> pour afficher plusieurs liens en même temps pour effectuer une sélection.</li>
<li><strong>Listeur (lister) : </strong>pour afficher une liste d&#8217;enregistrement avec plusieurs colonnes (permet l&#8217;édition à même cette liste).</li>
</ul>
<p>Ce qui est bien avec ce framework est que c&#8217;est nous qui décidons le niveau de contrôle que nous donnons à l&#8217;extension. Par exemple, dans mon cas, j&#8217;ai fais la validation quand même en PHP parce que je voulais la faire à partir d&#8217;un tableau typoscript plutôt que dans le fichier XML. Donc on est jamais pris au dépourvu par une fonctionnalité manquante.</p>
<p><strong>FORMidable sur le wiki de TYPO3 :</strong> <a href="http://wiki.typo3.org/index.php/Formidable">http://wiki.typo3.org/index.php/Formidable</a></p>
<p><strong>Site officiel de FORMidable :</strong> <a href="http://formidable.typo3.ug/">http://formidable.typo3.ug/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2008/10/07/framework-formidable-pour-typo3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La librairie PHPlot</title>
		<link>http://blogue.infoglobe.ca/2008/10/07/la-librairie-phplot/</link>
		<comments>http://blogue.infoglobe.ca/2008/10/07/la-librairie-phplot/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 15:26:35 +0000</pubDate>
		<dc:creator>pboivin</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPlot]]></category>
		<category><![CDATA[statistique]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=676</guid>
		<description><![CDATA[En programmant une extension TYPO3 j&#8217;ai découvert PHPlot, une librairie PHP permettant de créer facilement des graphiques dynamiques à même un tableau de données. La librairie est très facile d&#8217;utilisation, il suffit d&#8217;inclure la librairie dans notre code (include) et créer un objet PHPlot (new PHPlot). Par la suite, une image sera généré avec un [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/demo.jpg"><img class="alignright size-medium wp-image-682" title="Exemple de graphique avec PHPlot" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/10/demo-300x200.jpg" alt="" width="170" height="113" /></a>En programmant une extension TYPO3 j&#8217;ai découvert PHPlot, une librairie PHP permettant de créer facilement des graphiques dynamiques à même un tableau de données.</p>
<p>La librairie est très facile d&#8217;utilisation, il suffit d&#8217;inclure la librairie dans notre code (include) et créer un objet PHPlot (new PHPlot). Par la suite, une image sera généré avec un graphique et une légende au besoin.</p>
<p><span id="more-676"></span>PHPlot nécessite au moins PHP 4.3.0 et l&#8217;extension GD (qui vient maintenant par défaut avec les dernières versions de PHP).</p>
<p><strong>Plusieurs types de graphiques peuvent être générés à l&#8217;aide de cette librairie et chacun de ces types peut être aisément configuré :</strong></p>
<ul>
<li>Diagramme avec une ligne simple</li>
<li>Histogramme</li>
<li>Diagramme en pointe de tarte</li>
<li>Nuage de points</li>
<li>Diagramme en bâton</li>
</ul>
<p><strong>Voici un exemple d&#8217;utilisation à l&#8217;intérieur d&#8217;une extension TYPO3 :</strong></p>
<pre>include(t3lib_extMgm::extPath('nom_extension') . '/include/phplot/phplot.php');

$dataStat = array(
  array('', 1800,   5), array('', 1810,   7), array('', 1820,  10),
  array('', 1830,  13), array('', 1840,  17), array('', 1850,  23),
  array('', 1860,  31), array('', 1870,  39), array('', 1880,  50),
  array('', 1890,  63), array('', 1900,  76), array('', 1910,  92),
  array('', 1920, 106), array('', 1930, 123), array('', 1940, 132),
);

$filenameGraph = "uploads/tx_nomextension/graph_".rand().".png";

$graph = new PHPlot(500, 400);
$graph-&gt;SetImageBorderType('plain');
$graph-&gt;SetOutputFile($filenameGraph);
$graph-&gt;SetPrintImage(0);
$graph-&gt;SetPlotType('bars');
$graph-&gt;SetDataType('text-data');
$graph-&gt;SetDataValues($dataStat);
$graph-&gt;SetTitle('Titre du graphique');
$graph-&gt;SetPlotAreaWorld(NULL, 0, NULL, NULL);
$graph-&gt;DrawGraph();
$graph-&gt;PrintImage();

echo '&lt;img src="' . $filenameGraph . '" /&gt;';</pre>
<p><strong>Nous pouvons trouver la documentation complète ici :</strong> <a href="http://phplot.sourceforge.net/phplotdocs/">http://phplot.sourceforge.net/phplotdocs/</a></p>
<p><strong>Et le télécharger gratuitement ici :</strong> <a href="http://sourceforge.net/projects/phplot">http://sourceforge.net/projects/phplot</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2008/10/07/la-librairie-phplot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xdebug – Ajoutez un débogueur à vos outils de développement</title>
		<link>http://blogue.infoglobe.ca/2008/09/26/xdebug-%e2%80%93-ajoutez-un-debogueur-a-vos-outils-de-developpement/</link>
		<comments>http://blogue.infoglobe.ca/2008/09/26/xdebug-%e2%80%93-ajoutez-un-debogueur-a-vos-outils-de-developpement/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 20:33:32 +0000</pubDate>
		<dc:creator>souellet</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Pear]]></category>
		<category><![CDATA[PECL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[xdebug]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=499</guid>
		<description><![CDATA[Xdebug est un extension php qui vous permet d&#8217;afficher des informations de déboguage comme les erreurs d&#8217;un script, les traces de fonctions et de la « stack » directement dans votre navigateur. Mais les fonctionnalités de l&#8217;extension de s&#8217;arrête pas la. En effet, lorsqu&#8217;il est jumelé avec un IDE, il vous permet d&#8217;utiliser les fonctions de pas-à-pas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.xdebug.org"><img class="alignright" title="logo xdebug" src="http://www.xdebug.org/images/xdebug-logo.png" alt="" width="164" height="95" /></a></p>
<p><a href="http://www.xdebug.org/">Xdebug</a> est un extension php qui vous permet d&#8217;afficher des informations de déboguage comme les erreurs d&#8217;un script, les traces de fonctions et de la « stack » directement dans votre navigateur. Mais les fonctionnalités de l&#8217;extension de s&#8217;arrête pas la. En effet, lorsqu&#8217;il est jumelé avec un IDE, il vous permet d&#8217;utiliser les fonctions de pas-à-pas et de breakpoint. Avec cet outil, vous pouvez profiler votre code et obtenir des statistiques de performance sur l&#8217;utilisation de vos fonctions.</p>
<p style="margin-bottom: 0cm;"><span id="more-499"></span></p>
<p style="margin-bottom: 0cm;">L&#8217;installation sur Ubuntu est assez simple. Vous devez premièrement installer deux paquets avant de pouvoir débuter l&#8217;installation. Tapez dans une console la commande suivante:</p>
<pre style="margin-bottom: 0cm;">sudo apt-get install php-pear php5-dev</pre>
<p style="margin-bottom: 0cm;">Ensuite vous devez utiliser <a href="http://pecl.php.net/">PECL</a> pour rapatrier et compiler les sources avec la commande suivante.</p>
<pre style="margin-bottom: 0cm;">sudo pecl install xdebug</pre>
<p style="margin-bottom: 0cm;">Une fois le traitment terminé, copier la ligne vous montrant l&#8217;emplacement de l&#8217;installation de l&#8217;extention et modifiez votre fichier de configuration php.</p>
<pre style="margin-bottom: 0cm;">sudo vi /etc/php5/apache2/php.ini</pre>
<p style="margin-bottom: 0cm;">Ajoutez les lignes suivantes:</p>
<pre style="margin-bottom: 0cm;">zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so
xdebug.remote_enable=on</pre>
<p style="margin-bottom: 0cm;">Enregistrez les modifications et redémarrez votre serveur apache. Voilà</p>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2008/09/26/xdebug-%e2%80%93-ajoutez-un-debogueur-a-vos-outils-de-developpement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intégration de TYPO3 dans votre IDE</title>
		<link>http://blogue.infoglobe.ca/2008/09/26/integration-de-typo3-dans-votre-ide/</link>
		<comments>http://blogue.infoglobe.ca/2008/09/26/integration-de-typo3-dans-votre-ide/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 18:26:13 +0000</pubDate>
		<dc:creator>souellet</dc:creator>
				<category><![CDATA[CMS/SGC]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programmation]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=484</guid>
		<description><![CDATA[Eclipse et Netbeans sont deux IDE open source qui vous offre de nombreuses fonctionnalités comme la gestion de projets, le déboguage, l&#8217;accès à SVN, ainsi que des outils de collaboration. Que vous soyez débutant ou expert, l&#8217;autocompletion est un outil qui peut vous être très utile. En ajoutant à votre IDE les sources de TYPO3 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-512" title="Logo de NetBeans" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/09/netbeans.gif" alt="" width="150" height="40" /></p>
<p style="margin-bottom: 0cm;"><a title="Site officiel de Eclipse" href="http://www.eclipse.org/" target="_blank">Eclipse</a> et <a title="Site officiel de NetBeans" href="http://www.netbeans.org/" target="_blank">Netbeans</a> sont deux IDE open source qui vous offre de nombreuses fonctionnalités comme la gestion de projets, le déboguage, l&#8217;accès à SVN, ainsi que des outils de collaboration.</p>
<p style="margin-bottom: 0cm;">Que vous soyez débutant ou expert, l&#8217;autocompletion est un outil qui peut vous être très utile. En ajoutant à votre IDE les sources de TYPO3 dans «l&#8217;include path» de votre projet, vous pouvez consulter rapidement la liste de fonctions de l&#8217;API de développement de TYPO3. L&#8217;autocompletion de code vous permettra de développer vos applications plus efficacement.</p>
<div id="attachment_486" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-486" title="Autocompletion avec Eclipse" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/09/autocompletion1-300x110.png" alt="" width="300" height="110" /><p class="wp-caption-text">Exemple avec Netbeans</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2008/09/26/integration-de-typo3-dans-votre-ide/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Utiliser du PHP sur un stdWrap en typoscript</title>
		<link>http://blogue.infoglobe.ca/2008/09/26/utiliser-du-php-sur-un-stdwrap-en-typoscript/</link>
		<comments>http://blogue.infoglobe.ca/2008/09/26/utiliser-du-php-sur-un-stdwrap-en-typoscript/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 12:30:54 +0000</pubDate>
		<dc:creator>pboivin</dc:creator>
				<category><![CDATA[CMS/SGC]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[stdWrap]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[typoscript]]></category>

		<guid isPermaLink="false">http://blogue.infoglobe.ca/?p=474</guid>
		<description><![CDATA[Après une petite recherche sur internet j&#8217;ai trouvé une façon très facile d&#8217;écraser n&#8217;importe quel contenu (stdWrap) en typoscript. Il existe déjà plusieurs possibilités avec la fonction &#171;&#160;stdWrap&#160;&#187; telles que la modification de la casse, supprimer les balises HTML, &#171;&#160;wrapper&#160;&#187; le stdWrap, etc. Comme ce n&#8217;est jamais assez, je me suis demandé s&#8217;il était possible [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-482" title="Logo de PHP" src="http://blogue.infoglobe.ca/wp-content/uploads/2008/09/php.jpeg" alt="" width="101" height="65" />Après une petite recherche sur internet j&#8217;ai trouvé une façon très facile d&#8217;écraser n&#8217;importe quel contenu (stdWrap) en typoscript. Il existe déjà plusieurs possibilités avec la fonction &laquo;&nbsp;stdWrap&nbsp;&raquo; telles que la modification de la casse, supprimer les balises HTML, &laquo;&nbsp;wrapper&nbsp;&raquo; le stdWrap, etc. Comme ce n&#8217;est jamais assez, je me suis demandé s&#8217;il était possible d&#8217;utiliser du PHP à même le typoscript pour modifier le contenu du stdWrap.</p>
<p>La propriété &laquo;&nbsp;postUserFunc&nbsp;&raquo; du stdWrap sert exactement à cet effet.</p>
<p>Il suffit d&#8217;appeler un script PHP préalablement défini et d&#8217;appeler la fonction de celui-ci tout en y passant quelques paramètres au besoin.</p>
<p><strong>Voici un exemple d&#8217;utilisation :</strong></p>
<pre style="padding-left: 30px;">includeLibs.nomLib = fileadmin/templates/scripts/scriptPHP.php
 tt_content.cheminDuStdWrap.stdWrap {
 postUserFunc = nomDeLaClasse-&gt;nomDeLaFonction
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogue.infoglobe.ca/2008/09/26/utiliser-du-php-sur-un-stdwrap-en-typoscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

