plugin-passCat 1.0.2 pour Dotclear 1.2.3

Dernière mise à jour le 18/11/2007 - 22h00

Installation

Avec l'installeur (DotClear 1.2.3)

inst01

Cliquez tout d'abord sur le menu Outils.

inst02

Puis sur le lien Gestionnaire des plugins.

inst03

Comme tous les plugins Dotclear, il vous suffit de taper dans le Gestionnaire des plugins de dotclear l'adresse suivante :

http://www.pirio.org/dotclear/passcat/downloads/plugin-passCat-1.0.2.pkg.gz

Puis, cliquez sur le bouton Installer.

Après avoir installé puis mis en place des catégories protégées, n'oubliez pas d'effacer le cache de votre navigateur web avant de revenir à la racine de votre blog.

Et voilà, c'est fini ! Ha non, encore une petite chose !

Avec l'archive

  1. Tout d'abord, téléchargez l'archive plugin-passCat-1.0.2.tar.gz
  2. Décompressez l'archive dans le répertoire "dotclear/ecrire/tools/" :
    user@serveur$ cd dotclear/ecrire/tools
    user@serveur$ tar xzf plugin-passCat-1.0.2.tar.gz
  3. Modifier les droits des fichiers si besoin...

Et voilà, c'est fini ! Ha non, encore une petite chose !

Une dernière petite chose...

Le plugin-passCat utilise une table à ajouter dans votre base de données pour stocker les mots de passe des différentes catégories que vous désirerez protéger.

inst04

Après avoir cliqué sur le menu Outils, cliquez sur le lien du plugin passCat.

inst05

Lors de la première utilisation du plugin, il vous sera proposé de créer pour vous cette table. Pour cela, cliquez juste sur le bouton Créer la table.

Mais ce n'est pas tout ! Comme tout bon plugin (;p), vous aurez besoin de modifier le template de votre blog.

Dans votre template.php, cherchez le bloc if;elseif;else concernant les modes de Dotclear. J'ai pris ici comme exemple, le template.php du thème par défaut de Dotclear. Cherchez les lignes suivantes :

    
<div id="main">
  <div id="content">

    <?php if ($err_msg != '') : /* Si on a une quelconque erreur, on l'affiche */?>
      <div class="error"><strong>Erreur : </strong>
        <?php echo $err_msg; ?></div>

    <?php elseif ($preview) : /* Si on demande la prévisualisation d'un commentaire */?>
      <h3>Commentaire pour <?php dcPostTitle(); ?></h3>
        <div id="comment-preview">
          <blockquote>
            <?php dcCommentPreview(); ?>
          </blockquote>
        </div>

      <h3>Changer le commentaire</h3>
        <?php include dirname(__FILE__).'/form.php'; ?>

    <?php elseif ($mode != 'post') : /* Si aucune erreur et mode != post on affiche une liste de billets */?>
      <?php # Phrase affiché en cas de recherche (%s est le mot cherché)
        dcSearchString('<p>Résultats de votre recherche de <em>%s</em>.</p>');
      ?>

      <?php include dirname(__FILE__).'/list.php'; ?>

    <?php else : /* Sinon, mode = post, donc billet unique (avec commentaires et tout le reste)*/?>
      <?php include dirname(__FILE__).'/post.php'; ?>
    <?php endif; ?>

  </div>
</div>

    

Et remplacez par ce qui suit (les lignes ajoutées ou modifiées sont en gras) :


<div id="main">
  <div id="content">

   <?php if ($passCat->getAuth()) : ?>
   <?php echo $passCat->formAuth(); ?>

    <?php elseif ($err_msg != '') : /* Si on a une quelconque erreur, on l'affiche */?>
      <div class="error"><strong>Erreur : </strong>
        <?php echo $err_msg; ?></div>

    <?php elseif ($preview) : /* Si on demande la prévisualisation d'un commentaire */?>
      <h3>Commentaire pour <?php dcPostTitle(); ?></h3>
        <div id="comment-preview">
          <blockquote>
            <?php dcCommentPreview(); ?>
          </blockquote>
        </div>

      <h3>Changer le commentaire</h3>
        <?php include dirname(__FILE__).'/form.php'; ?>

    <?php elseif ($mode != 'post') : /* Si aucune erreur et mode != post on affiche une liste de billets */?>
      <?php # Phrase affiché en cas de recherche (%s est le mot cherché)
        dcSearchString('<p>Résultats de votre recherche de <em>%s</em>.</p>');
      ?>

      <?php include dirname(__FILE__).'/list.php'; ?>

    <?php else : /* Sinon, mode = post, donc billet unique (avec commentaires et tout le reste)*/?>
      <?php include dirname(__FILE__).'/post.php'; ?>
    <?php endif; ?>

  </div>
