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

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

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

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

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

  1. #SET_PUSH{tableau,valeur}

Un critère compteur

Inspiré de Classer les articles par nombre de commentaires, le critère compteur permet de compter les elements d’une table associées à 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.

SPIP Bonux (2.3.6)

updated on 17 March 2019

Discussion

110 discussions

  • 3

    Bonjour

    je rencontre un problème avec un formulaire CVT qui fonctionne quand je désactive SPIP-BONUX alors qu’en l’activant la validation de mon formulaire me produit une page blanche.

    J’ai besoin de SPIP-BONUX pour le “datepicker” sur des champs input, y a-t-il de la doc quelque part.

    Merci d’avance

    F BILLARD

    • Il y a un conflit avec un autre plugin, peut être CFG pas à jour.

      Pour afficher les erreurs de PHP, mettre dans son config/mes_options.php :

      <?php
      ini_set ("display_errors", "On");
      ?>

      Ou même :

      <?php
      error_reporting(E_ALL^E_NOTICE);
      ini_set ("display_errors", "On");
      define('SPIP_ERREUR_REPORT',E_ALL^E_NOTICE);
      ?>

      Ça devrait éviter les pages totalement blanches, pour peu que vous puissiez redéfinir les paramètres de PHP avec ini_set (ça dépend des hébergeurs aussi)

    • Merci je vais mettre a jour CFG ET VOIR.

      Cordialement

      F BILLARD

    • En effet mise a jour de «Cfg» et tout fonctionne.

      Merci

      Cordialement

      F.M BILLARD

    Reply to this message

  • Bonjour il y a une erreur dans le fichier de lang du calendrier de SPIP-BONUX

    ’annee_precedente’ => ’Année précédente’,

    Doit prendre la place de

    ’annee_precedente’ => ’Anée précédente’,

    dans le fichier /spip-bonux/lang/spip_bonux_fr.php

    ce qui permet de lire année et non anée.

    cordialement

    François-Marie BILLARD

    Reply to this message

  • j’ai trouver la solution dans les autres commentaires, mais je crois qu’il serait mieux d’ajouter le code ci-dessous dans la doc:

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

    Reply to this message

  • Bonjour,
    j’ai installé SPIP 2.1.8 [16966] et SPIP-Bonux 2.2.17 [44864] et j’ai un probléme avec une boucle (CONDITION):
    lorceque la condition est vrai (dans mon cas, id_mot>3), la balise #URL_ARTICLE
    me donne des addresses bizarres avec la variable connect=condition, du stile spip.php?page=article&id_article=5&connect=condition
    S’agit-il d’un bug du plugin ou y-a-t’il quelque chose qui m’echappe?

    Voici mon code:

    <BOUCLE_principale(MOTS) {id_mot}{doublons}>
    	<B_articles>
    	<h2><:articles_rubrique:></h2> 
    		#ANCRE_PAGINATION
    		<BOUCLE_articles(ARTICLES){id_mot} {par date}{inverse} {pagination}{doublons}>
    			<BOUCLE_test(CONDITION){si #ENV{id_mot}|>{3}}>
    				[<a href="#URL_ARTICLE">(#TITRE|supprimer_numero)</a>]
    			</BOUCLE_test>
    				[<a href="#URL_ARTICLE">(#TITRE|supprimer_numero)</a>]
    			<//B_test>
    		</BOUCLE_articles>
    		[<p class="pagination">(#PAGINATION{page})</p>]
    	</B_articles>
    </BOUCLE_principale>

    Merci

    Reply to this message

  • 1
    Jean-Sylvain

    Bonjour,

    Est-il possible de mettre plusieurs critères dans la boucle condition, du style

    1. <BOUCLE_TEST(CONDITION){si #ID_RUBRIQUE|=={""} et si .....}>

    Merci de votre aide

    • oui, séparer les conditions par des virgules, ou mettre plusieurs critères si :)

      <BOUCLE_TEST(CONDITION){si (#ID_RUBRIQUE|=={""}), (#ID_ARTICLE|oui)}>
      <BOUCLE_TEST(CONDITION){si (#ID_RUBRIQUE|=={""})}{si (#ID_ARTICLE|oui)}>

      Les 2 devraient fonctionner (de même avec le plugin itérateurs, qui offre le critère {si} même en dehors d’une boucle condition.

    Reply to this message

  • 2

    Bonjour,

    J’avais réalisé la refonte d’un site avec spip il y a 3-4 mois et j’ai récemment voulu le mettre en ligne sur mon hébergement ovh tout ce passait bien mais je devait utiliser le plugin agenda et pour cela je dois installer le plugin spip bonux
    Mon problème se pose lorsque je fais l’installation de spip bonux je perd tout le design de l’interface administrateur comme si il ne retrouvait plus le chemin vers la page css pour l’administration.. par contre tout mon site apparait correctement..
    Quelqu’un aurait-il une idée??

    CONFIGURATION :
    Spip 2.0.10
    Bonux 2.2.7
    Agenda 2.1.8

    Reply to this message

  • 1

    Bonjour,

    j’ai un problème avec le plugin médiathèques qui visiblement pourrait venir de SPIP Bonux. Les logs me donnent ça http://spip.pastebin.com/Ss7UtGy3 et on voit bien qu’il y a des problème avec la boucle pour et un spip_global_parameter qui vient flooder les logs.

    Le plugin est bien activé, tout est installé normalement, et fait d’autant plus étonnant ça marche très bien sous wamp. C’est uniquement quand je mets en ligne que ça plante. Je suis chez OVH avec une formule pro.

    Ca devient obsédant cette erreur. Je suis preneur de toute solution.

    • J’ai trouvé en fait il s’agit d’une fonction qui n’est reconnue qu’en PHP5 il faut configurer le .htaccess avec des paramètres personnalisés pour les hébergements qui sont encore en PHP4 par défaut :-)

    Reply to this message

  • J’ai l’impression que #VALEUR est modifié sans raison par une boucle CONDITION.

    Avec ce code :

    #SET{tab,#ARRAY{0,toto,1,titi}}
    <BOUCLE_b(POUR){tableau #GET{tab}}>
        <li>
            #CLE -> #VALEUR
            <BOUCLE_c(CONDITION){si #VAL{1}|=={1}}>
                (#CLE -> #VALEUR)
            </BOUCLE_c>
        </li>
     
    </BOUCLE_b>

    On obtient toujours “1” comme valeur de #VALEUR dans les parenthèses.

    Par contre, c’est bon si on référence la boucle POUR :

    #SET{tab,#ARRAY{0,toto,1,titi}}
    <BOUCLE_b(POUR){tableau #GET{tab}}>
        <li>
            #CLE -> #VALEUR
            <BOUCLE_c(CONDITION){si #VAL{1}|=={1}}>
                (#CLE -> #_b:VALEUR)
            </BOUCLE_c>
        </li>
    </BOUCLE_b>

    Est-ce normal ?

    Reply to this message

  • J’ai l’impression que la boucle POUR accepte une contrainte de nombre d’éléments uniquement si elle est statique.

    Ceci fonctionne :

    1. <BOUCLE_maj(POUR){tableau #GET{contenus}}{0,1}>

    Ceci ne fonctionne pas :

    #SET{max,1}
    <BOUCLE_maj(POUR){tableau #GET{contenus}}{0,#GET{max}}>

    Reply to this message

  • 6

    Désolé pour cette question qui a certainement déjà été posée, mais dont je ne trouve pas la réponse :-(

    Mise à jour

    SPIP 2.1.2 [16017]
    SPIP Bonux 2.2.10 - stable
    cfg : moteur de configuration 1.15.2 - stable
    Je perds le graphisme de l’espace privé
    Une idée ?

    • Vider les caches, SPIP et navigateur, non ?

    • Déjà fait ;-)

      Désolé, j’ai oublié en local sous MAMP 1.9.4 PHP 5.2.13
      ça donne ça (Bouh pas beau !!)

    • Pour les ceusses que ça intéresse j’ai ça en bas dans la partie privée :

      1 Filtre bando_style_prive_skin non défini ../plugins/auto/spip-bonux/style_prive.html / 0

    • Personne donc pour une super idée ??

    • J’ai déplacé style_prive.html dns le dossier privé du plugin
      ça marche semble t il

    • Alors les Bonuxiens,

      Personne n’a une petite idée sur ce schisme ?

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom