
Recherche avancée
Autres articles (67)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)
Sur d’autres sites (8568)
-
Revision 106028 : Introduction de 3 calculs facilitant l’analyse des notes avec les ...
1er septembre 2017, par marcimat@… — LogIntroduction de 3 calculs facilitant l’analyse des notes avec les formulaires JAIME/JAIMEPAS avec le critère notation, dans son usage le plus simple,
tel que (FORUMS)notation (pas dans l’usage (AUTEURS articles)notation articles dans ce commit)nombre_votes_moins : retourne le nombre de votes ’jaimepas’, c’est à dire valant 1 étoile
nombre_votes_plus : retourne le nombre de votes ’jaime’, c’est à dire valant max étoiles (5 par défaut, selon la configuration)
nombre_votes_diff : retourne… la différence des 2 nombres. Si 5 votes + et 2 votes -, cela retournera 3 donc.
Les balises #NOTATION_NOMBRE_VOTES_PLUS, #NOTATION_NOMBRE_VOTES_MOINS et #NOTATION_NOMBRE_VOTES_DIFF
permettent de retrouver ces calculs ensuite.
On peut donc faire dans une boucle :
pour avoir les sujets les mieux placés.
À la différence de !par moyenne_ponderee ou !par moyenne les éléments exclusivements négatifs seront
placés après les éléments n’ayant pas reçus de votes. -
Anomalie #3799 : appliquer_filtre ne s’applique pas aux filtres image_
10 février 2017L’intention que tu cites n’était peut être pas forcément le but de la fonction
appliquer_filtre()
à l’origine.Bon, j’ai un problème. Comme je disais en #note-7 il y a un bug sur appliquer filtre et l’option qui avait été ajoutée en r71781.
En plein dans le bug¶
Il y a un cas intéressant sur la zone dans SarkaSPIP, parmi d’autres :
[(#ENVid_rubrique|appliquer_filtreaccesrestreint_rubrique_restreinte,0|oui) #SETretour_logout, #URL_PAGEsommaire]
function accesrestreint_rubrique_restreinte($id_rubrique, $id_auteur = null)
Le zéro passé en second paramètre, on ne sait pas s’il était
- à destination deappliquer_filtre()
pour éviter absolument qu’il retourne la valeur id_rubrique SI accès restreint est absent, ou s’il était
- à destination deaccesrestreint_rubrique_restreinte()
pour indiquer l’auteur 0 (ce qui est peu probable)
Et du coup, ça casse le fonctionnement deaccesrestreint_rubrique_restreinte()
car ça ne prend pas en compte le visiteur courant car $id_auteur ne vaut plusnull
À d’autres endroits au contraire, par exemple dans Emballe Medias, on trouve :
[(#INCLUREjavascript/jquery.shiftcheckbox.js|appliquer_filtreminifier,js)]
Ici, la présence de l’option ’js’ fait que appliquer_filtre va comprendre qu’il doit toujours retourner le contenu d’origine même en absence du filtre.
C’est d’ailleurs très certainement ce qui est souhaité ici. Sauf que ce n’est pas voulu explicitement a priori.On trouve aussi un usage avec |sinon :
["geometry" : (#GEOMETRY|appliquer_filtrewkt_to_json|sinon"type" : "Point", "coordinates" : [#LON, #LAT]),]
Corrections de appliquer_filtre en créant une seconde fonction ?¶
Ces 2 derniers exemples montrent que quelque soit l’option choisie pour corriger on va casser des usages (en créant une seconde fonction pour faire l’inverse), ie :
Option Historique)
-T|appliquer_filtre{F}
retourne ’’ si F introuvable
-T|appliquer_filtre_ou_continuer
retourne T si F introuvableOption Chaînage)
-T|appliquer_filtre{F}
retourne T si F introuvable
-T|appliquer_filtre_sinon_rien{F}
retourne ’’ si F introuvableOu déprécier appliquer_filtre()¶
Une autre solution est de créer 2 nouvelles fonctions pour remplacer appliquer_filtre et son fonctionnement incertain.
Contrainte : elles ne doivent pas commencer parfiltre_
.
-T|utiliser_filtre{F}
retourne T si F introuvable (chaînage)
-T|utiliser_filtre_sinon_rien{F}
retourne ’’ si F introuvableC’est peut être une solution acceptable. On aurait du être plus vigilent en introduisant une nouvelle fonction plutôt qu’un paramètre en plus à appliquer_filtre() alors que celle ci utilise func_get_args…
-
Anomalie #2307 : md5_boutons_plugins()
21 juillet 2014, par marcimat ☺☮☯♫Et les traces pour voir plus clairement les 2 créations du même define (_UPDATED_boutons_plugins) :
Premier passage (constante non définie)¶
array (size=5) 0 => array (size=4) ’file’ => string ’[...]spip/ecrire/inc/plugin.php’ (length=57) ’line’ => int 636 ’function’ => string ’plugin_ongletbouton’ (length=19) 1 => array (size=4) ’file’ => string ’[...]spip/ecrire/inc/plugin.php’ (length=57) ’line’ => int 530 ’function’ => string ’plugins_precompile_xxxtions’ (length=27) 2 => array (size=4) ’file’ => string ’[...]spip/ecrire/inc/plugin.php’ (length=57) ’line’ => int 431 ’function’ => string ’ecrire_plugin_actifs’ (length=20) 3 => array (size=4) ’file’ => string ’[...]spip/ecrire/inc_version.php’ (length=58) ’line’ => int 391 ’function’ => string ’actualise_plugins_actifs’ (length=24) 4 => array (size=4) ’file’ => string ’[...]spip/ecrire/index.php’ (length=52) ’line’ => int 21 ’function’ => string ’include’ (length=7)
Second passage (constante déjà définie)¶
array (size=5) 0 => array (size=4) ’file’ => string ’[...]spip/ecrire/inc/plugin.php’ (length=57) ’line’ => int 636 ’function’ => string ’plugin_ongletbouton’ (length=19) 1 => array (size=4) ’file’ => string ’[...]spip/ecrire/inc/plugin.php’ (length=57) ’line’ => int 530 ’function’ => string ’plugins_precompile_xxxtions’ (length=27) 2 => array (size=4) ’file’ => string ’[...]spip/ecrire/inc/plugin.php’ (length=57) ’line’ => int 431 ’function’ => string ’ecrire_plugin_actifs’ (length=20) 3 => array (size=4) ’file’ => string ’[...]spip/plugins-dist/svp/exec/admin_plugin.php’ (length=74) ’line’ => int 52 ’function’ => string ’actualise_plugins_actifs’ (length=24) 4 => array (size=4) ’file’ => string ’[...]spip/ecrire/index.php’ (length=52) ’line’ => int 151 ’function’ => string ’exec_admin_plugin_dist’ (length=22)