SPIP Bonux

Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans ! Interface douce, boucles POUR et CONDITION, tableaux, compteur, etc.

Parce que nous n’avons pas pu tout mettre dans SPIP 2.0 (la boîte était trop petite), voici un plugin qui intègre des trucs en plus ! C’est cadeau !

Rq : certaines fonctionnalités de SPIP Bonux ne sont pas documentées ici, mais dans la doc sur Bonux pour SPIP 3.

C’est doux, c’est neuf ?

De l’avis des amateurs de SPIP-Bonux, cette distribution améliore le confort d’usage des formulaires de saisie de l’espace privé, dont les couleurs tiennent mieux dans la durée. Il s’agit a priori d’une simple variante de style : celle-ci propose une nouvelle palette de couleurs, plus douces pour les yeux et propices à la concentration sur votre travail éditorial. Mais surtout, — là est le vrai cadeau Bonux —, ces formulaires restent accessibles, même lorsque l’affichage des images est désactivé dans le navigateur ou lorsque le trop faible débit de votre connexion ne permet pas de les afficher, situation bien plus courante qu’on ne croit. SPIP-Bonux vous permet donc d’accueillir des collaborateurs autrement laissés pour compte.

Une boucle (POUR)

Une boucle (POUR) qui permet de boucler sur tous les tableaux PHP, qu’ils soient en #ENV, en #GET, ou autres...

