Fichiers du core
70 fichiers impactés :
- CHANGELOG.txt
- config/ecran_securite.php
- ecrire/action/referencer_traduction.php
- ecrire/auth/spip.php
- ecrire/base/dump.php
- ecrire/base/objets.php
- ecrire/base/trouver_table.php
- ecrire/inc_version.php
- ecrire/inc/autoriser.php
- ecrire/inc/cvt_configurer.php
- ecrire/inc/distant.php
- ecrire/inc/filtres.php
- ecrire/inc/lang_liste.php
- ecrire/inc/lang.php
- ecrire/inc/lien.php
- ecrire/inc/log.php
- ecrire/inc/minipres.php
- ecrire/inc/pipelines_ecrire.php
- ecrire/inc/pipelines.php
- ecrire/inc/presentation_mini.php
- ecrire/inc/queue.php
- ecrire/inc/session.php
- ecrire/inc/texte_mini.php
- ecrire/inc/traduire.php
- ecrire/inc/urls.php
- ecrire/inc/utils.php
- ecrire/iterateur/data.php
- ecrire/lang/ecrire_oc_ni.php
- ecrire/lang/public_oc_ni.php
- ecrire/lang/spip_fr.php
- ecrire/paquet.xml
- ecrire/public/compiler.php
- ecrire/public/sandbox.php
- ecrire/req/mysql.php
- ecrire/req/pg.php
- ecrire/req/sqlite_generique.php
- prive/echafaudage/contenu/objet.html
- prive/formulaires/dater.html
- prive/formulaires/editer_auteur.php
- prive/formulaires/editer_logo.html
- prive/formulaires/recherche_ecrire.html
- prive/formulaires/selecteur/ajax_fonctions.php
- prive/formulaires/selecteur/inc-nav-rubriques_fonctions.php
- prive/formulaires/selecteur/navigateur_fonctions.php
- prive/formulaires/traduire.html
- prive/javascript/ajaxCallback.js
- prive/javascript/layer.js
- prive/objets/liste/articles-trad.html
- prive/objets/liste/articles.html
- prive/squelettes/contenu/article.html
- prive/squelettes/contenu/auteur.html
- prive/squelettes/contenu/rubrique.html
- prive/squelettes/hierarchie/infos_perso.html
- prive/squelettes/inclure/barre-nav.html
- prive/themes/spip/clear.css
- prive/themes/spip/icons.css.html
- prive/themes/spip/images/aide-rtl-12.png
- prive/themes/spip/images/aide-rtl-16.png
- prive/themes/spip/lists.css.html
- prive/themes/spip/minipres.css
- prive/themes/spip/typo.css.html
- squelettes-dist/css/clear.css
- squelettes-dist/css/form.css
- squelettes-dist/css/spip.css
- squelettes-dist/css/typo.css
- squelettes-dist/formulaires/ecrire_auteur.html
- squelettes-dist/formulaires/mot_de_passe.php
- squelettes-dist/inc-rss-item.html
- squelettes-dist/paquet.xml
- squelettes-dist/robots.txt.html
26 tickets fermés :
#2013, #2855, #2884, #3084, #3099, #3233, #3260, #3263, #3270, #3272, #3276, #3278, #3282, #3289, #3309, #3325, #3326, #3327, #3339, #3353, #3368, #3380, #3381, #3384, #3409, #3412
révision 21529
ecrire/inc/autoriser.php
Pas d’onglet dans le nom de la fonction d’autorisation. Permet à un redacteur de pouvoir remodifier la langue et la couleur dans l’espace privé.
révision 21531
ecrire/inc/minipres.php
Eviter des "illegal offset" si l’utilisateur n’est pas connecté (déjà corrigé en 3.1).
révision 21536
ecrire/inc/cvt_configurer.php
Oups : mauvais "type" appelé pour la fonction d’autorisation pour celleux qui veulent la personnaliser : il ne faut pas garder le "configurer_" qui est déjà dans le "faire" !
Cela ne change rien à la sécurité, c’est toujours l’autorisation "configurer" qui est appelée par défaut.
révision 21539
ecrire/inc/autoriser.php
le filtrage /auteur du statut de previsu introduit par r21500 n’etait pas pris en compte dans autoriser_previsualiser_dist() ce qui ne rendait plus visible le lien de prévisu sur les articles en cours de redaction.
Ferme le ticket #2013
révision 21542
prive/themes/spip/typo.css.html
prive/themes/spip/clear.css
report de r21541 : maj url contrib (Francky)
révision 21543
ecrire/inc/texte_mini.php
Suite à http://forum.spip.net/fr_258607.html, retour partiel sur http://core.spip.org/projects/spip/repository/revisions/21272. On retire <math> de _PROTEGE_BLOCS car cela casse le fonctionnement annoncé dans la doc (http://www.spip.net/fr_article3016.html: "on peut en réalité ajouter <math>...</math> de manière très large (en clair : on peut ajouter <math> tout au début du texte, et </math> tout à la fin...).). L’incompatibilité perdure en 3.1-dev => revoir la doc ou revoir la rupture de compat ou proposer une màj élégante dans les textes ?
révision 21544
ecrire/inc/autoriser.php
pétouille (d’ailleurs je me demande pourquoi on ne colle toujours pas d’accents dans nos commentaires ?)
révision 21555
prive/formulaires/recherche_ecrire.html
accessibilité : ce onkeypress provoquait un submit lorsqu’on quittait le focus de la recherche, en navigation au clavier. Il n’est pas necessaire, on le vire (Armony)
révision 21556
ecrire/inc/pipelines_ecrire.php
la page infos_perso est une variante de la page auteur avec un id_auteur implicite. On la traite de maniere derogatoire pour que les plugins y ajoutent leurs blocs comme sur la page auteur (Philippe)
révision 21557
prive/javascript/ajaxCallback.js
ecrire/inc/filtres.php
Accessibilité : quand un formulaire est dans une zone aria-live="true", le screen reader vocalise chaque frappe de caractere par une relecture complete du bloc, ce qui est absolument insupportable. On devrait pouvoir ameliorer cela avec un aria-relevant adapté sur la zone, mais à tester/affiner. En attendant on pose un aria-live="off" sur les balises <form> contenues dans les blocs ajax, ce qui rétablit un confort d’utilisation acceptable (Armony)
On pose tous ces attributs aria en JS, pour ne pas risquer d’avoir l’un sans l’autre.
révision 21558
prive/objets/liste/articles-trad.html
ecrire/lang/spip_fr.php
Accessibilité : expliciter la fonction du bouton qui fixe la reference des traductions (balise alt de <img> et title du <button> qui le contient) (Armony)
révision 21559
prive/formulaires/dater.html
prive/formulaires/traduire.html
Accessibilité : il y a plusieurs liens "Changer" sur la page article, qui ne sont pas contextualisés quand lus par un lecteur d’écran. On ajoute en complément ce sur quoi chacun porte, en class="over" car ils ne sont pas visuellement nécessaires (Armony)
révision 21560
prive/echafaudage/contenu/objet.html
prive/squelettes/contenu/article.html
prive/squelettes/contenu/rubrique.html
prive/squelettes/contenu/auteur.html
Accessibilite : ajouter un <h2> en tete de la zone wysiwyg pour permettre d’y acceder rapidement avec un lecteur d’ecran (Armony)
Il faudra revoir la structure des hn mais c’est deja mieux comme ca.
révisions 21568, 21570
prive/themes/spip/lists.css.html
prive/objets/liste/articles.html
eviter que la liste devienne impraticable si un article a une centaine d’auteurs (ou plus)
révision 21575
ecrire/inc/queue.php
ecrire/inc/utils.php
ecrire/inc/pipelines.php
Lorsque le cron a plus de 5min de retard, on double la requete http par une image background (ou un lancement force si c’est un bot) car c’est sans doute que l’hebergement n’autorise pas les http sortant
Devrait ameliorer le fonctionnement des crons sur les sites a faible trafic ou hebergement limite
révision 21589
ecrire/public/sandbox.php
Report de r21588 : Lors de l’utilisation dans un squelette d’un filtre ’|Classe::methode...’ une erreur bloquante était générée par PHP. (merci witi).
Ferme le ticket #3282
révision 21595
ecrire/inc/texte_mini.php
Les modeles block interrompent les enumerations parce que le <div class="base64" ..> qui les echappe est suivi de \n\n interprete comme une fin de liste
il suffit de ne pas inserer ces deux retour lignes qui etaient initialement la pour aider le paragraphage mais ne s’averent plus necessaires pour le bon fonctionnement de tous les raccourcis
Les tests de textwheel permettent de verifier qu’on ne casse rien
Ferme le ticket #2884
révision 21596
ecrire/inc/session.php
quand on a trop de sessions ouvertes (plus de 1000, personalisable par la constante _MAX_NB_SESSIONS_OUVERTES) on purge toutes les sessions anonymes de plus de 3h pour ne pas flooder le tmp/sessions.
(Mecanisme de protection contre les bots qui postent sur le formulaire d’abonnement newsletter qui provoque la creation d’une session anonyme avec session_email)
Cela permet de ne pas changer le comportement par defaut des sessions anonymes sauf en cas d’attaque/spam. Les gros sites pourront augmenter le seuil si besoin.
Ferme le ticket #3276
révision 21612
ecrire/inc/lang_liste.php
Le khmer c’est le khmer
révision 21616
prive/formulaires/selecteur/ajax_fonctions.php
prive/formulaires/selecteur/navigateur_fonctions.php
2 fichiers _fonctions manquant pour le selecteur ajax en squelette (patch plus doux que la version 3.1)
Ferme le ticket #3099
révision 21646
ecrire/req/mysql.php
Le sql_mode à la création d’une table mysql n’était pas ajouté.
révision 21647
ecrire/req/mysql.php
Le doit être défini ici.
révision 21664
prive/squelettes/hierarchie/infos_perso.html
mettre un fil d’ariane vide pour la page infos_perso
Ferme le ticket #3309
révision 21672
ecrire/req/mysql.php
ecrire/req/sqlite_generique.php
lire correctement les index a longueur fixee, et conserver la longueur qui est utile pour re-creer la table lors d’un dump
Ferme le ticket #3260
révision 21687
ecrire/inc/urls.php
Bugfix : certains raccourisseurs d’URL transorment les ?articleXX en ?articleXX= ce qui provoquait le bug suivant
quand on demande spip.php ?article6434 :
- on regarde le cache : rien en cache
- du coup on analyse l’URL : ça matche articleXXX donc on redirige vers l’article XXX
quand on demande spip.php ?article6434= (noter le "=" à la fin de l’URL)
- on regarde le cache : rien en cache
- du coup on analyse l’URL : ça matche PAS articleXXX à cause du "="
- on calcule la page => pas d’id article en url ni autre => page sommaire
- on met en cache
Le coup suivant, on demande spip.php ?article6434
- on regarde en cache : et là subtilité, le contexte du cache est le même que pour l’URL spip.php ?article6434= :
array(’article6434’ => ’’, ’lang’=>’fr’)
du coup on a bien une page en cache, on la ressort et on l’envoie. Manque de bol c’était le sommaire !
révision 21712
ecrire/req/mysql.php
ecrire/req/sqlite_generique.php
Bugfix de la regexp introduite par r21633 et r21572 utilisee par show_table ; elle ne savait pas lire une table simple sans aucun index (une seule parenthèse)
révisions 21735, 21885, 21887
prive/javascript/layer.js
bugfix sur le selecteur ajax de rubriques quand la page contient plusieurs input id_parent
Ferme le ticket #3233
révision 21747
prive/themes/spip/images/aide-rtl-12.png
prive/themes/spip/images/aide-rtl-16.png
l’icone d’aide rtl n’était pas utilisée (George)
Ferme le ticket #3289
révision 21752
ecrire/base/dump.php
Un bug serieux sur la sauvegarde : lors de l’insertion on ne comptait pas sur la table destination mais sur la table source, ce qui entrainait systematiquement une double insertion (une fois en multi puis une fois un par un)
Pouvait provoquer une erreur avec abandon qui manquait de log et n’etait pas signale dans le status. On corrige donc les consequences d’une telle erreur.
révision 21754
ecrire/public/compiler.php
Respecter les CACA et les PROUT de Rastapopoulos dans la pagination (dont le modele peut être dynamique)
(ie argumenter_inclure ignorait tous les arguments dynamiques qui suivaient un argument sans partie "x=", comme #INCLURE#ENVX,inclure/pied,id_article qui est une inclusion directe d’un fichier, dont le contenu brut du fichier #ENVX,inclure/pied est importé, le reste du contexte ne servant pas
+ un modificateur m manquant sur la regexp pour ne pas ingorer les valeurs multilignes
Ferme le ticket #3327
révision 21756
prive/formulaires/editer_auteur.php
on repasse par email_valide dans le traiter pour enregistrer en base un email "valide" et éviter les "Marie Toto <Marie@toto.com>" ou "Marie@toto.com "
Ferme le ticket #3326
révision 21758
ecrire/base/dump.php
Une fonction base_prefixe_tables pour afficher le prefixe de la table sauvegardee dans l’interface
révision 21759
ecrire/base/trouver_table.php
Quand table_spip=false, ne pas se rabattre sur la description declaree dans l’API SPIP, ni essayer de prefixer par spip_
+ flag exist true/false dans le resultat pour distinguer quand on a pris la declaration fallback ou quand on a trouve la table
révision 21760
ecrire/base/dump.php
trouver la description de la vraie table meme si le prefixe n’est pas spip_
Faisait echouer les backup apres migration a cause du champ extra dans la vraie table mais pas dans la declaration sur laquelle on se basait
Ferme le ticket #3270
révisions 21767, 21857, 21859
ecrire/iterateur/data.php
cast recursif sur le object -> array en sortie de YQL
Ferme le ticket #3325
révision 21768
ecrire/base/trouver_table.php
ecrire/base/dump.php
On evite de risquer de la casse dans la version 3.0.x et on continue a ne peupler le flag exist que si il vaut true
révisions 21794, 21798
ecrire/auth/spip.php
simplifier car l’imbrication (function($)$(function() console.log($) ;))(jQuery) renvoit jQl et pas jQuery quand elle est lancee par jQl ; bug js potentiel sur le formulaire de login : il attendre document.ready pour manipuler le DOM (Alexis)
révision 21803
config/ecran_securite.php
id_base est une variable de la config des widgets de WordPress
révision 21807
ecrire/inc_version.php
le define _IS_BOT de fallback est fait apres l’inclusion de l’eventuel ecran de securite, qui est toujours plus a jour
révision 21808
config/ecran_securite.php
2 bots de plus detectes par le radar : Genieo et InfegyAtlas
révision 21809
ecrire/inc_version.php
Mise a jour de la detection des bots d’apres celle de l’ecran de securite
révisions 21813, 21814
ecrire/inc/autoriser.php
Correction des autorisations pour configurer ses infos persos : pour voir les deux formulaires configurer_langage et configurer_preferences c’est toujours ok. Pour voir les deux onglets des pages qui les contiennent, on calque les autorisations sur les deux précédentes.
Ferme le ticket #3339
révision 21820
ecrire/inc/session.php
La globale "visiteur_session" doit être initialisée au tableau vide et non à la chaîne vide, sinon on se prend un avertissemnent "Illegal string offset" dans les squelettes l’utilisant sur un visiteur non authentifié.
révision 21833
ecrire/req/mysql.php
Un warning PHP en moins sur les $GLOBALS[’debug’][’aucasou’]
Ferme le ticket #3353
révision 21837
prive/formulaires/dater.html
{}
révisions 21838, 21840
prive/formulaires/editer_logo.html
Permettre de passer valider via pipeline si par exemple on est amené à rajouter des champs dans ce formulaire
révision 21844, 21845
config/ecran_securite.php
- MSIE 6.0 est un botnet, on le traite comme un bot
- securite sur une variable mal protegee du plugin contact (il faut upgrader le plugin pour retrouver toutes les fonctionnalites)
révisions 21849, 21851
ecrire/inc/filtres.php
orthographe
révision 21852
ecrire/inc/queue.php
L’ouverture/fermeture immédiate d’une socket pour lancer le cron en async peut bloquer un process apache sur le serveur, qui reste en attente betement. Il suffit alors d’avoir beaucoup de site sur un serveur pour arriver parfois à consommer le MaxClient Apache, ce qui est embêtant.
On essaye donc autant que possible de lire la réponse du serveur pour fermer proprement et libererer la connexion, en se donnant un timeout de 200ms. De temps en temps il arrivera qu’on parte comme un sauvage sans le faire, mais tant que ça reste statistiquement occasionnel c’est pas grave.
révision 21861
ecrire/inc/lang.php
Le Dari (http://fr.wikipedia.org/wiki/Dari) est aussi une langue rtl
révision 21880
ecrire/base/objets.php
id_table_objet() sur les tables non spip ne trouvait plus la clé primaire depuis r20312, un peu trop restrictif. On corrige en regardant la cle primaire du moment que la table est dans la base, qu’elle soit SPIP ou non
révision 21894
ecrire/inc/lien.php
Si une fonction wrap_embed_html est definie, on l’appelle en lui passant le contenu source et le html qu’on s’apprete a embed dans le contenu riche.
Cette fonction peut etre utilisee pour encapsuler ce contenu dans un markup qui l’indique comme non editable dans un editeur wysiwyg et qui porte la trace du raccourci source pour permettre la conversion html=>raccourcis SPIP
révision 21899
ecrire/auth/spip.php
perf issue : eviter une requete SQL a chaque affichage du formulaire de login anonyme
révision 21900
prive/themes/spip/icons.css.html
Voir le lien ajouter une image dans le cas de deux icones sur la même ligne
Ferme le ticket #3384
révision 21903
ecrire/inc/lang_liste.php
nissart mistralien
révision 21911
ecrire/action/referencer_traduction.php
typo et indentation
révisions 21918, 21919
ecrire/inc/session.php
Bugfix : un unset sur une valeur de session ne doit pas generer un cache de session pour un visiteur anonyme sans session (effet papillon d’un petit bug sur session_set qui provoque une generation du cache à l’infini).
Cas typique :
- le plugin panier verifie a chaque hit si le visiteur a un panier en session et sinon par precaution appelle session_set(’id_panier’) pour unset une evenuelle valeur
- session_set peuple la valeur a null et appelle ajouter_session()
- ajouter_session voit que le visiteur n’a pas de cookie session et genere un hash de session
- il inspecte le tableau de session voit qu’il n’y a rien a enregistrer et rend la main ni vu ni connu (croyait-il).
Mais comme on a renseigne $_COOKIE[spip_session] celui-ci est pris en compte dans la fonction spip_session() et genere un cache sessionné. Le plus drole c’est qu’on ne pose le cookie. Donc on recommence au hit suivant avec un nouvel identifiant de session, ce qui est une catastrophe en performance si le site utilise des balises #SESSION. Chaque hit sur le site génére un nouveau cache (donc calcul, donc ecriture sur le disque, donc gonflement du cache etc.)
Pour mémoire quand on joue avec les sessions dans les plugins et les squelettes il faut toujours verifier que au final un curl anonyme sur le site est servi sans aucun "Calcul" ni "Ecriture du cache" dans spip.log.
révision 21959
ecrire/inc/distant.php
ssl :// a vecu, il faut utiliser tls :// car sinon les requetes https ne passent plus sur les serveurs avec une lib OpenSSL recente
révision 21965
ecrire/iterateur/data.php
Eviter une notice dans le critère par si il est composé uniquement de deux éléments (ce qui est le cas le plus fréquent).
révision 21967
ecrire/inc/log.php
Insérer la date du log en y intégrant clairement l’année : c’est plus lisible.
révision 21975
prive/themes/spip/minipres.css
win_width.htc n’existe pas (enfin si, mais dans squelettes-dist) et donc il renvoie des erreurs 404 ici et à priori, celui de squelettes-dist ne concerne que ie5.5 à priori, je pense donc qu’il n’est pas pertinent de le dupliquer pour ce navigateur seulement
révision 21984
/prive/javascript/ajaxCallback.js
spécifier l’unité des valeurs pour left et top appliqués au p inséré par ajaxcallback en fin de page (chankalan)
révision 21985
ecrire/inc/distant.php
Une constante pour le timeout de connexion a la socket (par defaut a 10s au lieu de 30s)
+ une globale pour interdire le fallback par fopen quand on ne veut pas risquer un double timeout si on sait que le host peut nous bloquer avec son firewall
révision 22001
prive/formulaires/selecteur/inc-nav-rubriques_fonctions.php
dans certains cas particuliers, les filtres ne sont pas chargés par le selecteur. on les charge donc.
Ferme le ticket #3381
révision 22006
prive/squelettes/inclure/barre-nav.html
corriger le title du lien vers la config du site dans le bandeau (klaus)
révisions 22007, 22008, 22009, 22010, 22012, 22016, 22017, 22019, 22079
release SPIP 3.0.18 et revert
révision 22019
ecrire/lang/public_oc_ni.php
ecrire/lang/ecrire_oc_ni.php
occitan niçard mistralien
révision 22036
ecrire/req/pg.php
corriger le bug des espaces dans les mots de passe
Ferme le ticket #3409
révision 22049
ecrire/inc/traduire.php
Lorsque des clés de langue sont définis dans
local_xx.php
, ils n’étaient plus toujours pris en compte dans la recherche de traduction dans certains cas. Ainsi le cas <:toto :> avec lang/local_fr.php et lang/local_en.php (ayant ’toto’ => ’...’), avec la langue du site en anglais et une demande de ’toto’ en sw ignorait local_en.php. Effectivement dans ce cas, charger_lang() modifiait idx_lang car sw n’est pas présent dans un des modules de spip (public ou ecrire ou spip) et chargeait donc la langue principale du site (en). La clé de langue n’étant pas trouvé dedans, inc_traduire_dist est relancé avec la langue ’en’ principale, mais étant déjà chargée, les fichiers locaux ’local_en’ n’étaient pas ajoutés. On corrige donc ce problème.
révision 22069
ecrire/inc/lang_liste.php
L’arménien s’écrit Հայերեն dans sa langue
révision 22080
ecrire/inc/lien.php
il faut utiliser sql_get_select() pour beneficier de la traduction des noms de table
Ferme le ticket #3412
révisions 22081, 22085, 22086, 22088
CHANGELOG.txt
ecrire/inc/presentation_mini.php
ecrire/paquet.xml
SPIP 3.0.19
révision 84541
squelettes-dist/css/clear.css
squelettes-dist/css/form.css
squelettes-dist/css/spip.css
squelettes-dist/css/typo.css
Ce n’est plus spip-contrib.mais contrib.spip
révision 84996
squelettes-dist/formulaires/ecrire_auteur.html
utiliser |ancre_url pour poser une ancre
Ferme le ticket #3272
révision 86810
squelettes-dist/inc-rss-item.html
les urls de la forme http://spip.net/spip.php?page=article&id_article=5427 posent un problème de validation, les liens doivent être de la forme http://spip.net/spip.php?page=article&id_article=5427
Ferme le ticket #3368
révision 87340
squelettes-dist/formulaires/mot_de_passe.php
Gerer une erreur eventuelle sur le formulaire mot de passe au lieu de faire croire que tout s’est bien passe
révisions 87399, 87400, 87854
squelettes-dist/paquet.xml
squelettes-dist/formulaires/mot_de_passe.php
Quand on vient de saisir 2 fois son nouveau mot de passe, on peut faire le cadeau de connexter directement l’utilisateur plutot que lui demander de le saisir une 3eme fois dans le formulaire de login (puisque de toute facon on lui rappelle son login, il a bien tout ce qu’il faut pour se connecter)
révision 88103
squelettes-dist/robots.txt.html
autoriser la lecture de css pour l’évalution du site en "mobile friendly" - https://google.com/webmasters/tools/mobile-friendly/
Fichiers de plugins-dist
BREVES
révision 85789
Tester l’existence du flag exist ET sa valeur
COMPRESSEUR
révisions 86686, 86688
Quand on minifie une CSS squelette, il faut prendre l’url de cette css, et pas l’url de la page courante comme base pour les urls absolues. il faut fournir une url de 1er niveau publique si on est dans le public, et ecrire/ si on est dans ecrire/ puisque le fond css est calculé dans ce cas depuis ecrire/ et donc avec des urls relatives a ecrire/
révision 87125
Un cache CSS qui ne dependait pas du host en cours, et donc qui entrainait parfois des injection croisees de domaine dans les css pour les sites etant visites sur plusieurs domaines
DUMP
révision 85743
Quand on backup un SPIP qui utilise un prefixe de tables différent de ’spip’, l’afficher pour rassurer le webmestre qui sait qu’ il y a un prefixe et qui s’inquiète de ce que SPIP sauvegarde bien les bonnes tables.
révision 85745
Afficher les erreurs rencontrees lors de la sauvegarde au lieu d’un message de reussite en cas d’echec
révision 85750
eviter une erreur fatale eventuelle (si plugin migration present dans une vieille version)
FILTRES_IMAGES
révision 84853
image_recadre peut recadrer une image pour respecter une proportion. Le premier argument est le ratio largeur:hauteur demandé, le second argument est alors un ’+’ pour agrandir avec des bandes ou un ’-’ pour reduire l’image.
Exemple
[(#LOGO_ARTICLE|image_recadre16:9,’-’)]
Permet d’avoir un logo au format 16:9 en recadrant l’image le moins possible.
Cela permet de conserver l’image la plus grande possible qui respecte une proportion.
révision 85973
Il ne s’agit pas de savoir si une methode dont on ignore le nom n’est pas de type private, mais de savoir si la methode rotateImage() existe. Evitons une erreur de type ’Non-static method Imagick::rotateimage() cannot be called statically’ (Merci Philivert)
révision 86211
readfile renvoie false quand le path contient un paramètre (timestamp), comme filesize
révision 89145
Toute petite modification de la couleur recuperee par couleur_extraire => mise a jour du tests
FORUM
révision 85969
pas de raison que les forums privés ne réagissent pas au réglage de taille minimale
révision 86007
ne pas generer une session anonyme a chaque POST de forum mais uniquement si un fichier a ete poste et si c’est une option autorisee
+ generer toute de suite une erreur si un POST a ete fait alors que l’option n’est pas autorisee (car des BOTs qui spamment)
(evite de generer des sessions anonymes en nombre pour rien)
révision 87489
Bugfix : sur les secteurs on affiche une icone pour voir tous les forums proposes sur les articles du secteur mais la page controler_forum n’affichait pas les resultats correspondants
on declare la jointure sur spip_articles pour le critere id_secteur
on filtre les messages sur id_secteur quand il est dans l’URL
on modifie l’url du lien pour passer les bons arguments et arriver sur les messages proposes dont le decompte correspond a ce qui est annonce sur l’icone.
MEDIABOX
révision 84541
Ce n’est plus spip-contrib.mais contrib.spip
révision 84938
utiliser :hover et pas .hover comme selecteur CSS
Ferme le ticket #3278
révision 84939
n’initialiser le padding de la box qu’au premier lancement et pas au chargement de la page car sinon certains navigateurs chargeent les images de background au chargement de la page, meme si la box ne sert jamais
révision 84940
initialisation des dimensions de la box ne se faisait pas dans le cas modalbox, on deplace cette initialisation
version 0.8.9 : il faut aussi définir cette propriété pour cboxLoadedContent (on pourrait l’appliquer directement à tous les éléments contenus dans la box mais ça peut poser problème)
révision 86970
bugfix avec legendes longues sur la mediabox black-simple
MEDIAS
révision 86358
coquille
révision 86681
eviter une erreur si extension n’est pas renseigne (cas tordus)
révision 87248
bugfix formulaire edition sur les modeles emb qui ont du js ou php
révision 87758
Déclarer le pipeline ’renseigner_document’
révision 88861
Vignettes des portfolios en 150x150 (au lieu de 60x60).
révision 88869
Corriger placement des vignettes (ajouter une classe .vignette).
il faut verifier les droits d’associer/dissocier les documents a un objet dans le formulaire editer objet.
Pour cela on cree 2 autorisations associerdocuments et dissocierdocuments qui par defaut reposent sur autoriser(modifier).
+ n’afficher le lien ’modifier’ sur un document que si on a bien le droit de le modifier
Ferme le ticket #3380
MOTS
révision 84552
presenter les groupes dans l’ordre de la numerotation, puis par multi titre si pas de numerotation
révision 85789
Tester l’existence du flag exist ET sa valeur
ORGANISEUR
révision 85122
Chaîne de langue manquante.
révision 85789
Tester l’existence du flag exist ET sa valeur
PORTE_PLUME
révision 84541
Ce n’est plus spip-contrib.mais contrib.spip
REVISIONS
révision 85789
Tester l’existence du flag exist ET sa valeur
révision 86545
Bugfix temporisation 10s sur les revisions enfin trouve : la comparaison 0.0+titre_version < $date etait parfois vrai avec poutant titre_version qui contient $date, on rajoute donc une condition de non egalite au format texte pour exclure ce cas
SITES
révision 84541
Ce n’est plus spip-contrib.mais contrib.spip
révision 85789
Tester l’existence du flag exist ET sa valeur
STATISTIQUES
révision 85114
les vignettes se calculent par leur URL, pas par le nom en clair du site (il est identique pour les sites courants mais pas pour les moteurs de recherche connus)
Ferme le ticket #3263
révision 85789
Tester l’existence du flag exist ET sa valeur
Le header X-Spip-Visites ne fonctionnait plus depuis SPIP 3.0 suite a une salade de variables dans le pipeline affichage_entetes_final. On corrige.
Ajout des moteurs de recherche Wow.com et Assentice.com
SVP
révision 84151
verifier au moment de l’insertion en base si le depot n’y est pas deja, generer une erreur dans le cas contraire
Ferme le ticket #3084
révision 84541
Ce n’est plus spip-contrib.mais contrib.spip
révision 88571
#DESCRIPTION passe déjà par propre, pas la peine de le faire 2 fois.
révision 88974
Par défaut, la recherche des plugins se fait sur tous les états et non plus les états stables.
Une classe nonstable est ajoutée sur les plugins trouvés dont l’état n’est pas stable.
Cela permet de styler ces plugins pour l’instant juste avec une opacity moindre mais on pourra améliorer.
révision 89102
On backporte la fonction de calcul de l’url de démo introduite en 3.1 afin de permettre que les plugins utilise cette nouvelle feature en 3.0 aussi sans poser de souci sur Plugins SPIP.
Pour l’instant étant donné que l’on ne dispose pas d’item de langue demo en 3.0 dans SVP ou dans SPIP on n’affiche pas le lien (à voir avant de releaser)
TEXTWHEEL
révisions 84152, 84162
etre sur de ne pas risquer d’echapper une vraie balise html qui contiendrait un < dans un attribut.
Ferme le ticket #2855
révisions 84170, 84179, 84181, 84182, 84183, 84190
Un premier jeu de tests unitaire de propre() construit a partir du comportement existant.
Chaque fichier .txt contient du texte avec raccourcis SPIP, et le .html du meme nom contient la sortie attendueCe premier jeu de test est execute en lang en pour eviter la prise en charge de raccourcis typo invasifs
Tous les tests ne sont pas OK, car quand la sortie constatee ne semblait pas normale, on a corrige la sortie attendue dans le test.
Notamment les points suivants :
un <quote> commencant par un retour ligne genere un <p><br /> en debut de blockquote
un retour ligne dans une liste ne genere pas d’autobr
un <p>paragraphe</p> html dans une liste SPIP l’interrompt (confirmer que c’est un bug ?)
quelques bugs autour du gras/italique dans le title d’un raccourci lien SPIPA noter aussi les curiosites suivantes, non considerees comme des bugs ici, mais peut etre a discuter :
plusieurs espaces insecables de suite avec le raccourci tilde ou avec sont remplaces par un seul in fine
dans une note, un autolink disparait du title mais pas un lien explicite avec raccourci SPIP
Le raccourci hr ---- n’interrompt pas une liste au contraire du <p>
le raccourci liste tiret-asterisque-espace genere un li qui commence par un espace, et tiret-asterisque seul genere un li qui commence sans espacemais le raccourci tiret-espace ou tiret tout seul generent une puce suivie d’un espace insecable dans les deux cas
A partir de ces tests de base, on va decliner des variantes avec
lang fr chaine avec ponctuation dans les differents textes pour verifier la bonne prise en compte/non prise en compte de la typographie
des modeles de type inline et block dans les differents textes pour verifier que cela ne perturbe pas la sortie.jeu de tests avec un modele inline du type <textwheel1|inline> pour verifier qu’il est bien interprete la ou il faut uniquement, et ne casse pas le paragraphage
Ferme le ticket #2884
révision 86014
la bonne inclusion sur memoization
révision 87162
Si une fonction wrap_embed_html est definie, on l’appelle en lui passant le contenu source et le html qu’on s’apprete a embed dans le contenu riche.
Cette fonction peut etre utilisee pour encapsuler ce contenu dans un markup qui l’indique comme non editable dans un editeur wysiwyg et qui porte la trace du raccourci source pour permettre la conversion html=>raccourcis SPIP
révision 87162
Si une fonction wrap_embed_html est definie, on l’appelle en lui passant le contenu source et le html qu’on s’apprete a embed dans le contenu riche.
Cette fonction peut etre utilisee pour encapsuler ce contenu dans un markup qui l’indique comme non editable dans un editeur wysiwyg et qui porte la trace du raccourci source pour permettre la conversion html=>raccourcis SPIP
révision 87634
Les raccourcis glossaires sont deja personalisables avec une fonction glossaire_xxxx quand on mets une ancre #xxxx sur le raccourci glossaire.
On etend un peu pour que si une ancre inconnue est passee on se rabatte sur la fonction glossaire_ si elle existe (c’est deja elle qui etait appelee si elle existait, en l’absence d’ancre)
Du coup on passe l’ancre en 3eme argument pour que la fonction standard puisse l’utiliser pour savoir quoi faire.
révision 89158
il faut utiliser sql_get_select() pour beneficier de la traduction des noms de table
Ferme le ticket #3412
URLS_ETENDUES
révision 84942
r83376 avait ressucité du code mort, mais manque de chance c’etait un bug en puissance et pas une feature : le resultat de la fonction depend d’un define qui n’est pas un argument de la fonction, on ne peut donc pas memoizer en fonction de ses arguments. Cela empechait la mise a jour des URLs, on retire donc cette appel (go0uz)
révision 84944
version 1.4.25 : passer la taille max des urls propres et arbos à 80 caractères
révision 85789
Tester l’existence du flag exist ET sa valeur
révision 86132
On force partout où cela semble utile une utilisation d’échappements SQL de textes : sql_quote($url_propre, ’’, ’TEXT’)