@@ -1,7 +1,7 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 4 | - return; |
|
| 4 | + return; |
|
| 5 | 5 | } |
| 6 | 6 | |
| 7 | 7 | include_spip('inc/filtres_selecteur_generique'); |
@@ -157,8 +157,7 @@ |
||
| 157 | 157 | if (count($autre_langue) == 1) { |
| 158 | 158 | $row['lang'] = reset($autre_langue); |
| 159 | 159 | } |
| 160 | - } |
|
| 161 | - else { |
|
| 160 | + } else { |
|
| 162 | 161 | $row['lang'] = 'en'; |
| 163 | 162 | } |
| 164 | 163 | |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | **/ |
| 17 | 17 | |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | include_spip('inc/autoriser'); // necessaire si appel de l'espace public |
@@ -44,66 +44,66 @@ discard block |
||
| 44 | 44 | **/ |
| 45 | 45 | function precharger_objet($type, $id_objet, $id_rubrique = 0, $lier_trad = 0, $champ_titre = 'titre') { |
| 46 | 46 | |
| 47 | - $row = []; |
|
| 48 | - $table = table_objet_sql($type); |
|
| 49 | - $_id_objet = id_table_objet($table); |
|
| 50 | - |
|
| 51 | - // si l'objet existe deja, on retourne simplement ses valeurs |
|
| 52 | - if (is_numeric($id_objet)) { |
|
| 53 | - return sql_fetsel('*', $table, "$_id_objet=" . (int) $id_objet); |
|
| 54 | - } |
|
| 55 | - |
|
| 56 | - // ici, on demande une creation. |
|
| 57 | - // on prerempli certains elements : les champs si traduction, |
|
| 58 | - // les id_rubrique et id_secteur si l'objet a ces champs |
|
| 59 | - $desc = lister_tables_objets_sql($table); |
|
| 60 | - # il faudrait calculer $champ_titre ici |
|
| 61 | - $is_rubrique = isset($desc['field']['id_rubrique']); |
|
| 62 | - $is_secteur = isset($desc['field']['id_secteur']); |
|
| 63 | - |
|
| 64 | - // si demande de traduction |
|
| 65 | - // on recupere les valeurs de la traduction |
|
| 66 | - if ($lier_trad) { |
|
| 67 | - if ($select = charger_fonction('precharger_traduction_' . $type, 'inc', true)) { |
|
| 68 | - $row = $select($id_objet, $id_rubrique, $lier_trad); |
|
| 69 | - } else { |
|
| 70 | - $row = precharger_traduction_objet($type, $id_objet, $id_rubrique, $lier_trad, $champ_titre); |
|
| 71 | - } |
|
| 72 | - } else { |
|
| 73 | - $row[$champ_titre] = ''; |
|
| 74 | - if ($is_rubrique) { |
|
| 75 | - $row['id_rubrique'] = $id_rubrique; |
|
| 76 | - } |
|
| 77 | - } |
|
| 78 | - |
|
| 79 | - // calcul de la rubrique |
|
| 80 | - # note : comment faire pour des traductions sur l'objet rubriques ? |
|
| 81 | - // appel du script a la racine, faut choisir |
|
| 82 | - // admin restreint ==> sa premiere rubrique |
|
| 83 | - // autre ==> la derniere rubrique cree |
|
| 84 | - if ($is_rubrique && !$row['id_rubrique']) { |
|
| 85 | - if ($GLOBALS['connect_id_rubrique']) { |
|
| 86 | - $row['id_rubrique'] = $id_rubrique = current($GLOBALS['connect_id_rubrique']); |
|
| 87 | - } else { |
|
| 88 | - $row_rub = sql_fetsel('id_rubrique', 'spip_rubriques', '', '', 'id_rubrique DESC', 1); |
|
| 89 | - $row['id_rubrique'] = $id_rubrique = $row_rub['id_rubrique']; |
|
| 90 | - } |
|
| 91 | - if (!autoriser('creerarticledans', 'rubrique', $row['id_rubrique'])) { |
|
| 92 | - // manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises |
|
| 93 | - $res = sql_select('id_rubrique', 'spip_rubriques', 'id_parent=0'); |
|
| 94 | - while (!autoriser('creerarticledans', 'rubrique', $row['id_rubrique']) && $row_rub = sql_fetch($res)) { |
|
| 95 | - $row['id_rubrique'] = $row_rub['id_rubrique']; |
|
| 96 | - } |
|
| 97 | - } |
|
| 98 | - } |
|
| 99 | - |
|
| 100 | - // recuperer le secteur, pour affecter les bons champs extras |
|
| 101 | - if ($id_rubrique && $is_secteur && !$row['id_secteur']) { |
|
| 102 | - $row_rub = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . sql_quote($id_rubrique)); |
|
| 103 | - $row['id_secteur'] = $row_rub; |
|
| 104 | - } |
|
| 105 | - |
|
| 106 | - return $row; |
|
| 47 | + $row = []; |
|
| 48 | + $table = table_objet_sql($type); |
|
| 49 | + $_id_objet = id_table_objet($table); |
|
| 50 | + |
|
| 51 | + // si l'objet existe deja, on retourne simplement ses valeurs |
|
| 52 | + if (is_numeric($id_objet)) { |
|
| 53 | + return sql_fetsel('*', $table, "$_id_objet=" . (int) $id_objet); |
|
| 54 | + } |
|
| 55 | + |
|
| 56 | + // ici, on demande une creation. |
|
| 57 | + // on prerempli certains elements : les champs si traduction, |
|
| 58 | + // les id_rubrique et id_secteur si l'objet a ces champs |
|
| 59 | + $desc = lister_tables_objets_sql($table); |
|
| 60 | + # il faudrait calculer $champ_titre ici |
|
| 61 | + $is_rubrique = isset($desc['field']['id_rubrique']); |
|
| 62 | + $is_secteur = isset($desc['field']['id_secteur']); |
|
| 63 | + |
|
| 64 | + // si demande de traduction |
|
| 65 | + // on recupere les valeurs de la traduction |
|
| 66 | + if ($lier_trad) { |
|
| 67 | + if ($select = charger_fonction('precharger_traduction_' . $type, 'inc', true)) { |
|
| 68 | + $row = $select($id_objet, $id_rubrique, $lier_trad); |
|
| 69 | + } else { |
|
| 70 | + $row = precharger_traduction_objet($type, $id_objet, $id_rubrique, $lier_trad, $champ_titre); |
|
| 71 | + } |
|
| 72 | + } else { |
|
| 73 | + $row[$champ_titre] = ''; |
|
| 74 | + if ($is_rubrique) { |
|
| 75 | + $row['id_rubrique'] = $id_rubrique; |
|
| 76 | + } |
|
| 77 | + } |
|
| 78 | + |
|
| 79 | + // calcul de la rubrique |
|
| 80 | + # note : comment faire pour des traductions sur l'objet rubriques ? |
|
| 81 | + // appel du script a la racine, faut choisir |
|
| 82 | + // admin restreint ==> sa premiere rubrique |
|
| 83 | + // autre ==> la derniere rubrique cree |
|
| 84 | + if ($is_rubrique && !$row['id_rubrique']) { |
|
| 85 | + if ($GLOBALS['connect_id_rubrique']) { |
|
| 86 | + $row['id_rubrique'] = $id_rubrique = current($GLOBALS['connect_id_rubrique']); |
|
| 87 | + } else { |
|
| 88 | + $row_rub = sql_fetsel('id_rubrique', 'spip_rubriques', '', '', 'id_rubrique DESC', 1); |
|
| 89 | + $row['id_rubrique'] = $id_rubrique = $row_rub['id_rubrique']; |
|
| 90 | + } |
|
| 91 | + if (!autoriser('creerarticledans', 'rubrique', $row['id_rubrique'])) { |
|
| 92 | + // manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises |
|
| 93 | + $res = sql_select('id_rubrique', 'spip_rubriques', 'id_parent=0'); |
|
| 94 | + while (!autoriser('creerarticledans', 'rubrique', $row['id_rubrique']) && $row_rub = sql_fetch($res)) { |
|
| 95 | + $row['id_rubrique'] = $row_rub['id_rubrique']; |
|
| 96 | + } |
|
| 97 | + } |
|
| 98 | + } |
|
| 99 | + |
|
| 100 | + // recuperer le secteur, pour affecter les bons champs extras |
|
| 101 | + if ($id_rubrique && $is_secteur && !$row['id_secteur']) { |
|
| 102 | + $row_rub = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . sql_quote($id_rubrique)); |
|
| 103 | + $row['id_secteur'] = $row_rub; |
|
| 104 | + } |
|
| 105 | + |
|
| 106 | + return $row; |
|
| 107 | 107 | } |
| 108 | 108 | |
| 109 | 109 | |
@@ -125,78 +125,78 @@ discard block |
||
| 125 | 125 | * Couples clés / valeurs des champs du formulaire à charger |
| 126 | 126 | **/ |
| 127 | 127 | function precharger_traduction_objet($type, $id_objet, $id_rubrique = 0, $lier_trad = 0, $champ_titre = 'titre') { |
| 128 | - $table = table_objet_sql($type); |
|
| 129 | - $_id_objet = id_table_objet($table); |
|
| 130 | - |
|
| 131 | - // Recuperer les donnees de l'objet original |
|
| 132 | - $row = sql_fetsel('*', $table, "$_id_objet=" . (int) $lier_trad); |
|
| 133 | - if ($row) { |
|
| 134 | - include_spip('inc/filtres'); |
|
| 135 | - $row[$champ_titre] = filtrer_entites(objet_T($type, 'info_nouvelle_traduction')) . ' ' . $row[$champ_titre]; |
|
| 136 | - } else { |
|
| 137 | - $row = []; |
|
| 138 | - } |
|
| 139 | - |
|
| 140 | - // on met l'objet dans une rubrique si l'objet le peut |
|
| 141 | - $desc = lister_tables_objets_sql($table); |
|
| 142 | - $is_rubrique = isset($desc['field']['id_rubrique']); |
|
| 143 | - |
|
| 144 | - if ($is_rubrique) { |
|
| 145 | - $langues_dispo = explode(',', (string) $GLOBALS['meta']['langues_multilingue']); |
|
| 146 | - // si le redacteur utilise une autre langue que celle de la source, on suppose que c'est pour traduire dans sa langue |
|
| 147 | - if (in_array($GLOBALS['spip_lang'], $langues_dispo) && $GLOBALS['spip_lang'] !== $row['lang']) { |
|
| 148 | - $row['lang'] = $GLOBALS['spip_lang']; |
|
| 149 | - } |
|
| 150 | - // sinon si il y a seulement 2 langues dispos, on bascule sur l'"autre" |
|
| 151 | - elseif (count($langues_dispo) == 2) { |
|
| 152 | - $autre_langue = array_diff($langues_dispo, [$row['lang']]); |
|
| 153 | - if (count($autre_langue) == 1) { |
|
| 154 | - $row['lang'] = reset($autre_langue); |
|
| 155 | - } |
|
| 156 | - } |
|
| 157 | - else { |
|
| 158 | - $row['lang'] = 'en'; |
|
| 159 | - } |
|
| 160 | - |
|
| 161 | - if ($id_rubrique) { |
|
| 162 | - $row['id_rubrique'] = $id_rubrique; |
|
| 163 | - |
|
| 164 | - return $row; |
|
| 165 | - } |
|
| 166 | - $id_rubrique = $row['id_rubrique']; |
|
| 167 | - |
|
| 168 | - |
|
| 169 | - // Regler la langue, si possible, sur celle du redacteur |
|
| 170 | - // Cela implique souvent de choisir une rubrique ou un secteur |
|
| 171 | - if (in_array($GLOBALS['spip_lang'], $langues_dispo)) { |
|
| 172 | - // Si le menu de langues est autorise sur l'objet, |
|
| 173 | - // on peut changer la langue quelle que soit la rubrique |
|
| 174 | - // donc on reste dans la meme rubrique |
|
| 175 | - if (in_array($table, explode(',', (string) $GLOBALS['meta']['multi_objets']))) { |
|
| 176 | - $row['id_rubrique'] = $row['id_rubrique']; # explicite :-) |
|
| 177 | - |
|
| 178 | - // Sinon, chercher la rubrique la plus adaptee pour |
|
| 179 | - // accueillir l'objet dans la langue du traducteur |
|
| 180 | - } elseif ($is_rubrique && $GLOBALS['meta']['multi_rubriques'] == 'oui') { |
|
| 181 | - if ($GLOBALS['meta']['multi_secteurs'] == 'oui') { |
|
| 182 | - $id_parent = 0; |
|
| 183 | - } else { |
|
| 184 | - // on cherche une rubrique soeur dans la bonne langue |
|
| 185 | - $row_rub = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . (int) $id_rubrique); |
|
| 186 | - $id_parent = $row_rub['id_parent']; |
|
| 187 | - } |
|
| 188 | - |
|
| 189 | - $row_rub = sql_fetsel( |
|
| 190 | - 'id_rubrique', |
|
| 191 | - 'spip_rubriques', |
|
| 192 | - "lang='" . $GLOBALS['spip_lang'] . "' AND id_parent=" . (int) $id_parent |
|
| 193 | - ); |
|
| 194 | - if ($row_rub) { |
|
| 195 | - $row['id_rubrique'] = $row_rub['id_rubrique']; |
|
| 196 | - } |
|
| 197 | - } |
|
| 198 | - } |
|
| 199 | - } |
|
| 200 | - |
|
| 201 | - return $row; |
|
| 128 | + $table = table_objet_sql($type); |
|
| 129 | + $_id_objet = id_table_objet($table); |
|
| 130 | + |
|
| 131 | + // Recuperer les donnees de l'objet original |
|
| 132 | + $row = sql_fetsel('*', $table, "$_id_objet=" . (int) $lier_trad); |
|
| 133 | + if ($row) { |
|
| 134 | + include_spip('inc/filtres'); |
|
| 135 | + $row[$champ_titre] = filtrer_entites(objet_T($type, 'info_nouvelle_traduction')) . ' ' . $row[$champ_titre]; |
|
| 136 | + } else { |
|
| 137 | + $row = []; |
|
| 138 | + } |
|
| 139 | + |
|
| 140 | + // on met l'objet dans une rubrique si l'objet le peut |
|
| 141 | + $desc = lister_tables_objets_sql($table); |
|
| 142 | + $is_rubrique = isset($desc['field']['id_rubrique']); |
|
| 143 | + |
|
| 144 | + if ($is_rubrique) { |
|
| 145 | + $langues_dispo = explode(',', (string) $GLOBALS['meta']['langues_multilingue']); |
|
| 146 | + // si le redacteur utilise une autre langue que celle de la source, on suppose que c'est pour traduire dans sa langue |
|
| 147 | + if (in_array($GLOBALS['spip_lang'], $langues_dispo) && $GLOBALS['spip_lang'] !== $row['lang']) { |
|
| 148 | + $row['lang'] = $GLOBALS['spip_lang']; |
|
| 149 | + } |
|
| 150 | + // sinon si il y a seulement 2 langues dispos, on bascule sur l'"autre" |
|
| 151 | + elseif (count($langues_dispo) == 2) { |
|
| 152 | + $autre_langue = array_diff($langues_dispo, [$row['lang']]); |
|
| 153 | + if (count($autre_langue) == 1) { |
|
| 154 | + $row['lang'] = reset($autre_langue); |
|
| 155 | + } |
|
| 156 | + } |
|
| 157 | + else { |
|
| 158 | + $row['lang'] = 'en'; |
|
| 159 | + } |
|
| 160 | + |
|
| 161 | + if ($id_rubrique) { |
|
| 162 | + $row['id_rubrique'] = $id_rubrique; |
|
| 163 | + |
|
| 164 | + return $row; |
|
| 165 | + } |
|
| 166 | + $id_rubrique = $row['id_rubrique']; |
|
| 167 | + |
|
| 168 | + |
|
| 169 | + // Regler la langue, si possible, sur celle du redacteur |
|
| 170 | + // Cela implique souvent de choisir une rubrique ou un secteur |
|
| 171 | + if (in_array($GLOBALS['spip_lang'], $langues_dispo)) { |
|
| 172 | + // Si le menu de langues est autorise sur l'objet, |
|
| 173 | + // on peut changer la langue quelle que soit la rubrique |
|
| 174 | + // donc on reste dans la meme rubrique |
|
| 175 | + if (in_array($table, explode(',', (string) $GLOBALS['meta']['multi_objets']))) { |
|
| 176 | + $row['id_rubrique'] = $row['id_rubrique']; # explicite :-) |
|
| 177 | + |
|
| 178 | + // Sinon, chercher la rubrique la plus adaptee pour |
|
| 179 | + // accueillir l'objet dans la langue du traducteur |
|
| 180 | + } elseif ($is_rubrique && $GLOBALS['meta']['multi_rubriques'] == 'oui') { |
|
| 181 | + if ($GLOBALS['meta']['multi_secteurs'] == 'oui') { |
|
| 182 | + $id_parent = 0; |
|
| 183 | + } else { |
|
| 184 | + // on cherche une rubrique soeur dans la bonne langue |
|
| 185 | + $row_rub = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . (int) $id_rubrique); |
|
| 186 | + $id_parent = $row_rub['id_parent']; |
|
| 187 | + } |
|
| 188 | + |
|
| 189 | + $row_rub = sql_fetsel( |
|
| 190 | + 'id_rubrique', |
|
| 191 | + 'spip_rubriques', |
|
| 192 | + "lang='" . $GLOBALS['spip_lang'] . "' AND id_parent=" . (int) $id_parent |
|
| 193 | + ); |
|
| 194 | + if ($row_rub) { |
|
| 195 | + $row['id_rubrique'] = $row_rub['id_rubrique']; |
|
| 196 | + } |
|
| 197 | + } |
|
| 198 | + } |
|
| 199 | + } |
|
| 200 | + |
|
| 201 | + return $row; |
|
| 202 | 202 | } |
@@ -50,7 +50,7 @@ discard block |
||
| 50 | 50 | |
| 51 | 51 | // si l'objet existe deja, on retourne simplement ses valeurs |
| 52 | 52 | if (is_numeric($id_objet)) { |
| 53 | - return sql_fetsel('*', $table, "$_id_objet=" . (int) $id_objet); |
|
| 53 | + return sql_fetsel('*', $table, "$_id_objet=".(int) $id_objet); |
|
| 54 | 54 | } |
| 55 | 55 | |
| 56 | 56 | // ici, on demande une creation. |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | // si demande de traduction |
| 65 | 65 | // on recupere les valeurs de la traduction |
| 66 | 66 | if ($lier_trad) { |
| 67 | - if ($select = charger_fonction('precharger_traduction_' . $type, 'inc', true)) { |
|
| 67 | + if ($select = charger_fonction('precharger_traduction_'.$type, 'inc', true)) { |
|
| 68 | 68 | $row = $select($id_objet, $id_rubrique, $lier_trad); |
| 69 | 69 | } else { |
| 70 | 70 | $row = precharger_traduction_objet($type, $id_objet, $id_rubrique, $lier_trad, $champ_titre); |
@@ -99,7 +99,7 @@ discard block |
||
| 99 | 99 | |
| 100 | 100 | // recuperer le secteur, pour affecter les bons champs extras |
| 101 | 101 | if ($id_rubrique && $is_secteur && !$row['id_secteur']) { |
| 102 | - $row_rub = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . sql_quote($id_rubrique)); |
|
| 102 | + $row_rub = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.sql_quote($id_rubrique)); |
|
| 103 | 103 | $row['id_secteur'] = $row_rub; |
| 104 | 104 | } |
| 105 | 105 | |
@@ -129,10 +129,10 @@ discard block |
||
| 129 | 129 | $_id_objet = id_table_objet($table); |
| 130 | 130 | |
| 131 | 131 | // Recuperer les donnees de l'objet original |
| 132 | - $row = sql_fetsel('*', $table, "$_id_objet=" . (int) $lier_trad); |
|
| 132 | + $row = sql_fetsel('*', $table, "$_id_objet=".(int) $lier_trad); |
|
| 133 | 133 | if ($row) { |
| 134 | 134 | include_spip('inc/filtres'); |
| 135 | - $row[$champ_titre] = filtrer_entites(objet_T($type, 'info_nouvelle_traduction')) . ' ' . $row[$champ_titre]; |
|
| 135 | + $row[$champ_titre] = filtrer_entites(objet_T($type, 'info_nouvelle_traduction')).' '.$row[$champ_titre]; |
|
| 136 | 136 | } else { |
| 137 | 137 | $row = []; |
| 138 | 138 | } |
@@ -182,14 +182,14 @@ discard block |
||
| 182 | 182 | $id_parent = 0; |
| 183 | 183 | } else { |
| 184 | 184 | // on cherche une rubrique soeur dans la bonne langue |
| 185 | - $row_rub = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . (int) $id_rubrique); |
|
| 185 | + $row_rub = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique='.(int) $id_rubrique); |
|
| 186 | 186 | $id_parent = $row_rub['id_parent']; |
| 187 | 187 | } |
| 188 | 188 | |
| 189 | 189 | $row_rub = sql_fetsel( |
| 190 | 190 | 'id_rubrique', |
| 191 | 191 | 'spip_rubriques', |
| 192 | - "lang='" . $GLOBALS['spip_lang'] . "' AND id_parent=" . (int) $id_parent |
|
| 192 | + "lang='".$GLOBALS['spip_lang']."' AND id_parent=".(int) $id_parent |
|
| 193 | 193 | ); |
| 194 | 194 | if ($row_rub) { |
| 195 | 195 | $row['id_rubrique'] = $row_rub['id_rubrique']; |
@@ -85,8 +85,7 @@ |
||
| 85 | 85 | $url_action = self(); |
| 86 | 86 | $action = _request('action'); |
| 87 | 87 | $url_action = parametre_url($url_action, 'action', $action, '&'); |
| 88 | - } |
|
| 89 | - else { |
|
| 88 | + } else { |
|
| 90 | 89 | $action = parametre_url($url_action, 'action'); |
| 91 | 90 | } |
| 92 | 91 | |
@@ -15,10 +15,10 @@ discard block |
||
| 15 | 15 | * @package SPIP\Core\Actions |
| 16 | 16 | **/ |
| 17 | 17 | |
| 18 | - use Spip\Chiffrer\SpipCles; |
|
| 18 | + use Spip\Chiffrer\SpipCles; |
|
| 19 | 19 | |
| 20 | 20 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 21 | - return; |
|
| 21 | + return; |
|
| 22 | 22 | } |
| 23 | 23 | |
| 24 | 24 | /** |
@@ -51,19 +51,19 @@ discard block |
||
| 51 | 51 | * @return array|string |
| 52 | 52 | */ |
| 53 | 53 | function inc_securiser_action_dist($action = '', $arg = '', $redirect = '', $mode = false, $att = '', $public = false) { |
| 54 | - if ($action) { |
|
| 55 | - return securiser_action_auteur($action, $arg, $redirect, $mode, $att, $public); |
|
| 56 | - } else { |
|
| 57 | - $arg = _request('arg'); |
|
| 58 | - $hash = _request('hash'); |
|
| 59 | - $action = _request('action') ?: _request('formulaire_action'); |
|
| 60 | - if ($a = verifier_action_auteur("$action-$arg", $hash)) { |
|
| 61 | - return $arg; |
|
| 62 | - } |
|
| 63 | - include_spip('inc/minipres'); |
|
| 64 | - echo minipres(); |
|
| 65 | - exit; |
|
| 66 | - } |
|
| 54 | + if ($action) { |
|
| 55 | + return securiser_action_auteur($action, $arg, $redirect, $mode, $att, $public); |
|
| 56 | + } else { |
|
| 57 | + $arg = _request('arg'); |
|
| 58 | + $hash = _request('hash'); |
|
| 59 | + $action = _request('action') ?: _request('formulaire_action'); |
|
| 60 | + if ($a = verifier_action_auteur("$action-$arg", $hash)) { |
|
| 61 | + return $arg; |
|
| 62 | + } |
|
| 63 | + include_spip('inc/minipres'); |
|
| 64 | + echo minipres(); |
|
| 65 | + exit; |
|
| 66 | + } |
|
| 67 | 67 | } |
| 68 | 68 | |
| 69 | 69 | /** |
@@ -82,29 +82,29 @@ discard block |
||
| 82 | 82 | */ |
| 83 | 83 | function demander_confirmation_avant_action($titre, $titre_bouton, $url_action = null) { |
| 84 | 84 | |
| 85 | - if (!$url_action) { |
|
| 86 | - $url_action = self(); |
|
| 87 | - $action = _request('action'); |
|
| 88 | - $url_action = parametre_url($url_action, 'action', $action, '&'); |
|
| 89 | - } |
|
| 90 | - else { |
|
| 91 | - $action = parametre_url($url_action, 'action'); |
|
| 92 | - } |
|
| 93 | - |
|
| 94 | - $arg = parametre_url($url_action, 'arg'); |
|
| 95 | - $confirm = md5("$action:$arg:" . realpath(__FILE__)); |
|
| 96 | - if (_request('confirm_action') === $confirm) { |
|
| 97 | - return true; |
|
| 98 | - } |
|
| 99 | - |
|
| 100 | - $url_confirm = parametre_url($url_action, 'confirm_action', $confirm, '&'); |
|
| 101 | - include_spip('inc/filtres'); |
|
| 102 | - $bouton_action = bouton_action($titre_bouton, $url_confirm); |
|
| 103 | - $corps = "<div style='text-align:center;'>$bouton_action</div>"; |
|
| 104 | - |
|
| 105 | - include_spip('inc/minipres'); |
|
| 106 | - echo minipres($titre, $corps); |
|
| 107 | - exit; |
|
| 85 | + if (!$url_action) { |
|
| 86 | + $url_action = self(); |
|
| 87 | + $action = _request('action'); |
|
| 88 | + $url_action = parametre_url($url_action, 'action', $action, '&'); |
|
| 89 | + } |
|
| 90 | + else { |
|
| 91 | + $action = parametre_url($url_action, 'action'); |
|
| 92 | + } |
|
| 93 | + |
|
| 94 | + $arg = parametre_url($url_action, 'arg'); |
|
| 95 | + $confirm = md5("$action:$arg:" . realpath(__FILE__)); |
|
| 96 | + if (_request('confirm_action') === $confirm) { |
|
| 97 | + return true; |
|
| 98 | + } |
|
| 99 | + |
|
| 100 | + $url_confirm = parametre_url($url_action, 'confirm_action', $confirm, '&'); |
|
| 101 | + include_spip('inc/filtres'); |
|
| 102 | + $bouton_action = bouton_action($titre_bouton, $url_confirm); |
|
| 103 | + $corps = "<div style='text-align:center;'>$bouton_action</div>"; |
|
| 104 | + |
|
| 105 | + include_spip('inc/minipres'); |
|
| 106 | + echo minipres($titre, $corps); |
|
| 107 | + exit; |
|
| 108 | 108 | } |
| 109 | 109 | |
| 110 | 110 | /** |
@@ -135,34 +135,34 @@ discard block |
||
| 135 | 135 | */ |
| 136 | 136 | function securiser_action_auteur($action, $arg, $redirect = '', $mode = false, $att = '', $public = false) { |
| 137 | 137 | |
| 138 | - // mode URL ou array |
|
| 139 | - if (!is_string($mode)) { |
|
| 140 | - $hash = calculer_action_auteur("$action-$arg", is_numeric($att) ? $att : null); |
|
| 141 | - |
|
| 142 | - $r = rawurlencode($redirect); |
|
| 143 | - if ($mode === -1) { |
|
| 144 | - return ['action' => $action, 'arg' => $arg, 'hash' => $hash]; |
|
| 145 | - } else { |
|
| 146 | - return generer_url_action( |
|
| 147 | - $action, |
|
| 148 | - 'arg=' . rawurlencode($arg) . "&hash=$hash" . ($r ? "&redirect=$r" : ''), |
|
| 149 | - $mode, |
|
| 150 | - $public |
|
| 151 | - ); |
|
| 152 | - } |
|
| 153 | - } |
|
| 154 | - |
|
| 155 | - // mode formulaire |
|
| 156 | - $hash = calculer_action_auteur("$action-$arg"); |
|
| 157 | - $att .= " style='margin: 0px; border: 0px'"; |
|
| 158 | - if ($redirect) { |
|
| 159 | - $redirect = "\n\t\t<input name='redirect' type='hidden' value='" . str_replace("'", ''', $redirect) . "' />"; |
|
| 160 | - } |
|
| 161 | - $mode .= $redirect . " |
|
| 138 | + // mode URL ou array |
|
| 139 | + if (!is_string($mode)) { |
|
| 140 | + $hash = calculer_action_auteur("$action-$arg", is_numeric($att) ? $att : null); |
|
| 141 | + |
|
| 142 | + $r = rawurlencode($redirect); |
|
| 143 | + if ($mode === -1) { |
|
| 144 | + return ['action' => $action, 'arg' => $arg, 'hash' => $hash]; |
|
| 145 | + } else { |
|
| 146 | + return generer_url_action( |
|
| 147 | + $action, |
|
| 148 | + 'arg=' . rawurlencode($arg) . "&hash=$hash" . ($r ? "&redirect=$r" : ''), |
|
| 149 | + $mode, |
|
| 150 | + $public |
|
| 151 | + ); |
|
| 152 | + } |
|
| 153 | + } |
|
| 154 | + |
|
| 155 | + // mode formulaire |
|
| 156 | + $hash = calculer_action_auteur("$action-$arg"); |
|
| 157 | + $att .= " style='margin: 0px; border: 0px'"; |
|
| 158 | + if ($redirect) { |
|
| 159 | + $redirect = "\n\t\t<input name='redirect' type='hidden' value='" . str_replace("'", ''', $redirect) . "' />"; |
|
| 160 | + } |
|
| 161 | + $mode .= $redirect . " |
|
| 162 | 162 | <input name='hash' type='hidden' value='$hash' /> |
| 163 | 163 | <input name='arg' type='hidden' value='$arg' />"; |
| 164 | 164 | |
| 165 | - return generer_form_action($action, $mode, $att, $public); |
|
| 165 | + return generer_form_action($action, $mode, $att, $public); |
|
| 166 | 166 | } |
| 167 | 167 | |
| 168 | 168 | /** |
@@ -172,48 +172,48 @@ discard block |
||
| 172 | 172 | * @return array |
| 173 | 173 | */ |
| 174 | 174 | function caracteriser_auteur($id_auteur = null) { |
| 175 | - static $caracterisation = []; |
|
| 176 | - |
|
| 177 | - if (is_null($id_auteur) && !isset($GLOBALS['visiteur_session']['id_auteur'])) { |
|
| 178 | - // si l'auteur courant n'est pas connu alors qu'il peut demander une action |
|
| 179 | - // c'est une connexion par php_auth ou 1 instal, on se rabat sur le cookie. |
|
| 180 | - // S'il n'avait pas le droit de realiser cette action, le hash sera faux. |
|
| 181 | - if ( |
|
| 182 | - isset($_COOKIE['spip_session']) |
|
| 183 | - && preg_match('/^(\d+)/', $_COOKIE['spip_session'], $r) |
|
| 184 | - ) { |
|
| 185 | - return [$r[1], '']; |
|
| 186 | - // Necessaire aux forums anonymes. |
|
| 187 | - // Pour le reste, ca echouera. |
|
| 188 | - } else { |
|
| 189 | - return ['0', '']; |
|
| 190 | - } |
|
| 191 | - } |
|
| 192 | - // Eviter l'acces SQL si le pass est connu de PHP |
|
| 193 | - if (is_null($id_auteur)) { |
|
| 194 | - $id_auteur = $GLOBALS['visiteur_session']['id_auteur'] ?? 0; |
|
| 195 | - if (isset($GLOBALS['visiteur_session']['pass']) && $GLOBALS['visiteur_session']['pass']) { |
|
| 196 | - return $caracterisation[$id_auteur] = [$id_auteur, $GLOBALS['visiteur_session']['pass']]; |
|
| 197 | - } |
|
| 198 | - } |
|
| 199 | - |
|
| 200 | - if (isset($caracterisation[$id_auteur])) { |
|
| 201 | - return $caracterisation[$id_auteur]; |
|
| 202 | - } |
|
| 203 | - |
|
| 204 | - if ($id_auteur) { |
|
| 205 | - include_spip('base/abstract_sql'); |
|
| 206 | - $t = sql_fetsel('id_auteur, pass', 'spip_auteurs', "id_auteur=$id_auteur"); |
|
| 207 | - if ($t) { |
|
| 208 | - return $caracterisation[$id_auteur] = [$t['id_auteur'], $t['pass']]; |
|
| 209 | - } |
|
| 210 | - include_spip('inc/minipres'); |
|
| 211 | - echo minipres(); |
|
| 212 | - exit; |
|
| 213 | - } // Visiteur anonyme, pour ls forums par exemple |
|
| 214 | - else { |
|
| 215 | - return ['0', '']; |
|
| 216 | - } |
|
| 175 | + static $caracterisation = []; |
|
| 176 | + |
|
| 177 | + if (is_null($id_auteur) && !isset($GLOBALS['visiteur_session']['id_auteur'])) { |
|
| 178 | + // si l'auteur courant n'est pas connu alors qu'il peut demander une action |
|
| 179 | + // c'est une connexion par php_auth ou 1 instal, on se rabat sur le cookie. |
|
| 180 | + // S'il n'avait pas le droit de realiser cette action, le hash sera faux. |
|
| 181 | + if ( |
|
| 182 | + isset($_COOKIE['spip_session']) |
|
| 183 | + && preg_match('/^(\d+)/', $_COOKIE['spip_session'], $r) |
|
| 184 | + ) { |
|
| 185 | + return [$r[1], '']; |
|
| 186 | + // Necessaire aux forums anonymes. |
|
| 187 | + // Pour le reste, ca echouera. |
|
| 188 | + } else { |
|
| 189 | + return ['0', '']; |
|
| 190 | + } |
|
| 191 | + } |
|
| 192 | + // Eviter l'acces SQL si le pass est connu de PHP |
|
| 193 | + if (is_null($id_auteur)) { |
|
| 194 | + $id_auteur = $GLOBALS['visiteur_session']['id_auteur'] ?? 0; |
|
| 195 | + if (isset($GLOBALS['visiteur_session']['pass']) && $GLOBALS['visiteur_session']['pass']) { |
|
| 196 | + return $caracterisation[$id_auteur] = [$id_auteur, $GLOBALS['visiteur_session']['pass']]; |
|
| 197 | + } |
|
| 198 | + } |
|
| 199 | + |
|
| 200 | + if (isset($caracterisation[$id_auteur])) { |
|
| 201 | + return $caracterisation[$id_auteur]; |
|
| 202 | + } |
|
| 203 | + |
|
| 204 | + if ($id_auteur) { |
|
| 205 | + include_spip('base/abstract_sql'); |
|
| 206 | + $t = sql_fetsel('id_auteur, pass', 'spip_auteurs', "id_auteur=$id_auteur"); |
|
| 207 | + if ($t) { |
|
| 208 | + return $caracterisation[$id_auteur] = [$t['id_auteur'], $t['pass']]; |
|
| 209 | + } |
|
| 210 | + include_spip('inc/minipres'); |
|
| 211 | + echo minipres(); |
|
| 212 | + exit; |
|
| 213 | + } // Visiteur anonyme, pour ls forums par exemple |
|
| 214 | + else { |
|
| 215 | + return ['0', '']; |
|
| 216 | + } |
|
| 217 | 217 | } |
| 218 | 218 | |
| 219 | 219 | /** |
@@ -222,31 +222,31 @@ discard block |
||
| 222 | 222 | * et verifier la legitimite de l'appel a l'action |
| 223 | 223 | */ |
| 224 | 224 | function _action_auteur(string $action, int $id_auteur, #[\SensitiveParameter] ?string $pass, string $alea): string { |
| 225 | - static $sha = []; |
|
| 226 | - $pass ??= ''; |
|
| 227 | - $entry = "$action:$id_auteur:$pass:$alea"; |
|
| 228 | - if (!isset($sha[$entry])) { |
|
| 229 | - $sha[$entry] = hash_hmac('sha256', "$action::$id_auteur", "$pass::" . _action_get_alea($alea)); |
|
| 230 | - } |
|
| 231 | - |
|
| 232 | - return $sha[$entry]; |
|
| 225 | + static $sha = []; |
|
| 226 | + $pass ??= ''; |
|
| 227 | + $entry = "$action:$id_auteur:$pass:$alea"; |
|
| 228 | + if (!isset($sha[$entry])) { |
|
| 229 | + $sha[$entry] = hash_hmac('sha256', "$action::$id_auteur", "$pass::" . _action_get_alea($alea)); |
|
| 230 | + } |
|
| 231 | + |
|
| 232 | + return $sha[$entry]; |
|
| 233 | 233 | } |
| 234 | 234 | |
| 235 | 235 | function _action_get_alea(string $alea): string { |
| 236 | - if (!isset($GLOBALS['meta'][$alea])) { |
|
| 237 | - $exec = _request('exec'); |
|
| 238 | - if (!$exec || !autoriser_sans_cookie($exec)) { |
|
| 239 | - include_spip('inc/acces'); |
|
| 240 | - charger_aleas(); |
|
| 241 | - if (empty($GLOBALS['meta'][$alea])) { |
|
| 242 | - include_spip('inc/minipres'); |
|
| 243 | - echo minipres(); |
|
| 244 | - spip_log("$alea indisponible"); |
|
| 245 | - exit; |
|
| 246 | - } |
|
| 247 | - } |
|
| 248 | - } |
|
| 249 | - return $GLOBALS['meta'][$alea] ?? ''; |
|
| 236 | + if (!isset($GLOBALS['meta'][$alea])) { |
|
| 237 | + $exec = _request('exec'); |
|
| 238 | + if (!$exec || !autoriser_sans_cookie($exec)) { |
|
| 239 | + include_spip('inc/acces'); |
|
| 240 | + charger_aleas(); |
|
| 241 | + if (empty($GLOBALS['meta'][$alea])) { |
|
| 242 | + include_spip('inc/minipres'); |
|
| 243 | + echo minipres(); |
|
| 244 | + spip_log("$alea indisponible"); |
|
| 245 | + exit; |
|
| 246 | + } |
|
| 247 | + } |
|
| 248 | + } |
|
| 249 | + return $GLOBALS['meta'][$alea] ?? ''; |
|
| 250 | 250 | } |
| 251 | 251 | |
| 252 | 252 | /** |
@@ -257,9 +257,9 @@ discard block |
||
| 257 | 257 | * @return string |
| 258 | 258 | */ |
| 259 | 259 | function calculer_action_auteur($action, $id_auteur = null) { |
| 260 | - [$id_auteur, $pass] = caracteriser_auteur($id_auteur); |
|
| 260 | + [$id_auteur, $pass] = caracteriser_auteur($id_auteur); |
|
| 261 | 261 | |
| 262 | - return _action_auteur($action, $id_auteur, $pass, 'alea_ephemere'); |
|
| 262 | + return _action_auteur($action, $id_auteur, $pass, 'alea_ephemere'); |
|
| 263 | 263 | } |
| 264 | 264 | |
| 265 | 265 | |
@@ -272,9 +272,9 @@ discard block |
||
| 272 | 272 | * @return bool |
| 273 | 273 | */ |
| 274 | 274 | function verifier_action_auteur($action, $hash) { |
| 275 | - [$id_auteur, $pass] = caracteriser_auteur(); |
|
| 276 | - return hash_equals($hash, _action_auteur($action, $id_auteur, $pass, 'alea_ephemere')) |
|
| 277 | - || hash_equals($hash, _action_auteur($action, $id_auteur, $pass, 'alea_ephemere_ancien')); |
|
| 275 | + [$id_auteur, $pass] = caracteriser_auteur(); |
|
| 276 | + return hash_equals($hash, _action_auteur($action, $id_auteur, $pass, 'alea_ephemere')) |
|
| 277 | + || hash_equals($hash, _action_auteur($action, $id_auteur, $pass, 'alea_ephemere_ancien')); |
|
| 278 | 278 | } |
| 279 | 279 | |
| 280 | 280 | // |
@@ -289,7 +289,7 @@ discard block |
||
| 289 | 289 | * @return string |
| 290 | 290 | */ |
| 291 | 291 | function secret_du_site() { |
| 292 | - return SpipCles::secret_du_site(); |
|
| 292 | + return SpipCles::secret_du_site(); |
|
| 293 | 293 | } |
| 294 | 294 | |
| 295 | 295 | /** |
@@ -299,7 +299,7 @@ discard block |
||
| 299 | 299 | * @return string |
| 300 | 300 | */ |
| 301 | 301 | function calculer_cle_action($action) { |
| 302 | - return hash_hmac('sha256', $action, secret_du_site()); |
|
| 302 | + return hash_hmac('sha256', $action, secret_du_site()); |
|
| 303 | 303 | } |
| 304 | 304 | |
| 305 | 305 | /** |
@@ -310,7 +310,7 @@ discard block |
||
| 310 | 310 | * @return bool |
| 311 | 311 | */ |
| 312 | 312 | function verifier_cle_action($action, #[\SensitiveParameter] $cle) { |
| 313 | - return hash_equals($cle, calculer_cle_action($action)); |
|
| 313 | + return hash_equals($cle, calculer_cle_action($action)); |
|
| 314 | 314 | } |
| 315 | 315 | |
| 316 | 316 | |
@@ -327,17 +327,17 @@ discard block |
||
| 327 | 327 | * @return string Token, de la forme "{id}*{hash}" |
| 328 | 328 | */ |
| 329 | 329 | function calculer_token_previsu($url, $id_auteur = null, $alea = 'alea_ephemere') { |
| 330 | - if (is_null($id_auteur) && !empty($GLOBALS['visiteur_session']['id_auteur'])) { |
|
| 331 | - $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; |
|
| 332 | - } |
|
| 333 | - if (!$id_auteur = (int) $id_auteur) { |
|
| 334 | - return ''; |
|
| 335 | - } |
|
| 336 | - // On nettoie l’URL de tous les var_. |
|
| 337 | - $url = nettoyer_uri_var($url); |
|
| 338 | - |
|
| 339 | - $token = _action_auteur('previsualiser-' . $url, $id_auteur, secret_du_site(), $alea); |
|
| 340 | - return "$id_auteur-$token"; |
|
| 330 | + if (is_null($id_auteur) && !empty($GLOBALS['visiteur_session']['id_auteur'])) { |
|
| 331 | + $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; |
|
| 332 | + } |
|
| 333 | + if (!$id_auteur = (int) $id_auteur) { |
|
| 334 | + return ''; |
|
| 335 | + } |
|
| 336 | + // On nettoie l’URL de tous les var_. |
|
| 337 | + $url = nettoyer_uri_var($url); |
|
| 338 | + |
|
| 339 | + $token = _action_auteur('previsualiser-' . $url, $id_auteur, secret_du_site(), $alea); |
|
| 340 | + return "$id_auteur-$token"; |
|
| 341 | 341 | } |
| 342 | 342 | |
| 343 | 343 | |
@@ -355,31 +355,31 @@ discard block |
||
| 355 | 355 | * + Tableau (id auteur, type d’objet, id_objet) sinon. |
| 356 | 356 | */ |
| 357 | 357 | function verifier_token_previsu(#[\SensitiveParameter] $token) { |
| 358 | - // retrouver auteur / hash |
|
| 359 | - $e = explode('-', $token, 2); |
|
| 360 | - if (count($e) == 2 && is_numeric(reset($e))) { |
|
| 361 | - $id_auteur = (int) reset($e); |
|
| 362 | - } else { |
|
| 363 | - return false; |
|
| 364 | - } |
|
| 365 | - |
|
| 366 | - // calculer le type et id de l’url actuelle |
|
| 367 | - include_spip('inc/urls'); |
|
| 368 | - include_spip('inc/filtres_mini'); |
|
| 369 | - $url = url_absolue(self()); |
|
| 370 | - |
|
| 371 | - // verifier le token |
|
| 372 | - $_token = calculer_token_previsu($url, $id_auteur, 'alea_ephemere'); |
|
| 373 | - if (!$_token || !hash_equals($token, $_token)) { |
|
| 374 | - $_token = calculer_token_previsu($url, $id_auteur, 'alea_ephemere_ancien'); |
|
| 375 | - if (!$_token || !hash_equals($token, $_token)) { |
|
| 376 | - return false; |
|
| 377 | - } |
|
| 378 | - } |
|
| 379 | - |
|
| 380 | - return [ |
|
| 381 | - 'id_auteur' => $id_auteur, |
|
| 382 | - ]; |
|
| 358 | + // retrouver auteur / hash |
|
| 359 | + $e = explode('-', $token, 2); |
|
| 360 | + if (count($e) == 2 && is_numeric(reset($e))) { |
|
| 361 | + $id_auteur = (int) reset($e); |
|
| 362 | + } else { |
|
| 363 | + return false; |
|
| 364 | + } |
|
| 365 | + |
|
| 366 | + // calculer le type et id de l’url actuelle |
|
| 367 | + include_spip('inc/urls'); |
|
| 368 | + include_spip('inc/filtres_mini'); |
|
| 369 | + $url = url_absolue(self()); |
|
| 370 | + |
|
| 371 | + // verifier le token |
|
| 372 | + $_token = calculer_token_previsu($url, $id_auteur, 'alea_ephemere'); |
|
| 373 | + if (!$_token || !hash_equals($token, $_token)) { |
|
| 374 | + $_token = calculer_token_previsu($url, $id_auteur, 'alea_ephemere_ancien'); |
|
| 375 | + if (!$_token || !hash_equals($token, $_token)) { |
|
| 376 | + return false; |
|
| 377 | + } |
|
| 378 | + } |
|
| 379 | + |
|
| 380 | + return [ |
|
| 381 | + 'id_auteur' => $id_auteur, |
|
| 382 | + ]; |
|
| 383 | 383 | } |
| 384 | 384 | |
| 385 | 385 | /** |
@@ -388,9 +388,9 @@ discard block |
||
| 388 | 388 | * @return bool|array |
| 389 | 389 | */ |
| 390 | 390 | function decrire_token_previsu() { |
| 391 | - static $desc = null; |
|
| 392 | - if (is_null($desc)) { |
|
| 393 | - $desc = ($token = _request('var_previewtoken')) ? verifier_token_previsu($token) : false; |
|
| 394 | - } |
|
| 395 | - return $desc; |
|
| 391 | + static $desc = null; |
|
| 392 | + if (is_null($desc)) { |
|
| 393 | + $desc = ($token = _request('var_previewtoken')) ? verifier_token_previsu($token) : false; |
|
| 394 | + } |
|
| 395 | + return $desc; |
|
| 396 | 396 | } |
@@ -92,7 +92,7 @@ discard block |
||
| 92 | 92 | } |
| 93 | 93 | |
| 94 | 94 | $arg = parametre_url($url_action, 'arg'); |
| 95 | - $confirm = md5("$action:$arg:" . realpath(__FILE__)); |
|
| 95 | + $confirm = md5("$action:$arg:".realpath(__FILE__)); |
|
| 96 | 96 | if (_request('confirm_action') === $confirm) { |
| 97 | 97 | return true; |
| 98 | 98 | } |
@@ -145,7 +145,7 @@ discard block |
||
| 145 | 145 | } else { |
| 146 | 146 | return generer_url_action( |
| 147 | 147 | $action, |
| 148 | - 'arg=' . rawurlencode($arg) . "&hash=$hash" . ($r ? "&redirect=$r" : ''), |
|
| 148 | + 'arg='.rawurlencode($arg)."&hash=$hash".($r ? "&redirect=$r" : ''), |
|
| 149 | 149 | $mode, |
| 150 | 150 | $public |
| 151 | 151 | ); |
@@ -156,9 +156,9 @@ discard block |
||
| 156 | 156 | $hash = calculer_action_auteur("$action-$arg"); |
| 157 | 157 | $att .= " style='margin: 0px; border: 0px'"; |
| 158 | 158 | if ($redirect) { |
| 159 | - $redirect = "\n\t\t<input name='redirect' type='hidden' value='" . str_replace("'", ''', $redirect) . "' />"; |
|
| 159 | + $redirect = "\n\t\t<input name='redirect' type='hidden' value='".str_replace("'", ''', $redirect)."' />"; |
|
| 160 | 160 | } |
| 161 | - $mode .= $redirect . " |
|
| 161 | + $mode .= $redirect." |
|
| 162 | 162 | <input name='hash' type='hidden' value='$hash' /> |
| 163 | 163 | <input name='arg' type='hidden' value='$arg' />"; |
| 164 | 164 | |
@@ -226,7 +226,7 @@ discard block |
||
| 226 | 226 | $pass ??= ''; |
| 227 | 227 | $entry = "$action:$id_auteur:$pass:$alea"; |
| 228 | 228 | if (!isset($sha[$entry])) { |
| 229 | - $sha[$entry] = hash_hmac('sha256', "$action::$id_auteur", "$pass::" . _action_get_alea($alea)); |
|
| 229 | + $sha[$entry] = hash_hmac('sha256', "$action::$id_auteur", "$pass::"._action_get_alea($alea)); |
|
| 230 | 230 | } |
| 231 | 231 | |
| 232 | 232 | return $sha[$entry]; |
@@ -336,7 +336,7 @@ discard block |
||
| 336 | 336 | // On nettoie l’URL de tous les var_. |
| 337 | 337 | $url = nettoyer_uri_var($url); |
| 338 | 338 | |
| 339 | - $token = _action_auteur('previsualiser-' . $url, $id_auteur, secret_du_site(), $alea); |
|
| 339 | + $token = _action_auteur('previsualiser-'.$url, $id_auteur, secret_du_site(), $alea); |
|
| 340 | 340 | return "$id_auteur-$token"; |
| 341 | 341 | } |
| 342 | 342 | |
@@ -45,7 +45,7 @@ |
||
| 45 | 45 | $les_couleurs = $couleurs(); |
| 46 | 46 | foreach ($les_couleurs as $k => $c) { |
| 47 | 47 | $valeurs['_couleurs_url'][$k] = generer_url_public('style_prive.css', 'ltr=' |
| 48 | - . $GLOBALS['spip_lang_left'] . '&' |
|
| 48 | + . $GLOBALS['spip_lang_left'].'&' |
|
| 49 | 49 | . $couleurs($k)); |
| 50 | 50 | $valeurs['couleurs'][$k] = $c; |
| 51 | 51 | } |
@@ -20,7 +20,7 @@ discard block |
||
| 20 | 20 | **/ |
| 21 | 21 | |
| 22 | 22 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 23 | - return; |
|
| 23 | + return; |
|
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | /** |
@@ -30,27 +30,27 @@ discard block |
||
| 30 | 30 | * Environnement du formulaire |
| 31 | 31 | **/ |
| 32 | 32 | function formulaires_configurer_preferences_charger_dist() { |
| 33 | - // travailler sur des meta fraiches |
|
| 34 | - include_spip('inc/meta'); |
|
| 35 | - lire_metas(); |
|
| 33 | + // travailler sur des meta fraiches |
|
| 34 | + include_spip('inc/meta'); |
|
| 35 | + lire_metas(); |
|
| 36 | 36 | |
| 37 | - $valeurs = []; |
|
| 38 | - $valeurs['display_navigation'] = $GLOBALS['visiteur_session']['prefs']['display_navigation'] ?? 'navigation_avec_icones'; |
|
| 39 | - $valeurs['display'] = (isset($GLOBALS['visiteur_session']['prefs']['display']) && $GLOBALS['visiteur_session']['prefs']['display'] > 0) ? $GLOBALS['visiteur_session']['prefs']['display'] : 2; |
|
| 40 | - $valeurs['couleur'] = (isset($GLOBALS['visiteur_session']['prefs']['couleur']) && $GLOBALS['visiteur_session']['prefs']['couleur'] > 0) ? $GLOBALS['visiteur_session']['prefs']['couleur'] : 1; |
|
| 37 | + $valeurs = []; |
|
| 38 | + $valeurs['display_navigation'] = $GLOBALS['visiteur_session']['prefs']['display_navigation'] ?? 'navigation_avec_icones'; |
|
| 39 | + $valeurs['display'] = (isset($GLOBALS['visiteur_session']['prefs']['display']) && $GLOBALS['visiteur_session']['prefs']['display'] > 0) ? $GLOBALS['visiteur_session']['prefs']['display'] : 2; |
|
| 40 | + $valeurs['couleur'] = (isset($GLOBALS['visiteur_session']['prefs']['couleur']) && $GLOBALS['visiteur_session']['prefs']['couleur'] > 0) ? $GLOBALS['visiteur_session']['prefs']['couleur'] : 1; |
|
| 41 | 41 | |
| 42 | - $couleurs = charger_fonction('couleurs', 'inc'); |
|
| 43 | - $les_couleurs = $couleurs(); |
|
| 44 | - foreach ($les_couleurs as $k => $c) { |
|
| 45 | - $valeurs['_couleurs_url'][$k] = generer_url_public('style_prive.css', 'ltr=' |
|
| 46 | - . $GLOBALS['spip_lang_left'] . '&' |
|
| 47 | - . $couleurs($k)); |
|
| 48 | - $valeurs['couleurs'][$k] = $c; |
|
| 49 | - } |
|
| 42 | + $couleurs = charger_fonction('couleurs', 'inc'); |
|
| 43 | + $les_couleurs = $couleurs(); |
|
| 44 | + foreach ($les_couleurs as $k => $c) { |
|
| 45 | + $valeurs['_couleurs_url'][$k] = generer_url_public('style_prive.css', 'ltr=' |
|
| 46 | + . $GLOBALS['spip_lang_left'] . '&' |
|
| 47 | + . $couleurs($k)); |
|
| 48 | + $valeurs['couleurs'][$k] = $c; |
|
| 49 | + } |
|
| 50 | 50 | |
| 51 | - $valeurs['imessage'] = $GLOBALS['visiteur_session']['imessage']; |
|
| 51 | + $valeurs['imessage'] = $GLOBALS['visiteur_session']['imessage']; |
|
| 52 | 52 | |
| 53 | - return $valeurs; |
|
| 53 | + return $valeurs; |
|
| 54 | 54 | } |
| 55 | 55 | |
| 56 | 56 | /** |
@@ -61,33 +61,33 @@ discard block |
||
| 61 | 61 | **/ |
| 62 | 62 | function formulaires_configurer_preferences_traiter_dist() { |
| 63 | 63 | |
| 64 | - if ($couleur = _request('couleur')) { |
|
| 65 | - $couleurs = charger_fonction('couleurs', 'inc'); |
|
| 66 | - $les_couleurs = $couleurs([], true); |
|
| 67 | - if (isset($les_couleurs[$couleur])) { |
|
| 68 | - $GLOBALS['visiteur_session']['prefs']['couleur'] = $couleur; |
|
| 69 | - } |
|
| 70 | - } |
|
| 71 | - if ($display = (int) _request('display')) { |
|
| 72 | - $GLOBALS['visiteur_session']['prefs']['display'] = $display; |
|
| 73 | - } |
|
| 74 | - if ( |
|
| 75 | - ($display_navigation = _request('display_navigation')) |
|
| 76 | - && in_array($display_navigation, ['navigation_sans_icone', 'navigation_avec_icones']) |
|
| 77 | - ) { |
|
| 78 | - $GLOBALS['visiteur_session']['prefs']['display_navigation'] = $display_navigation; |
|
| 79 | - } |
|
| 64 | + if ($couleur = _request('couleur')) { |
|
| 65 | + $couleurs = charger_fonction('couleurs', 'inc'); |
|
| 66 | + $les_couleurs = $couleurs([], true); |
|
| 67 | + if (isset($les_couleurs[$couleur])) { |
|
| 68 | + $GLOBALS['visiteur_session']['prefs']['couleur'] = $couleur; |
|
| 69 | + } |
|
| 70 | + } |
|
| 71 | + if ($display = (int) _request('display')) { |
|
| 72 | + $GLOBALS['visiteur_session']['prefs']['display'] = $display; |
|
| 73 | + } |
|
| 74 | + if ( |
|
| 75 | + ($display_navigation = _request('display_navigation')) |
|
| 76 | + && in_array($display_navigation, ['navigation_sans_icone', 'navigation_avec_icones']) |
|
| 77 | + ) { |
|
| 78 | + $GLOBALS['visiteur_session']['prefs']['display_navigation'] = $display_navigation; |
|
| 79 | + } |
|
| 80 | 80 | |
| 81 | - if ((int) $GLOBALS['visiteur_session']['id_auteur']) { |
|
| 82 | - include_spip('action/editer_auteur'); |
|
| 83 | - $c = ['prefs' => serialize($GLOBALS['visiteur_session']['prefs'])]; |
|
| 81 | + if ((int) $GLOBALS['visiteur_session']['id_auteur']) { |
|
| 82 | + include_spip('action/editer_auteur'); |
|
| 83 | + $c = ['prefs' => serialize($GLOBALS['visiteur_session']['prefs'])]; |
|
| 84 | 84 | |
| 85 | - if (($imessage = _request('imessage')) && in_array($imessage, ['oui', 'non'])) { |
|
| 86 | - $c['imessage'] = $imessage; |
|
| 87 | - } |
|
| 85 | + if (($imessage = _request('imessage')) && in_array($imessage, ['oui', 'non'])) { |
|
| 86 | + $c['imessage'] = $imessage; |
|
| 87 | + } |
|
| 88 | 88 | |
| 89 | - auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], $c); |
|
| 90 | - } |
|
| 89 | + auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], $c); |
|
| 90 | + } |
|
| 91 | 91 | |
| 92 | - return ['message_ok' => _T('config_info_enregistree'), 'editable' => true]; |
|
| 92 | + return ['message_ok' => _T('config_info_enregistree'), 'editable' => true]; |
|
| 93 | 93 | } |
@@ -135,7 +135,7 @@ |
||
| 135 | 135 | $titre = "<h3>$titre</h3>"; |
| 136 | 136 | } |
| 137 | 137 | |
| 138 | - return '<div class="' . $class . ($id ? "\" id=\"$id" : '') . '">' |
|
| 138 | + return '<div class="'.$class.($id ? "\" id=\"$id" : '').'">' |
|
| 139 | 139 | . ($titre ? "<div class=\"$head_class\">$titre<!--/hd--></div>" : '') |
| 140 | 140 | . '<div class="box__body clearfix">'; |
| 141 | 141 | } |
@@ -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 | |
@@ -43,18 +43,18 @@ discard block |
||
| 43 | 43 | * Pile complétée par le code à générer |
| 44 | 44 | */ |
| 45 | 45 | function balise_BOITE_OUVRIR_dist($p) { |
| 46 | - $_titre = interprete_argument_balise(1, $p); |
|
| 47 | - $_class = interprete_argument_balise(2, $p); |
|
| 48 | - $_head_class = interprete_argument_balise(3, $p); |
|
| 49 | - $_titre = ($_titre ?: "''"); |
|
| 50 | - $_class = ($_class ? ", $_class" : ", 'simple'"); |
|
| 51 | - $_head_class = ($_head_class ? ", $_head_class" : ''); |
|
| 52 | - |
|
| 53 | - $f = chercher_filtre('boite_ouvrir'); |
|
| 54 | - $p->code = "$f($_titre$_class$_head_class)"; |
|
| 55 | - $p->interdire_scripts = false; |
|
| 56 | - |
|
| 57 | - return $p; |
|
| 46 | + $_titre = interprete_argument_balise(1, $p); |
|
| 47 | + $_class = interprete_argument_balise(2, $p); |
|
| 48 | + $_head_class = interprete_argument_balise(3, $p); |
|
| 49 | + $_titre = ($_titre ?: "''"); |
|
| 50 | + $_class = ($_class ? ", $_class" : ", 'simple'"); |
|
| 51 | + $_head_class = ($_head_class ? ", $_head_class" : ''); |
|
| 52 | + |
|
| 53 | + $f = chercher_filtre('boite_ouvrir'); |
|
| 54 | + $p->code = "$f($_titre$_class$_head_class)"; |
|
| 55 | + $p->interdire_scripts = false; |
|
| 56 | + |
|
| 57 | + return $p; |
|
| 58 | 58 | } |
| 59 | 59 | |
| 60 | 60 | /** |
@@ -74,14 +74,14 @@ discard block |
||
| 74 | 74 | * Pile complétée par le code à générer |
| 75 | 75 | */ |
| 76 | 76 | function balise_BOITE_PIED_dist($p) { |
| 77 | - $_class = interprete_argument_balise(1, $p); |
|
| 78 | - $_class = ($_class ? "$_class" : ''); |
|
| 77 | + $_class = interprete_argument_balise(1, $p); |
|
| 78 | + $_class = ($_class ? "$_class" : ''); |
|
| 79 | 79 | |
| 80 | - $f = chercher_filtre('boite_pied'); |
|
| 81 | - $p->code = "$f($_class)"; |
|
| 82 | - $p->interdire_scripts = false; |
|
| 80 | + $f = chercher_filtre('boite_pied'); |
|
| 81 | + $p->code = "$f($_class)"; |
|
| 82 | + $p->interdire_scripts = false; |
|
| 83 | 83 | |
| 84 | - return $p; |
|
| 84 | + return $p; |
|
| 85 | 85 | } |
| 86 | 86 | |
| 87 | 87 | |
@@ -101,11 +101,11 @@ discard block |
||
| 101 | 101 | * Pile complétée par le code à générer |
| 102 | 102 | */ |
| 103 | 103 | function balise_BOITE_FERMER_dist($p) { |
| 104 | - $f = chercher_filtre('boite_fermer'); |
|
| 105 | - $p->code = "$f()"; |
|
| 106 | - $p->interdire_scripts = false; |
|
| 104 | + $f = chercher_filtre('boite_fermer'); |
|
| 105 | + $p->code = "$f()"; |
|
| 106 | + $p->interdire_scripts = false; |
|
| 107 | 107 | |
| 108 | - return $p; |
|
| 108 | + return $p; |
|
| 109 | 109 | } |
| 110 | 110 | |
| 111 | 111 | /** |
@@ -127,16 +127,16 @@ discard block |
||
| 127 | 127 | * HTML du début de la boîte |
| 128 | 128 | */ |
| 129 | 129 | function boite_ouvrir($titre, $class = '', $head_class = '', $id = '') { |
| 130 | - $class = "box $class"; |
|
| 131 | - $head_class = "box__header $head_class clearfix"; |
|
| 132 | - // dans l'espace prive, titrer en h3 si pas de balise <hn> |
|
| 133 | - if (test_espace_prive() && strlen($titre) && !str_contains($titre, '<h')) { |
|
| 134 | - $titre = "<h3>$titre</h3>"; |
|
| 135 | - } |
|
| 136 | - |
|
| 137 | - return '<div class="' . $class . ($id ? "\" id=\"$id" : '') . '">' |
|
| 138 | - . ($titre ? "<div class=\"$head_class\">$titre<!--/hd--></div>" : '') |
|
| 139 | - . '<div class="box__body clearfix">'; |
|
| 130 | + $class = "box $class"; |
|
| 131 | + $head_class = "box__header $head_class clearfix"; |
|
| 132 | + // dans l'espace prive, titrer en h3 si pas de balise <hn> |
|
| 133 | + if (test_espace_prive() && strlen($titre) && !str_contains($titre, '<h')) { |
|
| 134 | + $titre = "<h3>$titre</h3>"; |
|
| 135 | + } |
|
| 136 | + |
|
| 137 | + return '<div class="' . $class . ($id ? "\" id=\"$id" : '') . '">' |
|
| 138 | + . ($titre ? "<div class=\"$head_class\">$titre<!--/hd--></div>" : '') |
|
| 139 | + . '<div class="box__body clearfix">'; |
|
| 140 | 140 | } |
| 141 | 141 | |
| 142 | 142 | |
@@ -153,10 +153,10 @@ discard block |
||
| 153 | 153 | * HTML de transition vers le pied de la boîte |
| 154 | 154 | */ |
| 155 | 155 | function boite_pied($class = 'act') { |
| 156 | - $class = "box__footer $class"; |
|
| 156 | + $class = "box__footer $class"; |
|
| 157 | 157 | |
| 158 | - return '</div>' |
|
| 159 | - . "<div class=\"$class clearfix\">"; |
|
| 158 | + return '</div>' |
|
| 159 | + . "<div class=\"$class clearfix\">"; |
|
| 160 | 160 | } |
| 161 | 161 | |
| 162 | 162 | |
@@ -171,5 +171,5 @@ discard block |
||
| 171 | 171 | * HTML de fin de la boîte |
| 172 | 172 | */ |
| 173 | 173 | function boite_fermer() { |
| 174 | - return '</div></div>'; |
|
| 174 | + return '</div></div>'; |
|
| 175 | 175 | } |
@@ -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 | /** |
@@ -39,7 +39,7 @@ discard block |
||
| 39 | 39 | * @uses queue_lancer_url_http_async() |
| 40 | 40 | */ |
| 41 | 41 | function action_super_cron_dist() { |
| 42 | - $url_cron = generer_url_action('cron'); |
|
| 43 | - include_spip('inc/queue'); |
|
| 44 | - queue_lancer_url_http_async($url_cron); |
|
| 42 | + $url_cron = generer_url_action('cron'); |
|
| 43 | + include_spip('inc/queue'); |
|
| 44 | + queue_lancer_url_http_async($url_cron); |
|
| 45 | 45 | } |
@@ -11,7 +11,7 @@ discard block |
||
| 11 | 11 | * @return string Le SHA de la chaîne |
| 12 | 12 | */ |
| 13 | 13 | function spip_sha256($str) { |
| 14 | - return hash('sha256', $str); |
|
| 14 | + return hash('sha256', $str); |
|
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | /** |
@@ -22,5 +22,5 @@ discard block |
||
| 22 | 22 | * @see spip_sha256() |
| 23 | 23 | */ |
| 24 | 24 | function _nano_sha256($str, $ig_func = true) { |
| 25 | - return spip_sha256($str); |
|
| 25 | + return spip_sha256($str); |
|
| 26 | 26 | } |
@@ -2,123 +2,123 @@ |
||
| 2 | 2 | // This is a SPIP language file -- Ceci est un fichier langue de SPIP |
| 3 | 3 | // Fichier source, a modifier dans https://git.spip.net/spip/spip.git |
| 4 | 4 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 5 | - return; |
|
| 5 | + return; |
|
| 6 | 6 | } |
| 7 | 7 | |
| 8 | 8 | $GLOBALS[$GLOBALS['idx_lang']] = array( |
| 9 | 9 | |
| 10 | - // A |
|
| 11 | - 'accueil_site' => 'Accueil', |
|
| 12 | - 'article' => 'Article', |
|
| 13 | - 'articles' => 'Articles', |
|
| 14 | - 'articles_auteur' => 'Articles de cet auteur', |
|
| 15 | - 'articles_populaires' => 'Articles les plus populaires', |
|
| 16 | - 'articles_rubrique' => 'Articles de cette rubrique', |
|
| 17 | - 'aucun_article' => 'Il n’y a pas d’article à cette adresse', |
|
| 18 | - 'aucun_auteur' => 'Il n’y a pas d’auteur à cette adresse', |
|
| 19 | - 'aucun_site' => 'Il n’y a pas de site à cette adresse', |
|
| 20 | - 'aucune_breve' => 'Il n’y a pas de brève à cette adresse', |
|
| 21 | - 'aucune_rubrique' => 'Il n’y a pas de rubrique à cette adresse', |
|
| 22 | - 'auteur' => 'Auteur', |
|
| 23 | - 'autres' => 'Autres', |
|
| 24 | - 'autres_breves' => 'Autres brèves', |
|
| 25 | - 'autres_groupes_mots_clefs' => 'Autres groupes de mots-clés', |
|
| 26 | - 'autres_sites' => 'Autres sites', |
|
| 27 | - |
|
| 28 | - // B |
|
| 29 | - 'bonjour' => 'Bonjour', |
|
| 30 | - |
|
| 31 | - // C |
|
| 32 | - 'commenter_site' => 'Commenter ce site', |
|
| 33 | - 'contact' => 'Contact', |
|
| 34 | - 'copie_document_impossible' => 'Impossible de copier le document', |
|
| 35 | - |
|
| 36 | - // D |
|
| 37 | - 'date' => 'Date', |
|
| 38 | - 'dernier_ajout' => 'Dernier ajout', |
|
| 39 | - 'dernieres_breves' => 'Dernières brèves', |
|
| 40 | - 'derniers_articles' => 'Derniers articles', |
|
| 41 | - 'derniers_commentaires' => 'Derniers commentaires', |
|
| 42 | - 'derniers_messages_forum' => 'Derniers messages publiés dans les forums', |
|
| 43 | - |
|
| 44 | - // E |
|
| 45 | - 'edition_mode_texte' => 'Édition en mode texte de', |
|
| 46 | - 'en_reponse' => 'En réponse à :', |
|
| 47 | - 'en_resume' => 'En résumé', |
|
| 48 | - 'envoyer_message' => 'Envoyer un message', |
|
| 49 | - 'espace_prive' => 'Espace privé', |
|
| 50 | - |
|
| 51 | - // F |
|
| 52 | - 'formats_acceptes' => 'Formats acceptés : @formats@.', |
|
| 53 | - |
|
| 54 | - // H |
|
| 55 | - 'hierarchie_site' => 'Hiérarchie du site', |
|
| 56 | - |
|
| 57 | - // J |
|
| 58 | - 'jours' => 'jours', |
|
| 59 | - |
|
| 60 | - // L |
|
| 61 | - 'lien_connecter' => 'Se connecter', |
|
| 62 | - |
|
| 63 | - // M |
|
| 64 | - 'meme_auteur' => 'Du même auteur', |
|
| 65 | - 'meme_rubrique' => 'Dans la même rubrique', |
|
| 66 | - 'memes_auteurs' => 'Des mêmes auteurs', |
|
| 67 | - 'message' => 'Message', |
|
| 68 | - 'messages_forum' => 'Messages', |
|
| 69 | - 'messages_recents' => 'Messages de forums les plus récents', |
|
| 70 | - 'mots_clef' => 'Mot-clé', |
|
| 71 | - 'mots_clefs' => 'Mots-clés', |
|
| 72 | - 'mots_clefs_meme_groupe' => 'Mots-clés dans le même groupe', |
|
| 73 | - |
|
| 74 | - // N |
|
| 75 | - 'navigation' => 'Navigation', |
|
| 76 | - 'nom' => 'Nom', |
|
| 77 | - 'nouveautes' => 'Les nouveautés', |
|
| 78 | - 'nouveautes_web' => 'Nouveautés sur le Web', |
|
| 79 | - 'nouveaux_articles' => 'Nouveaux articles', |
|
| 80 | - 'nouvelles_breves' => 'Nouvelles brèves', |
|
| 81 | - |
|
| 82 | - // P |
|
| 83 | - 'page_precedente' => 'page précédente', |
|
| 84 | - 'page_suivante' => 'page suivante', |
|
| 85 | - 'par_auteur' => 'par ', |
|
| 86 | - 'participer_site' => 'Vous pouvez participer à la vie de ce site et proposer vos propres articles en vous inscrivant ci-dessous. Vous recevrez immédiatement un email vous indiquant vos codes d’accès à l’espace privé du site.', |
|
| 87 | - 'plan_site' => 'Plan du site', |
|
| 88 | - 'popularite' => 'Popularité', |
|
| 89 | - 'poster_message' => 'Poster un message', |
|
| 90 | - 'proposer_site' => 'Vous pouvez proposer un site à ajouter dans cette rubrique :', |
|
| 91 | - |
|
| 92 | - // R |
|
| 93 | - 'repondre_article' => 'Répondre à cet article', |
|
| 94 | - 'repondre_breve' => 'Répondre à cette brève', |
|
| 95 | - 'resultats_recherche' => 'Résultats de la recherche', |
|
| 96 | - 'retour_debut_forums' => 'Retour au début des forums', |
|
| 97 | - 'rss_abonnement' => 'Copiez l’URL suivante dans votre agrégateur :', |
|
| 98 | - 'rss_abonnement_titre' => 'S’abonner', |
|
| 99 | - 'rss_abonnement_titre_page' => 'S’abonner à', |
|
| 100 | - 'rss_explication' => 'Un fil RSS recueille les informations de mise à jour d’un site. Il fournit le contenu des billets ou des commentaires ou un extrait de ceux-ci, ainsi qu’un lien vers les versions complètes et quelques autres informations. Ce fil a pour vocation d’être lu par un agrégateur RSS.', |
|
| 101 | - 'rss_explication_titre' => 'Qu’est-ce qu’un flux RSS ?', |
|
| 102 | - 'rubrique' => 'Rubrique', |
|
| 103 | - 'rubriques' => 'Rubriques', |
|
| 104 | - |
|
| 105 | - // S |
|
| 106 | - 'signatures_petition' => 'Signatures', |
|
| 107 | - 'site_realise_avec_spip' => 'Site réalisé avec SPIP', |
|
| 108 | - 'sites_web' => 'Sites Web', |
|
| 109 | - 'sous_rubriques' => 'Sous-rubriques', |
|
| 110 | - 'spam' => 'Spam', |
|
| 111 | - 'suite' => 'suite', |
|
| 112 | - 'sur_web' => 'Sur le Web', |
|
| 113 | - 'syndiquer_rubrique' => 'Syndiquer cette rubrique', |
|
| 114 | - 'syndiquer_site' => 'Syndiquer tout le site', |
|
| 115 | - |
|
| 116 | - // T |
|
| 117 | - 'texte_lettre_information' => 'Voici la lettre d’information du site', |
|
| 118 | - 'texte_lettre_information_2' => 'Cette lettre recense les nouveautés publiées depuis', |
|
| 119 | - |
|
| 120 | - // V |
|
| 121 | - 'ver_imprimer' => 'Version à imprimer', |
|
| 122 | - 'voir_en_ligne' => 'Voir en ligne', |
|
| 123 | - 'voir_squelette' => 'voir le squelette de cette page' |
|
| 10 | + // A |
|
| 11 | + 'accueil_site' => 'Accueil', |
|
| 12 | + 'article' => 'Article', |
|
| 13 | + 'articles' => 'Articles', |
|
| 14 | + 'articles_auteur' => 'Articles de cet auteur', |
|
| 15 | + 'articles_populaires' => 'Articles les plus populaires', |
|
| 16 | + 'articles_rubrique' => 'Articles de cette rubrique', |
|
| 17 | + 'aucun_article' => 'Il n’y a pas d’article à cette adresse', |
|
| 18 | + 'aucun_auteur' => 'Il n’y a pas d’auteur à cette adresse', |
|
| 19 | + 'aucun_site' => 'Il n’y a pas de site à cette adresse', |
|
| 20 | + 'aucune_breve' => 'Il n’y a pas de brève à cette adresse', |
|
| 21 | + 'aucune_rubrique' => 'Il n’y a pas de rubrique à cette adresse', |
|
| 22 | + 'auteur' => 'Auteur', |
|
| 23 | + 'autres' => 'Autres', |
|
| 24 | + 'autres_breves' => 'Autres brèves', |
|
| 25 | + 'autres_groupes_mots_clefs' => 'Autres groupes de mots-clés', |
|
| 26 | + 'autres_sites' => 'Autres sites', |
|
| 27 | + |
|
| 28 | + // B |
|
| 29 | + 'bonjour' => 'Bonjour', |
|
| 30 | + |
|
| 31 | + // C |
|
| 32 | + 'commenter_site' => 'Commenter ce site', |
|
| 33 | + 'contact' => 'Contact', |
|
| 34 | + 'copie_document_impossible' => 'Impossible de copier le document', |
|
| 35 | + |
|
| 36 | + // D |
|
| 37 | + 'date' => 'Date', |
|
| 38 | + 'dernier_ajout' => 'Dernier ajout', |
|
| 39 | + 'dernieres_breves' => 'Dernières brèves', |
|
| 40 | + 'derniers_articles' => 'Derniers articles', |
|
| 41 | + 'derniers_commentaires' => 'Derniers commentaires', |
|
| 42 | + 'derniers_messages_forum' => 'Derniers messages publiés dans les forums', |
|
| 43 | + |
|
| 44 | + // E |
|
| 45 | + 'edition_mode_texte' => 'Édition en mode texte de', |
|
| 46 | + 'en_reponse' => 'En réponse à :', |
|
| 47 | + 'en_resume' => 'En résumé', |
|
| 48 | + 'envoyer_message' => 'Envoyer un message', |
|
| 49 | + 'espace_prive' => 'Espace privé', |
|
| 50 | + |
|
| 51 | + // F |
|
| 52 | + 'formats_acceptes' => 'Formats acceptés : @formats@.', |
|
| 53 | + |
|
| 54 | + // H |
|
| 55 | + 'hierarchie_site' => 'Hiérarchie du site', |
|
| 56 | + |
|
| 57 | + // J |
|
| 58 | + 'jours' => 'jours', |
|
| 59 | + |
|
| 60 | + // L |
|
| 61 | + 'lien_connecter' => 'Se connecter', |
|
| 62 | + |
|
| 63 | + // M |
|
| 64 | + 'meme_auteur' => 'Du même auteur', |
|
| 65 | + 'meme_rubrique' => 'Dans la même rubrique', |
|
| 66 | + 'memes_auteurs' => 'Des mêmes auteurs', |
|
| 67 | + 'message' => 'Message', |
|
| 68 | + 'messages_forum' => 'Messages', |
|
| 69 | + 'messages_recents' => 'Messages de forums les plus récents', |
|
| 70 | + 'mots_clef' => 'Mot-clé', |
|
| 71 | + 'mots_clefs' => 'Mots-clés', |
|
| 72 | + 'mots_clefs_meme_groupe' => 'Mots-clés dans le même groupe', |
|
| 73 | + |
|
| 74 | + // N |
|
| 75 | + 'navigation' => 'Navigation', |
|
| 76 | + 'nom' => 'Nom', |
|
| 77 | + 'nouveautes' => 'Les nouveautés', |
|
| 78 | + 'nouveautes_web' => 'Nouveautés sur le Web', |
|
| 79 | + 'nouveaux_articles' => 'Nouveaux articles', |
|
| 80 | + 'nouvelles_breves' => 'Nouvelles brèves', |
|
| 81 | + |
|
| 82 | + // P |
|
| 83 | + 'page_precedente' => 'page précédente', |
|
| 84 | + 'page_suivante' => 'page suivante', |
|
| 85 | + 'par_auteur' => 'par ', |
|
| 86 | + 'participer_site' => 'Vous pouvez participer à la vie de ce site et proposer vos propres articles en vous inscrivant ci-dessous. Vous recevrez immédiatement un email vous indiquant vos codes d’accès à l’espace privé du site.', |
|
| 87 | + 'plan_site' => 'Plan du site', |
|
| 88 | + 'popularite' => 'Popularité', |
|
| 89 | + 'poster_message' => 'Poster un message', |
|
| 90 | + 'proposer_site' => 'Vous pouvez proposer un site à ajouter dans cette rubrique :', |
|
| 91 | + |
|
| 92 | + // R |
|
| 93 | + 'repondre_article' => 'Répondre à cet article', |
|
| 94 | + 'repondre_breve' => 'Répondre à cette brève', |
|
| 95 | + 'resultats_recherche' => 'Résultats de la recherche', |
|
| 96 | + 'retour_debut_forums' => 'Retour au début des forums', |
|
| 97 | + 'rss_abonnement' => 'Copiez l’URL suivante dans votre agrégateur :', |
|
| 98 | + 'rss_abonnement_titre' => 'S’abonner', |
|
| 99 | + 'rss_abonnement_titre_page' => 'S’abonner à', |
|
| 100 | + 'rss_explication' => 'Un fil RSS recueille les informations de mise à jour d’un site. Il fournit le contenu des billets ou des commentaires ou un extrait de ceux-ci, ainsi qu’un lien vers les versions complètes et quelques autres informations. Ce fil a pour vocation d’être lu par un agrégateur RSS.', |
|
| 101 | + 'rss_explication_titre' => 'Qu’est-ce qu’un flux RSS ?', |
|
| 102 | + 'rubrique' => 'Rubrique', |
|
| 103 | + 'rubriques' => 'Rubriques', |
|
| 104 | + |
|
| 105 | + // S |
|
| 106 | + 'signatures_petition' => 'Signatures', |
|
| 107 | + 'site_realise_avec_spip' => 'Site réalisé avec SPIP', |
|
| 108 | + 'sites_web' => 'Sites Web', |
|
| 109 | + 'sous_rubriques' => 'Sous-rubriques', |
|
| 110 | + 'spam' => 'Spam', |
|
| 111 | + 'suite' => 'suite', |
|
| 112 | + 'sur_web' => 'Sur le Web', |
|
| 113 | + 'syndiquer_rubrique' => 'Syndiquer cette rubrique', |
|
| 114 | + 'syndiquer_site' => 'Syndiquer tout le site', |
|
| 115 | + |
|
| 116 | + // T |
|
| 117 | + 'texte_lettre_information' => 'Voici la lettre d’information du site', |
|
| 118 | + 'texte_lettre_information_2' => 'Cette lettre recense les nouveautés publiées depuis', |
|
| 119 | + |
|
| 120 | + // V |
|
| 121 | + 'ver_imprimer' => 'Version à imprimer', |
|
| 122 | + 'voir_en_ligne' => 'Voir en ligne', |
|
| 123 | + 'voir_squelette' => 'voir le squelette de cette page' |
|
| 124 | 124 | ); |
@@ -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' => 'Home', |
|
| 14 | - 'article' => 'Article', |
|
| 15 | - 'articles' => 'Articles', |
|
| 16 | - 'articles_auteur' => 'Articles by this author', |
|
| 17 | - 'articles_populaires' => 'Most popular articles', |
|
| 18 | - 'articles_rubrique' => 'Articles in this section', |
|
| 19 | - 'aucun_article' => 'No articles here', |
|
| 20 | - 'aucun_auteur' => 'No authors here', |
|
| 21 | - 'aucun_site' => 'No links here', |
|
| 22 | - 'aucune_breve' => 'No news items here', |
|
| 23 | - 'aucune_rubrique' => 'No sections here', |
|
| 24 | - 'auteur' => 'Author', |
|
| 25 | - 'autres' => 'Others', |
|
| 26 | - 'autres_breves' => 'Other news', |
|
| 27 | - 'autres_groupes_mots_clefs' => 'Other groups of keywords', |
|
| 28 | - 'autres_sites' => 'Other websites', |
|
| 29 | - |
|
| 30 | - // B |
|
| 31 | - 'bonjour' => 'Hello', |
|
| 32 | - |
|
| 33 | - // C |
|
| 34 | - 'commenter_site' => 'Comment on this site', |
|
| 35 | - 'contact' => 'Contact', |
|
| 36 | - 'copie_document_impossible' => 'Impossible to copy this document', |
|
| 37 | - |
|
| 38 | - // D |
|
| 39 | - 'date' => 'Date', |
|
| 40 | - 'dernier_ajout' => 'Latest update', |
|
| 41 | - 'dernieres_breves' => 'Latest news', |
|
| 42 | - 'derniers_articles' => 'Latest articles', |
|
| 43 | - 'derniers_commentaires' => 'Latest comments', |
|
| 44 | - 'derniers_messages_forum' => 'Latest forum posts', |
|
| 45 | - |
|
| 46 | - // E |
|
| 47 | - 'edition_mode_texte' => 'Text mode only', |
|
| 48 | - 'en_reponse' => 'Replying to:', |
|
| 49 | - 'en_resume' => 'Summary', |
|
| 50 | - 'envoyer_message' => 'Send a message', |
|
| 51 | - 'espace_prive' => 'Private area', |
|
| 52 | - |
|
| 53 | - // F |
|
| 54 | - 'formats_acceptes' => 'Valid formats: @formats@.', |
|
| 55 | - |
|
| 56 | - // H |
|
| 57 | - 'hierarchie_site' => 'Site map', |
|
| 58 | - |
|
| 59 | - // J |
|
| 60 | - 'jours' => 'days', |
|
| 61 | - |
|
| 62 | - // L |
|
| 63 | - 'lien_connecter' => 'Log in', |
|
| 64 | - |
|
| 65 | - // M |
|
| 66 | - 'meme_auteur' => 'By the same author', |
|
| 67 | - 'meme_rubrique' => 'Also in this section', |
|
| 68 | - 'memes_auteurs' => 'By the same authors', |
|
| 69 | - 'message' => 'Message', |
|
| 70 | - 'messages_forum' => 'Forum posts', |
|
| 71 | - 'messages_recents' => 'Most recent forum posts', |
|
| 72 | - 'mots_clef' => 'Keyword', |
|
| 73 | - 'mots_clefs' => 'Keywords', |
|
| 74 | - 'mots_clefs_meme_groupe' => 'Other keywords in this group', |
|
| 75 | - |
|
| 76 | - // N |
|
| 77 | - 'navigation' => 'Browsing', |
|
| 78 | - 'nom' => 'Name', |
|
| 79 | - 'nouveautes' => 'What’s new', |
|
| 80 | - 'nouveautes_web' => 'What’s new on the Web', |
|
| 81 | - 'nouveaux_articles' => 'New articles', |
|
| 82 | - 'nouvelles_breves' => 'Latest news items', |
|
| 83 | - |
|
| 84 | - // P |
|
| 85 | - 'page_precedente' => 'previous page', |
|
| 86 | - 'page_suivante' => 'next page', |
|
| 87 | - 'par_auteur' => 'by ', |
|
| 88 | - 'participer_site' => 'You can take active part in this website and write your own articles by signing up here. You will receive an email with your account information for the private area of the site.', |
|
| 89 | - 'plan_site' => 'Site Map', |
|
| 90 | - 'popularite' => 'Popularity', |
|
| 91 | - 'poster_message' => 'Post a message', |
|
| 92 | - 'proposer_site' => 'You can suggest a website for inclusion in this section:', |
|
| 93 | - |
|
| 94 | - // R |
|
| 95 | - 'repondre_article' => 'Comment on this article', |
|
| 96 | - 'repondre_breve' => 'Comment on this news item', |
|
| 97 | - 'resultats_recherche' => 'Search results', |
|
| 98 | - 'retour_debut_forums' => 'Back to forum top', |
|
| 99 | - 'rss_abonnement' => 'Simply copy the following URL into your aggregator:', |
|
| 100 | - 'rss_abonnement_titre' => 'Subscribe', |
|
| 101 | - 'rss_abonnement_titre_page' => 'Subscribe to', |
|
| 102 | - 'rss_explication' => 'An RSS thread collects information about a site’s update. It delivers the content of the tickets or the comments or an extract of them, as well as a link to the full versions et some other information. This thread is to be read by an RSS aggregator.', |
|
| 103 | - 'rss_explication_titre' => 'What is an RSS feed?', |
|
| 104 | - 'rubrique' => 'Section', |
|
| 105 | - 'rubriques' => 'Sections', |
|
| 106 | - |
|
| 107 | - // S |
|
| 108 | - 'signatures_petition' => 'Signatures', |
|
| 109 | - 'site_realise_avec_spip' => 'Site powered by SPIP', |
|
| 110 | - 'sites_web' => 'Websites', |
|
| 111 | - 'sous_rubriques' => 'Subsections', |
|
| 112 | - 'spam' => 'Spam', |
|
| 113 | - 'suite' => 'continue', |
|
| 114 | - 'sur_web' => 'Around the Web', |
|
| 115 | - 'syndiquer_rubrique' => 'Subscribe to this section', |
|
| 116 | - 'syndiquer_site' => 'Subscribe to the whole site', |
|
| 117 | - |
|
| 118 | - // T |
|
| 119 | - 'texte_lettre_information' => 'Here is the site newsletter', |
|
| 120 | - 'texte_lettre_information_2' => 'This site contains news items published since', |
|
| 121 | - |
|
| 122 | - // V |
|
| 123 | - 'ver_imprimer' => 'Printable version', |
|
| 124 | - 'voir_en_ligne' => 'View online', |
|
| 125 | - 'voir_squelette' => 'show the template of this page' |
|
| 12 | + // A |
|
| 13 | + 'accueil_site' => 'Home', |
|
| 14 | + 'article' => 'Article', |
|
| 15 | + 'articles' => 'Articles', |
|
| 16 | + 'articles_auteur' => 'Articles by this author', |
|
| 17 | + 'articles_populaires' => 'Most popular articles', |
|
| 18 | + 'articles_rubrique' => 'Articles in this section', |
|
| 19 | + 'aucun_article' => 'No articles here', |
|
| 20 | + 'aucun_auteur' => 'No authors here', |
|
| 21 | + 'aucun_site' => 'No links here', |
|
| 22 | + 'aucune_breve' => 'No news items here', |
|
| 23 | + 'aucune_rubrique' => 'No sections here', |
|
| 24 | + 'auteur' => 'Author', |
|
| 25 | + 'autres' => 'Others', |
|
| 26 | + 'autres_breves' => 'Other news', |
|
| 27 | + 'autres_groupes_mots_clefs' => 'Other groups of keywords', |
|
| 28 | + 'autres_sites' => 'Other websites', |
|
| 29 | + |
|
| 30 | + // B |
|
| 31 | + 'bonjour' => 'Hello', |
|
| 32 | + |
|
| 33 | + // C |
|
| 34 | + 'commenter_site' => 'Comment on this site', |
|
| 35 | + 'contact' => 'Contact', |
|
| 36 | + 'copie_document_impossible' => 'Impossible to copy this document', |
|
| 37 | + |
|
| 38 | + // D |
|
| 39 | + 'date' => 'Date', |
|
| 40 | + 'dernier_ajout' => 'Latest update', |
|
| 41 | + 'dernieres_breves' => 'Latest news', |
|
| 42 | + 'derniers_articles' => 'Latest articles', |
|
| 43 | + 'derniers_commentaires' => 'Latest comments', |
|
| 44 | + 'derniers_messages_forum' => 'Latest forum posts', |
|
| 45 | + |
|
| 46 | + // E |
|
| 47 | + 'edition_mode_texte' => 'Text mode only', |
|
| 48 | + 'en_reponse' => 'Replying to:', |
|
| 49 | + 'en_resume' => 'Summary', |
|
| 50 | + 'envoyer_message' => 'Send a message', |
|
| 51 | + 'espace_prive' => 'Private area', |
|
| 52 | + |
|
| 53 | + // F |
|
| 54 | + 'formats_acceptes' => 'Valid formats: @formats@.', |
|
| 55 | + |
|
| 56 | + // H |
|
| 57 | + 'hierarchie_site' => 'Site map', |
|
| 58 | + |
|
| 59 | + // J |
|
| 60 | + 'jours' => 'days', |
|
| 61 | + |
|
| 62 | + // L |
|
| 63 | + 'lien_connecter' => 'Log in', |
|
| 64 | + |
|
| 65 | + // M |
|
| 66 | + 'meme_auteur' => 'By the same author', |
|
| 67 | + 'meme_rubrique' => 'Also in this section', |
|
| 68 | + 'memes_auteurs' => 'By the same authors', |
|
| 69 | + 'message' => 'Message', |
|
| 70 | + 'messages_forum' => 'Forum posts', |
|
| 71 | + 'messages_recents' => 'Most recent forum posts', |
|
| 72 | + 'mots_clef' => 'Keyword', |
|
| 73 | + 'mots_clefs' => 'Keywords', |
|
| 74 | + 'mots_clefs_meme_groupe' => 'Other keywords in this group', |
|
| 75 | + |
|
| 76 | + // N |
|
| 77 | + 'navigation' => 'Browsing', |
|
| 78 | + 'nom' => 'Name', |
|
| 79 | + 'nouveautes' => 'What’s new', |
|
| 80 | + 'nouveautes_web' => 'What’s new on the Web', |
|
| 81 | + 'nouveaux_articles' => 'New articles', |
|
| 82 | + 'nouvelles_breves' => 'Latest news items', |
|
| 83 | + |
|
| 84 | + // P |
|
| 85 | + 'page_precedente' => 'previous page', |
|
| 86 | + 'page_suivante' => 'next page', |
|
| 87 | + 'par_auteur' => 'by ', |
|
| 88 | + 'participer_site' => 'You can take active part in this website and write your own articles by signing up here. You will receive an email with your account information for the private area of the site.', |
|
| 89 | + 'plan_site' => 'Site Map', |
|
| 90 | + 'popularite' => 'Popularity', |
|
| 91 | + 'poster_message' => 'Post a message', |
|
| 92 | + 'proposer_site' => 'You can suggest a website for inclusion in this section:', |
|
| 93 | + |
|
| 94 | + // R |
|
| 95 | + 'repondre_article' => 'Comment on this article', |
|
| 96 | + 'repondre_breve' => 'Comment on this news item', |
|
| 97 | + 'resultats_recherche' => 'Search results', |
|
| 98 | + 'retour_debut_forums' => 'Back to forum top', |
|
| 99 | + 'rss_abonnement' => 'Simply copy the following URL into your aggregator:', |
|
| 100 | + 'rss_abonnement_titre' => 'Subscribe', |
|
| 101 | + 'rss_abonnement_titre_page' => 'Subscribe to', |
|
| 102 | + 'rss_explication' => 'An RSS thread collects information about a site’s update. It delivers the content of the tickets or the comments or an extract of them, as well as a link to the full versions et some other information. This thread is to be read by an RSS aggregator.', |
|
| 103 | + 'rss_explication_titre' => 'What is an RSS feed?', |
|
| 104 | + 'rubrique' => 'Section', |
|
| 105 | + 'rubriques' => 'Sections', |
|
| 106 | + |
|
| 107 | + // S |
|
| 108 | + 'signatures_petition' => 'Signatures', |
|
| 109 | + 'site_realise_avec_spip' => 'Site powered by SPIP', |
|
| 110 | + 'sites_web' => 'Websites', |
|
| 111 | + 'sous_rubriques' => 'Subsections', |
|
| 112 | + 'spam' => 'Spam', |
|
| 113 | + 'suite' => 'continue', |
|
| 114 | + 'sur_web' => 'Around the Web', |
|
| 115 | + 'syndiquer_rubrique' => 'Subscribe to this section', |
|
| 116 | + 'syndiquer_site' => 'Subscribe to the whole site', |
|
| 117 | + |
|
| 118 | + // T |
|
| 119 | + 'texte_lettre_information' => 'Here is the site newsletter', |
|
| 120 | + 'texte_lettre_information_2' => 'This site contains news items published since', |
|
| 121 | + |
|
| 122 | + // V |
|
| 123 | + 'ver_imprimer' => 'Printable version', |
|
| 124 | + 'voir_en_ligne' => 'View online', |
|
| 125 | + 'voir_squelette' => 'show the template of this page' |
|
| 126 | 126 | ); |