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

  • Le plugin est-il compatible Spip 4.1 ?

    Répondre à ce message

  • Bonjour,

    Je vois qu’une mise-à-jour datée du 17/03/2016 (rev. 96044) est proposée. Mais en téléchargement, elle est introuvable sur Contrib et introuvable sur la Zone de téléchargement ??...

    Merci à l’équipe de développement :-)

    Répondre à ce message

  • 1
    Fabrice

    Bonjour,
    BONUX « Natif à partir de SPIP 3 » et pourtant le téléchargement de la « Version 3.2.1 (ZIP – 95.8 ko) SPIP 3.0, SPIP 3.1 » est proposé... (?)
    Doit-on la télécharger quand même pour un site en SPIP3 ?

    D’avance merci du conseil.

    • Fabrice

      Ne vous dérangez pas, j’ai trouvé l’explication sur Google.

      Si ça peut rendre service, la voilà :

      RealET | 31 Jan 22:14 2016

      Re : [spip] natif ?

      Josiane ALETTO a écrit le 31/01/2016 20:26 :
      >
      > bonjour
      >
      > Savez vous ce que signifie dans contrib cette mention de compatibilité
      > Natif à partir de SPIP 3
      Ça signifie que la fonctionnalité apportée par le plugin est intégrée à
      SPIP 3

      > <http://contrib.spip.net/Natif-a-par...>
      >
      > alors que l’on a ensuite une version du plugin en 3 et 3.1
      Tu parles de bonnux ?
      Si oui, ce dernier a continué à évoluer et à intégrer des choses non
      disponibles nativement dans SPIP

      Donc, il faut télécharger. Merci Google, merci RealET

    Répondre à ce message

  • Dans un SPIP3.1, en utilisant la boucle compteur de Bonux voici comment je parviens semble t il à remplacer le critère compteur_publie qui permet de trier articles par nombre de forums publiés :

    <BOUCLE_art_comments(ARTICLES){0,10}
         {compteur forums}{!par compteur_forums}
         {spip_forum.statut=publie}> 
        <li><a href="#URL_ARTICLE">
            #TITRE ( #COMPTEUR{forums}&nbsp;commentaires)
        </a></li>
    </BOUCLE_art_comments>

    Répondre à ce message

  • Bonjour.

    Je suggère d’ajouter un ob_start() au début de la fonction inc_exporter_csv_dist dans le fichier exporter_csv.php. Cela corrige un bug que nous avons rencontré (et que d’autre semble avoir rencontré vu certains commentaires...).

    Cela fait bien longtemps que j’ai pas commit sur la zone (et j’ai perdu mon compte) mais je l’aurai volontiers fait sinon :)

    Cordialement

    Répondre à ce message

  • Bonjour,

    je tente d’utiliser une boucle avec le plugin Bonux pour Spip3

    <BOUCLE_test(ARTICLES) {compteur mots} {!par compteur_mots} {0,10}>
        <a href="[(#URL_ARTICLE)]">[(#TITRE)]</a> : #COMPTEUR{mots}<br/>
    </BOUCLE_test>

    c’est OK, mais je voudrais réduire aux mots d’un seul groupe et là le critère {id_groupe=N}

    mais le résultat est en fait : le nombre de mots clés de l’article multiplié par le nombre de mots du groupe demandé

    c’est curieux

    j’ai pu toutefois avoir mon résultat avec :

    <BOUCLE_test(ARTICLES) {compteur mots} {par compteur_mots}>
    #SET{diviseur#ID_ARTICLE,#COMPTEUR{mots}}
    </BOUCLE_test>
    
           <BOUCLE_compte(ARTICLES) {id_groupe=11} {compteur mots} {!par compteur_mots}>
       <a href="[(#URL_ARTICLE)]">[(#TITRE)][ - Bi-(#ID_ARTICLE)]</a> : [(#COMPTEUR{mots}|div{[(#GET{diviseur#ID_ARTICLE})]})] <br />
       	</BOUCLE_compte>

    malheureusement, classé par nombre total de mots-clés utilisés par l’article et non par nombre de mots-clés du groupe utilisés par l’article

    Je vais essayer plutôt de me tourner vers une contrib de Beurt, si j’y ai plus de chance :)
    http://contrib.spip.net/Afficher-les-articles-connexes-tries-par-pertinence

    Répondre à ce message

  • Bonjour,

    Il-y-a du texte codé en dur dans spip_bonus_options.php. Il s’agit du label « Relecture temporaire ».

    Cordialement,
    Hanjo

    Répondre à ce message

  • Apparemment introduit par SPIP-Bonux (cf. ex-ticket #3147), un bouton « Relecture temporaire » est présent sur certains articles du site public, a priori ceux « en cours de rédaction » et « proposé à l’évaluation ». Lorsqu’on le clique, son intitulé change de nom, pour « prévisualisation » et c’est tout ce qu’on perçoit : si on n’est pas au courant de la chose, on ne comprend pas que l’URL a changé, ni que c’est pour pouvoir la partager, ni qu’elle est périssable, ni…

    Une amélioration d’interface serait bienvenue pour rendre cette fonctionnalité compréhensible et plus utilisable (sachant que certains internautes naviguent sans voir l’adresse des pages).

    L’intitulé du bouton devrait être un verbe, plutôt qu’un état, par exemple : « Partager la relecture ».

    Une boîte de dialogue permettrait de :
    -  afficher la nouvelle URL à copier-coller
    -  expliquer à quoi elle sert. Par exemple : « Copiez cette adresse URL et donnez-là aux personnes auxquelles vous souhaitez montrer cette page, pour en partager la relecture. Attention, cette adresse URL est temporaire : elle sera périmée dans XX heures ! »

    Idéalement, il faudrait demander confirmation avant de générer l’URL.

    Répondre à ce message

  • 1

    Bonjour
    Impossible de trier un #ARRAY dont les cles sont des #DATE, y a t’il un truc ? Spip3,
    j’essaie de suivre l’exemple http://www.erasme.org/SPIP-requete-et-tri-sur-des

    mais chez moi le
    <BOUCLE_tri(POUR){tableau #GET{contenus}}{!par cle}>
    ne se trie pas.... {!par cle} ou {par cle} donnent le même ordre....

    Je ne vois pas trop quoi faire.

    Merci d’avance !

    • hello,
      j’ai le même problème depuis le passage à spip 3 :(

      { !par cle} et {par cle} {inverse} ne fonctionnent pas, le trie reste {par cle}

      vilain bug ?
      joz

    Répondre à ce message

  • 1

    Bonjour,

    Contexte : SPIP 2.1.12, SPIP Bonux 2.3.0

    Dans un de mes squelettes je fait appel à la boucle CONDITION offerte par SPIP Bonux.
    En regardant ma page avec var_profile=1, j’ai 10 erreurs de ce type :

    Erreur SQL 1146
    1146Table 'amp.CONDITION' doesn't exist
    SHOW CREATE TABLE <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Q09ORElUSU9OPC9jb2RlPg=="></span>

    A quoi cela est dû ? Comment régler ce problème ?

    • Bonjour Teddy,

      Contexte : SPIP 2.1.9, Bonux 2.3.0

      Je viens de constater le même type d’erreur dans mes log :

      Sur le log spip

       Erreur mysql 1146
      Table 'mabase.CONDITION' doesn't exist - SHOW CREATE TABLE <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Q09ORElUSU9OPC9jb2RlPg=="></span>
      trouver_table: table inconnue '' 'CONDITION'

      Sur le log mysql

      Table 'mabase.CONDITION' doesn't exist - SHOW CREATE TABLE <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Q09ORElUSU9OPC9jb2RlPg=="></span>

      A noter que j’avais déjà ceci avant la mise à jour de Bonux.
      Du coup, mon site a tendance à rester en cours de chargement dans la barre de l’URL (notamment sur Firefox), je ne sais pas si ces problèmes sont directement liés mais c’est la seule chose signaler en erreur dans les logs.

      Si vous avez du nouveau là-dessus ;)
      Merci
      Sebbesac

    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