Compare commits

...

243 Commits

Author SHA1 Message Date
David Prévot 004ab195f3
Drop executable bit 11 months ago
Matthieu Marcillaud be4122e133 Version 4.1.0-rc 11 months ago
Matthieu Marcillaud 4d6be7de20 Report des chaines de langues (Salvatore) 11 months ago
Matthieu Marcillaud 085aa5e551 Up baseline PhpStan 11 months ago
Matthieu Marcillaud 9d912fcfd5 Coding standard 11 months ago
RastaPopoulos 592bc03353 Fix #5069 : quitter la fonction qui gère les variantes de critères de date parce qu'il n'y aurait pas de déclaration dans l'API objet ne doit se faire QUE quand il n'y a PAS de nom de champ directement donné dans le critère lui-même. S'il y a annee_nomprecis, mois_nomprecis, ça doit marcher même sans déclaration. 11 months ago
Cerdic b8ecbb27ff Robustesse des migrations : on ne genere pas le secret_des_auth tant qu'on n'est pas en mesure de faire un backup des cles dans la foulee : 11 months ago
Cerdic bde35e45e2 chaines de langue lors de l'install en cas d'erreur lors de l'initialisation du compte 11 months ago
Matthieu Marcillaud fadeb3ea8e Sécurité des authentifications avec le secret du site (g0uZ) : 11 months ago
Matthieu Marcillaud b9326eec7b Suite de 23994e0b1 : Ne pas mettre de jeton d’url directement en bdd (cas de l’inscription d’auteur ou du changement de mot de passe) 11 months ago
Matthieu Marcillaud 257649aaa8 Ne pas mettre de jeton d’url directement en bdd (cas de l’inscription d’auteur ou du changement de mot de passe) : on le hash avant (g0uZ) 11 months ago
Matthieu Marcillaud 6437b745d0 Chiffrement plus poussé : pad / unpad du message + hash si password (g0uZ) 11 months ago
Matthieu Marcillaud 87fcf64db8 Déplacement de Chiffrer dans ecrire/src en prévision d’un futur autoloader 11 months ago
Matthieu Marcillaud 6f63d4190a Éviter une notice sur erreur de mot de passe 11 months ago
Matthieu Marcillaud 0a93ebdc84 Coding standard 11 months ago
Matthieu Marcillaud 9724c4ac49 Warning en moins dans generer_url_ecrire, depuis generer_url_action si pas de exec dans l’url 11 months ago
Cerdic aea30825f6 Gestion de l'installation : 11 months ago
Cerdic 685bab8d31 Utiliser hash_hmac et hash_equals pour calculer et verifier les jetons d'action - c'est un compromis entre rapidite et securite car utiliser les fonction hasher() et verifier() de Spip\Core\Chiffrer apporterait plus de secu sur ces hash, mais avec un prix performance important (~200ms pour calculer un hash et on peut en avoir N dans une page qui contient N formulaires) 11 months ago
Cerdic 44cd631654 Plus d'alea a fournir dans informer_login() quel que soit le scenario 11 months ago
Cerdic 655092785d Champ `backup_cles` sur spip_auteurs, et `secret_du_site` hors de spip_meta 11 months ago
Cerdic 789a57822b Etre tres prudent sur la generation d'un nouveau secret_des_auth : cela ne peut avoir lieu que si on a plus aucun backup d'aucun webmestre 11 months ago
Matthieu Marcillaud 611278f78b Refactoring de Chiffrer en découppant en plus d’éléments 11 months ago
Cerdic 6595e493ee Issues #5059 #4927 #3824 et #2109 : on reforme la logique du login 11 months ago
Matthieu Marcillaud 77649227c3 Homogénéisation des retours des filtres de dates (string), 11 months ago
Matthieu Marcillaud 55b2ecbeac Notice en moins : a priori lorsque `lang_i18n_{module}_{lang}` n’existe pas 11 months ago
Cerdic 5dfcc6a9a2 Fix #5067 : ne pas se rabattre sur les urls pages si un type d'url a été demandé explicitement (appel depuis urls_transition_retrouver_anciennes_url_propres()) notamment 11 months ago
JamesRezo e279644a88 install_php_version_max 11 months ago
JamesRezo a9541a85a2 rétablir le test sur mbstring.func_overload 11 months ago
JamesRezo eb8c9bf48a fix #5030. en attendant un meilleur mécanisme 11 months ago
Maïeul 024c3de836 `http_img_pack()` peut recevoir une clé `'alternative'` dans son tableau d'option. 11 months ago
Matthieu Marcillaud 3715b75929 Ticket #4519 sur les nomages de listes d’inclusions et d’exclusions. 11 months ago
Matthieu Marcillaud d788167917 Code inutile : magic_quotes_sybase n’existe plus depuis PHP 5.4 12 months ago
Matthieu Marcillaud d1d997ac64 Phpdoc sur certains types 12 months ago
Matthieu Marcillaud a7db072c01 la propriete sousmenu de Bouton est bien un array 12 months ago
Matthieu Marcillaud 58f0b68cb8 Simplifier image_filtrer et ses variadics 12 months ago
JamesRezo b7e89d5971 Fournir un fichier .editorconfig 12 months ago
Matthieu Marcillaud f5cee76e6e Simplifier evaluer_page() en enlevant du code pour PHP < 7.1 12 months ago
Matthieu Marcillaud f954bc36ca Suppression de code mort depuis 11 ans (avant 3.0) 12 months ago
Matthieu Marcillaud 60843f38fb Warning-- en PHP 8.1 12 months ago
Matthieu Marcillaud 97d215c371 Bon emplacement du paramètre serveur dans cet appel de sql_updateq… 12 months ago
Eric Lupinacci 953cde9faa Un return manquant et pas grand chose semblait dépeuplé depuis des lustres... 12 months ago
Eric Lupinacci 8694bf9add Eviter un warning en ajoutant un include manquant 12 months ago
Matthieu Marcillaud 795da87166 Bien transmettre une string à l’ancre de generer_objet_url 12 months ago
Matthieu Marcillaud 8a718e0fc8 `supprimer_tags()` acceptait des array contrairement à ce que supposait son phpdoc, 12 months ago
Matthieu Marcillaud b242975ed2 Version 4.1.0-beta 12 months ago
Matthieu Marcillaud 5e40e271af Ticket #5040 : utiliser une fonction lire_fichier_langue() 12 months ago
Matthieu Marcillaud b2e358122e Coquille dans 9f830f0572 (g0uZ) 12 months ago
George Kandalaft e0ac953762 [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue ar 12 months ago
Matthieu Marcillaud 150b34a50b Coding standard 12 months ago
Matthieu Marcillaud b8639c7f3f Mise à jour de baseline phpstan 12 months ago
Matthieu Marcillaud 3089a9228f Éviter des warnings lorsqu’une inclusion dynamique ne trouve pas son fichier 12 months ago
Matthieu Marcillaud 8f24e0a0d3 Remplacement des call_user_func et call_user_func_array 12 months ago
Matthieu Marcillaud c397b7206f Mise à jour des traductions 12 months ago
JamesRezo de54ecb2e7 fix #5038. Suppression de code mort 12 months ago
David Prévot f15f360d32
Convert to UTF-8 12 months ago
Matthieu Marcillaud e3ddf4fe97 Depuis PHP 5.3.7, la backtrace limite est à 1_000_000 donc bien supérieure 12 months ago
Matthieu Marcillaud cb6d96cb2c Inutile de tester un memory_limit de 16Mo lorsque le défaut est 128Mo de nos jours… 12 months ago
Matthieu Marcillaud e042b94f2f Ticket #5032 : ini_set peut être désactivé sur les hébergements web. 12 months ago
Matthieu Marcillaud d479c27737 Deprecated-- en PHP 8.1 si un idiome de langue n’est pas trouvé 12 months ago
Matthieu Marcillaud 7bffd54916 Version 4.1.0-alpha 12 months ago
Matthieu Marcillaud 47ae905dcc Les tags des différents plugins-dist 12 months ago
Matthieu Marcillaud e2bcc88a42 C’est pour PHP 7.4 mini 12 months ago
Maïeul f7aed37c4a Amélioration du message de retour sur charger_fonction au cas où la 12 months ago
tcharlss cb3969c905 Ticket #5011 : toujours afficher les articles refusés d'une rubrique. 12 months ago
Cerdic a3abc19427 Fix #5019 : si le compteur est negatif alterner aussi dans le tableau sans faire d'erreur + s'assurer qu'un tableau passe en argument est bien un tableau d'index numeriques 12 months ago
Matthieu Marcillaud 3ecb05f00f Ticket #5024 : Deprecated-- en PHP 8.1 1 year ago
Matthieu Marcillaud 14dcc51464 Des tests stricts là où c’est possible dans les autorisations 1 year ago
Matthieu Marcillaud d18fa33bd3 Ticket #5026 : Dans les fonctions d’autorisations, tolérer un $id en chaine. 1 year ago
Matthieu Marcillaud d21b516b0c Deprectaed-- en PHP 8.1 1 year ago
Matthieu Marcillaud 79e66dd7a3 Deprectaed-- en PHP 8.1 1 year ago
Matthieu Marcillaud 49c7bdfdb6 Up baseline phpstan (mais je ne sais pas pourquoi il indique que GdImage manque) 1 year ago
Matthieu Marcillaud 6b8855097d PhpDoc type sur GetPixelcolor 1 year ago
Matthieu Marcillaud fe1b7f16a0 Quelques corrections de PHPDoc / types 1 year ago
Matthieu Marcillaud 9533455cce Pas de type bool uniquement sur autoriser_exception en 4è paramètre car il existe un cas avec string 1 year ago
Matthieu Marcillaud bd71c186ad Quelques corrections de PHPDoc / types 1 year ago
Matthieu Marcillaud ccb22a8904 Quelques corrections de PHPDoc / types 1 year ago
Miguel 72fcbd4bd0 [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue pt 1 year ago
Matthieu Marcillaud ec44293d64 Correction de constantes mal nommées. 1 year ago
Matthieu Marcillaud af64139e3b PHPDoc corrections de certains types 1 year ago
Matthieu Marcillaud b3607e863b PHPDoc moins erroné sur des fonctions sql 1 year ago
Matthieu Marcillaud 7984f7fc85 PHPDoc et appels de 'option' des fonctions sql, notamment sql_serveur ne traite qu’un booleen 1 year ago
Matthieu Marcillaud e4cb8aa125 PHPDoc plus correct du having de certaines fonctions sql_ 1 year ago
Matthieu Marcillaud 52473d98a7 PHPDoc plus correct sur ecrire_meta() 1 year ago
Matthieu Marcillaud 6bfcbfd140 Appeler minifier() si présent, pas compacte() déprécié. 1 year ago
Matthieu Marcillaud 54a67fc195 Des appels à minipres qui suivent le paramètre 'options' 1 year ago
Matthieu Marcillaud e658b44708 Alléger le type du paramètre 'val' de pipeline() 1 year ago
Matthieu Marcillaud 2d289b1609 Correction de quelques appels de fonctions pour respecter le type attendu 1 year ago
Matthieu Marcillaud b047b92807 Correction d’appel à action_converser_post() 1 year ago
Matthieu Marcillaud 27b2ffd2a0 Code mort depuis un bon moment (le plugin CFG n’est plus envisageable) 1 year ago
Cerdic 55cea48066 Fix #5021 et #5022 : 1 year ago
Matthieu Marcillaud 060505ed9c Archiviste sur branche 2.1 1 year ago
Cerdic 1c45267687 deplacement des squelettes de prive/rss vers prive/transmettre/rss et suppression de prive/rss.html 1 year ago
Cerdic 12d41dedd8 Une fonction generer_url_api_low_sec() pour faciliter la generation d'une url low_sec vers transmettre.api 1 year ago
Cerdic f74505147d Une fonction generer_url_api() pour generer une url vers une action api 1 year ago
Cerdic 9a652fb337 Une action api transmettre a utiliser sous la forme transmettre.api/id_auteur/cle/format/fond?... pour remplacer le vieux transmettre.html et les flux RSS lowsec 1 year ago
Cerdic ec051eb51d Fix minipres quand appelee sur une URL avec un path (url arbo, ou url d'une action api) : il faut ajouter un base href pour que les css fonctionnent 1 year ago
Cerdic ad54c90db8 Suite de f38e4b52b 9eeafbb4d et 34710be47 : le login n'est jamais poste dans 'login' (ce qui est un cas d'erreur donc) mais dans new_login 1 year ago
Cerdic a4a78051c8 coquille de copie colle dans 9eeafbb4d (mais c'est moi le responsable, pas b_b) 1 year ago
b_b 31c8d6adf0 bien verifier le droit de modifier le login dans le formulaire_editer_auteur 1 year ago
Maïeul 0f3717737d correction de warning dans `calculer_select()` ne pas chercher un clé dans un tableau vide (cas de certains critères perso, comme par exemple `{evenementrelatif tout}` du plugin agenda. 1 year ago
Matthieu Marcillaud a7ac7e75b5 Les branches des différents plugins dist 1 year ago
Matthieu Marcillaud dba7b75d72 Ces 2 fichiers ne sont plus utilisés depuis 77a4589290ca7 (10 ans) 1 year ago
Matthieu Marcillaud 3201378dad Pas d’affichage inutile avant minipres(). 1 year ago
Matthieu Marcillaud d3ecb11455 PHP 8.1 Deprecated-- sur tester_redirection, lorsque quete_virtuel renvoie null… 1 year ago
Matthieu Marcillaud 02b11e997c Éviter une notice sur un appel erroné de $row dans formulaires_editer_objet_charger(). 1 year ago
Matthieu Marcillaud 2268c9b2a2 PHP 8.1 deprecated-- sur debug_backtrace(). 1 year ago
Matthieu Marcillaud afcd40e729 Assouplir trouver_objet_exec() car il y a trop d’appels dans la nature avec null 1 year ago
Matthieu Marcillaud d9afd7b346 Le fichier de DTD de paquet était erronné suite à d046f15e03 1 year ago
Matthieu Marcillaud 272c749c9a Éviter des notices PHP si un plugin.xml était mal formé et que 1 year ago
Matthieu Marcillaud 28f752d6bf PHP 8.1 deprecated-- : éviter null sur trim() 1 year ago
JamesRezo ab59f05ccd feat(header_silencieux) : ajout et application du filtre |header_silencieux (#5010) 1 year ago
Matthieu Marcillaud 86a84a7c6d Corriger `#LESAUTEURS` et `#URL_SITE` qui ne fonctionnaient plus suite à une 1 year ago
Cerdic 9bf89051f2 Une fonction infos_image() qui fait un peu plus que taille_image() en recupererant en meme temps le poids du fichier si possible (0 sinon), y compris en faisant une copie locale. Le filtre historique taille_image() utilise cette fonction et on introduit un filtre poids_image() que l'on utilise dans formulaires/inc-apercu-logo.html pour pouvoir afficher le poids des logos distants egalement 1 year ago
Matthieu Marcillaud 190d73cdde Url de git.spip.net 1 year ago
Matthieu Marcillaud b60349647c Bien passer le bon type à generer_objet_url() 1 year ago
Eric Lupinacci 921fec11e8 Amélioration de la correction précédente 1 year ago
Eric Lupinacci 6ee7bc67c5 Filesize merde sur une url distante: on désactive donc l'appel dans ce cas. 1 year ago
Matthieu Marcillaud a90c3c4f7f PHP 8.1 Deprecated-- sur le filtre explode s’il reçoit null… 1 year ago
Matthieu Marcillaud 1bc8daf893 PHP 8.1 Deprecated--, sans SVP, éviter urldecode(null) 1 year ago
Matthieu Marcillaud 8e96c3c56a PHP 8.1 : Pas de strlen sur null (sur la page sommaire publique) 1 year ago
Matthieu Marcillaud 24fa887d0d Tolérance finalement sur le typage du premier paramètre (int $id, int $id_objet) 1 year ago
Matthieu Marcillaud e7e916e084 Bon typage de l’appel à controles_md5() sur un cas tordu dans formulaires_editer_objet_charger. 1 year ago
Matthieu Marcillaud 3cc02a5b80 PHP 8.1 / mysqli , on try / catch aussi sur la retentative de requête en cas de 'Gone away' 1 year ago
Matthieu Marcillaud a4fdb45195 PHP 8.1 : Capturer une éventuelle exception mysqli aussi sur l’insertion en base 1 year ago
Matthieu Marcillaud 1356d316f8 Deprecated-- en PHP 8.1 : ne pas tenter un unserialize(null) 1 year ago
Matthieu Marcillaud ed419dba52 La fonction form_action, appelée par `#ACTION_FORMULARE{#ENV{action}}` 1 year ago
Matthieu Marcillaud 2db0be0c55 Certains appels aux anciennes fonctions d’URL envoyait "" pour `$id_objet` 1 year ago
Cerdic c0314fd593 gerer les cas de null dans les fonction de compat 1 year ago
Cerdic c7f918d84f typage des fonctions generer_objet_info et generer_objet_introduction 1 year ago
Cerdic 32acf43c0f Typage de la fonction generer_objet_lien() 1 year ago
Cerdic 25baacac70 Typage des fonction generer_objet_url_ecrire et generer_objet_url_ecrire_edit - on en profite pour normaliser la liste des arguments, en particulier generer_objet_url_ecrire() prend id en premier comme toutes les fonction generer_objet_url_...() 1 year ago
Cerdic 302c49dd6a Typage de la fonction generer_objet_url_absolue() qui prend la meme signature que generer_objet_url() par consistance 1 year ago
Cerdic 7406ba2593 Mieux typer la fonction generer_objet_url() : on en profite pour separer public et connect en 2 arguments distincts, meme si c'est plus long a ecrire (vive les arguments nommes) 1 year ago
b_b 3c0e7c334b update phpstan baseline suite à #4875 1 year ago
Cerdic 90293ab5e8 La fonction de decodage des urls attendue s'appelle maintenant urls_xxxx_decoder_url[_dist]() ce qui evite toute confusion avec l'ancienne fonction urls_xxxx_dist() et est plus clair. 1 year ago
Cerdic b5339459b7 Conventions d'ecriture 1 year ago
Cerdic c50c688c6a Renommer fonction de transition d'url depuis propres et en ajouter une autre pour les transitions depuis html 1 year ago
Cerdic 1892adaf63 Deplacer le bloc de transition depuis des anciennes urls propres/arbos dans une fonction commune, car il est reutilise dans plusieurs module url 1 year ago
Cerdic 130b6056d9 Preciser la version SPIP à partir de laquelle on est deprecated 1 year ago
Cerdic 50b0f952cd Remise au propre de urls/page pour separer la fonction de decodage de la fonction generer et typage des arguments et retour des fonctions 1 year ago
Cerdic c1abd409e5 Une fonction charger_fonction_url() qui permet de trouver la fonction pour generer l'url d'un objet, d'une page ou de decoder une url selon le type d'url active 1 year ago
Cerdic 334d137817 Issue #3311 : renommer les fonctions 1 year ago
Cerdic 1cb8659b84 Issue #3311 : renommer les fonctions 1 year ago
Cerdic d15905669e Issue #3311 : renommer les fonctions 1 year ago
Cerdic 71ae1500b0 Code mort : les fonctions generer_ur_xxxx sont appelees directement par les fonctions _generer_url_{typeurl}() qui ont une signature complete ($id, $args, $ancre) et on a plus a gerer l'appel des vieilles fonction d'URL SPIP < 2 ici 1 year ago
b_b 04d2a05245 retrait du code inutile de #FORMULAIRE_CONFIGURER_METAS 1 year ago
b_b 60e31710da Boucles DATA : permettre d'utiliser les caractères :_-. dans un critère `{par xxx}` 1 year ago
JLuc 0ae8e34bfd Autoriser d'autres espaces que l'espace dans les critères {a,b} - fixes #4945 1 year ago
David Prévot 7d1d7579a2 No reference to jquery-ui.css now gone 1 year ago
Cerdic ca21acd446 Ameliorer les logs de recuperer_url() pour faciliter le debug 1 year ago
Cerdic 5ba670f027 Refactoring de la gestion des options headers/datas de recuperer_url() pour mieux gerer les sequences POST => 301 + Location => GET sur la nouvelle URL 1 year ago
Matthieu Marcillaud 42b7904f8a Éviter une erreur d’exécution sur l’appel à LOGO_DOCUMENT si pas de document trouvé 1 year ago
Matthieu Marcillaud b2f2380e86 Pas de lien inutile vers code.spip.net 1 year ago
Matthieu Marcillaud b5065b9a58 Ordonnancement de composer.json (via ergebnis/composer-normalize et composer normalize) 1 year ago
Matthieu Marcillaud 1c51476e7b Oups, tolérer tous les PHP 7.4 :). 1 year ago
Matthieu Marcillaud 3575fb1dab Mise à jour de la baseline de phpstan. Il prend maintenant en compte les function_exists() entre autres. 1 year ago
Matthieu Marcillaud ab3df24839 Bump de phpstan + indication du require à PHP et suggest des extensions. 1 year ago
JLuc c5e084b09e $notifications a besoin du nom - fixes #4996 1 year ago
Cerdic 97f3d5ea3b Mise a jour de jQuery forms en version 4.3.0 + fix issue 464 / PR 586 1 year ago
RealET fffff98409 [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue en 1 year ago
Matthieu Marcillaud 65c7d7f423 Alléger aussi le type sur vider_attribut. 1 year ago
Matthieu Marcillaud 1691284896 Tolérance pour |inserer_attribut sur les appels avec une source `null` 1 year ago
Matthieu Marcillaud 25861b702b Avec toutes les modifications faites pour PHP 8.1, il faut invalider le code 1 year ago
Matthieu Marcillaud e4a3b17213 Suppression de la compatibilité jQuery.cookie ou $.cookie 1 year ago
Matthieu Marcillaud af9197cb54 JS Cookie passe en version 3.0.1 1 year ago
Matthieu Marcillaud 11f8d88629 jQuery.form.js en version 4.3.0 1 year ago
Matthieu Marcillaud 69d87deca2 Sortable.js en version 1.14.0 1 year ago
Matthieu Marcillaud 1b45a20321 Oups : Rector passe gentiment les constantes en majuscule… mais elles sont sensibles à la casse. Comme celles là sont publiques, on laisse comme avant 1 year ago
Matthieu Marcillaud 7c506a022d Oups… code de debug 1 year ago
Matthieu Marcillaud f30f279b70 Quelques arobases en moins 1 year ago
Matthieu Marcillaud 548ed0e4b6 PHP 8.1 : Éviter une erreur avec redirect null sur traiter_appels_actions() 1 year ago
Matthieu Marcillaud 66ec71803d Compat PHP 8.1 : éviter une erreur lorsqu’une balise dynamique demande un argument absent 1 year ago
Matthieu Marcillaud 4ccfda6be9 Des corrections suite au passage de Rector. 1 year ago
Matthieu Marcillaud 35c4c206c5 Rector sur config/ avec config PHP 7.4 1 year ago
Matthieu Marcillaud 5146d68d59 Rector sur ecrire/public (le reste) avec config PHP 7.4 1 year ago
Matthieu Marcillaud 94f4d13c2b Instruction spécifique sinon Rector essaie d’enlever le reset précédent sans pouvoir, lors de la passe \Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector::class 1 year ago
Matthieu Marcillaud dd3abb34f1 Rector sur ecrire/public/composer.php (une partie) avec config PHP 7.3 1 year ago
Matthieu Marcillaud 5caeec4c74 Rector sur ecrire/public (une partie) avec config PHP 7.4 1 year ago
Matthieu Marcillaud 33f37523d4 Rector sur ecrire/ (racine) avec config PHP 7.4 1 year ago
Matthieu Marcillaud dc7eaa81d4 Rector sur ecrire/install avec config PHP 7.4 1 year ago
Matthieu Marcillaud 513b2f10b9 Un try/catch sur le json decode de l’iterateur de boucle DATA json. 1 year ago
Matthieu Marcillaud cc518f97aa Rector sur ecrire/exec avec config PHP 7.4 1 year ago
Matthieu Marcillaud a1df6891ff Rector sur ecrire/urls avec config PHP 7.4 1 year ago
Matthieu Marcillaud fb8afd99b1 Simplifier urls_page_dist() (PHP 7.4+) 1 year ago
Matthieu Marcillaud 568ff4eae3 Rector sur ecrire/xml avec config PHP 7.4 1 year ago
Matthieu Marcillaud ed28891584 Rector sur ecrire/{plugins,req} avec config PHP 7.4 1 year ago
Matthieu Marcillaud 0919b66673 Rector sur ecrire/{install,iterateur,maj} avec config PHP 7.4 1 year ago
Matthieu Marcillaud d27468ab6c Rector sur ecrire/inc avec config PHP 7.4 1 year ago
Matthieu Marcillaud 1247a829a3 Rector sur ecrire/{exec,genie} avec config PHP 7.4 1 year ago
Matthieu Marcillaud 8cc7909a0c Rector sur ecrire/{auth,balise,base} avec config PHP 7.4 1 year ago
Matthieu Marcillaud ac4c801d96 Rector sur ecrire/action avec config PHP 7.4 1 year ago
Matthieu Marcillaud 2325f0e17d Rector sur prive/ avec config PHP 7.4 1 year ago
Matthieu Marcillaud 6c993902e6 Des simplifications de certains isset. 1 year ago
Matthieu Marcillaud 7b18b8be6a SPIP 4.1 nécessitera php 7.4.0 minimum. 1 year ago
Matthieu Marcillaud 924565ddaf Être plus tolérant avec le type de |attribut_html : on tolère null en entrée, 1 year ago
Matthieu Marcillaud ce5c5aef5c Éviter un warning si la globale profondeur_url n’est pas ou pas encore définie. 1 year ago
Matthieu Marcillaud b08ca7db15 Lorsqu’une erreur provient sur l’écriture d’un fichier et que 1 year ago
Matthieu Marcillaud 1a5dae79c0 PHP 8.1 #4968 : Deprecated-- sur vider_url et presenter_contexte 1 year ago
Matthieu Marcillaud a2637fde08 PHP 8.1 #4968 : Deprecated-- sur set_spip_doc et get_spip_doc en tolérant une entrée null. 1 year ago
Matthieu Marcillaud 1b1a95c148 PHP 8.1 #4968 : Deprecated-- sur filtre match() avec texte null. 1 year ago
Matthieu Marcillaud b52e6f0ed7 Pas d’espace avant le : du return type. 1 year ago
Matthieu Marcillaud f3361f0ee1 Opérateurs d’égalité strict dans trouver_objet_exec() 1 year ago
Matthieu Marcillaud d257a79562 PHP 8.1 #4968 : Deprecated-- sur spip_mysql_cite() si valeur null; 1 year ago
Matthieu Marcillaud 6aa0f802c9 PHP 8.1 #4968 : Deprecated-- sur controler_md5() si valeur null, + typage. 1 year ago
Matthieu Marcillaud 2325632c62 PHP 8.1 #4968 : Deprecated-- sur suppmirer_tags(). Il peut recevoir null dans certains cas. 1 year ago
Matthieu Marcillaud b10af4a766 Éviter d’appeler lister_tables_objets_sql avec une chaine vide. 1 year ago
Matthieu Marcillaud a23333a326 PHP 8.1 #4968 : Deprecated-- Éviter d’appeler table_objet_sql() avec null. On ajoute aussi un peu de typage. 1 year ago
Matthieu Marcillaud 5f13efb4e0 PHP 8.1 #4986 : Typer `string` les paramètres $connect dans les fonctions, puisque c’est ce qui est attendu. 1 year ago
Matthieu Marcillaud aba5ad38a6 PHP 8.1 #4968 : Deprecated-- sur les critères optionnels {truc ?}. 1 year ago
Matthieu Marcillaud 52bb9a36f8 PHP 8.1 #4968 : Attraper les exceptions mysqli. Il faudrait aller plus loin en forçant pour PHP < 8.1 les execptions de mysqli via mysqli_report(), 1 year ago
Matthieu Marcillaud d649660de5 PHP 8.1 #4968 : Deprecated-- les classes (ici d’itérateurs) qui étendent certaines méthodes doivent avoir une signature équivalente à la méthode étendue. 1 year ago
Matthieu Marcillaud 01d6cd4dce PHP 8.1 #4968 : deprecated-- sur des fonctions de textes 1 year ago
Matthieu Marcillaud ce9510b0f0 Typage des fonctions d’autorisations 1 year ago
Matthieu Marcillaud 520e1ea06e Typage sur interprete_argument_balise() 1 year ago
Matthieu Marcillaud f20bcafd7a Typage de objet_type() 1 year ago
Matthieu Marcillaud 2a86b92f63 Typage sur ratio_passe_partout() et _image_ratio(). 1 year ago
Matthieu Marcillaud f6cf9eddc7 PHP 8.1 #4968 : Deprecated-- en relation avec `null` 1 year ago
b_b 2056af7a2b fix coding standards 1 year ago
Cerdic 039abd60ed Fix #4980 : eviter des warning sur echec de recuperer_url() 1 year ago
Cerdic ae80343e01 Fix #4982 : tester l'existence de PRIMARY KEY sur arrivee et depart 1 year ago
Cerdic 306975690f Ne pas stocker formulaire_action_sign dans les configurations des plugins... (hum) 1 year ago
George Kandalaft 046ed25da8 [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue ar 1 year ago
b_b d020420980 typo de phpdoc 1 year ago
Cerdic 491469b326 appliquer rawurlencode() aussi sur les tableaux qu'on passe en argument de parametre_url() #4819 1 year ago
b_b 3bb7a84736 la fonction random() n'existe pas 1 year ago
b_b e49a3158b4 revert !486 & d8d83b4ce5 puisque generer_htpass() delegue à la fonction inc_generer_htpass_dist() si elle existe 1 year ago
b_b d8d83b4ce5 warning -- sur generer_htpass 1 year ago
David Prévot 23131ebae7 Convert to UTF-8 1 year ago
David Prévot 50b3edc1a8
Drop executable bit 1 year ago
b_b 6804184c60 phpstan baseline, une erreur de moins 1 year ago
b_b 59da9492a0 déplacer corriger_extension() du plugin medias vers inc/documents du core 1 year ago
b_b 10fe4dddf4 prise en charge des fichier .jpeg lors de l'ajout d'un document distant 1 year ago
Matthieu Marcillaud 545544616d Ticket #4974 : proposition pour ne pas créer d’erreurs SQL simplement 1 year ago
Matthieu Marcillaud 8fce1d738c Comparaisons strictes dans copie_locale() 1 year ago
Matthieu Marcillaud 207ba2e833 Éviter quelques @ dans le code. 1 year ago
Matthieu Marcillaud 2bd61ac34a Indentation 1 year ago
Matthieu Marcillaud 5478ae4dc0 Fix erreur fatale dans f32c85919 1 year ago
Miguel 785312a79d [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue pt 1 year ago
b_b 0496670f25 bugfix : passer la bonne variable à generer_htpass() 1 year ago
MathieuAlphamosa f32c859197 Journalisation : ajout de l'id et du nom de l'auteur, correction du message. fix #4913 (#4933) 1 year ago
Cerdic 9cd19c52aa Eviter une indefinie si get_spip_script() est appelé depuis mes_options, avant que la constante _SPIP_SCRIPT soit definie 1 year ago
b_b 6e0488a683 rétablir le traitement _TRAITEMENT_TYPO_SANS_NUMERO (multi, supprimer_numero, etc) sur la balise #NOM des auteurs 1 year ago
Cerdic 1206050cf3 sur certains sites on veut absolument garder certains caches on peut donc inhiber la purge de ces répertoires pour eviter tout probleme 1 year ago
  1. 20
      .editorconfig
  2. 2
      INSTALL.txt
  3. 24
      composer.json
  4. 4
      config/ecran_securite.php
  5. 2
      ecrire/action/ajouter_lien.php
  6. 107
      ecrire/action/api_transmettre.php
  7. 2
      ecrire/action/converser.php
  8. 8
      ecrire/action/cookie.php
  9. 2
      ecrire/action/debloquer_edition.php
  10. 2
      ecrire/action/desinstaller_plugin.php
  11. 27
      ecrire/action/editer_article.php
  12. 12
      ecrire/action/editer_auteur.php
  13. 14
      ecrire/action/editer_liens.php
  14. 20
      ecrire/action/editer_logo.php
  15. 25
      ecrire/action/editer_objet.php
  16. 8
      ecrire/action/editer_rubrique.php
  17. 84
      ecrire/action/inscrire_auteur.php
  18. 4
      ecrire/action/instituer_langue_objet.php
  19. 2
      ecrire/action/instituer_langue_rubrique.php
  20. 2
      ecrire/action/instituer_objet.php
  21. 4
      ecrire/action/logout.php
  22. 7
      ecrire/action/menu_rubriques.php
  23. 7
      ecrire/action/redirect.php
  24. 2
      ecrire/action/supprimer_lien.php
  25. 8
      ecrire/action/tester.php
  26. 2
      ecrire/action/tester_taille.php
  27. 16
      ecrire/auth/ldap.php
  28. 303
      ecrire/auth/spip.php
  29. 58
      ecrire/balise/formulaire_.php
  30. 2
      ecrire/balise/formulaire_admin.php
  31. 4
      ecrire/balise/formulaire_inscription.php
  32. 6
      ecrire/balise/info_.php
  33. 4
      ecrire/balise/logo_.php
  34. 5
      ecrire/balise/menu_lang.php
  35. 7
      ecrire/balise/menu_lang_ecrire.php
  36. 14
      ecrire/balise/url_.php
  37. 4
      ecrire/balise/url_logout.php
  38. 121
      ecrire/base/abstract_sql.php
  39. 113
      ecrire/base/connect_sql.php
  40. 2
      ecrire/base/delete_all.php
  41. 39
      ecrire/base/dump.php
  42. 72
      ecrire/base/objets.php
  43. 29
      ecrire/base/trouver_table.php
  44. 14
      ecrire/base/upgrade.php
  45. 6
      ecrire/exec/403.php
  46. 6
      ecrire/exec/404.php
  47. 23
      ecrire/exec/admin_plugin.php
  48. 1
      ecrire/exec/base_repair.php
  49. 4
      ecrire/exec/demande_mise_a_jour.php
  50. 6
      ecrire/exec/puce_statut.php
  51. 2
      ecrire/genie/mail.php
  52. 1
      ecrire/genie/maintenance.php
  53. 8
      ecrire/genie/mise_a_jour.php
  54. 6
      ecrire/genie/optimiser.php
  55. 70
      ecrire/inc/acces.php
  56. 4
      ecrire/inc/actions.php
  57. 4
      ecrire/inc/admin.php
  58. 36
      ecrire/inc/auth.php
  59. 1229
      ecrire/inc/autoriser.php
  60. 5
      ecrire/inc/bandeau.php
  61. 6
      ecrire/inc/boutons.php
  62. 17
      ecrire/inc/charsets.php
  63. 8
      ecrire/inc/chercher_logo.php
  64. 5
      ecrire/inc/chercher_rubrique.php
  65. 20
      ecrire/inc/chiffrer.php
  66. 10
      ecrire/inc/commencer_page.php
  67. 156
      ecrire/inc/config.php
  68. 2
      ecrire/inc/cookie.php
  69. 6
      ecrire/inc/csv.php
  70. 14
      ecrire/inc/cvt_configurer.php
  71. 12
      ecrire/inc/cvt_multietapes.php
  72. 106
      ecrire/inc/distant.php
  73. 61
      ecrire/inc/documents.php
  74. 132
      ecrire/inc/editer.php
  75. 8
      ecrire/inc/envoyer_mail.php
  76. 4
      ecrire/inc/exporter_csv.php
  77. 423
      ecrire/inc/filtres.php
  78. 7
      ecrire/inc/filtres_alertes.php
  79. 2
      ecrire/inc/filtres_boites.php
  80. 170
      ecrire/inc/filtres_dates.php
  81. 27
      ecrire/inc/filtres_ecrire.php
  82. 53
      ecrire/inc/filtres_images_lib_mini.php
  83. 10
      ecrire/inc/filtres_images_mini.php
  84. 6
      ecrire/inc/filtres_mime.php
  85. 13
      ecrire/inc/filtres_mini.php
  86. 28
      ecrire/inc/filtres_selecteur_generique.php
  87. 5
      ecrire/inc/flock.php
  88. 3
      ecrire/inc/genie.php
  89. 2
      ecrire/inc/headers.php
  90. 28
      ecrire/inc/idna_convert.class.php
  91. 2
      ecrire/inc/importer_csv.php
  92. 3
      ecrire/inc/informer.php
  93. 18
      ecrire/inc/install.php
  94. 22
      ecrire/inc/invalideur.php
  95. 4
      ecrire/inc/json.php
  96. 21
      ecrire/inc/lang.php
  97. 5
      ecrire/inc/layer.php
  98. 47
      ecrire/inc/lien.php
  99. 10
      ecrire/inc/livrer_fichier.php
  100. 8
      ecrire/inc/log.php
  101. Some files were not shown because too many files have changed in this diff Show More

20
.editorconfig

@ -0,0 +1,20 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.{yml,yaml,md}]
indent_style = space
indent_size = 2
[*.{xml,xml.dist,json}]
indent_style = space
indent_size = 4

2
INSTALL.txt

@ -3,7 +3,7 @@
Rendez-vous avec votre navigateur sur la page ecrire/
pour commencer l'installation de votre site SPIP.
Votre serveur Web doit offrir PHP (version >= 7.3.0) et MySQL 5 ou SQLite 3.
Votre serveur Web doit offrir PHP (version >= 7.4.0) et MySQL 5 ou SQLite 3.
Pour permettre a SPIP de gerer de belles adresses (URL),
vous devrez probablement renommer le fichier htaccess.txt

24
composer.json

@ -1,8 +1,20 @@
{
"require": {
"php": "^7.4 || ^8.0",
"ext-xml": "*",
"ext-zip": "*"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
"spip/coding-standards": "^1.2",
"phpstan/phpstan": "^0.12.96"
"phpstan/phpstan": "^1.4",
"spip/coding-standards": "^1.2"
},
"suggest": {
"ext-curl": "*",
"ext-gd": "^2",
"ext-mysqli": "*",
"ext-pdo": "*",
"ext-pdo_sqlite": "*"
},
"archive": {
"exclude": [
@ -20,5 +32,13 @@
"!tmp/remove.txt",
"!tmp/CACHEDIR.TAG"
]
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
},
"platform": {
"php": "7.4.27"
}
}
}

4
config/ecran_securite.php

@ -538,7 +538,7 @@ if (
*/
if (
isset($_REQUEST['op']) and isset($_REQUEST['page'])
and $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op'])
and $_REQUEST['op'] !== preg_replace('/[^\\-\w]/', '', $_REQUEST['op'])
) {
$ecran_securite_raison = 'op';
}
@ -693,7 +693,7 @@ if (
and $load = floatval($load))
)
and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite
and rand(0, $load * $load) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD
and random_int(0, $load * $load) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD
) {
//https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot
header("HTTP/1.0 429 Too Many Requests");

2
ecrire/action/ajouter_lien.php

@ -40,7 +40,7 @@ function action_ajouter_lien_dist($arg = null) {
}
$arg = explode('-', $arg);
list($objet_source, $ids, $objet_lie, $idl) = $arg;
[$objet_source, $ids, $objet_lie, $idl] = $arg;
include_spip('action/editer_liens');
objet_associer([$objet_source => $ids], [$objet_lie => $idl]);

107
ecrire/action/api_transmettre.php

@ -0,0 +1,107 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Gestion de l'action activer_plugins
*
* @package SPIP\Core\Action
**/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function action_api_transmettre_dist($arg = null) {
// Obtenir l'argument 'id_auteur/cle/format/fond'
if (is_null($arg)) {
$arg = _request('arg');
}
$args = explode('/', $arg);
if (count($args) !== 4) {
action_api_transmettre_fail($arg);
}
[$id_auteur, $cle, $format, $fond] = $args;
$id_auteur = intval($id_auteur);
if (preg_match(',[^\w\\.-],', $format)) {
action_api_transmettre_fail("format $format ??");
}
if (preg_match(',[^\w\\.-],', $fond)) {
action_api_transmettre_fail("fond $fond ??");
}
// verifier la cle
//[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})]
//[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})]
$qs = $_SERVER['QUERY_STRING'];
// retirer action et arg de la qs
$contexte = [];
parse_str($qs, $contexte);
foreach ($contexte as $k => $v) {
if (in_array($k, ['action', 'arg', 'var_mode'])) {
unset($contexte[$k]);
}
}
$qs = http_build_query($contexte);
if (!securiser_acces_low_sec(intval($id_auteur), $cle, "transmettre/$format", $fond, $qs)) {
// si le autoriser low_sec n'est pas bon, on peut valider l'appel si l'auteur est identifie
include_spip('inc/autoriser');
$autoriser_type = preg_replace(',\W+,', '', "_{$format}{$fond}");
if (
!$id_auteur
or empty($GLOBALS['visiteur_session']['id_auteur'])
or $GLOBALS['visiteur_session']['id_auteur'] != $id_auteur
or !autoriser('transmettre', $autoriser_type, $id_auteur)
) {
action_api_transmettre_fail("auth QS $qs ??");
}
}
$contexte['id_auteur'] = $id_auteur;
$fond = "transmettre/$format/$fond";
if (!trouver_fond($fond)) {
$fond = "prive/$fond";
}
if (!trouver_fond($fond)) {
action_api_transmettre_fail("fond $fond ??");
}
$res = recuperer_fond($fond, $contexte, ['raw' => true]);
if (!empty($res['entetes'])) {
foreach ($res['entetes'] as $h => $v) {
header("$h: $v");
}
}
$res = ltrim($res['texte']);
if (empty($res)) {
spip_log("$arg $qs resultat vide", 'transmettre' . _LOG_INFO_IMPORTANTE);
}
echo $res;
exit();
}
function action_api_transmettre_fail($arg) {
include_spip('inc/minipres');
echo minipres(_T('info_acces_interdit'), $arg);
exit;
}

2
ecrire/action/converser.php

@ -69,7 +69,7 @@ function action_converser_changer_langue($update_session) {
]);
}
}
action_converser_post($lang, 'spip_lang_ecrire');
action_converser_post($lang, true);
}
return $lang;

8
ecrire/action/cookie.php

@ -43,10 +43,10 @@ function action_cookie_dist($set_cookie_admin = null, $change_session = null) {
// La cible de notre operation de connexion
$url = securiser_redirect_action(_request('url'));
$redirect = $url ? $url : generer_url_ecrire('accueil');
$redirect = $url ?: generer_url_ecrire('accueil');
$redirect_echec = _request('url_echec');
if (!isset($redirect_echec)) {
if (strpos($redirect, _DIR_RESTREINT_ABS) !== false) {
if (strpos($redirect, (string) _DIR_RESTREINT_ABS) !== false) {
$redirect_echec = generer_url_public('login', '', true);
} else {
$redirect_echec = $redirect;
@ -81,7 +81,7 @@ function action_cookie_dist($set_cookie_admin = null, $change_session = null) {
_T('login_retour_site'),
'url=' . rawurlencode($redirect),
_T('login_nouvelle_tentative'),
(strpos($url, _DIR_RESTREINT_ABS) !== false)
(strpos($url, (string) _DIR_RESTREINT_ABS) !== false)
);
}
} else {
@ -99,7 +99,7 @@ function action_cookie_dist($set_cookie_admin = null, $change_session = null) {
);
}
} else {
$cook = isset($_COOKIE['spip_admin']) ? $_COOKIE['spip_admin'] : '';
$cook = $_COOKIE['spip_admin'] ?? '';
// Suppression cookie d'admin ?
if ($set_cookie_admin == 'non') {
if ($cook) {

2
ecrire/action/debloquer_edition.php

@ -40,7 +40,7 @@ function action_debloquer_edition_dist() {
debloquer_tous($GLOBALS['visiteur_session']['id_auteur']);
} else {
$arg = explode('-', $arg);
list($objet, $id_objet) = $arg;
[$objet, $id_objet] = $arg;
debloquer_edition($GLOBALS['visiteur_session']['id_auteur'], $id_objet, $objet);
}
}

2
ecrire/action/desinstaller_plugin.php

@ -34,7 +34,7 @@ function action_desinstaller_plugin_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
list($dir_plugins, $plugin) = explode('::', $arg);
[$dir_plugins, $plugin] = explode('::', $arg);
$dir_type = '_DIR_PLUGINS';
if (defined('_DIR_PLUGINS_SUPPL') and $dir_plugins == _DIR_PLUGINS_SUPPL) {
$dir_type = '_DIR_PLUGINS_SUPPL';

27
ecrire/action/editer_article.php

@ -29,7 +29,6 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* à condition que la rubrique parente (id_rubrique) puisse être obtenue
* (avec _request())
*
* @link https://code.spip.net/@action_editer_article_dist
* @uses article_inserer()
* @uses article_modifier()
*
@ -97,9 +96,9 @@ function article_modifier($id_article, $set = null) {
include_spip('inc/modifier');
include_spip('inc/filtres');
$c = collecter_requests(
// white list
// include list
objet_info('article', 'champs_editables'),
// black list
// exclude list
['date', 'statut', 'id_parent'],
// donnees eventuellement fournies
$set
@ -181,8 +180,8 @@ function article_inserer($id_rubrique, $set = null) {
// eviter $id_secteur = NULL (erreur sqlite) si la requete precedente echoue
// cas de id_rubrique = -1 par exemple avec plugin "pages"
$id_secteur = isset($row['id_secteur']) ? $row['id_secteur'] : 0;
$lang_rub = isset($row['lang']) ? $row['lang'] : '';
$id_secteur = $row['id_secteur'] ?? 0;
$lang_rub = $row['lang'] ?? '';
$lang = '';
$choisie = 'non';
@ -210,7 +209,7 @@ function article_inserer($id_rubrique, $set = null) {
if (!$lang) {
$choisie = 'non';
$lang = $lang_rub ? $lang_rub : $GLOBALS['meta']['langue_site'];
$lang = $lang_rub ?: $GLOBALS['meta']['langue_site'];
}
$champs = [
@ -299,19 +298,17 @@ function article_instituer($id_article, $c, $calcul_rub = true) {
$date_ancienne = $date = $row['date'];
$champs = [];
$d = isset($c['date']) ? $c['date'] : null;
$s = isset($c['statut']) ? $c['statut'] : $statut;
$d = $c['date'] ?? null;
$s = $c['statut'] ?? $statut;
// cf autorisations dans inc/instituer_article
if ($s != $statut or ($d and $d != $date)) {
if (autoriser('publierdans', 'rubrique', $id_rubrique)) {
$statut = $champs['statut'] = $s;
} elseif (autoriser('modifier', 'article', $id_article) and $s != 'publie') {
$statut = $champs['statut'] = $s;
} else {
if (autoriser('modifier', 'article', $id_article) and $s != 'publie') {
$statut = $champs['statut'] = $s;
} else {
spip_log("editer_article $id_article refus " . join(' ', $c));
}
spip_log("editer_article $id_article refus " . join(' ', $c));
}
// En cas de publication, fixer la date a "maintenant"
@ -366,7 +363,7 @@ function article_instituer($id_article, $c, $calcul_rub = true) {
]
);
if (!count($champs)) {
if (!(is_countable($champs) ? count($champs) : 0)) {
return '';
}
@ -463,7 +460,7 @@ function editer_article_heritage($id_article, $id_rubrique, $statut, $champs, $c
if ($cond) {
include_spip('inc/rubriques');
$postdate = ($GLOBALS['meta']['post_dates'] == 'non' and isset($champs['date']) and (strtotime($champs['date']) < time())) ? $champs['date'] : false;
calculer_rubriques_if($id_rubrique, $champs, $statut, $postdate);
calculer_rubriques_if($id_rubrique, $champs, ['statut_ancien' => $statut], $postdate);
}
}

12
ecrire/action/editer_auteur.php

@ -90,7 +90,7 @@ function auteur_inserer($source = null, $set = null) {
// Ce qu'on va demander comme modifications
$champs = [];
$champs['source'] = $source ? $source : 'spip';
$champs['source'] = $source ?: 'spip';
$champs['login'] = '';
$champs['statut'] = '5poubelle'; // inutilisable tant qu'il n'a pas ete renseigne et institue
@ -153,9 +153,9 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
include_spip('inc/modifier');
include_spip('inc/filtres');
$c = collecter_requests(
// white list
// include list
objet_info('auteur', 'champs_editables'),
// black list
// exclude list
$force_update ? [] : ['webmestre', 'pass', 'login'],
// donnees eventuellement fournies
$set
@ -180,7 +180,7 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
if (!$force_update) {
// Modification de statut, changement de rubrique ?
$c = collecter_requests(
// white list
// include list
[
'statut',
'new_login',
@ -191,7 +191,7 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
'restreintes',
'id_parent'
],
// black list
// exclude list
[],
// donnees eventuellement fournies
$set
@ -391,7 +391,7 @@ function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
$flag_ecrire_acces = true;
}
if (!count($champs)) {
if (!(is_countable($champs) ? count($champs) : 0)) {
return implode(' ', array_map('_T', $erreurs));
}
sql_updateq('spip_auteurs', $champs, 'id_auteur=' . $id_auteur);

14
ecrire/action/editer_liens.php

@ -53,7 +53,7 @@ function objet_associable($objet) {
$l = '';
if (