<BOUCLE_test(POUR){tableau #ENV{tableau}}>
#CLE=>#VALEUR<br />
</BOUCLE_test>

cle et valeur peuvent être utilisés dans les critères, ainsi que de nombreux critères des boucles traditionnelles de spip (pagination par exemple)

Ces tableaux peuvent être déjà présent dans #ENV car fournis en argument d’un inclure, ou en contexte d’un formulaire CVT, ou issus de tout filtre retournant un array() PHP : (#ENV{qqc}|mon_filtre), ou toute balise retournant un array() comme #ARRAY ...

De nombreux exemples sont disponibles dans le répertoire demo/ du plugin.

Il est possible dans cette boucle de trier les résultats {par cle} ou {par valeur}, mais aussi, si les résultats sont eux-mêmes des tableaux (ou des objets), de trier sur une de leurs clés. Par exemple si #ARRAY est un tableau d’objets ayant un champ date, le tri {par date} fonctionne « naturellement ».

Une boucle (CONDITION)

<BOUCLE_test(CONDITION){si #ENV{test}|>{5}}>
vrai
</BOUCLE_test>
faux
<//B_test>

Des balises pour manipuler les tableaux

SPIP permet deja d’initialiser un tableau avec

#SET{tableau,#ARRAY{1,premier,2,deuxieme,3,troisieme}}

ou avec

#SET{tableau,#LISTE{janvier,février,mars}}

Spip-Bonux ajoute la balise #SET_MERGE qui permet de fusionner et affecter une variable en meme temps :

#SET_MERGE{nom_tableau,#GET{tableau},#ARRAY{cle,valeur}}

et la balise #SET_PUSH, pour y ajouter un element :

#SET_PUSH{tableau,valeur}

Un critère compteur

Le critère compteur permet de compter les éléments d’une table associés à ceux d’une autre.

Exemple, pour afficher les auteurs avec leur nombre d’articles :

<BOUCLE1(AUTEURS){compteur articles}{par compteur_articles}>
#ID_AUTEUR : #COMPTEUR{articles}
</BOUCLE1>

La balise #COMPTEUR est associée au critere et permet d’afficher la valeur du compteur pour chaque auteur.

Un article entier est consacré à la documentation de ce critère : Le critère compteur de Bonux.

Discussion

111 discussions

  • luffy71150

    Bonjour,
    je voulais savoir si vous pouvez m’aider a resoudre un probleme parce-que j’ai installer spip bonux et quand je vais sur mon site j’ai une erreur :
    Fatal error : Cannot redeclare picker_selected() (previously declared in /mnt/169/sdb/f/9/onepiecestreaming/plugins/spip-bonux/spip_bonux_fonctions.php:76) in /mnt/169/sdb/f/9/onepiecestreaming/prive/formulaires/selecteur/generique_fonctions.php on line 86

    Merci d’avance

    Répondre à ce message

  • 2

    Hello. Dans un cas d’utilisation de SPIP avec des tables externes, j’utilise une fonction très pratique de Bonux : « picker_selected ».
    Elle me permet par exemple, pour un objet éditorial donné (ici organisme), de lister les rubriques auxquelles il est reliées :

    <BOUCLE_principale(ORGANISMES) {id_organisme}>
    <BOUCLE_rubriques(RUBRIQUES){id_rubrique IN #THESAURUS_DOSSIERS|picker_selected{rubrique}}>
    <li><a href="#URL_RUBRIQUE">#TITRE</a></li>
    </BOUCLE_rubriques>
    </BOUCLE_principale>

    Ceci dit, je n’arrive pas à faire la réciproque ! A savoir, pour une rubrique donnée, connaître les organismes qui y sont reliés.
    j’ai essayé ceci sans grande conviction :

    <BOUCLE_rubriques(RUBRIQUES){id_rubrique}>
    <B_organismes>
    <BOUCLE_organismes(ORGANISMES){thesaurus_dossiers IN #ID_RUBRIQUE}>
    #TITRE
    </BOUCLE_organismes>
    </B_organismes>
    </BOUCLE_rubriques>

    Mais bien sûr cela ne marche pas... Le champs extra thesaurus dossier de l’objet Organisme se présente ainsi :
    « rubrique|1,rubrique|2 ».

    Une idée ?

    • Peut être : 
      
      <BOUCLE_organismes(ORGANISMES)
          {thesaurus_dossiers==(^|,)rubrique[|]#ID_RUBRIQUE($|,)}>
      #TITRE
      </BOUCLE_organismes>
      
      Ou 
      
      [(#SET{regex,"(^|,)rubrique[|]#ID_RUBRIQUE($|,)"})]
      <BOUCLE_organismes(ORGANISMES)
          {thesaurus_dossiers==#GET{regex}}>
      #TITRE
      </BOUCLE_organismes>

      Mais bon, il faut bien comprendre que ce sélecteur de champs extras n’est pas fait pour ce genre de requête. Pour faire des liaisons multiples avec quelque chose et permettre des critères, il faut passer par une table de liaison spip_objet_liens dans la mesure du possible (et donc ici spip_organismes_liens).

    • Merci Matthieu. Effectivement une table de liaison aurait été très pratique ! Malheureusement j’ai dû composer avec des tables externes et une autre logique de structuration.

    Répondre à ce message

  • Bonjour, je n’arrive pas à trouver comment accéder à la gestion du plugin Bonux avec SPIP 3. Avec les précédentes versions de SPIP, je savais faire mais là, je ne dois pas être bien réveillé ou j’ai loupé quelque chose ?

    Répondre à ce message

  • Bonjour,
    dans le cadre d’un formulaire « formidable », l’export csv ne fonctionne pas, impossible de télécharger le fichier.
    La discussion suivante fournit une solution :
    http://contrib.spip.net/Formidable-le-generateur-de-formulaires#forum456385
    En commentant la ligne 90 du fichier plugins/spip-bonux/inc/exporter_csv.php , cela fonctionne.
    Cette ligne est-elle nécessaire ? Et sinon, est-il possible de modifier le plugin ?
    Merci,
    Sylvain

    Répondre à ce message

  • 2

    Bonjour,

    Je tente de rendre conditionnelle une récursion (menu arborescent de rubriques).

    Quand la condition est vraie, j’ai une page blanche.

    <BOUCLE_DeepMenu(CONDITION){si 1}><BOUCLE_SsSousMenuhaut(BOUCLE_SousMenuHaut)></BOUCLE_SsSousMenuhaut></BOUCLE_DeepMenu>

    Si la condition est fausse : la page s’affiche normalement :

    Je suis tombé sur un bug ou une impossibilité ?

    • En attendant, j’ai contourné avec du PHP :

      <?php if (true) { ?><BOUCLE_SsSousMenuhaut(BOUCLE_SousMenuHaut) /><?php } ?>

      Et la récursion se passe très bien.

    • J’ai réussi à la faire sans PHP, mais avec une requête (RUBRIQUES) et le plugin Itérateurs.

      http://zone.spip.org/trac/spip-zone/changeset/64320

      À noter : j’ai essayé sans succès (page blanche) de faire avec :

      • (DATA){liste 1}
      • (ENUM){0,1}

    Répondre à ce message

  • Laurent BARITAUD

    Question d’un non spécialiste : lorsque j’active SPIP Bonux sous spip 2.0.10, nécessaire pour le fonctionnement d’autres plugins, mon site affiche une belle page toute blanche. Plusieurs essais d’activation/désactivation me le confirment. Pourtant, il ne semble pas indispensable d’installer d’autres plugins en amont de Bonux.
    Merci de votre aide, je reprécise, à un non spécialiste.
    Laurent.

    Répondre à ce message

  • bonjour,

    j’utilise spip 2.1.12 et bonux 2.3.0.

    J’ai une boucle condition dans laquelle je met une balise #TEXTE, et aucune image du #TEXTE n’apparait sur le site dans la partie publique.

    elles apparaissent bien dans la partie privée, et si je met la balise #TEXTE juste avant la boucle CONDITION, les images apparaissent également.

    Dans le code source, rien n’est interprété (pas de balise img).

    Une idée d’où ça pourrait venir ?

    un exemple : http://pass-pro.org/EIFFAGE-L-HARMONIE-DES-TALENTS

    une image est insérée au début du texte. Je la vois dans la partie privée, mais elle n’est pas sur la partie publique.

    Répondre à ce message

  • 1

    Bonjour,

    SPIP 2.1.10, j’ai beaucoup de plugins d’installer.
    Dans plusieurs pages de l’espace privé je reçois le message suivant :

    Aucun squelette Array.html n’est disponible... ../plugins/auto/spip-bonux/style_prive_plugins.htm

    Des idées d’où peut provenir l’erreur ?

    Merci

    Zaa

    • Aucun squelette Array.html n’est disponible... ../plugins/spip-bonux/style_prive_plugins.html

      J’ai aussi le même problème ??

    Répondre à ce message

  • 4
    ChateauDav

    A quand la compatibilité avec SPIP 3 ?? =)

    Répondre à ce message

  • Pour documentation : SPIP Bonux intègre une version améliorée de #PAGINATION qui affiche un lien « Tout afficher », permettant à l’utilisateur d’afficher tous les éléments de la liste sur une seule page. Pour utiliser ce modèle (situé dans /modeles/pagination_prive.html) : #PAGINATION{prive}

    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