Pour commencer

J'ai un peu revu certains objectifs de PrivateJoke, pour adopter un fonctionnement plus transparent de celui-ci, il doit rester light et invisible, ne nécessiter aucune intervention au niveau des thèmes (tout du moins si cela est souhaité) ...

L'identification

J'ai un widget fonctionnel côté public qui permet de s'identifier avec un login et un password et de se déconnecter.

Par contre côté administration je n'ai rien fait, donc il reste tout à faire :-) Ainsi les Login & Password sont stockés directement dans le fichier _public.php du plugin, c'est pas très pro, mais ce n'était pas non plus mon principal souçi au départ ;-)

Une identification valide donne lieu à la création d'un cookie dc_PJoke_... reprenant les infos nécessaires pour déterminer si l'identifié à accès ou non aux billets protégés par le mot de passe standard des billets.

L'affichage des billets dans Home, Category, Tag ...

Une fois identifié le simple complément de la requête SQL par les tests appropriés suffit à ajouter les billets restreints mais seulement ceux accessibles à l'identifié. La méthode utilisée est indolore car totalement transparente :-)

L'affichage d'un billet précis

Lors de l'affichage d'un billet dotclear recherche ce billet et suivant qu'il soit protégé par mot de passe ou non, suivant que le mot de passe ai déjà été saisie, cette fonction valide le mot de passe, affiche le billet ou affiche la page de saisie du mot de passe.

En prenant la main avant l'affichage de demande de mot-de-passe, on peut faire croire à dotclear que ce mot de passe à déjà été saisie, bien sur si le billet est accessible à l'identifié. La encore la méthode est indolore :-)

Là où cela devient laborieux et un peu intrusif c'est l'obligation (faute d'autres solutions) de surcharger les tpls du core EntryNext et EntryPrevious, cela implique l'apparition de futurs éventuels problèmes ... ''(ma première solution de patch du core s'affranchissait de cette contrainte ;-) )

Suite ...

Cet version de PrivateJoke est la v°0.1 à utiliser à vos risques et périls LOL .

Prochaine étape sécuriser un peu la procédure et surtout développer la partie administration !