Compare commits

...

189 Commits

Author SHA1 Message Date
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 1 year ago
Matthieu Marcillaud 47ae905dcc Les tags des différents plugins-dist 1 year ago
Matthieu Marcillaud e2bcc88a42 C’est pour PHP 7.4 mini 1 year ago
Maïeul f7aed37c4a Amélioration du message de retour sur charger_fonction au cas où la 1 year ago
tcharlss cb3969c905 Ticket #5011 : toujours afficher les articles refusés d'une rubrique. 1 year 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 1 year 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. 2
      INSTALL.txt
  2. 24
      composer.json
  3. 4
      config/ecran_securite.php
  4. 2
      ecrire/action/ajouter_lien.php
  5. 107
      ecrire/action/api_transmettre.php
  6. 2
      ecrire/action/converser.php
  7. 8
      ecrire/action/cookie.php
  8. 2
      ecrire/action/debloquer_edition.php
  9. 2
      ecrire/action/desinstaller_plugin.php
  10. 23
      ecrire/action/editer_article.php
  11. 4
      ecrire/action/editer_auteur.php
  12. 14
      ecrire/action/editer_liens.php
  13. 20
      ecrire/action/editer_logo.php
  14. 11
      ecrire/action/editer_objet.php
  15. 4
      ecrire/action/editer_rubrique.php
  16. 13
      ecrire/action/inscrire_auteur.php
  17. 4
      ecrire/action/instituer_langue_objet.php
  18. 2
      ecrire/action/instituer_langue_rubrique.php
  19. 2
      ecrire/action/instituer_objet.php
  20. 4
      ecrire/action/logout.php
  21. 7
      ecrire/action/menu_rubriques.php
  22. 7
      ecrire/action/redirect.php
  23. 2
      ecrire/action/supprimer_lien.php
  24. 8
      ecrire/action/tester.php
  25. 2
      ecrire/action/tester_taille.php
  26. 16
      ecrire/auth/ldap.php
  27. 40
      ecrire/auth/spip.php
  28. 54
      ecrire/balise/formulaire_.php
  29. 2
      ecrire/balise/formulaire_admin.php
  30. 4
      ecrire/balise/formulaire_inscription.php
  31. 6
      ecrire/balise/info_.php
  32. 4
      ecrire/balise/logo_.php
  33. 5
      ecrire/balise/menu_lang.php
  34. 7
      ecrire/balise/menu_lang_ecrire.php
  35. 12
      ecrire/balise/url_.php
  36. 4
      ecrire/balise/url_logout.php
  37. 121
      ecrire/base/abstract_sql.php
  38. 111
      ecrire/base/connect_sql.php
  39. 2
      ecrire/base/delete_all.php
  40. 39
      ecrire/base/dump.php
  41. 69
      ecrire/base/objets.php
  42. 29
      ecrire/base/trouver_table.php
  43. 12
      ecrire/base/upgrade.php
  44. 6
      ecrire/exec/403.php
  45. 6
      ecrire/exec/404.php
  46. 23
      ecrire/exec/admin_plugin.php
  47. 1
      ecrire/exec/base_repair.php
  48. 4
      ecrire/exec/demande_mise_a_jour.php
  49. 2
      ecrire/genie/mail.php
  50. 8
      ecrire/genie/mise_a_jour.php
  51. 6
      ecrire/genie/optimiser.php
  52. 70
      ecrire/inc/acces.php
  53. 4
      ecrire/inc/admin.php
  54. 16
      ecrire/inc/auth.php
  55. 1229
      ecrire/inc/autoriser.php
  56. 2
      ecrire/inc/bandeau.php
  57. 2
      ecrire/inc/boutons.php
  58. 15
      ecrire/inc/charsets.php
  59. 6
      ecrire/inc/chercher_logo.php
  60. 5
      ecrire/inc/chercher_rubrique.php
  61. 10
      ecrire/inc/commencer_page.php
  62. 34
      ecrire/inc/config.php
  63. 2
      ecrire/inc/cookie.php
  64. 6
      ecrire/inc/csv.php
  65. 12
      ecrire/inc/cvt_configurer.php
  66. 8
      ecrire/inc/cvt_multietapes.php
  67. 106
      ecrire/inc/distant.php
  68. 61
      ecrire/inc/documents.php
  69. 47
      ecrire/inc/editer.php
  70. 8
      ecrire/inc/envoyer_mail.php
  71. 375
      ecrire/inc/filtres.php
  72. 6
      ecrire/inc/filtres_alertes.php
  73. 2
      ecrire/inc/filtres_boites.php
  74. 33
      ecrire/inc/filtres_dates.php
  75. 27
      ecrire/inc/filtres_ecrire.php
  76. 41
      ecrire/inc/filtres_images_lib_mini.php
  77. 10
      ecrire/inc/filtres_images_mini.php
  78. 6
      ecrire/inc/filtres_mime.php
  79. 11
      ecrire/inc/filtres_mini.php
  80. 4
      ecrire/inc/filtres_selecteur_generique.php
  81. 5
      ecrire/inc/flock.php
  82. 3
      ecrire/inc/genie.php
  83. 2
      ecrire/inc/headers.php
  84. 28
      ecrire/inc/idna_convert.class.php
  85. 2
      ecrire/inc/importer_csv.php
  86. 3
      ecrire/inc/informer.php
  87. 10
      ecrire/inc/install.php
  88. 20
      ecrire/inc/invalideur.php
  89. 4
      ecrire/inc/json.php
  90. 21
      ecrire/inc/lang.php
  91. 5
      ecrire/inc/layer.php
  92. 47
      ecrire/inc/lien.php
  93. 10
      ecrire/inc/livrer_fichier.php
  94. 8
      ecrire/inc/log.php
  95. 7
      ecrire/inc/math.php
  96. 12
      ecrire/inc/meta.php
  97. 25
      ecrire/inc/minipres.php
  98. 15
      ecrire/inc/modifier.php
  99. 6
      ecrire/inc/nfslock.php
  100. 1
      ecrire/inc/pipelines.php
  101. Some files were not shown because too many files have changed in this diff Show More

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';

