Compare commits

...

13 Commits
1.0 ... master

  1. 7
      .gitignore
  2. 18
      composer.json
  3. 46
      grenier_32/grenier_32_fonctions.php
  4. 5
      grenier_32/inc/filtres_images.php
  5. 6
      grenier_32/inc/filtres_images_compat.php
  6. 10
      grenier_40/balise/login_prive.php
  7. 10
      grenier_40/balise/login_public.php
  8. 38
      grenier_40/exec/fond_monobloc.php
  9. 14
      grenier_40/grenier_40_actions.php
  10. 75
      grenier_40/grenier_40_autres.php
  11. 6
      grenier_40/grenier_40_balises.php
  12. 1
      grenier_40/grenier_40_criteres.php
  13. 21
      grenier_40/grenier_40_fonctions.php
  14. 2
      grenier_40/inc/charger_php_extension.php
  15. 2
      grenier_40/inc/mail.php
  16. 1
      grenier_fonctions.php
  17. 2
      grenier_options.php
  18. 8
      inc/vieilles_defs.php
  19. 3
      lang/grenier.xml
  20. 4
      lang/grenier_pt.php
  21. 8
      paquet.xml
  22. 15
      phpcs.xml.dist
  23. 597
      phpstan-baseline.neon
  24. 12
      phpstan.neon.dist

7
.gitignore vendored

@ -0,0 +1,7 @@
/vendor/
/composer.phar
/composer.lock
/phpcs.xml
/phpstan.neon
/.php_cs.cache
/.php_cs.txt

18
composer.json

@ -0,0 +1,18 @@
{
"require": {
"php": "^7.4 || ^8.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
"phpstan/phpstan": "^1.4",
"spip/coding-standards": "^1.2"
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
},
"platform": {
"php": "7.4.27"
}
}
}

46
grenier_32/grenier_32_fonctions.php

