Accès Restreint Partiel

Voulez-vous masquer une partie du contenu de vos articles aux visiteurs de passage ? et réserver la totalité à certains de vos membres ? Voulez-vous remplacer le contenu occulté par un appel à l’action (pour devenir Membre, bla bla bla...) ?

Le plugin Accès Restreint Partiel permet d’afficher partiellement les articles faisant partie d’une zone à accès restreint. Il s’utilise en complément du plugin Accès Restreint.

Utilité et fonctionnalités du plugin

Ce plugin est utilisé en sur-couche du plugin Accès Restreint. Ce dernier permet de définir des zones à accès restreint et d’attribuer des droits d’accès aux visiteurs et rédacteurs. Sur ce dernier point cela ne change pas.

Alors quelles sont les différences ?
Avec le plugin Accès Restreint, tout le contenu est occulté. Et même plus, puisque les articles concernés ne sortent même plus des résultats des boucles, sauf si le visiteur possède les droits d’accès à la zone restreinte, bien évidemment.

Avec le plugin Accès Restreint Partiel, tous les articles sortent dans les résultats de la boucle, mais c’est le contenu affiché par la balise #TEXTE de l’article protégé qui sera partiellement occulté, en fonction des filtres que vous aurez sélectionnés et configurés.

Par exemple, il est possible d’afficher seulement N mots, un certain pourcentage de l’article, couper juste avant le Nième intertitre, rien du tout, etc.

Il est également possible de configurer ce qui doit être affiché avant et après un texte qui a subit un filtrage.

Pour voir ce que cela donne, voici un exemple avec un guide de construction partiellement occulté : https://cabane.bilp.fr/guide-constr...

I. Installation du plugin

Le plugin s’installe comme tout autre plugin. Cependant, le plugin Accès Restreint 3.x doit être préalablement installé. Les zone doivent aussi être définies.

Il faut ensuite passer à la configuration du plugin. Si vous omettez de le faire, tous les articles des zones restreintes seront listés mais le #TEXTE sera complètement occulté à l’affichage.

II. Définir les règles de filtrage

Les règles de filtrage indiquent comment on souhaite occulter le texte des articles.
Il est possible de configurer jusqu’à 8 règles de filtrage, à choisir parmi un choix de filtre.

On peut choisir la règle qui est appliquée par défaut. Ainsi on peut rapidement choisir une règle de filtrage pour l’ensemble du site, puis choisir une règle spécifique pour chaque zone, ou pour chaque article.

Pour chaque règle, on choisit un filtre et on indique les paramètres du filtre.
Le paramètre « Nombre de caractère minimum » n’est pas encore implémenté.

Dans l’exemple ci-dessous, la règle #2 consiste à filtrer 50% du texte :

Les filtres

Diminutif Description Paramètre xxx Remarque
arp_filtre_ncar Couper à xxx caractères Nombre de caractères à conserver dans l’article Les modéles, balises html, raccourcis typographiques, comptent pour 1 caractère
arp_filtre_pourcentage Ne conserver que xxx % de l’article Définit le % de caractères à afficher idem
arp_filtre_nintertitre Couper juste avant le xxx ième intertitre Exemple : si xxx=3, on affiche uniquement les 2 premiers intertitres avec leur texte Si xxx est supérieur au nombre d’intertitres présents dans l’article, alors tout l’article est affiché
arp_filtre_que_intertitre Ne laisser que les intertitres et remplacer le texte par xxx ATTENTION, pas encore implémenté
arp_filtre_tout Tout le texte est filtré (aucun affichage) non utilisé
arp_filtre_rien Rien n’est filtré, le texte est affiché tel que non utilisé Utile pour désactiver ponctuellement le filtrage partiel

III. Configurer chaque zone

Pour chaque zone, on peut indiquer la règle de filtrage à appliquer.

On peut également définir les textes AVANT et APRES : si le texte de l’article a subi un filtrage, il est possible d’insérer un bout de texte AVANT et APRES le texte de l’article.

On peut définir ces textes AVANT/APRES pour l’ensemble des zones par défaut. Mais on peut aussi le définir spécifiquement pour chaque zone. Dans ce cas, ce sont les textes spécifiques qui sont prioritaires sur les textes définis globalement.

Exemple de configuration d’une zone
On peut insérer des modèles et du HTML. Voir plus loin l’explication des modèles <liste_intertitre1> et <liste_doc1>

