Fix : correction de tous les appels à count() sur une variable non définie pour compatibilité PHP 8. Passage en SPIP 4.2. TODO : passer les scss de Bootstrap 4.0 (LESS) à SCSSPHP
This commit is contained in:
parent
4431d1da0d
commit
3e7879fc8c
8 changed files with 97 additions and 12 deletions
|
@ -164,6 +164,7 @@ function formulaires_editer_auteur_verifier_dist(
|
||||||
$oblis[] = 'new_login';
|
$oblis[] = 'new_login';
|
||||||
}
|
}
|
||||||
// mais il reste obligatoire si on a rien trouve
|
// mais il reste obligatoire si on a rien trouve
|
||||||
|
$erreurs = [];
|
||||||
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
||||||
if (isset($erreurs['new_login'])) {
|
if (isset($erreurs['new_login'])) {
|
||||||
$erreurs['login'] = $erreurs['new_login'];
|
$erreurs['login'] = $erreurs['new_login'];
|
||||||
|
|
|
@ -176,8 +176,7 @@ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
|
||||||
);
|
);
|
||||||
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
|
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
|
||||||
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
|
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
|
||||||
$Tauteurs = _request('Tauteurs');
|
$Tauteurs = _request('Tauteurs') ?? [];
|
||||||
|
|
||||||
if (count($Tauteurs)) {
|
if (count($Tauteurs)) {
|
||||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||||
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
||||||
|
@ -204,7 +203,7 @@ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
|
||||||
|
|
||||||
$ids_mots = sql_allfetsel('M.id_mot AS id_mot', $from, $where);
|
$ids_mots = sql_allfetsel('M.id_mot AS id_mot', $from, $where);
|
||||||
$ids_mots = array_column($ids_mots, 'id_mot');
|
$ids_mots = array_column($ids_mots, 'id_mot');
|
||||||
$coches = _request('id_groupe_'.$id_groupe);
|
$coches = _request('id_groupe_'.$id_groupe) ?? [];
|
||||||
if (count($coches)) {
|
if (count($coches)) {
|
||||||
$associer = array_diff($coches, $ids_mots);
|
$associer = array_diff($coches, $ids_mots);
|
||||||
$dissocier = array_diff($ids_mots, $coches);
|
$dissocier = array_diff($ids_mots, $coches);
|
||||||
|
|
|
@ -161,6 +161,7 @@ function formulaires_editer_membre_verifier_dist(
|
||||||
$oblis[] = 'new_login';
|
$oblis[] = 'new_login';
|
||||||
}
|
}
|
||||||
// mais il reste obligatoire si on a rien trouve
|
// mais il reste obligatoire si on a rien trouve
|
||||||
|
$erreurs = [];
|
||||||
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
||||||
if (isset($erreurs['new_login'])) {
|
if (isset($erreurs['new_login'])) {
|
||||||
$erreurs['login'] = $erreurs['new_login'];
|
$erreurs['login'] = $erreurs['new_login'];
|
||||||
|
|
|
@ -60,7 +60,7 @@ function formulaires_editer_post_charger_dist($id_article=0, $redirect=''){
|
||||||
'L.objet="article"',
|
'L.objet="article"',
|
||||||
'L.id_gis=G.id_gis'
|
'L.id_gis=G.id_gis'
|
||||||
);
|
);
|
||||||
$res = sql_fetsel('G.lat, G.lon', $from, $where);
|
$res = sql_fetsel('G.lat, G.lon', $from, $where) ?? [];
|
||||||
if (count($res)) {
|
if (count($res)) {
|
||||||
$valeurs['lat'] = $res['lat'];
|
$valeurs['lat'] = $res['lat'];
|
||||||
$valeurs['lon'] = $res['lon'];
|
$valeurs['lon'] = $res['lon'];
|
||||||
|
@ -155,7 +155,7 @@ function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){
|
||||||
);
|
);
|
||||||
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
|
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
|
||||||
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
|
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
|
||||||
$Tauteurs = _request('Tauteurs');
|
$Tauteurs = _request('Tauteurs') ?? [];
|
||||||
if (count($Tauteurs)) {
|
if (count($Tauteurs)) {
|
||||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||||
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
||||||
|
@ -188,8 +188,7 @@ function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$coches = _request('id_emplacements');
|
$coches = _request('id_emplacements') ?? [];
|
||||||
|
|
||||||
if (count($coches)){
|
if (count($coches)){
|
||||||
$associer = array_diff($coches, $T_ids_mots);
|
$associer = array_diff($coches, $T_ids_mots);
|
||||||
$dissocier = array_diff($T_ids_mots, $coches);
|
$dissocier = array_diff($T_ids_mots, $coches);
|
||||||
|
@ -265,7 +264,8 @@ function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){
|
||||||
$retour = array();
|
$retour = array();
|
||||||
$retour['message_ok'] = "L'article est bien enregistré.";
|
$retour['message_ok'] = "L'article est bien enregistré.";
|
||||||
if ($new==0){
|
if ($new==0){
|
||||||
$redirect .= '&id_article=' . $id_article;
|
//$redirect .= '&id_article=' . $id_article;
|
||||||
|
$redirect = parametre_url($redirect, 'id_article', $id_article);
|
||||||
}
|
}
|
||||||
$retour['redirect'] = $redirect;
|
$retour['redirect'] = $redirect;
|
||||||
|
|
||||||
|
|
|
@ -107,8 +107,7 @@ function formulaires_editer_sujet_traiter_dist($id_article = 0, $id_rubrique, $r
|
||||||
);
|
);
|
||||||
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
|
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
|
||||||
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
|
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
|
||||||
$Tauteurs = _request('Tauteurs');
|
$Tauteurs = _request('Tauteurs') ?? [];
|
||||||
if (count($Tauteurs)) {
|
|
||||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||||
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ function formulaires_inscription_charger_dist($mode = '', $id = 0, $redirect =''
|
||||||
// Si inscriptions pas autorisees, retourner une chaine d'avertissement
|
// Si inscriptions pas autorisees, retourner une chaine d'avertissement
|
||||||
function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='') {
|
function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='') {
|
||||||
|
|
||||||
$erreurs = array();
|
$erreurs = [];
|
||||||
include_spip('inc/config');
|
include_spip('inc/config');
|
||||||
|
|
||||||
set_request("_upgrade_auteur"); // securite
|
set_request("_upgrade_auteur"); // securite
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
categorie="squelette"
|
categorie="squelette"
|
||||||
version="1.0.0"
|
version="1.0.0"
|
||||||
etat="stable"
|
etat="stable"
|
||||||
compatibilite="[3.1.7;3.3.*]"
|
compatibilite="[4.0.0;4.2.*]"
|
||||||
logo="img/balint_64.png"
|
logo="img/balint_64.png"
|
||||||
documentation=""
|
documentation=""
|
||||||
schema="1.0.7"
|
schema="1.0.7"
|
||||||
|
|
85
urls/propres.php
Normal file
85
urls/propres.php
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Gestion des URLs propres : surcharge (voir @notes pour le pourquoi et le comment)
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined("_ECRIRE_INC_VERSION")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrouve le fond et les paramètres d'une URL propre
|
||||||
|
* ou produit l'URL propre d'un objet, en fonction des paramètres passés.
|
||||||
|
*
|
||||||
|
* @note
|
||||||
|
* À défaut de pipeline dont on pourrait se servir, on est obligé de surcharger
|
||||||
|
* la fonction urls_propres_dist pour gérer correctement les URLS des pages.
|
||||||
|
* Néammoins, une fois le cas des pages évacué, c'est toujours la fonction dist qui est utilisée.
|
||||||
|
*
|
||||||
|
* La fonction dist est prévue pour gérer les URLs des objets.
|
||||||
|
* Pour un objet donné, elle va chercher l'URL la plus récente dans `spip_urls`.
|
||||||
|
* Or toutes les URLs des pages seraient identifiées comme se rapportant au même objet, avec type='' et id_objet=0,
|
||||||
|
* et du coup seraient redirigées vers la même URL : celle la plus récente.
|
||||||
|
*
|
||||||
|
* On ne serait pas obligé de surcharger on utilisant type=`page` et id_objet=N pour les URLs des pages,
|
||||||
|
* mais le contexte retourné serait erroné : `id_page = N` au lieu de `page = X`
|
||||||
|
*
|
||||||
|
* Valeurs des paramètres quand il s'agit d'une page :
|
||||||
|
* $i = URL personnalisée
|
||||||
|
* $entite = ''
|
||||||
|
*
|
||||||
|
* @param integer | string
|
||||||
|
* URL si on veut retourner son fond et ses paramètres
|
||||||
|
* Numéro d'un objet si on veut retourner son URL propre
|
||||||
|
* @param string $entite
|
||||||
|
* Fond si on veut retourner le fond et les paramètres d'une URL
|
||||||
|
* Type d'un objet si on veut retourner son URL propre
|
||||||
|
* @param array | string $args
|
||||||
|
* @param string $ancre
|
||||||
|
* @return array
|
||||||
|
* Fond et paramètres d'une URL propre : [contexte],[type],[url_redirect],[fond]
|
||||||
|
* ou URL décodée de l'objet donné
|
||||||
|
*/
|
||||||
|
function urls_propres_decoder_url($i, $entite, $args = '', $ancre = '') {
|
||||||
|
include_spip('base/abstract_sql');
|
||||||
|
// 1) Gestion des pages (voir @note)
|
||||||
|
if (is_string($i) // c'est une URL et pas un id
|
||||||
|
and strlen($i)
|
||||||
|
and strpos($i, '/') === false // ce n'est pas une URL arborescente
|
||||||
|
and !$entite // ce n'est pas l'URL d'un objet
|
||||||
|
and $url = strtok($i, '?') // retirer les query strings
|
||||||
|
and $ligne = sql_fetsel('page, url', 'spip_urls', array('url = ' . sql_quote($url), 'page != \'\''))
|
||||||
|
) {
|
||||||
|
$fond = $page = $ligne['page'];
|
||||||
|
// récupérer le contexte
|
||||||
|
if (is_array($args)){
|
||||||
|
$contexte = $args;
|
||||||
|
} else {
|
||||||
|
$contexte = array();
|
||||||
|
}
|
||||||
|
$contexte['page'] = $page;
|
||||||
|
$retour = array(
|
||||||
|
$contexte,
|
||||||
|
$entite,
|
||||||
|
'',
|
||||||
|
$fond,
|
||||||
|
);
|
||||||
|
|
||||||
|
// 2) S'il ne s'agit pas d'une page, appel de la fonction dist
|
||||||
|
} else {
|
||||||
|
include_spip(_DIR_PLUGIN_URLS.'urls/propres');
|
||||||
|
$retour = urls_propres_decoder_url_dist($i, $entite, $args, $ancre);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $retour;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* include de tout le fichier urls/propres.php du plugin-dist url_etendues
|
||||||
|
* pour avoir toutes les fonctions que n'a pas la surcharge du plugin urls_pages
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
include_spip('plugins-dist/urls_etendues/urls/propres');
|
||||||
|
|
Loading…
Add table
Reference in a new issue