Le Journal de Nikrou - Mot-clé - dotclearCe journal n'est pas un blog!2024-01-09T15:52:56+01:00urn:md5:501048fab0be4d1978e39dded54e4f42DotclearAjouter des extensions pour CKEditor facilementurn:md5:9fb956bf2725372fff53e4f92db029862015-08-13T11:04:00+02:002015-08-13T10:15:17+02:00Nicolasdotclearplugin<p>Pour fêter dignement la sortie de <a href="http://fr.dotclear.org/blog/post/2015/08/13/Dotclear-2.8">la version 2.8 de dotclear</a>, j'ai publié ce matin un nouveau plugin qui permet d'ajouter facilement des extensions à <a hreflang="en" href="http://ckeditor.com/">CKEditor</a>, l'éditeur alternatif de dotclear.</p> <figure style="float: left; margin: 0 1em 1em 0;"><img class="media" alt="dotty.jpg" src="//static.nikrou.net/public/.dotty_m.jpg" /><figcaption> </figcaption></figure><p>CKEditor est un éditeur qui a de nombreuses fonctionnalités. Je l'utilise pour rédiger ce billet. Mais on peut encore enrichir l'éditeur en ajoutant des <a hreflang="en" href="http://ckeditor.com/addons/plugins/all">extensions</a> qui permettent tout un tas de fonctionnalités qui manquerait. Par exemple il existe une extension permettant de facilement <a hreflang="en" href="http://ckeditor.com/addon/codesnippet">ajouter un petit morceau de code</a> (PHP, javascript,...) et qui serait évidemment coloré en respectant la syntaxe du dit langage. </p><p>Pour ajouter une extension à CKEditor il suffit d'utiliser le plugin <a hreflang="fr" href="http://plugins.dotaddict.org/dc2/details/dcCKEditorAddons">dcCKEditorAddons</a>. Le plugin permet d'installer un fichier zip en le déposant sur le serveur mais aussi en fournissant l'url de l'extension CKEditor directement. C'est une toute première version qui évoluera à n'en pas douter.</p><p>En attendant profiter de cette nouvelle version de dotclear. Vive les hermines !</p>Contribuer à dotclear en utilisant giturn:md5:ffc19edee9b33ad4a63f452a625649e22015-06-22T20:29:00+02:002016-02-07T14:01:03+01:00NicolasDéveloppementdotcleargitmercurial<p>Le code de <a hreflang="fr" href="http://dotclear.org/">dotclear</a> est versionné en utilisant le gestionnaire de versions <a hreflang="en" href="https://mercurial.selenic.com/">mercurial</a>. Le choix a été fait il y a de cela plusieurs années pour plein de bonnes raisons et en particulier parce qu'il n'y avait pas de client facile d'installation et à l'usage sous l'<a hreflang="fr" href="https://www.microsoft.com/fr-fr/">OS de Raymonde</a>. Quoi qu'il en soit il est difficile de changer de gestionnaire de versions encore une fois. J'ai fait le choix, <a class="ref-post" href="https://www.nikrou.net/post/2009/02/20/Mettre-en-place-un-d%C3%A9p%C3%B4t-central-git">dès 2009</a> d'utiliser <a hreflang="en" href="https://git-scm.com/">git</a> comme gestionnaire de versions. Evidemment tous les projets n'utilisent pas git, ce serait trop simple et peut-être ennuyant. Pendant de nombreuses années j'ai utilisé avec plaisir <a href="http://git-scm.com/docs/git-svn">git svn</a> qui offrait une passerelle pour contribuer à un dépôt utilisant subversion. Je bénéficiais de toute la puissance de git en local sans que cela ne force le dépôt distant à être sous git. Depuis quelque temps déjà je contribue à dotclear et toujours avec git en local. Voici à quoi ressemble mon installation locale... </p> <p>La première étape pour contribuer à un projet est de faire un fork de ce projet que ce projet soit hébergé sur bitbucket ou github n'y change rien. J'ai donc <a href="https://bitbucket.org/nikrou/dotclear">un fork de dotclear
sur bitbucket</a> comme si j'étais un contributeur extérieur. Cela a l'avantage de simplifier certaines soumissions, par exemple faire une pull-request sur un sujet un peu compliqué qui demande des discussions ultérieures.
Il me suffit ensuite de cloner ce dépôt en local. Mais comme je veux utiliser git en local, il faut installer des outils supplémentaires, c'est-à-dire une passerelle qui permet de communiquer avec un dépôt externe qui n'est pas git.
Ces outils s'appuient sur les <a hreflang="en" href="https://git-scm.com/docs/gitremote-helpers">remote-helpers</a> et j'utilise en particulier git-remote-hg qui a longtemps fait partie de la distribution officielle
de git :<a href="https://github.com/git/git/blob/master/contrib/remote-helpers/git-remote-hg">https://github.com/git/git/blob/master/contrib/remote-helpers/git-remote-hg</a>. Mais ce projet a désormais son propre dépôt,
maintenu par Felipe Contreras : <a href="https://github.com/felipec/git-remote-hg">git-remote-hg</a>.</p><p>La première étape est de cloner le dépôt git-remote-hg:</p>
<pre><code class="language-bash">$ git clone git-remote-hg</code></pre>
<p>Ensuite il faut rendre accessible l'exécutable git-remote-hg. Personnellement, le répertoire <strong>~/bin</strong> est dans
mon <a hreflang="fr" href="http://lea-linux.org/documentations/Trucs:Modifier_son_PATH">PATH</a> et du coup j'ai fait un lien symbolique de ce script dans <strong>~bin</strong>. C'est tout.
Désormais il n'y a qu'une seule chose qui change c'est la manière de cloner le dépôt distant :</p>
<pre><code class="language-bash">$ git clone hg::ssh://hg@bitbucket.org/nikrou/dotclear</code></pre>
<p>Je n'ai pas fait d'erreur ; il y a bien deux points après hg ! En local on a bien un dépôt git et presque rien ne pourrait le différencier d'un vrai dépôt git. En fait pour que cela puisse
fonctionner git-remote-hg une partie de la correspondance est faite dans un sous répertoire <strong>hg</strong> dans le répertoire <strong>.git</strong>.</p><p>dotclear utilise un sous module mercurial
appelé <a href="https://bitbucket.org/dotclear/clearbricks">clearbricks</a>. Il est peut-être possible de le récupérer directement mais je n'ai pas tellement cherché n'ayant que rarement le besoin.
Pour le récupérer, j'ai aussi un fork de clearbricks que je clone dans le répertoire <strong>inc/libs</strong> de mon clone de dotclear.</p><p>J'ai maintenant un dépôt pleinement fonctionnel et qui utilise git.
On peut créer des vraies branches, commiter, pusher et même faire des pull-request...</p><p>Une dernière chose, on peut aussi cette même installation pour développer des plugins pour dotclear. Pour ce faire,
il suffit d'utiliser une astuce qui n'est pas documentée (ou alors je n'ai pas trouvé) qui permet de mettre ces propres plugins où l'on souhaite. On peut par exemple les mettre dans un répertoire frère
du clone dotclear et les modifications de code liées aux plugins n'impactent pas les commits de dotclear. Pour ce faire il suffit de modifier la constante <strong>DC_PLUGINS_ROOT</strong> situé dans
le fichier de configuration <strong>inc/config.php,</strong> en ajoutant le nouveau répertoire, par exemple :</p>
<pre><code class="language-php">define('DC_PLUGINS_ROOT',dirname(__FILE__).'/../plugins'.PATH_SEPARATOR.dirname(__FILE__).'/../../my_plugins');</code></pre>J'aime dotclear - j'y contribueurn:md5:62fc7c5b2ac31c03d2accfd88d84b8992015-05-20T20:13:00+02:002015-05-20T19:15:40+02:00NicolasGénéralassociationdondotclearlogiciel libre <p>J'utilise <a href="http://fr.dotclear.org/">dotclear</a> pour motoriser ce blog depuis de très nombreuses années. dotclear, c'est aussi une <a href="http://fr.dotclear.org/association">association</a> et du coup on peut y adhérer en cottisant. J'ai renouvellé ma cottisation mais je pense qu'il ne faudrait surtout pas hésiter à faire passer le message pour relancer les adhérents non à jour de leur cottisation !</p>
<p><a href="http://fr.dotclear.org/blog/post/2015/05/20/Contribuer-%C3%A0-Dotclear-%3A-yes-you-can-%21">Comme le dit Anne</a>, il peut y avoir des effets de bords, devoir manger des crêpes, faire un séminaire <a href="http://www.leguilvinec.com/">au Guilvinec</a> et le plaisir de rencontrer de nombreuses personnes toutes plus sympathiques les unes que les autres.</p>
<p>Du coup, si vous utilisez dotclear, que vos poches ne sont pas complètement vide et que vous voulez contribuer un peu à dotclear, adhérer à l'association.</p>
<p>p.s: Vous pouvez aussi tout simplement <a href="http://fr.dotclear.org/donate">faire un don à dotclear</a>.</p>11 révélations !urn:md5:1ee5d063061d06101bae1cc9d5f5e5862015-04-28T14:45:00+02:002015-04-28T13:52:51+02:00Nicolasdotclear<p>Pour répondre à <a href="http://open-time.net/post/2015/03/06/Naissance">Franck</a> qui m'accuse de ne parler que de code alors que ce n'est pas vrai du tout. Je parle aussi de <a href="https://www.nikrou.net/category/Cuisine">cuisine</a>, <a href="https://www.nikrou.net/category/Aquarium">d'aquarium</a>,... Bon en fait sur les billets déjà écrits je pense que la majorité parlent quand même de code. Non non ce n'est pas une obsession, juste un plaisir. Du coup je me prête aussi à l'exercice de répondre à cette drôle de chaîne. D'ailleurs je n'ai pas bien compris ce qu'il y avait à gagner... ou à perdre.</p> <p>Voici onze choses que vous ne savez probablement pas sur moi.</p>
<ol>
<li>J'ai vu plus d'une dizaine de fois le film Amélie Poulain. Merci la carte illimitée.</li>
<li>Je rale le matin, le midi et un peu le soir. Ce n'est pas que je suis éternellement insatisfait, c'est que j'aime bien raler. :-)</li>
<li>Je n'ai plus que deux dents de sagesses, et suis-je donc moins sage ?</li>
<li>J'ai l'âge de la réponse à la grande question sur la vie, l'univers,...</li>
<li>Je suis timide (mais je me soigne) et je peux passer une soirée sans parler mais sans toutefois m'ennuyer. Si je me décide à parler ça va être pour faire des blagues (idiotes ?) pour cacher cette timidité.</li>
<li>J'ai toujours adoré l'informatique depuis que j'ai 11/12 ans. Mais je ne voulais pas en faire mon métier. Je voulais être prof de maths. Avec le recul j'ai bien fait de rater (volontairement ?) le CAPES.</li>
<li>Je suis un procastinateur professionnel.</li>
<li>J'ai le vertige</li>
<li>J'adore le ski mais je n'ai appris qu'à 28 ans.</li>
<li>J'ai eu les cheveux longs et frisés. Incroyable ? :-)</li>
<li>Quand j'étais au collège je voulais être apiculteur.</li>
</ol>
<p>Et maintenant les réponses aux questions de Franck.</p>
<ol>
<li>Dis-moi pour qui voter aux prochaines présidentielles, et pourquoi ?<br />
Je n'en ai pas la moindre idée. En espérant que de nouveaux candidats se présentent.</li>
<li>Pour ou contre le gras ?<br />
Contre évidemment sauf le beurre et la crème fraîche mais ce n'est pas du gras !</li>
<li>Quelle est la meilleure série (ou le meilleur film) que tu n’aies jamais vu ?<br />
Dexter juste devant Dc House.</li>
<li>Ta couleur préférée, thèse, anti-thèse, synthèse ?<br />
Rose. J'ai bon ? Thèse, anti-thèses, synthèses, foutaise !!!</li>
<li>Pourquoi Dotclear ?<br />
Parce que c'est le meilleur et qu'il dominera le monde...</li>
<li>Ton principal défaut et ta principale qualité ?<br />
Pas facile. C'est pour un entretien d'embauche ?</li>
<li>En quel personnage historique aurais-tu aimé te réincarner ?<br />
Pas d'idée.</li>
<li>Python, PHP, Js ou C++ ?<br />
PHP mais de plus en plus Js</li>
<li>Ton meilleur souvenir d’école (ou de cour d’école) ?<br />
Je n'ai pas de souvenir particulièrement agréable de l'école.</li>
<li>Ton pire ennemi est ?<br />
Le poil dans la main qui pousse, qui pousse.</li>
<li>Que voudrais-tu que je t’offre à ton prochain anniversaire ?<br />
<span style="line-height: 20.7999992370605px;">Un abonnement mensuel aux séminaires dotclear. C'est possible ?</span></li>
</ol>
<p>J'ai déjà joué un peu à ce drôle de jeu mais je ne me vois pas dénoncer plein de copains ou d'inconnus. En plus personne, mis à part google (et ses copains) ne visite ce blog (<a href="https://www.nikrou.net/pages/Ce-journal-n-est-pas-un-blog%21">qui n'en est pas réellement un</a>) donc...</p>
<p> </p>Et dotclear continue son bonhomme de chemin.urn:md5:66517949ac0c7f707a4e463e1a9098dd2014-12-13T20:56:00+01:002014-12-13T21:17:13+01:00Nicolasdotclearplugin <p>Aujourd'hui est sorti une nouvelle version de dotclear, la 2.7. Comme souvent le 13 a été la date choisie. Cette version apporte encore de <a href="http://fr.dotclear.org/blog/post/2014/12/13/Dotclear-2.7" hreflang="fr">nombreuses nouveautés</a> mais surtout un nouvel éditeur visuel (<a href="http://fr.wikipedia.org/wiki/What_you_see_is_what_you_get" hreflang="fr">wysiwyg</a>) basé sur <a href="http://ckeditor.com/" hreflang="fr">CKEditor</a>. L'autre grosse nouveauté est le passage à HTML5 côté visiteur mais aussi côté administration avec la mise en place des principaux rôles <a href="https://developer.mozilla.org/fr/docs/Accessibilit%C3%A9/ARIA" hreflang="en">ARIA</a>. </p>
<p>Le passage à HTML5 va m'obliger à modifier mon thème et continuer le long chemin vers un vrai site responsive tout en em. Le <a href="http://fr.dotclear.org/blog/post/2014/01/22/Les-travaux-en-cours-sur-la-2.7" hreflang="fr">moteur de templates</a> ayant été amélioré et permettant l'héritage devrait me faciliter un peu la vie.</p>
<p>Tiens en rédigeant ce billet, je m'aperçois qu'il va falloir que je modifie le <a href="http://plugins.dotaddict.org/dc2/details/externalLinks" hreflang="fr">plugin lien externe</a>. En effet la case à cocher (permettant d'ouvrir un lien externe dans une nouvelle fenêtre) sur la popup lien depuis l'éditeur n'est pas présente. </p>Gérer des événementsurn:md5:7561e7c67252751c86f6ea0f91c3cf702014-11-23T19:17:00+01:002014-11-23T19:18:03+01:00NicolasdotcleareventHandlerplugin<p>Pour gérer des événements (concerts, réunions,..) dans dotclear, il existe un excellent plugin : <a href="http://plugins.dotaddict.org/dc2/details/eventHandler" hreflang="fr" rel="external">eventHandler</a>. Jusqu'à présent, il était maintenu par <a href="http://jcd.lv/" rel="external">JC Denis</a>. Avec son aimable autorisation, je reprends le développement de ce plugin...</p> <p>Il faut avouer que je connais mal ce plugin qu'est eventHandler mais je vais jouer avec. J'ai commencé par rapatrier les sources sur github dans <a href="https://github.com/nikrou/eventHandler" rel="external">son propre dépôt</a>. Du coup, il est facile d'y contribuer en faisant des envois de patchs ou <a href="https://help.github.com/articles/using-pull-requests/" hreflang="en" rel="external">pull request</a>, en soumettant <a href="https://github.com/nikrou/eventHandler/issues" rel="external" hreflang="en">des bugs</a>, en améliorant la documentation.</p>
<p>J'ai déjà corrigé <a href="https://github.com/nikrou/eventHandler/issues?q=is%3Aissue+is%3Aclosed" hreflang="en" rel="external">quelques soucis</a> avec l'aide de <a href="http://www.tomekmusic.net/" hreflang="fr" rel="external">Tomek</a>. Du coup, j'en ai profité pour sortir une nouvelle version, <a href="https://www.nikrou.net/public/plugin-eventHandler-1.1.zip">la 1.1</a>.</p>
<p>Je n'ai pas, encore, mis cette version sur <a href="http://plugins.dotaddict.org/dc2/" rel="external" hreflang="fr">dotaddict</a> car la version précédente a un numéro peu commun, 2013-07-10. Du coup je vais attendre que cette version soit supprimée de dotaddict par un gourou ! Du coup, pour pouvoir jouer avec cette nouvelle version, il faut supprimer la version précédente, ou en changer le numéro de version pour qu'il soit inférieur à 1.1 en utilisant par exemple le plugin <a href="http://plugins.dotaddict.org/dc2/details/versionsManager" rel="external">versionManager</a>. Ensuite, il faudra refuser l'invitation de mettre à jour le plugin sinon vous allez de nouveau vous retrouvez en version 2013-07-10 car il faut le savoir la version 2013-07-10 est supérieure à la version 1.1, même si la version 1.1 est sortie en 2014 et pas 2013. Cela ne s'invente pas !!</p>Une version de maintenance de dotclearurn:md5:bdd9ebabe77e3c0362fdadc6523c00632014-08-20T11:38:00+02:002014-08-20T11:38:00+02:00NicolasGénéraldebiandotclear <p>Une version de maintenance de dotclear est <a href="http://fr.dotclear.org/blog/post/2014/08/18/Dotclear-2.6.4" hreflang="fr" rel="external">sortie avant-hier</a>. Elle corrige deux failles potentielles. La mise à jour du package debian a été faite, a été uploadé sur les serveurs et devrait être disponible rapidement. </p>Contribuer à dotclearurn:md5:475c9c7582fffd4dd536332b08718acd2014-07-09T16:18:00+02:002014-07-09T15:21:27+02:00Nicolasdotcleardéveloppementlogiciel libremercurial<p>Il n'est pas facile de contribuer à un logiciel libre, même si on l'utilise depuis des années. La barrière entre simple utilisateur et contributeur est parfois bien trop haute. J'utilise <a href="http://fr.dotclear.org/" hreflang="fr" rel="external">dotclear</a> <a href="https://www.nikrou.net/post/2004/02/26/2-creation-du-journal" hreflang="fr" rel="external">depuis de très nombreuses années</a> pour ce <a href="https://www.nikrou.net/pages/Ce-journal-n-est-pas-un-blog%21" hreflang="fr" rel="external">blog qui n'en est pas réellement un</a> ! Depuis un ou deux ans je me suis rapproché de ceux qui font dotclear pour notre plus grand plaisir</p> <p>Lorsqu'on utilise un logiciel pendant un certains temps, on peut rapidement avoir envie de changer des choses, parfois minimes qui permettraient de nous faciliter la vie au quotidien. Souvent le logiciel le permet en changeant des paramètres ou en ajoutant une extension (plugin). Il est très très rare - et c'est d'ailleurs une mauvaise pratique - de devoir modifier le code du logiciel tel qu'on l'a téléchargé. dotclear, via des très nombreux points d'accroches (hook en anglais) dans le code permet de changer le comportement d'une page côté administration ou côté visiteur (behavior dans dotclear), permet d'ajouter des balises de templates utilisables dans les pages de nos thèmes,... dotclear est armé pour répondre aux besoins les plus simples, comme les plus complexes que ce soit quelqu'un qui veut modifier un thème ou un développeur qui veut ajouter de nombreuses fonctionnalités via un plugin.</p>
<p>Mais imaginons que vous ayez trouver un bug ou qu'un bug existant vous empêche d'utiliser facilement dotclear. Vous pouvez attendre qu'il soit corrigé et qu'une nouvelle version vienne tout remettre en ordre. Vous pouvez aussi vous retrousser les manches et <a href="https://bitbucket.org/dotclear/dotclear/pull-requests" rel="external">proposer une correction</a>. Le code de dotclear est géré par un gestionnaire de version (mercurial), hébergé sur les serveurs de l'association. Mais ce même code est dupliqué sur bitbucket. Pour contribuer facilement, il vous faut un <a href="https://bitbucket.org/account/signup/" rel="external">compte sur bitbucket</a>. Ensuite, vous forkez le projet dotclear et finalement vous proposer votre patch. Nul doute que l'équipe le regardera avec attention et l'intégrera rapidement si celui-là est acceptable (qu'il répond au besoin, corrige le bug,...).</p>
<p>Vous pouvez aussi avoir envie de contribuer mais vous n'avez pas trouver de bugs ou vous ne savez pas quelle fonctionnalité ajouter. Pas de problème, la solution est par exemple de contribuer en fermant <a href="http://dev.dotclear.org/2.0/query?status=!closed&keywords=~starter" hreflang="fr" rel="external">un ticket "facile"</a>. Le mieux, là aussi, est de faire une pull-request sur le dépôt bitbucket de dotclear.</p>Utiliser git en local quel que soit le dépôt distanturn:md5:acd94f1bd8e3118de68e353b78331b262013-11-17T10:32:00+01:002016-02-07T14:08:49+01:00NicolasDéveloppementdotcleargitmercurialpiwigo<p>J'ai pris l'habitude d'utiliser <a hreflang="en" rel="external" href="http://git-scm.com/">git</a> sur tous mes projets. Comme tous les projets sur lesquels je travaille ou contribue n'utilisent pas forcément git, cela pourrait poser problème ! Mais c'est sans compter les passerelles permettant d'utiliser git en local quel que soit le gestionnaire de version distant.</p> <h3>git en local avec un dépôt distant subversion</h3><p>Pendant plusieurs années, j'ai contribué à <a hreflang="fr" rel="external" href="http://fr.piwigo.org/">piwigo</a> qui utilise (encore et toujours) subversion. Pour cela j'ai utilisé l'excellente passerelle <a hreflang="fr" rel="external" href="http://git-scm.com/book/fr/Git-et-les-autres-syst%C3%A8mes-Git-et-Subversion">git-svn</a>. Je dis excellent car en plusieurs années d'utilisation je n'ai jamais eu le moindre problème. Pour utiliser git, pour contribuer à piwigo, on commence par cloner le dépôt :</p><pre class="pygments language-sh">git svn clone http://piwigo.org/svn</pre><p>Après en local c'est transparent, on a un "vrai" dépôt git, on peut créer des branches, faire des merge,... Et pour propager les modifications, on ne fait pas un simple <strong>git push</strong> mais</p><pre class="language-bash">git svn dcommit</pre><p>Une chose intéressante, quand on utilise une telle passerelle est de pouvoir communiquer avec ceux qui utilisent le gestionnaire original. Avec git-svn, c'est possible facilement, regardez par exemple les log :</p><pre class="language-git"><code>commit 6a79d17d5dcd2b23be9ef72dd51cc0ff4dd39a04
Author: nikrou <nikrou@68402e56-0260-453c-a942-63ccdbb3a9ee>
Date: Mon Sep 13 19:40:42 2010 +0000
Fix bug 1856 : CSRF issue that allow to change admin password
git-svn-id: http://piwigo.org/svn/trunk@6897 68402e56-0260-453c-a942-63ccdbb3a9ee</code></pre><p>On peut échanger le numéro du commit (ici 6897) avec le reste de l'équipe pour parler de la modification et retrouver ce même numéro sur le dépôt officiel : http://piwigo.org/dev/changeset/6897</p><p>L'installation de <strong>git-svn </strong>est très simple :</p><pre class="pygments language-sh">apt-get install git-svn</pre><h3>git en local avec un dépôt distant mercurial</h3><p>Depuis quelques temps, je contribue à <a hreflang="fr" rel="external" href="http://fr.dotclear.org">dotclear</a> qui utilise <a hreflang="en" rel="external" href="http://mercurial.selenic.com/">mercurial</a>. Comme dit <a hreflang="fr" rel="external" href="http://open-time.net/">Franck</a>, j'utilise <a hreflang="fr" rel="external" href="http://open-time.net/post/2013/11/17/Aujourd-hui-robin">git en local et je pousse mes modifications vers le dépôt mercurial de dotclear</a>. Pour mercurial, il n'existe pas une unique passerelle mais de nombreuses (<a rel="external" hreflang="en" href="http://hg-git.github.com/">hg-git</a>, <a rel="external" hreflang="en" href="http://repo.or.cz/w/fast-export.git">fast-export</a>, ...). J'ai choisi d'utiliser <a rel="external" hreflang="en" href="https://github.com/felipec/git/blob/fc/master/git-remote-hg.py">git-remote-hg</a> développé par <a rel="external" hreflang="en" href="http://felipec.wordpress.com/">Felipe Contreras</a>. Il a fait un <a rel="external" hreflang="en" href="https://github.com/felipec/git">fork "amical" de git</a> qui contient ses modifications.</p><p>L'utilisation est très simple. On commence par cloner le dépôt:</p><pre class="pygments language-sh">git clone hg::https://hg.dotclear.org/dotclear</pre><p>Notez bien le préfixe <strong>hg::</strong> devant l'url du dépôt officiel de dotclear. C'est la seule chose "complexe". Après c'est entièrement transparent. Toutes les commandes permettant de gérer le dépôt sont identiques. On ne sait même pas qu'on travaille sur un dépôt distant mercurial. Pour propager les modifications on fait simplement (depuis la branche courante) :</p><pre class="pygments language-sh">git push</pre><p>L'installation de <strong>git-remote-hg</strong> est un peu plus compliqué que <strong>git-svn</strong> mais pas beaucoup plus. En fait <strong>git-remote-hg</strong> fait partie du package officiel git, dans le répertoire <strong>/usr/share/doc/git/contrib/remote-helpers/</strong> mais n'est pas exécutable ni dans le "bon" répertoire. Pour pouvoir l'utiliser, j'ai donné les droits d'exécution au script et fait un lien qui se trouve dans le <strong>PATH</strong> :</p><pre class="pygments language-sh">chmod +x /usr/share/doc/git/contrib/remote-helpers/git-remote-hg
ln -s /usr/share/doc/git/contrib/remote-helpers/git-remote-hg /home/nicolas/bin
</pre><p>J'ai évidemment <strong>~/bin</strong> dans mon <strong>PATH</strong></p>Quel beau travailurn:md5:4c20b58c54971b36defc4d4310e8f5342013-11-13T13:16:00+01:002013-11-15T11:04:57+01:00NicolasDéveloppementdotclearphp <p>La nouvelle version de dotclear, la 2.6, vient d'être publié et je viens de mettre à jour en 2 clics. Cela ne changera pas ma vie mais quel plaisir de pouvoir enfin utiliser une belle interface d'administration remaniée avec soin.</p>
<p>Le package debian ne devrait pas tarder. Je m'en occupe dès à présent.</p>Bon anniversaire dotclearurn:md5:6fa078bd773b52946abc3c23fc3670332013-08-13T10:39:00+02:002013-08-13T10:39:00+02:00NicolasGénéraldotclear <p>Aujourd'hui <a href="http://fr.dotclear.org/" hreflang="fr" rel="external">dotclear</a> fête ses 10 ans. En effet, le 13 août 2003, un certain <a href="http://neokraft.net/" hreflang="fr" rel="external">Olivier</a> a publié <a href="http://neokraft.net/2003/08/13/nouveau-cms" hreflang="fr" rel="external">une première version de son CMS</a>, dotclear. </p>
<p>Je l'utilise avec bonheur depuis de nombreuses années. Le projet, comme tout projet, a connu des hauts et des bas. Depuis quelques temps, j'essaie de contribuer et de me rapprocher (sans leur faire peur) de l'équipe qui conçoit ce formidable outil. C'est avec un réel plaisir que je découvre l'envers du décors.</p>
<p>Longue vie à dotclear et à dans 10 ans !</p>Utiliser Twig pour vos templates dotclearurn:md5:b5bb2c55d057cab686494da62cb287ea2013-08-04T21:55:00+02:002013-08-04T20:59:50+02:00NicolasPluginsdotclearphpplugintwig <p>Bien entendu vous utiliser <a href="http://twig.sensiolabs.org/">Twig</a> comme moteur de templates et vous rêvez de l'utiliser pour vos templates dotclear. Ne rêvez plus c'est désormais possible grâce à <a href="https://github.com/nikrou/twigTpl">twigTpl</a>. C'est une toute première version mais d'autres suivront ...</p>dotclear en version 2.5 dans debianurn:md5:4609cd755e4344484817993d99179aed2013-05-25T20:36:00+02:002013-05-25T20:36:00+02:00NicolasDéveloppementdebiandotclear <p>La version 2.5 de dotclear sortie le 16 mars dernier est disponible dans debian à partir d'aujourd'hui, enfin pour le moment uniquement dans le dépôt unstable. Cela a été un peu long car il a fallu corriger quelques bugs (liés uniquement au package et pas à dotclear lui-même) apparus dans la version précédente. Mais surtout la sortie de <a href="http://www.debian.org/releases/wheezy/" hreflang="fr" rel="external">wheezy</a> avait bloqué l'entrée de packages ou de mise à jour de package dans unstable.</p>Filtrer efficacement le spamurn:md5:d57ca74eb1deea4d74228daf31cd1cdc2013-01-20T19:47:00+01:002013-01-20T19:48:22+01:00NicolasGénéraldotclearpluginspam <p>Pendant des années, je me suis contenté de filtrer le <a href="http://fr.wikipedia.org/wiki/Spam" hreflang="fr" rel="external">spam</a> avec les filtres natifs de dotclear : listes blanches, listes noires, filtre par IP (bloquées par blog ou globalement). J'ai même essayé <a href="http://akismet.com/" hreflang="en" rel="external">akismet</a> pendant un moment mais je n'en étais pas complètement satisfait et je n'aimais pas dépendre d'un service externe. On peut aussi en interdisant certains mots.</p>
<p>Tous ces filtres ont leur limite. Depuis quelques semaines et notamment sur <a href="https://www.nikrou.net/post/2012/12/23/Mettre-%C3%A0-jour-deux-zones-avec-une-seule-requ%C3%AAte-ajax" hreflang="en" rel="external">le billet précédent</a> j'ai été spammé très régulièrement. J'ai décidé de sortir <a href="http://plugins.dotaddict.org/dc2/details/spamplemousse2" hreflang="fr" rel="external">l'artillerie lourde</a>. En fait même pas. Le plugin Spamplemouse qui s'installe très simplement via l'installeur DotAddict. Spamplemouse est plugin de dotclear qui utilise un <a href="http://fr.wikipedia.org/wiki/Filtrage_bay%C3%A9sien_du_spam" hreflang="fr" rel="external">filtrage bayésien</a>.</p>
<p>Pour utiliser Spamplemouse, il suffit d'aller dans Extension > Antispam puis d'éditer la configuration pour que le système apprenne à partir des anciens messages. Ne supprimer pas vos spams. Le système s'enrichie aussi bien des messages légitimes que des spams. Depuis plus aucun spam ... </p>Et hop dotclear en version 2.4.0 dans debianurn:md5:c2e578565ba4d774a0ead558a37bf9c82011-12-04T13:54:00+01:002011-12-04T13:54:00+01:00NicolasDéveloppementdebiandotclear <p>La version <a href="http://fr.dotclear.org/blog/post/2011/11/13/Dotclear-2.4" hreflang="fr" rel="external">2.4.0 de dotclear est sortie le 13 novembre</a> avec son lot de nouveauté. Elle est depuis aujourd'hui disponible dans <a href="http://www.debian.org/" rel="external">debian</a>, pour le moment uniquement dans le dépôt unstable.</p>Un caddy pour piwigourn:md5:8b1c305a864ccd51693eecc6cb6131b12011-04-09T20:48:00+02:002011-04-09T19:50:15+02:00NicolasDéveloppementcommercedotcleargpllogiciel librephppiwigo<p><a href="https://www.nikrou.net/post/2010/12/04/Faire-une-commande-pour-un-d%C3%A9veloppement">Il y a quelques semaines</a>, je me demandais s'il était possible de faire des plugins pour <a href="http://piwigo.org/" hreflang="fr" rel="external">piwigo</a> ou <a href="http://fr.dotclear.org/" hreflang="fr" rel="external">dotclear</a> en se faisant payer. Et bien c'est possible !</p> <p>On m'a commandé un plugin de caddy pour piwigo. Et cerise sur le gateau, le plugin sera sous <a href="http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" hreflang="fr" rel="external">licence GPL</a>. Je suis payé pour faire le développement de ce plugin et tout le monde pourra bénéficier de ce plugin.</p>
<p>Mais pourquoi choisir cette licence pour celui qui commande ? Cela peut sembler bizarre au premier abord. En effet, il paie pour un plugin et tout le monde pourra le télécharger sans payer, même ses concurrents ! Mais ce n'est pas si simple. En fait, tout le monde l'utilisera, et les utilisateurs pourront remonter des problèmes, ou des bugs (que je corrigerai bien entendu) ou des idées d'amélioration. Tout le monde y gagne.</p>
<p>Et pour finir, contrairement à une idée répandue, on peut vendre un logiciel sous licence GPL. Le plugin est encore en phase de développement mais une fois livré, je le publierai.</p>Version 0.6.0 du plugin relatedLinksurn:md5:43d7d559cea6a7089e3763001e84dcf02010-12-16T13:46:00+01:002010-12-16T13:50:41+01:00NicolasDéveloppementdotcleardéveloppementplugin<p>Je viens de déposer sur <a href="http://www.dotaddict.org/" hreflang="fr" rel="external">dotaddict</a> une nouvelle version (0.6.0) du plugin relatedLinks qui permet de faire des liens de manière automatique et simplifié qui viennent s'ajouter après le contenu d'un billet. Cette nouvelle version permet d'ajouter les liens dans un widget que l'on peut mettre dans la colonne de droite (enfin à droite pour mon thème).</p> <p><a href="//static.nikrou.net/public/widget-related-links.png" title="widget-related-links.png"><img src="//static.nikrou.net/public/.widget-related-links_s.jpg" alt="widget-related-links.png" style="float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; " /></a>La version précédent (<a href="//static.nikrou.net/public/plugins/plugin-relatedLinks-0.5.0.zip">Version 0.5.0</a>) simplifiait grandement l'ajout du bloc de liens. Avec cette version (<a href="//static.nikrou.net/public/plugins/plugin-relatedLinks-0.6.0.zip">Version 0.6.0</a>), il suffit d'aller sur la page "Widgets de présentation et de faire glisser le widget à l'endroit voulu.</p>Une nouvelle version du plugin relatedLinksurn:md5:174be6ea514dcb2c835a2b66b681f5a12010-12-12T20:03:00+01:002016-02-07T14:36:17+01:00NicolasDéveloppementdotcleardéveloppementplugin<p>Je viens juste de publier la version 0.5.0 du <a href="https://www.nikrou.net/pages/relatedLinks">plugin relatedLinks</a> corrige un bug et apporte de nombreuses nouveautés : ajout automatique, activation/désactivation du plugin par blog,...</p> <p>La version 0.5.0 du plugin relatedLinks sera bientôt disponible dans <a hreflang="fr" rel="external" href="http://plugins.dotaddict.org/dc2/">votre crèmerie préférée</a>. En effet, vous pouvez récupérer le plugin sur <a hreflang="fr" rel="external" href="http://plugins.dotaddict.org/">dotaddict</a> mais si vous avez installé le plugin <a hreflang="fr" rel="external" href="http://plugins.dotaddict.org/dc2/details/daInstaller">daInstaller</a> vous pouvez installer ce plugin très facilement en cliquant tout simplement. D'autre part, si vous avez déjà installé le plugin relatedLinks, vous pourrez le mettre à jour tout aussi facilement.</p><p>Au menu des modifications de cette nouvelle version il y a la correction du bug qui empêchait de supprimer les billets ajoutés dans la liste. La grosse évolution de cette version est la possibilité de mettre en place le contenu généré par le plugin sans modifier le template de son thème. L'astuce est que le plugin utilise le <a hreflang="fr" rel="external" href="http://fr.dotclear.org/documentation/2.0/resources/plugins/behaviors">comportement</a> (behavior) <strong>publicEntryAfterContent</strong>.</p><p>Pour rendre plus souple la manière de gérer son thème, le contenu par défaut généré par le plugin est dans un template (<strong>inc_related_links.html</strong>) que vous pouvez trouvez dans le répertoire default-templates du plugin. L'idée est que si vous souhaitez faire des modifications mineures vous pouvez ne modifier que ce template en le surchargeant dans votre thème.</p><p>Une autre manière de procéder avec le nouveau template fourni par le plugin est d'ajouter une inclusion dans votre template <strong>post.html</strong>. Le comportement par défaut sera d'inclure le template <strong>inc_related_links.html</strong> fourni par le plugin. Le code à ajouter dans votre template sera :</p>
<pre><code class="language-markup">{{tpl:include src="https://www.nikrou.net/post/2010/12/12/inc_related_links.html"}}</code></pre><p>Comme pour le cas précédent, vous pouvez aussi surchargé le sous-template <strong>inc_related_links.html</strong> dans votre thème.</p><p>Dans ma todo-list, j'ai noté cela :</p><ul><li>mettre les liens associés dans un widget au lieu de les mettre sous le billet</li><li>pouvoir supprimer (par un bouton) tous les liens d'un billet</li><li>pouvoir choisir le type de billets (post, page, autres)</li><li>pouvoir attacher une liste particulière : par exemple les N derniers billets de la même catégorie, ou les M billets portant tel tag.</li><li>ajouter des classes dans le template par défaut pour différencier les lignes paires ou impaires</li></ul><p>Si vous avez d'autres idées, n'hésitez pas, les commentaires sont ouverts !</p>Comment faire baisser le taux de rebonds sur son blog ?urn:md5:666f65f1f2df9f54fe75c5594cbecc772010-12-09T14:14:00+01:002010-12-09T14:16:04+01:00NicolasDéveloppementdotcleardéveloppementplugintags<p>Quand on regarde les statistiques de <a href="http://www.google.com/analytics/" rel="external">google analytics</a> le taux de rebond est un indicateur de l'intérêt des visiteurs pour le site. Plus il est élevé et moins les visiteurs ont trouvé d'intérêt à la dernière page vue (qui peut d'ailleurs être la première). Il y a de nombreuses façons d'améliorer et faire baisser ce taux...</p> <p>Si la page d'accueil de votre site a un fort taux de rebonds c'est certainement parce que les personnes qui arrivent sur votre site ne trouvent pas ce à quoi ils s'attendent. Les mots clés par lesquels ils sont arrivés sur votre site ne représente pas bien son contenu. Cela est valable pour n'importe quelle page.</p>
<p>Un moyen de garder plus longtemps vos visiteurs et de les inciter à parcourir plus longtemps et plus attentivement votre site et de les aider dans leur démarche. S'ils ont aimé un article, plutôt que de les laisser chercher par eux même, une idée serait de leur donner des liens qui pourraient leur plaire. Les tags sont un bon moyen. Ils ont un double objectif : </p>
<ul><li>fournir des mots clés sur la page ce qui est utile aux moteurs d'indéxation. </li>
<li>fournir des pages contenant ces mêmes mots clés</li>
</ul>
<div>On peut aussi ajouter des liens pertinents pour prolonger une visite. Il existe un plugin pour dotclear qui ajoute automatiquement des liens vers les billets suivants et précédents mais ce n'est pas forcément le plus logique et le plus intéressant pour le lecteur. L'idéal serait de pouvoir choisir les billets relatifs au billet en cours de lecture. Ce plugin existe : <a href="http://plugins.dotaddict.org/dc2/details/relatedLinks" hreflang="fr" rel="external">relatedLinks</a>. Vous pouvez aussi en trouver une description plus complète sur la <a href="https://www.nikrou.net/pages/relatedLinks" hreflang="fr">page dédiée au plugin relatedLinks</a>. </div><div>Vous avez aussi un exemple d'utilisation avec les trois liens ci-dessous.</div>Faire une commande pour un développement ?urn:md5:eb1b0e9e912c42073be259ace1c483502010-12-04T17:14:00+01:002010-12-08T22:20:15+01:00NicolasDéveloppementcontactdotclearpiwigoplugin<p>Vous utilisez de nombreux logiciels libres et ils correspondent pour la plupart à ce que vous en attendez. Mais ne vous êtes jamais dit : ce logiciel est bien sympathique mais il manque telle ou telle fonctionnalité. Vous essayez de contacter l'équipe, vous leur suggérer d'ajouter la fonctionnalité si chère à vos yeux mais vous êtes tout de même à la merci du bon vouloir de l'équipe de développement.<a href="http://www.cyrille-borne.com/index.php?post/2010/12/03/Quelques-r%C3%A9flexions-sur-l-argent-et-le-logiciel-libre" hreflang="fr" rel="external"> Et comme le suggère Cyrille, si vous passiez une commande ?</a></p> <p>Je développe à mes heures "perdues". Je suis profondément attaché aux valeurs du logiciel libre mais le billet de <a href="http://www.cyrille-borne.com/" hreflang="fr" rel="external">Cyrille</a> m'interpelle et si au lieu de simplement partager mes développements, je me faisais payer pour en faire d'autres. Tout le monde y gagnerait : la personne qui fait la commande et qui voit la fonctionnalité manquante arrivée dans son logiciel préféré et moi qui continue à coder pour le plaisir mais en mettant un peu de beurre dans les épinards.</p>
<p>Je fais des plugins (extensions) pour <a href="http://fr.piwigo.org/" hreflang="fr" rel="external">piwigo</a>;</p>
<ul>
<li><a href="http://piwigo.org/ext/extension_view.php?eid=307" hreflang="fr" rel="external">akBookStyle</a> : ce plugin permet une présentation alternative avec imagettes et image de taille web sur la même page.</li>
<li><a href="http://piwigo.org/ext/extension_view.php?eid=263" rel="external" hreflang="fr">pwgCumulus</a> : ce plugin présente les tags sous la forme d'une animation flash en 3D.</li>
<li><a href="http://piwigo.org/ext/extension_view.php?eid=394" rel="external" hreflang="fr">Database Migration</a> : ce plugin permet d'utiliser une autre base de données que <a href="http://www.mysql.fr/" rel="external" hreflang="fr">MySQL</a>, à savoir <a href="http://www.postgresql.org/" rel="external" hreflang="en">PostgreSQL</a> ou <a href="http://www.sqlite.org/" rel="external" hreflang="en">SQLite</a> et assure la migration.</li>
<li><a href="http://piwigo.org/ext/extension_view.php?eid=370" rel="external" hreflang="fr">photoWidget</a> : ce plugin permet d'afficher les imagettes sous la forme d'une animation flash en 3D, de la même manière que les tags.</li>
<li><a href="http://piwigo.org/ext/extension_view.php?eid=441" rel="external" hreflang="fr">User Tags</a> : ce plugin permet aux visiteurs de votre galerie d'ajouter des tags aux images.</li>
</ul>
<div>Je développe ou reprends le développement de plugin pour <a href="http://fr.dotclear.org/" hreflang="fr" rel="external">dotclear</a> :</div><div><ul><li><a href="https://www.nikrou.net/pages/contactPage" hreflang="fr">contactPage</a> : le plugin (non public) qui me permet d'avoir une page de contact.</li>
<li><a href="https://www.nikrou.net/a-propos" hreflang="fr">aboutPage</a> : une page à propos (non public)</li>
<li><a href="https://www.nikrou.net/pages/externalLinks" hreflang="fr">externalLinks</a> : ce plugin permet d'ouvrir les liens externes dans une nouvelle fenêtre</li>
</ul>
</div>
<p>J'ai développé d'autres plugins pour piwigo ou dotclear mais ceux-ci ne sont pas publiques et ont fait l'objet d'un développement spécifique. </p>
<p>Si vous aussi avez un besoin d'un plugin (pour piwigo ou dotclear) ou d'un développement spécifique (en PHP, Perl,...) et être prêt à le payer, <a href="https://www.nikrou.net/contact" hreflang="fr">n'hésitez pas à me contacter</a> avec un cahier des charges précis. J'évalue la charge et on se met alors d'accord sur un prix. Dans l'idéal, j'aimerais que la licence du plugin soit <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" hreflang="en" rel="external">GNU GPL (version 2)</a>. En clair, vous m'achetez le développement d'une fonctionnalité dont vous avez besoin mais j'en garde la propriété intellectuelle. </p>
<p>Il y a plusieurs avantages à utiliser ce type de licence. Je ne vous prends pas en otage et vous pouvez modifier le plugin à votre guise ou faire une autre commande auprès de quelqu'un d'autre. Un autre avantage c'est que d'autres personnes peuvent être intéressées, peuvent utiliser le plugin et remonter des bugs ou des idées d'évolutions dont tout le monde bénéficiera y compris la personne ayant eu l'idée initiale.</p>
<p>Si le plugin est sous licence GPL, je le mettrais en libre téléchargement ou pourrais le vendre à d'autres. Evidemment la personne qui me fera la commande pourra en faire de même. La seule et unique condition est que les "copies" vendues gardent la même licence.</p>
<p>En clair, la commande vous permet de bénéficier de la fonctionnalité qui vous manquait et qui n'aurait peut-être jamais existée sans cela.</p>