SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 164 visiteurs en ce moment

Accueil > Auteurs, authentification et autorisations > Archives Auteurs et Authentification > Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface (...)

Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

20 octobre 2005 – par Iago – 109 commentaires

1 vote

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Cette contrib vous permet de limiter la visibilité de plusieurs pages de votre site aux seules personnes identifiées, que ce soit par leur statut
-  de visiteur
-  de rédacteur
-  d’administrateur.

Si un internaute accède à une page publique protégée, il sera invité à s’identifier par son login et son mot de passe. Une fois fait, s’il a le statut minimum requis, il accèdera directement à la page demandée.

Modifications requises

Les modifications requises sont mineures et peuvent facilement être appliquées à votre site.

Elles sont sans danger et peuvent tout aussi facilement être supprimées en tout temps.

Procédures

-  Assurez-vous que vous n’avez pas déjà des fichiers portant les noms :

  • rubrique_statut.html
  • article_statut.html
  • login_public.php3
  • login_public.html
  • rubrique_ok.php3
  • article_ok.php3

-  Téléchargez, décompressez et déposez à la racine de votre site les fichiers qui sont contenus dans ce document.

Réserver

-  Modifiez le fichier rubrique.php3 :
Changez la valeur de $fond :

//$fond = "rubrique";
$fond = "rubrique_statut";

-  Modifiez le fichier article.php3 :
Changez la valeur de $fond :

//$fond = "article";
$fond = "article_statut";

-  Créez un nouveau groupe de mots-clé appelé Accessibilité
-  À la question Les mots-clés de ce groupe peuvent être associés, cochez pour cet exercice aux rubriques
 [1]

-  Créez dans ce groupe les mots-clés les mots :

  • Administrateur
  • Rédacteur
  • Visiteur

Utilisation

Ajoutez le mot clé Administrateur, Rédacteur ou Visiteur pour limiter l’accès public d’une rubrique ou d’un article.

Explication

Prenons par exemple le cas d’une rubrique réservée :
le fichier rubrique.php3 n’appellera plus directement comme squelette le fichier rubrique.html mais plutôt le squelette contenu dans le fichier rubrique_statut.html.

Ce squelette n’affiche rien, il permet simplement de vérifier si la rubrique est limitée en accès public. Et si oui, de vérifier si l’internaute s’est identifié par son login et son mot de passe. Après, il vérifie s’il a le statut minimum requis. [2]

Une fois cette vérification faite, on affichera la rubrique telle que prévue par votre squelette rubrique.html

Les seuls fichiers vraiment nouveaux sont rubrique_statut.html :

<BOUCLE_accessibilite(MOTS){id_rubrique}{type=Accessibilité}>
                <BOUCLE_a(RUBRIQUES){id_rubrique}{id_mot}{titre_mot=Administrateur}>
                        <?
                        if ($auteur_session['statut']!='0minirezo'){
                        ?>
                        <INCLURE(login_public.php3){id_rubrique}>
                        <?
                        }
                        else {
                        ?>
                        <INCLURE(rubrique_ok.php3){id_rubrique}>
                        <?
                        }
                        ?>
                </BOUCLE_a>
                <BOUCLE_b(RUBRIQUES){id_rubrique}{id_mot}{titre_mot=Rédacteur}>
                        <?
                        if ($auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo'){
                        ?>
                        <INCLURE(login_public.php3){id_rubrique}>
                        <?
                        }
                        else {
                        ?>
                        <INCLURE(rubrique_ok.php3){id_rubrique}>
                        <?
                        }
                        ?>
                </BOUCLE_b>
                <BOUCLE_c(RUBRIQUES){id_rubrique}{id_mot}{titre_mot=Visiteur}{lang_select=non}>
                        <?
                        if ($auteur_session['statut']!='6forum'&&$auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo'){
                        ?>
                        <INCLURE(login_public.php3){id_rubrique}>
                        <?
                        }
                        else {
                        ?>
                        <INCLURE(rubrique_ok.php3){id_rubrique}>
                        <?
                        }
                        ?>
                </BOUCLE_c>
        </BOUCLE_accessibilite>
<INCLURE(rubrique_ok.php3){id_rubrique}>
<//B_accessibilite>

et

article_statut.html :

<BOUCLE_accessibilite(MOTS){id_article}{type=Accessibilité}>
                <BOUCLE_a(ARTICLES){id_article}{id_mot}{titre_mot=Administrateur}>
                        <?
                        if ($auteur_session['statut']!='0minirezo'){
                        ?>
                        <INCLURE(login_public.php3){id_article}>
                        <?
                        }
                        else {
                        ?>
                        <INCLURE(article_ok.php3){id_article}>
                        <?
                        }
                        ?>
                </BOUCLE_a>
                <BOUCLE_b(ARTICLES){id_article}{id_mot}{titre_mot=Rédacteur}>
                        <?
                        if ($auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo'){
                        ?>
                        <INCLURE(login_public.php3){id_article}>
                        <?
                        }
                        else {
                        ?>
                        <INCLURE(article_ok.php3){id_article}>
                        <?
                        }
                        ?>
                </BOUCLE_b>
                <BOUCLE_c(ARTICLES){id_article}{id_mot}{titre_mot=Visiteur}{lang_select=non}>
                        <?
                        if ($auteur_session['statut']!='6forum'&&$auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo'){
                        ?>
                        <INCLURE(login_public.php3){id_article}>
                        <?
                        }
                        else {
                        ?>
                        <INCLURE(article_ok.php3){id_article}>
                        <?
                        }
                        ?>
                </BOUCLE_c>
        </BOUCLE_accessibilite>
