@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | * @package SPIP\Core\Cache |
| 17 | 17 | **/ |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | /** |
@@ -39,57 +39,57 @@ discard block |
||
| 39 | 39 | * de l'action sécurisée. |
| 40 | 40 | */ |
| 41 | 41 | function action_purger_dist($arg = null) { |
| 42 | - if (is_null($arg)) { |
|
| 43 | - $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 44 | - $arg = $securiser_action(); |
|
| 45 | - } |
|
| 42 | + if (is_null($arg)) { |
|
| 43 | + $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 44 | + $arg = $securiser_action(); |
|
| 45 | + } |
|
| 46 | 46 | |
| 47 | - include_spip('inc/invalideur'); |
|
| 47 | + include_spip('inc/invalideur'); |
|
| 48 | 48 | |
| 49 | - spip_log("purger $arg"); |
|
| 49 | + spip_log("purger $arg"); |
|
| 50 | 50 | |
| 51 | - switch ($arg) { |
|
| 52 | - case 'inhibe_cache': |
|
| 53 | - // inhiber le cache pendant 24h |
|
| 54 | - ecrire_meta('cache_inhib', $_SERVER['REQUEST_TIME'] + 24 * 3600); |
|
| 55 | - break; |
|
| 56 | - case 'reactive_cache': |
|
| 57 | - effacer_meta('cache_inhib'); |
|
| 58 | - break; |
|
| 51 | + switch ($arg) { |
|
| 52 | + case 'inhibe_cache': |
|
| 53 | + // inhiber le cache pendant 24h |
|
| 54 | + ecrire_meta('cache_inhib', $_SERVER['REQUEST_TIME'] + 24 * 3600); |
|
| 55 | + break; |
|
| 56 | + case 'reactive_cache': |
|
| 57 | + effacer_meta('cache_inhib'); |
|
| 58 | + break; |
|
| 59 | 59 | |
| 60 | - case 'cache': |
|
| 61 | - supprime_invalideurs(); |
|
| 62 | - @spip_unlink(_CACHE_RUBRIQUES); |
|
| 63 | - @spip_unlink(_CACHE_CHEMIN); |
|
| 64 | - @spip_unlink(_DIR_TMP . 'plugin_xml_cache.gz'); |
|
| 65 | - // on ne supprime que _CACHE_PLUGINS_OPT qui declenche la reconstruction des 3 |
|
| 66 | - // _CACHE_PIPELINES _CACHE_PLUGINS_PATH et _CACHE_PLUGINS_FCT |
|
| 67 | - // pour eviter des problemes de concurence |
|
| 68 | - // cf https://core.spip.net/issues/2989 |
|
| 69 | - //@spip_unlink(_CACHE_PIPELINES); |
|
| 70 | - //@spip_unlink(_CACHE_PLUGINS_PATH); |
|
| 71 | - //@spip_unlink(_CACHE_PLUGINS_FCT); |
|
| 72 | - @spip_unlink(_CACHE_PLUGINS_OPT); |
|
| 73 | - purger_repertoire(_DIR_CACHE, ['subdir' => true]); |
|
| 74 | - purger_repertoire(_DIR_AIDE); |
|
| 75 | - purger_repertoire(_DIR_VAR . 'cache-css'); |
|
| 76 | - purger_repertoire(_DIR_VAR . 'cache-js'); |
|
| 77 | - break; |
|
| 60 | + case 'cache': |
|
| 61 | + supprime_invalideurs(); |
|
| 62 | + @spip_unlink(_CACHE_RUBRIQUES); |
|
| 63 | + @spip_unlink(_CACHE_CHEMIN); |
|
| 64 | + @spip_unlink(_DIR_TMP . 'plugin_xml_cache.gz'); |
|
| 65 | + // on ne supprime que _CACHE_PLUGINS_OPT qui declenche la reconstruction des 3 |
|
| 66 | + // _CACHE_PIPELINES _CACHE_PLUGINS_PATH et _CACHE_PLUGINS_FCT |
|
| 67 | + // pour eviter des problemes de concurence |
|
| 68 | + // cf https://core.spip.net/issues/2989 |
|
| 69 | + //@spip_unlink(_CACHE_PIPELINES); |
|
| 70 | + //@spip_unlink(_CACHE_PLUGINS_PATH); |
|
| 71 | + //@spip_unlink(_CACHE_PLUGINS_FCT); |
|
| 72 | + @spip_unlink(_CACHE_PLUGINS_OPT); |
|
| 73 | + purger_repertoire(_DIR_CACHE, ['subdir' => true]); |
|
| 74 | + purger_repertoire(_DIR_AIDE); |
|
| 75 | + purger_repertoire(_DIR_VAR . 'cache-css'); |
|
| 76 | + purger_repertoire(_DIR_VAR . 'cache-js'); |
|
| 77 | + break; |
|
| 78 | 78 | |
| 79 | - case 'squelettes': |
|
| 80 | - purger_repertoire(_DIR_SKELS); |
|
| 81 | - break; |
|
| 79 | + case 'squelettes': |
|
| 80 | + purger_repertoire(_DIR_SKELS); |
|
| 81 | + break; |
|
| 82 | 82 | |
| 83 | - case 'vignettes': |
|
| 84 | - purger_repertoire(_DIR_VAR . 'cache-gd2', ['subdir' => true]); |
|
| 85 | - purger_repertoire(_DIR_VAR . 'cache-texte', ['subdir' => true]); |
|
| 86 | - purger_repertoire(_DIR_VAR . 'cache-vignettes', ['subdir' => true]); |
|
| 87 | - purger_repertoire(_DIR_VAR . 'cache-TeX', ['subdir' => true]); |
|
| 88 | - supprime_invalideurs(); |
|
| 89 | - purger_repertoire(_DIR_CACHE, ['subdir' => true]); |
|
| 90 | - break; |
|
| 91 | - } |
|
| 83 | + case 'vignettes': |
|
| 84 | + purger_repertoire(_DIR_VAR . 'cache-gd2', ['subdir' => true]); |
|
| 85 | + purger_repertoire(_DIR_VAR . 'cache-texte', ['subdir' => true]); |
|
| 86 | + purger_repertoire(_DIR_VAR . 'cache-vignettes', ['subdir' => true]); |
|
| 87 | + purger_repertoire(_DIR_VAR . 'cache-TeX', ['subdir' => true]); |
|
| 88 | + supprime_invalideurs(); |
|
| 89 | + purger_repertoire(_DIR_CACHE, ['subdir' => true]); |
|
| 90 | + break; |
|
| 91 | + } |
|
| 92 | 92 | |
| 93 | - // le faire savoir aux plugins |
|
| 94 | - pipeline('trig_purger', $arg); |
|
| 93 | + // le faire savoir aux plugins |
|
| 94 | + pipeline('trig_purger', $arg); |
|
| 95 | 95 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | */ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | include_spip('inc/actions'); |
@@ -29,23 +29,23 @@ discard block |
||
| 29 | 29 | * @return void |
| 30 | 30 | */ |
| 31 | 31 | function action_etre_webmestre_dist() { |
| 32 | - $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 33 | - $time = $securiser_action(); |
|
| 32 | + $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 33 | + $time = $securiser_action(); |
|
| 34 | 34 | |
| 35 | - if ( |
|
| 36 | - time() - $time < 15 * 60 |
|
| 37 | - and $GLOBALS['visiteur_session']['statut'] == '0minirezo' |
|
| 38 | - and $GLOBALS['visiteur_session']['webmestre'] !== 'oui' |
|
| 39 | - ) { |
|
| 40 | - $action = _T('info_admin_etre_webmestre'); |
|
| 41 | - $admin = charger_fonction('admin', 'inc'); |
|
| 42 | - // lance la verif par ftp et l'appel |
|
| 43 | - // a base_etre_webmestre_dist quand c'est OK |
|
| 44 | - if ($r = $admin('etre_webmestre', $action)) { |
|
| 45 | - echo $r; |
|
| 46 | - exit; |
|
| 47 | - } |
|
| 48 | - } |
|
| 35 | + if ( |
|
| 36 | + time() - $time < 15 * 60 |
|
| 37 | + and $GLOBALS['visiteur_session']['statut'] == '0minirezo' |
|
| 38 | + and $GLOBALS['visiteur_session']['webmestre'] !== 'oui' |
|
| 39 | + ) { |
|
| 40 | + $action = _T('info_admin_etre_webmestre'); |
|
| 41 | + $admin = charger_fonction('admin', 'inc'); |
|
| 42 | + // lance la verif par ftp et l'appel |
|
| 43 | + // a base_etre_webmestre_dist quand c'est OK |
|
| 44 | + if ($r = $admin('etre_webmestre', $action)) { |
|
| 45 | + echo $r; |
|
| 46 | + exit; |
|
| 47 | + } |
|
| 48 | + } |
|
| 49 | 49 | } |
| 50 | 50 | |
| 51 | 51 | /** |
@@ -54,8 +54,8 @@ discard block |
||
| 54 | 54 | * @return void |
| 55 | 55 | */ |
| 56 | 56 | function base_etre_webmestre_dist() { |
| 57 | - if ($GLOBALS['visiteur_session']['statut'] == '0minirezo' and $GLOBALS['visiteur_session']['webmestre'] !== 'oui') { |
|
| 58 | - include_spip('action/editer_auteur'); |
|
| 59 | - auteur_instituer($GLOBALS['visiteur_session']['id_auteur'], ['webmestre' => 'oui'], true); |
|
| 60 | - } |
|
| 57 | + if ($GLOBALS['visiteur_session']['statut'] == '0minirezo' and $GLOBALS['visiteur_session']['webmestre'] !== 'oui') { |
|
| 58 | + include_spip('action/editer_auteur'); |
|
| 59 | + auteur_instituer($GLOBALS['visiteur_session']['id_auteur'], ['webmestre' => 'oui'], true); |
|
| 60 | + } |
|
| 61 | 61 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | **/ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | /** |
@@ -32,17 +32,17 @@ discard block |
||
| 32 | 32 | * Envoyer en réponse : json contenant toutes les variables publiques de la session |
| 33 | 33 | **/ |
| 34 | 34 | function action_session_dist() { |
| 35 | - if ( |
|
| 36 | - $var = _request('var') |
|
| 37 | - and preg_match(',^[a-z_0-9-]+$,i', $var) |
|
| 38 | - ) { |
|
| 39 | - if ($_SERVER['REQUEST_METHOD'] == 'POST') { |
|
| 40 | - include_spip('inc/session'); |
|
| 41 | - session_set('session_' . $var, $val = _request('val')); |
|
| 42 | - #spip_log("autosave:$var:$val",'autosave'); |
|
| 43 | - } |
|
| 44 | - } |
|
| 35 | + if ( |
|
| 36 | + $var = _request('var') |
|
| 37 | + and preg_match(',^[a-z_0-9-]+$,i', $var) |
|
| 38 | + ) { |
|
| 39 | + if ($_SERVER['REQUEST_METHOD'] == 'POST') { |
|
| 40 | + include_spip('inc/session'); |
|
| 41 | + session_set('session_' . $var, $val = _request('val')); |
|
| 42 | + #spip_log("autosave:$var:$val",'autosave'); |
|
| 43 | + } |
|
| 44 | + } |
|
| 45 | 45 | |
| 46 | - # TODO: mode lecture de session ; n'afficher que ce qu'il faut |
|
| 47 | - #echo json_encode($GLOBALS['visiteur_session']); |
|
| 46 | + # TODO: mode lecture de session ; n'afficher que ce qu'il faut |
|
| 47 | + #echo json_encode($GLOBALS['visiteur_session']); |
|
| 48 | 48 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | */ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | /** |
@@ -41,54 +41,54 @@ discard block |
||
| 41 | 41 | */ |
| 42 | 42 | function action_referencer_traduction_dist($objet, $id_objet, $id_trad) { |
| 43 | 43 | |
| 44 | - // ne rien faire si id_trad est ambigu |
|
| 45 | - if (!is_numeric($id_trad)) { |
|
| 46 | - return false; |
|
| 47 | - } |
|
| 44 | + // ne rien faire si id_trad est ambigu |
|
| 45 | + if (!is_numeric($id_trad)) { |
|
| 46 | + return false; |
|
| 47 | + } |
|
| 48 | 48 | |
| 49 | - $table_objet_sql = table_objet_sql($objet); |
|
| 50 | - $id_table_objet = id_table_objet($objet); |
|
| 49 | + $table_objet_sql = table_objet_sql($objet); |
|
| 50 | + $id_table_objet = id_table_objet($objet); |
|
| 51 | 51 | |
| 52 | - // on a fourni un id_trad : affectation ou modification du groupe de trad |
|
| 53 | - if ($id_trad) { |
|
| 54 | - // selectionner l'objet cible, qui doit etre different de nous-meme, |
|
| 55 | - // et quitter s'il n'existe pas |
|
| 56 | - $id_lier = sql_getfetsel( |
|
| 57 | - 'id_trad', |
|
| 58 | - $table_objet_sql, |
|
| 59 | - "$id_table_objet=" . intval($id_trad) . " AND NOT($id_table_objet=" . intval($id_objet) . ')' |
|
| 60 | - ); |
|
| 61 | - if ($id_lier === null) { |
|
| 62 | - spip_log("echec lien de trad vers objet $objet/$id_objet incorrect ($id_trad)"); |
|
| 52 | + // on a fourni un id_trad : affectation ou modification du groupe de trad |
|
| 53 | + if ($id_trad) { |
|
| 54 | + // selectionner l'objet cible, qui doit etre different de nous-meme, |
|
| 55 | + // et quitter s'il n'existe pas |
|
| 56 | + $id_lier = sql_getfetsel( |
|
| 57 | + 'id_trad', |
|
| 58 | + $table_objet_sql, |
|
| 59 | + "$id_table_objet=" . intval($id_trad) . " AND NOT($id_table_objet=" . intval($id_objet) . ')' |
|
| 60 | + ); |
|
| 61 | + if ($id_lier === null) { |
|
| 62 | + spip_log("echec lien de trad vers objet $objet/$id_objet incorrect ($id_trad)"); |
|
| 63 | 63 | |
| 64 | - return false; |
|
| 65 | - } |
|
| 64 | + return false; |
|
| 65 | + } |
|
| 66 | 66 | |
| 67 | - // $id_lier est le numero du groupe de traduction |
|
| 68 | - // Si l'objet vise n'est pas deja traduit, son identifiant devient |
|
| 69 | - // le nouvel id_trad de ce nouveau groupe et on l'affecte aux deux |
|
| 70 | - // objets |
|
| 71 | - if ($id_lier == 0) { |
|
| 72 | - sql_updateq($table_objet_sql, ['id_trad' => $id_trad], "$id_table_objet IN ($id_trad, $id_objet)"); |
|
| 73 | - } // si id_lier = id_objet alors on veut changer la reference de tout le groupe de trad |
|
| 74 | - elseif ($id_lier == $id_objet) { |
|
| 75 | - sql_updateq($table_objet_sql, ['id_trad' => $id_trad], "id_trad = $id_lier"); |
|
| 76 | - } // sinon ajouter notre objet dans le groupe |
|
| 77 | - else { |
|
| 78 | - sql_updateq($table_objet_sql, ['id_trad' => $id_lier], "$id_table_objet=" . intval($id_objet)); |
|
| 79 | - } |
|
| 80 | - } // on a fourni un id_trad nul : sortir id_objet du groupe de trad |
|
| 81 | - else { |
|
| 82 | - $old_id_trad = sql_getfetsel('id_trad', $table_objet_sql, "$id_table_objet=" . intval($id_objet)); |
|
| 83 | - // supprimer le lien de traduction |
|
| 84 | - sql_updateq($table_objet_sql, ['id_trad' => 0], "$id_table_objet=" . intval($id_objet)); |
|
| 67 | + // $id_lier est le numero du groupe de traduction |
|
| 68 | + // Si l'objet vise n'est pas deja traduit, son identifiant devient |
|
| 69 | + // le nouvel id_trad de ce nouveau groupe et on l'affecte aux deux |
|
| 70 | + // objets |
|
| 71 | + if ($id_lier == 0) { |
|
| 72 | + sql_updateq($table_objet_sql, ['id_trad' => $id_trad], "$id_table_objet IN ($id_trad, $id_objet)"); |
|
| 73 | + } // si id_lier = id_objet alors on veut changer la reference de tout le groupe de trad |
|
| 74 | + elseif ($id_lier == $id_objet) { |
|
| 75 | + sql_updateq($table_objet_sql, ['id_trad' => $id_trad], "id_trad = $id_lier"); |
|
| 76 | + } // sinon ajouter notre objet dans le groupe |
|
| 77 | + else { |
|
| 78 | + sql_updateq($table_objet_sql, ['id_trad' => $id_lier], "$id_table_objet=" . intval($id_objet)); |
|
| 79 | + } |
|
| 80 | + } // on a fourni un id_trad nul : sortir id_objet du groupe de trad |
|
| 81 | + else { |
|
| 82 | + $old_id_trad = sql_getfetsel('id_trad', $table_objet_sql, "$id_table_objet=" . intval($id_objet)); |
|
| 83 | + // supprimer le lien de traduction |
|
| 84 | + sql_updateq($table_objet_sql, ['id_trad' => 0], "$id_table_objet=" . intval($id_objet)); |
|
| 85 | 85 | |
| 86 | - // Verifier si l'ancien groupe ne comporte plus qu'un seul objet. Alors mettre a zero. |
|
| 87 | - $cpt = sql_countsel($table_objet_sql, 'id_trad=' . intval($old_id_trad)); |
|
| 88 | - if ($cpt == 1) { |
|
| 89 | - sql_updateq($table_objet_sql, ['id_trad' => 0], 'id_trad=' . intval($old_id_trad)); |
|
| 90 | - } |
|
| 91 | - } |
|
| 86 | + // Verifier si l'ancien groupe ne comporte plus qu'un seul objet. Alors mettre a zero. |
|
| 87 | + $cpt = sql_countsel($table_objet_sql, 'id_trad=' . intval($old_id_trad)); |
|
| 88 | + if ($cpt == 1) { |
|
| 89 | + sql_updateq($table_objet_sql, ['id_trad' => 0], 'id_trad=' . intval($old_id_trad)); |
|
| 90 | + } |
|
| 91 | + } |
|
| 92 | 92 | |
| 93 | - return true; |
|
| 93 | + return true; |
|
| 94 | 94 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | */ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | /** |
@@ -28,23 +28,23 @@ discard block |
||
| 28 | 28 | * @return void |
| 29 | 29 | */ |
| 30 | 30 | function action_confirmer_email_dist() { |
| 31 | - $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 32 | - $arg = $securiser_action(); |
|
| 31 | + $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 32 | + $arg = $securiser_action(); |
|
| 33 | 33 | |
| 34 | - include_spip('inc/filtres'); |
|
| 35 | - if ($GLOBALS['visiteur_session']['id_auteur'] and email_valide($arg)) { |
|
| 36 | - include_spip('action/editer_auteur'); |
|
| 37 | - auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], ['email' => $arg]); |
|
| 38 | - } |
|
| 39 | - // verifier avant de rediriger pour invalider le message de confirmation |
|
| 40 | - // si ca n'a pas marche |
|
| 41 | - if ( |
|
| 42 | - $redirect = _request('redirect') and !$arg == sql_getfetsel( |
|
| 43 | - 'email', |
|
| 44 | - 'spip_auteurs', |
|
| 45 | - 'id_auteur=' . intval($GLOBALS['visiteur_session']) |
|
| 46 | - ) |
|
| 47 | - ) { |
|
| 48 | - $GLOBALS['redirect'] = parametre_url($redirect, 'email_modif', ''); |
|
| 49 | - } |
|
| 34 | + include_spip('inc/filtres'); |
|
| 35 | + if ($GLOBALS['visiteur_session']['id_auteur'] and email_valide($arg)) { |
|
| 36 | + include_spip('action/editer_auteur'); |
|
| 37 | + auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], ['email' => $arg]); |
|
| 38 | + } |
|
| 39 | + // verifier avant de rediriger pour invalider le message de confirmation |
|
| 40 | + // si ca n'a pas marche |
|
| 41 | + if ( |
|
| 42 | + $redirect = _request('redirect') and !$arg == sql_getfetsel( |
|
| 43 | + 'email', |
|
| 44 | + 'spip_auteurs', |
|
| 45 | + 'id_auteur=' . intval($GLOBALS['visiteur_session']) |
|
| 46 | + ) |
|
| 47 | + ) { |
|
| 48 | + $GLOBALS['redirect'] = parametre_url($redirect, 'email_modif', ''); |
|
| 49 | + } |
|
| 50 | 50 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | **/ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | /** |
@@ -25,25 +25,25 @@ discard block |
||
| 25 | 25 | */ |
| 26 | 26 | function action_auth_dist() { |
| 27 | 27 | |
| 28 | - $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 29 | - $arg = $securiser_action(); |
|
| 30 | - |
|
| 31 | - if (!preg_match(',^(\w+)[/](.+)$,', $arg, $r)) { |
|
| 32 | - spip_log("action_auth_dist $arg pas compris"); |
|
| 33 | - } else { |
|
| 34 | - $auth_methode = $r[1]; |
|
| 35 | - $login = $r[2]; |
|
| 36 | - include_spip('inc/auth'); |
|
| 37 | - $res = auth_terminer_identifier_login($auth_methode, $login); |
|
| 38 | - |
|
| 39 | - if (is_string($res)) { // Erreur |
|
| 40 | - $redirect = _request('redirect'); |
|
| 41 | - $redirect = parametre_url($redirect, 'var_erreur', $res, '&'); |
|
| 42 | - include_spip('inc/headers'); |
|
| 43 | - redirige_par_entete($redirect); |
|
| 44 | - } |
|
| 45 | - |
|
| 46 | - // sinon on loge l'auteur identifie, et on finit (redirection automatique) |
|
| 47 | - auth_loger($res); |
|
| 48 | - } |
|
| 28 | + $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 29 | + $arg = $securiser_action(); |
|
| 30 | + |
|
| 31 | + if (!preg_match(',^(\w+)[/](.+)$,', $arg, $r)) { |
|
| 32 | + spip_log("action_auth_dist $arg pas compris"); |
|
| 33 | + } else { |
|
| 34 | + $auth_methode = $r[1]; |
|
| 35 | + $login = $r[2]; |
|
| 36 | + include_spip('inc/auth'); |
|
| 37 | + $res = auth_terminer_identifier_login($auth_methode, $login); |
|
| 38 | + |
|
| 39 | + if (is_string($res)) { // Erreur |
|
| 40 | + $redirect = _request('redirect'); |
|
| 41 | + $redirect = parametre_url($redirect, 'var_erreur', $res, '&'); |
|
| 42 | + include_spip('inc/headers'); |
|
| 43 | + redirige_par_entete($redirect); |
|
| 44 | + } |
|
| 45 | + |
|
| 46 | + // sinon on loge l'auteur identifie, et on finit (redirection automatique) |
|
| 47 | + auth_loger($res); |
|
| 48 | + } |
|
| 49 | 49 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | **/ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | include_spip('inc/charsets'); # pour le nom de fichier |
@@ -30,45 +30,45 @@ discard block |
||
| 30 | 30 | */ |
| 31 | 31 | function action_supprimer_rubrique_dist($id_rubrique = null) { |
| 32 | 32 | |
| 33 | - if (is_null($id_rubrique)) { |
|
| 34 | - $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 35 | - $id_rubrique = $securiser_action(); |
|
| 36 | - } |
|
| 33 | + if (is_null($id_rubrique)) { |
|
| 34 | + $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 35 | + $id_rubrique = $securiser_action(); |
|
| 36 | + } |
|
| 37 | 37 | |
| 38 | - if (intval($id_rubrique)) { |
|
| 39 | - sql_delete('spip_rubriques', 'id_rubrique=' . intval($id_rubrique)); |
|
| 40 | - // Les admin restreints qui n'administraient que cette rubrique |
|
| 41 | - // deviennent redacteurs |
|
| 42 | - // (il y a sans doute moyen de faire ca avec un having) |
|
| 38 | + if (intval($id_rubrique)) { |
|
| 39 | + sql_delete('spip_rubriques', 'id_rubrique=' . intval($id_rubrique)); |
|
| 40 | + // Les admin restreints qui n'administraient que cette rubrique |
|
| 41 | + // deviennent redacteurs |
|
| 42 | + // (il y a sans doute moyen de faire ca avec un having) |
|
| 43 | 43 | |
| 44 | - $q = sql_select('id_auteur', 'spip_auteurs_liens', "objet='rubrique' AND id_objet=" . intval($id_rubrique)); |
|
| 45 | - while ($r = sql_fetch($q)) { |
|
| 46 | - $id_auteur = $r['id_auteur']; |
|
| 47 | - // degrader avant de supprimer la restriction d'admin |
|
| 48 | - // section critique sur les droits |
|
| 49 | - $n = sql_countsel( |
|
| 50 | - 'spip_auteurs_liens', |
|
| 51 | - "objet='rubrique' AND id_objet!=" . intval($id_rubrique) . ' AND id_auteur=' . intval($id_auteur) |
|
| 52 | - ); |
|
| 53 | - if (!$n) { |
|
| 54 | - include_spip('action/editer_auteur'); |
|
| 55 | - auteur_modifier($id_auteur, ['statut' => '1comite']); |
|
| 56 | - } |
|
| 57 | - sql_delete( |
|
| 58 | - 'spip_auteurs_liens', |
|
| 59 | - "objet='rubrique' AND id_objet=" . intval($id_rubrique) . ' AND id_auteur=' . intval($id_auteur) |
|
| 60 | - ); |
|
| 61 | - } |
|
| 62 | - // menu_rubriques devra recalculer |
|
| 63 | - effacer_meta('date_calcul_rubriques'); |
|
| 44 | + $q = sql_select('id_auteur', 'spip_auteurs_liens', "objet='rubrique' AND id_objet=" . intval($id_rubrique)); |
|
| 45 | + while ($r = sql_fetch($q)) { |
|
| 46 | + $id_auteur = $r['id_auteur']; |
|
| 47 | + // degrader avant de supprimer la restriction d'admin |
|
| 48 | + // section critique sur les droits |
|
| 49 | + $n = sql_countsel( |
|
| 50 | + 'spip_auteurs_liens', |
|
| 51 | + "objet='rubrique' AND id_objet!=" . intval($id_rubrique) . ' AND id_auteur=' . intval($id_auteur) |
|
| 52 | + ); |
|
| 53 | + if (!$n) { |
|
| 54 | + include_spip('action/editer_auteur'); |
|
| 55 | + auteur_modifier($id_auteur, ['statut' => '1comite']); |
|
| 56 | + } |
|
| 57 | + sql_delete( |
|
| 58 | + 'spip_auteurs_liens', |
|
| 59 | + "objet='rubrique' AND id_objet=" . intval($id_rubrique) . ' AND id_auteur=' . intval($id_auteur) |
|
| 60 | + ); |
|
| 61 | + } |
|
| 62 | + // menu_rubriques devra recalculer |
|
| 63 | + effacer_meta('date_calcul_rubriques'); |
|
| 64 | 64 | |
| 65 | - // Une rubrique supprimable n'avait pas le statut "publie" |
|
| 66 | - // donc rien de neuf pour la rubrique parente |
|
| 67 | - include_spip('inc/rubriques'); |
|
| 68 | - calculer_langues_rubriques(); |
|
| 65 | + // Une rubrique supprimable n'avait pas le statut "publie" |
|
| 66 | + // donc rien de neuf pour la rubrique parente |
|
| 67 | + include_spip('inc/rubriques'); |
|
| 68 | + calculer_langues_rubriques(); |
|
| 69 | 69 | |
| 70 | - // invalider les caches marques de cette rubrique |
|
| 71 | - include_spip('inc/invalideur'); |
|
| 72 | - suivre_invalideur("id='rubrique/$id_rubrique'"); |
|
| 73 | - } |
|
| 70 | + // invalider les caches marques de cette rubrique |
|
| 71 | + include_spip('inc/invalideur'); |
|
| 72 | + suivre_invalideur("id='rubrique/$id_rubrique'"); |
|
| 73 | + } |
|
| 74 | 74 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | */ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | /** |
@@ -26,22 +26,22 @@ discard block |
||
| 26 | 26 | * @return void |
| 27 | 27 | */ |
| 28 | 28 | function action_relancer_inscription_dist() { |
| 29 | - $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 30 | - $id_auteur = $securiser_action(); |
|
| 29 | + $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 30 | + $id_auteur = $securiser_action(); |
|
| 31 | 31 | |
| 32 | - if (intval($id_auteur) and autoriser('relancer', 'inscription')) { |
|
| 33 | - $auteur = sql_fetsel('prefs, email, nom, statut', 'spip_auteurs', "id_auteur=$id_auteur"); |
|
| 34 | - if ($auteur['statut'] == 'nouveau') { |
|
| 35 | - include_spip('action/inscrire_auteur'); |
|
| 36 | - action_inscrire_auteur_dist($auteur['prefs'], $auteur['email'], $auteur['nom'], ['force_nouveau' => true]); |
|
| 37 | - } |
|
| 38 | - } elseif ($id_auteur === '*' and autoriser('relancer', 'inscription')) { |
|
| 39 | - $auteurs = sql_allfetsel('prefs, email, nom', 'spip_auteurs', "statut='nouveau'"); |
|
| 40 | - if (is_array($auteurs)) { |
|
| 41 | - include_spip('action/inscrire_auteur'); |
|
| 42 | - while ($row = array_pop($auteurs)) { |
|
| 43 | - action_inscrire_auteur_dist($row['prefs'], $row['email'], $row['nom'], ['force_nouveau' => true]); |
|
| 44 | - } |
|
| 45 | - } |
|
| 46 | - } |
|
| 32 | + if (intval($id_auteur) and autoriser('relancer', 'inscription')) { |
|
| 33 | + $auteur = sql_fetsel('prefs, email, nom, statut', 'spip_auteurs', "id_auteur=$id_auteur"); |
|
| 34 | + if ($auteur['statut'] == 'nouveau') { |
|
| 35 | + include_spip('action/inscrire_auteur'); |
|
| 36 | + action_inscrire_auteur_dist($auteur['prefs'], $auteur['email'], $auteur['nom'], ['force_nouveau' => true]); |
|
| 37 | + } |
|
| 38 | + } elseif ($id_auteur === '*' and autoriser('relancer', 'inscription')) { |
|
| 39 | + $auteurs = sql_allfetsel('prefs, email, nom', 'spip_auteurs', "statut='nouveau'"); |
|
| 40 | + if (is_array($auteurs)) { |
|
| 41 | + include_spip('action/inscrire_auteur'); |
|
| 42 | + while ($row = array_pop($auteurs)) { |
|
| 43 | + action_inscrire_auteur_dist($row['prefs'], $row['email'], $row['nom'], ['force_nouveau' => true]); |
|
| 44 | + } |
|
| 45 | + } |
|
| 46 | + } |
|
| 47 | 47 | } |
@@ -4,123 +4,123 @@ |
||
| 4 | 4 | // ** ne pas modifier le fichier ** |
| 5 | 5 | |
| 6 | 6 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 7 | - return; |
|
| 7 | + return; |
|
| 8 | 8 | } |
| 9 | 9 | |
| 10 | 10 | $GLOBALS[$GLOBALS['idx_lang']] = array( |
| 11 | 11 | |
| 12 | - // A |
|
| 13 | - 'accueil_site' => 'Portada del sitio', |
|
| 14 | - 'article' => 'Artículo', |
|
| 15 | - 'articles' => 'Artículos', |
|
| 16 | - 'articles_auteur' => 'Artículos de esta autora o autor', |
|
| 17 | - 'articles_populaires' => 'Los artículos más populares', |
|
| 18 | - 'articles_rubrique' => 'Artículos de esta sección', |
|
| 19 | - 'aucun_article' => 'No hay ningún artículo en esta dirección ', |
|
| 20 | - 'aucun_auteur' => 'No hay autor ni autora en esta dirección ', |
|
| 21 | - 'aucun_site' => 'No hay ningún sitio en esta dirección', |
|
| 22 | - 'aucune_breve' => 'No hay ninguna breve en esta dirección', |
|
| 23 | - 'aucune_rubrique' => 'No hay ninguna sección en esta dirección', |
|
| 24 | - 'auteur' => 'Autor o autora', |
|
| 25 | - 'autres' => 'Otros', |
|
| 26 | - 'autres_breves' => 'Otros breves', |
|
| 27 | - 'autres_groupes_mots_clefs' => 'Otros grupos de palabras clave', |
|
| 28 | - 'autres_sites' => 'Otros sitios', |
|
| 29 | - |
|
| 30 | - // B |
|
| 31 | - 'bonjour' => 'Hola', |
|
| 32 | - |
|
| 33 | - // C |
|
| 34 | - 'commenter_site' => 'Comentar este sitio', |
|
| 35 | - 'contact' => 'Contacto', |
|
| 36 | - 'copie_document_impossible' => 'Imposible copiar el documento', |
|
| 37 | - |
|
| 38 | - // D |
|
| 39 | - 'date' => 'Fecha', |
|
| 40 | - 'dernier_ajout' => 'Última actualización', |
|
| 41 | - 'dernieres_breves' => 'Últimos breves', |
|
| 42 | - 'derniers_articles' => 'Últimos artículos', |
|
| 43 | - 'derniers_commentaires' => 'Últimos comentarios', |
|
| 44 | - 'derniers_messages_forum' => 'Últimos mensajes publicados en los foros', |
|
| 45 | - |
|
| 46 | - // E |
|
| 47 | - 'edition_mode_texte' => 'Edición en modo texto de', |
|
| 48 | - 'en_reponse' => 'En respuesta a:', |
|
| 49 | - 'en_resume' => 'En resumen', |
|
| 50 | - 'envoyer_message' => 'Enviar un mensaje', |
|
| 51 | - 'espace_prive' => 'Espacio privado', |
|
| 52 | - |
|
| 53 | - // F |
|
| 54 | - 'formats_acceptes' => 'Formatos aceptados: @formats@.', |
|
| 55 | - |
|
| 56 | - // H |
|
| 57 | - 'hierarchie_site' => 'Jerarquía del sitio', |
|
| 58 | - |
|
| 59 | - // J |
|
| 60 | - 'jours' => 'días', |
|
| 61 | - |
|
| 62 | - // L |
|
| 63 | - 'lien_connecter' => 'Conectarse', |
|
| 64 | - |
|
| 65 | - // M |
|
| 66 | - 'meme_auteur' => 'Del mismo autor', |
|
| 67 | - 'meme_rubrique' => 'En la misma sección', |
|
| 68 | - 'memes_auteurs' => 'De los mismos autores', |
|
| 69 | - 'message' => 'Mensaje', |
|
| 70 | - 'messages_forum' => 'Mensajes', |
|
| 71 | - 'messages_recents' => 'Los mensajes más recientes del foro', |
|
| 72 | - 'mots_clef' => 'Palabra clave', |
|
| 73 | - 'mots_clefs' => 'Palabras clave', |
|
| 74 | - 'mots_clefs_meme_groupe' => 'Palabras claves en el mismo grupo', |
|
| 75 | - |
|
| 76 | - // N |
|
| 77 | - 'navigation' => 'Navegación', |
|
| 78 | - 'nom' => 'Nombre', |
|
| 79 | - 'nouveautes' => 'Las novedades', |
|
| 80 | - 'nouveautes_web' => 'Novedades en la web', |
|
| 81 | - 'nouveaux_articles' => 'Nuevos artículos', |
|
| 82 | - 'nouvelles_breves' => 'Nuevas breves', |
|
| 83 | - |
|
| 84 | - // P |
|
| 85 | - 'page_precedente' => 'Página anterior', |
|
| 86 | - 'page_suivante' => 'Página siguiente', |
|
| 87 | - 'par_auteur' => 'por ', |
|
| 88 | - 'participer_site' => 'Puedes participar en la vida de este sitio y proponer artículos inscribiéndote aqui. De inmediato recibirás un correo electrónico con tus claves de acceso al espacio privado del sitio.', |
|
| 89 | - 'plan_site' => 'Mapa del sitio', |
|
| 90 | - 'popularite' => 'Popularidad', |
|
| 91 | - 'poster_message' => 'Publicar un mensaje', |
|
| 92 | - 'proposer_site' => 'Proponga un sitio para añadir en esta sección:', |
|
| 93 | - |
|
| 94 | - // R |
|
| 95 | - 'repondre_article' => 'Comentar este artículo', |
|
| 96 | - 'repondre_breve' => 'Comentar esta breve', |
|
| 97 | - 'resultats_recherche' => 'Resultados de la búsqueda', |
|
| 98 | - 'retour_debut_forums' => 'Volver al inicio del foro', |
|
| 99 | - 'rss_abonnement' => 'Copie la siguiente URL en su agregador:', |
|
| 100 | - 'rss_abonnement_titre' => 'Suscribirse', |
|
| 101 | - 'rss_abonnement_titre_page' => 'Suscribirse a', |
|
| 102 | - 'rss_explication' => 'Un feed RSS recoge información actualizada de un sitio. Proporciona el contenido de las entradas, comentarios o un extracto de los mismos, así como un enlace a las versiones completas y alguna otra información. Este feed está pensado para ser leído por un agregador RSS.', |
|
| 103 | - 'rss_explication_titre' => '¿Qué es un feed RSS?', |
|
| 104 | - 'rubrique' => 'Sección', |
|
| 105 | - 'rubriques' => 'Secciones', |
|
| 106 | - |
|
| 107 | - // S |
|
| 108 | - 'signatures_petition' => 'Firmas', |
|
| 109 | - 'site_realise_avec_spip' => 'Sitio desarrollado con SPIP', |
|
| 110 | - 'sites_web' => 'Sitios Web', |
|
| 111 | - 'sous_rubriques' => 'Subsección', |
|
| 112 | - 'spam' => 'Spam', |
|
| 113 | - 'suite' => 'continuar', |
|
| 114 | - 'sur_web' => 'Del web', |
|
| 115 | - 'syndiquer_rubrique' => 'Sindicar esta sección', |
|
| 116 | - 'syndiquer_site' => 'Sindicar el sitio completo', |
|
| 117 | - |
|
| 118 | - // T |
|
| 119 | - 'texte_lettre_information' => 'Este es el boletín de información del sitio', |
|
| 120 | - 'texte_lettre_information_2' => 'Este boletín reseña las novedades publicadas desde ', |
|
| 121 | - |
|
| 122 | - // V |
|
| 123 | - 'ver_imprimer' => 'Versión para imprimir', |
|
| 124 | - 'voir_en_ligne' => 'Ver en línea', |
|
| 125 | - 'voir_squelette' => 'ver el esqueleto de esta página' |
|
| 12 | + // A |
|
| 13 | + 'accueil_site' => 'Portada del sitio', |
|
| 14 | + 'article' => 'Artículo', |
|
| 15 | + 'articles' => 'Artículos', |
|
| 16 | + 'articles_auteur' => 'Artículos de esta autora o autor', |
|
| 17 | + 'articles_populaires' => 'Los artículos más populares', |
|
| 18 | + 'articles_rubrique' => 'Artículos de esta sección', |
|
| 19 | + 'aucun_article' => 'No hay ningún artículo en esta dirección ', |
|
| 20 | + 'aucun_auteur' => 'No hay autor ni autora en esta dirección ', |
|
| 21 | + 'aucun_site' => 'No hay ningún sitio en esta dirección', |
|
| 22 | + 'aucune_breve' => 'No hay ninguna breve en esta dirección', |
|
| 23 | + 'aucune_rubrique' => 'No hay ninguna sección en esta dirección', |
|
| 24 | + 'auteur' => 'Autor o autora', |
|
| 25 | + 'autres' => 'Otros', |
|
| 26 | + 'autres_breves' => 'Otros breves', |
|
| 27 | + 'autres_groupes_mots_clefs' => 'Otros grupos de palabras clave', |
|
| 28 | + 'autres_sites' => 'Otros sitios', |
|
| 29 | + |
|
| 30 | + // B |
|
| 31 | + 'bonjour' => 'Hola', |
|
| 32 | + |
|
| 33 | + // C |
|
| 34 | + 'commenter_site' => 'Comentar este sitio', |
|
| 35 | + 'contact' => 'Contacto', |
|
| 36 | + 'copie_document_impossible' => 'Imposible copiar el documento', |
|
| 37 | + |
|
| 38 | + // D |
|
| 39 | + 'date' => 'Fecha', |
|
| 40 | + 'dernier_ajout' => 'Última actualización', |
|
| 41 | + 'dernieres_breves' => 'Últimos breves', |
|
| 42 | + 'derniers_articles' => 'Últimos artículos', |
|
| 43 | + 'derniers_commentaires' => 'Últimos comentarios', |
|
| 44 | + 'derniers_messages_forum' => 'Últimos mensajes publicados en los foros', |
|
| 45 | + |
|
| 46 | + // E |
|
| 47 | + 'edition_mode_texte' => 'Edición en modo texto de', |
|
| 48 | + 'en_reponse' => 'En respuesta a:', |
|
| 49 | + 'en_resume' => 'En resumen', |
|
| 50 | + 'envoyer_message' => 'Enviar un mensaje', |
|
| 51 | + 'espace_prive' => 'Espacio privado', |
|
| 52 | + |
|
| 53 | + // F |
|
| 54 | + 'formats_acceptes' => 'Formatos aceptados: @formats@.', |
|
| 55 | + |
|
| 56 | + // H |
|
| 57 | + 'hierarchie_site' => 'Jerarquía del sitio', |
|
| 58 | + |
|
| 59 | + // J |
|
| 60 | + 'jours' => 'días', |
|
| 61 | + |
|
| 62 | + // L |
|
| 63 | + 'lien_connecter' => 'Conectarse', |
|
| 64 | + |
|
| 65 | + // M |
|
| 66 | + 'meme_auteur' => 'Del mismo autor', |
|
| 67 | + 'meme_rubrique' => 'En la misma sección', |
|
| 68 | + 'memes_auteurs' => 'De los mismos autores', |
|
| 69 | + 'message' => 'Mensaje', |
|
| 70 | + 'messages_forum' => 'Mensajes', |
|
| 71 | + 'messages_recents' => 'Los mensajes más recientes del foro', |
|
| 72 | + 'mots_clef' => 'Palabra clave', |
|
| 73 | + 'mots_clefs' => 'Palabras clave', |
|
| 74 | + 'mots_clefs_meme_groupe' => 'Palabras claves en el mismo grupo', |
|
| 75 | + |
|
| 76 | + // N |
|
| 77 | + 'navigation' => 'Navegación', |
|
| 78 | + 'nom' => 'Nombre', |
|
| 79 | + 'nouveautes' => 'Las novedades', |
|
| 80 | + 'nouveautes_web' => 'Novedades en la web', |
|
| 81 | + 'nouveaux_articles' => 'Nuevos artículos', |
|
| 82 | + 'nouvelles_breves' => 'Nuevas breves', |
|
| 83 | + |
|
| 84 | + // P |
|
| 85 | + 'page_precedente' => 'Página anterior', |
|
| 86 | + 'page_suivante' => 'Página siguiente', |
|
| 87 | + 'par_auteur' => 'por ', |
|
| 88 | + 'participer_site' => 'Puedes participar en la vida de este sitio y proponer artículos inscribiéndote aqui. De inmediato recibirás un correo electrónico con tus claves de acceso al espacio privado del sitio.', |
|
| 89 | + 'plan_site' => 'Mapa del sitio', |
|
| 90 | + 'popularite' => 'Popularidad', |
|
| 91 | + 'poster_message' => 'Publicar un mensaje', |
|
| 92 | + 'proposer_site' => 'Proponga un sitio para añadir en esta sección:', |
|
| 93 | + |
|
| 94 | + // R |
|
| 95 | + 'repondre_article' => 'Comentar este artículo', |
|
| 96 | + 'repondre_breve' => 'Comentar esta breve', |
|
| 97 | + 'resultats_recherche' => 'Resultados de la búsqueda', |
|
| 98 | + 'retour_debut_forums' => 'Volver al inicio del foro', |
|
| 99 | + 'rss_abonnement' => 'Copie la siguiente URL en su agregador:', |
|
| 100 | + 'rss_abonnement_titre' => 'Suscribirse', |
|
| 101 | + 'rss_abonnement_titre_page' => 'Suscribirse a', |
|
| 102 | + 'rss_explication' => 'Un feed RSS recoge información actualizada de un sitio. Proporciona el contenido de las entradas, comentarios o un extracto de los mismos, así como un enlace a las versiones completas y alguna otra información. Este feed está pensado para ser leído por un agregador RSS.', |
|
| 103 | + 'rss_explication_titre' => '¿Qué es un feed RSS?', |
|
| 104 | + 'rubrique' => 'Sección', |
|
| 105 | + 'rubriques' => 'Secciones', |
|
| 106 | + |
|
| 107 | + // S |
|
| 108 | + 'signatures_petition' => 'Firmas', |
|
| 109 | + 'site_realise_avec_spip' => 'Sitio desarrollado con SPIP', |
|
| 110 | + 'sites_web' => 'Sitios Web', |
|
| 111 | + 'sous_rubriques' => 'Subsección', |
|
| 112 | + 'spam' => 'Spam', |
|
| 113 | + 'suite' => 'continuar', |
|
| 114 | + 'sur_web' => 'Del web', |
|
| 115 | + 'syndiquer_rubrique' => 'Sindicar esta sección', |
|
| 116 | + 'syndiquer_site' => 'Sindicar el sitio completo', |
|
| 117 | + |
|
| 118 | + // T |
|
| 119 | + 'texte_lettre_information' => 'Este es el boletín de información del sitio', |
|
| 120 | + 'texte_lettre_information_2' => 'Este boletín reseña las novedades publicadas desde ', |
|
| 121 | + |
|
| 122 | + // V |
|
| 123 | + 'ver_imprimer' => 'Versión para imprimir', |
|
| 124 | + 'voir_en_ligne' => 'Ver en línea', |
|
| 125 | + 'voir_squelette' => 'ver el esqueleto de esta página' |
|
| 126 | 126 | ); |