</div>

    

Cette ajout permet d'afficher le formulaire d'authentification lors de l'accès à une catégorie protégée et où vous n'êtes pas encore authentifié.

Une dernière chose : Après une authentificatino réussie, passCat créé un cookie. Ce cookie sert à ne pas se ré-authentifié. passCat fournit un moyen d'effacer ce cookie. Il s'agit de la fonction "passCatLogout()" qui affichera un lien permettant d'effacer ce cookie. Par exemple, si vous désirez placer ce lien au début de votre liste des catégories de votre blog, cherchez le bloc suivant dans le fichier template.php :


<div id="categories">
  <h2>Catégories</h2>
  <?php dcCatList(); ?>
</div>

    

Et modifiez-le de cette façon :


<div id="categories">
  <h2>Catégories</h2>
  <?php $passCat->passCatLogout(); ?>
  <?php dcCatList(); ?>
</div>

    

Les flux rss et atom

Par défaut, les flux rss et atom présentent l'ensemble des billets, qu'ils soient dans une catégorie protégées ou pas. passCat met à disposition deux autres flux rss et atom. Ces deux flux version "passCat" ne présentent que les billets des catégories non-protégées. Dans une prochaine version, je mettrai en place une authentification HTTP de façon à pouvoir obtenir un flux authentifié pour les catégories protégées.

Pour modifier vos flux rss et atom :

  1. Rendez-vous dans l'interface d'adminsitration de votre DotClear
  2. Allez dans "Outils" puis "Configuration de DotClear"
  3. inst07
  4. Modifiez les valeurs du champ "Emplacement du fil RSS" en "/dotclear/ecrire/tools/passcat/rss.php" et celui du champ "Emplacement du fil Atom" en "/dotclear/ecrire/tools/passcat/atom.php"
  5. Enregistrer votre configuration en cliquant sur le bouton "enregistrer" tuot en bas

ATTENTION ! Vos anciens flux RSS et Atom sont toujours disponible à l'adresse "/dotclear/rss.php" et "/dotclear/atom.php". Il vous faut soit les renommer, soit les déplacer !!!

Désinstallation

Plusieurs étapes :

  1. Effacer le plugin passCat
  2. Effacer le répertoire share/passCat
  3. Effacer la table dc_passcat

Effacer le plugin passCat

Pour cela deux possibilités :

  1. La première possibilité utilise l'interface d'administration de DotClear. Cliquez sur le menu Outils, puis sur le lien Gestionnaire des plugins.

    inst08

    Pour terminer, cliquez sur le tien Supprimer du plugin passCat.

  2. La seconde possibilité consiste à effacer simplement le répertoire passcat présent dans le répertoire dotclear/ecrire/tools/ de votre DotClear.

Effacer le répertoire share/passCat

passCat place quelques fichiers dans le répertoire dotclear/share/passCat/. Vous y trouverez le fichier de configuration de passCat passCat.conf, votre formulaire d'authentification personnalisé passCat_auth et divers fichiers de log passCat.log, passCat.log.1.gz, etc.

Avant d'effacer ce répertoire, n'oubliez pas de sauvegarder au moins les fichiers passCat.conf et passCat_auth si vous désirez conserver votre configuration passCat pour pouvoir la ré-utiliser plsu tard...

Effacer la table dc_passcat

Avant d'effacer la table, n'oubliez pas de la sauvegarder si besoin !!!

Pour effacer la table "passcat" de la base de donnée MySQL :

Valid XHTML 1.0 Strict   Valid CSS!