<INCLURE(article_ok.php3){id_article}>
<//B_accessibilite>

Pour simplifier cette contrib, le fichier login_public.html est simplement le fichier login.html standard de SPIP où on a remplacé le formulaire privé (#LOGIN_PRIVE) en formulaire public (#LOGIN_PUBLIC). À la différence qu’une fois identifié, l’internaute ayant le statut minimum requis verra s’afficher la rubrique ou l’article demandé et non l’interface privée.

Nous avons également conservé, pour simplifier, les mêmes noms de fichiers pour ce qui est des fichiers rubrique_ok.php3, rubrique_ok.html et article_ok.php3, article_ok.html. Mais cela n’est pas recommandé, car on donne accès aux squelettes et nous ouvrons la porte à des chemins de contournements possibles.

Pour renforcer la sécurité, on doit changer les noms des deux fichiers rubrique_ok.php3 et article_ok.php3 pour des noms de votre choix et modifier les fichiers rubrique_statut.html et article_statut.html en conséquence.

On peut changer également les noms des fichiers rubrique_ok.html et article_ok.html et modifier en conséquence les fichiers rubrique_ok.php3 et article_ok.php3. Cela complique la vie aux intrus qui voudraient contourner la limitation d’accès.

Exemple

On ajoute simplement une extension numérique au hasard à notre fichier [3] :

-  Changer le nom du fichier rubrique_ok.html ou rubrique_ok_5943.html
-  Modifier le fichier rubrique_ok.php3 (ou l’équivalent selon le nom que vous lui aurez donné)
//$fond = ’rubrique_ok’ ;
$fond = ’rubrique_ok_5943’ ;

Il faut aussi se méfier des fichiers appelés par des INCLURE. Si on donne accès au squelette, on donne aussi le nom de ces fichiers. Et si on donne le nom d’une inclusion qui appelle une partie cachée de l’article, on donne ainsi la possibilité d’appeler directement cette inclusion.

Personnellement, j’utilise même une variable de session qui protège ces pages si elles ne sont pas appelées par rubrique.php3 et article.php3 ainsi que les fichiers appelés par INCLURE. Cela pourrait faire l’objet d’une autre contrib.

Modifications additionnelles

Cette contrib est une simplification d’une utilisation plus complexe que nous faisons sur plusieurs sites de l’accès limités à l’interface publique.

Sur plusieurs d’entres eux, les articles, les rubriques, les brèves et même les sites référencés portant un des mots-clés du groupe Accessibilité n’apparaissent dans aucun menu du site lorsqu’on a pas le statut requis. Une fois identifié, les divers menus s’enrichissent.

Cela permet d’éviter la frustration de se voir refuser l’accès à une page alors qu’on nous l’offre dans le menu ou le plan du site. [4]

Cela devrait faire l’objet d’une autre contrib.

Voir Comment gérer les rubriques réservées

Notes

[1Sur plusieurs sites, j’utilise ce groupe de mots-clés pour les quatre options possibles.

[2Les bidouilleurs pourront ajouter un message de leur cru pour avertir l’internaute qui se sera identifié et qui n’aura pas le statut requis qu’il ne peut visualiser cette page, et ne plus afficher le formulaire.

[3En conservant le même nom suivi d’une extension, on facilite la gestion des fichiers qui se retrouvent souvent classés par ordre alphabétique dans des outils comme Dreamweaver ou autre.

[4Il faut aussi penser à modifier les fichiers backend.php3 si on ne veut pas que les rubriques ou les articles non accessibles y soient listés.

Dernière modification de cette page le 20 octobre 2005

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 22 octobre 2005 à 10:52, par c.cormier En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    Bonjour
    Excellente contribution. Je l’utilise sur plusieurs sites. Quand sera publiée la suite, c’est dire la possibilité de cacher les rubriques et articles dans les menus quand le statut du visiteur ne permet pas d’y accéder.
    Cordialement

    • Le 24 octobre 2005 à 15:55, par Iago En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Oui, ça prendrait une autre contrib complémentaire. En fait, les deux étapes suivantes que je vais documenter sont « Comment ne pas afficher dans les différentes menu et dans le plan du site les articles et rubriques non accessible au visiteurs. »
      Et « Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface privée par le statut. » Ce qui est très simple mais qui demande d’ajouter quelques lignes de code dans quelques fichiers du coeur de SPIP.

      C’est pour bientôt.

    • Le 26 octobre 2005 à 15:19, par yeti En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      « Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface privée par le statut. »

      AAAARRRGGGHHHH ! je suis impatient de voir cette contrib. vu la qualité de la précédente... chapeau bas et tapis rouge !

      Reste que je crois comprendre qu’elle demandera de toucher au coeur de SPIP, et de fait, risque de ne pas être « compatible » avec les évolutions de SPIP. Est-ce que j’ai bien lu ?

    • Le 26 octobre 2005 à 17:45, par Iago En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Il n’y aura pas de problème avec les nouvelles évolutions de SPIP. On n’ajoutera simplement une condition tester par fonction dans le coeur de certaines pages de l’interface privée pour savoir si l’internaute aura un droit de regard ou non à certaines rubriques ou articles.

      À moins que le système de pluggin offre une porte d’entrée à l’endroit désiré (ce dont je doute. Je n’ai pas suivi en détail ce sujet.) ces modifications éventuelles au coeur de SPIP, bien que mineurs, devront être reportées dans les fichers des prochaines versions. Mais, je le souligne à nouveau, elles seront très simples ces modifications...

      J’utilise déjà ces tests pour gérer des groupes d’accès à certaines rubriques et leurs articles dans l’interface privée !

    • Le 31 octobre 2005 à 10:42, par yeti En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      J’utilise déjà ces tests pour gérer des groupes d’accès à certaines rubriques et leurs articles dans l’interface privée !

      Voici donc le coeur de mon « problème », car cette fonctionnalité manque cruellement dans SPIP au niveau de la gestion des auteurs.

      Ces tests permettent-ils d’offir par la suite la fonctionnalité suivante :
      -  accéder et intervenir uniquement sur certaines rubriques et/ou articles dans l’espace privé en fonction du statut de l’auteur et de son appartenance à un groupe X ou Y ?

      Ainsi, les auteurs techniques n’auraient aucun regard sur les rubriques et articles des auteurs juridiques, et vice versa...

      Dans ce « post », j’exprime mon besoin auquel tu sembles avoir déjà une solution, si je ne m’abuse :)

    • Le 31 octobre 2005 à 15:19, par Iago En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Voici donc le coeur de mon « problème », car cette fonctionnalité manque cruellement dans SPIP au niveau de la gestion des auteurs.

      C’est une question de « philosophie » semble-t-il... SPIP a beaucoup évolué depuis ses origines. Il ne sert plus seulement de système collaboratif de rédaction pour un Webzine.

      De permettre la gestion des droites d’accès est un besoin que certains ont, d’autres ne l’ont pas. Pour beaucoup d’option, SPIP se veut flexible, permettant à ceux qui ont un besoin, d’activer une option et à l’autre, de la désactiver.

      Pourquoi ne pas offrir en standard la possibilité de gestion des droites d’accès dans l’interface privée ?

      Il faut leurs demander...

      accéder et intervenir uniquement sur certaines rubriques et/ou articles dans l’espace privé en fonction du statut de l’auteur et de son appartenance à un groupe X ou Y ?

      Bon... Là tu as compris où on va en venir. Mais ce ne sera pas dans cette contrib.
      Je gère actuellement des groupes dans l’interface privée. J’ai beaucoup modifié une contrib existante pour ce faire (voir : Créer des groupes, limiter l’accès aux rubriques et aux articles...). Je n’ai pas encore d’exemple en ligne du résultat. Je teste en local pour le moment.

    • Le 31 octobre 2005 à 19:25, par yeti En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Je crois que nous sommes sur la même longueur d’onde quand à la philosophie de SPIP. Je ne tiens en aucun cas à lancer une polémique sur l’intérêt de telle ou telle orientation de SPIP et de ses développements. Qui suis-je pour juger et à partir de quelles lois (très philosophique cette question :) ?

      Je suis allé voir la contrib. dont tu parles... Une approche très intéressante de mon point de vue. A lire entre les lignes, il ne « manque plus grand chose », enfin façon de parler :)

      Si je peux t’aider à tester, c’est avec plaisir. Autrement tiens moi informé, s’il-te-plait, d’une éventuelle date du livrable en version beta (c’est comme ça qu’on dit :))

    • Le 11 juin 2007 à 17:43, par ? En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      bonjour,

      j’ai transféré les fichiers, mais il y a un fichier svn.revision et j’en ai déjà un qui ne contient pas la même chose à la racine... dois-je l’écraser ? copier le contenu à l’intérieur de celui déjà existant ?

      Merci.

    • Le 12 juin 2007 à 14:19, par ? En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Non, tu n’as pas besoin de conserver ce fichier.

    • Le 15 juin 2007 à 15:26, par ? En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      ah merci beaucoup pour la réponse car je galère depuis l’autre jour avec cette histoire de restreindre l’accès aux pages... de plus, quand je dézippe, il me manque des fichiers rubrique.php3, article.php3, sinon je les trouve dans dist ou écrire, je sais plus, mais il n’y a pas cette fameuse variable $fond... donc je suis bien perdue là... alors je vais suivre ton tuto, je viens de jeter un oeil vite fait, et il a l’air beaucoup plus complet, merci mille fois !!!

      pour info, j’essai de restreindre une partie du site (en construction) (voir le lien) où des élèves poseraient leurs vidéos, mais certaines doivent absolument avoir un accès privé. Sinon je vais être obligée de faire un répertoire en dehors de spip avec htaccess normal, mais bon, j’aimerais bien rester dans la même architecture quand-même et puis ça m’intéresse de toutes façons de savoir le faire dans spip. J’ai vu que beaucoup de personnes d’ailleurs posent la même question sur un autre post, restée sans réponse.

    • Le 15 juin 2007 à 17:04, par ? En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      yesssss ! ça marche ! j’ai suivi ton tuto, il est super clair, simple efficace et surtout ça marche ! merci mille fois, par contre j’ai voulu poster pour dire merci sur ton post, ça ne l’a pas ajouté... donc je te dis merci ici. ;-)

      Voir la page cachée (bon jeme suis pas encore occupée du css... ca va viendre)...

    • Le 9 février 2008 à 23:27, par Mr D En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Bonjour,
      J’utilise Spip 1.9.2 avec le plugin alternative comme squelette. J’ai utiliser le fichiers dans le zip, et j’ai modifé les fichier rubrique_ok.php3 et article_ok.php3, mais cela ne semble pas marcher.
      Qu’est-ce que j’ai publié de faire ?

    • Le 11 février 2008 à 15:32, par Iago En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      La version ici est peut-être plus à jour : http://monsitespip.com/spip.php?article4.

    Répondre à ce message

  • Le 27 mars 2007 à 15:12, par Mick’ En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    Bonjour,
    J’utilise cette contrib, et effectivement, lorsque j’ai restreint un article avec le mot clé « Visiteur » je tombe sur une demande de connection. Par contre, je ne parviens pas à trouver le moyen de renseigner les droits pour un visiteur. Si j’ajoute un nouvel auteur, je n’ai la possibilité qu’Administrateur, Redacteur ou poubelle.
    Pouvez vous m’aider ?
    Merci d’avance.
    MB

    Répondre à ce message

  • Le 25 août 2006 à 00:15, par elsey En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    Merci pour cette contrib.

    Mais chez moi ça ne marche qu’avec « administrateurs », embêtant. Dès que je mets rédacteurs et visiteurs, ça me mets une page blanche en ligne au lieu de me demander un login... J’ai rien vu à ce sujet dans la liste des réponses. Avez vous une solution ?

    Merci d’avance

    Répondre à ce message

  • Le 13 juillet 2006 à 16:20, par Philippe En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    Bonjour,

    Cette contrib correspond à ce que je recherchais.
    En plus, elle marche (en local) sans difficulté, alors que je ne suis absolument pas programmeur. MERCI !

    J’aimerais maintenant que les rubriques ou articles ainsi protégés soient signalés par une petite icône. C’est possible ? Comment m’y prendre ?

    • Le 13 juillet 2006 à 21:50, par Iago En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Oui c’est possible !

      Personnellement, j’utilise déjà un filtre qui me permet d’afficher ou non les titres dans les menus selon leur accessibilité pour l’internaute.

      Je viens de faire des tests afin de l’utiliser pour afficher une petite icône comme tu le souhaites.

      Selon qu’on utilise la version 1.9 ou une des autres, il y aura quelques différences...

      Je te reviens avec de l’info (un article) sur le sujet d’ici peu !

    • Le 14 juillet 2006 à 00:00, par Philippe En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Ben dis donc, ils sont sympas les spipeurs (ou spipistes ?) !
      Merci de cette rapide réponse.
      J’attends avec impatience ton article.

    • Le 14 juillet 2006 à 22:53, par Philippe En réponse à : Petite question subsidiaire.

      En bon débutant, je dois essayer trop de choses à la fois.
      Je me débats avec les squelettes, les boucles, les balises...
      Faudrait pourtant que j’aie fini pour le 28 août !
      Sans compter la difficulté de vérifier : vider le cache, supprimer les fichiers temporaires et les cookies.

      J’en viens donc à ma question : les articles « protégés » semblent ne plus l’être en cas de « redirection ». Ai-je fait une mauvaise « manip » ? Peut-on remédier à cela ?

      Merci d’avance, Philippe

    • Le 15 juillet 2006 à 18:03, par Iago En réponse à : Petite question subsidiaire.

      As-tu bien protégé l’article cible ? Si tu as protégé l’article que tu redirige, c’est normal.

      Lorsque tu utilisera le filtre dont je te parlais pour indiquer les articles protégé, tu pourra protéger les deux pour que les différents menus indique que ce lien pointe sur un article protégé.

      Sinon, il faut protéger seulement l’article ciblé par la redirection et non celui qui redirige.

    • Le 18 juillet 2006 à 00:31, par Philippe En réponse à : Petite question subsidiaire.

      OK.
      Je crois que j’ai bien compris.

      Seul petit souci, la redirection va vers une adresse qui n’est pas sous spip.
      Mais vers un dossier (un petit annuaire) protégé par .htaccess.
      Que j’espérais rapatrier sur le site principal afin d’éviter à mes « visiteurs autorisés » de re-saisir leurs identifiants.

      Tant pis.
      Tout le reste me convient parfaitement.
      En attendant la petite icône signifiant l’accès restreint...

      Merci !

    • Le 22 juillet 2006 à 20:19, par nitrof En réponse à : Petite question subsidiaire.

      bonjour
      excusez l’intrusion d’un débutant ( le mot est faible ).
      j’essaie d’appliquer la contrib de base pour un site d’école sous éva-spip ( simplement créer une rubrique privé par un mot de passe ) ; mais dans la partie :

      Modifiez le fichier rubrique.php3 :
      Changez la valeur de $fond :

      //$fond = « rubrique » ;
      $fond = « rubrique_statut » ;

      Modifiez le fichier article.php3 :
      Changez la valeur de $fond :

      //$fond = « article » ;
      $fond = « article_statut » ;

      faut-il remplacer tout le fichier ou rajouter ces lignes de code ( mais où alors ? et à la place de quoi ? ) .

      merci de répondre à un vieux galérien qui commence à attaquer la falaise !

      françois

    • Le 23 juillet 2006 à 20:06, par Iago En réponse à : Petite question subsidiaire.

      Bonjour,

      Comme tu le retrouveras dans le dossier zippé et que tu peux télécharger plus haut et décompresser, tu changes le fond appellé par ton fichier rubrique.php3 pour qu’il appelle le fichier rubrique_statut.html. Et le fichier rubrique_ok.php3 appellera, lui, ton squelette situé actuellement dans ton fichier rubrique.html.

      On ne fait qu’un petit détour qui nous permet de filtrer ceux qui peuvent ou non voir la rubrique.

      Même chose pour l’article.

      La version de cette contrib pour spip 1.9 que je suis à finaliser a pris une cure d’amaigrissement : encore beaucoup plus simple ! À venir bientôt...

    • Le 24 juillet 2006 à 20:16, par Philippe En réponse à : Petite question subsidiaire.

      Bienvenue au club !

      Pas évident de débuter en autodidacte dans ces fichus codes, qui varient entre le PHP, le HTML (et les CSS) et les boucles Spip !!!

      Si tu n’as pas trouvé :
      -  tu ouvres article.php3 avec un éditeur (le bloc-notes suffit).
      (Il est à la racine du site, pas dans le dossier squelettes).
      -  Tu lis alors entre les balises php :

      $fond = « article » ;

      $delais = 24 * 3600 ;

      include (« inc-public.php3 ») ;

      -  Tu ajoutes alors // devant $fond, ce qui le transforme en commentaire, donc sans action dans le script.
      -  Puis une ligne en-dessous : $fond = « article_statut » ;

      Soit :

      //$fond = « article » ;

      $fond = « article_statut » ;

      $delais = 24 * 3600 ;

      include (« inc-public.php3 ») ;

      -  Tu sauvegardes. Tu fais pareil avec rubrique.php3. Et le tour est joué.
      Ca marche super ! Merci à Iago de nous faire profiter de ses compétences.

      Bon courage pour la suite.

    • Le 25 juillet 2006 à 15:19, par Iago En réponse à : Petite question subsidiaire.

      Pas évident de débuter... Non, je ne m’en souviens que trop !
      Bien que je patoge dans Spip depuis plusieurs années, je n’ai pas oublié ces doux moments ;-).

      C’est pourquoi, un de mes objectifs à travres mes quelques contribs reste d’être, dans la mesure du possible, abordable pour un néophyte

      Merci donc de m’aider à améliorer les explications et n’hésitez pas à me faire des commentaires pour la version 1.9 sur laquelle je travail en se moment.

      ps. La fonction utiliser pour la 1.9 pourrait être utilisé aussi pour la 1.8.3. Je vais probablement en faire la démonstration bientôt sur mon nouveau site de travail Mon Site Spip 1.9

    • Le 25 août 2006 à 18:35, par nitrof En réponse à : Petite question subsidiaire.

      de retour ;
      merci ;
      non , c’est pas évident ( bill gates jouait aux petites voitures dans son garage quand j’étais au lycée ) mais un site c’est vraiment génial pour les élèves, donc je m’accroche même si je suis bouché comme me le dit un copain ( plus jeune ) à l’école ( il parait que l’on perd 200 000 neurones par jour après 20 ans )
      françois

    Répondre à ce message

  • Le 25 juillet 2006 à 01:06, par Iago En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    Pour la version 1.9 de SPIP, j’ai publié une nouvelle version de cette contrib.

    Répondre à ce message

  • Le 22 juin 2006 à 00:46, par fcdi En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    super contribution

    ca marche tres bien chez moi pour le public mais la question est la
    la version 1.9 arrive a grand pas
    ou peut on avoir une variante pour ce genre de restriction

    Répondre à ce message

  • Le 16 juin 2006 à 17:02, par Ejayce En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    Bonjour.

    Je cherche à faire pour mon site un lien se connecter. En me basant sur cette contrib celà me donne une fois connecter un lien qui normalement renvoie sur l’url du site or le lien me renvoie sur la page login_public donc je tourne en rond.
    Au final, je veux arriver à ce qu’une fois connecté on est accès au menu suivant notre statut. Exemple un visiteur authentifié aura accès une rubrique que le simple visiteur ne verra pas dans le menu.

    Si quelqu’un pouvait m’éclairer.
    Merci d’avance.

    • Le 20 juin 2006 à 21:25, par HCL En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Je cherchais la même chose et j’ai bricolé une solution qui fonctionne. Rien de très pro, j’ai découvert SPIP et le PHP il y a 10 jours.

      Prérequis et limitations : situation simple, pour moi n’existent que des rédacteurs et le public.
      Cette solution suppose de dupliquer tous les squelettes rubrique, article, sommaire... donc faut pas que le site soit trop complexe.

      Tout est basé sur la contrib de base : par exemple pour les rubriques, je créé un fichier Rubrique_pub.html (pour public) dans lequel je mets des filtres dans les boucles à partir des mots clef
      exemple :

      <BOUCLE_article-numerotes(ARTICLES) {id_rubrique{{}{titre_mot!="Redacteur"}{}}par num titre}>

      «  != » veut dire « différent », « redacteur » est mon mot clef. donc la boucle n’affichera pas les articles réservés aux Redacteurs et admins.

      Je crée un fichier rubrique_pub.php3 qui pointe vers rubrique_pub

      <?php
      $fond = "rubrique_pub";
      $delais = 2 * 3600;
      include ("inc-public.php3");
      ?>

      Ensuite petite modification du fichier rubrique statut.html pour qu’il envoie vers la zone public ou privée selon le statut :

      <BOUCLE_accessibilite(MOTS){id_rubrique}{type=Accessibilite}>
                      <BOUCLE_a(RUBRIQUES){id_rubrique}{id_mot}{titre_mot=Publique}>
                             
                              <INCLURE(rubrique_pub.php3){id_rubrique}>
                             
                      </BOUCLE_a>
                      <BOUCLE_b(RUBRIQUES){id_rubrique}{id_mot}{titre_mot=Redacteur}>
                              <?
                              if ($auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo'){
                              ?>
                              <INCLURE(login_public.php3){id_rubrique}>
                              <?
                              }
                              else {
                              ?>
                              <INCLURE(rubrique_ok.php3){id_rubrique}>
                              <?
                              }
                              ?>
                      </BOUCLE_b>
                     
              </BOUCLE_accessibilite>
      <{{INCLURE(rubrique_pub.php3){id_rubrique}>}}
      <//B_accessibilite>

      Idem avec les fichiers articles

      reste le problème du sommaire que tu soulèves.
      Je crée un sommaire_pub.php3 qui pointe vers un fichier sommaire_pub.html qui contient les filtres dans les boucles
      Index.php3 pointe vers sommaire_pub.php3
      Dans sommaire_pub.html un bouton invite à se connecter :

              <a class="bouton" href="#URL_SITE_SPIP/sommaire.php3">Accès adherents</a>

      Ce fichier sommaire.php3 est modifié pour pointer vers un fichier sommaire_statut.html qui comprend ce code :

      <?
                              if ($auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo'){
                              ?>
                              <INCLURE(login_public.php3){sommaire}>
                              <?
                              }
                              else {
                              ?>
                              <INCLURE(sommaire_ok.php3)>
                              <?
                              }
                              ?>

      Si la personne n’est pas connectée, login_public est invoqué et après connection, il renvoie sur la page sommaire.html
      Dans sommaire.html, pas de filtre et le bouton devient :

      <a class="bouton" href="#URL_LOGOUT">Deconnexion</a>

      , il renvoie donc sur Login_public.html ce qui permet de se deconnecter.

      Idem pour le plan du site et autres

      ça parait un peu compliqué, mais ce n’est qu’un developpement de la contrib de base et le resultat sur mon site est nickel, le visiteur voit un bouton se connecter qui l’envoie sur la boite de connexion qui le renvoie direct sur la page full ou il retrouve une autre mise en page et un bouton « se deconnecter »

    Répondre à ce message

  • Le 18 juin 2006 à 18:39, par HCL En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    Merci à Iago pour cette contrib qui me simplifie bien le boulot.

    Par contre je dedouble les squelettes pour ne pas que les visiteurs aient le sentiment d’être environnés de portes fermées.

    Reste un problème qui est celui du sommaire. j’ai 2 squelettes « sommaire », un full et l’autre filtré. Comment passer proprement du filtré vers le Full via une vérification de droit et eventuellement boite de connexion ?

    J’ai essayé l’entête en PHP décrite plus bas, mais en l’absence d’ID_rubrique, après connexion la boite de connexion reste plantée avec comme seule ressource le retour à l’accueil.. qui est le sommaire publique que l’on voulait quitter.
    Et j’imagine que je vais avoir les mêmes difficultés avec le plan..

    Comment sont repérés dans SPIP ces éléments ?
    Merci de vos avis éclairés

    Denis

    • Le 18 juin 2006 à 19:53, par HCL En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Je précise ce que je cherche car je ne suis peut-être pas bien clair ; l’idéal serait :

      1 / Index.php3 ou sommaire.php3 capable de filtrer les visiteurs déjà enregistrés (précédente session) et de les envoyer vers le bon sommaire (Filtré ou Full)

      2/ Un bout de code comme décrit + bas en tête du fichier sommaire Full qui ouvre la boite de connexion et en fermeture de celle ci renvoie vers la racine du site, donc avec le filtre vers le sommaire Full

      J’ai essayé le filtre, sans connaissance PHP et en m’inspirant du bout de code de l’entête, mais j’ai une erreur, header non modifiable ou quelque chose comme ça.

      Je me bats avec ce truc depuis des heures si vous avez une idée..

      Merci

    • Le 19 juin 2006 à 13:40, par Iago En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      Selon nos besoins, on peut afficher ou non les liens vers les pages protégées. Sur les sites où j’utilise cette contrib, j’applique majoritairement un filtre qui permet de n’afficher dans les différents menus ou tris, page sommaire, plan du site ou autre, que les éléments dont le statut d’un internaute autorise la visualisation.

      Donc, pour un seul et même squelette, une personne ayant un statut de rédacteur verra dans le plan du site, par exemple, beaucoup plus de rubriques, d’articles, de brèves et même de sites référencés que celui qui a un statut de visiteur, qui, lui, en verra aussi plus qu’une personne non- identifiée.

      Mais ça demande une modification majeur de vos squelettes. Ça demanderait une autre contrib en fait.

    • Le 19 juin 2006 à 21:21, par HCL En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

      J’imagine bien, un test de detection en haut de chaque page, ou/et Index.php3 qui envoie sur un script de detection du statut, ce qui génère une variable qui suivra la visite, + un filtre (localisé sur un fichier externe pour ne pas tout retaper à chaque fois) basé sur des mots clef (pour faciliter la vie du redacteur)pour chaque boucle de la page. Visiblement rien d’impossible, j’ai plus qu’à me taper le bouquin de PHP :-o Je ferais une contrib dans quelques mois ;-)

      A+

    Répondre à ce message

  • Le 29 novembre 2005 à 09:18, par tibo En réponse à : Comment restreindre l’accès d’un article ou d’une rubrique dans l’interface publique par le statut.

    Très bonne contrib.

    Il manque juste l’addon pour limiter l’accès également dans l’espace privé.

    Où puis-je trouver des informations [1] pour réaliser ce petit tour de force.

    J’en aurais besoin avant la fin de l’année. Cela serait très utile pour les écoles. Je peux, si c’est utile, jouer le beta testeur.

    [1même si elles ne sont pas encore officialiées

    Répondre à ce message

  • Le 31 mai 2006 à 17:59, par erational En réponse à : une variante super simple .... pour les cas simples

    une variante hyper-simple pour les cas simples : rien à modifier dans votre spip à part le squelette de la page dont vous voulez resteindre l’accès.

    exemple : pour restreindre la page plan.html aux admins et rédacteurs : ajouter ces lignes de code en tout début de votre squelette plan.html (sans un seul espace blanc avant)

    <?php
    if (isset($auteur_session['statut'])) {
     if ($auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo')  header("location:spip_login.php");
    } else {
     header("location:spip_login.php");
    }
    ?>....le reste de votre squelette plan.html ...

    testé avec succés sur Spip 1.8.3.

    si vous placez ces lignes sur tous les pages d’un squelette (sauf bien sur login.html pour pouvoir s’identifier) vous obtenez un site privé accessible uniquement aux rédacteurs autorisés (intranet, site de travail, ...)

    • Le 2 juin 2006 à 14:08, par aurelie En réponse à : une variante super simple .... pour les cas simples

      Bonjour,
      moi je voudrais juste restriendre l’accés à un article, est ce que ta solution pourrais marcher ?
      j’ai une rubrique « actualités » dedans j’ai 7 sous rubriques, mais il n’ y a que « télécharger le journal » que je veux restreindre à certains. Peux - tu m’aider ???
      Merci
      Aurélie

    • Le 2 juin 2006 à 21:41, par Iago En réponse à : une variante super simple .... pour les cas simples

      Bonjour Aurélie,

      Il y aurait bien des solutions pour ton cas. Mais, oui ! tu pourrais utiliser cette contrib pour ne limiter qu’un article.

      Comme tu pourrais aussi utiliser une autre de mes contribs : Restriction de contenu dans l’espace public et privé par le « bloc statut ». Elle te permettrait d’afficher dans ton article un message différent selon le statut de l’internaute. Tu pourrais ne pas afficher le lien sur le « télécharger le journal » pour les uns et le mettre pour les autres...

      Un des avantages de cette contrib, c’est que personne ne tomberait sur une page de login sans explication.

      On peut aussi faire une page spéciale pour ce seul article et faire un test par le statut que pour elle...

    • Le 12 juin 2006 à 11:56, par aurelie En réponse à : une variante super simple .... pour les cas simples

      je ne comprend pas tout ! que dois je faire si je veux juste restreindre l’accés à l’article 44 de la rubrique 55 par exemple ??
      merci merci. Aurélie

    • Le 12 juin 2006 à 15:31, par Iago En réponse à : une variante super simple .... pour les cas simples

      Soyons simple !

      Pour limiter l’accès qu’à l’article 44, tu peux mettre en tête de ton squelette de ta page article.html :

      <?php
      if ($_REQUEST['id_article']==44&&$auteur_session['statut']!='6forum'&&$auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo'){
              header("Location:article.php3?id_article=45"); // Adresse de destination à modifier au besoin
      }
      ?>

      Ici, si la personne n’est pas connectée comme administrateur, rédacteur ou visiteur, elle sera redirigée sur l’article 45.

      Tu mets l’adresse que tu veux.

      Si tu veux une formulation te permettant d’autres choix de redirection tu peux mettre :

      <?php

      // Redirection d'article par entête

      switch($_REQUEST['id_article'])
              {
                      // Liste des redirections :
                      case '44'; // Numéro de l'article à rediriger
                                      // Rediriger cet article sur un autre si l'internaute n'est pas connecté commme administrateur, rédacteur ou visiteur
                                      if ($auteur_session['statut']!='6forum'&&$auteur_session['statut']!='1comite'&& $auteur_session['statut']!='0minirezo'){
                              header("Location:article.php3?id_article=45"); // Adresse de destination à modifier au besoin
                              }
                      break; // fin de la redirection               
              }
      ?>

      Et là, tu ajoutes autant de CASE avec le no d’article que tu veux avec la redirection que tu veux selon le statut que tu veux...

      N’oublie pas de mettre celà en tête de ton squelette !

    • Le 13 juin 2006 à 12:56, par aurelie En réponse à : une variante super simple .... pour les cas simples

      ok je vais essayer ça alors !! mais encore une ptite question l’article qui dit par exemple « vous n’avez pas accés à cette partie du site », comment tu fais pour le cacher ? je veux dire je créé pas un article comme si je créais un article normal avec du contenu ?

    • Le 13 juin 2006 à 13:19, par aurelie En réponse à : une variante super simple .... pour les cas simples

      j’ai pris ta première solution, dans l’entête du squelette c’est bien dans le « head » ??? parce que j’ai une erreur comme quoi il me manque des tags fermants pour article-principal, keywords, author, hierarchie, et auteurs. En plus, la partie de code reste grisée !! bizarre non ? tu peux encore m’aider ?

    • Le 14 juin 2006 à 15:14, par Iago En réponse à : une variante super simple .... pour les cas simples

      Non ! Tu mets ce code avant toutes choses dans ton squelette. Ne mets rien avant, ne le met pas entre d’autres tags. Débute avec ça !

    • Le 14 juin 2006 à 15:35, par Iago En réponse à : une variante super simple .... pour les cas simples

      Tout dépend de comment tu as aborder tes squelettes. J’utilise beaucoup d’articles sur mes sites pour toutes sortes d’usage autre qu’un « article » au sens « classique » du terme.

      Bien que beaucoup de squelettes soient construits pour afficher par défaut tous les articles, de les lister dans tous les menus, dans le plan du site et tout, ce n’est pas un comportement de SPIP mais un comportement déterminé par ces squelettes. C’est un choix des concepteurs de squelettes, pas de SPIP. Il ne faut pas confondre les deux. Trop souvent on entends dire, « SPIP peut faire ceci, mais SPIP ne peut faire celà » alors que c’est « La plupart des squelettes n’ont pas été pensé pour permettre de faire ceci ou celà... »

      Sur mes sites, les articles ou les rubriques qui n’ont pas le mot-clé ’menu’ ne sont pas lister dans les différents menus du site.

      J’ai plusieurs articles qui servent à libéler différents messages comme celui avertissent qu’une page est réservées. On peut même en faire autant de traduction qu’on veut... On peut faire un message générique pour toutes les pages ou choisir un message spécifique pour un secteur, pour une rubrique ou autre... Et ce, avec de simple article « ordinaire ».

      C’est très flexible, quoi !

    • Le 15 juin 2006 à 09:08, par aurelie En réponse à : une variante super simple .... pour les cas simples

      j’ai mis le code au tout début, mais il reste grisé et j’ai toujours la même erreur ! pour ce qui est de l’article d’avertissement, moi j’utilise le squelette renley, je pense que mes articles sont au premier sens du terme avec spip, comme je suis débutante je ne fais pas des choses trés compliquées !! peux tu me dire comment je dois faire pour cacher cet article et d’ou vient cette erreur ?
      merci
      aurélie

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Plugin Vidéo(s)

    23 novembre 2010 – 684 commentaires

    Interface de gestion et modèle d’insertion des vidéos : Dailymotion Vimeo Youtube Modèle de la balise HTML5 video avec alternative flash html5media : Lecture HTML5/Flash pour tout navigateur des fichiers MP4/H264/Ogg/WebM/Mkv Support mobile, iPad, (...)

  • GIS 4

    11 août 2012 – 1419 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • SPIP Zen Garden

    12 novembre 2009 – 173 commentaires

    Le plugin Zen Garden, ou Jardin Zen, vous permet de gérer une galerie de thèmes pour votre site, et de changer très facilement de thèmes parmi les thèmes disponibles. Pré-requis Le jardin Zen nécessite d’utiliser un squelette comme le squelette Zpip (...)

  • SPIP 3, Agenda et FullCalendar

    6 août 2012 – 313 commentaires

    Depuis SPIP 3, l’affichage d’un agenda sous forme de calendrier par jour/semaine/mois à changé. Les filtres |agenda_memo et apparentés sont désormais obsolètes. Il en est de même pour les filtres agendafull_memo et apparentés du plugin Agenda. (...)

  • Agenda Fullcalendar facile

    29 octobre 2016 – 51 commentaires

    Dans un précédent article, nous expliquions comment afficher un agenda Fullcalendar sur son site avec le plugin agenda. Cependant, ceci nécessite des manipulation de squelettes, ce qui n’est pas toujours évident lorsqu’on débute. La présente (...)