Les textes AVANT/APRES sont au standard typographique SPIP. On peut même ajouter des modèles, des balises HTML, etc.

Deux modèles pour donner envie

Voilà ce que cela donne

Occulter une partie du texte pour susciter la curiosité, c’est une chose. Mais dévoiler subtilement, c’est encore mieux.

Alors voici deux modèles à insérer dans les textes AVANT ou APRES.
-  <liste_intertitre> : liste tous les intertitres de l’article
-  <liste_doc> : liste tous les documents de l’article sous forme de mini-vignette non cliquables. Avec deux paramètres :

  • width : largeur de la vignette en px,
  • raz : nombre de vignette sur une seule ligne. Juste après la Nième(raz) vignette, un <br class='nettoyeur'> est inséré.

Définir des règles spécifiques à certains articles

Comme nous l’avons vu, on définit des règles de filtrage globalement pour tout le site, ou zone par zone.
Mais il est également possible d’agir localement au niveau d’un article. Par exemple, on peut choisir d’afficher 80% du texte pour tous les articles d’une zone donnée. Et pour un article précis de cette zone, on choisit de tout afficher.

Pour cela, il suffit de décider quelle règle à on souhaite affecter à un article, en lui attribuant un mot-clé de la forme arp_regle# ou # est le numéro de la règle.

Choisir précisément l’endroit de la coupe

Enfin, on peut être encore plus précis en choisissant l’endroit exact où on souhaite que le texte soit coupé. Il suffit d’insérer la balise <couper_ici> à l’endroit exact dans le texte.
Cette disposition est la plus prioritaire de toutes les règles.

Pour éviter de tourner en rond

Avant de crier à l’aide, je ne peux que vous encourager à lire la doc ci-dessus et à appliquer.
En particulier :
-  vous devez définir au moins règle, c’est-à-dire définir un filtrage.
-  vous devez définir au moins une zone en accès restreint.
-  vous devez indiquer quelle règle doit-être appliquée à cette zone, ou alors au moins déclarer la règle par défaut.

Discussion

