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.
Discussions par date d’activité
111 discussions
Bonjour,
En SPIP 2.09 et Bonux 1.83, dès que j’active SPIP Bonux, le site privé disparaît. Quelqu’un a t’il déjà vu ce problème, et comment faire pour y remédier ?
Merci par avance
Bonjour,
Pour ceux à qui ça pourrait servir, voici la chose à faire : augmenter la memoryLimit et memory max size du serveur, car apparemment, spip bonux est un peu gourmand.
Répondre à ce message
Bon,
le problème (comme souvent) ne venait pas de SPIP, mais de ma configuration locale.
Ça ne fonctionnait pas parce que ma config de PHP n’acceptait pas les scripts de plus de 16M. En réglant memory_limit sur 32M dans php.ini, tout fonctionne.
Cool :)
Répondre à ce message
Ben, ça marche toujours pas malheureusement.
Quand j’enlève le plugin et que j’actualise firefox, le message suivant apparaît dans l’espace privé :
Une idée ?
Je ne comprends pas.
Quand tu enlève le plugin Bonux, il est normal que tu reçoive un message d’erreur. Rien d’anormal. Il suffit de repasser par la page d’admin des plugins pour que ça soit pris en compte.
Cédric
Répondre à ce message
Merci. Je vais essayer ça demain matin, puis je posterais le résultat ici même.
Répondre à ce message
J’obtiens ça quand j’essaye d’activer le plugin :
J’ai téléchargé spip_bonux aujourd’hui (2/11/09), je suis en local. J’ai mis à jour vers 2.0.10 en me disant que ça devait venir de là, mais le problème reste le même.
Autres plugins installés : CFG, spip-listes, contact
Une idée ? Pas de chance pour moi, je voulais installer le site chez mon hébergeur aujourd’hui. M’enfin ! C’est pas bien grave :)
PS : suis pas très doué sorti de xhtml, css et les boucles SPIP...
Essai de désactiver spip liste ; j’ai aussi fait la mise à jour perso sans aucun problème.
Répondre à ce message
Bonjour,
Merci pour ce plugin. Je tente (avec SPIP 2.0.5) de trier des articles en fonction du nombre de messages de forums qu’ils ont suscité. Par mimétisme avec le code donné ci-dessus pour les auteurs, j’écris (schématiquement) ceci :
Mais ça donne des résultats assez bizarres. Sur le site sur lequel je teste j’ai cinq articles avec des messages de forums (pour un total de neuf messages). La boucle n’en renvoie que deux, et leur attribue neuf messages à chacun...
J’ai dû louper quelque chose. Mais quoi ?
Je suis en train de me battre avec le même problème de résultats surprenants pour le calcul du nombre de commentaires d’un article, le soucis vient de ce que SPIP fait la jointure sur id_auteur au lieu de le faire sur id_article.
Si on déclare dans la fonction critere_compteur
if ($arrivee[0] == 'forums') $arrivee[1]['key']['KEY id_article'] = 'id_article';
la jointure est immédiate, mais elle se fait avec unINNER JOIN
, ce qui fait qu’on perd tous les articles qui n’ont pas de message dans le forum...Bon, je réussi à obtenir un
LEFT JOIN
à l’aide du code suivant :Avant le
if ($compt = calculer_jointure($boucle,$depart,$arrivee)){
:Et après la fermeture du
if ($compt = calculer_jointure($boucle,$depart,$arrivee))
:Je subodore que ça ne soit pas propre du tout du tout...
J’ai rien suivi, mais tu as ->from_type pour déclarer un type de jointure particulière… Utilisé ici : http://zone.spip.org/trac/spip-zone...
Effectivement, merci beaucoup Mathieu, j’ai finalement fait un critère spécifique :
Une autre utilisation, pour trier par nombre de commentaires une liste d’articles dont on veut s’assurer qu’ils ont tous au moins une vidéo FLV :
et le code PHP :
Je vais me fendre d’un article dédié quand j’aurais le temps tiens...
Répondre à ce message
Bonjour,
C’est pas un truc super grave mais y a un pti souci d’affichage avec IE (6 et 7 je crois) déjà repéré si j’en crois les précédents posts.
Bon ça disparaît avec la version 8, alors....
Merci pour le boulot,
DG
Répondre à ce message
Bonjour à tou(te)s,
Je poste ici un exemple de problème résolu par la balise #ARRAY et la balise #SET_PUSH de spip-bonux :
Problème à résoudre
1. on cherche a obtenir, dans un site, une sélection des 3 derniers articles d’actualités
2. mais, les articles d’actualités sont éparpillés ; ce sont :
- tous les articles de la rubrique « actus »
- seulement certains articles de la rubrique « sommaire » qui portent le mot clé « actus »
3. il faut donc qu’on « réunisse » en une seule liste, ces deux séries d’articles, puis qu’on les trie par date inverse pour prendre seulement les 3 plus récents.
Solution
1. initialiser un tableau SPIP avec la commande
#SET{actus, #ARRAY{}}
2. créer une première boucle pour récupérer les articles de la rubrique « actus », et à chaque itération, ajouter une ligne au tableau « actus » avec #SET_PUSH :
3. créer une seconde boucle pour récupérer les articles avec le mot clé « actus » (et continuer le cahrgement du tableau) :
4. enfin, récupérer, trier et sélectionner tous les articles d’actualité, c’est à dire tous les articles du site dont l’id_article fait partie du tableau « actus » :
En espérant que cet exemple simple puisse inspirer de nombreux sites !
A+
Cyril
Et que penser de ?
Répondre à ce message
le critère de tri par hasard fonctionne-t-il sur le boucle (POUR) ?
(objectif sortir une valeur parmi d’autre dans un tableau aléatoirement )
Répondre à ce message
C’est bon, c’est la bonne version maintenant ! :-)
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 :
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.
Suivre les commentaires : |