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

  • 1
    dimooz

    J’ai le même problème que cinti.

    Je viens d’installer SPIP 2.0.10 [14698] et impossible d’activer le plugin Spip-Bonux.
    Message d’erreur :
    « Impossible d’activer le plugin auto/spip-bonux
    * Nécessite SPIP en version [2.0.0 ;2.1.0-beta) minimum. »

    Ma version de Spip est elle incompatible avec ce plugin ? Merci d’avance pour le retour.

    • hey, i finally solve the problem upgrading to version 2.1.10, but I’ll soon migrate to wordpress, spip has many bugs as any big program has, but in this case spip community. Every time a have problem with spip i must solve the problem by my own, losing a lot of time and risking my work due to that, it doesn’t worth...

    Répondre à ce message

  • 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

    Répondre à ce 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

    Répondre à ce 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>

    Répondre à ce 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

    Répondre à ce message

  • 1
    Jean-Sylvain

    Bonjour,

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

    <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.

    Répondre à ce 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

    Répondre à ce 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 :-)

    Répondre à ce 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 ?

    Répondre à ce message

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

    Ceci fonctionne :

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

    Ceci ne fonctionne pas :

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

    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