Browse Source

cs-autofixes (#4868)

* Passe 1 : le Spacing générique et les déclarations de classes et de fonctions 1217 fixes dans 158 fichiers
* Passe 2 : Structures de contrôle (if, for, etc.) 967 fixes dans 168 fichiers
* Passe 3 : Appels de fonctions, instanciations de classes 1810 fixes dans 128 fichiers
* Passe 4 : Quotes, Double-quotes 3179 fixes dans 174 fichiers
* Passe 5 : Short Array syntax 2697 fixes dans 248 fichiers

Co-authored-by: JamesRezo <james@rezo.net>
Reviewed-on: #4868
Co-authored-by: JamesRezo <jamesrezo@noreply.git.spip.net>
Co-committed-by: JamesRezo <jamesrezo@noreply.git.spip.net>
pull/4870/head
JamesRezo 5 months ago
parent
commit
7fa313e1a4
  1. 14
      ecrire/action/activer_plugins.php
  2. 4
      ecrire/action/ajouter_lien.php
  3. 3
      ecrire/action/annuler_job.php
  4. 2
      ecrire/action/auth.php
  5. 13
      ecrire/action/calculer_taille_cache.php
  6. 11
      ecrire/action/confirmer_email.php
  7. 7
      ecrire/action/confirmer_inscription.php
  8. 2
      ecrire/action/converser.php
  9. 27
      ecrire/action/cookie.php
  10. 2
      ecrire/action/debloquer_edition.php
  11. 8
      ecrire/action/desinstaller_plugin.php
  12. 146
      ecrire/action/editer_article.php
  13. 121
      ecrire/action/editer_auteur.php
  14. 218
      ecrire/action/editer_liens.php
  15. 39
      ecrire/action/editer_logo.php
  16. 196
      ecrire/action/editer_objet.php
  17. 82
      ecrire/action/editer_rubrique.php
  18. 6
      ecrire/action/etre_webmestre.php
  19. 6
      ecrire/action/forcer_job.php
  20. 44
      ecrire/action/inscrire_auteur.php
  21. 20
      ecrire/action/instituer_langue_objet.php
  22. 21
      ecrire/action/instituer_langue_rubrique.php
  23. 11
      ecrire/action/instituer_objet.php
  24. 28
      ecrire/action/logout.php
  25. 24
      ecrire/action/menu_rubriques.php
  26. 14
      ecrire/action/purger.php
  27. 1
      ecrire/action/purger_queue.php
  28. 7
      ecrire/action/redirect.php
  29. 19
      ecrire/action/referencer_traduction.php
  30. 4
      ecrire/action/relancer_inscription.php
  31. 3
      ecrire/action/session.php
  32. 4
      ecrire/action/supprimer_lien.php
  33. 21
      ecrire/action/supprimer_rubrique.php
  34. 95
      ecrire/action/tester.php
  35. 16
      ecrire/action/tester_taille.php
  36. 61
      ecrire/auth/ldap.php
  37. 163
      ecrire/auth/spip.php
  38. 71
      ecrire/balise/formulaire_.php
  39. 30
      ecrire/balise/formulaire_admin.php
  40. 16
      ecrire/balise/formulaire_ecrire_auteur.php
  41. 4
      ecrire/balise/formulaire_inscription.php
  42. 3
      ecrire/balise/info_.php
  43. 10
      ecrire/balise/logo_.php
  44. 2
      ecrire/balise/menu_lang.php
  45. 10
      ecrire/balise/menu_lang_ecrire.php
  46. 17
      ecrire/balise/url_.php
  47. 6
      ecrire/balise/url_logout.php
  48. 169
      ecrire/base/abstract_sql.php
  49. 46
      ecrire/base/connect_sql.php
  50. 13
      ecrire/base/create.php
  51. 2
      ecrire/base/delete_all.php
  52. 225
      ecrire/base/dump.php
  53. 384
      ecrire/base/objets.php
  54. 30
      ecrire/base/repair.php
  55. 28
      ecrire/base/trouver_table.php
  56. 37
      ecrire/base/upgrade.php
  57. 4
      ecrire/charsets/cp1250.php
  58. 4
      ecrire/charsets/cp1251.php
  59. 4
      ecrire/charsets/cp1256.php
  60. 4
      ecrire/charsets/html.php
  61. 4
      ecrire/charsets/iso-8859-1.php
  62. 4
      ecrire/charsets/iso-8859-6.php
  63. 5
      ecrire/charsets/mathml.php
  64. 4
      ecrire/charsets/translit.php
  65. 4
      ecrire/charsets/translitcomplexe.php
  66. 10
      ecrire/exec/403.php
  67. 8
      ecrire/exec/404.php
  68. 64
      ecrire/exec/admin_plugin.php
  69. 10
      ecrire/exec/base_delete_all.php
  70. 7
      ecrire/exec/demande_mise_a_jour.php
  71. 6
      ecrire/exec/fond.php
  72. 4
      ecrire/exec/info_plugin.php
  73. 5
      ecrire/exec/install.php
  74. 2
      ecrire/exec/plonger.php
  75. 7
      ecrire/exec/puce_statut.php
  76. 49
      ecrire/exec/rechercher.php
  77. 2
      ecrire/exec/selectionner.php
  78. 27
      ecrire/exec/upgrade.php
  79. 13
      ecrire/genie/mail.php
  80. 21
      ecrire/genie/maintenance.php
  81. 41
      ecrire/genie/mise_a_jour.php
  82. 56
      ecrire/genie/optimiser.php
  83. 36
      ecrire/inc/acces.php
  84. 4
      ecrire/inc/actions.php
  85. 17
      ecrire/inc/admin.php
  86. 62
      ecrire/inc/auth.php
  87. 133
      ecrire/inc/autoriser.php
  88. 38
      ecrire/inc/bandeau.php
  89. 17
      ecrire/inc/boutons.php
  90. 165
      ecrire/inc/charsets.php
  91. 14
      ecrire/inc/chercher_logo.php
  92. 69
      ecrire/inc/chercher_rubrique.php
  93. 30
      ecrire/inc/commencer_page.php
  94. 18
      ecrire/inc/completer_traduction.php
  95. 72
      ecrire/inc/config.php
  96. 3
      ecrire/inc/cookie.php
  97. 46
      ecrire/inc/couleurs.php
  98. 53
      ecrire/inc/csv.php
  99. 18
      ecrire/inc/cvt_autosave.php
  100. 48
      ecrire/inc/cvt_configurer.php

14
ecrire/action/activer_plugins.php

@ -30,7 +30,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function enregistre_modif_plugin() {
include_spip('inc/plugin');
// recuperer les plugins dans l'ordre des $_POST
$test = array();
$test = [];
foreach (liste_plugin_files() as $file) {
$test['s' . substr(md5(_DIR_PLUGINS . $file), 0, 16)] = $file;
}
@ -40,7 +40,7 @@ function enregistre_modif_plugin() {
}
}
$plugin = array();
$plugin = [];
foreach ($_POST as $choix => $val) {
if (isset($test[$choix]) && $val == 'O') {
@ -48,17 +48,19 @@ function enregistre_modif_plugin() {
}
}
spip_log("Changement des plugins actifs par l'auteur " . $GLOBALS['visiteur_session']['id_auteur'] . ": " . join(',',
$plugin));
spip_log("Changement des plugins actifs par l'auteur " . $GLOBALS['visiteur_session']['id_auteur'] . ': ' . join(
',',
$plugin
));
ecrire_plugin_actifs($plugin);
// Chaque fois que l'on valide des plugins, on memorise la liste de ces plugins comme etant "interessants", avec un score initial, qui sera decremente a chaque tour : ainsi un plugin active pourra reter visible a l'ecran, jusqu'a ce qu'il tombe dans l'oubli.
$plugins_interessants = @unserialize($GLOBALS['meta']['plugins_interessants']);
if (!is_array($plugins_interessants)) {
$plugins_interessants = array();
$plugins_interessants = [];
}
$plugins_interessants2 = array();
$plugins_interessants2 = [];
foreach ($plugins_interessants as $plug => $score) {
if ($score > 1) {

4
ecrire/action/ajouter_lien.php

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

3
ecrire/action/annuler_job.php

@ -29,7 +29,8 @@ function action_annuler_job_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$id_job = $securiser_action();
if ($id_job = intval($id_job)
if (
$id_job = intval($id_job)
and autoriser('annuler', 'job', $id_job)
) {
job_queue_remove($id_job);

2
ecrire/action/auth.php

@ -28,7 +28,7 @@ function action_auth_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
if (!preg_match(",^(\w+)[/](.+)$,", $arg, $r)) {
if (!preg_match(',^(\w+)[/](.+)$,', $arg, $r)) {
spip_log("action_auth_dist $arg pas compris");
} else {
$auth_methode = $r[1];

13
ecrire/action/calculer_taille_cache.php

@ -39,11 +39,12 @@ function action_calculer_taille_cache_dist($arg = null) {
if ($arg == 'images') {
$taille = calculer_taille_dossier(_DIR_VAR);
$res = _T('ecrire:taille_cache_image',
array(
$res = _T(
'ecrire:taille_cache_image',
[
'dir' => joli_repertoire(_DIR_VAR),
'taille' => "<b>" . (taille_en_octets($taille) > 0 ? taille_en_octets($taille) : "0 octet") . "</b>"
)
'taille' => '<b>' . (taille_en_octets($taille) > 0 ? taille_en_octets($taille) : '0 octet') . '</b>'
]
);
} else {
include_spip('inc/invalideur');
@ -56,9 +57,9 @@ function action_calculer_taille_cache_dist($arg = null) {
if ($taille <= 150000) {
$res = _T('taille_cache_vide');
} elseif ($taille <= 1024 * 1024) {
$res = _T('taille_cache_moins_de', array('octets' => taille_en_octets(1024 * 1024)));
$res = _T('taille_cache_moins_de', ['octets' => taille_en_octets(1024 * 1024)]);
} else {
$res = _T('taille_cache_octets', array('octets' => taille_en_octets($taille)));
$res = _T('taille_cache_octets', ['octets' => taille_en_octets($taille)]);
}
$res = "<b>$res</b>";
}

11
ecrire/action/confirmer_email.php

@ -34,14 +34,17 @@ function action_confirmer_email_dist() {
include_spip('inc/filtres');
if ($GLOBALS['visiteur_session']['id_auteur'] and email_valide($arg)) {
include_spip('action/editer_auteur');
auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], array('email' => $arg));
auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], ['email' => $arg]);
}
// verifier avant de rediriger pour invalider le message de confirmation
// si ca n'a pas marche
if ($redirect = _request('redirect') and !$arg == sql_getfetsel('email', 'spip_auteurs',
'id_auteur=' . intval($GLOBALS['visiteur_session']))
if (
$redirect = _request('redirect') and !$arg == sql_getfetsel(
'email',
'spip_auteurs',
'id_auteur=' . intval($GLOBALS['visiteur_session'])
)
) {
$GLOBALS['redirect'] = parametre_url($redirect, 'email_modif', '');
}
}

7
ecrire/action/confirmer_inscription.php

@ -32,11 +32,11 @@ function action_confirmer_inscription_dist() {
$email = _request('email');
include_spip('action/inscrire_auteur');
if ($auteur = auteur_verifier_jeton($jeton)
if (
$auteur = auteur_verifier_jeton($jeton)
and $auteur['email'] == $email
and $auteur['statut'] == 'nouveau'
) {
// d'abord on confirme son statut
$auteur = confirmer_statut_inscription($auteur);
@ -55,7 +55,7 @@ function action_confirmer_inscription_dist() {
if (autoriser('ecrire', '', '', $auteur['id_auteur'])) {
// poser un cookie admin aussi
$cookie = charger_fonction('cookie', 'action');
$cookie("@" . $GLOBALS['visiteur_session']['login']);
$cookie('@' . $GLOBALS['visiteur_session']['login']);
$GLOBALS['redirect'] = _DIR_RESTREINT_ABS;
} else {
$GLOBALS['redirect'] = $GLOBALS['meta']['adresse_site'];
@ -75,5 +75,4 @@ function action_confirmer_inscription_dist() {
$GLOBALS['redirect'] = parametre_url(generer_url_public('login', '', false), 'url', _request('redirect'));
}
}
}

2
ecrire/action/converser.php

@ -60,7 +60,7 @@ function action_converser_changer_langue($update_session) {
action_converser_post($lang);
} elseif ($lang = _request('var_lang_ecrire')) {
if ($update_session) {
sql_updateq("spip_auteurs", array("lang" => $lang), "id_auteur = " . $GLOBALS['visiteur_session']['id_auteur']);
sql_updateq('spip_auteurs', ['lang' => $lang], 'id_auteur = ' . $GLOBALS['visiteur_session']['id_auteur']);
$GLOBALS['visiteur_session']['lang'] = $lang;
$session = charger_fonction('session', 'inc');
if ($spip_session = $session($GLOBALS['visiteur_session'])) {

27
ecrire/action/cookie.php

@ -35,7 +35,7 @@ include_spip('inc/cookie');
function action_cookie_dist($set_cookie_admin = null, $change_session = null) {
$redirect_echec = $redirect = null;
$test_echec_cookie = null;
$url = "";
$url = '';
if (is_null($set_cookie_admin)) {
$set_cookie_admin = _request('cookie_admin');
$change_session = _request('change_session');
@ -59,7 +59,7 @@ function action_cookie_dist($set_cookie_admin = null, $change_session = null) {
if ($change_session == 'oui') {
$session = charger_fonction('session', 'inc');
$session(true);
spip_log("statut 204 pour " . $_SERVER['REQUEST_URI']);
spip_log('statut 204 pour ' . $_SERVER['REQUEST_URI']);
http_status(204); // No Content
return;
}
@ -67,36 +67,41 @@ function action_cookie_dist($set_cookie_admin = null, $change_session = null) {
// tentative de connexion en auth_http
if (_request('essai_auth_http') and !$GLOBALS['ignore_auth_http']) {
include_spip('inc/auth');
if (@$_SERVER['PHP_AUTH_USER']
if (
@$_SERVER['PHP_AUTH_USER']
and @$_SERVER['PHP_AUTH_PW']
and $auteur = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])
) {
auth_loger($auteur);
redirige_par_entete(parametre_url($redirect, 't', time(), '&'));
} else {
ask_php_auth(_T('info_connexion_refusee'),
ask_php_auth(
_T('info_connexion_refusee'),
_T('login_login_pass_incorrect'),
_T('login_retour_site'),
"url=" . rawurlencode($redirect),
'url=' . rawurlencode($redirect),
_T('login_nouvelle_tentative'),
(strpos($url, _DIR_RESTREINT_ABS) !== false));
(strpos($url, _DIR_RESTREINT_ABS) !== false)
);
}
} else {
// en cas de login sur bonjour=oui, on tente de poser un cookie
// puis de passer au login qui diagnostiquera l'echec de cookie
// le cas echeant.
if ($test_echec_cookie == 'oui') {
spip_setcookie('spip_session', 'test_echec_cookie');
if ($redirect) {
$redirect = parametre_url(parametre_url($redirect_echec, 'var_echec_cookie', 'oui', '&'), 'url',
rawurlencode($redirect), '&');
$redirect = parametre_url(
parametre_url($redirect_echec, 'var_echec_cookie', 'oui', '&'),
'url',
rawurlencode($redirect),
'&'
);
}
} else {
$cook = isset($_COOKIE['spip_admin']) ? $_COOKIE['spip_admin'] : '';
// Suppression cookie d'admin ?
if ($set_cookie_admin == "non") {
if ($set_cookie_admin == 'non') {
if ($cook) {
spip_setcookie('spip_admin', $cook, [
'expires' => time() - 3600 * 24

2
ecrire/action/debloquer_edition.php

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

8
ecrire/action/desinstaller_plugin.php

@ -34,16 +34,16 @@ function action_desinstaller_plugin_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
list($dir_plugins, $plugin) = explode("::", $arg);
$dir_type = "_DIR_PLUGINS";
list($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";
$dir_type = '_DIR_PLUGINS_SUPPL';
}
$installer_plugins = charger_fonction('installer', 'plugins');
$infos = $installer_plugins($plugin, 'uninstall', $dir_type);
if ($infos and !$infos['install_test'][0]) {
include_spip('inc/plugin');
ecrire_plugin_actifs(array($plugin), false, 'enleve');
ecrire_plugin_actifs([$plugin], false, 'enleve');
$erreur = '';
} else {
$erreur = 'erreur_plugin_desinstalation_echouee';

146
ecrire/action/editer_article.php

@ -41,20 +41,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*/
function action_editer_article_dist($arg = null) {
include_spip('inc/autoriser');
$err = "";
$err = '';
if (is_null($arg)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
// si id_article n'est pas un nombre, c'est une creation
// si id_article n'est pas un nombre, c'est une creation
// mais on verifie qu'on a toutes les donnees qu'il faut.
if (!$id_article = intval($arg)) {
$id_parent = _request('id_parent');
if (!$id_parent) {
$err = _L("creation interdite d'un article sans rubrique");
} elseif (!autoriser('creerarticledans', 'rubrique', $id_parent)) {
$err = _T("info_creerdansrubrique_non_autorise");
$err = _T('info_creerdansrubrique_non_autorise');
} else {
$id_article = article_inserer($id_parent);
}
@ -69,7 +69,7 @@ function action_editer_article_dist($arg = null) {
spip_log("echec editeur article: $err", _LOG_ERREUR);
}
return array($id_article, $err);
return [$id_article, $err];
}
/**
@ -100,34 +100,38 @@ function article_modifier($id_article, $set = null) {
// white list
objet_info('article', 'champs_editables'),
// black list
array('date', 'statut', 'id_parent'),
['date', 'statut', 'id_parent'],
// donnees eventuellement fournies
$set
);
// Si l'article est publie, invalider les caches et demander sa reindexation
$t = sql_getfetsel("statut", "spip_articles", "id_article=" . intval($id_article));
$t = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id_article));
$invalideur = $indexation = false;
if ($t == 'publie') {
$invalideur = "id='article/$id_article'";
$indexation = true;
}
if ($err = objet_modifier_champs('article', $id_article,
array(
if (
$err = objet_modifier_champs(
'article',
$id_article,
[
'data' => $set,
'nonvide' => array('titre' => _T('info_nouvel_article') . " " . _T('info_numero_abbreviation') . $id_article),
'nonvide' => ['titre' => _T('info_nouvel_article') . ' ' . _T('info_numero_abbreviation') . $id_article],
'invalideur' => $invalideur,
'indexation' => $indexation,
'date_modif' => 'date_modif' // champ a mettre a date('Y-m-d H:i:s') s'il y a modif
),
$c)
],
$c
)
) {
return $err;
}
// Modification de statut, changement de rubrique ?
$c = collecter_requests(array('date', 'statut', 'id_parent'), array(), $set);
$c = collecter_requests(['date', 'statut', 'id_parent'], [], $set);
$err = article_instituer($id_article, $c);
return $err;
@ -169,29 +173,36 @@ function article_inserer($id_rubrique, $set = null) {
// Si id_rubrique vaut 0 ou n'est pas definie, creer l'article
// dans la premiere rubrique racine
if (!$id_rubrique = intval($id_rubrique)) {
$row = sql_fetsel("id_rubrique, id_secteur, lang", "spip_rubriques", "id_parent=0", '', '0+titre,titre', "1");
$row = sql_fetsel('id_rubrique, id_secteur, lang', 'spip_rubriques', 'id_parent=0', '', '0+titre,titre', '1');
$id_rubrique = $row['id_rubrique'];
} else {
$row = sql_fetsel("lang, id_secteur", "spip_rubriques", "id_rubrique=$id_rubrique");
$row = sql_fetsel('lang, id_secteur', 'spip_rubriques', "id_rubrique=$id_rubrique");
}
// eviter $id_secteur = NULL (erreur sqlite) si la requete precedente echoue
// 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'] : '';
$lang = "";
$lang = '';
$choisie = 'non';
// La langue a la creation : si les liens de traduction sont autorises
// dans les rubriques, on essaie avec la langue de l'auteur,
// ou a defaut celle de la rubrique
// Sinon c'est la langue de la rubrique qui est choisie + heritee
if (!empty($GLOBALS['meta']['multi_objets']) and in_array('spip_articles',
explode(',', $GLOBALS['meta']['multi_objets']))
if (
!empty($GLOBALS['meta']['multi_objets']) and in_array(
'spip_articles',
explode(',', $GLOBALS['meta']['multi_objets'])
)
) {
lang_select($GLOBALS['visiteur_session']['lang']);
if (in_array($GLOBALS['spip_lang'],
explode(',', $GLOBALS['meta']['langues_multilingue']))) {
if (
in_array(
$GLOBALS['spip_lang'],
explode(',', $GLOBALS['meta']['langues_multilingue'])
)
) {
$lang = $GLOBALS['spip_lang'];
$choisie = 'oui';
}
@ -202,30 +213,31 @@ function article_inserer($id_rubrique, $set = null) {
$lang = $lang_rub ? $lang_rub : $GLOBALS['meta']['langue_site'];
}
$champs = array(
$champs = [
'id_rubrique' => $id_rubrique,
'id_secteur' => $id_secteur,
'statut' => 'prepa',
'date' => date('Y-m-d H:i:s'),
'lang' => $lang,
'langue_choisie' => $choisie
);
];
if ($set) {
$champs = array_merge($champs, $set);
}
// Envoyer aux plugins
$champs = pipeline('pre_insertion',
array(
'args' => array(
$champs = pipeline(
'pre_insertion',
[
'args' => [
'table' => 'spip_articles',
),
],
'data' => $champs
)
]
);
$id_article = sql_insertq("spip_articles", $champs);
$id_article = sql_insertq('spip_articles', $champs);
// controler si le serveur n'a pas renvoye une erreur
if ($id_article > 0) {
@ -234,18 +246,19 @@ function article_inserer($id_rubrique, $set = null) {
: _request('id_auteur'));
if ($id_auteur) {
include_spip('action/editer_auteur');
auteur_associer($id_auteur, array('article' => $id_article));
auteur_associer($id_auteur, ['article' => $id_article]);
}
}
pipeline('post_insertion',
array(
'args' => array(
pipeline(
'post_insertion',
[
'args' => [
'table' => 'spip_articles',
'id_objet' => $id_article
),
],
'data' => $champs
)
]
);
return $id_article;
@ -280,11 +293,11 @@ function article_instituer($id_article, $c, $calcul_rub = true) {
include_spip('inc/rubriques');
include_spip('inc/modifier');
$row = sql_fetsel("statut, date, id_rubrique", "spip_articles", "id_article=$id_article");
$row = sql_fetsel('statut, date, id_rubrique', 'spip_articles', "id_article=$id_article");
$id_rubrique = $row['id_rubrique'];
$statut_ancien = $statut = $row['statut'];
$date_ancienne = $date = $row['date'];
$champs = array();
$champs = [];
$d = isset($c['date']) ? $c['date'] : null;
$s = isset($c['statut']) ? $c['statut'] : $statut;
@ -305,8 +318,9 @@ function article_instituer($id_article, $c, $calcul_rub = true) {
// sauf si $c commande autre chose
// ou si l'article est deja date dans le futur
// En cas de proposition d'un article (mais pas depublication), idem
if ($champs['statut'] == 'publie'
or ($champs['statut'] == 'prop' and ($d or !in_array($statut_ancien, array('publie', 'prop'))))
if (
$champs['statut'] == 'publie'
or ($champs['statut'] == 'prop' and ($d or !in_array($statut_ancien, ['publie', 'prop'])))
) {
if ($d or strtotime($d = $date) > time()) {
$champs['date'] = $date = $d;
@ -318,17 +332,19 @@ function article_instituer($id_article, $c, $calcul_rub = true) {
// Verifier que la rubrique demandee existe et est differente
// de la rubrique actuelle
if (isset($c['id_parent'])
if (
isset($c['id_parent'])
and $id_parent = $c['id_parent']
and $id_parent != $id_rubrique
and (sql_fetsel('1', "spip_rubriques", "id_rubrique=" . intval($id_parent)))
and (sql_fetsel('1', 'spip_rubriques', 'id_rubrique=' . intval($id_parent)))
) {
$champs['id_rubrique'] = $id_parent;
// si l'article etait publie
// et que le demandeur n'est pas admin de la rubrique de destination
// repasser l'article en statut 'propose'.
if ($statut == 'publie'
if (
$statut == 'publie'
and !autoriser('publierdans', 'rubrique', $id_parent)
) {
$champs['statut'] = 'prop';
@ -336,17 +352,18 @@ function article_instituer($id_article, $c, $calcul_rub = true) {
}
// Envoyer aux plugins
$champs = pipeline('pre_edition',
array(
'args' => array(
$champs = pipeline(
'pre_edition',
[
'args' => [
'table' => 'spip_articles',
'id_objet' => $id_article,
'action' => 'instituer',
'statut_ancien' => $statut_ancien,
'date_ancienne' => $date_ancienne,
),
],
'data' => $champs
)
]
);
if (!count($champs)) {
@ -369,23 +386,26 @@ function article_instituer($id_article, $c, $calcul_rub = true) {
}
// Pipeline
pipeline('post_edition',
array(
'args' => array(
pipeline(
'post_edition',
[
'args' => [
'table' => 'spip_articles',
'id_objet' => $id_article,
'action' => 'instituer',
'statut_ancien' => $statut_ancien,
'date_ancienne' => $date_ancienne,
),
],
'data' => $champs
)
]
);
// Notifications
if ($notifications = charger_fonction('notifications', 'inc')) {
$notifications('instituerarticle', $id_article,
array('statut' => $statut, 'statut_ancien' => $statut_ancien, 'date' => $date, 'date_ancienne' => $date_ancienne)
$notifications(
'instituerarticle',
$id_article,
['statut' => $statut, 'statut_ancien' => $statut_ancien, 'date' => $date, 'date_ancienne' => $date_ancienne]
);
}
@ -417,13 +437,17 @@ function editer_article_heritage($id_article, $id_rubrique, $statut, $champs, $c
// Si on deplace l'article
// changer aussi son secteur et sa langue (si heritee)
if (isset($champs['id_rubrique'])) {
$row_rub = sql_fetsel("id_secteur, lang", "spip_rubriques", "id_rubrique=" . sql_quote($champs['id_rubrique']));
$row_rub = sql_fetsel('id_secteur, lang', 'spip_rubriques', 'id_rubrique=' . sql_quote($champs['id_rubrique']));
$langue = $row_rub['lang'];
$champs['id_secteur'] = $row_rub['id_secteur'];
if (sql_fetsel('1', 'spip_articles',
"id_article=" . intval($id_article) . " AND langue_choisie<>'oui' AND lang<>" . sql_quote($langue))) {
if (
sql_fetsel(
'1',
'spip_articles',
'id_article=' . intval($id_article) . " AND langue_choisie<>'oui' AND lang<>" . sql_quote($langue)
)
) {
$champs['lang'] = $langue;
}
}
@ -432,13 +456,13 @@ function editer_article_heritage($id_article, $id_rubrique, $statut, $champs, $c
return;
}
sql_updateq('spip_articles', $champs, "id_article=" . intval($id_article));
sql_updateq('spip_articles', $champs, 'id_article=' . intval($id_article));
// Changer le statut des rubriques concernees
// Changer le statut des rubriques concernees
if ($cond) {
include_spip('inc/rubriques');
$postdate = ($GLOBALS['meta']["post_dates"] == "non" and isset($champs['date']) and (strtotime($champs['date']) < time())) ? $champs['date'] : false;
$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);
}
}
@ -451,7 +475,7 @@ function editer_article_heritage($id_article, $id_rubrique, $statut, $champs, $c
function trop_longs_articles() {
if (is_array($plus = _request('texte_plus'))) {
foreach ($plus as $n => $t) {
$plus[$n] = preg_replace(",<!--SPIP-->[\n\r]*,", "", $t);
$plus[$n] = preg_replace(",<!--SPIP-->[\n\r]*,", '', $t);
}
set_request('texte', join('', $plus) . _request('texte'));
}

121
ecrire/action/editer_auteur.php

@ -45,15 +45,13 @@ function action_editer_auteur_dist($arg = null) {
// si id_auteur n'est pas un nombre, c'est une creation
if (!$id_auteur = intval($arg)) {
if (($id_auteur = auteur_inserer()) > 0) {
# cf. GROS HACK
# recuperer l'eventuel logo charge avant la creation
# ils ont un id = 0-id_auteur de la session
$id_hack = 0 - $GLOBALS['visiteur_session']['id_auteur'];
$chercher_logo = charger_fonction('chercher_logo', 'inc');
foreach (array('on', 'off') as $type) {
foreach (['on', 'off'] as $type) {
if ($logo = $chercher_logo($id_hack, 'id_auteur', $type)) {
if ($logo = reset($logo)) {
rename($logo, str_replace($id_hack, $id_auteur, $logo));
@ -64,7 +62,7 @@ function action_editer_auteur_dist($arg = null) {
}
// Enregistre l'envoi dans la BD
$err = "";
$err = '';
if ($id_auteur > 0) {
$err = auteur_modifier($id_auteur);
}
@ -73,7 +71,7 @@ function action_editer_auteur_dist($arg = null) {
spip_log("echec editeur auteur: $err", _LOG_ERREUR);
}
return array($id_auteur, $err);
return [$id_auteur, $err];
}
/**
@ -91,7 +89,7 @@ function action_editer_auteur_dist($arg = null) {
function auteur_inserer($source = null, $set = null) {
// Ce qu'on va demander comme modifications
$champs = array();
$champs = [];
$champs['source'] = $source ? $source : 'spip';
$champs['login'] = '';
@ -106,23 +104,25 @@ function auteur_inserer($source = null, $set = null) {
}
// Envoyer aux plugins
$champs = pipeline('pre_insertion',
array(
'args' => array(
$champs = pipeline(
'pre_insertion',
[
'args' => [
'table' => 'spip_auteurs',
),
],
'data' => $champs
)
]
);
$id_auteur = sql_insertq("spip_auteurs", $champs);
pipeline('post_insertion',
array(
'args' => array(
$id_auteur = sql_insertq('spip_auteurs', $champs);
pipeline(
'post_insertion',
[
'args' => [
'table' => 'spip_auteurs',
'id_objet' => $id_auteur
),
],
'data' => $champs
)
]
);
return $id_auteur;
@ -156,17 +156,21 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
// white list
objet_info('auteur', 'champs_editables'),
// black list
$force_update ? array() : array('webmestre', 'pass', 'login'),
$force_update ? [] : ['webmestre', 'pass', 'login'],
// donnees eventuellement fournies
$set
);
if ($err = objet_modifier_champs('auteur', $id_auteur,
array(
if (
$err = objet_modifier_champs(
'auteur',
$id_auteur,
[
'data' => $set,
'nonvide' => array('nom' => _T('ecrire:item_nouvel_auteur'))
),
$c)
'nonvide' => ['nom' => _T('ecrire:item_nouvel_auteur')]
],
$c
)
) {
return $err;
}
@ -177,7 +181,7 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
// Modification de statut, changement de rubrique ?
$c = collecter_requests(
// white list
array(
[
'statut',
'new_login',
'new_pass',
@ -186,9 +190,9 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
'webmestre',
'restreintes',
'id_parent'
),
],
// black list
array(),
[],
// donnees eventuellement fournies
$set
);
@ -232,7 +236,7 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
function auteur_associer($id_auteur, $objets, $qualif = null) {
include_spip('action/editer_liens');
return objet_associer(array('auteur' => $id_auteur), $objets, $qualif);
return objet_associer(['auteur' => $id_auteur], $objets, $qualif);
}
/**
@ -253,7 +257,7 @@ function auteur_associer($id_auteur, $objets, $qualif = null) {
function auteur_dissocier($id_auteur, $objets) {
include_spip('action/editer_liens');
return objet_dissocier(array('auteur' => $id_auteur), $objets);
return objet_dissocier(['auteur' => $id_auteur], $objets);
}
/**
@ -276,7 +280,7 @@ function auteur_dissocier($id_auteur, $objets) {
function auteur_qualifier($id_auteur, $objets, $qualif) {
include_spip('action/editer_liens');
return objet_qualifier_liens(array('auteur' => $id_auteur), $objets, $qualif);
return objet_qualifier_liens(['auteur' => $id_auteur], $objets, $qualif);
}
@ -298,8 +302,8 @@ function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
if (!$id_auteur = intval($id_auteur)) {
return false;
}
$erreurs = array(); // contiendra les differentes erreurs a traduire par _T()
$champs = array();
$erreurs = []; // contiendra les differentes erreurs a traduire par _T()
$champs = [];
// les memoriser pour les faire passer dans le pipeline pre_edition
if (isset($c['login']) and strlen($c['login'])) {
@ -311,8 +315,9 @@ function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
$statut = $statut_ancien = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
if (isset($c['statut'])
and (autoriser('modifier', 'auteur', $id_auteur, null, array('statut' => $c['statut'])))
if (
isset($c['statut'])
and (autoriser('modifier', 'auteur', $id_auteur, null, ['statut' => $c['statut']]))
) {
$statut = $champs['statut'] = $c['statut'];
}
@ -323,12 +328,13 @@ function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
if (is_array($c['restreintes'])) {
$c['restreintes'][] = $c['id_parent'];
} else {
$c['restreintes'] = array($c['id_parent']);
$c['restreintes'] = [$c['id_parent']];
}
}
if (isset($c['webmestre'])
and ($force_webmestre or autoriser('modifier', 'auteur', $id_auteur, null, array('webmestre' => '?')))
if (
isset($c['webmestre'])
and ($force_webmestre or autoriser('modifier', 'auteur', $id_auteur, null, ['webmestre' => '?']))
) {
$champs['webmestre'] = $c['webmestre'] == 'oui' ? 'oui' : 'non';
}
@ -339,26 +345,28 @@ function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
}
// Envoyer aux plugins
$champs = pipeline('pre_edition',
array(
'args' => array(
$champs = pipeline(
'pre_edition',
[
'args' => [
'table' => 'spip_auteurs',
'id_objet' => $id_auteur,
'action' => 'instituer',
'statut_ancien' => $statut_ancien,
),
],
'data' => $champs
)
]
);
if (isset($c['restreintes']) and is_array($c['restreintes'])
and autoriser('modifier', 'auteur', $id_auteur, null, array('restreint' => $c['restreintes']))
if (
isset($c['restreintes']) and is_array($c['restreintes'])
and autoriser('modifier', 'auteur', $id_auteur, null, ['restreint' => $c['restreintes']])
) {
$rubriques = array_map('intval', $c['restreintes']);
$rubriques = array_unique($rubriques);
$rubriques = array_diff($rubriques, array(0));
auteur_dissocier($id_auteur, array('rubrique' => '*'));
auteur_associer($id_auteur, array('rubrique' => $rubriques));
$rubriques = array_diff($rubriques, [0]);
auteur_dissocier($id_auteur, ['rubrique' => '*']);
auteur_associer($id_auteur, ['rubrique' => $rubriques]);
}
$flag_ecrire_acces = false;
@ -389,7 +397,8 @@ function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
sql_updateq('spip_auteurs', $champs, 'id_auteur=' . $id_auteur);
// .. mettre a jour les fichiers .htpasswd et .htpasswd-admin
if ($flag_ecrire_acces
if (
$flag_ecrire_acces
or isset($champs['statut'])
) {
include_spip('inc/acces');
@ -401,26 +410,28 @@ function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
suivre_invalideur("id='auteur/$id_auteur'");
// Pipeline
pipeline('post_edition',
array(
'args' => array(
pipeline(
'post_edition',
[
'args' => [
'table' => 'spip_auteurs',
'id_objet' => $id_auteur,
'action' => 'instituer',
'statut_ancien' => $statut_ancien,
),
],
'data' => $champs
)
]
);
// Notifications
if ($notifications = charger_fonction('notifications', 'inc')) {
$notifications('instituerauteur', $id_auteur,
array('statut' => $statut, 'statut_ancien' => $statut_ancien)
$notifications(
'instituerauteur',
$id_auteur,
['statut' => $statut, 'statut_ancien' => $statut_ancien]
);
}
return implode(' ', array_map('_T', $erreurs));
}

218
ecrire/action/editer_liens.php

@ -50,13 +50,14 @@ function objet_associable($objet) {
$trouver_table = charger_fonction('trouver_table', 'base');
$table_sql = table_objet_sql($objet);
$l = "";
if ($primary = id_table_objet($objet)
and $trouver_table($l = $table_sql . "_liens")
$l = '';
if (
$primary = id_table_objet($objet)
and $trouver_table($l = $table_sql . '_liens')
and !preg_match(',[^\w],', $primary)
and !preg_match(',[^\w],', $l)
) {
return array($primary, $l);
return [$primary, $l];
}
spip_log("Objet $objet non associable : ne dispose pas d'une cle primaire $primary OU d'une table liens $l");
@ -211,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_encode($objets_lies), 'genie' . _LOG_DEBUG);
return objet_traiter_liaisons('lien_optimise', $objets_source, $objets_lies);
}
@ -242,9 +243,9 @@ function objet_dupliquer_liens($objet, $id_source, $id_cible, $types = null, $ex
) {
if (objet_associable($infos['type'])) {
$liens = (($infos['type'] == $objet) ?
objet_trouver_liens(array($objet => $id_source), '*')
objet_trouver_liens([$objet => $id_source], '*')
:
objet_trouver_liens(array($infos['type'] => '*'), array($objet => $id_source)));
objet_trouver_liens([$infos['type'] => '*'], [$objet => $id_source]));
foreach ($liens as $lien) {
$n++;
if ($infos['type'] == $objet) {
@ -252,10 +253,10 @@ function objet_dupliquer_liens($objet, $id_source, $id_cible, $types = null, $ex
(is_null($types) or in_array($lien['objet'], $types))
and (is_null($exclure_types) or !in_array($lien['objet'], $exclure_types))
) {
objet_associer(array($objet => $id_cible), array($lien['objet'] => $lien[$lien['objet']]), $lien);
objet_associer([$objet => $id_cible], [$lien['objet'] => $lien[$lien['objet']]], $lien);
}
} else {
objet_associer(array($infos['type'] => $lien[$infos['type']]), array($objet => $id_cible), $lien);
objet_associer([$infos['type'] => $lien[$infos['type']]], [$objet => $id_cible], $lien);
}
}
}
@ -306,7 +307,7 @@ function objet_dupliquer_liens($objet, $id_source, $id_cible, $types = null, $ex
function objet_traiter_liaisons($operation, $objets_source, $objets_lies, $set = null) {
// accepter une syntaxe minimale pour supprimer tous les liens
if ($objets_lies == '*') {
$objets_lies = array('*' => '*');
$objets_lies = ['*' => '*'];
}
$modifs = 0; // compter le nombre de modifications
$echec = null;
@ -314,8 +315,8 @@ function objet_traiter_liaisons($operation, $objets_source, $objets_lies, $set =
if ($a = objet_associable($objet)) {
list($primary, $l) = $a;
if (!is_array($ids)) {
$ids = array($ids);
} elseif (reset($ids) == "NOT") {
$ids = [$ids];
} elseif (reset($ids) == 'NOT') {
// si on demande un array('NOT',...) => recuperer la liste d'ids correspondants
$where = lien_where($primary, $ids, '*', '*');
$ids = sql_allfetsel($primary, $l, $where);
@ -367,12 +368,12 @@ function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif
$ins = 0;
$echec = null;
if (is_null($qualif)) {
$qualif = array();
$qualif = [];
}
foreach ($objets as $objet => $id_objets) {
if (!is_array($id_objets)) {
$id_objets = array($id_objets);
$id_objets = [$id_objets];
}
// role, colonne, where par défaut
@ -382,16 +383,16 @@ function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif
foreach ($id_objets as $id_objet) {
$objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
$insertions = array(
$insertions = [
'id_objet' => $id_objet,
'objet' => $objet,
$primary => $id
);
];
// rôle en plus s'il est défini
if ($role) {
$insertions += array(
$insertions += [
$colonne_role => $role
);
];
}
if (lien_triables($table_lien)) {
@ -401,14 +402,14 @@ function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif
$where = lien_where($primary, '*', $objet, $id_objet);
$rang = intval(sql_getfetsel('max(rang_lien)', $table_lien, $where));
// si aucun lien n'a de rang, on en introduit pas, on garde zero
if ($rang>0) {
if ($rang > 0) {
$rang = intval($rang) + 1;
}
}
$insertions['rang_lien'] = $rang;
}
$args = array(
$args = [
'table_lien' => $table_lien,
'objet_source' => $objet_source,
'id_objet_source' => $id,
@ -417,27 +418,28 @@ function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif
'role' => $role,
'colonne_role' => $colonne_role,
'action' => 'insert',
);
];
// Envoyer aux plugins
$insertions = pipeline('pre_edition_lien',
array(
$insertions = pipeline(
'pre_edition_lien',
[
'args' => $args,
'data' => $insertions
)
]
);
$args['id_objet'] = $insertions['id_objet'];
$where = lien_where($primary, $id, $objet, $id_objet, $cond);
if (($id_objet = intval($insertions['id_objet']) or in_array($objet, ['site', 'rubrique']))
if (
($id_objet = intval($insertions['id_objet']) or in_array($objet, ['site', 'rubrique']))
and !sql_getfetsel($primary, $table_lien, $where)
) {
if (lien_triables($table_lien) and isset($insertions['rang_lien']) and intval($insertions['rang_lien'])) {
// on decale les liens de rang_lien>=la valeur inseree pour faire la place
$w = lien_where($primary, '*', $objet, $id_objet, array('rang_lien>='.intval($insertions['rang_lien']),"$primary!=".intval($id)));
sql_update($table_lien, array('rang_lien'=>'rang_lien+1'), $w);
$w = lien_where($primary, '*', $objet, $id_objet, ['rang_lien>=' . intval($insertions['rang_lien']),"$primary!=" . intval($id)]);
sql_update($table_lien, ['rang_lien' => 'rang_lien+1'], $w);
}
$e = sql_insertq($table_lien, $insertions);
@ -446,11 +448,12 @@ function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif
lien_propage_date_modif($objet, $id_objet);
lien_propage_date_modif($objet_source, $id);
// Envoyer aux plugins
pipeline('post_edition_lien',
array(
pipeline(
'post_edition_lien',
[
'args' => $args,
'data' => $insertions
)
]
);
} else {
$echec = true;
@ -459,7 +462,7 @@ function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif
}
}
// si on a fait des insertions, on reordonne les liens concernes
if ($ins>0) {
if ($ins > 0) {
lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
}
@ -482,21 +485,21 @@ function lien_ordonner($objet_source, $primary, $table_lien, $id, $objets) {
foreach ($objets as $objet => $id_objets) {
if (!is_array($id_objets)) {
$id_objets = array($id_objets);
$id_objets = [$id_objets];
}
foreach ($id_objets as $id_objet) {
$objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
$where = lien_where($primary, '*', $objet, $id_objet);
$liens = sql_allfetsel("$primary, id_objet, objet, rang_lien", $table_lien, $where, $primary,"rang_lien");
$liens = sql_allfetsel("$primary, id_objet, objet, rang_lien", $table_lien, $where, $primary, 'rang_lien');
$rangs = array_column($liens, 'rang_lien');
if (count($rangs) and (max($rangs)>0 or min($rangs)<0)) {
if (count($rangs) and (max($rangs) > 0 or min($rangs) < 0)) {
$rang = 1;
foreach ($liens as $lien) {
$where = lien_where($primary, $lien[$primary], $objet, $id_objet, array('rang_lien!='.intval($rang)));
sql_updateq($table_lien, array('rang_lien' => $rang), $where);
$where = lien_where($primary, $lien[$primary], $objet, $id_objet, ['rang_lien!=' . intval($rang)]);
sql_updateq($table_lien, ['rang_lien' => $rang], $where);
$rang++;
}
}
@ -512,7 +515,7 @@ function lien_ordonner($objet_source, $primary, $table_lien, $id, $objets) {
* @return mixed
*/
function lien_triables($table_lien) {
static $triables = array();
static $triables = [];
if (!isset($triables[$table_lien])) {
$trouver_table = charger_fonction('trouver_table', 'base');
$desc = $trouver_table($table_lien);
@ -538,16 +541,17 @@ function lien_triables($table_lien) {
* @param array $cond Conditions par défaut
* @return array Liste des conditions
*/
function lien_where($primary, $id_source, $objet, $id_objet, $cond = array()) {
if ((!is_array($id_source) and !strlen($id_source))
function lien_where($primary, $id_source, $objet, $id_objet, $cond = []) {
if (
(!is_array($id_source) and !strlen($id_source))
or !strlen($objet)
or (!is_array($id_objet) and !strlen($id_objet))
) {
return array("0=1");
return ['0=1'];
} // securite
$not = "";
if (is_array($id_source) and reset($id_source) == "NOT") {
$not = '';
if (is_array($id_source) and reset($id_source) == 'NOT') {
$not = array_shift($id_source);
$id_source = reset($id_source);
}
@ -555,26 +559,32 @@ function lien_where($primary, $id_source, $objet, $id_objet, $cond = array()) {
$where = $cond;
if ($id_source !== '*') {
$where[] = (is_array($id_source) ? sql_in(addslashes($primary), array_map('intval', $id_source),
$not) : addslashes($primary) . ($not ? "<>" : "=") . intval($id_source));
$where[] = (is_array($id_source) ? sql_in(
addslashes($primary),
array_map('intval', $id_source),
$not
) : addslashes($primary) . ($not ? '<>' : '=') . intval($id_source));
} elseif ($not) {
$where[] = "0=1";
$where[] = '0=1';
} // idiot mais quand meme
$not = "";
if (is_array($id_objet) and reset($id_objet) == "NOT") {
$not = '';
if (is_array($id_objet) and reset($id_objet) == 'NOT') {
$not = array_shift($id_objet);
$id_objet = reset($id_objet);
}
if ($objet !== '*') {
$where[] = "objet=" . sql_quote($objet);
$where[] = 'objet=' . sql_quote($objet);
}
if ($id_objet !== '*') {
$where[] = (is_array($id_objet) ? sql_in('id_objet', array_map('intval', $id_objet),
$not) : "id_objet" . ($not ? "<>" : "=") . intval($id_objet));
$where[] = (is_array($id_objet) ? sql_in(
'id_objet',
array_map('intval', $id_objet),
$not
) : 'id_objet' . ($not ? '<>' : '=') . intval($id_objet));
} elseif ($not) {
$where[] = "0=1";
$where[] = '0=1';
} // idiot mais quand meme
return $where;
@ -608,17 +618,17 @@ function lien_where($primary, $id_source, $objet, $id_objet, $cond = array()) {
*/
function lien_delete($objet_source, $primary, $table_lien, $id, $objets, $cond = null) {
$retire = array();
$retire = [];
$dels = 0;
$echec = false;
if (is_null($cond)) {
$cond = array();
$cond = [];
}
foreach ($objets as $objet => $id_objets) {
$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
if (!is_array($id_objets) or reset($id_objets) == "NOT") {
$id_objets = array($id_objets);
if (!is_array($id_objets) or reset($id_objets) == 'NOT') {
$id_objets = [$id_objets];
}
foreach ($id_objets as $id_objet) {
list($cond, $colonne_role, $role) = roles_creer_condition_role($objet_source, $objet, $cond);
@ -634,8 +644,7 @@ function lien_delete($objet_source, $primary, $table_lien, $id, $objets, $cond =
// iterer sur les liens pour permettre aux plugins de gerer
foreach ($liens as $l) {
$args = array(
$args = [
'table_lien' => $table_lien,
'objet_source' => $objet_source,
'id_objet_source' => $l[$primary],
@ -644,14 +653,15 @@ function lien_delete($objet_source, $primary, $table_lien, $id, $objets, $cond =
'colonne_role' => $colonne_role,
'role' => ($colonne_role ? $l[$colonne_role] : ''),
'action' => 'delete',
);
];
// Envoyer aux plugins
$l = pipeline('pre_edition_lien',
array(
$l = pipeline(
'pre_edition_lien',
[
'args' => $args,
'data' => $l
)
]
);
$args['id_objet'] = $id_o = $l['id_objet'];
@ -665,19 +675,20 @@ function lien_delete($objet_source, $primary, $table_lien, $id, $objets, $cond =
} else {
$echec = true;
}
$retire[] = array(
'source' => array($objet_source => $l[$primary]),
'lien' => array($l['objet'] => $id_o),
$retire[] = [
'source' => [$objet_source => $l[$primary]],
'lien' => [$l['objet'] => $id_o],
'type' => $l['objet'],
'role' => ($colonne_role ? $l[$colonne_role] : ''),
'id' => $id_o
);
];
// Envoyer aux plugins
pipeline('post_edition_lien',
array(
pipeline(
'post_edition_lien',
[
'args' => $args,
'data' => $l
)
]
);
}
}
@ -718,37 +729,41 @@ function lien_optimise($objet_source, $primary, $table_lien, $id, $objets) {
$dels = 0;
foreach ($objets as $objet => $id_objets) {
$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
if (!is_array($id_objets) or reset($id_objets) == "NOT") {
$id_objets = array($id_objets);
if (!is_array($id_objets) or reset($id_objets) == 'NOT') {
$id_objets = [$id_objets];
}
foreach ($id_objets as $id_objet) {
$where = lien_where($primary, $id, $objet, $id_objet);
# les liens vers un objet inexistant
$r = sql_select("DISTINCT objet", $table_lien, $where);
$r = sql_select('DISTINCT objet', $table_lien, $where);
while ($t = sql_fetch($r)) {
$type = $t['objet'];
$spip_table_objet = table_objet_sql($type);
$id_table_objet = id_table_objet($type);
$res = sql_select("L.$primary AS id,L.id_objet",
$res = sql_select(
"L.$primary AS id,L.id_objet",
// la condition de jointure inclue L.objet='xxx' pour ne joindre que les bonnes lignes
// du coups toutes les lignes avec un autre objet ont un id_xxx=NULL puisque LEFT JOIN
// il faut les eliminier en repetant la condition dans le where L.objet='xxx'
"$table_lien AS L
LEFT JOIN $spip_table_objet AS O
ON (O.$id_table_objet=L.id_objet AND L.objet=" . sql_quote($type) . ")",
"L.objet=" . sql_quote($type) . " AND O.$id_table_objet IS NULL");
ON (O.$id_table_objet=L.id_objet AND L.objet=" . sql_quote($type) . ')',
'L.objet=' . sql_quote($type) . " AND O.$id_table_objet IS NULL"
);
// sur une cle primaire composee, pas d'autres solutions que de virer un a un
while ($row = sql_fetch($res)) {