6 discussions

  • Petite erreur dans la doc qui s’avère pénalisante pour les utilisateurs :
    Le nom du mot clé ne doit pas être « arp_regle# » mais « arp_regle_# » (avec un underscore).

    Répondre à ce message

  • 9

    Bonjour Bruno avez vous prévu un portage sur spip 4.0 ?
    Ou alors Est ce que vous pensez que ce serait difficile à adapter, pour quelqun qui aurait des connaissance en php ?

    • Bonjour Pipol

      Mon emploi du temps m’interdit de travailler sur cette migration à courte échéance. Mais il est certain que je le ferai si un jour je décide de passer à SPIP 4, et si personne d’autre ne le fait avant.

      Je connais mal les spécificités de SPIP 4. Pour le passage à SPIP 3, il n’y avait eu que le paquet XML à modifier. Très facile. Pour SPIP 4, il faut regarder les changements éventuels sur les pipelines, sur les traitements des tables.

      Je vais demander à un de mes collaborateurs d’y jeter un oeil.

    • Merci pour la réponse :)
      Si seulement j’étais capable de faire des plugin SPIP je l’uarai fit avec plaisir. hélas c’est pas mon domaine ^^. En espérant que ce soit aussi simple que le passage à Spip 3

    • Bonjour Pipol

      J’ai testé sur SPIP 4 en modifiant le paquet.xml et ça fonctionne. Je pense que c’est assez simple qu’avec le passage à Spip 3

    • Top ca va me rendre un grand service ! pourriez vous partager le paquet.xml ? Ou modifier l’archive ?

    • En attendant de modifier l’archive, voici le contenu du fichier paquet.xml. La seule différence est cette ligne :

      compatibilite="[3.0.9;4.0.*]"

      <paquet
      	prefix="arp"
      	categorie="edition"
      	version="1.2.0"
      	etat="dev"
      	compatibilite="[3.0.9;4.0.*]"
      	logo="prive/themes/spip/images/arp-64.png"
      	documentation="https://contrib.spip.net/Acces-Restreint-Partiel"
      	schema="1.0.0"
      >
      	<!--
      		Paquet genere le 2014-08-01 15:50:11
      		(Vous pouvez bien entendu supprimer ces commentaires)
      	-->
      
      	<nom>Accès Restreint Partiel</nom>
      
      	<!-- cette balise peut etre presente plusieurs fois s'il y a plusieurs auteurs -->
      	<auteur lien='https://www.bilp.fr/Bruno'>Bruno Caillard</auteur>
      
      	<licence>GNU/GPL</licence>
      
      	<necessite nom="accesrestreint" compatibilite="[3.3.1;]" />
      <!--
      	<pipeline nom="post_boucle" inclure="arp_pipelines.php" />
      	<pipeline nom="pre_propre" inclure="arp_pipelines.php" />
      -->
      
      	<pipeline nom="declarer_tables_interfaces" inclure="arp_pipelines.php" />
      	<pipeline nom="pre_boucle" inclure="arp_pipelines.php" />
      	<pipeline nom="insert_head_css" inclure="arp_pipelines.php" />
      
      	<pipeline nom="autoriser" inclure="arp_autorisations.php" />
      
      
      </paquet>
    • J’ai testé, j’ai réussit à activer le plugin. cela semble marcher, Cependant cela créer quand même une ptite erreur dans l’admin. Apparemment il y a un souci dans arp_pipeline.
      L’erreur evoque :
      Warning : Parameter 1 to arp_pre_boucle() expected to be a reference, value given in /www/ecrire/inc/utils.php on line 228

      D’apèrs des conseil sur irc
      Il semblerait qu’il faille corriger la ligne 27 de arp_pipeline. et remplacer
      function arp_pre_boucle(&$boucle)
      par
      function arp_pre_boucle($boucle)

    • Merci pour votre retour. Effectivement, il faudrait un passage par valeur de l’argument. On intégrera la solution.

    • Bonjour pipol, c’est fait. Vous pouvez mettre à jour.

    Répondre à ce message

  • Christophe

    Bonjour,

    la balise <couper_ici> qui est insérée entre 2 lignes d’un tableau, fonctionne bien pour les non connectés, car le tableau est coupé, cependant pour les personnes identifiées, cette balise est remplacée dans le code par <couper_ici></couper_ici> et cela produit donc 2 tableaux distincts.

    Serait-il possible de trouver une solution à cela ?

    Répondre à ce message

  • Oupsss... merci de supprimer mon précédent message, je me suis trompé de page.
    Désolé

    Répondre à ce message

  • 1
    Christophe Noisette

    Salut à tous et à toutes
    merci pour ce plugin qui devrait répondre à mes besoins... mais... je n’arrive pas à l’installer.
    J’ai crée une zone qui correspond à une rubrique et dedans il y a trois articles.
    J’ai mis une régle pour cette zone... mais si je tape l’adresse j’ai l’erreur suivante

    Erreur 401
    L’accès à cette page est restreint. Identifiez vous pour y accéder

    Or ce message est pour moi un résidu du temps ou je n’avais qu’acces restreint.
    Là si je vais sur la rubrique en question, je devrais avoir les titres des articles et si je clique sur un article n’avoir que X% du texte...
    Je ne sais comment résoudre ce conflit entre Acces Restreint et Acces Restreint Partiel.
    Merci pour vos lumières et pistes...
    Bonne journée
    Cordialement
    Christophe

    • Christophe Noisette

      Bonjour
      j’ai donc réussi finalement à faire ce que je souhaitais... enfin presque.
      Sur ma page galerie privée, si je tape n’importe quel login / mdp enregistré, j’ai accès à toutes les galeries privées alors que j’ai fait des zones distinctes avec des auteurices distinctes. Je ne comprends pas. Avez vous déjà rencontré ce souci ?
      Bonne journée
      Cordialement
      Christophe Noisette
      https://lairederien.net

    Répondre à ce message

  • 4

    Bonjour meci pour ce plugin. Pouvez-vous le marquer 3.2 compatible svp. Merci

    • Tu l’as testé sur une 3.2 et ça fonctionne ?

    • IVAN DE PRINS

      Je veux bien le tester, mais je ne peux pas l’installer. Spip refuse. Comment fait-on ?

    • J’ailerais bien le tester, mais impossible d’ajouter un plugin qui n’est pas 2.2 compatible. Comment fait-on ?

    • Il suffit de télécharger le zip du plugin, le décompresser et aller dans la branche la plus récente s’il y en a plusieurs. Là, éditer le fichier paquet.xml et remplacer la balise max par 3.2.* sans toucher au reste. Sauvegarder, uploader sur votre site dans /plugins et aller dans l’interface de gestion des plugins pour l’activer maintenant qu’il est déclaré compatible.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom