Plugin Exclure-secteur

L’idée du plugin « exclure-secteur » est née lors d’un apéro-spip au cours d’une discussion avec tetue et gaspard.

La question était de savoir que faire des articles « inclassables » (par exemple « crédits », « informations légales », etc.). Tetue et moi-même sommes partisans de les mettre en vrac dans un secteur, même s’il est désormais possible de créer des pages liées à aucune rubrique.

Cependant, Gaspard a fait remarquer que cela le « fatiguait » de mettre à chaque fois un critère {id_secteur!=xxx} dans ses boucles.

Ce plugin se propose de résoudre ce problème.

Configuration requise et installation

Il a été testé et développé sur un SPIP 2.0 mais devrait fonctionner sur les versions 1.9.

Il s’installe comme n’importe quel plugin SPIP (mais il nécessite le plugin CFG sous SPIP < 3).

Par ailleurs, sous les versions 1.9.x, le plugin surcharge les boucles ARTICLES / RUBRIQUES / BREVES / SITES, et du coup, ne peut être compatible avec d’autres plugins les surchargeant. En revanche, ce n’est plus le cas pour les versions 2.x.

Utilisation

Une fois installé :
-  sous SPIP < 3 rendez-vous sur /ecrire/?exec=cfg&cfg=secteur.
-  sous SPIP ≥ 3 rendez-vous dans le menu « Squelettes » > « Exclure Secteur ».

Vous obtenez un formulaire listant les secteurs de votre site. Cochez ceux dont vous souhaitez qu’ils soient exclus des boucles :
-   RUBRIQUES
-   ARTICLES
-   SITES
-   BREVES

Dès lors, toutes ces boucles se comporteront comme si elles avaient un critère {id_secteur NOT IN les_secteurs_choisis}.

Faire des exceptions

C’est bien gentil tout cela, mais à un moment, on aimerait bien afficher quand même un article, une rubrique …d’un des secteurs sélectionnés.

Comment faire ?

Solution 1. Il est possible de le faire en ajoutant un critère {id_secteur=x} ou {id_secteur==xx} ou {id_secteur IN X,Y}.

Solution 2. Il est possible de le faire en ajoutant un critère {tout_voir} sur un boucle, qui force alors l’affichage quel que soit le secteur.

Solution 3. On peut activer une option dans la page de configuration du logiciel pour que {tout} soit équivalent, en ce qui concerne l’exclusion des secteurs, à {tout_voir}.

Solution 4
Depuis la version 1.2, une option est activable dans l’espace privé. Elle permet que l’utilisation du critère {id_xxx} ou {id_xxx=y} ou {id_xxx==y} ou {id_xxx IN y} fasse « sauter » l’exclusion selon un secteur.

Exemple : En activant cette option, sur une boucle articles le critère {id_article} ou {id_article=x} ou {id_article==X} ou {id_article IN xx} prend l’article correspondant, même s’il se trouve dans un secteur exclus.

Limites du plugin

Pour le moment, le plugin n’exclut pas les documents associés à des articles / rubriques / breves / sites des secteurs sélectionnés.

La raison est assez simple : il faudrait que je fasse des jointures sur la table ad hoc, ce que je n’ai pas eu encore le temps de coder. De plus, l’organisation des tables a changé entre la version 1.9 et la 2.0 ; du coup, il faudrait faire des tests. [1]

Notes complémentaires

Limiter l’accés de la page de configuration

Il est possible de limiter l’accès à la page de configuration avec le plugin autorité.

Les squelettes de l’espace privé

Depuis SPIP 2.0, de nombreuses pages de l’espace privé sont sous formes de squelettes, et tout porte à croire que le nombre de pages ainsi construites devrait augmenter. Le plugin teste donc, sur SPIP 2.0, si nous sommes ou non dans l’espace privé, et n’applique ses réglages qu’à l’espace public.

Les crayons

Si comme moi vous adorez les crayons, n’oubliez pas d’activer la possibilité qu’un id objet défini explicitement fasse sauter l’exclusion par secteur (voir plus haut « solution 4 »), dans le cas contraire, vous devrez recharger la page à chaque modif d’un objet dans un secteur exclus, ce qui limiterait l’interêt du plugin crayon.

Licence et remerciement

Le plugin, disponible sur la zone, est distribué en Licence GPL.

Je remercie vivement Denisb qui m’a aidé à coder ce plugin entre 23h30 et 2 heures du matin dans la nuit du 3 au 4 avril 2009.

Je remercie aussi le codeur des squelettes de Contrib, qui m’a donné la base nécessaire au codage du plugin, ainsi que Cerdic qui m’a signalé la présence de la pipeline pre_boucle.

Notes