@ -47,11 +47,11 @@ if (!function_exists('afficher_plus')) {
if (!function_exists('debut_cadre_couleur_foncee')) {
/**
* Ouvre un cadre foncé
*
*
* @removed from SPIP 3.2
* @deprecated utiliser boite_ouvrir()
*/
function debut_cadre_couleur_foncee($icone = '', $dummy = '', $fonction = '', $titre = '', $id = "", $class = "") {
function debut_cadre_couleur_foncee($icone = '', $dummy = '', $fonction = '', $titre = '', $id = '', $class = '') {
include_spip('inc/presentation');
return debut_cadre_grenier('couleur-foncee', $icone, $fonction, $titre, $id, $class);
}
@ -60,12 +60,12 @@ if (!function_exists('debut_cadre_couleur_foncee')) {
if (!function_exists('fin_cadre_couleur_foncee')) {
/**
* Ferme un cadre foncé
*
*
* @removed from SPIP 3.2
* @deprecated utiliser boite_fermer()
*/
function fin_cadre_couleur_foncee() {
return fin_cadre_grenier('couleur-foncee');
function fin_cadre_couleur_foncee() {
return fin_cadre_grenier();
}
}
@ -74,11 +74,12 @@ if (!function_exists('fin_cadre_couleur_foncee')) {
/**
* Ouvre un cadre.
* Copie de debut_cadre() pour historique
*
*
* @removed from SPIP 3.2
*/
function debut_cadre_grenier($style, $icone = "", $fonction = "", $titre = "", $id = "", $class = "", $padding = true) {
$style_mapping = array(
function debut_cadre_grenier($style, $icone = '', $fonction = '', $titre = '', $id = '', $class = '', $padding = true) {
$fond = null;
$style_mapping = [
'r' => 'simple',
'e' => 'raccourcis',
'couleur' => 'basic highlight',
@ -87,44 +88,43 @@ function debut_cadre_grenier($style, $icone = "", $fonction = "", $titre = "", $
'alerte' => 'notice',
'info' => 'info',
'sous_rub' => 'simple sous-rub'
);
$style_titre_mapping = array('couleur' => 'topper', 'trait-couleur' => 'section');
$c = isset($style_mapping[$style]) ? $style_mapping[$style] : 'simple';
$class = $c . ($class ? " $class" : "");
];
$style_titre_mapping = ['couleur' => 'topper', 'trait-couleur' => 'section'];
$c = $style_mapping[$style] ?? 'simple';
$class = $c . ($class ? " $class" : '');
if (!$padding) {
$class .= ($class ? " " : "") . "no-padding";
$class .= ($class ? ' ' : '') . 'no-padding';
}
//($id?"id='$id' ":"")
if (strlen($icone) > 1) {
if ($icone_renommer = charger_fonction('icone_renommer', 'inc', true)) {
list($fond, $fonction) = $icone_renommer($icone, $fonction);
[$fond, $fonction] = $icone_renommer($icone, $fonction);
}
$size = 24;
if (preg_match("/-([0-9]{1,3})[.](gif|png)$/i", $fond, $match)) {
if (preg_match('/-([0-9]{1,3})[.](gif|png)$/i', $fond, $match)) {
$size = $match[1];
}
if ($fonction) {
// 2 images pour composer l'icone : le fond (article) en background,
// la fonction (new) en image
$icone = http_img_pack($fonction, "", "class='cadre-icone' width='$size' height='$size'\n" .
http_style_background($fond, "no-repeat center center"));
$icone = http_img_pack($fonction, '', "class='cadre-icone' width='$size' height='$size'\n" .
http_style_background($fond, 'no-repeat center center'));
} else {
$icone = http_img_pack($fond, "", "class='cadre-icone' width='$size' height='$size'");
$icone = http_img_pack($fond, '', "class='cadre-icone' width='$size' height='$size'");
}
$titre = $icone . $titre;
}
return boite_ouvrir($titre, $class, isset($style_titre_mapping[$style]) ? $style_titre_mapping[$style] : '', $id);
return boite_ouvrir($titre, $class, $style_titre_mapping[$style] ?? '', $id);
}
/**
* Ferme un cadre.
* Copie de fin_cadre() pour historique
*
*
* @removed from SPIP 3.2
*/
function fin_cadre_grenier() {
return boite_fermer();
function fin_cadre_grenier() {
return boite_fermer();
}

5
grenier_32/inc/filtres_images.php

@ -1,4 +1,5 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* *
@ -6,10 +7,8 @@
* 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. *
\***************************************************************************/
/**
* Ce fichier ne sert plus
* Il est maintenu pour assurer la compatibilite des anciens scripts
@ -18,7 +17,7 @@
/**
* File removed
*
*
* @removed from SPIP 3.2 (Filtres Images)
*/

6
grenier_32/inc/filtres_images_compat.php

@ -1,4 +1,5 @@
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* *
@ -6,7 +7,6 @@
* 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. *
\***************************************************************************/
/**
@ -17,7 +17,7 @@
/**
* File removed
*
*
* @removed from SPIP 3.2
*/
@ -155,7 +155,6 @@ function image_valeurs_trans($img, $effet, $forcer_format = false, $fonction_cre
// Pour assurer la compatibilite avec les anciens nom des filtres image_xxx
// commencent par "image_"
// https://code.spip.net/@reduire_image
function reduire_image($texte, $taille = -1, $taille_y = -1) {
return filtrer(
'image_graver',
@ -163,7 +162,6 @@ function reduire_image($texte, $taille = -1, $taille_y = -1) {
);
}
// https://code.spip.net/@valeurs_image_trans
function valeurs_image_trans($img, $effet, $forcer_format = false) {
include_spip('inc/filtres_images_lib_mini');

10
grenier_40/balise/login_prive.php

@ -7,7 +7,6 @@
* 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. *
\***************************************************************************/
/**
@ -16,7 +15,7 @@
* @package SPIP\Core\Compilateur\Balises
**/
if (!defined("_ECRIRE_INC_VERSION")) {
if (!defined('_ECRIRE_INC_VERSION')) {
return;
} #securite
@ -35,7 +34,7 @@ if (!defined("_ECRIRE_INC_VERSION")) {
* Pile complétée du code compilé
**/
function balise_LOGIN_PRIVE($p) {
return calculer_balise_dynamique($p, 'LOGIN_PRIVE', array('url'));
return calculer_balise_dynamique($p, 'LOGIN_PRIVE', ['url']);
}
/**
@ -56,7 +55,7 @@ function balise_LOGIN_PRIVE($p) {
* Liste (url, login) des arguments collectés.
*/
function balise_LOGIN_PRIVE_stat($args, $context_compil) {
return array(isset($args[1]) ? $args[1] : $args[0], (isset($args[2]) ? $args[2] : ''));
return [$args[1] ?? $args[0], ($args[2] ?? '')];
}
/**
@ -74,7 +73,8 @@ function balise_LOGIN_PRIVE_stat($args, $context_compil) {
**/
function balise_LOGIN_PRIVE_dyn($url, $login) {
include_spip('balise/formulaire_');
if (!$url # pas d'url passee en filtre ou dans le contexte
if (
!$url # pas d'url passee en filtre ou dans le contexte
and !$url = _request('url') # ni d'url passee par l'utilisateur
) {
$url = generer_url_ecrire('accueil', '', true);

10
grenier_40/balise/login_public.php

@ -7,7 +7,6 @@
* 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. *
\***************************************************************************/
/**
@ -16,7 +15,7 @@
* @package SPIP\Core\Compilateur\Balises
**/
if (!defined("_ECRIRE_INC_VERSION")) {
if (!defined('_ECRIRE_INC_VERSION')) {
return;
} #securite
@ -37,7 +36,7 @@ if (!defined("_ECRIRE_INC_VERSION")) {
* Pile complétée du code compilé
**/
function balise_LOGIN_PUBLIC($p, $nom = 'LOGIN_PUBLIC') {
return calculer_balise_dynamique($p, $nom, array('url'));
return calculer_balise_dynamique($p, $nom, ['url']);
}
/**
@ -58,7 +57,7 @@ function balise_LOGIN_PUBLIC($p, $nom = 'LOGIN_PUBLIC') {
* Liste (url, login) des arguments collectés.
*/
function balise_LOGIN_PUBLIC_stat($args, $context_compil) {
return array(isset($args[1]) ? $args[1] : $args[0], (isset($args[2]) ? $args[2] : ''));
return [$args[1] ?? $args[0], ($args[2] ?? '')];
}
/**
@ -76,7 +75,8 @@ function balise_LOGIN_PUBLIC_stat($args, $context_compil) {
**/
function balise_LOGIN_PUBLIC_dyn($url, $login) {
include_spip('balise/formulaire_');
if (!$url # pas d'url passee en filtre ou dans le contexte
if (
!$url # pas d'url passee en filtre ou dans le contexte
and !$url = _request('url') # ni d'url passee par l'utilisateur
) {
$url = parametre_url(self(), '', '', '&');

38
grenier_40/exec/fond_monobloc.php

@ -7,7 +7,6 @@
* 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. *
\***************************************************************************/
/**
@ -53,33 +52,32 @@ function exec_fond_monobloc_dist() {
include_spip('inc/minipres');
echo minipres();
} else {
$titre = "exec_$exec";
$hierarchie = "";
$navigation = "";
$extra = "";
$hierarchie = '';
$navigation = '';
$extra = '';
// recuperer le titre dans le premier hn de la page
if (preg_match(",<h[1-6][^>]*>(.+)</h[1-6]>,Uims", $fond, $match)) {
if (preg_match(',<h[1-6][^>]*>(.+)</h[1-6]>,Uims', $fond, $match)) {
$titre = $match[1];
}
// recuperer la hierarchie (au-dessus du contenu)
if (preg_match(",<!--#hierarchie-->.+<!--/#hierarchie-->,Uims", $fond, $match)) {
if (preg_match(',<!--#hierarchie-->.+<!--/#hierarchie-->,Uims', $fond, $match)) {
$hierarchie = $match[0];
$fond = str_replace($hierarchie, "", $fond);
$fond = str_replace($hierarchie, '', $fond);
}
// recuperer la navigation (colonne de gauche)
if (preg_match(",<!--#navigation-->.+<!--/#navigation-->,Uims", $fond, $match)) {
if (preg_match(',<!--#navigation-->.+<!--/#navigation-->,Uims', $fond, $match)) {
$navigation = $match[0];
$fond = str_replace($navigation, "", $fond);
$fond = str_replace($navigation, '', $fond);
}
// recuperer les extras (colonne de droite)
if (preg_match(",<!--#extra-->.+<!--/#extra-->,Uims", $fond, $match)) {
if (preg_match(',<!--#extra-->.+<!--/#extra-->,Uims', $fond, $match)) {
$extra = $match[0];
$fond = str_replace($extra, "", $fond);
$fond = str_replace($extra, '', $fond);
}
include_spip('inc/presentation'); // alleger les inclusions avec un inc/presentation_mini
@ -90,19 +88,19 @@ function exec_fond_monobloc_dist() {
echo debut_grand_cadre(true);
echo pipeline(
'affiche_hierarchie',
array(
'args' => array(
[
'args' => [
'exec' => $exec
),
],
'data' => $hierarchie
)
]
);
echo fin_grand_cadre(true);
}
echo debut_gauche("exec_$exec", true);
$contexte = array('exec' => $exec);
$contexte = ['exec' => $exec];
if ($objet_exec = trouver_objet_exec($exec)) {
$id = $objet_exec['id_table_objet'];
if (_request($id)) {
@ -111,15 +109,15 @@ function exec_fond_monobloc_dist() {
}
echo $navigation;
echo pipeline('affiche_gauche', array('args' => $contexte, 'data' => ''));
echo pipeline('affiche_gauche', ['args' => $contexte, 'data' => '']);
echo creer_colonne_droite("exec_$exec", true);
echo $extra;
echo pipeline('affiche_droite', array('args' => $contexte, 'data' => ''));
echo pipeline('affiche_droite', ['args' => $contexte, 'data' => '']);
echo debut_droite("exec_$exec", true);
echo $fond;
echo pipeline('affiche_milieu', array('args' => $contexte, 'data' => ''));
echo pipeline('affiche_milieu', ['args' => $contexte, 'data' => '']);
echo fin_gauche(), fin_page();
}

14
grenier_40/grenier_40_actions.php

@ -1,6 +1,5 @@
<?php
if (!function_exists('modifier_contenu')) {
/**
* Modifie un contenu
@ -374,7 +373,7 @@ if (!function_exists('instituer_document')) {
* @param int $id_document Identifiant du document
* @param array $champs
*/
function instituer_document($id_document, $champs = array()) {
function instituer_document($id_document, $champs = []) {
return document_instituer($id_document, $champs);
}
}
@ -651,11 +650,11 @@ function maj_version($version, $test = true) {
} else {
// on le fait manuellement, car ecrire_meta utilise le champs impt qui est absent sur les vieilles versions
$GLOBALS['meta']['version_installee'] = $version;
sql_updateq('spip_meta', array('valeur' => $version), 'nom=' . sql_quote('version_installee'));
sql_updateq('spip_meta', ['valeur' => $version], 'nom=' . sql_quote('version_installee'));
}
spip_log("mise a jour de la base en $version", 'maj.' . _LOG_INFO_IMPORTANTE);
} else {
echo _T('alerte_maj_impossible', array('version' => $version));
echo _T('alerte_maj_impossible', ['version' => $version]);
exit;
}
}
@ -702,7 +701,8 @@ if (!function_exists('upgrade_types_documents')) {
*
**/
function upgrade_types_documents() {
if (include_spip('base/medias')
if (
include_spip('base/medias')
and function_exists('creer_base_types_doc')
) {
creer_base_types_doc();
@ -737,7 +737,7 @@ function spip_get_lock($nom, $timeout = 0) {
$prefixe = $connexion['prefixe'];
$nom = "$bd:$prefixe:$nom" . _LOCK_TIME;
$connexion['last'] = $q = "SELECT GET_LOCK(" . _q($nom) . ", $timeout) AS n";
$connexion['last'] = $q = 'SELECT GET_LOCK(' . _q($nom) . ", $timeout) AS n";
$q = @sql_fetch(mysqli_query(_mysql_link(), $q));
if (!$q) {
@ -769,7 +769,7 @@ function spip_release_lock($nom) {
$prefixe = $connexion['prefixe'];
$nom = "$bd:$prefixe:$nom" . _LOCK_TIME;
$connexion['last'] = $q = "SELECT RELEASE_LOCK(" . _q($nom) . ")";
$connexion['last'] = $q = 'SELECT RELEASE_LOCK(' . _q($nom) . ')';
mysqli_query(_mysql_link(), $q);
}
}

75
grenier_40/grenier_40_autres.php

@ -1,6 +1,5 @@
<?php
if (!function_exists('generer_url_retour')) {
/**
* Permet d'ajouter lien vers une page privée à un paramètre d'url (déprécié)
@ -23,7 +22,7 @@ if (!function_exists('generer_url_retour')) {
* @param string $args
* @return string
*/
function generer_url_retour($script, $args = "") {
function generer_url_retour($script, $args = '') {
return rawurlencode(generer_url_ecrire($script, $args, true, true));
}
}
@ -82,8 +81,8 @@ if (!function_exists('echo_log')) {
* @return void
**/
function echo_log($f, $ret) {
spip_log("Page " . self() . " function $f: echo " . substr($ret, 0, 50) . "...", 'echo');
echo(_SIGNALER_ECHOS ? "#Echo par $f#" : "") . $ret;
spip_log('Page ' . self() . " function $f: echo " . substr($ret, 0, 50) . '...', 'echo');
echo(_SIGNALER_ECHOS ? "#Echo par $f#" : '') . $ret;
}
}
@ -145,20 +144,20 @@ if (!function_exists('admin_repair_plat')) {
* @return string Description des changements de chemins des documents
**/
function admin_repair_plat() {
spip_log("verification des documents joints", _LOG_INFO_IMPORTANTE);
$out = "";
$repertoire = array();
spip_log('verification des documents joints', _LOG_INFO_IMPORTANTE);
$out = '';
$repertoire = [];
include_spip('inc/getdocument');
$res = sql_select('*', 'spip_documents', "fichier REGEXP CONCAT('^',extension,'[^/\]') AND distant='non'");
while ($row = sql_fetch($res)) {
$ext = $row['extension'];
if (!$ext) {
spip_log("document sans extension: " . $row['id_document'], _LOG_INFO_IMPORTANTE);
spip_log('document sans extension: ' . $row['id_document'], _LOG_INFO_IMPORTANTE);
continue;
}
if (!isset($repertoire[$ext])) {
if (@file_exists($plat = _DIR_IMG . $ext . ".plat")) {
if (@file_exists($plat = _DIR_IMG . $ext . '.plat')) {
spip_unlink($plat);
}
$repertoire[$ext] = creer_repertoire_documents($ext);
@ -170,10 +169,11 @@ function admin_repair_plat() {
$d = substr($d, strlen(_DIR_IMG));
$src = $row['fichier'];
$dest = $d . substr($src, strlen($d));
if (@copy(_DIR_IMG . $src, _DIR_IMG . $dest)
if (
@copy(_DIR_IMG . $src, _DIR_IMG . $dest)
and file_exists(_DIR_IMG . $dest)
) {
sql_updateq('spip_documents', array('fichier' => $dest), 'id_document=' . intval($row['id_document']));
sql_updateq('spip_documents', ['fichier' => $dest], 'id_document=' . intval($row['id_document']));
spip_unlink(_DIR_IMG . $src);
$out .= "$src => $dest<br />";
}
@ -205,17 +205,17 @@ if (!function_exists('afficher_documents_colonne')) {
* Code HTML permettant de gérer des documents
*/
function afficher_documents_colonne($id, $type = 'article', $script = null) {
return recuperer_fond('prive/objets/editer/colonne_document', array('objet' => $type, 'id_objet' => $id));
return recuperer_fond('prive/objets/editer/colonne_document', ['objet' => $type, 'id_objet' => $id]);
}
}
if (!function_exists('lien_objet')) {
/**
* Pour compat uniquement, utiliser generer_lien_entite
* Pour compat uniquement, utiliser generer_objet_lien
*
* @removed from SPIP 4.0
* @deprecated
* @uses generer_lien_entite()
* @uses generer_objet_lien()
*
* @param int $id
* @param string $type
@ -224,7 +224,7 @@ if (!function_exists('lien_objet')) {
* @return string
*/
function lien_objet($id, $type, $longueur = 80, $connect = null) {
return generer_lien_entite($id, $type, $longueur, $connect);
return generer_objet_lien($id, $type, $longueur, $connect);
}
}
@ -234,14 +234,16 @@ if (!function_exists('sha256')) {
* Calcul du SHA256
*
* 2009-07-23: Added check for function as the Suhosin plugin adds this routine.
*
*
* @removed from SPIP 4.0
* @param string $str Chaîne dont on veut calculer le SHA
* @param bool $ig_func
* @return string Le SHA de la chaîne
* @deprecated
*/
function sha256($str, $ig_func = true) { return spip_sha256($str); }
function sha256($str, $ig_func = true) {
return spip_sha256($str);
}
}
@ -265,8 +267,8 @@ function table_jointure($x, $y) {
$trouver_table = charger_fonction('trouver_table', 'base');
$xdesc = $trouver_table(table_objet($x));
$ydesc = $trouver_table(table_objet($y));
$ix = @$xdesc['key']["PRIMARY KEY"];
$iy = @$ydesc['key']["PRIMARY KEY"];
$ix = @$xdesc['key']['PRIMARY KEY'];
$iy = @$ydesc['key']['PRIMARY KEY'];
if ($table = $ydesc['tables_jointures'][$ix]) {
return $table;
}
@ -288,9 +290,9 @@ if (!function_exists('notifier_publication_article')) {
* @param int $id_article
**/
function notifier_publication_article($id_article) {
if ($GLOBALS['meta']["suivi_edito"] == "oui") {
$adresse_suivi = $GLOBALS['meta']["adresse_suivi"];
$texte = email_notification_article($id_article, "notifications/article_publie");
if ($GLOBALS['meta']['suivi_edito'] == 'oui') {
$adresse_suivi = $GLOBALS['meta']['adresse_suivi'];
$texte = email_notification_article($id_article, 'notifications/article_publie');
notifications_envoyer_mails($adresse_suivi, $texte);
}
}
@ -305,9 +307,9 @@ if (!function_exists('notifier_proposition_article')) {
* @param int $id_article
**/
function notifier_proposition_article($id_article) {
if ($GLOBALS['meta']["suivi_edito"] == "oui") {
$adresse_suivi = $GLOBALS['meta']["adresse_suivi"];
$texte = email_notification_article($id_article, "notifications/article_propose");
if ($GLOBALS['meta']['suivi_edito'] == 'oui') {
$adresse_suivi = $GLOBALS['meta']['adresse_suivi'];
$texte = email_notification_article($id_article, 'notifications/article_propose');
notifications_envoyer_mails($adresse_suivi, $texte);
}
}
@ -327,7 +329,9 @@ if (!function_exists('calcul_branche')) {
* @param string|int|array $generation
* @return string
*/
function calcul_branche($generation) { return calcul_branche_in($generation); }
function calcul_branche($generation) {
return calcul_branche_in($generation);
}
}
@ -342,7 +346,7 @@ if (!function_exists('lire_meta')) {
* @return mixed Valeur de la meta.
**/
function lire_meta($nom) {
return isset($GLOBALS['meta'][$nom]) ? $GLOBALS['meta'][$nom] : null;
return $GLOBALS['meta'][$nom] ?? null;
}
}
@ -354,7 +358,8 @@ if (!function_exists('ecrire_metas')) {
* @removed from SPIP 4.0
* @deprecated
**/
function ecrire_metas() { }
function ecrire_metas() {
}
}
@ -472,7 +477,7 @@ function recuperer_page(
$get = 'GET';
}
$options = array(
$options = [
'transcoder' => $trans === true,
'methode' => $get,
'datas' => $datas,
@ -482,7 +487,7 @@ function recuperer_page(
'uri_referer' => $uri_referer,
'file' => $copy ? $trans : '',
'follow_location' => 10,
);
];
if (!is_null($taille_max)) {
$options['taille_max'] = $taille_max;
}
@ -540,7 +545,7 @@ function recuperer_lapage(
$url,
$trans = false,
$get = 'GET',
$taille_max = 1048576,
$taille_max = 1_048_576,
$datas = '',
$refuser_gz = false,
$date_verif = '',
@ -555,7 +560,7 @@ function recuperer_lapage(
$refuser_gz = true;
}
$options = array(
$options = [
'transcoder' => $trans === true,
'methode' => $get,
'datas' => $datas,
@ -564,7 +569,7 @@ function recuperer_lapage(
'uri_referer' => $uri_referer,
'file' => $copy ? $trans : '',
'follow_location' => false,
);
];
if (!is_null($taille_max)) {
$options['taille_max'] = $taille_max;
}
@ -578,6 +583,6 @@ function recuperer_lapage(
return false;
}
return array($res['headers'], $res['page']);
return [$res['headers'], $res['page']];
}
}
}

6
grenier_40/grenier_40_balises.php

@ -1,6 +1,5 @@
<?php
/**
* Ancien marqueur de début de surlignement
*
@ -8,6 +7,7 @@
* @removed from SPIP 4.0
* @deprecated 2.0 N'a plus d'effet
**/
define('MARQUEUR_SURLIGNE', 'debut_surligneconditionnel');
/**
@ -91,5 +91,7 @@ if (!function_exists('balise_NOOP_dist')) {
* @return Champ
* Pile complétée par le code à générer
**/
function balise_NOOP_dist($p) { return balise_VAL_dist($p); }
function balise_NOOP_dist($p) {
return balise_VAL_dist($p);
}
}

1
grenier_40/grenier_40_criteres.php

@ -1,6 +1,5 @@
<?php
if (!function_exists('critere_DATA_datasource_dist')) {
/**
* Compile le critère {datasource} d'une boucle DATA

21
grenier_40/grenier_40_fonctions.php

@ -1,6 +1,5 @@
<?php
if (!function_exists('aligner')) {
/**
* Alignements en HTML (Old-style, préférer CSS)
@ -22,7 +21,7 @@ if (!function_exists('aligner')) {
// Paragrapher rapidement
$letexte = "<div style='text-align:$justif'>"
. $letexte
. "</div>";
. '</div>';
return $letexte;
}
@ -38,8 +37,8 @@ if (!function_exists('justifier')) {
* @param string $letexte
* @return string
*/
function justifier($letexte) {
return aligner($letexte, 'justify');
function justifier($letexte) {
return aligner($letexte, 'justify');
}
}
@ -53,7 +52,9 @@ if (!function_exists('aligner_droite')) {
* @param string $letexte
* @return string
*/
function aligner_droite($letexte) { return aligner($letexte, 'right'); }
function aligner_droite($letexte) {
return aligner($letexte, 'right');
}
}
if (!function_exists('aligner_gauche')) {
@ -66,8 +67,8 @@ if (!function_exists('aligner_gauche')) {
* @param string $letexte
* @return string
*/
function aligner_gauche($letexte) {
return aligner($letexte, 'left');
function aligner_gauche($letexte) {
return aligner($letexte, 'left');
}
}
@ -81,8 +82,8 @@ if (!function_exists('centrer')) {
* @param string $letexte
* @return string
*/
function centrer($letexte) {
return aligner($letexte, 'center');
function centrer($letexte) {
return aligner($letexte, 'center');
}
}
@ -96,6 +97,6 @@ if (!function_exists('style_align')) {
* @return string Style CSS
**/
function style_align($bof) {
return "text-align: " . $GLOBALS['spip_lang_left'];
return 'text-align: ' . $GLOBALS['spip_lang_left'];
}
}

2
grenier_40/inc/charger_php_extension.php

@ -12,7 +12,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
/**
* File removed
*
*
* @removed from SPIP 4.0
*/

2
grenier_40/inc/mail.php

@ -14,7 +14,7 @@
* Module de compatibilite ascendante : desormais inc/envoyer_mail
*
* File removed
*
*
* @removed from SPIP 4.0
* @deprecated Utiliser inc/envoyer_mail
* @package SPIP\Core\Mail

1
grenier_fonctions.php

@ -7,7 +7,6 @@
* 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. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {

2
grenier_options.php

@ -1,4 +1,4 @@
<?php
_chemin(_DIR_PLUGIN_GRENIER . 'grenier_32/');
_chemin(_DIR_PLUGIN_GRENIER . 'grenier_40/');
_chemin(_DIR_PLUGIN_GRENIER . 'grenier_40/');

8
inc/vieilles_defs.php

@ -7,12 +7,13 @@
* 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. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/*
/*
* Ce fichier contient des fonctions, globales ou constantes
* qui ont fait partie des fichiers de configurations de Spip
* mais en ont ete retires ensuite.
@ -29,4 +30,3 @@ include_spip('grenier_40/grenier_40_autres');
include_spip('grenier_40/grenier_40_balises');
include_spip('grenier_40/grenier_40_criteres');
include_spip('grenier_40/grenier_40_fonctions');

3
lang/grenier.xml

@ -79,8 +79,9 @@
<langue code="oc_prv" url="https://trad.spip.net/tradlang_module/grenier?lang_cible=oc_prv" total="68" traduits="31" relire="0" modifs="22" nouveaux="15" pourcent="45.59" />
<langue code="oc_va" url="https://trad.spip.net/tradlang_module/grenier?lang_cible=oc_va" total="68" traduits="29" relire="0" modifs="22" nouveaux="17" pourcent="42.65" />
<langue code="pl" url="https://trad.spip.net/tradlang_module/grenier?lang_cible=pl" total="68" traduits="39" relire="0" modifs="24" nouveaux="5" pourcent="57.35" />
<langue code="pt" url="https://trad.spip.net/tradlang_module/grenier?lang_cible=pt" total="68" traduits="36" relire="0" modifs="23" nouveaux="9" pourcent="52.94">
<langue code="pt" url="https://trad.spip.net/tradlang_module/grenier?lang_cible=pt" total="68" traduits="38" relire="0" modifs="21" nouveaux="9" pourcent="55.88">
<traducteur nom="Cláudia Anjos Lopes" lien="https://trad.spip.net/auteur/claudia_a_lopes" />
<traducteur nom="Miguel" lien="https://trad.spip.net/auteur/miguel" />
</langue>
<langue code="pt_br" url="https://trad.spip.net/tradlang_module/grenier?lang_cible=pt_br" total="68" traduits="68" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Ricardo Porto" lien="https://trad.spip.net/auteur/ricardo-porto" />

4
lang/grenier_pt.php

@ -11,8 +11,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// B
'bouton_forum_petition' => 'FÓRUM & ABAIXO-ASSINADO', # MODIF
'bouton_radio_sauvegarde_compressee' => 'Salvaguarda comprimida como @fichier@', # MODIF
'bouton_radio_sauvegarde_non_compressee' => 'salvaguarda não comprimida como @fichier@', # MODIF
'bouton_radio_sauvegarde_compressee' => 'Arquivo comprimido como @fichier@',
'bouton_radio_sauvegarde_non_compressee' => 'Arquivo não comprimido como @fichier@',
// F
'forum_probleme_database' => 'Problema de base de dados, a sua mensagem não foi registada.', # MODIF

8
paquet.xml

@ -1,9 +1,9 @@
ls<paquet
<paquet
prefix="grenier"
categorie="outil"
version="1.0.0"
etat="stable"
compatibilite="[4.0.0-beta;4.0.*]"
version="2.1.0-dev"
etat="dev"
compatibilite="[4.1.0-dev;4.2.*]"
logo="grenier-32.png"
>

15
phpcs.xml.dist

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<ruleset>
<file>.</file>
<exclude-pattern>vendor/*</exclude-pattern>
<exclude-pattern>lang/*</exclude-pattern>
<exclude-pattern>lib/*</exclude-pattern>
<rule ref="SPIP41"/>
<config name="ignore_warnings_on_exit" value="1"/>
<arg name="cache" value=".php_cs.cache"/>
<arg name="report-full" value=".php_cs.txt"/>
<arg name="report-summary"/>
<arg value="s"/>
</ruleset>

597
phpstan-baseline.neon

@ -0,0 +1,597 @@
parameters:
ignoreErrors:
-
message: "#^Function _image_couleur_extraire not found\\.$#"
count: 1
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function afficher_plus\\(\\) should return string but return statement is missing\\.$#"
count: 1
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function afficher_plus_info not found\\.$#"
count: 1
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function boite_fermer not found\\.$#"
count: 1
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function boite_ouvrir not found\\.$#"
count: 1
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function charger_fonction not found\\.$#"
count: 1
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function http_img_pack not found\\.$#"
count: 2
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function http_style_background not found\\.$#"
count: 1
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function include_spip not found\\.$#"
count: 4
path: grenier_32/grenier_32_fonctions.php
-
message: "#^Function include_spip not found\\.$#"
count: 4
path: grenier_32/inc/filtres_images.php
-
message: "#^Function _couleur_dec_to_hex not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _couleur_hex_to_dec not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _couleur_hsl2rgb not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _couleur_hsv2rgb not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _couleur_rgb2hsl not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _couleur_rgb2hsv not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_couleur_extraire not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_creer_vignette not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_decale_composante not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_decale_composante_127 not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_distance_pixel not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_ecrire_tag not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_gd_output not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_imagegif not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_imageico not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_imagepng not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_ratio not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_tag_changer_taille not found\\.$#"
count: 1
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _image_valeurs_trans not found\\.$#"
count: 2
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function filtrer not found\\.$#"
count: 2
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function include_spip not found\\.$#"
count: 21
path: grenier_32/inc/filtres_images_compat.php
-
message: "#^Function _request not found\\.$#"
count: 1
path: grenier_40/balise/login_prive.php
-
message: "#^Function balise_FORMULAIRE__dyn not found\\.$#"
count: 1
path: grenier_40/balise/login_prive.php
-
message: "#^Function calculer_balise_dynamique not found\\.$#"
count: 1
path: grenier_40/balise/login_prive.php
-
message: "#^Function generer_url_ecrire not found\\.$#"
count: 1
path: grenier_40/balise/login_prive.php
-
message: "#^Function include_spip not found\\.$#"
count: 1
path: grenier_40/balise/login_prive.php
-
message: "#^Function _request not found\\.$#"
count: 1
path: grenier_40/balise/login_public.php
-
message: "#^Function balise_FORMULAIRE__dyn not found\\.$#"
count: 1
path: grenier_40/balise/login_public.php
-
message: "#^Function calculer_balise_dynamique not found\\.$#"
count: 1
path: grenier_40/balise/login_public.php
-
message: "#^Function include_spip not found\\.$#"
count: 1
path: grenier_40/balise/login_public.php
-
message: "#^Function parametre_url not found\\.$#"
count: 1
path: grenier_40/balise/login_public.php
-
message: "#^Function self not found\\.$#"
count: 1
path: grenier_40/balise/login_public.php
-
message: "#^Function _request not found\\.$#"
count: 3
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function charger_fonction not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function creer_colonne_droite not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function debut_droite not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function debut_gauche not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function debut_grand_cadre not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function fin_gauche not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function fin_grand_cadre not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function fin_page not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function include_spip not found\\.$#"
count: 2
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function minipres not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function pipeline not found\\.$#"
count: 4
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function recuperer_fond not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function trouver_objet_exec not found\\.$#"
count: 1
path: grenier_40/exec/fond_monobloc.php
-
message: "#^Function _T not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function _mysql_link not found\\.$#"
count: 2
path: grenier_40/grenier_40_actions.php
-
message: "#^Function _q not found\\.$#"
count: 2
path: grenier_40/grenier_40_actions.php
-
message: "#^Function article_inserer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function article_instituer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function article_modifier not found\\.$#"
count: 3
path: grenier_40/grenier_40_actions.php
-
message: "#^Function auteur_associer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function auteur_inserer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function auteur_instituer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function auteur_modifier not found\\.$#"
count: 2
path: grenier_40/grenier_40_actions.php
-
message: "#^Function breve_inserer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function breve_modifier not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function document_inserer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function document_instituer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function document_modifier not found\\.$#"
count: 2
path: grenier_40/grenier_40_actions.php
-
message: "#^Function ecrire_meta not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function groupe_mots_inserer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function groupe_mots_modifier not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function include_spip not found\\.$#"
count: 3
path: grenier_40/grenier_40_actions.php
-
message: "#^Function mot_inserer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function mot_modifier not found\\.$#"
count: 2
path: grenier_40/grenier_40_actions.php
-
message: "#^Function objet_instituer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function objet_modifier not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function objet_modifier_champs not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function objet_type not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function rubrique_inserer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function rubrique_instituer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function rubrique_modifier not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function site_inserer not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function site_modifier not found\\.$#"
count: 2
path: grenier_40/grenier_40_actions.php
-
message: "#^Function spip_log not found\\.$#"
count: 2
path: grenier_40/grenier_40_actions.php
-
message: "#^Function spip_release_lock\\(\\) should return bool\\|string but return statement is missing\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function sql_fetch not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function sql_quote not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function sql_updateq not found\\.$#"
count: 1
path: grenier_40/grenier_40_actions.php
-
message: "#^Function calcul_branche_in not found\\.$#"
count: 1
path: grenier_40/grenier_40_autres.php
-
message: "#^Function charger_fonction not found\\.$#"
count: 1
path: grenier_40/grenier_40_autres.php
-
message: "#^Function creer_repertoire_documents not found\\.$#"
count: 1
path: grenier_40/grenier_40_autres.php
-
message: "#^Function decrire_version_svn not found\\.$#"