<?xml version="1.0" encoding="windows-1252"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">

  <channel>
    <title>[ Guillaume Laforge ]</title>
    <link>http://glaforge.free.fr/weblog/</link>
    <description>Java, Groovy, Grails, Architecture</description>
    <docs>http://backend.userland.com/rss091</docs>
    <language>en</language>
    <image>
      <url>http://glaforge.free.fr/weblog/nucleus/nucleus2.gif</url>
      <title>[ Guillaume Laforge ]</title>
      <link>http://glaforge.free.fr/weblog/</link>
    </image>

<item>
 <title>WikiLinks : un plugin pour Nucleus</title>
 <link>http://glaforge.free.fr/weblog/?itemid=36</link>
 <description>&lt;p&gt;J'ai cr&eacute;&eacute; un petit plugin pour Nucleus (application de weblog utilis&eacute;e sur ce site), pour transformer tous les mots avec la casse Camel en liens vers mon Wiki (outil de r&eacute;daction de contenu collaboratif).&lt;/p&gt;

&lt;p&gt;Par exemple, pour aller &agrave; la page d'accueil de mon Wiki, il suffit d'&eacute;crire en toutes lettres [PageAccueil] entour&eacute; de crochets, et le lien appara&icirc;tra automatiquement.&lt;/p&gt;

&lt;p&gt;Voici le code de ce plugin : NP_WikiLink.php&lt;/p&gt;

&lt;pre&gt;class NP_WikiLink extends NucleusPlugin
{
    function getName()        { return 'WikiLink'; }
    function getAuthor()      { return 'Guillaume Laforge'; }
    function getURL()         { return 'http://glaforge.free.fr/'; }
    function getVersion()     { return '1.0'; }
    function getDescription() 
    {
        return 'This plugin will convert CamelCase words into Wiki Links.';
    }

    function install()
    {
        $this-&gt;createOption('ShowWikiLinks', 'Comments: Show wiki links','yesno','yes');
    }

    function getEventList() 
    {
        return array('PreComment', 'PreItem');
    }	

    function event_PreComment($data)
    {
        if ($this-&gt;getOption('ShowWikiLinks') != 'yes')
            return;
        $this-&gt;doWikiLinks($data['comment']['body']);
    }

    function event_PreItem($data)
    {
        if ($this-&gt;getOption('ShowWikiLinks') != 'yes')
            return;
        $this-&gt;doWikiLinks($data['item']-&gt;body);
        $this-&gt;doWikiLinks($data['item']-&gt;more);
    }

    function doWikiLinks(&amp;$data) 
    {
        $url = &quot;/wiki/index.php?wiki=&quot;;
        $data = ereg_replace(&quot;([^A-Z^a-z^0-9^_^-])\[([A-Z][a-z0-9]+[A-Z][a-zA-Z0-9]+)\]&quot;, 
            '\\1&amp;lt;a href=&quot;'.$url.'\\2&quot;&amp;gt;\\2&amp;lt;/a&amp;gt;', $data);
    }
}&lt;/pre&gt;

Le plus difficile dans l'histoire, c'est de trouver la bonne expression r&eacute;guli&egrave;re ! Chaque langage &agrave; sa propre syntaxe d'expression r&eacute;guli&egrave;re, voire m&ecirc;me deux...

Am&eacute;liorations possibles de ce plugin :&lt;ul&gt;
&lt;li&gt;param&eacute;trage de l'URL du Wiki&lt;/li&gt;
&lt;li&gt;lorsqu'une page n'existe pas dans le wiki, mettre un &quot;?&quot; avec un lien pour la cr&eacute;ation de la page&lt;/li&gt;
&lt;li&gt;param&eacute;trage de l'expression r&eacute;guli&egrave;re&lt;/li&gt;
&lt;/ul&gt;</description>
</item><item>
 <title>Blogging or not blogging...</title>
 <link>http://glaforge.free.fr/weblog/?itemid=34</link>
 <description>Waoouuuh... ca fait presque deux mois que je n'ai pas blogu&eacute; ! Quel mauvais blogue... euh blague ! Les vacances ont &eacute;t&eacute; b&eacute;n&eacute;fiques pour mon corps et mon esprit, mais depuis la rentr&eacute;e, ni l'esprit ni le corps n'ont envie d'&eacute;crire quelque chose dans ce coin de web. Mais nous allons y rem&eacute;dier !</description>
</item><item>
 <title>Bookmarklet error with IE6</title>
 <link>http://glaforge.free.fr/weblog/?itemid=16</link>
 <description>Avec le petit bout de code suivant, il est th&eacute;oriquement possible de poster une s&eacute;lection de texte d'une page web dans son weblog.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;div&gt;javascript:doc=external.menuArguments.document; &lt;br /&gt;
lt=escape(doc.selection.createRange().text); &lt;br /&gt;
loglink=escape(doc.location.href); &lt;br /&gt;
loglinktitle=escape(doc.title); &lt;br /&gt;
wingm=window.open('http://hoito.org/nucleus/bookmarklet.php?blogid=11&amp;amp;logtext='&lt;br /&gt;
+lt+'&amp;amp;loglink='+loglink+'&amp;amp;loglinktitle='+loglinktitle, &lt;br /&gt;
'nucleusbm','scrollbars=yes,width=600,height=500,left=10, &lt;br /&gt;
top=10,status=yes,resizable=yes'); &lt;br /&gt;
wingm.focus();&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;a href=&quot;http://forum.nucleuscms.org/viewtopic.php?t=1533&amp;amp;highlight=bookmarklet&quot;&gt;Nucleus Support :: View topic - Bookmarklet error with IE6&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Mais malheureusement, avec IE6 et ses nouveaux patches, ce n'est plus possible de le faire. Donc au lieu d'utiliser le menu contextuel, il ne reste que la solution du lien dans les bookmarks. C'est moins &eacute;l&eacute;gant, c'est certain, mais au moins cela fonctionne.</description>
</item><item>
 <title>Nucleus Weblog</title>
 <link>http://glaforge.free.fr/weblog/?itemid=1</link>
 <description>Finalement, j'ai trouv&amp;eacute; un Weblog que je puisse installer chez mon h&amp;eacute;bergeur. L'heureux &amp;eacute;lu est &lt;b&gt;Nucleus&lt;/b&gt;. Merci &amp;agrave; &lt;b&gt;Free&lt;/b&gt; pour proposer un espace de stockage avec en plus : &lt;i&gt;PHP&lt;/i&gt; et &lt;i&gt;MySQL&lt;/i&gt;.</description>
</item>

</channel>
</rss>