
Recherche avancée
Autres articles (83)
-
Soumettre bugs et patchs
10 avril 2011Un logiciel n’est malheureusement jamais parfait...
Si vous pensez avoir mis la main sur un bug, reportez le dans notre système de tickets en prenant bien soin de nous remonter certaines informations pertinentes : le type de navigateur et sa version exacte avec lequel vous avez l’anomalie ; une explication la plus précise possible du problème rencontré ; si possibles les étapes pour reproduire le problème ; un lien vers le site / la page en question ;
Si vous pensez avoir résolu vous même le bug (...) -
Contribute to a better visual interface
13 avril 2011MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community. -
Automated installation script of MediaSPIP
25 avril 2011, parTo overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
The documentation of the use of this installation script is available here.
The code of this (...)
Sur d’autres sites (6779)
-
Evolution #3361 : Tri par défaut des entrées des menus du bandeau de l’espace privé
6 décembre 2014, par tcharlss (*´_ゝ`)Voilà ma petite proposition de patch et mes explications (un peu verbeuses, mais ça m’aide à retenir).
Dans http://core.spip.org/projects/spip/repository/entry/spip/prive/squelettes/inclure/barre-nav.html#L46, c’est la boucle
, ligne 46, qui affiche les entrées.
Tel quel, on ne peut pas faire de tri au moyen de{par xxx}
, car la chaîne de langue n’est pas contenue dans#VALEUR{menu}
, juste le nom de l’entrée i18n associé :array (size=6) ’auteurs’ => object(Bouton)[301] public ’icone’ => string ’’ (length=0) public ’libelle’ => string ’icone_auteurs’ (length=13) public ’url’ => null public ’urlArg’ => null public ’url2’ => null public ’target’ => null public ’sousmenu’ => null ’rubriques’ => ...
(Note : dans la boucle DATA, l’objet « Bouton » est traité comme un tableau associatif).
Pour faire le tri alphabétique, il y a juste 2 points à traiter :- Rajouter la chaîne de langue dans les valeurs. Les premières lettres suffiront pour le tri.
- Faire en sorte que cette paire clé/valeur soit au début du tableau. Anéfé, dans une boucle DATA, quand les
#VALEUR
sont des tableaux associatifs,{par valeur/toto}
ne fonctionne pas. En revanche, on peut faire{par valeur}
tout court et ça va prendre en compte la valeur associée à la première clé du tableau.
Donc concrètement, en ajoutant
'tri' => 'chaine de langue'
au début du tableau de chaque entrée, on peut faire{par valeur}
dans la boucle et le tour est joué.
Je propose 2 patchs, au choix :Patch A¶
Dans le squelette
barre_nav.html
: juste avant la boucle DATA qui affiche les entrées, on fait une boucle qui modifie le tableau qui l’alimente (dans le patch, on fait gaffe au espaces blancs, mais là c’est pour la lisibilité).[(#REM) prépare les données des entrées ] #SETsousmenu,#ARRAY
#SETentree,#ARRAY#CLE,#ARRAY
tri,#VAL#VALEURlibelle|_T|replace’\s+’,’’|substr0,3|strtolower,
icone,#VALEURicone,
libelle,#VALEURlibelle,
url,#VALEURlibelle,url,
urlArg,#VALEURurlArg,
url2,#VALEURurl2,
target,#VALEURtarget,
sousmenu,#VALEURsousmenu
#SETsousmenu,#GETsousmenu|array_merge#GETentree[(#REM) Affiche les entrées ]
- ...
Patch B¶
Dans
boutons.php
, on ajoute$this->tri = strtolower(substr(preg_replace('/\s+/','',_T($libelle)),0,3));
à la classeBouton
et on fait en sorte que ce soit la première donnée renvoyée.
Du coup dans le squelettebarre_nav.html
il suffit de rajouter{par valeur}
. -
Révision 22452 : report de r22346
29 octobre 2015, par brunobergot@gmail.comFix #3430 : les boucles avec langue utilisaient lang_select_public() qui changeait sauvagement la langue en debut de boucle, sans la restaurer en fin de boucle, provoquant des bugs de contexte
On modifie la compulation des boucles : lang_select_public() appelle toujours lang_select(...) avec eventuellement la langue inchangee, et la boucle finit par un lang_select() qui depile et restaure la langue pour l’iteration suivante. -
Evolution #3488 : Stocker globalement toutes les requetes passées
30 juin 2015, par kent1 -Et pourquoi pas dans le plugin dev ? qui fait déjà un début de cela ?