23
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()
*
@ -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);
}
}

4
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
@ -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 (
$primary = id_table_objet($objet)
and $trouver_table($l = $table_sql . '_liens')
and $trouver_table($l = $table_sql . '_liens', '', true, ['log_missing' => false])
and !preg_match(',[^\w],', $primary)
and !preg_match(',[^\w],', $l)
) {
@ -212,7 +212,7 @@ function objet_trouver_liens($objets_source, $objets_lies, $cond = null) {
* @return int
*/
function objet_optimiser_liens($objets_source, $objets_lies) {
spip_log('objet_optimiser_liens : ' . json_encode($objets_source) . ', ' . json_encode($objets_lies), 'genie' . _LOG_DEBUG);
spip_log('objet_optimiser_liens : ' . json_encode($objets_source, JSON_THROW_ON_ERROR) . ', ' . json_encode($objets_lies, JSON_THROW_ON_ERROR), 'genie' . _LOG_DEBUG);
return objet_traiter_liaisons('lien_optimise', $objets_source, $objets_lies);
}
@ -313,7 +313,7 @@ function objet_traiter_liaisons($operation, $objets_source, $objets_lies, $set =
$echec = null;
foreach ($objets_source as $objet => $ids) {
if ($a = objet_associable($objet)) {
list($primary, $l) = $a;
[$primary, $l] = $a;
if (!is_array($ids)) {
$ids = [$ids];
} elseif (reset($ids) == 'NOT') {
@ -377,7 +377,7 @@ function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif
}
// role, colonne, where par défaut
list($role, $colonne_role, $cond) =
[$role, $colonne_role, $cond] =
roles_trouver_dans_qualif($objet_source, $objet, $qualif);
foreach ($id_objets as $id_objet) {
@ -676,7 +676,7 @@ function lien_delete($objet_source, $primary, $table_lien, $id, $objets, $cond =
$id_objets = [$id_objets];
}
foreach ($id_objets as $id_objet) {
list($cond, $colonne_role, $role) = roles_creer_condition_role($objet_source, $objet, $cond);
[$cond, $colonne_role, $role] = roles_creer_condition_role($objet_source, $objet, $cond);
// id_objet peut valoir '*'
$where = lien_where($primary, $id, $objet, $id_objet, $cond);
@ -877,7 +877,7 @@ function lien_set($objet_source, $primary, $table_lien, $id, $objets, $qualif) {
unset($qualif['id_objet']);
foreach ($objets as $objet => $id_objets) {
// role, colonne, where par défaut
list($role, $colonne_role, $cond) =
[$role, $colonne_role, $cond] =
roles_trouver_dans_qualif($objet_source, $objet, $qualif);
$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
@ -980,7 +980,7 @@ function lien_find($objet_source, $primary, $table_lien, $id, $objets, $cond = n
foreach ($objets as $objet => $id_objets) {
$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
// gerer les roles s'il y en a dans $cond
list($cond) = roles_creer_condition_role($objet_source, $objet, $cond, true);
[$cond] = roles_creer_condition_role($objet_source, $objet, $cond, true);
// lien_where prend en charge les $id_objets sous forme int ou array
$where = lien_where($primary, $id, $objet, $id_objets, $cond);
$liens = sql_allfetsel('*', $table_lien, $where);

20
ecrire/action/editer_logo.php

@ -39,7 +39,7 @@ function logo_supprimer($objet, $id_objet, $etat) {
$logo = $chercher_logo($id_objet, $primary, $etat);
if ($logo) {
# TODO : deprecated, a supprimer -> anciens logos IMG/artonxx.png pas en base
if (count($logo) < 6) {
if ((is_countable($logo) ? count($logo) : 0) < 6) {
spip_log("Supprimer ancien logo $logo", 'logo');
spip_unlink($logo[0]);
}
@ -139,8 +139,8 @@ function logo_modifier($objet, $id_objet, $etat, $source) {
$id_document = reset($ajoutes);
if (!is_numeric($id_document)) {
$erreur = ($id_document ? $id_document : 'Erreur inconnue');
spip_log("Erreur ajout logo : $erreur pour source=" . json_encode($source), 'logo');
$erreur = ($id_document ?: 'Erreur inconnue');
spip_log("Erreur ajout logo : $erreur pour source=" . json_encode($source, JSON_THROW_ON_ERROR), 'logo');
return $erreur;
}
@ -172,9 +172,9 @@ function logo_migrer_en_base($objet, $time_limit) {
$files = glob($dir . $nom_base . '*');
// est-ce que c'est une nouvelle tentative de migration ?
// dans ce cas les logos sont deja dans IMG/logo/
if (!count($files)) {
if (!(is_countable($files) ? count($files) : 0)) {
$files = glob($dir_logos . $nom_base . '*');
if (count($files)) {
if (is_countable($files) ? count($files) : 0) {
// mais il faut verifier si ils ont pas deja ete migres pour tout ou partie
$filescheck = [];
foreach ($files as $file) {
@ -182,8 +182,8 @@ function logo_migrer_en_base($objet, $time_limit) {
$filescheck[$short] = $file;
}
// trouver ceux deja migres
$deja = sql_allfetsel('fichier', 'spip_documents', sql_in('fichier', array_keys($filescheck))." AND mode LIKE 'logo%'");
if (count($deja)) {
$deja = sql_allfetsel('fichier', 'spip_documents', sql_in('fichier', array_keys($filescheck)) . " AND mode LIKE 'logo%'");
if (is_countable($deja) ? count($deja) : 0) {
$deja = array_column($deja, 'fichier');
$restant = array_diff(array_keys($filescheck), $deja);
$files = [];
@ -195,13 +195,13 @@ function logo_migrer_en_base($objet, $time_limit) {
}
// et si il en reste on peut y aller...
// mais il faut modifier $dir qui sert de base dans la suite
if (count($files)) {
if (is_countable($files) ? count($files) : 0) {
$dir = $dir_logos;
}
}
}
spip_log("logo_migrer_en_base $objet $mode : " . count($files) ." logos restant", "maj" . _LOG_INFO_IMPORTANTE);
spip_log("logo_migrer_en_base $objet $mode : " . (is_countable($files) ? count($files) : 0) . ' logos restant', 'maj' . _LOG_INFO_IMPORTANTE);
$deja = [];
foreach ($files as $file) {
@ -214,7 +214,7 @@ function logo_migrer_en_base($objet, $time_limit) {
if (!isset($deja[$id_objet])) {
$logo = $chercher_logo($id_objet, $_id_objet, $mode);
// if no logo in base
if (!$logo or count($logo) < 6) {
if (!$logo or (is_countable($logo) ? count($logo) : 0) < 6) {
foreach ($formats_logos as $format) {
if (@file_exists($d = ($dir . ($nom = $nom_base . intval($id_objet) . '.' . $format)))) {
if (isset($desc['field']['date_modif'])) {

11
ecrire/action/editer_objet.php

@ -37,7 +37,7 @@ function action_editer_objet_dist($id = null, $objet = null, $set = null) {
if (is_null($id) or is_null($objet)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
list($objet, $id) = array_pad(explode('/', $arg, 2), 2, null);
[$objet, $id] = array_pad(explode('/', $arg, 2), 2, null);
}
// appel incorrect ou depuis une url erronnée interdit
@ -168,6 +168,7 @@ function objet_modifier($objet, $id, $set = null) {
* @return bool|int
*/
function objet_inserer($objet, $id_parent = null, $set = null) {
$d = null;
if (($t = objet_type($objet)) !== $objet) {
spip_log("objet_inserer: appel avec type $objet invalide au lieu de $t", 'editer' . _LOG_INFO_IMPORTANTE);
$objet = $t;
@ -228,7 +229,7 @@ function objet_inserer($objet, $id_parent = null, $set = null) {
}
}
} elseif (isset($desc['field']['lang']) and isset($desc['field']['langue_choisie'])) {
$champs['lang'] = ($lang_rub ? $lang_rub : $GLOBALS['meta']['langue_site']);
$champs['lang'] = ($lang_rub ?: $GLOBALS['meta']['langue_site']);
$champs['langue_choisie'] = 'non';
}
@ -370,7 +371,7 @@ function objet_instituer($objet, $id, $c, $calcul_rub = true) {
if ($s != 'publie' and autoriser('modifier', $objet, $id)) {
$statut = $champs['statut'] = $s;
} else {
spip_log("editer_objet $objet #$id refus " . json_encode($c), 'editer' . _LOG_INFO_IMPORTANTE);
spip_log("editer_objet $objet #$id refus " . json_encode($c, JSON_THROW_ON_ERROR), 'editer' . _LOG_INFO_IMPORTANTE);
}
}
@ -432,7 +433,7 @@ function objet_instituer($objet, $id, $c, $calcul_rub = true) {
]
);
if (!count($champs)) {
if (!(is_countable($champs) ? count($champs) : 0)) {
return '';
}
@ -631,7 +632,7 @@ function objet_lire($objet, $valeur_id, $options = []) {
$retour = array_intersect_key($retour, array_flip($champs));
} else {
// Valeur unique demandée.
$retour = (isset($retour[$champs]) ? $retour[$champs] : false);
$retour = ($retour[$champs] ?? false);
}
}

4
ecrire/action/editer_rubrique.php

@ -240,7 +240,7 @@ function rubrique_instituer($id_rubrique, $c) {
if (null !== ($id_parent = $c['id_parent'])) {
$id_parent = intval($id_parent);
$filles = calcul_branche_in($id_rubrique);
if (strpos(",$id_parent,", ",$filles,") !== false) {
if (strpos(",$id_parent,", (string) ",$filles,") !== false) {
spip_log("La rubrique $id_rubrique ne peut etre fille de sa descendante $id_parent");
} else {
$s = sql_fetsel('id_parent, statut', 'spip_rubriques', "id_rubrique=$id_rubrique");
@ -265,7 +265,7 @@ function rubrique_instituer($id_rubrique, $c) {
// Deplacement d'une rubrique publiee ==> chgt general de leur statut
if ($statut_ancien == 'publie') {
calculer_rubriques_if($old_parent, ['id_rubrique' => $id_parent], $statut_ancien);
calculer_rubriques_if($old_parent, ['id_rubrique' => $id_parent], ['statut_ancien' => $statut_ancien]);
}
// Creation ou deplacement d'une rubrique non publiee
// invalider le cache de leur menu

13
ecrire/action/inscrire_auteur.php

@ -56,7 +56,7 @@ function action_inscrire_auteur_dist($statut, $mail_complet, $nom, $options = []
}
include_spip('base/abstract_sql');
$res = sql_select('statut, id_auteur, login, email', 'spip_auteurs', 'email=' . sql_quote($desc['email']));
$res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email=' . sql_quote($desc['email']));
// erreur ?
if (!$res) {
return _T('titre_probleme_technique');
@ -90,7 +90,7 @@ function action_inscrire_auteur_dist($statut, $mail_complet, $nom, $options = []