joliclic code

 

Captain Clear icon

Description

Captain Clear est un plugin pour DotClear 2, un captcha anti-spam accessible et multi-réponse pour les commentaires.

D'autres solutions anti-spam efficaces existent pour DotClear, vous n'avez donc pas forcément besoin de ce captcha.
Je me suis codé celui-ci car visiblement free.fr, qui héberge ces pages, semble ne pas apprécier la présence de spam, même bloqué dans les tables temporaires des autres solutions (Antispam et Akismet).
Je souhaitais que ce plugin soit accessible, donc exit les solutions basées sur la reconnaissance d'image, et qu'il puisse être bilingue, donc qu'il puisse accepter plusieurs réponses.

Captain Clear ne filtre que les commentaires du blog. Pour se protéger du spam sur les rétroliens (trackbacks), regarder le plugin Rétrocontrôle.

Télécharger

version 1.0 pour DotClear 2

télécharger captainClear-1.0.zip

date : 2008-09-11

new version 2 beta 1

attention cette version est une version beta, c'est à dire une version en test !
Voir ce billet sur le blog pour les nouveautés, et le fichier howto.txt de l'archive.

télécharger captainClear-2.0-beta1.zip

date : 2008-10-07

Licence : GPL 2.0

Installation

  1. Copier le dossier "captainClear" décompressé dans le dossier "plugins" de DotClear.
  2. Modifier le fichier "_public.php" de captainClear, car celui-ci ne contient volontairement que 3 questions anti-spam, afin que chacun crée ses propres questions. Il faut donc ajouter des valeurs à la variable $questions de la classe captainClear. Ces valeurs sont de simples tableaux de la forme :
    array('texte de la question', array('solution 1', 'solution 2', 'solution 3'))

    Vous pouvez mettre le nombre de réponses que vous souhaitez à une question.
  3. Pour que le captcha apparaisse sur votre blog, vous devez modifier le fichier "post.html" de votre thème, en utilisant la balise de template <tpl:captainClearFills></tpl:captainClearFills>. Personnellement, j'ai supprimé le bouton submit qui apparait sous la prévisualisation du commentaire dans le thème par défaut, jugeant qu'il devenait peu compréhensible avec l'apparition du captcha plus bas.
    Voici en exemple les changements fait sur mon thème par rapport au thème par défaut de Dotclear :

    suppression du bouton submit sus-cité, remplacer :
          <tpl:IfCommentPreview>
            <div id="pr">
              <h3>{{tpl:lang Your comment}}</h3>
              <dl>
                <dd class="comment-preview">{{tpl:CommentPreviewContent}}</dd>
              </dl>
              <p><input type="submit" class="submit" value="{{tpl:lang send}}" /></p>
            </div>
          </tpl:IfCommentPreview>
    par  :
          <tpl:IfCommentPreview>
            <div id="pr">
              <h3>{{tpl:lang Your comment}}</h3>
              <dl>
                <dd class="comment-preview">{{tpl:CommentPreviewContent}}</dd>
              </dl>
              <!--<p><input type="submit" class="submit" value="{{tpl:lang send}}" /></p>-->
            </div>
          </tpl:IfCommentPreview>

    ajout du captcha à la prévisualisation du commentaire, remplacer :
          <fieldset>
            <p><input type="submit" class="preview" name="preview" value="{{tpl:lang preview}}" />
            <tpl:IfCommentPreview><input type="submit" class="submit" value="{{tpl:lang send}}" /></tpl:IfCommentPreview></p>
          </fieldset>
    par  :
          <fieldset>
            <tpl:IfCommentPreview>
                <tpl:captainClearFills></tpl:captainClearFills>
            </tpl:IfCommentPreview>
            <p><input type="submit" class="preview" name="preview" value="{{tpl:lang preview}}" />
            <tpl:IfCommentPreview><input type="submit" class="submit" value="{{tpl:lang send}}" /></tpl:IfCommentPreview></p>
          </fieldset>
  4. Le captcha génére le HTML le suivant :
    <p class="field captainClear">
        <label for="captainClear_data">
            <strong>sécurité : question anti-spam / security : anti-spam question</strong>
            <br>
            intitulé de la question:
        </label>
        
        <input name="captainClear_data" id="captainClear_data" type="text">
        <input name="captainClear_cdata[]" value="crypted_data" type="hidden">
    </p>
    vous pouvez donc styler cette partie dans la CSS de votre thème.

Ces informations sont également disponible dans le fichier "howto.txt" de l'archive.