[1Note : remarquons que, de toute manière, il n’est pas possible pour l’instant avec SPIP de faire un boucle <BOUCLE_x(DOCUMENTS){id_secteur!=xxx}>....

Discussion

24 discussions

  • 2

    Bonjour,
    Sur un Spip 3.2.19, normalement compatible Php 5.6 selon
    https://www.spip.net/fr_article6500.html
    j’ai une erreur

    Parse error: syntax error, unexpected ':', expecting '{' in /home/domaine/www23/plugins/auto/exclure_sect/v2.1.2/exclure_sect_fonctions.php on line 17

    Le source :
    https://git.spip.net/spip-contrib-extensions/exclure_secteur/src/commit/ddb34c3b5dae03aed293712ecde3c467666cfc3e/exclure_sect_fonctions.php#L17

    Apparemment si je retire «  : void », ça passe.
    Pareil dans
    https://git.spip.net/spip-contrib-extensions/exclure_secteur/src/commit/ddb34c3b5dae03aed293712ecde3c467666cfc3e/exclure_sect_administrations.php#L25

    (Bon, mon php 5.6 n’est que pour une transition de spip 2.1 à 4.2...)

    • Qu’attends tu en déposant ce témoignage ?
      PHP 5.6 est obsolète depuis le 1er Janvier 2019 et SPIP 3.2.10 est obsolète aussi.
      As tu vu que des sites utilisant des logiciels obsolètes sont chaque jour piratés ?

    • Bonjour,
      Oui oui, j’ai bien vu les sites piratés.
      Justement nombre d’utilisateurs de Spip passent d’anciennes versions (sous php5.x) à Spip 4.2 en transitant par Spip 3.2.19 (dont la faille est normalement traitée), sans pouvoir avoir un Php 7.4/8 mini en même temps sur le même hébergement.
      Et on peut rencontrer cette erreur qui peut freiner la mise à jour.

      Ce que j’attends ?
      J’imagine que l’on pourrait corriger quelque chose dans la gestion des versions qui fasse que l’ajout de ce plugin depuis une 3.2.19 renvoie une version « de son époque ».
      Mais désolé pour le dérangement si c’est une utopie.

    Répondre à ce message

  • 3

    Je dois passer à côté d’un truc gros comme une maison… (ou alors je n’ai pas bien compris l’usage du plugin exclure secteur)
    J’ai défini une rubrique à la racine qui est « exclue ».
    Elle contient un article publié. Si, depuis l’espace privé, je demande à « voir l’article », j’ai une page 404. Normal ? Pas normal ?

    • c’est normal, puisque ton article est dans un secteur exclu. Il faut que utilise la solution 3 pour gérer les exceptions, autrement dit que tu configure à « Oui » « Identifiant explicite ».

    • Ah ! C’est donc cela !
      Effectivement… Merci beaucoup !!!

    • Salut,

      je suis dans le même cas que Manu avec l’option « Identifiant explicite » cochée oui :
      Dans une boucle RUBRIQUES avec l’id passé explicitement, la rubrique exclue apparait bien mais, lorsque j’appelle la page rubrique (/spip.php?rubrique8 ou /spip.php?page=rubrique&id_rubrique=8) ou l’article publié qu’il contient (donc l’id est dans le contexte), j’ai une 404.

      Je rate quelque chose ?

      Je suis en SPIP4 avec la version 2.0.20 du plugin

    Répondre à ce message

  • 4

    Bonjour,
    je me demande s’il n’y a pas un petit bug dans lune situation où l’on interroge une autre base SPIP...
    Exemple : soit un site A sur lequel le plugin exclure_secteur est installé. On lui indique d’exclure la rubrique x.
    Si le site A souhaite interroger une autre base (via le connect qui va bien) un site B et veuille récupérer des articles de la rubrique x, la requête échoue (ce qui n’est pas conforme au résultat attendu puisque c’est la rubrique locale d’id x qui est exclue, pas la rubrique distante de même id).
    Bon, on peut contourner en forçant spécifiquement via le critère {tout_voir}, mais, bon...
    En tout cas, merci pour ce bel outil bien commode

    • a oui c’est bien possible. Il faudrait que je trouve le tps de me pencher sur cette question. Peut être ce week-end.

    • M’enfin, euh, c’est pas non plus un cas très fréquent (et on peut le contourner). C’est juste que ça surprend et qu’on met un peu de temps à comprendre...
      Pas vraiment un mega bug à corriger d’urgence, quoi !

    • oui, mais il sera pas corrigé si c’est pas fait tout de suite justement ;-)

    • La version 2.1.12 corrige ce problème.

    Répondre à ce message

  • 3

    Aïe, mmh, et comment on fait si on veut Accès restreint ET ce plugin ?

    Et qu’on utilise donc déjà {tout_voir} pour lister dans des boucles des contenus restreints (afin de mettre leur lien), mais qu’on ne veut PAS ceux qui sont restreints par Exclure secteur ?

    Haha, la combinaison maléfique. :(

    • t’en a d’autre des questions embarrassantes ?

    • Plus précisément : c’est un site avec certains contenus réservés aux abonné⋅e⋅s. Et j’ai {tout_voir} sur toutes les boucles qui listent des liens/résumés, pour donner envie de cliquer et tomber sur une page 401 qui invite à s’abonner.

      Mais à côté de ça, je voudrais « Exclure secteur » pour que certains contenus (restreints ou pas par Accès restreint, peu importe) ne s’affichent pas dans les listes de l’accueil, des nouveautés, etc. Sauf que comme j’ai déjà {tout_voir} partout, ça ne va pas marcher !

    • je ne vois qu’une solution : casser la compatibilité du plugin pour créer un autre critère que tout_voir comme dérogation, et proposer une option de compat ascendante.

    Répondre à ce message

  • 3

    Bonjour,
    j’ai un site en SPIP 3, j’ai installé ce plugin ainsi que CFG, mais quand je vais sur la page [nom du site]/ecrire/ ?exec=cfg&cfg=secteur (comme indiqué dans la rubrique « utilisation » de cette description), j’obtiens le message « Fichier CFG introuvable ». Comment cela se fait-il ?
    Merci !

    • En fait c’est juste que la doc n’était pas à jour.

      Pour SPIP 3 :
      -  pas besoin de CFG
      -  se rendre dans le menu « Squelettes » > « Exclure Secteur » pour le formulaire de conf.

    • ah merci !
      par contre ça ne fonctionne pas...
      il y a deux cases à cocher en plus :
      -  Est-ce que le critére tout est équivalent au critére tout_voir ?
      -  Ne pas appliquer aux les boucles sur lequel l’identifiant de l’objet est explicité ou pris dans le contexte. (Permet de ne pas modifier le squelette article.html)
      Je ne comprends pas s’il faut les/en cocher ou pas, ou sinon est-ce qu’il faut faire une modification dans le squelette quand même ?

    • bonjour,

      que voulez vous dire par « cela ne fonctionne pas ».

      Quant aux case à cocher c’est expliqué dans la documentation. Voir la section « Faire des exceptions ».

    Répondre à ce message

  • 5

    Bonjour,

    à la lecture de ces POST de 2011, je vois que le problème semble évoqué. Mais est-ce vraiement le même ?

    Après avoir installé SPIP 3.0.3 [19675], tout allait bien.
    Et puis Exclure secteur 2.0.3, et du coup en affichage public :

    Site en travaux
    Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.

    Notons que je suis en PHP/5.3.8 et MYSQL 5, avec XAMPP 1.7.7

    Est-ce connu ?

    merci
    YONNEL

    • Je note que cela plante quand je désigne plusieurs rubriques à exclures (pourtant avec contenu). Si 1 seule exlue cela marche !

    • Hum, avez vous d’autres plugins et des squelettes perso ? je ferais dans tt les cas un test demain

    • la version 2.0.4 devrait corriger ce problème. Elle sera dispo en zip à 1h du matin.

    • merci Maïeul,

      je vais regarder ce matin dans les téléchargements.
      Je te tiens au courant.

      YO

    • J’encombre le forum, mais c’est pour te dire un grand merci. Ton plugin me permet d’éviter tout simplement les tests dans les boucles pour les parties privées.

      Je vais m’appuyer sur ton plugin pour comprendre et avancer dans les mécanismes SPIP, et surtout 3.

      En tout cas, merci à nouveau pour ta réactivité.
      YO

    Répondre à ce message

  • 2

    Bonjour.

    « Cool, m’étais-je dit, un plugin pour ne plus devoir {id_secteur!=1}er mes squelettes. »
    Hélas, ce plugin a une incompatibilité avec le Pages uniques.

    Lorsque j’active l’option « Ne pas appliquer aux les boucles sur lequel l’identifiant de l’objet est explicité ou pris dans le contexte. », mes pages uniques me répondent 404. :-(

    Tant pis, je vais mettre du {id_secteur!=1} partout…

    Bises !

    SPIP 2.1.12
    Exclure secteur 1.2.0
    Pages 0.3.7

    (Ne sachant pas quel plugin est en « faute », je mets un lien vers ce commentaire sur la page de Pages uniques.)

    • j’avoue ne pas très bien comprendre l’interêt de combiner exclure secteur et pages unique, qui sont 2 plugins dont les buts initiales sont les mêmes : gérer les pages qui ne sont pas classables dans les rubriques ;

    • Il y a une nuance de taille :

      Exclure secteur me permet d’avoir des articles dont je peux afficher le contenu où je veux (page d’accueil, sponsors,…) sans qu’ils soient repris dans le sitemap, le plan du site ou les flux de syndication.

      Pages uniques me permet d’avoir des articles repris dans le sitemap, etc. sans devoir les rattacher à une rubrique « poubelle ».

    Répondre à ce message

  • 9

    Hello !

    Sur une Spip3 fraichement installée (version SPIP 3.0.0-beta SVN [18812] )

    Ce plugin provoque une incompatibilité avec la dépendances (/extensions ) forums, résultant en une erreur SQL à l’affichage public sur l’ensemble des pages du site

    Message

    Erreur SQL 1054
    Unknown column ’forum.id_article’ in ’on clause’
    SELECT forum.date_heure, forum.texte, forum.auteur AS nom, forum.id_forum, forum.titre FROM spip_forum AS forum INNER JOIN spip_articles AS L1 ON ( L1.id_article = forum.id_article ) WHERE (forum.statut = ’publie’) AND NOT((L1.id_secteur IN (’z’))) ORDER BY forum.date_heure DESC LIMIT 0,5

    Squelettes

    extensions/dist/sommaire.html

    Boucle

    extensions/dist/sommaire.html

    Ligne

    49

    Investigations complémentaires en cours...

    • La boucle fautive est celle-ci :

      [(#REM) Liens des forums ]
      <B_forums_liens>
      <div class="menu menu_comments">
      <h2><:derniers_commentaires:></h2>
      <ul>
      <BOUCLE_forums_liens(FORUMS?) {plat} {!par date} {0,5}>
      [<li>[(#NOM|sinon{...})&nbsp;: ]<a href="#URL_FORUM"[ title="(#TITRE|attribut_html|couper{80})"]>(#TEXTE|couper{80})</a></li>]
      </BOUCLE_forums_liens>
      </ul>
      </div>
      </B_forums_liens>

      J’ai tenté plusieurs variations mais rien n’y fait. L’erreur doit se situer quelque part dans le plugin mais je ne vois pas où...

      Investigations complémentaires toujours en cours...

    • Test complémentaire effectué sur un spip vierge avec uniquement Exclure_secteur et cfg (car dépendance) et rien n’y fait, l’erreur persiste...

      Là je ne vois vraiment pas...

      PS : Je précise que sur ce projet, l’utilisation des forums public est désactivée.
      Test fait après les avoir activé : L’erreur survient encore...

    • base de donné sqlite ou MySql ? je vais essayer de reproduire en local

    • Je suis en MySQL.

      J’ai continué de creuser un peu mais toujours pas de solutions :-/

      Merci à toi.

    • je pense savoir d’où vient le problème. En SPIP 3 la relation article/forum passe désormais par une table dédiée, et pas par un champs de spip_forums.

      Faudrait faire une branche et modifier en conséquence les requetes.

    • en fait le pb vient bien du changement de structure de la table, mais pour le moment je ne vois pas quelle requete sql correcter générer.

      en attendant de trouver, j’ai supprimer la compatibilité SPIP 3.

    • J’ai vu que tu avais « branché » le plugin. T’es sur une piste ?

    • j’arrive pas à trouver la requete sql correcte. Faut que je revise mes requete sql. Le pb est que « id_objet » et « objet » n’est pas sur une table de liaison.

    • essaie la dernière modif : devrait exclure les forums dont l’article est dans un secteur exclus

    Répondre à ce message

  • 1

    Bonjour,

    la boucle article du flux rss n’est pas filtrée

    j’ai modifié le squelette backend mais je ne sais pas comment integrer la prise en compte du filtre dynamiquement

    merci

    nat33

    • salut,

      j’ai testé en local, et je n’ai pas cela.

      En plus je vois mal pourquoi j’aurais une exception pour le fichier backend.

      tu peux me donner :
      -  ton nouveau fichier backend ?
      -  ta config de exclure secteur ?

      merci

    Répondre à ce message

  • 6

    Petit désagrément à l’usage du plugin
    Le texte du message

     Erreur SQL 1054
     Unknown column 'L1.id_objet' in 'where clause' SELECT forum.date_heure, forum.date_heure AS date, forum.id_forum, forum.titre, forum.texte FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2hhdG9ubmF5X2Nocm91aWxsb248L2NvZGU+"></span>.spip_forum AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Zm9ydW08L2NvZGU+"></span> INNER JOIN <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX2Jhc2Vfc3BpcDwvY29kZT4="></span>.spip_articles AS L1 ON ( L1.id_article = forum.id_article ) WHERE (forum.statut = 'publie') AND ((L1.id_objet NOT IN (5))) AND (L1.objet = 'secteur') AND (L1.id_secteur NOT IN (5,6,7,8,9)) GROUP BY forum.id_forum ORDER BY forum.date_heure DESC LIMIT 0,8 
    SELECT forum.date_heure, forum.date_heure AS date, forum.id_forum, forum.titre, forum.texte FROM spip_forum AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Zm9ydW08L2NvZGU+"></span> INNER JOIN spip_articles AS L1 ON ( L1.id_article = forum.id_article ) WHERE (forum.statut = 'publie') AND ((L1.id_objet NOT IN (5))) AND (L1.objet = 'secteur') AND (L1.id_secteur NOT IN (5,6,7,8,9)) GROUP BY forum.id_forum ORDER BY forum.date_heure DESC LIMIT 0,8

    Le site est hébergé chez Nuxit. Le nom de la base a été modifié dans ce message dans un soucis de discrétion.

    Si je tente de reproduire l’erreur en local, mais je n’y parviens pas !!!

    Merci de m’indiquer une piste.

    Cordialement

    Claude

    • Bonjour,

      pouvez vous indiquez la version de MySql utilisée (pour cela, se rendre dans /ecrire/?exec=info).

      Pourrais je aussi avoir la boucle qui déclenche cela ?

    • Bonsoir,

      Version MySql : PDO Driver for MySQL, client library version 5.0.32

      <div class="liste forums cgfp_element">
      	<h4 class="forums"><:derniers_commentaires:></h4>
      	<ul class="liste-items">
      <BOUCLE_forums_liens(FORUMS?) {plat} {par date}{inverse} {0,8}>
      		<li class="item">[(#DATE|affdate_jourcourt|unique)&nbsp;: ]
      			<ul>
      				<li class="item"><a href="#URL_FORUM"[ title="(#TITRE|attribut_html|couper{80})"]>[(#TEXTE|couper{80})]</a></li>
      			</ul>
      		</li>
      </BOUCLE_forums_liens>
      	</ul>
      </div>
      </B_forums_liens>

      Merci du coup de main

      Claude

    • étrange, je ne vois pas d’où peut venir cette erreure.

      pas d"autre plugins installés ? avez vous fait un test en désactivant tout les plugins sauf celui-ci ?

    • Merci de vous être penché sur le problème.

      J’ai 14 plugins installé cfg, couteau-suisse, zpip et composition, agenda2, spinnets et odt2spip, ckeditor, lecteur-multimedia, nuage, socialtags, bonux et zengarden.

      En désinstallant complètement le plugin exclure-secteur, purge complète des caches puis réinstallation, l’erreur a disparu. Problème de l’ordre d’installation des plugins ?

      Peut-être une autre piste, parfois, couteau-suisse envoie sur l’espace privé une erreur apache sur un fichier cout_options sur une ligne vide (95), le rechargement de la page supprime l’erreur.

      Cordialement

      Claude

    • (...) parfois, couteau-suisse envoie sur l’espace privé une erreur apache sur un fichier cout_options sur une ligne vide (95), le rechargement de la page supprime l’erreur.

      Si cette erreur revient, une fois le Couteau Suisse mis à jour, ’hésite pas à la décrire (ici sur le forum) précisément et littéralement telle qu’elle est indiquée, parce que là, une rumeur ne fait pas avancer les choses....

    • Je n’y manquerai pas

      Cordialement

      Claude

    Répondre à ce message

  • Pierrot

    Merci pour ta réactivité ;-) Je regarderai la modif histoire d’apprendre un peu de mon côté aussi, car je crois que d’autres plugins utilisent aussi des expressions dépréciées détectées au passage à PHP 5.3.0

    Répondre à ce message

  • 2
    Pierrot

    Sur une install 2.0.10 en local avec un PHP 5.3.0, j’obtiens toujours dans l’admin le warning suivant :

    Deprecated : Function eregi() is deprecated in D :\wamp\www----\plugins\auto\exclure_secteur\exclure_sect_fonctions.php on line 6

    Est-ce une incompatibilité simple à corriger ?

    • en théorie oui, en pratique non, car je ne suis pas doué en expression régulière. J’essaie de voir si je peux m’y pencher demain sori

    • bon en fait ce n’était pas si compliqué. je viens de commiter. Le zip à jour devrait être dispo vers 19h.

    Répondre à ce message

  • 3
    Mathieu

    Ma petit contribution.
    Pour ma part, pour gérer les exceptions de ce genre, j’utilise une balise dédiée et une table en BDD de configuration.

    J’administre ensuite cette table via le plugin tabledata.

    Testé sur SPIP 1.9.2.

    Squelette d’exemple :

    PRESSE
    <br>
    <BOUCLE_rubriques(RUBRIQUES){id_rubrique=#RUB_ESPACE_PRESSE}>
                Id rub=#ID_RUBRIQUE<br>
                <BOUCLE_art(ARTICLES){id_rubrique}>
                            #TITRE <br/>
                </BOUCLE_art>            
    </BOUCLE_rubriques>  
    <hr>
    
    PRO
    <br>
    <BOUCLE_rubriques2(RUBRIQUES){id_rubrique=#RUB_ESPACE_PRO}>
                Id rub=#ID_RUBRIQUE<br>
                <BOUCLE_art2(ARTICLES){id_rubrique}>
                            #TITRE <br/>
                </BOUCLE_art2>          
    </BOUCLE_rubriques2>            
    
    Dans rootdir/mes_fonctions.php
    
    //RUB_ESPACE_PRESSE
    function balise_RUB_ESPACE_PRESSE($p){
                $_id_rubrique = interprete_argument_balise(1,$p);
                if (!$_id_rubrique)
                            $_id_rubrique = champ_sql('id_rubrique',$p);
                $p->code = "j_getRubriquePresse($_id_rubrique)" ;
                $p->interdire_scripts = false;
                return $p;
    }
    
    function j_getRubriquePresse($idrubrique) {
                $requete = "SELECT valeur FROM config WHERE cle='RUB_ESPACE_PRESSE'";
                $query = mysql_query($requete);
                $row = mysql_fetch_row($query);
                $idrubrique = $row[0];
                return $idrubrique;                     
    }
    
    
    //RUB_ESPACE_PRO
    function balise_RUB_ESPACE_PRO($p){
                $_id_rubrique = interprete_argument_balise(1,$p);
                if (!$_id_rubrique)
                            $_id_rubrique = champ_sql('id_rubrique',$p);
                $p->code = "j_getRubriquePro($_id_rubrique)" ;
                $p->interdire_scripts = false;
                return $p;
    }
    
    function j_getRubriquePro($idrubrique) {
                $requete = "SELECT valeur FROM config WHERE cle='RUB_ESPACE_PRO'";
                $query = mysql_query($requete);
                $row = mysql_fetch_row($query);
                $idrubrique = $row[0];
                return $idrubrique;                     
    }

    Plugin TableDATA v.0.41 pour administrer la table ‘config’ via le BO.

    Et table de config au choix, exemple :

     
    
    DROP TABLE IF EXISTS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29uZmlnPC9jb2RlPg=="></span>;
    CREATE TABLE IF NOT EXISTS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29uZmlnPC9jb2RlPg=="></span> (
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dWlkPC9jb2RlPg=="></span> int(11) NOT NULL auto_increment,
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2xlPC9jb2RlPg=="></span> varchar(255) NOT NULL,
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dmFsZXVyPC9jb2RlPg=="></span> varchar(255) NOT NULL,
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bGFuZzwvY29kZT4="></span> varchar(10) default NULL,
      PRIMARY KEY  (<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dWlkPC9jb2RlPg=="></span>)
    )
    • moui, tu ferais mieux d’utiliser un formulaire de configuration avec CFG et un #CONFIGsecteurs/espace_presse par exemple, cela te ferait bien moins de code (pour ne pas dire aucun).

    • En lisant ta contribution, j’ai trouvé la motivation de rendre ce plugin TableDATA compatible avec SPIP 2.
      J’espère que ce travail pourra t’être utile.
      (relatif au commentaire de Mathieu)

    • Mathieu

      Merci j’apprécie le geste :)

      J’ai laissé un commentaire à ce sujet dans l’article qui vient de paraitre.

      Je suis tjs intéressé pour factoriser du code (voir rmq de Cedric MORIN) si qq un à une marche à suivre pour utiliser CFG dans mon cas, je suis preneur.

      SPIP est excellent mais manque cruellement de documentation pour les développeurs comme moi, ... :(

      Ainsi je ne sais pas où trouver une doc sur la bonne utilisation de CFG avec un cas simple.

    Répondre à ce message

  • Pour ma part, je l’ai testé sur un site en SPIP 1.9.2d [11132] muni des plugins suivants :
    -  Formulaires&Tables (SPIP 1.9.1+)
    -  Thickbox v2

    Le plugin CFG s’installe sans souci, pareil pour le plugin exlure-secteur, cependant quand on va dans la partie CFG, elle demeure vide, il n’y a pas de lien menant au réglage de ce plugin.

    Si je tape directement l’adresse url pour accéder au réglage de ce dernier, la page est blanche.

    voilà ... pour le test en 1.9.2d

    Répondre à ce message

  • Je ne peux que vous remercier chaleureusement !
    J’ai en effet mis à jour complètement un de mes sites, qui regroupe des sites pour enfants, et devant la tâche je me décourageai déjà !
    Finalement, avec votre plugin, c’était réglé en quelques minutes ! Il fait maintenant partie de ma liste perso et je l’installe maintenant sur tous mes sites !
    Bravo :)

    Répondre à ce message

  • 1

    Ce plugin qui répond à beaucoup d’attente dans sa cette forme-ci n’est pas encore pleinement exploitable. J’avais besoin d’exclure des répertoires sur mon site de prêt immobilier mais tout en les faisant apparaître ailleurs dans le squelette... du coup, obligé de coder les boucles avec la contribe : Exclure selon un mot-clé... C’est dommage de devoir utiliser cette astuce qui j’imagine consomme de la ressource... Mais bon, pas le choix.

    Enfin avec des bouts de codes collés bout à bout, on arrive à faire ce que l’on souhaite avec Spip. :)

    • je suis un peu surpris par votre commentaire ? avez vous lu la pareti « faire des exceptions » ?

      si oui, cela ne peut-il pas vous aider

      cordialement

    Répondre à ce message

  • sur la page de config cfg il est indiqué que l’on peut rendre le comportement du critère tout_secteur identique au critère tout mais c’est le critère tout_voir et non tout_secteur

    Répondre à ce message

  • 1

    Point de détail, mais ce plugin n’a pas de logo et nous avons donc un beau «  ? » lorsque l’on va sur la page CFG... cela fait juste pas très « propre »...

    Répondre à ce message

  • 2

    Hello !

    Exclure-secteur semble incompatible avec Acces Restreint 3.0. Quand les deux sont activés, mon Spip n’affiche plus que des pages vides (code source vide), sur la partie privée comme la publique.

    Ma config :

    • Serveur : ZazouMiniWebServer/1.2.8/php-5.2.5
    • Spip : 2.0.8 [13982]
    • Spip Bonux 2.0 : 1.8 [28778]
    • cfg : 1.12.5 [28852]
    • Exclure-secteur : 1.1.1 [28924]
    • Acces Restreint 3.0 : 0.3.0.3 [28930]
    • c’est fort possible ... il faudrait voir les logs pour plus de détail
      pour réparer ton pv->supprime exclure-secteur du dossier plugin et vide le cache
      je n’ai pas le temps de regarder en ce moment, mais bon dans deux semains je pourrais jeter un coup d’oeil.

      Sinon en attendant, pourquoi ne pas créer une zone d’acces-interdit à tous ?

    • je viens de faire un commit sur acces_restreint, qui devrait éviter ces ennuis.

      dispos en paquet ce soir à 19h35.

    Répondre à ce message

  • Voici le log de prive_spip.log à l’activation du plugin exclure-secteur :

    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de action activer_plugins
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de sfb0eb010c40e7eda O
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de s11ff8837802ff947 O
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de s9b762a4a1175f415 O
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de s099935263dd35cb8 O
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de s0a49f3f3f8e5743a O
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de s5b55b449985c24d3 O
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de s3e4ce30b4c9997db O
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de redirect ./?exec=admin_plugin
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de hash 1ad5aa6cda4f779120ede8f0a977d190
    Jun 04 16:17:43 127.0.0.1 (pid 3392) test de arg activer
    Jun 04 16:17:43 127.0.0.1 (pid 3392) Changement des plugins actifs par l'auteur 1: acces_restreint_3_0,cfg,crayons,formulaire_upload,exclure_secteur,selection_d_articles,spip-bonux
    Jun 04 16:17:44 127.0.0.1 (pid 3392) redirige 302: ./?exec=admin_plugin

    spip.log, lui, n’enregistre plus rien.

    Remarque : j’ai aussi un fichier verifier_plugins.txt qui se crée à 16:17:53.

    a:31:{i:0;s:30:"../plugins/cfg/cfg_options.php";i:1;s:58:"../plugins/acces_restreint_3_0/acces_restreint_options.php";i:2;s:32:"../plugins/cfg/cfg_fonctions.php";i:3;s:34:"../plugins/crayons/tetecrayons.php";i:4;s:55:"../plugins/formulaire_upload/base/formulaire_upload.php";i:5;s:53:"../plugins/exclure_secteur/exclure_sect_fonctions.php";i:6;s:52:"../plugins/spip-bonux/public/spip_bonux_criteres.php";i:7;s:51:"../plugins/spip-bonux/public/spip_bonux_balises.php";i:8;s:46:"../plugins/spip-bonux/spip_bonux_fonctions.php";i:9;s:60:"../plugins/acces_restreint_3_0/acces_restreint_fonctions.php";i:10;s:57:"../plugins/acces_restreint_3_0/public/acces_restreint.php";i:11;s:54:"../plugins/acces_restreint_3_0/inc/acces_restreint.php";i:12;s:34:"../plugins/crayons/tetecrayons.php";i:13;s:48:"../plugins/selection_d_articles/pb_selection.php";i:14;s:60:"../plugins/acces_restreint_3_0/acces_restreint_pipelines.php";i:15;s:31:"../plugins/cfg/cfg_pipeline.php";i:16;s:60:"../plugins/acces_restreint_3_0/acces_restreint_pipelines.php";i:17;s:55:"../plugins/acces_restreint_3_0/base/acces_restreint.php";i:18;s:61:"../plugins/selection_d_articles/base/pb_selection_install.php";i:19;s:55:"../plugins/acces_restreint_3_0/base/acces_restreint.php";i:20;s:55:"../plugins/acces_restreint_3_0/base/acces_restreint.php";i:21;s:31:"../plugins/cfg/cfg_pipeline.php";i:22;s:31:"../plugins/cfg/cfg_pipeline.php";i:23;s:31:"../plugins/cfg/cfg_pipeline.php";i:24;s:31:"../plugins/cfg/cfg_pipeline.php";i:25;s:34:"../plugins/crayons/tetecrayons.php";i:26;s:41:"../plugins/exclure_secteur/exclurepip.php";i:27;s:57:"../plugins/acces_restreint_3_0/public/acces_restreint.php";i:28;s:64:"../plugins/acces_restreint_3_0/inc/acces_restreint_autoriser.php";i:29;s:31:"../plugins/cfg/cfg_pipeline.php";i:30;s:54:"../plugins/acces_restreint_3_0/inc/acces_restreint.php";}

    Répondre à ce message

  • 4
    management-projet.org

    Avec SpipSPIP 2.0.5 [13790] et cfg Version : 1.10.5 [25764] — stable

    Interface privé :

    Plus de possibilité d’accès au contenu de l’onglet Gestion des plugins dans interface privé.

    Warning : in_array() [function.in-array] : Wrong datatype for second argument in /home/manageme/public_html/formation/ecrire/public/composer.php(51) : eval()’d code on line 53

    Fatal error : Call to undefined function accesrestreint_liste_rubriques_exclues() in /home/manageme/public_html/formation/ecrire/public/composer.php(51) : eval()’d code on line 27

    Interface publique :

    Warning : array_map() [function.array-map] : Argument #2 should be an array in /home/manageme/public_html/formation/plugins/auto/exclure_secteur/inc/exclure_utils.php on line 28

    partout sur la page.

    • merci pour ce signalement ....

      je corrige ce soir

    • bizarre,

      seul le bug sur l’interface public me semble lié au plugin.

      J’ai fait un commit qui devrait résoudre ce problème (attendre que le paquet soit regenerer)

      utilise tu accés restreints ?

      ps : je pars en vacance demain, donc les réglages se feront plus tard...

    • bon, je sais d’om vient le pb ... mais je ne sais poas comment le résoudre ...

      je pars en vacance, mais à la rentré je m’attelle à cela en demandant de l’aide ...

    • je viens de commiter une correction (merci denisb)

      elle sera disponible en téléchargement après le prochain repaquetage de la zone (donc demain au pire)

    Répondre à ce message

  • Bonjour :)

    Idée très sympathique tout ça mais je n’ai aucun accès à la conf du plugin depuis CFG. L’interfaceur aurait-il oublié le « bouton magique » ? :-P

    En tout cas merci beaucoup :-)

    EDIT / Autant pour moi, ma demande d’activation n’était pas passée. Soit SPIP a merdouillé soit j’ai oublié de cliquer sur « valider » c’est selon. EN revanche la suite n’est pas beaucoup plus glorieuse.

    Sous SPIP 2.0.6, obtenu en 6 exemplaires sur /ecrire/ ?exec=admin_plugin à l’activation :

    Warning: in_array() [function.in-array]: Wrong datatype for second argument in /***/***/***/ecrire/public/composer.php(73) : eval()'d code on line 53

    A première vue la même chose que management-projet.org sauf que c’est apparament pas la même ligne.

    La page /ecrire/ ?exec=cfg&cfg=secteur en est également pleine (25 ou 30 exemplaires).

    Un premier test de choix de rubrique semble passer, je reçois bien la confirmation d’exclusion du secteur choisis MAIS, dans l’espace public, même après recalcul de la page il n’en est rien, le secteur trubliopn est toujours là.

    J’attend donc la prochaine upgrade en espérant que ce rapport t’aide au max. :-)

    Répondre à ce message

  • je n’ai pas testé ...
    mais à priori, si on est sur une 3.0, les deux passants par une pipeline, il ne devrait pas y avoir de pb.

    Répondre à ce message

  • Que se passe-t-il si ce plugin et accès restreint sont activés sur un même site ?
    Y a t il incompatibilité ?

    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