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

  • Bonjour et merci pour les plugins :-)

    C’est juste pour dire que le téléchargement actuelle c’est la version : 1.8.1 [30251]

    et non, [30562] comme cela devrait le cas depuis hier

    Du moins c’est les chiffres que spip m’indique :-)

    Encore merci à vous pour votre travail :-)

    Reply to this message

  • jacques

    bonjour,

    est il posible d’utiliser des variables définies au préalabe par #SET ?

    par exemple
    #SETvariable,1

    et ensuite
    si #ENV[(#GETvariable)]==1>

    je n’arrive pas a trouver la syntaxe pur que cela fonctionne

    merci

    jacques

    Reply to this message

  • Warning : Wrong parameter count for array_slice() in /space_3/s/snpfc/www/plugins/auto/spip-bonux/req/array.php on line 231 j’ai cette erreur quand j’active le plugin spip liste quelqu’un a t il une solution ?
    mon site est sous squelette médian
    merci

    Reply to this message

  • Plante tout le site après mise à jour en V1,8 de spip bonux (site en spip 208).

    A t-on vraiment besoin de spip-bonux pour utiliser le plugin Accès restreint v3, ou peut on supprimer la dépendance de ce dernier plugin ?

    Merci

    Reply to this message

  • 2

    Bonjour,
    Sous spip 2.0.3 (le dernier) et aprés avoir mis en local sous ubuntu 8.4, php5, firefox et apache2, j’obtient un blocage en mettant puis validant le plugin spip_bonux avec le message :

    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 58172 bytes) in /var/www/ecrire/public/compiler.php on line 537

    Sans ce plugin, je ne peux pas valider accés restreint.
    J’avais déjà ce type de message sous php4 mais aprés regénération de la page ça passait. La c’est bloqué.

    Svp que faire.
    Merci
    Alain

    • Il faut seulement allouer plus de mémoire à php : dans le fichier

      /etc/php5/apache2/php.ini

      cherche la variable et ajuste la valeur :
      memory_limit = 32M (d’origine c’est 16, sur les serveurs gandi 1part c’est 128)

    • Bonjour,

      J’ai un pb similaire mais ne sais pas où est le fichier php.ini chez OVH.

      J’ai loué un serveur RPS mais je commence à me demander si j’ai les connaissances techniques suffisantes car je ne trouve pas ou augmenter la mémoire pour Apache.
      Qq peut-il m’aider ?

      Ci-dessous des détails sur mon problème...

      Tout se passait bien sur ma machine en local. J’ai loué un serveur RPS premium et...

      En installant pour “SPIP” le plugin “Bonux2.0” nécessaire au plugin “Acces restreint 3.0” et “Agenda 2.0”
      J’obtiens le message:

      Fatal error: Allowed memory size of 10 485 760 bytes exhausted (tried to allocate 311 296 bytes) in /home/snupfen1/www/spip/ecrire/public/composer.php(73) : eval()’d code on line 394

      La ligne 73 qui pose problème est “ eval(’?’.’>’.$skel_code);”
      Dans le script du fichier “composer.php”

      // Tester si le compilateur renvoie une erreur
      if (is_array($skel_code))
      erreur_squelette($skel_code[0], $skel_code[1]);
      else
      if (isset($GLOBALS[’var_mode’]) AND $GLOBALS[’var_mode’] == ’debug’)
      debug_dumpfile ($skel_code, $nom, ’code’);

      eval(’?’.’>’.$skel_code);
      if (function_exists($nom))
      ecrire_fichier ($phpfile, $skel_code);
      return array($nom, $skel_code);
      else
      erreur_squelette(_T(’zbug_erreur_compilation’), $source);


      C’est grave docteur ?
      Je ne trouve pas les réglages sur webmin

    Reply to this message

  • 1

    Comme à chaque fois que j’utilise bonux, je ne me souviens plus (car ce n’est mentionné ou linké nul part) comment on l’administre ?
    ?exec= ????

    Reply to this message

  • 1

    Bonjour et merci pour cette contrib.
    Est-il possible d’utiliser SPIP Bonux dans un sous-répertoire de mon site ? J’ai tenté l’expérience sur un site dans l’espoir de montrer le site à d’autres avant de le mettre en ligne sur son propre hébergement. Apparemment y a comme un hic, puisque j’obtiens systématiquement les messages suivants :
    “/ !\ Fichier absent : public/spip_bonux_criteres.php”
    “/ !\ Fichier absent : public/spip_bonux_balises.php”
    A toutes fins utiles, j’utilise OVH, avec un sous répertoire du site principal que j’ai déclaré en sous domaine dans lequel repose (pour l’instant ca ne fait meme que ca) l’arborescence SPIP, et avec le .htaccess modifié “comme il faut”.
    J’ai déjà posté il y a quelques jours, mais sans succès.
    Merci d’avance

    Reply to this message

  • 1

    Au passage pour ceux qui souhaiterais récupérer les couleurs d’origine de l’interface privé de Spip avec le plugin bonux il a 2 méthodes fort simple (ça m’a pris 10 min à trouvé à 1h15 du mat’ c’est dire si c’est simple...) :
    -  aller dans le dossier plugins\spip-bonux\inc de votre site Spip et édité le fichier couleurs.php (j’ai testé ça marche mais j’ai eu la flème de le faire entièrement)
    -  ou encore plus simple mais a utiliser avec prudence, vous renommer ce fichier pour que spip n’y ait plus accès (genre _couleurs.php).

    j’ai pas rencontré de problème avec la deuxieme méthode (faut dire j’ai pas testé grand chose) mais il est claire que la première est la plus sur.

    Par contre vous récupérez uniquement les couleurs par défaut pas les images de fond générées par le thème par défaut de spip.

    • Ouf, très bonne idée parce que c’est quand même relou “interface douce” (limite illisible sur certains emplacement comme le choix de mots clefs sur l’AGENDA 2.0).

    Reply to this message

  • 1

    EN spip 2.0.5 (les autres je ne sais pas) la boucle CONDITION me foire tous les liens. Voici le cas:

    <BOUCLE_art(ARTICLES)>
    <BOUCLE_if(CONDITION){si 1==1}>
    #URL_ARTICLE
    </BOUCLE_if>
    </BOUCLE_art>

    Dans une telle boucle l’url de l’article est incorrecte: au lieu d’utiliser l’url propre il affiche l’url du genre:

    spip.php?page=article&id_article=55&connect=condition

    Et avec un “connect=condition” en plus. Évidemment c’est très moche, même si c’est immédiatement redirigé sur l’url propre. On obtient le même résultat avec #_art:URL_ARTICLE. Vous avez une idée de ce qui cause ça et de comment le régler ?

    Pour info en attendant je fais comme ça:

    <BOUCLE_if(CONDITION){si 1==1}> </BOUCLE_if>
    #URL_ARTICLE
    </B_if>
    (else)
    <//B_if>
    • J’avais le même problème que Spyro sous SPIP 2.0.8 : mes liens se terminaient par “&connect=condition”, et menaient en plus à une page 404... (url propres QS).

      La solution proposée par Spyro fonctionne pour moi, cool.

      C’est à dire, utiliser la syntaxe suivante :

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

      au lieu de :

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

    Reply to this message

  • Alzifado

    Bonjour
    je souhaite utiliser spip bonux dans un sous répertoire “testfolder” de mon site, et j’ai eu beau desinstaller et réinstaller spip et ses plugins de differentes façons, y compris la création d’un sous-domaine pointant sur ce sous répertoire, j’obtiens systématiquement dans la gestion de plugins au dessus de la ligne spip bonux les messages suivant :
    “/!\ Fichier absent : public/spip_bonux_criteres.php”
    “/!\ Fichier absent : public/spip_bonux_balises.php”
    Est-ce un défaut de spip bonux ou, et c’est plus probable vu la qualité générale de spip bonux, un défaut d’un de mes neurones fatigués, mais dans ce cas lequel ? Merci d’avance de votre réponse.
    (Je précise que j’ai bien spécifié le rewriteengine sur “on”, RewriteBase /testfolder/. J’utilise OVH)

    Reply to this message

Add a comment

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 / PostgreSQL
  • 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 apparait.

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.

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