@@ -10,207 +10,207 @@ |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | include_spip('inc/xml'); |
| 17 | 17 | include_spip('inc/plugin'); |
| 18 | 18 | |
| 19 | 19 | function plugins_verifie_conformite_dist($plug, &$arbre, $dir_plugins = _DIR_PLUGINS) { |
| 20 | - $needs = null; |
|
| 21 | - $compat_spip = null; |
|
| 22 | - $uses = null; |
|
| 23 | - $paths = null; |
|
| 24 | - $trads = null; |
|
| 25 | - static $etats = ['dev', 'experimental', 'test', 'stable']; |
|
| 20 | + $needs = null; |
|
| 21 | + $compat_spip = null; |
|
| 22 | + $uses = null; |
|
| 23 | + $paths = null; |
|
| 24 | + $trads = null; |
|
| 25 | + static $etats = ['dev', 'experimental', 'test', 'stable']; |
|
| 26 | 26 | |
| 27 | - $matches = []; |
|
| 28 | - $silence = false; |
|
| 29 | - $p = null; |
|
| 30 | - // chercher la declaration <plugin spip='...'> a prendre pour cette version de SPIP |
|
| 31 | - if ($n = spip_xml_match_nodes(',^plugin(\s|$),', $arbre, $matches)) { |
|
| 32 | - // version de SPIP |
|
| 33 | - $vspip = $GLOBALS['spip_version_branche']; |
|
| 34 | - foreach ($matches as $tag => $sous) { |
|
| 35 | - [$tagname, $atts] = spip_xml_decompose_tag($tag); |
|
| 36 | - // On rajoute la condition sur $n : |
|
| 37 | - // -- en effet si $n==1 on a pas plus a choisir la balise que l'on ait |
|
| 38 | - // un attribut spip ou pas. Cela permet de traiter tous les cas mono-balise |
|
| 39 | - // de la meme facon. |
|
| 40 | - if ( |
|
| 41 | - $tagname == 'plugin' |
|
| 42 | - && is_array($sous) |
|
| 43 | - && (!isset($atts['spip']) || $n == 1 || plugin_version_compatible($atts['spip'], $vspip, 'spip')) |
|
| 44 | - ) { |
|
| 45 | - // on prend la derniere declaration avec ce nom |
|
| 46 | - $p = end($sous); |
|
| 47 | - $compat_spip = $atts['spip'] ?? ''; |
|
| 48 | - } |
|
| 49 | - } |
|
| 50 | - } |
|
| 51 | - if (is_null($p)) { |
|
| 52 | - $arbre = ['erreur' => [_T('erreur_plugin_tag_plugin_absent') . " : $plug"]]; |
|
| 53 | - $silence = true; |
|
| 54 | - } else { |
|
| 55 | - $arbre = $p; |
|
| 56 | - } |
|
| 57 | - if (!is_array($arbre)) { |
|
| 58 | - $arbre = []; |
|
| 59 | - } |
|
| 60 | - // verification de la conformite du plugin avec quelques |
|
| 61 | - // precautions elementaires |
|
| 62 | - if (!isset($arbre['nom'])) { |
|
| 63 | - if (!$silence) { |
|
| 64 | - $arbre['erreur'][] = _T('erreur_plugin_nom_manquant'); |
|
| 65 | - } |
|
| 66 | - $arbre['nom'] = ['']; |
|
| 67 | - } |
|
| 68 | - if (!isset($arbre['version'])) { |
|
| 69 | - if (!$silence) { |
|
| 70 | - $arbre['erreur'][] = _T('erreur_plugin_version_manquant'); |
|
| 71 | - } |
|
| 72 | - $arbre['version'] = ['']; |
|
| 73 | - } |
|
| 74 | - if (!isset($arbre['prefix'])) { |
|
| 75 | - if (!$silence) { |
|
| 76 | - $arbre['erreur'][] = _T('erreur_plugin_prefix_manquant'); |
|
| 77 | - } |
|
| 78 | - $arbre['prefix'] = ['']; |
|
| 79 | - } else { |
|
| 80 | - $prefix = trim(end($arbre['prefix'])); |
|
| 81 | - if (strtoupper($prefix) == 'SPIP' && $plug != './') { |
|
| 82 | - $arbre['erreur'][] = _T('erreur_plugin_prefix_interdit'); |
|
| 83 | - } |
|
| 84 | - if (isset($arbre['etat'])) { |
|
| 85 | - $etat = trim(end($arbre['etat'])); |
|
| 86 | - if (!in_array($etat, $etats)) { |
|
| 87 | - $arbre['erreur'][] = _T('erreur_plugin_etat_inconnu') . " : '$etat'"; |
|
| 88 | - } |
|
| 89 | - } |
|
| 90 | - if (isset($arbre['options'])) { |
|
| 91 | - foreach ($arbre['options'] as $optfile) { |
|
| 92 | - $optfile = trim($optfile); |
|
| 93 | - if (!@is_readable($dir_plugins . "$plug/$optfile") && !$silence) { |
|
| 94 | - $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $optfile"; |
|
| 95 | - } |
|
| 96 | - } |
|
| 97 | - } |
|
| 98 | - if (isset($arbre['fonctions'])) { |
|
| 99 | - foreach ($arbre['fonctions'] as $optfile) { |
|
| 100 | - $optfile = trim($optfile); |
|
| 101 | - if (!@is_readable($dir_plugins . "$plug/$optfile") && !$silence) { |
|
| 102 | - $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $optfile"; |
|
| 103 | - } |
|
| 104 | - } |
|
| 105 | - } |
|
| 106 | - $fonctions = []; |
|
| 107 | - if (isset($arbre['fonctions'])) { |
|
| 108 | - $fonctions = $arbre['fonctions']; |
|
| 109 | - } |
|
| 110 | - $liste_methodes_reservees = [ |
|
| 111 | - '__construct', |
|
| 112 | - '__destruct', |
|
| 113 | - 'plugin', |
|
| 114 | - 'install', |
|
| 115 | - 'uninstall', |
|
| 116 | - strtolower($prefix) |
|
| 117 | - ]; |
|
| 27 | + $matches = []; |
|
| 28 | + $silence = false; |
|
| 29 | + $p = null; |
|
| 30 | + // chercher la declaration <plugin spip='...'> a prendre pour cette version de SPIP |
|
| 31 | + if ($n = spip_xml_match_nodes(',^plugin(\s|$),', $arbre, $matches)) { |
|
| 32 | + // version de SPIP |
|
| 33 | + $vspip = $GLOBALS['spip_version_branche']; |
|
| 34 | + foreach ($matches as $tag => $sous) { |
|
| 35 | + [$tagname, $atts] = spip_xml_decompose_tag($tag); |
|
| 36 | + // On rajoute la condition sur $n : |
|
| 37 | + // -- en effet si $n==1 on a pas plus a choisir la balise que l'on ait |
|
| 38 | + // un attribut spip ou pas. Cela permet de traiter tous les cas mono-balise |
|
| 39 | + // de la meme facon. |
|
| 40 | + if ( |
|
| 41 | + $tagname == 'plugin' |
|
| 42 | + && is_array($sous) |
|
| 43 | + && (!isset($atts['spip']) || $n == 1 || plugin_version_compatible($atts['spip'], $vspip, 'spip')) |
|
| 44 | + ) { |
|
| 45 | + // on prend la derniere declaration avec ce nom |
|
| 46 | + $p = end($sous); |
|
| 47 | + $compat_spip = $atts['spip'] ?? ''; |
|
| 48 | + } |
|
| 49 | + } |
|
| 50 | + } |
|
| 51 | + if (is_null($p)) { |
|
| 52 | + $arbre = ['erreur' => [_T('erreur_plugin_tag_plugin_absent') . " : $plug"]]; |
|
| 53 | + $silence = true; |
|
| 54 | + } else { |
|
| 55 | + $arbre = $p; |
|
| 56 | + } |
|
| 57 | + if (!is_array($arbre)) { |
|
| 58 | + $arbre = []; |
|
| 59 | + } |
|
| 60 | + // verification de la conformite du plugin avec quelques |
|
| 61 | + // precautions elementaires |
|
| 62 | + if (!isset($arbre['nom'])) { |
|
| 63 | + if (!$silence) { |
|
| 64 | + $arbre['erreur'][] = _T('erreur_plugin_nom_manquant'); |
|
| 65 | + } |
|
| 66 | + $arbre['nom'] = ['']; |
|
| 67 | + } |
|
| 68 | + if (!isset($arbre['version'])) { |
|
| 69 | + if (!$silence) { |
|
| 70 | + $arbre['erreur'][] = _T('erreur_plugin_version_manquant'); |
|
| 71 | + } |
|
| 72 | + $arbre['version'] = ['']; |
|
| 73 | + } |
|
| 74 | + if (!isset($arbre['prefix'])) { |
|
| 75 | + if (!$silence) { |
|
| 76 | + $arbre['erreur'][] = _T('erreur_plugin_prefix_manquant'); |
|
| 77 | + } |
|
| 78 | + $arbre['prefix'] = ['']; |
|
| 79 | + } else { |
|
| 80 | + $prefix = trim(end($arbre['prefix'])); |
|
| 81 | + if (strtoupper($prefix) == 'SPIP' && $plug != './') { |
|
| 82 | + $arbre['erreur'][] = _T('erreur_plugin_prefix_interdit'); |
|
| 83 | + } |
|
| 84 | + if (isset($arbre['etat'])) { |
|
| 85 | + $etat = trim(end($arbre['etat'])); |
|
| 86 | + if (!in_array($etat, $etats)) { |
|
| 87 | + $arbre['erreur'][] = _T('erreur_plugin_etat_inconnu') . " : '$etat'"; |
|
| 88 | + } |
|
| 89 | + } |
|
| 90 | + if (isset($arbre['options'])) { |
|
| 91 | + foreach ($arbre['options'] as $optfile) { |
|
| 92 | + $optfile = trim($optfile); |
|
| 93 | + if (!@is_readable($dir_plugins . "$plug/$optfile") && !$silence) { |
|
| 94 | + $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $optfile"; |
|
| 95 | + } |
|
| 96 | + } |
|
| 97 | + } |
|
| 98 | + if (isset($arbre['fonctions'])) { |
|
| 99 | + foreach ($arbre['fonctions'] as $optfile) { |
|
| 100 | + $optfile = trim($optfile); |
|
| 101 | + if (!@is_readable($dir_plugins . "$plug/$optfile") && !$silence) { |
|
| 102 | + $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $optfile"; |
|
| 103 | + } |
|
| 104 | + } |
|
| 105 | + } |
|
| 106 | + $fonctions = []; |
|
| 107 | + if (isset($arbre['fonctions'])) { |
|
| 108 | + $fonctions = $arbre['fonctions']; |
|
| 109 | + } |
|
| 110 | + $liste_methodes_reservees = [ |
|
| 111 | + '__construct', |
|
| 112 | + '__destruct', |
|
| 113 | + 'plugin', |
|
| 114 | + 'install', |
|
| 115 | + 'uninstall', |
|
| 116 | + strtolower($prefix) |
|
| 117 | + ]; |
|
| 118 | 118 | |
| 119 | - $extraire_pipelines = charger_fonction('extraire_pipelines', 'plugins'); |
|
| 120 | - $arbre['pipeline'] = $extraire_pipelines($arbre); |
|
| 121 | - foreach ($arbre['pipeline'] as $pipe) { |
|
| 122 | - if (!isset($pipe['nom']) && !$silence) { |
|
| 123 | - $arbre['erreur'][] = _T('erreur_plugin_nom_pipeline_non_defini'); |
|
| 124 | - } |
|
| 125 | - $action = $pipe['action'] ?? $pipe['nom']; |
|
| 126 | - // verif que la methode a un nom autorise |
|
| 127 | - if (in_array(strtolower($action), $liste_methodes_reservees) && !$silence) { |
|
| 128 | - $arbre['erreur'][] = _T('erreur_plugin_nom_fonction_interdit') . " : $action"; |
|
| 129 | - } |
|
| 130 | - if (isset($pipe['inclure'])) { |
|
| 131 | - $inclure = $dir_plugins . "$plug/" . $pipe['inclure']; |
|
| 132 | - if (!@is_readable($inclure) && !$silence) { |
|
| 133 | - $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $inclure"; |
|
| 134 | - } |
|
| 135 | - } |
|
| 136 | - } |
|
| 137 | - $necessite = []; |
|
| 138 | - $spip_trouve = false; |
|
| 139 | - if (spip_xml_match_nodes(',^necessite,', $arbre, $needs)) { |
|
| 140 | - foreach (array_keys($needs) as $tag) { |
|
| 141 | - [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 142 | - if (!isset($att['id'])) { |
|
| 143 | - if (!$silence) { |
|
| 144 | - $arbre['erreur'][] = _T( |
|
| 145 | - 'erreur_plugin_attribut_balise_manquant', |
|
| 146 | - ['attribut' => 'id', 'balise' => $att] |
|
| 147 | - ); |
|
| 148 | - } |
|
| 149 | - } else { |
|
| 150 | - $necessite[] = $att; |
|
| 151 | - } |
|
| 152 | - if (strtolower($att['id']) == 'spip') { |
|
| 153 | - $spip_trouve = true; |
|
| 154 | - } |
|
| 155 | - } |
|
| 156 | - } |
|
| 157 | - if ($compat_spip && !$spip_trouve) { |
|
| 158 | - $necessite[] = ['id' => 'spip', 'version' => $compat_spip]; |
|
| 159 | - } |
|
| 160 | - $arbre['necessite'] = $necessite; |
|
| 161 | - $utilise = []; |
|
| 162 | - if (spip_xml_match_nodes(',^utilise,', $arbre, $uses)) { |
|
| 163 | - foreach (array_keys($uses) as $tag) { |
|
| 164 | - [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 165 | - if (!isset($att['id'])) { |
|
| 166 | - if (!$silence) { |
|
| 167 | - $arbre['erreur'][] = _T( |
|
| 168 | - 'erreur_plugin_attribut_balise_manquant', |
|
| 169 | - ['attribut' => 'id', 'balise' => $att] |
|
| 170 | - ); |
|
| 171 | - } |
|
| 172 | - } else { |
|
| 173 | - $utilise[] = $att; |
|
| 174 | - } |
|
| 175 | - } |
|
| 176 | - } |
|
| 177 | - $arbre['utilise'] = $utilise; |
|
| 178 | - $procure = []; |
|
| 179 | - if (spip_xml_match_nodes(',^procure,', $arbre, $uses)) { |
|
| 180 | - foreach (array_keys($uses) as $tag) { |
|
| 181 | - [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 182 | - $procure[] = $att; |
|
| 183 | - } |
|
| 184 | - } |
|
| 185 | - $arbre['procure'] = $procure; |
|
| 186 | - $path = []; |
|
| 187 | - if (spip_xml_match_nodes(',^chemin,', $arbre, $paths)) { |
|
| 188 | - foreach (array_keys($paths) as $tag) { |
|
| 189 | - [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 190 | - $att['path'] = $att['dir']; // ancienne syntaxe |
|
| 191 | - $path[] = $att; |
|
| 192 | - } |
|
| 193 | - } else { |
|
| 194 | - $path = [['dir' => '']]; |
|
| 195 | - } // initialiser par defaut |
|
| 196 | - $arbre['path'] = $path; |
|
| 197 | - // exposer les noisettes |
|
| 198 | - if (isset($arbre['noisette'])) { |
|
| 199 | - foreach ($arbre['noisette'] as $k => $nut) { |
|
| 200 | - $nut = preg_replace(',[.]html$,uims', '', trim($nut)); |
|
| 201 | - $arbre['noisette'][$k] = $nut; |
|
| 202 | - if (!@is_readable($dir_plugins . "$plug/$nut.html") && !$silence) { |
|
| 203 | - $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $nut"; |
|
| 204 | - } |
|
| 205 | - } |
|
| 206 | - } |
|
| 207 | - $traduire = []; |
|
| 208 | - if (spip_xml_match_nodes(',^traduire,', $arbre, $trads)) { |
|
| 209 | - foreach (array_keys($trads) as $tag) { |
|
| 210 | - [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 211 | - $traduire[] = $att; |
|
| 212 | - } |
|
| 213 | - } |
|
| 214 | - $arbre['traduire'] = $traduire; |
|
| 215 | - } |
|
| 119 | + $extraire_pipelines = charger_fonction('extraire_pipelines', 'plugins'); |
|
| 120 | + $arbre['pipeline'] = $extraire_pipelines($arbre); |
|
| 121 | + foreach ($arbre['pipeline'] as $pipe) { |
|
| 122 | + if (!isset($pipe['nom']) && !$silence) { |
|
| 123 | + $arbre['erreur'][] = _T('erreur_plugin_nom_pipeline_non_defini'); |
|
| 124 | + } |
|
| 125 | + $action = $pipe['action'] ?? $pipe['nom']; |
|
| 126 | + // verif que la methode a un nom autorise |
|
| 127 | + if (in_array(strtolower($action), $liste_methodes_reservees) && !$silence) { |
|
| 128 | + $arbre['erreur'][] = _T('erreur_plugin_nom_fonction_interdit') . " : $action"; |
|
| 129 | + } |
|
| 130 | + if (isset($pipe['inclure'])) { |
|
| 131 | + $inclure = $dir_plugins . "$plug/" . $pipe['inclure']; |
|
| 132 | + if (!@is_readable($inclure) && !$silence) { |
|
| 133 | + $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $inclure"; |
|
| 134 | + } |
|
| 135 | + } |
|
| 136 | + } |
|
| 137 | + $necessite = []; |
|
| 138 | + $spip_trouve = false; |
|
| 139 | + if (spip_xml_match_nodes(',^necessite,', $arbre, $needs)) { |
|
| 140 | + foreach (array_keys($needs) as $tag) { |
|
| 141 | + [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 142 | + if (!isset($att['id'])) { |
|
| 143 | + if (!$silence) { |
|
| 144 | + $arbre['erreur'][] = _T( |
|
| 145 | + 'erreur_plugin_attribut_balise_manquant', |
|
| 146 | + ['attribut' => 'id', 'balise' => $att] |
|
| 147 | + ); |
|
| 148 | + } |
|
| 149 | + } else { |
|
| 150 | + $necessite[] = $att; |
|
| 151 | + } |
|
| 152 | + if (strtolower($att['id']) == 'spip') { |
|
| 153 | + $spip_trouve = true; |
|
| 154 | + } |
|
| 155 | + } |
|
| 156 | + } |
|
| 157 | + if ($compat_spip && !$spip_trouve) { |
|
| 158 | + $necessite[] = ['id' => 'spip', 'version' => $compat_spip]; |
|
| 159 | + } |
|
| 160 | + $arbre['necessite'] = $necessite; |
|
| 161 | + $utilise = []; |
|
| 162 | + if (spip_xml_match_nodes(',^utilise,', $arbre, $uses)) { |
|
| 163 | + foreach (array_keys($uses) as $tag) { |
|
| 164 | + [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 165 | + if (!isset($att['id'])) { |
|
| 166 | + if (!$silence) { |
|
| 167 | + $arbre['erreur'][] = _T( |
|
| 168 | + 'erreur_plugin_attribut_balise_manquant', |
|
| 169 | + ['attribut' => 'id', 'balise' => $att] |
|
| 170 | + ); |
|
| 171 | + } |
|
| 172 | + } else { |
|
| 173 | + $utilise[] = $att; |
|
| 174 | + } |
|
| 175 | + } |
|
| 176 | + } |
|
| 177 | + $arbre['utilise'] = $utilise; |
|
| 178 | + $procure = []; |
|
| 179 | + if (spip_xml_match_nodes(',^procure,', $arbre, $uses)) { |
|
| 180 | + foreach (array_keys($uses) as $tag) { |
|
| 181 | + [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 182 | + $procure[] = $att; |
|
| 183 | + } |
|
| 184 | + } |
|
| 185 | + $arbre['procure'] = $procure; |
|
| 186 | + $path = []; |
|
| 187 | + if (spip_xml_match_nodes(',^chemin,', $arbre, $paths)) { |
|
| 188 | + foreach (array_keys($paths) as $tag) { |
|
| 189 | + [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 190 | + $att['path'] = $att['dir']; // ancienne syntaxe |
|
| 191 | + $path[] = $att; |
|
| 192 | + } |
|
| 193 | + } else { |
|
| 194 | + $path = [['dir' => '']]; |
|
| 195 | + } // initialiser par defaut |
|
| 196 | + $arbre['path'] = $path; |
|
| 197 | + // exposer les noisettes |
|
| 198 | + if (isset($arbre['noisette'])) { |
|
| 199 | + foreach ($arbre['noisette'] as $k => $nut) { |
|
| 200 | + $nut = preg_replace(',[.]html$,uims', '', trim($nut)); |
|
| 201 | + $arbre['noisette'][$k] = $nut; |
|
| 202 | + if (!@is_readable($dir_plugins . "$plug/$nut.html") && !$silence) { |
|
| 203 | + $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $nut"; |
|
| 204 | + } |
|
| 205 | + } |
|
| 206 | + } |
|
| 207 | + $traduire = []; |
|
| 208 | + if (spip_xml_match_nodes(',^traduire,', $arbre, $trads)) { |
|
| 209 | + foreach (array_keys($trads) as $tag) { |
|
| 210 | + [$tag, $att] = spip_xml_decompose_tag($tag); |
|
| 211 | + $traduire[] = $att; |
|
| 212 | + } |
|
| 213 | + } |
|
| 214 | + $arbre['traduire'] = $traduire; |
|
| 215 | + } |
|
| 216 | 216 | } |
@@ -49,7 +49,7 @@ discard block |
||
| 49 | 49 | } |
| 50 | 50 | } |
| 51 | 51 | if (is_null($p)) { |
| 52 | - $arbre = ['erreur' => [_T('erreur_plugin_tag_plugin_absent') . " : $plug"]]; |
|
| 52 | + $arbre = ['erreur' => [_T('erreur_plugin_tag_plugin_absent')." : $plug"]]; |
|
| 53 | 53 | $silence = true; |
| 54 | 54 | } else { |
| 55 | 55 | $arbre = $p; |
@@ -84,22 +84,22 @@ discard block |
||
| 84 | 84 | if (isset($arbre['etat'])) { |
| 85 | 85 | $etat = trim(end($arbre['etat'])); |
| 86 | 86 | if (!in_array($etat, $etats)) { |
| 87 | - $arbre['erreur'][] = _T('erreur_plugin_etat_inconnu') . " : '$etat'"; |
|
| 87 | + $arbre['erreur'][] = _T('erreur_plugin_etat_inconnu')." : '$etat'"; |
|
| 88 | 88 | } |
| 89 | 89 | } |
| 90 | 90 | if (isset($arbre['options'])) { |
| 91 | 91 | foreach ($arbre['options'] as $optfile) { |
| 92 | 92 | $optfile = trim($optfile); |
| 93 | - if (!@is_readable($dir_plugins . "$plug/$optfile") && !$silence) { |
|
| 94 | - $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $optfile"; |
|
| 93 | + if (!@is_readable($dir_plugins."$plug/$optfile") && !$silence) { |
|
| 94 | + $arbre['erreur'][] = _T('erreur_plugin_fichier_absent')." : $optfile"; |
|
| 95 | 95 | } |
| 96 | 96 | } |
| 97 | 97 | } |
| 98 | 98 | if (isset($arbre['fonctions'])) { |
| 99 | 99 | foreach ($arbre['fonctions'] as $optfile) { |
| 100 | 100 | $optfile = trim($optfile); |
| 101 | - if (!@is_readable($dir_plugins . "$plug/$optfile") && !$silence) { |
|
| 102 | - $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $optfile"; |
|
| 101 | + if (!@is_readable($dir_plugins."$plug/$optfile") && !$silence) { |
|
| 102 | + $arbre['erreur'][] = _T('erreur_plugin_fichier_absent')." : $optfile"; |
|
| 103 | 103 | } |
| 104 | 104 | } |
| 105 | 105 | } |
@@ -125,12 +125,12 @@ discard block |
||
| 125 | 125 | $action = $pipe['action'] ?? $pipe['nom']; |
| 126 | 126 | // verif que la methode a un nom autorise |
| 127 | 127 | if (in_array(strtolower($action), $liste_methodes_reservees) && !$silence) { |
| 128 | - $arbre['erreur'][] = _T('erreur_plugin_nom_fonction_interdit') . " : $action"; |
|
| 128 | + $arbre['erreur'][] = _T('erreur_plugin_nom_fonction_interdit')." : $action"; |
|
| 129 | 129 | } |
| 130 | 130 | if (isset($pipe['inclure'])) { |
| 131 | - $inclure = $dir_plugins . "$plug/" . $pipe['inclure']; |
|
| 131 | + $inclure = $dir_plugins."$plug/".$pipe['inclure']; |
|
| 132 | 132 | if (!@is_readable($inclure) && !$silence) { |
| 133 | - $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $inclure"; |
|
| 133 | + $arbre['erreur'][] = _T('erreur_plugin_fichier_absent')." : $inclure"; |
|
| 134 | 134 | } |
| 135 | 135 | } |
| 136 | 136 | } |
@@ -199,8 +199,8 @@ discard block |
||
| 199 | 199 | foreach ($arbre['noisette'] as $k => $nut) { |
| 200 | 200 | $nut = preg_replace(',[.]html$,uims', '', trim($nut)); |
| 201 | 201 | $arbre['noisette'][$k] = $nut; |
| 202 | - if (!@is_readable($dir_plugins . "$plug/$nut.html") && !$silence) { |
|
| 203 | - $arbre['erreur'][] = _T('erreur_plugin_fichier_absent') . " : $nut"; |
|
| 202 | + if (!@is_readable($dir_plugins."$plug/$nut.html") && !$silence) { |
|
| 203 | + $arbre['erreur'][] = _T('erreur_plugin_fichier_absent')." : $nut"; |
|
| 204 | 204 | } |
| 205 | 205 | } |
| 206 | 206 | } |
@@ -10,59 +10,59 @@ |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | include_spip('inc/charsets'); |
| 16 | 16 | include_spip('inc/texte'); |
| 17 | 17 | include_spip('plugins/afficher_plugin'); |
| 18 | 18 | |
| 19 | 19 | function plugins_afficher_nom_plugin_dist( |
| 20 | - $url_page, |
|
| 21 | - $plug_file, |
|
| 22 | - $checked, |
|
| 23 | - $actif, |
|
| 24 | - $expose = false, |
|
| 25 | - $class_li = 'item', |
|
| 26 | - $dir_plugins = _DIR_PLUGINS |
|
| 20 | + $url_page, |
|
| 21 | + $plug_file, |
|
| 22 | + $checked, |
|
| 23 | + $actif, |
|
| 24 | + $expose = false, |
|
| 25 | + $class_li = 'item', |
|
| 26 | + $dir_plugins = _DIR_PLUGINS |
|
| 27 | 27 | ) { |
| 28 | - static $id_input = 0; |
|
| 29 | - static $versions = []; |
|
| 28 | + static $id_input = 0; |
|
| 29 | + static $versions = []; |
|
| 30 | 30 | |
| 31 | - $erreur = false; |
|
| 32 | - $s = ''; |
|
| 31 | + $erreur = false; |
|
| 32 | + $s = ''; |
|
| 33 | 33 | |
| 34 | - $get_infos = charger_fonction('get_infos', 'plugins'); |
|
| 35 | - $info = $get_infos($plug_file, false, $dir_plugins); |
|
| 34 | + $get_infos = charger_fonction('get_infos', 'plugins'); |
|
| 35 | + $info = $get_infos($plug_file, false, $dir_plugins); |
|
| 36 | 36 | |
| 37 | - // numerotons les occurences d'un meme prefix |
|
| 38 | - $versions[$info['prefix']] = isset($versions[$info['prefix']]) ? $versions[$info['prefix']] + 1 : ''; |
|
| 39 | - $id = $info['prefix'] . $versions[$info['prefix']]; |
|
| 37 | + // numerotons les occurences d'un meme prefix |
|
| 38 | + $versions[$info['prefix']] = isset($versions[$info['prefix']]) ? $versions[$info['prefix']] + 1 : ''; |
|
| 39 | + $id = $info['prefix'] . $versions[$info['prefix']]; |
|
| 40 | 40 | |
| 41 | - $class = $class_li; |
|
| 42 | - $class .= $actif ? ' actif' : ''; |
|
| 43 | - $class .= $expose ? ' on' : ''; |
|
| 44 | - $erreur = isset($info['erreur']); |
|
| 45 | - if ($erreur) { |
|
| 46 | - $class .= ' error'; |
|
| 47 | - } |
|
| 48 | - $s .= "<li id='$id' class='$class'>"; |
|
| 41 | + $class = $class_li; |
|
| 42 | + $class .= $actif ? ' actif' : ''; |
|
| 43 | + $class .= $expose ? ' on' : ''; |
|
| 44 | + $erreur = isset($info['erreur']); |
|
| 45 | + if ($erreur) { |
|
| 46 | + $class .= ' error'; |
|
| 47 | + } |
|
| 48 | + $s .= "<li id='$id' class='$class'>"; |
|
| 49 | 49 | |
| 50 | - // Cartouche Resume |
|
| 51 | - $s .= "<div class='resume'>"; |
|
| 50 | + // Cartouche Resume |
|
| 51 | + $s .= "<div class='resume'>"; |
|
| 52 | 52 | |
| 53 | - $prefix = $info['prefix']; |
|
| 54 | - $dir = "$dir_plugins$plug_file/lang/$prefix"; |
|
| 55 | - $desc = plugin_propre($info['description'], $dir); |
|
| 56 | - $url_stat = parametre_url($url_page, 'plugin', $dir_plugins . $plug_file); |
|
| 53 | + $prefix = $info['prefix']; |
|
| 54 | + $dir = "$dir_plugins$plug_file/lang/$prefix"; |
|
| 55 | + $desc = plugin_propre($info['description'], $dir); |
|
| 56 | + $url_stat = parametre_url($url_page, 'plugin', $dir_plugins . $plug_file); |
|
| 57 | 57 | |
| 58 | - $s .= "<strong class='nom'>" . typo($info['nom']) . '</strong>'; |
|
| 59 | - $s .= " <span class='version'>" . $info['version'] . '</span>'; |
|
| 60 | - $s .= " <span class='etat'> - " . plugin_etat_en_clair($info['etat']) . '</span>'; |
|
| 61 | - $s .= '</div>'; |
|
| 58 | + $s .= "<strong class='nom'>" . typo($info['nom']) . '</strong>'; |
|
| 59 | + $s .= " <span class='version'>" . $info['version'] . '</span>'; |
|
| 60 | + $s .= " <span class='etat'> - " . plugin_etat_en_clair($info['etat']) . '</span>'; |
|
| 61 | + $s .= '</div>'; |
|
| 62 | 62 | |
| 63 | - if ($erreur) { |
|
| 64 | - $s .= "<div class='erreur'>" . implode('<br >', $info['erreur']) . '</div>'; |
|
| 65 | - } |
|
| 63 | + if ($erreur) { |
|
| 64 | + $s .= "<div class='erreur'>" . implode('<br >', $info['erreur']) . '</div>'; |
|
| 65 | + } |
|
| 66 | 66 | |
| 67 | - return $s . '</li>'; |
|
| 67 | + return $s . '</li>'; |
|
| 68 | 68 | } |
@@ -36,7 +36,7 @@ discard block |
||
| 36 | 36 | |
| 37 | 37 | // numerotons les occurences d'un meme prefix |
| 38 | 38 | $versions[$info['prefix']] = isset($versions[$info['prefix']]) ? $versions[$info['prefix']] + 1 : ''; |
| 39 | - $id = $info['prefix'] . $versions[$info['prefix']]; |
|
| 39 | + $id = $info['prefix'].$versions[$info['prefix']]; |
|
| 40 | 40 | |
| 41 | 41 | $class = $class_li; |
| 42 | 42 | $class .= $actif ? ' actif' : ''; |
@@ -53,16 +53,16 @@ discard block |
||
| 53 | 53 | $prefix = $info['prefix']; |
| 54 | 54 | $dir = "$dir_plugins$plug_file/lang/$prefix"; |
| 55 | 55 | $desc = plugin_propre($info['description'], $dir); |
| 56 | - $url_stat = parametre_url($url_page, 'plugin', $dir_plugins . $plug_file); |
|
| 56 | + $url_stat = parametre_url($url_page, 'plugin', $dir_plugins.$plug_file); |
|
| 57 | 57 | |
| 58 | - $s .= "<strong class='nom'>" . typo($info['nom']) . '</strong>'; |
|
| 59 | - $s .= " <span class='version'>" . $info['version'] . '</span>'; |
|
| 60 | - $s .= " <span class='etat'> - " . plugin_etat_en_clair($info['etat']) . '</span>'; |
|
| 58 | + $s .= "<strong class='nom'>".typo($info['nom']).'</strong>'; |
|
| 59 | + $s .= " <span class='version'>".$info['version'].'</span>'; |
|
| 60 | + $s .= " <span class='etat'> - ".plugin_etat_en_clair($info['etat']).'</span>'; |
|
| 61 | 61 | $s .= '</div>'; |
| 62 | 62 | |
| 63 | 63 | if ($erreur) { |
| 64 | - $s .= "<div class='erreur'>" . implode('<br >', $info['erreur']) . '</div>'; |
|
| 64 | + $s .= "<div class='erreur'>".implode('<br >', $info['erreur']).'</div>'; |
|
| 65 | 65 | } |
| 66 | 66 | |
| 67 | - return $s . '</li>'; |
|
| 67 | + return $s.'</li>'; |
|
| 68 | 68 | } |
@@ -15,11 +15,11 @@ discard block |
||
| 15 | 15 | * Test utilisateur |
| 16 | 16 | */ |
| 17 | 17 | if (isset($_GET['test_ecran_securite'])) { |
| 18 | - $ecran_securite_raison = 'test ' . _ECRAN_SECURITE; |
|
| 18 | + $ecran_securite_raison = 'test ' . _ECRAN_SECURITE; |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | if (file_exists($f = __DIR__ . DIRECTORY_SEPARATOR . 'ecran_securite_options.php')) { |
| 22 | - include ($f); |
|
| 22 | + include ($f); |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | /* |
@@ -29,222 +29,222 @@ discard block |
||
| 29 | 29 | * le load depasse ECRAN_SECURITE_LOAD) |
| 30 | 30 | */ |
| 31 | 31 | if (!defined('_IS_BOT') and isset($_GET['var_isbot'])) { |
| 32 | - define('_IS_BOT', $_GET['var_isbot'] ? true : false); |
|
| 32 | + define('_IS_BOT', $_GET['var_isbot'] ? true : false); |
|
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | /* |
| 36 | 36 | * Détecteur de robot d'indexation |
| 37 | 37 | */ |
| 38 | 38 | if (!defined('_IS_BOT')) { |
| 39 | - define( |
|
| 40 | - '_IS_BOT', |
|
| 41 | - isset($_SERVER['HTTP_USER_AGENT']) |
|
| 42 | - and preg_match( |
|
| 43 | - ',' |
|
| 44 | - . implode('|', array( |
|
| 45 | - // mots generiques |
|
| 46 | - 'bot', |
|
| 47 | - 'slurp', |
|
| 48 | - 'crawler', |
|
| 49 | - 'crwlr', |
|
| 50 | - 'java', |
|
| 51 | - 'monitoring', |
|
| 52 | - 'spider', |
|
| 53 | - 'webvac', |
|
| 54 | - 'yandex', |
|
| 55 | - 'MSIE 6\.0', // botnet 99,9% du temps |
|
| 56 | - // UA plus cibles |
|
| 57 | - '200please', |
|
| 58 | - '80legs', |
|
| 59 | - 'a6-indexer', |
|
| 60 | - 'aboundex', |
|
| 61 | - 'accoona', |
|
| 62 | - 'acrylicapps', |
|
| 63 | - 'addthis', |
|
| 64 | - 'adressendeutschland', |
|
| 65 | - 'alexa', |
|
| 66 | - 'altavista', |
|
| 67 | - 'analyticsseo', |
|
| 68 | - 'antennapod', |
|
| 69 | - 'arachnys', |
|
| 70 | - 'archive', |
|
| 71 | - 'argclrint', |
|
| 72 | - 'aspseek', |
|
| 73 | - 'baidu', |
|
| 74 | - 'begunadvertising', |
|
| 75 | - 'bing', |
|
| 76 | - 'bloglines', |
|
| 77 | - 'buck', |
|
| 78 | - 'browsershots', |
|
| 79 | - 'bubing', |
|
| 80 | - 'butterfly', |
|
| 81 | - 'changedetection', |
|
| 82 | - 'charlotte', |
|
| 83 | - 'chilkat', |
|
| 84 | - 'china', |
|
| 85 | - 'coccoc', |
|
| 86 | - 'crowsnest', |
|
| 87 | - 'dataminr', |
|
| 88 | - 'daumoa', |
|
| 89 | - 'dlvr\.it', |
|
| 90 | - 'dlweb', |
|
| 91 | - 'drupal', |
|
| 92 | - 'ec2linkfinder', |
|
| 93 | - 'eset\.com', |
|
| 94 | - 'estyle', |
|
| 95 | - 'exalead', |
|
| 96 | - 'ezooms', |
|
| 97 | - 'facebookexternalhit', |
|
| 98 | - 'facebookplatform', |
|
| 99 | - 'fairshare', |
|
| 100 | - 'feedfetcher', |
|
| 101 | - 'feedfetcher-google', |
|
| 102 | - 'feedly', |
|
| 103 | - 'fetch', |
|
| 104 | - 'flipboardproxy', |
|
| 105 | - 'genieo', |
|
| 106 | - 'google', |
|
| 107 | - 'go-http-client', |
|
| 108 | - 'grapeshot', |
|
| 109 | - 'hatena-useragent', |
|
| 110 | - 'head', |
|
| 111 | - 'hosttracker', |
|
| 112 | - 'hubspot', |
|
| 113 | - 'ia_archiver', |
|
| 114 | - 'ichiro', |
|
| 115 | - 'iltrovatore-setaccio', |
|
| 116 | - 'immediatenet', |
|
| 117 | - 'ina', |
|
| 118 | - 'inoreader', |
|
| 119 | - 'infegyatlas', |
|
| 120 | - 'infohelfer', |
|
| 121 | - 'instapaper', |
|
| 122 | - 'jabse', |
|
| 123 | - 'james', |
|
| 124 | - 'jersey', |
|
| 125 | - 'kumkie', |
|
| 126 | - 'linkdex', |
|
| 127 | - 'linkfluence', |
|
| 128 | - 'linkwalker', |
|
| 129 | - 'litefinder', |
|
| 130 | - 'loadimpactpageanalyzer', |
|
| 131 | - 'ltx71', |
|
| 132 | - 'luminate', |
|
| 133 | - 'lycos', |
|
| 134 | - 'lycosa', |
|
| 135 | - 'mediapartners-google', |
|
| 136 | - 'msai', |
|
| 137 | - 'myapp', |
|
| 138 | - 'nativehost', |
|
| 139 | - 'najdi', |
|
| 140 | - 'netcraftsurveyagent', |
|
| 141 | - 'netestate', |
|
| 142 | - 'netseer', |
|
| 143 | - 'netnewswire', |
|
| 144 | - 'newspaper', |
|
| 145 | - 'newsblur', |
|
| 146 | - 'nuhk', |
|
| 147 | - 'nuzzel', |
|
| 148 | - 'okhttp', |
|
| 149 | - 'otmedia', |
|
| 150 | - 'owlin', |
|
| 151 | - 'owncloud', |
|
| 152 | - 'panscient', |
|
| 153 | - 'paper\.li', |
|
| 154 | - 'parsijoo', |
|
| 155 | - 'protopage', |
|
| 156 | - 'plukkie', |
|
| 157 | - 'proximic', |
|
| 158 | - 'pubsub', |
|
| 159 | - 'python', |
|
| 160 | - 'qirina', |
|
| 161 | - 'qoshe', |
|
| 162 | - 'qualidator', |
|
| 163 | - 'qwantify', |
|
| 164 | - 'rambler', |
|
| 165 | - 'readability', |
|
| 166 | - 'ruby', |
|
| 167 | - 'sbsearch', |
|
| 168 | - 'scoop\.it', |
|
| 169 | - 'scooter', |
|
| 170 | - 'scoutjet', |
|
| 171 | - 'scrapy', |
|
| 172 | - 'scrubby', |
|
| 173 | - 'scrubbybloglines', |
|
| 174 | - 'shareaholic', |
|
| 175 | - 'shopwiki', |
|
| 176 | - 'simplepie', |
|
| 177 | - 'sistrix', |
|
| 178 | - 'sitechecker', |
|
| 179 | - 'siteexplorer', |
|
| 180 | - 'snapshot', |
|
| 181 | - 'sogou', |
|
| 182 | - 'special_archiver', |
|
| 183 | - 'speedy', |
|
| 184 | - 'spinn3r', |
|
| 185 | - 'spreadtrum', |
|
| 186 | - 'steeler', |
|
| 187 | - 'subscriber', |
|
| 188 | - 'suma', |
|
| 189 | - 'superdownloads', |
|
| 190 | - 'svenska-webbsido', |
|
| 191 | - 'teoma', |
|
| 192 | - 'the knowledge AI', |
|
| 193 | - 'thumbshots', |
|
| 194 | - 'tineye', |
|
| 195 | - 'traackr', |
|
| 196 | - 'trendiction', |
|
| 197 | - 'trendsmap', |
|
| 198 | - 'tweetedtimes', |
|
| 199 | - 'tweetmeme', |
|
| 200 | - 'universalfeedparser', |
|
| 201 | - 'uaslinkchecker', |
|
| 202 | - 'undrip', |
|
| 203 | - 'unwindfetchor', |
|
| 204 | - 'upday', |
|
| 205 | - 'vedma', |
|
| 206 | - 'vkshare', |
|
| 207 | - 'vm', |
|
| 208 | - 'wch', |
|
| 209 | - 'webalta', |
|
| 210 | - 'webcookies', |
|
| 211 | - 'webparser', |
|
| 212 | - 'webthumbnail', |
|
| 213 | - 'wesee', |
|
| 214 | - 'wise-guys', |
|
| 215 | - 'woko', |
|
| 216 | - 'wordpress', |
|
| 217 | - 'wotbox', |
|
| 218 | - 'y!j-bri', |
|
| 219 | - 'y!j-bro', |
|
| 220 | - 'y!j-brw', |
|
| 221 | - 'y!j-bsc', |
|
| 222 | - 'yahoo', |
|
| 223 | - 'yahoo!', |
|
| 224 | - 'yahooysmcm', |
|
| 225 | - 'ymobactus', |
|
| 226 | - 'yats', |
|
| 227 | - 'yeti', |
|
| 228 | - 'zeerch' |
|
| 229 | - )) . ',i', |
|
| 230 | - (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 231 | - ) |
|
| 232 | - ); |
|
| 39 | + define( |
|
| 40 | + '_IS_BOT', |
|
| 41 | + isset($_SERVER['HTTP_USER_AGENT']) |
|
| 42 | + and preg_match( |
|
| 43 | + ',' |
|
| 44 | + . implode('|', array( |
|
| 45 | + // mots generiques |
|
| 46 | + 'bot', |
|
| 47 | + 'slurp', |
|
| 48 | + 'crawler', |
|
| 49 | + 'crwlr', |
|
| 50 | + 'java', |
|
| 51 | + 'monitoring', |
|
| 52 | + 'spider', |
|
| 53 | + 'webvac', |
|
| 54 | + 'yandex', |
|
| 55 | + 'MSIE 6\.0', // botnet 99,9% du temps |
|
| 56 | + // UA plus cibles |
|
| 57 | + '200please', |
|
| 58 | + '80legs', |
|
| 59 | + 'a6-indexer', |
|
| 60 | + 'aboundex', |
|
| 61 | + 'accoona', |
|
| 62 | + 'acrylicapps', |
|
| 63 | + 'addthis', |
|
| 64 | + 'adressendeutschland', |
|
| 65 | + 'alexa', |
|
| 66 | + 'altavista', |
|
| 67 | + 'analyticsseo', |
|
| 68 | + 'antennapod', |
|
| 69 | + 'arachnys', |
|
| 70 | + 'archive', |
|
| 71 | + 'argclrint', |
|
| 72 | + 'aspseek', |
|
| 73 | + 'baidu', |
|
| 74 | + 'begunadvertising', |
|
| 75 | + 'bing', |
|
| 76 | + 'bloglines', |
|
| 77 | + 'buck', |
|
| 78 | + 'browsershots', |
|
| 79 | + 'bubing', |
|
| 80 | + 'butterfly', |
|
| 81 | + 'changedetection', |
|
| 82 | + 'charlotte', |
|
| 83 | + 'chilkat', |
|
| 84 | + 'china', |
|
| 85 | + 'coccoc', |
|
| 86 | + 'crowsnest', |
|
| 87 | + 'dataminr', |
|
| 88 | + 'daumoa', |
|
| 89 | + 'dlvr\.it', |
|
| 90 | + 'dlweb', |
|
| 91 | + 'drupal', |
|
| 92 | + 'ec2linkfinder', |
|
| 93 | + 'eset\.com', |
|
| 94 | + 'estyle', |
|
| 95 | + 'exalead', |
|
| 96 | + 'ezooms', |
|
| 97 | + 'facebookexternalhit', |
|
| 98 | + 'facebookplatform', |
|
| 99 | + 'fairshare', |
|
| 100 | + 'feedfetcher', |
|
| 101 | + 'feedfetcher-google', |
|
| 102 | + 'feedly', |
|
| 103 | + 'fetch', |
|
| 104 | + 'flipboardproxy', |
|
| 105 | + 'genieo', |
|
| 106 | + 'google', |
|
| 107 | + 'go-http-client', |
|
| 108 | + 'grapeshot', |
|
| 109 | + 'hatena-useragent', |
|
| 110 | + 'head', |
|
| 111 | + 'hosttracker', |
|
| 112 | + 'hubspot', |
|
| 113 | + 'ia_archiver', |
|
| 114 | + 'ichiro', |
|
| 115 | + 'iltrovatore-setaccio', |
|
| 116 | + 'immediatenet', |
|
| 117 | + 'ina', |
|
| 118 | + 'inoreader', |
|
| 119 | + 'infegyatlas', |
|
| 120 | + 'infohelfer', |
|
| 121 | + 'instapaper', |
|
| 122 | + 'jabse', |
|
| 123 | + 'james', |
|
| 124 | + 'jersey', |
|
| 125 | + 'kumkie', |
|
| 126 | + 'linkdex', |
|
| 127 | + 'linkfluence', |
|
| 128 | + 'linkwalker', |
|
| 129 | + 'litefinder', |
|
| 130 | + 'loadimpactpageanalyzer', |
|
| 131 | + 'ltx71', |
|
| 132 | + 'luminate', |
|
| 133 | + 'lycos', |
|
| 134 | + 'lycosa', |
|
| 135 | + 'mediapartners-google', |
|
| 136 | + 'msai', |
|
| 137 | + 'myapp', |
|
| 138 | + 'nativehost', |
|
| 139 | + 'najdi', |
|
| 140 | + 'netcraftsurveyagent', |
|
| 141 | + 'netestate', |
|
| 142 | + 'netseer', |
|
| 143 | + 'netnewswire', |
|
| 144 | + 'newspaper', |
|
| 145 | + 'newsblur', |
|
| 146 | + 'nuhk', |
|
| 147 | + 'nuzzel', |
|
| 148 | + 'okhttp', |
|
| 149 | + 'otmedia', |
|
| 150 | + 'owlin', |
|
| 151 | + 'owncloud', |
|
| 152 | + 'panscient', |
|
| 153 | + 'paper\.li', |
|
| 154 | + 'parsijoo', |
|
| 155 | + 'protopage', |
|
| 156 | + 'plukkie', |
|
| 157 | + 'proximic', |
|
| 158 | + 'pubsub', |
|
| 159 | + 'python', |
|
| 160 | + 'qirina', |
|
| 161 | + 'qoshe', |
|
| 162 | + 'qualidator', |
|
| 163 | + 'qwantify', |
|
| 164 | + 'rambler', |
|
| 165 | + 'readability', |
|
| 166 | + 'ruby', |
|
| 167 | + 'sbsearch', |
|
| 168 | + 'scoop\.it', |
|
| 169 | + 'scooter', |
|
| 170 | + 'scoutjet', |
|
| 171 | + 'scrapy', |
|
| 172 | + 'scrubby', |
|
| 173 | + 'scrubbybloglines', |
|
| 174 | + 'shareaholic', |
|
| 175 | + 'shopwiki', |
|
| 176 | + 'simplepie', |
|
| 177 | + 'sistrix', |
|
| 178 | + 'sitechecker', |
|
| 179 | + 'siteexplorer', |
|
| 180 | + 'snapshot', |
|
| 181 | + 'sogou', |
|
| 182 | + 'special_archiver', |
|
| 183 | + 'speedy', |
|
| 184 | + 'spinn3r', |
|
| 185 | + 'spreadtrum', |
|
| 186 | + 'steeler', |
|
| 187 | + 'subscriber', |
|
| 188 | + 'suma', |
|
| 189 | + 'superdownloads', |
|
| 190 | + 'svenska-webbsido', |
|
| 191 | + 'teoma', |
|
| 192 | + 'the knowledge AI', |
|
| 193 | + 'thumbshots', |
|
| 194 | + 'tineye', |
|
| 195 | + 'traackr', |
|
| 196 | + 'trendiction', |
|
| 197 | + 'trendsmap', |
|
| 198 | + 'tweetedtimes', |
|
| 199 | + 'tweetmeme', |
|
| 200 | + 'universalfeedparser', |
|
| 201 | + 'uaslinkchecker', |
|
| 202 | + 'undrip', |
|
| 203 | + 'unwindfetchor', |
|
| 204 | + 'upday', |
|
| 205 | + 'vedma', |
|
| 206 | + 'vkshare', |
|
| 207 | + 'vm', |
|
| 208 | + 'wch', |
|
| 209 | + 'webalta', |
|
| 210 | + 'webcookies', |
|
| 211 | + 'webparser', |
|
| 212 | + 'webthumbnail', |
|
| 213 | + 'wesee', |
|
| 214 | + 'wise-guys', |
|
| 215 | + 'woko', |
|
| 216 | + 'wordpress', |
|
| 217 | + 'wotbox', |
|
| 218 | + 'y!j-bri', |
|
| 219 | + 'y!j-bro', |
|
| 220 | + 'y!j-brw', |
|
| 221 | + 'y!j-bsc', |
|
| 222 | + 'yahoo', |
|
| 223 | + 'yahoo!', |
|
| 224 | + 'yahooysmcm', |
|
| 225 | + 'ymobactus', |
|
| 226 | + 'yats', |
|
| 227 | + 'yeti', |
|
| 228 | + 'zeerch' |
|
| 229 | + )) . ',i', |
|
| 230 | + (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 231 | + ) |
|
| 232 | + ); |
|
| 233 | 233 | } |
| 234 | 234 | if (!defined('_IS_BOT_FRIEND')) { |
| 235 | - define( |
|
| 236 | - '_IS_BOT_FRIEND', |
|
| 237 | - isset($_SERVER['HTTP_USER_AGENT']) |
|
| 238 | - and preg_match( |
|
| 239 | - ',' . implode('|', array( |
|
| 240 | - 'facebookexternalhit', |
|
| 241 | - 'twitterbot', |
|
| 242 | - 'flipboardproxy', |
|
| 243 | - 'wordpress' |
|
| 244 | - )) . ',i', |
|
| 245 | - (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 246 | - ) |
|
| 247 | - ); |
|
| 235 | + define( |
|
| 236 | + '_IS_BOT_FRIEND', |
|
| 237 | + isset($_SERVER['HTTP_USER_AGENT']) |
|
| 238 | + and preg_match( |
|
| 239 | + ',' . implode('|', array( |
|
| 240 | + 'facebookexternalhit', |
|
| 241 | + 'twitterbot', |
|
| 242 | + 'flipboardproxy', |
|
| 243 | + 'wordpress' |
|
| 244 | + )) . ',i', |
|
| 245 | + (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 246 | + ) |
|
| 247 | + ); |
|
| 248 | 248 | } |
| 249 | 249 | |
| 250 | 250 | /* |
@@ -256,28 +256,28 @@ discard block |
||
| 256 | 256 | */ |
| 257 | 257 | $_exceptions = array('id_table', 'id_base', 'id_parent', 'id_article_pdf'); |
| 258 | 258 | foreach ($_GET as $var => $val) { |
| 259 | - if ( |
|
| 260 | - $_GET[$var] and strncmp($var, "id_", 3) == 0 |
|
| 261 | - and !in_array($var, $_exceptions) |
|
| 262 | - ) { |
|
| 263 | - $_GET[$var] = is_array($_GET[$var]) ? @array_map('intval', $_GET[$var]) : intval($_GET[$var]); |
|
| 264 | - } |
|
| 259 | + if ( |
|
| 260 | + $_GET[$var] and strncmp($var, "id_", 3) == 0 |
|
| 261 | + and !in_array($var, $_exceptions) |
|
| 262 | + ) { |
|
| 263 | + $_GET[$var] = is_array($_GET[$var]) ? @array_map('intval', $_GET[$var]) : intval($_GET[$var]); |
|
| 264 | + } |
|
| 265 | 265 | } |
| 266 | 266 | foreach ($_POST as $var => $val) { |
| 267 | - if ( |
|
| 268 | - $_POST[$var] and strncmp($var, "id_", 3) == 0 |
|
| 269 | - and !in_array($var, $_exceptions) |
|
| 270 | - ) { |
|
| 271 | - $_POST[$var] = is_array($_POST[$var]) ? @array_map('intval', $_POST[$var]) : intval($_POST[$var]); |
|
| 272 | - } |
|
| 267 | + if ( |
|
| 268 | + $_POST[$var] and strncmp($var, "id_", 3) == 0 |
|
| 269 | + and !in_array($var, $_exceptions) |
|
| 270 | + ) { |
|
| 271 | + $_POST[$var] = is_array($_POST[$var]) ? @array_map('intval', $_POST[$var]) : intval($_POST[$var]); |
|
| 272 | + } |
|
| 273 | 273 | } |
| 274 | 274 | foreach ($GLOBALS as $var => $val) { |
| 275 | - if ( |
|
| 276 | - $GLOBALS[$var] and strncmp($var, "id_", 3) == 0 |
|
| 277 | - and !in_array($var, $_exceptions) |
|
| 278 | - ) { |
|
| 279 | - $GLOBALS[$var] = is_array($GLOBALS[$var]) ? @array_map('intval', $GLOBALS[$var]) : intval($GLOBALS[$var]); |
|
| 280 | - } |
|
| 275 | + if ( |
|
| 276 | + $GLOBALS[$var] and strncmp($var, "id_", 3) == 0 |
|
| 277 | + and !in_array($var, $_exceptions) |
|
| 278 | + ) { |
|
| 279 | + $GLOBALS[$var] = is_array($GLOBALS[$var]) ? @array_map('intval', $GLOBALS[$var]) : intval($GLOBALS[$var]); |
|
| 280 | + } |
|
| 281 | 281 | } |
| 282 | 282 | |
| 283 | 283 | /* |
@@ -290,116 +290,116 @@ discard block |
||
| 290 | 290 | * Contrôle de quelques variables (XSS) |
| 291 | 291 | */ |
| 292 | 292 | foreach (array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) { |
| 293 | - if (isset($_GET[$var])) { |
|
| 294 | - $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]); |
|
| 295 | - } |
|
| 296 | - if (isset($_POST[$var])) { |
|
| 297 | - $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]); |
|
| 298 | - } |
|
| 293 | + if (isset($_GET[$var])) { |
|
| 294 | + $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]); |
|
| 295 | + } |
|
| 296 | + if (isset($_POST[$var])) { |
|
| 297 | + $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]); |
|
| 298 | + } |
|
| 299 | 299 | } |
| 300 | 300 | |
| 301 | 301 | /* |
| 302 | 302 | * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x) |
| 303 | 303 | */ |
| 304 | 304 | if (isset($_SERVER['REQUEST_URI'])) { |
| 305 | - if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) { |
|
| 306 | - $file = addslashes((string)$_GET['file']); |
|
| 307 | - } |
|
| 305 | + if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) { |
|
| 306 | + $file = addslashes((string)$_GET['file']); |
|
| 307 | + } |
|
| 308 | 308 | } |
| 309 | 309 | |
| 310 | 310 | /* |
| 311 | 311 | * Pas d'inscription abusive |
| 312 | 312 | */ |
| 313 | 313 | if ( |
| 314 | - isset($_REQUEST['mode']) and isset($_REQUEST['page']) |
|
| 315 | - and !in_array($_REQUEST['mode'], array("6forum", "1comite")) |
|
| 316 | - and $_REQUEST['page'] == "identifiants" |
|
| 314 | + isset($_REQUEST['mode']) and isset($_REQUEST['page']) |
|
| 315 | + and !in_array($_REQUEST['mode'], array("6forum", "1comite")) |
|
| 316 | + and $_REQUEST['page'] == "identifiants" |
|
| 317 | 317 | ) { |
| 318 | - $ecran_securite_raison = "identifiants"; |
|
| 318 | + $ecran_securite_raison = "identifiants"; |
|
| 319 | 319 | } |
| 320 | 320 | |
| 321 | 321 | /* |
| 322 | 322 | * Agenda joue à l'injection php |
| 323 | 323 | */ |
| 324 | 324 | if ( |
| 325 | - isset($_REQUEST['partie_cal']) |
|
| 326 | - and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal']) |
|
| 325 | + isset($_REQUEST['partie_cal']) |
|
| 326 | + and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal']) |
|
| 327 | 327 | ) { |
| 328 | - $ecran_securite_raison = "partie_cal"; |
|
| 328 | + $ecran_securite_raison = "partie_cal"; |
|
| 329 | 329 | } |
| 330 | 330 | if ( |
| 331 | - isset($_REQUEST['echelle']) |
|
| 332 | - and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle']) |
|
| 331 | + isset($_REQUEST['echelle']) |
|
| 332 | + and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle']) |
|
| 333 | 333 | ) { |
| 334 | - $ecran_securite_raison = "echelle"; |
|
| 334 | + $ecran_securite_raison = "echelle"; |
|
| 335 | 335 | } |
| 336 | 336 | |
| 337 | 337 | /* |
| 338 | 338 | * Espace privé |
| 339 | 339 | */ |
| 340 | 340 | if ( |
| 341 | - isset($_REQUEST['exec']) |
|
| 342 | - and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec']) |
|
| 341 | + isset($_REQUEST['exec']) |
|
| 342 | + and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec']) |
|
| 343 | 343 | ) { |
| 344 | - $ecran_securite_raison = "exec"; |
|
| 344 | + $ecran_securite_raison = "exec"; |
|
| 345 | 345 | } |
| 346 | 346 | if ( |
| 347 | - isset($_REQUEST['cherche_auteur']) |
|
| 348 | - and preg_match(',[<],', (string)$_REQUEST['cherche_auteur']) |
|
| 347 | + isset($_REQUEST['cherche_auteur']) |
|
| 348 | + and preg_match(',[<],', (string)$_REQUEST['cherche_auteur']) |
|
| 349 | 349 | ) { |
| 350 | - $ecran_securite_raison = "cherche_auteur"; |
|
| 350 | + $ecran_securite_raison = "cherche_auteur"; |
|
| 351 | 351 | } |
| 352 | 352 | if ( |
| 353 | - isset($_REQUEST['exec']) |
|
| 354 | - and $_REQUEST['exec'] == 'auteurs' |
|
| 355 | - and isset($_REQUEST['recherche']) |
|
| 356 | - and preg_match(',[<],', (string)$_REQUEST['recherche']) |
|
| 353 | + isset($_REQUEST['exec']) |
|
| 354 | + and $_REQUEST['exec'] == 'auteurs' |
|
| 355 | + and isset($_REQUEST['recherche']) |
|
| 356 | + and preg_match(',[<],', (string)$_REQUEST['recherche']) |
|
| 357 | 357 | ) { |
| 358 | - $ecran_securite_raison = "recherche"; |
|
| 358 | + $ecran_securite_raison = "recherche"; |
|
| 359 | 359 | } |
| 360 | 360 | if ( |
| 361 | - isset($_REQUEST['exec']) |
|
| 362 | - and $_REQUEST['exec'] == 'info_plugin' |
|
| 363 | - and isset($_REQUEST['plugin']) |
|
| 364 | - and preg_match(',[<],', (string)$_REQUEST['plugin']) |
|
| 361 | + isset($_REQUEST['exec']) |
|
| 362 | + and $_REQUEST['exec'] == 'info_plugin' |
|
| 363 | + and isset($_REQUEST['plugin']) |
|
| 364 | + and preg_match(',[<],', (string)$_REQUEST['plugin']) |
|
| 365 | 365 | ) { |
| 366 | - $ecran_securite_raison = "plugin"; |
|
| 366 | + $ecran_securite_raison = "plugin"; |
|
| 367 | 367 | } |
| 368 | 368 | if ( |
| 369 | - isset($_REQUEST['exec']) |
|
| 370 | - and $_REQUEST['exec'] == 'puce_statut' |
|
| 371 | - and isset($_REQUEST['id']) |
|
| 372 | - and !intval($_REQUEST['id']) |
|
| 369 | + isset($_REQUEST['exec']) |
|
| 370 | + and $_REQUEST['exec'] == 'puce_statut' |
|
| 371 | + and isset($_REQUEST['id']) |
|
| 372 | + and !intval($_REQUEST['id']) |
|
| 373 | 373 | ) { |
| 374 | - $ecran_securite_raison = "puce_statut"; |
|
| 374 | + $ecran_securite_raison = "puce_statut"; |
|
| 375 | 375 | } |
| 376 | 376 | if ( |
| 377 | - isset($_REQUEST['action']) |
|
| 378 | - and $_REQUEST['action'] == 'configurer' |
|
| 377 | + isset($_REQUEST['action']) |
|
| 378 | + and $_REQUEST['action'] == 'configurer' |
|
| 379 | 379 | ) { |
| 380 | - if ( |
|
| 381 | - @file_exists('inc_version.php') |
|
| 382 | - or @file_exists('ecrire/inc_version.php') |
|
| 383 | - ) { |
|
| 384 | - function action_configurer() { |
|
| 385 | - include_spip('inc/autoriser'); |
|
| 386 | - if (!autoriser('configurer', _request('configuration'))) { |
|
| 387 | - include_spip('inc/minipres'); |
|
| 388 | - echo minipres(_T('info_acces_interdit')); |
|
| 389 | - exit; |
|
| 390 | - } |
|
| 391 | - require _DIR_RESTREINT . 'action/configurer.php'; |
|
| 392 | - action_configurer_dist(); |
|
| 393 | - } |
|
| 394 | - } |
|
| 380 | + if ( |
|
| 381 | + @file_exists('inc_version.php') |
|
| 382 | + or @file_exists('ecrire/inc_version.php') |
|
| 383 | + ) { |
|
| 384 | + function action_configurer() { |
|
| 385 | + include_spip('inc/autoriser'); |
|
| 386 | + if (!autoriser('configurer', _request('configuration'))) { |
|
| 387 | + include_spip('inc/minipres'); |
|
| 388 | + echo minipres(_T('info_acces_interdit')); |
|
| 389 | + exit; |
|
| 390 | + } |
|
| 391 | + require _DIR_RESTREINT . 'action/configurer.php'; |
|
| 392 | + action_configurer_dist(); |
|
| 393 | + } |
|
| 394 | + } |
|
| 395 | 395 | } |
| 396 | 396 | if ( |
| 397 | - isset($_REQUEST['action']) |
|
| 398 | - and $_REQUEST['action'] == 'ordonner_liens_documents' |
|
| 399 | - and isset($_REQUEST['ordre']) |
|
| 400 | - and is_string($_REQUEST['ordre']) |
|
| 397 | + isset($_REQUEST['action']) |
|
| 398 | + and $_REQUEST['action'] == 'ordonner_liens_documents' |
|
| 399 | + and isset($_REQUEST['ordre']) |
|
| 400 | + and is_string($_REQUEST['ordre']) |
|
| 401 | 401 | ) { |
| 402 | - $ecran_securite_raison = "ordre a la chaine"; |
|
| 402 | + $ecran_securite_raison = "ordre a la chaine"; |
|
| 403 | 403 | } |
| 404 | 404 | |
| 405 | 405 | |
@@ -407,29 +407,29 @@ discard block |
||
| 407 | 407 | * Bloque les requêtes contenant %00 (manipulation d'include) |
| 408 | 408 | */ |
| 409 | 409 | if (strpos( |
| 410 | - (function_exists('get_magic_quotes_gpc') and @get_magic_quotes_gpc()) |
|
| 411 | - ? stripslashes(serialize($_REQUEST)) |
|
| 412 | - : serialize($_REQUEST), |
|
| 413 | - chr(0) |
|
| 410 | + (function_exists('get_magic_quotes_gpc') and @get_magic_quotes_gpc()) |
|
| 411 | + ? stripslashes(serialize($_REQUEST)) |
|
| 412 | + : serialize($_REQUEST), |
|
| 413 | + chr(0) |
|
| 414 | 414 | ) !== false) { |
| 415 | - $ecran_securite_raison = "%00"; |
|
| 415 | + $ecran_securite_raison = "%00"; |
|
| 416 | 416 | } |
| 417 | 417 | |
| 418 | 418 | /* |
| 419 | 419 | * Bloque les requêtes fond=formulaire_ |
| 420 | 420 | */ |
| 421 | 421 | if ( |
| 422 | - isset($_REQUEST['fond']) |
|
| 423 | - and preg_match(',^formulaire_,i', $_REQUEST['fond']) |
|
| 422 | + isset($_REQUEST['fond']) |
|
| 423 | + and preg_match(',^formulaire_,i', $_REQUEST['fond']) |
|
| 424 | 424 | ) { |
| 425 | - $ecran_securite_raison = "fond=formulaire_"; |
|
| 425 | + $ecran_securite_raison = "fond=formulaire_"; |
|
| 426 | 426 | } |
| 427 | 427 | |
| 428 | 428 | /* |
| 429 | 429 | * Bloque les requêtes du type ?GLOBALS[type_urls]=toto (bug vieux php) |
| 430 | 430 | */ |
| 431 | 431 | if (isset($_REQUEST['GLOBALS'])) { |
| 432 | - $ecran_securite_raison = "GLOBALS[GLOBALS]"; |
|
| 432 | + $ecran_securite_raison = "GLOBALS[GLOBALS]"; |
|
| 433 | 433 | } |
| 434 | 434 | |
| 435 | 435 | /* |
@@ -438,14 +438,14 @@ discard block |
||
| 438 | 438 | * les paginations entremélées |
| 439 | 439 | */ |
| 440 | 440 | if (_IS_BOT) { |
| 441 | - if ( |
|
| 442 | - (isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type'])) |
|
| 443 | - or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI'])) |
|
| 444 | - or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_')) |
|
| 445 | - or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI'])) |
|
| 446 | - ) { |
|
| 447 | - $ecran_securite_raison = "robot agenda/double pagination"; |
|
| 448 | - } |
|
| 441 | + if ( |
|
| 442 | + (isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type'])) |
|
| 443 | + or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI'])) |
|
| 444 | + or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_')) |
|
| 445 | + or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI'])) |
|
| 446 | + ) { |
|
| 447 | + $ecran_securite_raison = "robot agenda/double pagination"; |
|
| 448 | + } |
|
| 449 | 449 | } |
| 450 | 450 | |
| 451 | 451 | /* |
@@ -453,82 +453,82 @@ discard block |
||
| 453 | 453 | * Bloque un XSS sur une page inexistante |
| 454 | 454 | */ |
| 455 | 455 | if (isset($_REQUEST['page'])) { |
| 456 | - if ($_REQUEST['page'] == 'test_cfg') { |
|
| 457 | - $ecran_securite_raison = "test_cfg"; |
|
| 458 | - } |
|
| 459 | - if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) { |
|
| 460 | - $ecran_securite_raison = "xsspage"; |
|
| 461 | - } |
|
| 462 | - if ( |
|
| 463 | - $_REQUEST['page'] == '404' |
|
| 464 | - and isset($_REQUEST['erreur']) |
|
| 465 | - ) { |
|
| 466 | - $ecran_securite_raison = "xss404"; |
|
| 467 | - } |
|
| 456 | + if ($_REQUEST['page'] == 'test_cfg') { |
|
| 457 | + $ecran_securite_raison = "test_cfg"; |
|
| 458 | + } |
|
| 459 | + if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) { |
|
| 460 | + $ecran_securite_raison = "xsspage"; |
|
| 461 | + } |
|
| 462 | + if ( |
|
| 463 | + $_REQUEST['page'] == '404' |
|
| 464 | + and isset($_REQUEST['erreur']) |
|
| 465 | + ) { |
|
| 466 | + $ecran_securite_raison = "xss404"; |
|
| 467 | + } |
|
| 468 | 468 | } |
| 469 | 469 | |
| 470 | 470 | /* |
| 471 | 471 | * XSS par array |
| 472 | 472 | */ |
| 473 | 473 | foreach (array('var_login') as $var) { |
| 474 | - if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var])) { |
|
| 475 | - $ecran_securite_raison = "xss " . $var; |
|
| 476 | - } |
|
| 474 | + if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var])) { |
|
| 475 | + $ecran_securite_raison = "xss " . $var; |
|
| 476 | + } |
|
| 477 | 477 | } |
| 478 | 478 | |
| 479 | 479 | /* |
| 480 | 480 | * Parade antivirale contre un cheval de troie |
| 481 | 481 | */ |
| 482 | 482 | if (!function_exists('tmp_lkojfghx')) { |
| 483 | - function tmp_lkojfghx() {} |
|
| 484 | - function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) { |
|
| 485 | - // si jamais on est arrivé ici sur une erreur php |
|
| 486 | - // et qu'un autre gestionnaire d'erreur est défini, l'appeller |
|
| 487 | - if ($b && $GLOBALS['tmp_xhgfjokl']) { |
|
| 488 | - call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d); |
|
| 489 | - } |
|
| 490 | - } |
|
| 483 | + function tmp_lkojfghx() {} |
|
| 484 | + function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) { |
|
| 485 | + // si jamais on est arrivé ici sur une erreur php |
|
| 486 | + // et qu'un autre gestionnaire d'erreur est défini, l'appeller |
|
| 487 | + if ($b && $GLOBALS['tmp_xhgfjokl']) { |
|
| 488 | + call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d); |
|
| 489 | + } |
|
| 490 | + } |
|
| 491 | 491 | } |
| 492 | 492 | if (isset($_POST['tmp_lkojfghx3'])) { |
| 493 | - $ecran_securite_raison = "gumblar"; |
|
| 493 | + $ecran_securite_raison = "gumblar"; |
|
| 494 | 494 | } |
| 495 | 495 | |
| 496 | 496 | /* |
| 497 | 497 | * Outils XML mal sécurisés < 2.0.9 |
| 498 | 498 | */ |
| 499 | 499 | if (isset($_REQUEST['transformer_xml'])) { |
| 500 | - $ecran_securite_raison = "transformer_xml"; |
|
| 500 | + $ecran_securite_raison = "transformer_xml"; |
|
| 501 | 501 | } |
| 502 | 502 | |
| 503 | 503 | /* |
| 504 | 504 | * Outils XML mal sécurisés again |
| 505 | 505 | */ |
| 506 | 506 | if (isset($_REQUEST['var_url']) and $_REQUEST['var_url'] and isset($_REQUEST['exec']) and $_REQUEST['exec'] == 'valider_xml') { |
| 507 | - $url = trim($_REQUEST['var_url']); |
|
| 508 | - if ( |
|
| 509 | - strncmp($url, '/', 1) == 0 |
|
| 510 | - or (($p = strpos($url, '..')) !== false and strpos($url, '..', $p + 3) !== false) |
|
| 511 | - or (($p = strpos($url, '..')) !== false and strpos($url, 'IMG', $p + 3) !== false) |
|
| 512 | - or (strpos($url, '://') !== false or strpos($url, ':\\') !== false) |
|
| 513 | - ) { |
|
| 514 | - $ecran_securite_raison = 'URL interdite pour var_url'; |
|
| 515 | - } |
|
| 507 | + $url = trim($_REQUEST['var_url']); |
|
| 508 | + if ( |
|
| 509 | + strncmp($url, '/', 1) == 0 |
|
| 510 | + or (($p = strpos($url, '..')) !== false and strpos($url, '..', $p + 3) !== false) |
|
| 511 | + or (($p = strpos($url, '..')) !== false and strpos($url, 'IMG', $p + 3) !== false) |
|
| 512 | + or (strpos($url, '://') !== false or strpos($url, ':\\') !== false) |
|
| 513 | + ) { |
|
| 514 | + $ecran_securite_raison = 'URL interdite pour var_url'; |
|
| 515 | + } |
|
| 516 | 516 | } |
| 517 | 517 | |
| 518 | 518 | /* |
| 519 | 519 | * Sauvegarde mal securisée < 2.0.9 |
| 520 | 520 | */ |
| 521 | 521 | if ( |
| 522 | - isset($_REQUEST['nom_sauvegarde']) |
|
| 523 | - and strstr((string)$_REQUEST['nom_sauvegarde'], '/') |
|
| 522 | + isset($_REQUEST['nom_sauvegarde']) |
|
| 523 | + and strstr((string)$_REQUEST['nom_sauvegarde'], '/') |
|
| 524 | 524 | ) { |
| 525 | - $ecran_securite_raison = 'nom_sauvegarde manipulee'; |
|
| 525 | + $ecran_securite_raison = 'nom_sauvegarde manipulee'; |
|
| 526 | 526 | } |
| 527 | 527 | if ( |
| 528 | - isset($_REQUEST['znom_sauvegarde']) |
|
| 529 | - and strstr((string)$_REQUEST['znom_sauvegarde'], '/') |
|
| 528 | + isset($_REQUEST['znom_sauvegarde']) |
|
| 529 | + and strstr((string)$_REQUEST['znom_sauvegarde'], '/') |
|
| 530 | 530 | ) { |
| 531 | - $ecran_securite_raison = 'znom_sauvegarde manipulee'; |
|
| 531 | + $ecran_securite_raison = 'znom_sauvegarde manipulee'; |
|
| 532 | 532 | } |
| 533 | 533 | |
| 534 | 534 | |
@@ -537,57 +537,57 @@ discard block |
||
| 537 | 537 | * on vérifie 'page' pour ne pas bloquer ... drupal |
| 538 | 538 | */ |
| 539 | 539 | if ( |
| 540 | - isset($_REQUEST['op']) and isset($_REQUEST['page']) |
|
| 541 | - and $_REQUEST['op'] !== preg_replace('/[^\\-\w]/', '', $_REQUEST['op']) |
|
| 540 | + isset($_REQUEST['op']) and isset($_REQUEST['page']) |
|
| 541 | + and $_REQUEST['op'] !== preg_replace('/[^\\-\w]/', '', $_REQUEST['op']) |
|
| 542 | 542 | ) { |
| 543 | - $ecran_securite_raison = 'op'; |
|
| 543 | + $ecran_securite_raison = 'op'; |
|
| 544 | 544 | } |
| 545 | 545 | |
| 546 | 546 | /* |
| 547 | 547 | * Forms & Table ne se méfiait pas assez des uploads de fichiers |
| 548 | 548 | */ |
| 549 | 549 | if (count($_FILES)) { |
| 550 | - foreach ($_FILES as $k => $v) { |
|
| 551 | - if ( |
|
| 552 | - preg_match(',^fichier_\d+$,', $k) |
|
| 553 | - and preg_match(',\.php,i', $v['name']) |
|
| 554 | - ) { |
|
| 555 | - unset($_FILES[$k]); |
|
| 556 | - } |
|
| 557 | - } |
|
| 550 | + foreach ($_FILES as $k => $v) { |
|
| 551 | + if ( |
|
| 552 | + preg_match(',^fichier_\d+$,', $k) |
|
| 553 | + and preg_match(',\.php,i', $v['name']) |
|
| 554 | + ) { |
|
| 555 | + unset($_FILES[$k]); |
|
| 556 | + } |
|
| 557 | + } |
|
| 558 | 558 | } |
| 559 | 559 | /* |
| 560 | 560 | * et Contact trop laxiste avec une variable externe |
| 561 | 561 | * on bloque pas le post pour eviter de perdre des donnees mais on unset la variable et c'est tout |
| 562 | 562 | */ |
| 563 | 563 | if (isset($_REQUEST['pj_enregistrees_nom']) and $_REQUEST['pj_enregistrees_nom']) { |
| 564 | - unset($_REQUEST['pj_enregistrees_nom']); |
|
| 565 | - unset($_GET['pj_enregistrees_nom']); |
|
| 566 | - unset($_POST['pj_enregistrees_nom']); |
|
| 564 | + unset($_REQUEST['pj_enregistrees_nom']); |
|
| 565 | + unset($_GET['pj_enregistrees_nom']); |
|
| 566 | + unset($_POST['pj_enregistrees_nom']); |
|
| 567 | 567 | } |
| 568 | 568 | |
| 569 | 569 | /* |
| 570 | 570 | * reinstall=oui un peu trop permissif |
| 571 | 571 | */ |
| 572 | 572 | if ( |
| 573 | - isset($_REQUEST['reinstall']) |
|
| 574 | - and $_REQUEST['reinstall'] == 'oui' |
|
| 573 | + isset($_REQUEST['reinstall']) |
|
| 574 | + and $_REQUEST['reinstall'] == 'oui' |
|
| 575 | 575 | ) { |
| 576 | - $ecran_securite_raison = 'reinstall=oui'; |
|
| 576 | + $ecran_securite_raison = 'reinstall=oui'; |
|
| 577 | 577 | } |
| 578 | 578 | |
| 579 | 579 | /* |
| 580 | 580 | * Pas d'action pendant l'install |
| 581 | 581 | */ |
| 582 | 582 | if (isset($_REQUEST['exec']) and $_REQUEST['exec'] === 'install' and isset($_REQUEST['action'])) { |
| 583 | - $ecran_securite_raison = 'install&action impossibles'; |
|
| 583 | + $ecran_securite_raison = 'install&action impossibles'; |
|
| 584 | 584 | } |
| 585 | 585 | |
| 586 | 586 | /* |
| 587 | 587 | * Échappement xss referer |
| 588 | 588 | */ |
| 589 | 589 | if (isset($_SERVER['HTTP_REFERER'])) { |
| 590 | - $_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##'); |
|
| 590 | + $_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##'); |
|
| 591 | 591 | } |
| 592 | 592 | |
| 593 | 593 | |
@@ -595,7 +595,7 @@ discard block |
||
| 595 | 595 | * Echappement HTTP_X_FORWARDED_HOST |
| 596 | 596 | */ |
| 597 | 597 | if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
| 598 | - $_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________'); |
|
| 598 | + $_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________'); |
|
| 599 | 599 | } |
| 600 | 600 | |
| 601 | 601 | |
@@ -603,9 +603,9 @@ discard block |
||
| 603 | 603 | * Pas d'erreur dans l'erreur |
| 604 | 604 | */ |
| 605 | 605 | if (isset($_REQUEST['var_erreur']) and isset($_REQUEST['page']) and $_REQUEST['page'] === 'login') { |
| 606 | - if (strlen($_REQUEST['var_erreur']) !== strcspn($_REQUEST['var_erreur'], '<>')) { |
|
| 607 | - $ecran_securite_raison = 'var_erreur incorrecte'; |
|
| 608 | - } |
|
| 606 | + if (strlen($_REQUEST['var_erreur']) !== strcspn($_REQUEST['var_erreur'], '<>')) { |
|
| 607 | + $ecran_securite_raison = 'var_erreur incorrecte'; |
|
| 608 | + } |
|
| 609 | 609 | } |
| 610 | 610 | |
| 611 | 611 | |
@@ -613,30 +613,30 @@ discard block |
||
| 613 | 613 | * Réinjection des clés en html dans l'admin r19561 |
| 614 | 614 | */ |
| 615 | 615 | if ( |
| 616 | - (isset($_SERVER['REQUEST_URI']) and strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false) |
|
| 617 | - or isset($_REQUEST['var_memotri']) |
|
| 616 | + (isset($_SERVER['REQUEST_URI']) and strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false) |
|
| 617 | + or isset($_REQUEST['var_memotri']) |
|
| 618 | 618 | ) { |
| 619 | - $zzzz = implode("", array_keys($_REQUEST)); |
|
| 620 | - if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) { |
|
| 621 | - $ecran_securite_raison = 'Cle incorrecte en $_REQUEST'; |
|
| 622 | - } |
|
| 619 | + $zzzz = implode("", array_keys($_REQUEST)); |
|
| 620 | + if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) { |
|
| 621 | + $ecran_securite_raison = 'Cle incorrecte en $_REQUEST'; |
|
| 622 | + } |
|
| 623 | 623 | } |
| 624 | 624 | |
| 625 | 625 | /* |
| 626 | 626 | * Injection par connect |
| 627 | 627 | */ |
| 628 | 628 | if ( |
| 629 | - isset($_REQUEST['connect']) |
|
| 630 | - // cas qui permettent de sortir d'un commentaire PHP |
|
| 631 | - and ( |
|
| 632 | - strpos($_REQUEST['connect'], "?") !== false |
|
| 633 | - or strpos($_REQUEST['connect'], "<") !== false |
|
| 634 | - or strpos($_REQUEST['connect'], ">") !== false |
|
| 635 | - or strpos($_REQUEST['connect'], "\n") !== false |
|
| 636 | - or strpos($_REQUEST['connect'], "\r") !== false |
|
| 637 | - ) |
|
| 629 | + isset($_REQUEST['connect']) |
|
| 630 | + // cas qui permettent de sortir d'un commentaire PHP |
|
| 631 | + and ( |
|
| 632 | + strpos($_REQUEST['connect'], "?") !== false |
|
| 633 | + or strpos($_REQUEST['connect'], "<") !== false |
|
| 634 | + or strpos($_REQUEST['connect'], ">") !== false |
|
| 635 | + or strpos($_REQUEST['connect'], "\n") !== false |
|
| 636 | + or strpos($_REQUEST['connect'], "\r") !== false |
|
| 637 | + ) |
|
| 638 | 638 | ) { |
| 639 | - $ecran_securite_raison = "malformed connect argument"; |
|
| 639 | + $ecran_securite_raison = "malformed connect argument"; |
|
| 640 | 640 | } |
| 641 | 641 | |
| 642 | 642 | |
@@ -644,73 +644,73 @@ discard block |
||
| 644 | 644 | * _oups donc |
| 645 | 645 | */ |
| 646 | 646 | if ( |
| 647 | - isset($_REQUEST['_oups']) |
|
| 648 | - and base64_decode($_REQUEST['_oups'], true) === false) { |
|
| 649 | - $ecran_securite_raison = "malformed _oups argument"; |
|
| 647 | + isset($_REQUEST['_oups']) |
|
| 648 | + and base64_decode($_REQUEST['_oups'], true) === false) { |
|
| 649 | + $ecran_securite_raison = "malformed _oups argument"; |
|
| 650 | 650 | } |
| 651 | 651 | |
| 652 | 652 | if ( |
| 653 | - isset($_REQUEST['formulaire_action_args']) |
|
| 653 | + isset($_REQUEST['formulaire_action_args']) |
|
| 654 | 654 | ) { |
| 655 | - foreach ($_REQUEST as $k => $v) { |
|
| 656 | - if (is_string($v) |
|
| 657 | - and strpbrk($v, "&\"'<>") !== false |
|
| 658 | - and preg_match(',^[abis]:\d+[:;],', $v) |
|
| 659 | - and __ecran_test_if_serialized($v) |
|
| 660 | - ) { |
|
| 661 | - $_REQUEST[$k] = htmlspecialchars($v, ENT_QUOTES); |
|
| 662 | - if (isset($_POST[$k])) $_POST[$k] = $_REQUEST[$k]; |
|
| 663 | - if (isset($_GET[$k])) $_GET[$k] = $_REQUEST[$k]; |
|
| 664 | - } |
|
| 665 | - } |
|
| 655 | + foreach ($_REQUEST as $k => $v) { |
|
| 656 | + if (is_string($v) |
|
| 657 | + and strpbrk($v, "&\"'<>") !== false |
|
| 658 | + and preg_match(',^[abis]:\d+[:;],', $v) |
|
| 659 | + and __ecran_test_if_serialized($v) |
|
| 660 | + ) { |
|
| 661 | + $_REQUEST[$k] = htmlspecialchars($v, ENT_QUOTES); |
|
| 662 | + if (isset($_POST[$k])) $_POST[$k] = $_REQUEST[$k]; |
|
| 663 | + if (isset($_GET[$k])) $_GET[$k] = $_REQUEST[$k]; |
|
| 664 | + } |
|
| 665 | + } |
|
| 666 | 666 | } |
| 667 | 667 | /** |
| 668 | 668 | * Version simplifiée de https://developer.wordpress.org/reference/functions/is_serialized/ |
| 669 | 669 | */ |
| 670 | 670 | function __ecran_test_if_serialized($data) { |
| 671 | - $data = trim($data); |
|
| 672 | - if ('N;' === $data) {return true;} |
|
| 673 | - if (strlen($data) < 4) {return false;} |
|
| 674 | - if (':' !== $data[1]) {return false;} |
|
| 675 | - $semicolon = strpos($data, ';'); |
|
| 676 | - $brace = strpos($data, '}'); |
|
| 677 | - // Either ; or } must exist. |
|
| 678 | - if (false === $semicolon && false === $brace) {return false;} |
|
| 679 | - // But neither must be in the first X characters. |
|
| 680 | - if (false !== $semicolon && $semicolon < 3) {return false;} |
|
| 681 | - if (false !== $brace && $brace < 4) {return false;} |
|
| 682 | - $token = $data[0]; |
|
| 683 | - if (in_array($token, array('s', 'S'))) { |
|
| 684 | - if (false === strpos($data, '"')) {return false;} |
|
| 685 | - } elseif (in_array($token, array('a', 'O', 'C', 'o', 'E'))) { |
|
| 686 | - return (bool)preg_match("/^{$token}:[0-9]+:/s", $data); |
|
| 687 | - } elseif (in_array($token, array('b', 'i', 'd'))) { |
|
| 688 | - return (bool)preg_match("/^{$token}:[0-9.E+-]+;/", $data); |
|
| 689 | - } |
|
| 690 | - return false; |
|
| 671 | + $data = trim($data); |
|
| 672 | + if ('N;' === $data) {return true;} |
|
| 673 | + if (strlen($data) < 4) {return false;} |
|
| 674 | + if (':' !== $data[1]) {return false;} |
|
| 675 | + $semicolon = strpos($data, ';'); |
|
| 676 | + $brace = strpos($data, '}'); |
|
| 677 | + // Either ; or } must exist. |
|
| 678 | + if (false === $semicolon && false === $brace) {return false;} |
|
| 679 | + // But neither must be in the first X characters. |
|
| 680 | + if (false !== $semicolon && $semicolon < 3) {return false;} |
|
| 681 | + if (false !== $brace && $brace < 4) {return false;} |
|
| 682 | + $token = $data[0]; |
|
| 683 | + if (in_array($token, array('s', 'S'))) { |
|
| 684 | + if (false === strpos($data, '"')) {return false;} |
|
| 685 | + } elseif (in_array($token, array('a', 'O', 'C', 'o', 'E'))) { |
|
| 686 | + return (bool)preg_match("/^{$token}:[0-9]+:/s", $data); |
|
| 687 | + } elseif (in_array($token, array('b', 'i', 'd'))) { |
|
| 688 | + return (bool)preg_match("/^{$token}:[0-9.E+-]+;/", $data); |
|
| 689 | + } |
|
| 690 | + return false; |
|
| 691 | 691 | } |
| 692 | 692 | |
| 693 | 693 | /* |
| 694 | 694 | * S'il y a une raison de mourir, mourons |
| 695 | 695 | */ |
| 696 | 696 | if (isset($ecran_securite_raison)) { |
| 697 | - header("HTTP/1.0 403 Forbidden"); |
|
| 698 | - header("Expires: Wed, 11 Jan 1984 05:00:00 GMT"); |
|
| 699 | - header("Cache-Control: no-cache, must-revalidate"); |
|
| 700 | - header("Pragma: no-cache"); |
|
| 701 | - header("Content-Type: text/html"); |
|
| 702 | - header("Connection: close"); |
|
| 703 | - die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>"); |
|
| 697 | + header("HTTP/1.0 403 Forbidden"); |
|
| 698 | + header("Expires: Wed, 11 Jan 1984 05:00:00 GMT"); |
|
| 699 | + header("Cache-Control: no-cache, must-revalidate"); |
|
| 700 | + header("Pragma: no-cache"); |
|
| 701 | + header("Content-Type: text/html"); |
|
| 702 | + header("Connection: close"); |
|
| 703 | + die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>"); |
|
| 704 | 704 | } |
| 705 | 705 | |
| 706 | 706 | /* |
| 707 | 707 | * Un filtre filtrer_entites securise |
| 708 | 708 | */ |
| 709 | 709 | if (!function_exists('filtre_filtrer_entites_dist')) { |
| 710 | - function filtre_filtrer_entites_dist($t) { |
|
| 711 | - include_spip('inc/texte'); |
|
| 712 | - return interdire_scripts(filtrer_entites($t)); |
|
| 713 | - } |
|
| 710 | + function filtre_filtrer_entites_dist($t) { |
|
| 711 | + include_spip('inc/texte'); |
|
| 712 | + return interdire_scripts(filtrer_entites($t)); |
|
| 713 | + } |
|
| 714 | 714 | } |
| 715 | 715 | |
| 716 | 716 | |
@@ -724,35 +724,35 @@ discard block |
||
| 724 | 724 | * Bloque les bots quand le load déborde |
| 725 | 725 | */ |
| 726 | 726 | if (!defined('_ECRAN_SECURITE_LOAD')) { |
| 727 | - define('_ECRAN_SECURITE_LOAD', 4); |
|
| 727 | + define('_ECRAN_SECURITE_LOAD', 4); |
|
| 728 | 728 | } |
| 729 | 729 | |
| 730 | 730 | if ( |
| 731 | - defined('_ECRAN_SECURITE_LOAD') |
|
| 732 | - and _ECRAN_SECURITE_LOAD > 0 |
|
| 733 | - and _IS_BOT |
|
| 734 | - and !_IS_BOT_FRIEND |
|
| 735 | - and $_SERVER['REQUEST_METHOD'] === 'GET' |
|
| 736 | - and ( |
|
| 737 | - (function_exists('sys_getloadavg') |
|
| 738 | - and $load = sys_getloadavg() |
|
| 739 | - and is_array($load) |
|
| 740 | - and $load = array_shift($load)) |
|
| 741 | - or |
|
| 742 | - (@is_readable('/proc/loadavg') |
|
| 743 | - and $load = file_get_contents('/proc/loadavg') |
|
| 744 | - and $load = floatval($load)) |
|
| 745 | - ) |
|
| 746 | - and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite |
|
| 747 | - and rand(0, (int) ($load * $load)) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD |
|
| 731 | + defined('_ECRAN_SECURITE_LOAD') |
|
| 732 | + and _ECRAN_SECURITE_LOAD > 0 |
|
| 733 | + and _IS_BOT |
|
| 734 | + and !_IS_BOT_FRIEND |
|
| 735 | + and $_SERVER['REQUEST_METHOD'] === 'GET' |
|
| 736 | + and ( |
|
| 737 | + (function_exists('sys_getloadavg') |
|
| 738 | + and $load = sys_getloadavg() |
|
| 739 | + and is_array($load) |
|
| 740 | + and $load = array_shift($load)) |
|
| 741 | + or |
|
| 742 | + (@is_readable('/proc/loadavg') |
|
| 743 | + and $load = file_get_contents('/proc/loadavg') |
|
| 744 | + and $load = floatval($load)) |
|
| 745 | + ) |
|
| 746 | + and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite |
|
| 747 | + and rand(0, (int) ($load * $load)) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD |
|
| 748 | 748 | ) { |
| 749 | - //https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot |
|
| 750 | - header("HTTP/1.0 429 Too Many Requests"); |
|
| 751 | - header("Retry-After: 300"); |
|
| 752 | - header("Expires: Wed, 11 Jan 1984 05:00:00 GMT"); |
|
| 753 | - header("Cache-Control: no-cache, must-revalidate"); |
|
| 754 | - header("Pragma: no-cache"); |
|
| 755 | - header("Content-Type: text/html"); |
|
| 756 | - header("Connection: close"); |
|
| 757 | - die("<html><title>Status 429: Too Many Requests</title><body><h1>Status 429</h1><p>Too Many Requests (try again soon)</p></body></html>"); |
|
| 749 | + //https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot |
|
| 750 | + header("HTTP/1.0 429 Too Many Requests"); |
|
| 751 | + header("Retry-After: 300"); |
|
| 752 | + header("Expires: Wed, 11 Jan 1984 05:00:00 GMT"); |
|
| 753 | + header("Cache-Control: no-cache, must-revalidate"); |
|
| 754 | + header("Pragma: no-cache"); |
|
| 755 | + header("Content-Type: text/html"); |
|
| 756 | + header("Connection: close"); |
|
| 757 | + die("<html><title>Status 429: Too Many Requests</title><body><h1>Status 429</h1><p>Too Many Requests (try again soon)</p></body></html>"); |
|
| 758 | 758 | } |
@@ -15,10 +15,10 @@ discard block |
||
| 15 | 15 | * Test utilisateur |
| 16 | 16 | */ |
| 17 | 17 | if (isset($_GET['test_ecran_securite'])) { |
| 18 | - $ecran_securite_raison = 'test ' . _ECRAN_SECURITE; |
|
| 18 | + $ecran_securite_raison = 'test '._ECRAN_SECURITE; |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | -if (file_exists($f = __DIR__ . DIRECTORY_SEPARATOR . 'ecran_securite_options.php')) { |
|
| 21 | +if (file_exists($f = __DIR__.DIRECTORY_SEPARATOR.'ecran_securite_options.php')) { |
|
| 22 | 22 | include ($f); |
| 23 | 23 | } |
| 24 | 24 | |
@@ -226,8 +226,8 @@ discard block |
||
| 226 | 226 | 'yats', |
| 227 | 227 | 'yeti', |
| 228 | 228 | 'zeerch' |
| 229 | - )) . ',i', |
|
| 230 | - (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 229 | + )).',i', |
|
| 230 | + (string) $_SERVER['HTTP_USER_AGENT'] |
|
| 231 | 231 | ) |
| 232 | 232 | ); |
| 233 | 233 | } |
@@ -236,13 +236,13 @@ discard block |
||
| 236 | 236 | '_IS_BOT_FRIEND', |
| 237 | 237 | isset($_SERVER['HTTP_USER_AGENT']) |
| 238 | 238 | and preg_match( |
| 239 | - ',' . implode('|', array( |
|
| 239 | + ','.implode('|', array( |
|
| 240 | 240 | 'facebookexternalhit', |
| 241 | 241 | 'twitterbot', |
| 242 | 242 | 'flipboardproxy', |
| 243 | 243 | 'wordpress' |
| 244 | - )) . ',i', |
|
| 245 | - (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 244 | + )).',i', |
|
| 245 | + (string) $_SERVER['HTTP_USER_AGENT'] |
|
| 246 | 246 | ) |
| 247 | 247 | ); |
| 248 | 248 | } |
@@ -291,10 +291,10 @@ discard block |
||
| 291 | 291 | */ |
| 292 | 292 | foreach (array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) { |
| 293 | 293 | if (isset($_GET[$var])) { |
| 294 | - $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]); |
|
| 294 | + $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string) $_GET[$var]); |
|
| 295 | 295 | } |
| 296 | 296 | if (isset($_POST[$var])) { |
| 297 | - $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]); |
|
| 297 | + $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string) $_POST[$var]); |
|
| 298 | 298 | } |
| 299 | 299 | } |
| 300 | 300 | |
@@ -302,8 +302,8 @@ discard block |
||
| 302 | 302 | * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x) |
| 303 | 303 | */ |
| 304 | 304 | if (isset($_SERVER['REQUEST_URI'])) { |
| 305 | - if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) { |
|
| 306 | - $file = addslashes((string)$_GET['file']); |
|
| 305 | + if (preg_match(',^(.*/)?spip_acces_doc\.,', (string) $_SERVER['REQUEST_URI'])) { |
|
| 306 | + $file = addslashes((string) $_GET['file']); |
|
| 307 | 307 | } |
| 308 | 308 | } |
| 309 | 309 | |
@@ -323,13 +323,13 @@ discard block |
||
| 323 | 323 | */ |
| 324 | 324 | if ( |
| 325 | 325 | isset($_REQUEST['partie_cal']) |
| 326 | - and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal']) |
|
| 326 | + and $_REQUEST['partie_cal'] !== htmlentities((string) $_REQUEST['partie_cal']) |
|
| 327 | 327 | ) { |
| 328 | 328 | $ecran_securite_raison = "partie_cal"; |
| 329 | 329 | } |
| 330 | 330 | if ( |
| 331 | 331 | isset($_REQUEST['echelle']) |
| 332 | - and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle']) |
|
| 332 | + and $_REQUEST['echelle'] !== htmlentities((string) $_REQUEST['echelle']) |
|
| 333 | 333 | ) { |
| 334 | 334 | $ecran_securite_raison = "echelle"; |
| 335 | 335 | } |
@@ -339,13 +339,13 @@ discard block |
||
| 339 | 339 | */ |
| 340 | 340 | if ( |
| 341 | 341 | isset($_REQUEST['exec']) |
| 342 | - and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec']) |
|
| 342 | + and !preg_match(',^[\w-]+$,', (string) $_REQUEST['exec']) |
|
| 343 | 343 | ) { |
| 344 | 344 | $ecran_securite_raison = "exec"; |
| 345 | 345 | } |
| 346 | 346 | if ( |
| 347 | 347 | isset($_REQUEST['cherche_auteur']) |
| 348 | - and preg_match(',[<],', (string)$_REQUEST['cherche_auteur']) |
|
| 348 | + and preg_match(',[<],', (string) $_REQUEST['cherche_auteur']) |
|
| 349 | 349 | ) { |
| 350 | 350 | $ecran_securite_raison = "cherche_auteur"; |
| 351 | 351 | } |
@@ -353,7 +353,7 @@ discard block |
||
| 353 | 353 | isset($_REQUEST['exec']) |
| 354 | 354 | and $_REQUEST['exec'] == 'auteurs' |
| 355 | 355 | and isset($_REQUEST['recherche']) |
| 356 | - and preg_match(',[<],', (string)$_REQUEST['recherche']) |
|
| 356 | + and preg_match(',[<],', (string) $_REQUEST['recherche']) |
|
| 357 | 357 | ) { |
| 358 | 358 | $ecran_securite_raison = "recherche"; |
| 359 | 359 | } |
@@ -361,7 +361,7 @@ discard block |
||
| 361 | 361 | isset($_REQUEST['exec']) |
| 362 | 362 | and $_REQUEST['exec'] == 'info_plugin' |
| 363 | 363 | and isset($_REQUEST['plugin']) |
| 364 | - and preg_match(',[<],', (string)$_REQUEST['plugin']) |
|
| 364 | + and preg_match(',[<],', (string) $_REQUEST['plugin']) |
|
| 365 | 365 | ) { |
| 366 | 366 | $ecran_securite_raison = "plugin"; |
| 367 | 367 | } |
@@ -388,7 +388,7 @@ discard block |
||
| 388 | 388 | echo minipres(_T('info_acces_interdit')); |
| 389 | 389 | exit; |
| 390 | 390 | } |
| 391 | - require _DIR_RESTREINT . 'action/configurer.php'; |
|
| 391 | + require _DIR_RESTREINT.'action/configurer.php'; |
|
| 392 | 392 | action_configurer_dist(); |
| 393 | 393 | } |
| 394 | 394 | } |
@@ -440,9 +440,9 @@ discard block |
||
| 440 | 440 | if (_IS_BOT) { |
| 441 | 441 | if ( |
| 442 | 442 | (isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type'])) |
| 443 | - or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI'])) |
|
| 444 | - or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_')) |
|
| 445 | - or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI'])) |
|
| 443 | + or (strpos((string) $_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string) $_SERVER['REQUEST_URI'])) |
|
| 444 | + or (isset($_REQUEST['calendrier_annee']) and strpos((string) $_SERVER['REQUEST_URI'], 'debut_')) |
|
| 445 | + or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string) $_SERVER['REQUEST_URI'])) |
|
| 446 | 446 | ) { |
| 447 | 447 | $ecran_securite_raison = "robot agenda/double pagination"; |
| 448 | 448 | } |
@@ -456,7 +456,7 @@ discard block |
||
| 456 | 456 | if ($_REQUEST['page'] == 'test_cfg') { |
| 457 | 457 | $ecran_securite_raison = "test_cfg"; |
| 458 | 458 | } |
| 459 | - if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) { |
|
| 459 | + if ($_REQUEST['page'] !== htmlspecialchars((string) $_REQUEST['page'])) { |
|
| 460 | 460 | $ecran_securite_raison = "xsspage"; |
| 461 | 461 | } |
| 462 | 462 | if ( |
@@ -472,7 +472,7 @@ discard block |
||
| 472 | 472 | */ |
| 473 | 473 | foreach (array('var_login') as $var) { |
| 474 | 474 | if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var])) { |
| 475 | - $ecran_securite_raison = "xss " . $var; |
|
| 475 | + $ecran_securite_raison = "xss ".$var; |
|
| 476 | 476 | } |
| 477 | 477 | } |
| 478 | 478 | |
@@ -520,13 +520,13 @@ discard block |
||
| 520 | 520 | */ |
| 521 | 521 | if ( |
| 522 | 522 | isset($_REQUEST['nom_sauvegarde']) |
| 523 | - and strstr((string)$_REQUEST['nom_sauvegarde'], '/') |
|
| 523 | + and strstr((string) $_REQUEST['nom_sauvegarde'], '/') |
|
| 524 | 524 | ) { |
| 525 | 525 | $ecran_securite_raison = 'nom_sauvegarde manipulee'; |
| 526 | 526 | } |
| 527 | 527 | if ( |
| 528 | 528 | isset($_REQUEST['znom_sauvegarde']) |
| 529 | - and strstr((string)$_REQUEST['znom_sauvegarde'], '/') |
|
| 529 | + and strstr((string) $_REQUEST['znom_sauvegarde'], '/') |
|
| 530 | 530 | ) { |
| 531 | 531 | $ecran_securite_raison = 'znom_sauvegarde manipulee'; |
| 532 | 532 | } |
@@ -669,23 +669,23 @@ discard block |
||
| 669 | 669 | */ |
| 670 | 670 | function __ecran_test_if_serialized($data) { |
| 671 | 671 | $data = trim($data); |
| 672 | - if ('N;' === $data) {return true;} |
|
| 673 | - if (strlen($data) < 4) {return false;} |
|
| 674 | - if (':' !== $data[1]) {return false;} |
|
| 672 | + if ('N;' === $data) {return true; } |
|
| 673 | + if (strlen($data) < 4) {return false; } |
|
| 674 | + if (':' !== $data[1]) {return false; } |
|
| 675 | 675 | $semicolon = strpos($data, ';'); |
| 676 | 676 | $brace = strpos($data, '}'); |
| 677 | 677 | // Either ; or } must exist. |
| 678 | - if (false === $semicolon && false === $brace) {return false;} |
|
| 678 | + if (false === $semicolon && false === $brace) {return false; } |
|
| 679 | 679 | // But neither must be in the first X characters. |
| 680 | - if (false !== $semicolon && $semicolon < 3) {return false;} |
|
| 681 | - if (false !== $brace && $brace < 4) {return false;} |
|
| 680 | + if (false !== $semicolon && $semicolon < 3) {return false; } |
|
| 681 | + if (false !== $brace && $brace < 4) {return false; } |
|
| 682 | 682 | $token = $data[0]; |
| 683 | 683 | if (in_array($token, array('s', 'S'))) { |
| 684 | - if (false === strpos($data, '"')) {return false;} |
|
| 684 | + if (false === strpos($data, '"')) {return false; } |
|
| 685 | 685 | } elseif (in_array($token, array('a', 'O', 'C', 'o', 'E'))) { |
| 686 | - return (bool)preg_match("/^{$token}:[0-9]+:/s", $data); |
|
| 686 | + return (bool) preg_match("/^{$token}:[0-9]+:/s", $data); |
|
| 687 | 687 | } elseif (in_array($token, array('b', 'i', 'd'))) { |
| 688 | - return (bool)preg_match("/^{$token}:[0-9.E+-]+;/", $data); |
|
| 688 | + return (bool) preg_match("/^{$token}:[0-9.E+-]+;/", $data); |
|
| 689 | 689 | } |
| 690 | 690 | return false; |
| 691 | 691 | } |
@@ -659,8 +659,12 @@ |
||
| 659 | 659 | and __ecran_test_if_serialized($v) |
| 660 | 660 | ) { |
| 661 | 661 | $_REQUEST[$k] = htmlspecialchars($v, ENT_QUOTES); |
| 662 | - if (isset($_POST[$k])) $_POST[$k] = $_REQUEST[$k]; |
|
| 663 | - if (isset($_GET[$k])) $_GET[$k] = $_REQUEST[$k]; |
|
| 662 | + if (isset($_POST[$k])) { |
|
| 663 | + $_POST[$k] = $_REQUEST[$k]; |
|
| 664 | + } |
|
| 665 | + if (isset($_GET[$k])) { |
|
| 666 | + $_GET[$k] = $_REQUEST[$k]; |
|
| 667 | + } |
|
| 664 | 668 | } |
| 665 | 669 | } |
| 666 | 670 | } |
@@ -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 | /** |
@@ -36,15 +36,15 @@ discard block |
||
| 36 | 36 | define('_PHP_MAX', '8.2.99'); |
| 37 | 37 | |
| 38 | 38 | if (!defined('_DIR_RESTREINT_ABS')) { |
| 39 | - /** le nom du repertoire ecrire/ */ |
|
| 40 | - define('_DIR_RESTREINT_ABS', 'ecrire/'); |
|
| 39 | + /** le nom du repertoire ecrire/ */ |
|
| 40 | + define('_DIR_RESTREINT_ABS', 'ecrire/'); |
|
| 41 | 41 | } |
| 42 | 42 | |
| 43 | 43 | /** Chemin relatif pour aller dans ecrire |
| 44 | 44 | * vide si on est dans ecrire, 'ecrire/' sinon */ |
| 45 | 45 | define( |
| 46 | - '_DIR_RESTREINT', |
|
| 47 | - (!is_dir(_DIR_RESTREINT_ABS) ? '' : _DIR_RESTREINT_ABS) |
|
| 46 | + '_DIR_RESTREINT', |
|
| 47 | + (!is_dir(_DIR_RESTREINT_ABS) ? '' : _DIR_RESTREINT_ABS) |
|
| 48 | 48 | ); |
| 49 | 49 | |
| 50 | 50 | /** Chemin relatif pour aller à la racine */ |
@@ -61,28 +61,28 @@ discard block |
||
| 61 | 61 | # Par defaut ces 4 noms seront suffixes par _DIR_RACINE (cf plus bas) |
| 62 | 62 | # mais on peut les mettre ailleurs et changer completement les noms |
| 63 | 63 | if (!defined('_NOM_TEMPORAIRES_INACCESSIBLES')) { |
| 64 | - /** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */ |
|
| 65 | - define('_NOM_TEMPORAIRES_INACCESSIBLES', 'tmp/'); |
|
| 64 | + /** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */ |
|
| 65 | + define('_NOM_TEMPORAIRES_INACCESSIBLES', 'tmp/'); |
|
| 66 | 66 | } |
| 67 | 67 | if (!defined('_NOM_TEMPORAIRES_ACCESSIBLES')) { |
| 68 | - /** Nom du repertoire des fichiers Temporaires Accessibles par http:// */ |
|
| 69 | - define('_NOM_TEMPORAIRES_ACCESSIBLES', 'local/'); |
|
| 68 | + /** Nom du repertoire des fichiers Temporaires Accessibles par http:// */ |
|
| 69 | + define('_NOM_TEMPORAIRES_ACCESSIBLES', 'local/'); |
|
| 70 | 70 | } |
| 71 | 71 | if (!defined('_NOM_PERMANENTS_INACCESSIBLES')) { |
| 72 | - /** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */ |
|
| 73 | - define('_NOM_PERMANENTS_INACCESSIBLES', 'config/'); |
|
| 72 | + /** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */ |
|
| 73 | + define('_NOM_PERMANENTS_INACCESSIBLES', 'config/'); |
|
| 74 | 74 | } |
| 75 | 75 | if (!defined('_NOM_PERMANENTS_ACCESSIBLES')) { |
| 76 | - /** Nom du repertoire des fichiers Permanents Accessibles par http:// */ |
|
| 77 | - define('_NOM_PERMANENTS_ACCESSIBLES', 'IMG/'); |
|
| 76 | + /** Nom du repertoire des fichiers Permanents Accessibles par http:// */ |
|
| 77 | + define('_NOM_PERMANENTS_ACCESSIBLES', 'IMG/'); |
|
| 78 | 78 | } |
| 79 | 79 | |
| 80 | 80 | // inclure l'ecran de securite si il n'a pas été inclus en prepend php |
| 81 | 81 | if ( |
| 82 | - !defined('_ECRAN_SECURITE') |
|
| 83 | - and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php') |
|
| 82 | + !defined('_ECRAN_SECURITE') |
|
| 83 | + and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php') |
|
| 84 | 84 | ) { |
| 85 | - include $f; |
|
| 85 | + include $f; |
|
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | // et on peut lancer l'autoloader |
@@ -90,8 +90,8 @@ discard block |
||
| 90 | 90 | |
| 91 | 91 | // Icones |
| 92 | 92 | if (!defined('_NOM_IMG_PACK')) { |
| 93 | - /** Nom du dossier images */ |
|
| 94 | - define('_NOM_IMG_PACK', 'images/'); |
|
| 93 | + /** Nom du dossier images */ |
|
| 94 | + define('_NOM_IMG_PACK', 'images/'); |
|
| 95 | 95 | } |
| 96 | 96 | /** le chemin http (relatif) vers les images standard */ |
| 97 | 97 | define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK)); |
@@ -100,8 +100,8 @@ discard block |
||
| 100 | 100 | define('_ROOT_IMG_PACK', dirname(__DIR__) . '/prive/' . _NOM_IMG_PACK); |
| 101 | 101 | |
| 102 | 102 | if (!defined('_JAVASCRIPT')) { |
| 103 | - /** Nom du repertoire des bibliotheques JavaScript */ |
|
| 104 | - define('_JAVASCRIPT', 'javascript/'); |
|
| 103 | + /** Nom du repertoire des bibliotheques JavaScript */ |
|
| 104 | + define('_JAVASCRIPT', 'javascript/'); |
|
| 105 | 105 | } // utilisable avec #CHEMIN et find_in_path |
| 106 | 106 | /** le nom du repertoire des bibliotheques JavaScript du prive */ |
| 107 | 107 | define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT)); |
@@ -109,28 +109,28 @@ discard block |
||
| 109 | 109 | |
| 110 | 110 | /** Le nom du fichier de personnalisation */ |
| 111 | 111 | if (!defined('_NOM_CONFIG')) { |
| 112 | - define('_NOM_CONFIG', 'mes_options'); |
|
| 112 | + define('_NOM_CONFIG', 'mes_options'); |
|
| 113 | 113 | } |
| 114 | 114 | |
| 115 | 115 | // Son emplacement absolu si on le trouve |
| 116 | 116 | if ( |
| 117 | - @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php') |
|
| 118 | - or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php')) |
|
| 117 | + @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php') |
|
| 118 | + or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php')) |
|
| 119 | 119 | ) { |
| 120 | - /** Emplacement absolu du fichier d'option */ |
|
| 121 | - define('_FILE_OPTIONS', $f); |
|
| 120 | + /** Emplacement absolu du fichier d'option */ |
|
| 121 | + define('_FILE_OPTIONS', $f); |
|
| 122 | 122 | } else { |
| 123 | - define('_FILE_OPTIONS', ''); |
|
| 123 | + define('_FILE_OPTIONS', ''); |
|
| 124 | 124 | } |
| 125 | 125 | |
| 126 | 126 | if (!defined('MODULES_IDIOMES')) { |
| 127 | - /** |
|
| 128 | - * Modules par défaut pour la traduction. |
|
| 129 | - * |
|
| 130 | - * Constante utilisée par le compilateur et le décompilateur |
|
| 131 | - * sa valeur etant traitée par inc_traduire_dist |
|
| 132 | - */ |
|
| 133 | - define('MODULES_IDIOMES', 'public|spip|ecrire'); |
|
| 127 | + /** |
|
| 128 | + * Modules par défaut pour la traduction. |
|
| 129 | + * |
|
| 130 | + * Constante utilisée par le compilateur et le décompilateur |
|
| 131 | + * sa valeur etant traitée par inc_traduire_dist |
|
| 132 | + */ |
|
| 133 | + define('MODULES_IDIOMES', 'public|spip|ecrire'); |
|
| 134 | 134 | } |
| 135 | 135 | |
| 136 | 136 | // *** Fin des define *** // |
@@ -140,30 +140,30 @@ discard block |
||
| 140 | 140 | * Détecteur de robot d'indexation |
| 141 | 141 | */ |
| 142 | 142 | if (!defined('_IS_BOT')) { |
| 143 | - define( |
|
| 144 | - '_IS_BOT', |
|
| 145 | - isset($_SERVER['HTTP_USER_AGENT']) |
|
| 146 | - and preg_match( |
|
| 147 | - // mots generiques |
|
| 148 | - ',bot|slurp|crawler|spider|webvac|yandex|' |
|
| 149 | - // MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot |
|
| 150 | - . 'MSIE 6\.0|' |
|
| 151 | - // UA plus cibles |
|
| 152 | - . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti' |
|
| 153 | - . ',i', |
|
| 154 | - (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 155 | - ) |
|
| 156 | - ); |
|
| 143 | + define( |
|
| 144 | + '_IS_BOT', |
|
| 145 | + isset($_SERVER['HTTP_USER_AGENT']) |
|
| 146 | + and preg_match( |
|
| 147 | + // mots generiques |
|
| 148 | + ',bot|slurp|crawler|spider|webvac|yandex|' |
|
| 149 | + // MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot |
|
| 150 | + . 'MSIE 6\.0|' |
|
| 151 | + // UA plus cibles |
|
| 152 | + . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti' |
|
| 153 | + . ',i', |
|
| 154 | + (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 155 | + ) |
|
| 156 | + ); |
|
| 157 | 157 | } |
| 158 | 158 | |
| 159 | 159 | if (!defined('_IS_CLI')) { |
| 160 | - define( |
|
| 161 | - '_IS_CLI', |
|
| 162 | - !isset($_SERVER['HTTP_HOST']) |
|
| 163 | - and !strlen($_SERVER['DOCUMENT_ROOT']) |
|
| 164 | - and !empty($_SERVER['argv']) |
|
| 165 | - and empty($_SERVER['REQUEST_METHOD']) |
|
| 166 | - ); |
|
| 160 | + define( |
|
| 161 | + '_IS_CLI', |
|
| 162 | + !isset($_SERVER['HTTP_HOST']) |
|
| 163 | + and !strlen($_SERVER['DOCUMENT_ROOT']) |
|
| 164 | + and !empty($_SERVER['argv']) |
|
| 165 | + and empty($_SERVER['REQUEST_METHOD']) |
|
| 166 | + ); |
|
| 167 | 167 | } |
| 168 | 168 | |
| 169 | 169 | // *** Parametrage par defaut de SPIP *** |
@@ -175,61 +175,61 @@ discard block |
||
| 175 | 175 | // Ne pas les rendre indefinies. |
| 176 | 176 | |
| 177 | 177 | global |
| 178 | - $nombre_de_logs, |
|
| 179 | - $taille_des_logs, |
|
| 180 | - $table_prefix, |
|
| 181 | - $cookie_prefix, |
|
| 182 | - $dossier_squelettes, |
|
| 183 | - $filtrer_javascript, |
|
| 184 | - $type_urls, |
|
| 185 | - $debut_date_publication, |
|
| 186 | - $ip, |
|
| 187 | - $mysql_rappel_connexion, |
|
| 188 | - $mysql_rappel_nom_base, |
|
| 189 | - $test_i18n, |
|
| 190 | - $ignore_auth_http, |
|
| 191 | - $ignore_remote_user, |
|
| 192 | - $derniere_modif_invalide, |
|
| 193 | - $home_server, |
|
| 194 | - $help_server, |
|
| 195 | - $url_glossaire_externe, |
|
| 196 | - $tex_server, |
|
| 197 | - $traiter_math, |
|
| 198 | - $xhtml, |
|
| 199 | - $xml_indent, |
|
| 200 | - $source_vignettes, |
|
| 201 | - $formats_logos, |
|
| 202 | - $controler_dates_rss, |
|
| 203 | - $spip_pipeline, |
|
| 204 | - $spip_matrice, |
|
| 205 | - $plugins, |
|
| 206 | - $surcharges, |
|
| 207 | - $exceptions_des_tables, |
|
| 208 | - $tables_principales, |
|
| 209 | - $table_des_tables, |
|
| 210 | - $tables_auxiliaires, |
|
| 211 | - $table_primary, |
|
| 212 | - $table_date, |
|
| 213 | - $table_titre, |
|
| 214 | - $tables_jointures, |
|
| 215 | - $liste_des_statuts, |
|
| 216 | - $liste_des_etats, |
|
| 217 | - $liste_des_authentifications, |
|
| 218 | - $spip_version_branche, |
|
| 219 | - $spip_version_code, |
|
| 220 | - $spip_version_base, |
|
| 221 | - $spip_sql_version, |
|
| 222 | - $spip_version_affichee, |
|
| 223 | - $visiteur_session, |
|
| 224 | - $auteur_session, |
|
| 225 | - $connect_statut, |
|
| 226 | - $connect_toutes_rubriques, |
|
| 227 | - $hash_recherche, |
|
| 228 | - $hash_recherche_strict, |
|
| 229 | - $ldap_present, |
|
| 230 | - $meta, |
|
| 231 | - $connect_id_rubrique, |
|
| 232 | - $puce; |
|
| 178 | + $nombre_de_logs, |
|
| 179 | + $taille_des_logs, |
|
| 180 | + $table_prefix, |
|
| 181 | + $cookie_prefix, |
|
| 182 | + $dossier_squelettes, |
|
| 183 | + $filtrer_javascript, |
|
| 184 | + $type_urls, |
|
| 185 | + $debut_date_publication, |
|
| 186 | + $ip, |
|
| 187 | + $mysql_rappel_connexion, |
|
| 188 | + $mysql_rappel_nom_base, |
|
| 189 | + $test_i18n, |
|
| 190 | + $ignore_auth_http, |
|
| 191 | + $ignore_remote_user, |
|
| 192 | + $derniere_modif_invalide, |
|
| 193 | + $home_server, |
|
| 194 | + $help_server, |
|
| 195 | + $url_glossaire_externe, |
|
| 196 | + $tex_server, |
|
| 197 | + $traiter_math, |
|
| 198 | + $xhtml, |
|
| 199 | + $xml_indent, |
|
| 200 | + $source_vignettes, |
|
| 201 | + $formats_logos, |
|
| 202 | + $controler_dates_rss, |
|
| 203 | + $spip_pipeline, |
|
| 204 | + $spip_matrice, |
|
| 205 | + $plugins, |
|
| 206 | + $surcharges, |
|
| 207 | + $exceptions_des_tables, |
|
| 208 | + $tables_principales, |
|
| 209 | + $table_des_tables, |
|
| 210 | + $tables_auxiliaires, |
|
| 211 | + $table_primary, |
|
| 212 | + $table_date, |
|
| 213 | + $table_titre, |
|
| 214 | + $tables_jointures, |
|
| 215 | + $liste_des_statuts, |
|
| 216 | + $liste_des_etats, |
|
| 217 | + $liste_des_authentifications, |
|
| 218 | + $spip_version_branche, |
|
| 219 | + $spip_version_code, |
|
| 220 | + $spip_version_base, |
|
| 221 | + $spip_sql_version, |
|
| 222 | + $spip_version_affichee, |
|
| 223 | + $visiteur_session, |
|
| 224 | + $auteur_session, |
|
| 225 | + $connect_statut, |
|
| 226 | + $connect_toutes_rubriques, |
|
| 227 | + $hash_recherche, |
|
| 228 | + $hash_recherche_strict, |
|
| 229 | + $ldap_present, |
|
| 230 | + $meta, |
|
| 231 | + $connect_id_rubrique, |
|
| 232 | + $puce; |
|
| 233 | 233 | |
| 234 | 234 | # comment on logge, defaut 4 tmp/spip.log de 100k, 0 ou 0 suppriment le log |
| 235 | 235 | $nombre_de_logs = 4; |
@@ -284,48 +284,48 @@ discard block |
||
| 284 | 284 | // Prendre en compte les entetes HTTP_X_FORWARDED_XX |
| 285 | 285 | // |
| 286 | 286 | if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { |
| 287 | - if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
| 288 | - $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST']; |
|
| 289 | - } |
|
| 290 | - if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) { |
|
| 291 | - $_SERVER['HTTP_X_FORWARDED_PORT'] = 443; |
|
| 292 | - } |
|
| 287 | + if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
| 288 | + $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST']; |
|
| 289 | + } |
|
| 290 | + if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) { |
|
| 291 | + $_SERVER['HTTP_X_FORWARDED_PORT'] = 443; |
|
| 292 | + } |
|
| 293 | 293 | } |
| 294 | 294 | if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
| 295 | - if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])) { |
|
| 296 | - $_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT']; |
|
| 297 | - if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { |
|
| 298 | - $_SERVER['HTTPS'] = 'on'; |
|
| 299 | - if (isset($_SERVER['REQUEST_SCHEME'])) { |
|
| 300 | - $_SERVER['REQUEST_SCHEME'] = 'https'; |
|
| 301 | - } |
|
| 302 | - } |
|
| 303 | - } |
|
| 304 | - $host = $_SERVER['HTTP_X_FORWARDED_HOST']; |
|
| 305 | - if (strpos($host, ',') !== false) { |
|
| 306 | - $h = explode(',', $host); |
|
| 307 | - $host = trim(reset($h)); |
|
| 308 | - } |
|
| 309 | - // securite sur le contenu de l'entete |
|
| 310 | - $host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________'); |
|
| 311 | - $_SERVER['HTTP_HOST'] = $host; |
|
| 295 | + if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])) { |
|
| 296 | + $_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT']; |
|
| 297 | + if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { |
|
| 298 | + $_SERVER['HTTPS'] = 'on'; |
|
| 299 | + if (isset($_SERVER['REQUEST_SCHEME'])) { |
|
| 300 | + $_SERVER['REQUEST_SCHEME'] = 'https'; |
|
| 301 | + } |
|
| 302 | + } |
|
| 303 | + } |
|
| 304 | + $host = $_SERVER['HTTP_X_FORWARDED_HOST']; |
|
| 305 | + if (strpos($host, ',') !== false) { |
|
| 306 | + $h = explode(',', $host); |
|
| 307 | + $host = trim(reset($h)); |
|
| 308 | + } |
|
| 309 | + // securite sur le contenu de l'entete |
|
| 310 | + $host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________'); |
|
| 311 | + $_SERVER['HTTP_HOST'] = $host; |
|
| 312 | 312 | } |
| 313 | 313 | // |
| 314 | 314 | // On note le numero IP du client dans la variable $ip |
| 315 | 315 | // |
| 316 | 316 | if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { |
| 317 | - $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; |
|
| 318 | - if (strpos($ip, ',') !== false) { |
|
| 319 | - $ip = explode(',', $ip); |
|
| 320 | - $ip = reset($ip); |
|
| 321 | - } |
|
| 322 | - // ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost |
|
| 323 | - if (isset($_SERVER['REMOTE_ADDR']) and $_SERVER['REMOTE_ADDR'] === '127.0.0.1') { |
|
| 324 | - $_SERVER['REMOTE_ADDR'] = $ip; |
|
| 325 | - } |
|
| 317 | + $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; |
|
| 318 | + if (strpos($ip, ',') !== false) { |
|
| 319 | + $ip = explode(',', $ip); |
|
| 320 | + $ip = reset($ip); |
|
| 321 | + } |
|
| 322 | + // ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost |
|
| 323 | + if (isset($_SERVER['REMOTE_ADDR']) and $_SERVER['REMOTE_ADDR'] === '127.0.0.1') { |
|
| 324 | + $_SERVER['REMOTE_ADDR'] = $ip; |
|
| 325 | + } |
|
| 326 | 326 | } |
| 327 | 327 | if (isset($_SERVER['REMOTE_ADDR'])) { |
| 328 | - $ip = $_SERVER['REMOTE_ADDR']; |
|
| 328 | + $ip = $_SERVER['REMOTE_ADDR']; |
|
| 329 | 329 | } |
| 330 | 330 | |
| 331 | 331 | // Pour renforcer la privacy, decommentez la ligne ci-dessous (ou recopiez-la |
@@ -410,24 +410,24 @@ discard block |
||
| 410 | 410 | |
| 411 | 411 | // Liste des statuts. |
| 412 | 412 | $liste_des_statuts = [ |
| 413 | - 'info_administrateurs' => '0minirezo', |
|
| 414 | - 'info_redacteurs' => '1comite', |
|
| 415 | - 'info_visiteurs' => '6forum', |
|
| 416 | - 'texte_statut_poubelle' => '5poubelle' |
|
| 413 | + 'info_administrateurs' => '0minirezo', |
|
| 414 | + 'info_redacteurs' => '1comite', |
|
| 415 | + 'info_visiteurs' => '6forum', |
|
| 416 | + 'texte_statut_poubelle' => '5poubelle' |
|
| 417 | 417 | ]; |
| 418 | 418 | |
| 419 | 419 | $liste_des_etats = [ |
| 420 | - 'texte_statut_en_cours_redaction' => 'prepa', |
|
| 421 | - 'texte_statut_propose_evaluation' => 'prop', |
|
| 422 | - 'texte_statut_publie' => 'publie', |
|
| 423 | - 'texte_statut_poubelle' => 'poubelle', |
|
| 424 | - 'texte_statut_refuse' => 'refuse' |
|
| 420 | + 'texte_statut_en_cours_redaction' => 'prepa', |
|
| 421 | + 'texte_statut_propose_evaluation' => 'prop', |
|
| 422 | + 'texte_statut_publie' => 'publie', |
|
| 423 | + 'texte_statut_poubelle' => 'poubelle', |
|
| 424 | + 'texte_statut_refuse' => 'refuse' |
|
| 425 | 425 | ]; |
| 426 | 426 | |
| 427 | 427 | // liste des methodes d'authentifications |
| 428 | 428 | $liste_des_authentifications = [ |
| 429 | - 'spip' => 'spip', |
|
| 430 | - 'ldap' => 'ldap' |
|
| 429 | + 'spip' => 'spip', |
|
| 430 | + 'ldap' => 'ldap' |
|
| 431 | 431 | ]; |
| 432 | 432 | |
| 433 | 433 | // Experimental : pour supprimer systematiquement l'affichage des numeros |
@@ -477,12 +477,12 @@ discard block |
||
| 477 | 477 | // Definition personnelles eventuelles |
| 478 | 478 | |
| 479 | 479 | if (_FILE_OPTIONS) { |
| 480 | - include_once _FILE_OPTIONS; |
|
| 480 | + include_once _FILE_OPTIONS; |
|
| 481 | 481 | } |
| 482 | 482 | |
| 483 | 483 | if (!defined('SPIP_ERREUR_REPORT')) { |
| 484 | - /** Masquer les warning */ |
|
| 485 | - define('SPIP_ERREUR_REPORT', E_ALL ^ E_NOTICE ^ E_DEPRECATED); |
|
| 484 | + /** Masquer les warning */ |
|
| 485 | + define('SPIP_ERREUR_REPORT', E_ALL ^ E_NOTICE ^ E_DEPRECATED); |
|
| 486 | 486 | } |
| 487 | 487 | error_reporting(SPIP_ERREUR_REPORT); |
| 488 | 488 | |
@@ -495,10 +495,10 @@ discard block |
||
| 495 | 495 | // ===> on execute en neutralisant les messages d'erreur |
| 496 | 496 | |
| 497 | 497 | spip_initialisation_core( |
| 498 | - (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES), |
|
| 499 | - (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES), |
|
| 500 | - (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES), |
|
| 501 | - (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES) |
|
| 498 | + (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES), |
|
| 499 | + (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES), |
|
| 500 | + (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES), |
|
| 501 | + (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES) |
|
| 502 | 502 | ); |
| 503 | 503 | |
| 504 | 504 | |
@@ -508,71 +508,71 @@ discard block |
||
| 508 | 508 | // donc il faut avoir tout fini ici avant de charger les plugins |
| 509 | 509 | |
| 510 | 510 | if (@is_readable(_CACHE_PLUGINS_OPT) and @is_readable(_CACHE_PLUGINS_PATH)) { |
| 511 | - // chargement optimise precompile |
|
| 512 | - include_once(_CACHE_PLUGINS_OPT); |
|
| 511 | + // chargement optimise precompile |
|
| 512 | + include_once(_CACHE_PLUGINS_OPT); |
|
| 513 | 513 | } else { |
| 514 | - spip_initialisation_suite(); |
|
| 515 | - include_spip('inc/plugin'); |
|
| 516 | - // generer les fichiers php precompiles |
|
| 517 | - // de chargement des plugins et des pipelines |
|
| 518 | - actualise_plugins_actifs(); |
|
| 514 | + spip_initialisation_suite(); |
|
| 515 | + include_spip('inc/plugin'); |
|
| 516 | + // generer les fichiers php precompiles |
|
| 517 | + // de chargement des plugins et des pipelines |
|
| 518 | + actualise_plugins_actifs(); |
|
| 519 | 519 | } |
| 520 | 520 | |
| 521 | 521 | // Initialisations non critiques surchargeables par les plugins |
| 522 | 522 | spip_initialisation_suite(); |
| 523 | 523 | |
| 524 | 524 | if (!defined('_LOG_FILTRE_GRAVITE')) { |
| 525 | - /** niveau maxi d'enregistrement des logs */ |
|
| 526 | - define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE); |
|
| 525 | + /** niveau maxi d'enregistrement des logs */ |
|
| 526 | + define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE); |
|
| 527 | 527 | } |
| 528 | 528 | |
| 529 | 529 | if (!defined('_OUTILS_DEVELOPPEURS')) { |
| 530 | - /** Activer des outils pour développeurs ? */ |
|
| 531 | - define('_OUTILS_DEVELOPPEURS', false); |
|
| 530 | + /** Activer des outils pour développeurs ? */ |
|
| 531 | + define('_OUTILS_DEVELOPPEURS', false); |
|
| 532 | 532 | } |
| 533 | 533 | |
| 534 | 534 | // charger systematiquement inc/autoriser dans l'espace restreint |
| 535 | 535 | if (test_espace_prive()) { |
| 536 | - include_spip('inc/autoriser'); |
|
| 536 | + include_spip('inc/autoriser'); |
|
| 537 | 537 | } |
| 538 | 538 | // |
| 539 | 539 | // Installer Spip si pas installe... sauf si justement on est en train |
| 540 | 540 | // |
| 541 | 541 | if ( |
| 542 | - !(_FILE_CONNECT |
|
| 543 | - or autoriser_sans_cookie(_request('exec')) |
|
| 544 | - or _request('action') == 'cookie' |
|
| 545 | - or _request('action') == 'converser' |
|
| 546 | - or _request('action') == 'test_dirs') |
|
| 542 | + !(_FILE_CONNECT |
|
| 543 | + or autoriser_sans_cookie(_request('exec')) |
|
| 544 | + or _request('action') == 'cookie' |
|
| 545 | + or _request('action') == 'converser' |
|
| 546 | + or _request('action') == 'test_dirs') |
|
| 547 | 547 | ) { |
| 548 | - // Si on peut installer, on lance illico |
|
| 549 | - if (test_espace_prive()) { |
|
| 550 | - include_spip('inc/headers'); |
|
| 551 | - redirige_url_ecrire('install'); |
|
| 552 | - } else { |
|
| 553 | - // Si on est dans le site public, dire que qq s'en occupe |
|
| 554 | - include_spip('inc/lang'); |
|
| 555 | - utiliser_langue_visiteur(); |
|
| 556 | - include_spip('inc/minipres'); |
|
| 557 | - echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . '</p>', ['status' => 503]); |
|
| 558 | - exit; |
|
| 559 | - } |
|
| 560 | - // autrement c'est une install ad hoc (spikini...), on sait pas faire |
|
| 548 | + // Si on peut installer, on lance illico |
|
| 549 | + if (test_espace_prive()) { |
|
| 550 | + include_spip('inc/headers'); |
|
| 551 | + redirige_url_ecrire('install'); |
|
| 552 | + } else { |
|
| 553 | + // Si on est dans le site public, dire que qq s'en occupe |
|
| 554 | + include_spip('inc/lang'); |
|
| 555 | + utiliser_langue_visiteur(); |
|
| 556 | + include_spip('inc/minipres'); |
|
| 557 | + echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . '</p>', ['status' => 503]); |
|
| 558 | + exit; |
|
| 559 | + } |
|
| 560 | + // autrement c'est une install ad hoc (spikini...), on sait pas faire |
|
| 561 | 561 | } |
| 562 | 562 | |
| 563 | 563 | // memoriser un tri sessionne eventuel |
| 564 | 564 | if ( |
| 565 | - isset($_REQUEST['var_memotri']) |
|
| 566 | - and $t = $_REQUEST['var_memotri'] |
|
| 567 | - and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0) |
|
| 565 | + isset($_REQUEST['var_memotri']) |
|
| 566 | + and $t = $_REQUEST['var_memotri'] |
|
| 567 | + and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0) |
|
| 568 | 568 | ) { |
| 569 | - if (!function_exists('session_set')) { |
|
| 570 | - include_spip('inc/session'); |
|
| 571 | - } |
|
| 572 | - $t = preg_replace(',\W,', '_', $t); |
|
| 573 | - if ($v = _request($t)) { |
|
| 574 | - session_set($t, $v); |
|
| 575 | - } |
|
| 569 | + if (!function_exists('session_set')) { |
|
| 570 | + include_spip('inc/session'); |
|
| 571 | + } |
|
| 572 | + $t = preg_replace(',\W,', '_', $t); |
|
| 573 | + if ($v = _request($t)) { |
|
| 574 | + session_set($t, $v); |
|
| 575 | + } |
|
| 576 | 576 | } |
| 577 | 577 | |
| 578 | 578 | /** |
@@ -582,22 +582,22 @@ discard block |
||
| 582 | 582 | * La globale $spip_header_silencieux permet de rendre le header minimal pour raisons de securite |
| 583 | 583 | */ |
| 584 | 584 | if (!defined('_HEADER_COMPOSED_BY')) { |
| 585 | - define('_HEADER_COMPOSED_BY', 'Composed-By: SPIP'); |
|
| 585 | + define('_HEADER_COMPOSED_BY', 'Composed-By: SPIP'); |
|
| 586 | 586 | } |
| 587 | 587 | if (!headers_sent() and _HEADER_COMPOSED_BY) { |
| 588 | - if (!defined('_HEADER_VARY')) { |
|
| 589 | - define('_HEADER_VARY', 'Vary: Cookie, Accept-Encoding'); |
|
| 590 | - } |
|
| 591 | - if (_HEADER_VARY) { |
|
| 592 | - header(_HEADER_VARY); |
|
| 593 | - } |
|
| 594 | - if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) { |
|
| 595 | - include_spip('inc/filtres_mini'); |
|
| 596 | - header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . 'config.txt')); |
|
| 597 | - } else { |
|
| 598 | - // header minimal |
|
| 599 | - header(_HEADER_COMPOSED_BY . ' @ www.spip.net'); |
|
| 600 | - } |
|
| 588 | + if (!defined('_HEADER_VARY')) { |
|
| 589 | + define('_HEADER_VARY', 'Vary: Cookie, Accept-Encoding'); |
|
| 590 | + } |
|
| 591 | + if (_HEADER_VARY) { |
|
| 592 | + header(_HEADER_VARY); |
|
| 593 | + } |
|
| 594 | + if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) { |
|
| 595 | + include_spip('inc/filtres_mini'); |
|
| 596 | + header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . 'config.txt')); |
|
| 597 | + } else { |
|
| 598 | + // header minimal |
|
| 599 | + header(_HEADER_COMPOSED_BY . ' @ www.spip.net'); |
|
| 600 | + } |
|
| 601 | 601 | } |
| 602 | 602 | |
| 603 | 603 | $methode = ($_SERVER['REQUEST_METHOD'] ?? ((php_sapi_name() == 'cli') ? 'cli' : '')); |
@@ -51,11 +51,11 @@ discard block |
||
| 51 | 51 | define('_DIR_RACINE', _DIR_RESTREINT ? '' : '../'); |
| 52 | 52 | |
| 53 | 53 | /** chemin absolu vers la racine */ |
| 54 | -define('_ROOT_RACINE', dirname(__DIR__) . '/'); |
|
| 54 | +define('_ROOT_RACINE', dirname(__DIR__).'/'); |
|
| 55 | 55 | /** chemin absolu vers le repertoire de travail */ |
| 56 | -define('_ROOT_CWD', getcwd() . '/'); |
|
| 56 | +define('_ROOT_CWD', getcwd().'/'); |
|
| 57 | 57 | /** chemin absolu vers ecrire */ |
| 58 | -define('_ROOT_RESTREINT', _ROOT_CWD . _DIR_RESTREINT); |
|
| 58 | +define('_ROOT_RESTREINT', _ROOT_CWD._DIR_RESTREINT); |
|
| 59 | 59 | |
| 60 | 60 | # Le nom des 4 repertoires modifiables par les scripts lances par httpd |
| 61 | 61 | # Par defaut ces 4 noms seront suffixes par _DIR_RACINE (cf plus bas) |
@@ -80,13 +80,13 @@ discard block |
||
| 80 | 80 | // inclure l'ecran de securite si il n'a pas été inclus en prepend php |
| 81 | 81 | if ( |
| 82 | 82 | !defined('_ECRAN_SECURITE') |
| 83 | - and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php') |
|
| 83 | + and @file_exists($f = _ROOT_RACINE._NOM_PERMANENTS_INACCESSIBLES.'ecran_securite.php') |
|
| 84 | 84 | ) { |
| 85 | 85 | include $f; |
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | // et on peut lancer l'autoloader |
| 89 | -require_once __DIR__ . '/../vendor/autoload.php'; |
|
| 89 | +require_once __DIR__.'/../vendor/autoload.php'; |
|
| 90 | 90 | |
| 91 | 91 | // Icones |
| 92 | 92 | if (!defined('_NOM_IMG_PACK')) { |
@@ -94,17 +94,17 @@ discard block |
||
| 94 | 94 | define('_NOM_IMG_PACK', 'images/'); |
| 95 | 95 | } |
| 96 | 96 | /** le chemin http (relatif) vers les images standard */ |
| 97 | -define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK)); |
|
| 97 | +define('_DIR_IMG_PACK', (_DIR_RACINE.'prive/'._NOM_IMG_PACK)); |
|
| 98 | 98 | |
| 99 | 99 | /** le chemin php (absolu) vers les images standard (pour hebergement centralise) */ |
| 100 | -define('_ROOT_IMG_PACK', dirname(__DIR__) . '/prive/' . _NOM_IMG_PACK); |
|
| 100 | +define('_ROOT_IMG_PACK', dirname(__DIR__).'/prive/'._NOM_IMG_PACK); |
|
| 101 | 101 | |
| 102 | 102 | if (!defined('_JAVASCRIPT')) { |
| 103 | 103 | /** Nom du repertoire des bibliotheques JavaScript */ |
| 104 | 104 | define('_JAVASCRIPT', 'javascript/'); |
| 105 | 105 | } // utilisable avec #CHEMIN et find_in_path |
| 106 | 106 | /** le nom du repertoire des bibliotheques JavaScript du prive */ |
| 107 | -define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT)); |
|
| 107 | +define('_DIR_JAVASCRIPT', (_DIR_RACINE.'prive/'._JAVASCRIPT)); |
|
| 108 | 108 | |
| 109 | 109 | |
| 110 | 110 | /** Le nom du fichier de personnalisation */ |
@@ -114,8 +114,8 @@ discard block |
||
| 114 | 114 | |
| 115 | 115 | // Son emplacement absolu si on le trouve |
| 116 | 116 | if ( |
| 117 | - @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php') |
|
| 118 | - or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php')) |
|
| 117 | + @file_exists($f = _ROOT_RACINE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php') |
|
| 118 | + or (@file_exists($f = _ROOT_RESTREINT._NOM_CONFIG.'.php')) |
|
| 119 | 119 | ) { |
| 120 | 120 | /** Emplacement absolu du fichier d'option */ |
| 121 | 121 | define('_FILE_OPTIONS', $f); |
@@ -151,7 +151,7 @@ discard block |
||
| 151 | 151 | // UA plus cibles |
| 152 | 152 | . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti' |
| 153 | 153 | . ',i', |
| 154 | - (string)$_SERVER['HTTP_USER_AGENT'] |
|
| 154 | + (string) $_SERVER['HTTP_USER_AGENT'] |
|
| 155 | 155 | ) |
| 156 | 156 | ); |
| 157 | 157 | } |
@@ -393,7 +393,7 @@ discard block |
||
| 393 | 393 | # la matrice standard (fichiers definissant les fonctions a inclure) |
| 394 | 394 | $spip_matrice = []; |
| 395 | 395 | # les plugins a activer |
| 396 | -$plugins = []; // voir le contenu du repertoire /plugins/ |
|
| 396 | +$plugins = []; // voir le contenu du repertoire /plugins/ |
|
| 397 | 397 | # les surcharges de include_spip() |
| 398 | 398 | $surcharges = []; // format 'inc_truc' => '/plugins/chose/inc_truc2.php' |
| 399 | 399 | |
@@ -471,8 +471,8 @@ discard block |
||
| 471 | 471 | // |
| 472 | 472 | // Charger les fonctions liees aux serveurs Http et Sql. |
| 473 | 473 | // |
| 474 | -require_once _ROOT_RESTREINT . 'inc/utils.php'; |
|
| 475 | -require_once _ROOT_RESTREINT . 'base/connect_sql.php'; |
|
| 474 | +require_once _ROOT_RESTREINT.'inc/utils.php'; |
|
| 475 | +require_once _ROOT_RESTREINT.'base/connect_sql.php'; |
|
| 476 | 476 | |
| 477 | 477 | // Definition personnelles eventuelles |
| 478 | 478 | |
@@ -495,10 +495,10 @@ discard block |
||
| 495 | 495 | // ===> on execute en neutralisant les messages d'erreur |
| 496 | 496 | |
| 497 | 497 | spip_initialisation_core( |
| 498 | - (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES), |
|
| 499 | - (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES), |
|
| 500 | - (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES), |
|
| 501 | - (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES) |
|
| 498 | + (_DIR_RACINE._NOM_PERMANENTS_INACCESSIBLES), |
|
| 499 | + (_DIR_RACINE._NOM_PERMANENTS_ACCESSIBLES), |
|
| 500 | + (_DIR_RACINE._NOM_TEMPORAIRES_INACCESSIBLES), |
|
| 501 | + (_DIR_RACINE._NOM_TEMPORAIRES_ACCESSIBLES) |
|
| 502 | 502 | ); |
| 503 | 503 | |
| 504 | 504 | |
@@ -554,7 +554,7 @@ discard block |
||
| 554 | 554 | include_spip('inc/lang'); |
| 555 | 555 | utiliser_langue_visiteur(); |
| 556 | 556 | include_spip('inc/minipres'); |
| 557 | - echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . '</p>', ['status' => 503]); |
|
| 557 | + echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>"._T('info_travaux_texte').'</p>', ['status' => 503]); |
|
| 558 | 558 | exit; |
| 559 | 559 | } |
| 560 | 560 | // autrement c'est une install ad hoc (spikini...), on sait pas faire |
@@ -593,12 +593,12 @@ discard block |
||
| 593 | 593 | } |
| 594 | 594 | if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) { |
| 595 | 595 | include_spip('inc/filtres_mini'); |
| 596 | - header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . 'config.txt')); |
|
| 596 | + header(_HEADER_COMPOSED_BY." $spip_version_affichee @ www.spip.net + ".url_absolue(_DIR_VAR.'config.txt')); |
|
| 597 | 597 | } else { |
| 598 | 598 | // header minimal |
| 599 | - header(_HEADER_COMPOSED_BY . ' @ www.spip.net'); |
|
| 599 | + header(_HEADER_COMPOSED_BY.' @ www.spip.net'); |
|
| 600 | 600 | } |
| 601 | 601 | } |
| 602 | 602 | |
| 603 | 603 | $methode = ($_SERVER['REQUEST_METHOD'] ?? ((php_sapi_name() == 'cli') ? 'cli' : '')); |
| 604 | -spip_log($methode . ' ' . self() . ' - ' . _FILE_CONNECT, _LOG_DEBUG); |
|
| 604 | +spip_log($methode.' '.self().' - '._FILE_CONNECT, _LOG_DEBUG); |
|
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | * @package SPIP\Core\Formulaires |
| 16 | 16 | **/ |
| 17 | 17 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 18 | - return; |
|
| 18 | + return; |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | include_spip('inc/filtres'); |
@@ -34,28 +34,28 @@ discard block |
||
| 34 | 34 | * @see spip_htmlspecialchars() |
| 35 | 35 | */ |
| 36 | 36 | function protege_champ($valeur, $max_prof = 128) { |
| 37 | - if (is_array($valeur)) { |
|
| 38 | - if ($max_prof > 0) { |
|
| 39 | - return array_map( |
|
| 40 | - function($v) use ($max_prof) { |
|
| 41 | - return protege_champ($v, $max_prof-1); |
|
| 42 | - }, |
|
| 43 | - $valeur |
|
| 44 | - ); |
|
| 45 | - } |
|
| 46 | - // si on dépasse la prof max on tronque |
|
| 47 | - return []; |
|
| 48 | - } elseif ($valeur === null) { |
|
| 49 | - return $valeur; |
|
| 50 | - } elseif (is_bool($valeur)) { |
|
| 51 | - return $valeur ? '1' : ''; |
|
| 52 | - } elseif (is_string($valeur) and $valeur) { |
|
| 53 | - if (strpbrk($valeur, "&\"'<>") !== false) { |
|
| 54 | - return spip_htmlspecialchars($valeur, ENT_QUOTES); |
|
| 55 | - } |
|
| 56 | - } |
|
| 57 | - |
|
| 58 | - return $valeur; |
|
| 37 | + if (is_array($valeur)) { |
|
| 38 | + if ($max_prof > 0) { |
|
| 39 | + return array_map( |
|
| 40 | + function($v) use ($max_prof) { |
|
| 41 | + return protege_champ($v, $max_prof-1); |
|
| 42 | + }, |
|
| 43 | + $valeur |
|
| 44 | + ); |
|
| 45 | + } |
|
| 46 | + // si on dépasse la prof max on tronque |
|
| 47 | + return []; |
|
| 48 | + } elseif ($valeur === null) { |
|
| 49 | + return $valeur; |
|
| 50 | + } elseif (is_bool($valeur)) { |
|
| 51 | + return $valeur ? '1' : ''; |
|
| 52 | + } elseif (is_string($valeur) and $valeur) { |
|
| 53 | + if (strpbrk($valeur, "&\"'<>") !== false) { |
|
| 54 | + return spip_htmlspecialchars($valeur, ENT_QUOTES); |
|
| 55 | + } |
|
| 56 | + } |
|
| 57 | + |
|
| 58 | + return $valeur; |
|
| 59 | 59 | } |
| 60 | 60 | |
| 61 | 61 | /** |
@@ -69,17 +69,17 @@ discard block |
||
| 69 | 69 | * - false : pas de squelette trouvé |
| 70 | 70 | **/ |
| 71 | 71 | function existe_formulaire($form) { |
| 72 | - if (substr($form, 0, 11) == 'FORMULAIRE_') { |
|
| 73 | - $form = strtolower(substr($form, 11)); |
|
| 74 | - } else { |
|
| 75 | - $form = strtolower($form); |
|
| 76 | - } |
|
| 72 | + if (substr($form, 0, 11) == 'FORMULAIRE_') { |
|
| 73 | + $form = strtolower(substr($form, 11)); |
|
| 74 | + } else { |
|
| 75 | + $form = strtolower($form); |
|
| 76 | + } |
|
| 77 | 77 | |
| 78 | - if (!$form) { |
|
| 79 | - return ''; |
|
| 80 | - } // on ne sait pas, le nom du formulaire n'est pas fourni ici |
|
| 78 | + if (!$form) { |
|
| 79 | + return ''; |
|
| 80 | + } // on ne sait pas, le nom du formulaire n'est pas fourni ici |
|
| 81 | 81 | |
| 82 | - return trouver_fond($form, 'formulaires/') ? $form : false; |
|
| 82 | + return trouver_fond($form, 'formulaires/') ? $form : false; |
|
| 83 | 83 | } |
| 84 | 84 | |
| 85 | 85 | /** |
@@ -88,31 +88,31 @@ discard block |
||
| 88 | 88 | * @return false|array |
| 89 | 89 | */ |
| 90 | 90 | function test_formulaire_inclus_par_modele() { |
| 91 | - $trace = debug_backtrace(0, 20); |
|
| 92 | - $trace_fonctions = array_column($trace, 'function'); |
|
| 93 | - $trace_fonctions = array_map('strtolower', $trace_fonctions); |
|
| 94 | - |
|
| 95 | - // regarder si un flag a ete leve juste avant l'appel de balise_FORMULAIRE_dyn |
|
| 96 | - if ( |
|
| 97 | - function_exists('arguments_balise_dyn_depuis_modele') |
|
| 98 | - and $form = arguments_balise_dyn_depuis_modele(null, 'read') |
|
| 99 | - ) { |
|
| 100 | - if (in_array('balise_formulaire__dyn', $trace_fonctions)) { |
|
| 101 | - $k = array_search('balise_formulaire__dyn', $trace_fonctions); |
|
| 102 | - if ($trace[$k]['args'][0] === $form) { |
|
| 103 | - return $trace[$k]['args']; |
|
| 104 | - } |
|
| 105 | - } |
|
| 106 | - } |
|
| 107 | - |
|
| 108 | - // fallback qui ne repose pas sur le flag lie a l'analyse de contexte_compil, |
|
| 109 | - // mais ne marche pas si executer_balise_dynamique est appelee via du php dans le squelette |
|
| 110 | - if (in_array('eval', $trace_fonctions) and in_array('inclure_modele', $trace_fonctions)) { |
|
| 111 | - $k = array_search('inclure_modele', $trace_fonctions); |
|
| 112 | - // les arguments de recuperer_fond() passes par inclure_modele() |
|
| 113 | - return $trace[$k - 1]['args'][1]['args']; |
|
| 114 | - } |
|
| 115 | - return false; |
|
| 91 | + $trace = debug_backtrace(0, 20); |
|
| 92 | + $trace_fonctions = array_column($trace, 'function'); |
|
| 93 | + $trace_fonctions = array_map('strtolower', $trace_fonctions); |
|
| 94 | + |
|
| 95 | + // regarder si un flag a ete leve juste avant l'appel de balise_FORMULAIRE_dyn |
|
| 96 | + if ( |
|
| 97 | + function_exists('arguments_balise_dyn_depuis_modele') |
|
| 98 | + and $form = arguments_balise_dyn_depuis_modele(null, 'read') |
|
| 99 | + ) { |
|
| 100 | + if (in_array('balise_formulaire__dyn', $trace_fonctions)) { |
|
| 101 | + $k = array_search('balise_formulaire__dyn', $trace_fonctions); |
|
| 102 | + if ($trace[$k]['args'][0] === $form) { |
|
| 103 | + return $trace[$k]['args']; |
|
| 104 | + } |
|
| 105 | + } |
|
| 106 | + } |
|
| 107 | + |
|
| 108 | + // fallback qui ne repose pas sur le flag lie a l'analyse de contexte_compil, |
|
| 109 | + // mais ne marche pas si executer_balise_dynamique est appelee via du php dans le squelette |
|
| 110 | + if (in_array('eval', $trace_fonctions) and in_array('inclure_modele', $trace_fonctions)) { |
|
| 111 | + $k = array_search('inclure_modele', $trace_fonctions); |
|
| 112 | + // les arguments de recuperer_fond() passes par inclure_modele() |
|
| 113 | + return $trace[$k - 1]['args'][1]['args']; |
|
| 114 | + } |
|
| 115 | + return false; |
|
| 116 | 116 | } |
| 117 | 117 | |
| 118 | 118 | /** |
@@ -127,19 +127,19 @@ discard block |
||
| 127 | 127 | **/ |
| 128 | 128 | function balise_FORMULAIRE__dist($p) { |
| 129 | 129 | |
| 130 | - // Cas d'un #FORMULAIRE_TOTO inexistant : renvoyer la chaine vide. |
|
| 131 | - // mais si #FORMULAIRE_{toto} on ne peut pas savoir a la compilation, continuer |
|
| 132 | - if (existe_formulaire($p->nom_champ) === false) { |
|
| 133 | - $p->code = "''"; |
|
| 134 | - $p->interdire_scripts = false; |
|
| 130 | + // Cas d'un #FORMULAIRE_TOTO inexistant : renvoyer la chaine vide. |
|
| 131 | + // mais si #FORMULAIRE_{toto} on ne peut pas savoir a la compilation, continuer |
|
| 132 | + if (existe_formulaire($p->nom_champ) === false) { |
|
| 133 | + $p->code = "''"; |
|
| 134 | + $p->interdire_scripts = false; |
|
| 135 | 135 | |
| 136 | - return $p; |
|
| 137 | - } |
|
| 136 | + return $p; |
|
| 137 | + } |
|
| 138 | 138 | |
| 139 | - // sinon renvoyer un code php dynamique |
|
| 140 | - $p = calculer_balise_dynamique($p, $p->nom_champ, []); |
|
| 139 | + // sinon renvoyer un code php dynamique |
|
| 140 | + $p = calculer_balise_dynamique($p, $p->nom_champ, []); |
|
| 141 | 141 | |
| 142 | - return $p; |
|
| 142 | + return $p; |
|
| 143 | 143 | } |
| 144 | 144 | |
| 145 | 145 | /** |
@@ -159,17 +159,17 @@ discard block |
||
| 159 | 159 | * - string : texte à afficher directement |
| 160 | 160 | */ |
| 161 | 161 | function balise_FORMULAIRE__dyn($form, ...$args) { |
| 162 | - $form = existe_formulaire($form); |
|
| 163 | - if (!$form) { |
|
| 164 | - return ''; |
|
| 165 | - } |
|
| 162 | + $form = existe_formulaire($form); |
|
| 163 | + if (!$form) { |
|
| 164 | + return ''; |
|
| 165 | + } |
|
| 166 | 166 | |
| 167 | - $contexte = balise_FORMULAIRE__contexte($form, $args); |
|
| 168 | - if (!is_array($contexte)) { |
|
| 169 | - return $contexte; |
|
| 170 | - } |
|
| 167 | + $contexte = balise_FORMULAIRE__contexte($form, $args); |
|
| 168 | + if (!is_array($contexte)) { |
|
| 169 | + return $contexte; |
|
| 170 | + } |
|
| 171 | 171 | |
| 172 | - return ["formulaires/$form", 3600, $contexte]; |
|
| 172 | + return ["formulaires/$form", 3600, $contexte]; |
|
| 173 | 173 | } |
| 174 | 174 | |
| 175 | 175 | /** |
@@ -184,85 +184,85 @@ discard block |
||
| 184 | 184 | * string: Formulaire non applicable (message d’explication) |
| 185 | 185 | **/ |
| 186 | 186 | function balise_FORMULAIRE__contexte($form, $args) { |
| 187 | - // tester si ce formulaire vient d'etre poste (memes arguments) |
|
| 188 | - // pour ne pas confondre 2 #FORMULAIRES_XX identiques sur une meme page |
|
| 189 | - // si poste, on recupere les erreurs |
|
| 190 | - |
|
| 191 | - $je_suis_poste = false; |
|
| 192 | - if ( |
|
| 193 | - $post_form = _request('formulaire_action') |
|
| 194 | - and $post_form == $form |
|
| 195 | - and $p = _request('formulaire_action_args') |
|
| 196 | - and is_array($p = decoder_contexte_ajax($p, $post_form)) |
|
| 197 | - ) { |
|
| 198 | - // enlever le faux attribut de langue masque |
|
| 199 | - array_shift($p); |
|
| 200 | - if (formulaire__identifier($form, $args, $p)) { |
|
| 201 | - $je_suis_poste = true; |
|
| 202 | - } |
|
| 203 | - } |
|
| 204 | - |
|
| 205 | - $editable = true; |
|
| 206 | - $erreurs = $post = []; |
|
| 207 | - if ($je_suis_poste) { |
|
| 208 | - $post = traiter_formulaires_dynamiques(true); |
|
| 209 | - $e = "erreurs_$form"; |
|
| 210 | - $erreurs = $post[$e] ?? []; |
|
| 211 | - $editable = "editable_$form"; |
|
| 212 | - $editable = (!isset($post[$e])) |
|
| 213 | - || (is_countable($erreurs) ? count($erreurs) : 0) |
|
| 214 | - || (isset($post[$editable]) && $post[$editable]); |
|
| 215 | - } |
|
| 216 | - |
|
| 217 | - $valeurs = formulaire__charger($form, $args, $je_suis_poste); |
|
| 218 | - |
|
| 219 | - // si $valeurs n'est pas un tableau, le formulaire n'est pas applicable |
|
| 220 | - // C'est plus fort qu'editable qui est gere par le squelette |
|
| 221 | - // Idealement $valeur doit etre alors un message explicatif. |
|
| 222 | - if (!is_array($valeurs)) { |
|
| 223 | - return is_string($valeurs) ? $valeurs : ''; |
|
| 224 | - } |
|
| 225 | - |
|
| 226 | - // charger peut passer une action si le formulaire ne tourne pas sur self() |
|
| 227 | - // ou une action vide si elle ne sert pas |
|
| 228 | - $action = $valeurs['action'] ?? self('&', true); |
|
| 229 | - // bug IEx : si action finit par / |
|
| 230 | - // IE croit que le <form ... action=../ > est autoferme |
|
| 231 | - if (substr($action, -1) == '/') { |
|
| 232 | - // on ajoute une ancre pour feinter IE, au pire ca tue l'ancre qui finit par un / |
|
| 233 | - $action .= '#'; |
|
| 234 | - } |
|
| 235 | - |
|
| 236 | - // recuperer la saisie en cours si erreurs |
|
| 237 | - // seulement si c'est ce formulaire qui est poste |
|
| 238 | - // ou si on le demande explicitement par le parametre _forcer_request = true |
|
| 239 | - $dispo = ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request'])); |
|
| 240 | - foreach (array_keys($valeurs) as $champ) { |
|
| 241 | - if ($champ[0] !== '_' and !in_array($champ, ['message_ok', 'message_erreur', 'editable'])) { |
|
| 242 | - if ($dispo and (($v = _request($champ)) !== null)) { |
|
| 243 | - $valeurs[$champ] = $v; |
|
| 244 | - } |
|
| 245 | - // nettoyer l'url des champs qui vont etre saisis |
|
| 246 | - if ($action) { |
|
| 247 | - $action = parametre_url($action, $champ, ''); |
|
| 248 | - } |
|
| 249 | - // proteger les ' et les " dans les champs que l'on va injecter |
|
| 250 | - $valeurs[$champ] = protege_champ($valeurs[$champ]); |
|
| 251 | - } |
|
| 252 | - } |
|
| 253 | - |
|
| 254 | - if ($action) { |
|
| 255 | - // nettoyer l'url |
|
| 256 | - $action = parametre_url($action, 'formulaire_action', ''); |
|
| 257 | - $action = parametre_url($action, 'formulaire_action_args', ''); |
|
| 258 | - $action = parametre_url($action, 'formulaire_action_sign', ''); |
|
| 259 | - } |
|
| 260 | - |
|
| 261 | - /** |
|
| 262 | - * @deprecated 4.0 |
|
| 263 | - * servait pour poster sur les actions de type editer_xxx() qui ne prenaient pas d'argument autrement que par _request('arg') et pour lesquelles il fallait donc passer un hash valide |
|
| 264 | - */ |
|
| 265 | - /* |
|
| 187 | + // tester si ce formulaire vient d'etre poste (memes arguments) |
|
| 188 | + // pour ne pas confondre 2 #FORMULAIRES_XX identiques sur une meme page |
|
| 189 | + // si poste, on recupere les erreurs |
|
| 190 | + |
|
| 191 | + $je_suis_poste = false; |
|
| 192 | + if ( |
|
| 193 | + $post_form = _request('formulaire_action') |
|
| 194 | + and $post_form == $form |
|
| 195 | + and $p = _request('formulaire_action_args') |
|
| 196 | + and is_array($p = decoder_contexte_ajax($p, $post_form)) |
|
| 197 | + ) { |
|
| 198 | + // enlever le faux attribut de langue masque |
|
| 199 | + array_shift($p); |
|
| 200 | + if (formulaire__identifier($form, $args, $p)) { |
|
| 201 | + $je_suis_poste = true; |
|
| 202 | + } |
|
| 203 | + } |
|
| 204 | + |
|
| 205 | + $editable = true; |
|
| 206 | + $erreurs = $post = []; |
|
| 207 | + if ($je_suis_poste) { |
|
| 208 | + $post = traiter_formulaires_dynamiques(true); |
|
| 209 | + $e = "erreurs_$form"; |
|
| 210 | + $erreurs = $post[$e] ?? []; |
|
| 211 | + $editable = "editable_$form"; |
|
| 212 | + $editable = (!isset($post[$e])) |
|
| 213 | + || (is_countable($erreurs) ? count($erreurs) : 0) |
|
| 214 | + || (isset($post[$editable]) && $post[$editable]); |
|
| 215 | + } |
|
| 216 | + |
|
| 217 | + $valeurs = formulaire__charger($form, $args, $je_suis_poste); |
|
| 218 | + |
|
| 219 | + // si $valeurs n'est pas un tableau, le formulaire n'est pas applicable |
|
| 220 | + // C'est plus fort qu'editable qui est gere par le squelette |
|
| 221 | + // Idealement $valeur doit etre alors un message explicatif. |
|
| 222 | + if (!is_array($valeurs)) { |
|
| 223 | + return is_string($valeurs) ? $valeurs : ''; |
|
| 224 | + } |
|
| 225 | + |
|
| 226 | + // charger peut passer une action si le formulaire ne tourne pas sur self() |
|
| 227 | + // ou une action vide si elle ne sert pas |
|
| 228 | + $action = $valeurs['action'] ?? self('&', true); |
|
| 229 | + // bug IEx : si action finit par / |
|
| 230 | + // IE croit que le <form ... action=../ > est autoferme |
|
| 231 | + if (substr($action, -1) == '/') { |
|
| 232 | + // on ajoute une ancre pour feinter IE, au pire ca tue l'ancre qui finit par un / |
|
| 233 | + $action .= '#'; |
|
| 234 | + } |
|
| 235 | + |
|
| 236 | + // recuperer la saisie en cours si erreurs |
|
| 237 | + // seulement si c'est ce formulaire qui est poste |
|
| 238 | + // ou si on le demande explicitement par le parametre _forcer_request = true |
|
| 239 | + $dispo = ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request'])); |
|
| 240 | + foreach (array_keys($valeurs) as $champ) { |
|
| 241 | + if ($champ[0] !== '_' and !in_array($champ, ['message_ok', 'message_erreur', 'editable'])) { |
|
| 242 | + if ($dispo and (($v = _request($champ)) !== null)) { |
|
| 243 | + $valeurs[$champ] = $v; |
|
| 244 | + } |
|
| 245 | + // nettoyer l'url des champs qui vont etre saisis |
|
| 246 | + if ($action) { |
|
| 247 | + $action = parametre_url($action, $champ, ''); |
|
| 248 | + } |
|
| 249 | + // proteger les ' et les " dans les champs que l'on va injecter |
|
| 250 | + $valeurs[$champ] = protege_champ($valeurs[$champ]); |
|
| 251 | + } |
|
| 252 | + } |
|
| 253 | + |
|
| 254 | + if ($action) { |
|
| 255 | + // nettoyer l'url |
|
| 256 | + $action = parametre_url($action, 'formulaire_action', ''); |
|
| 257 | + $action = parametre_url($action, 'formulaire_action_args', ''); |
|
| 258 | + $action = parametre_url($action, 'formulaire_action_sign', ''); |
|
| 259 | + } |
|
| 260 | + |
|
| 261 | + /** |
|
| 262 | + * @deprecated 4.0 |
|
| 263 | + * servait pour poster sur les actions de type editer_xxx() qui ne prenaient pas d'argument autrement que par _request('arg') et pour lesquelles il fallait donc passer un hash valide |
|
| 264 | + */ |
|
| 265 | + /* |
|
| 266 | 266 | if (isset($valeurs['_action'])) { |
| 267 | 267 | $securiser_action = charger_fonction('securiser_action', 'inc'); |
| 268 | 268 | $secu = $securiser_action(reset($valeurs['_action']), end($valeurs['_action']), '', -1); |
@@ -272,59 +272,59 @@ discard block |
||
| 272 | 272 | } |
| 273 | 273 | */ |
| 274 | 274 | |
| 275 | - // empiler la lang en tant que premier argument implicite du CVT |
|
| 276 | - // pour permettre de la restaurer au moment du Verifier et du Traiter |
|
| 277 | - array_unshift($args, $GLOBALS['spip_lang']); |
|
| 278 | - |
|
| 279 | - $valeurs['formulaire_args'] = encoder_contexte_ajax($args, $form); |
|
| 280 | - $valeurs['erreurs'] = $erreurs; |
|
| 281 | - $valeurs['action'] = $action; |
|
| 282 | - $valeurs['form'] = $form; |
|
| 283 | - |
|
| 284 | - $valeurs['formulaire_sign'] = ''; |
|
| 285 | - if (!empty($GLOBALS['visiteur_session']['id_auteur'])) { |
|
| 286 | - $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 287 | - $secu = $securiser_action($valeurs['form'], $valeurs['formulaire_args'], '', -1); |
|
| 288 | - $valeurs['formulaire_sign'] = $secu['hash']; |
|
| 289 | - } |
|
| 290 | - |
|
| 291 | - if (!isset($valeurs['id'])) { |
|
| 292 | - $valeurs['id'] = 'new'; |
|
| 293 | - } |
|
| 294 | - // editable peut venir de charger() ou de traiter() sinon |
|
| 295 | - if (!isset($valeurs['editable'])) { |
|
| 296 | - $valeurs['editable'] = $editable; |
|
| 297 | - } |
|
| 298 | - // dans tous les cas, renvoyer un espace ou vide (et pas un booleen) |
|
| 299 | - $valeurs['editable'] = ($valeurs['editable'] ? ' ' : ''); |
|
| 300 | - |
|
| 301 | - if ($je_suis_poste) { |
|
| 302 | - $valeurs['message_erreur'] = ''; |
|
| 303 | - if (isset($erreurs['message_erreur'])) { |
|
| 304 | - $valeurs['message_erreur'] = $erreurs['message_erreur']; |
|
| 305 | - } |
|
| 306 | - |
|
| 307 | - $valeurs['message_ok'] = ''; |
|
| 308 | - if (isset($post["message_ok_$form"])) { |
|
| 309 | - $valeurs['message_ok'] = $post["message_ok_$form"]; |
|
| 310 | - } elseif (isset($erreurs['message_ok'])) { |
|
| 311 | - $valeurs['message_ok'] = $erreurs['message_ok']; |
|
| 312 | - } |
|
| 313 | - |
|
| 314 | - // accessibilite : encapsuler toutes les erreurs dans un role='alert' |
|
| 315 | - // uniquement si c'est une string et au premier niveau (on ne touche pas au tableaux) |
|
| 316 | - // et si $k ne commence pas par un _ (c'est bien une vrai erreur sur un vrai champ) |
|
| 317 | - if (html5_permis()) { |
|
| 318 | - foreach ($erreurs as $k => $v) { |
|
| 319 | - if (is_string($v) and strlen(trim($v)) and strpos($k, '_') !== 0) { |
|
| 320 | - // on encapsule dans un span car ces messages sont en general simple, juste du texte, et deja dans un span dans le form |
|
| 321 | - $valeurs['erreurs'][$k] = "<span role='alert'>" . $erreurs[$k] . '</span>'; |
|
| 322 | - } |
|
| 323 | - } |
|
| 324 | - } |
|
| 325 | - } |
|
| 326 | - |
|
| 327 | - return $valeurs; |
|
| 275 | + // empiler la lang en tant que premier argument implicite du CVT |
|
| 276 | + // pour permettre de la restaurer au moment du Verifier et du Traiter |
|
| 277 | + array_unshift($args, $GLOBALS['spip_lang']); |
|
| 278 | + |
|
| 279 | + $valeurs['formulaire_args'] = encoder_contexte_ajax($args, $form); |
|
| 280 | + $valeurs['erreurs'] = $erreurs; |
|
| 281 | + $valeurs['action'] = $action; |
|
| 282 | + $valeurs['form'] = $form; |
|
| 283 | + |
|
| 284 | + $valeurs['formulaire_sign'] = ''; |
|
| 285 | + if (!empty($GLOBALS['visiteur_session']['id_auteur'])) { |
|
| 286 | + $securiser_action = charger_fonction('securiser_action', 'inc'); |
|
| 287 | + $secu = $securiser_action($valeurs['form'], $valeurs['formulaire_args'], '', -1); |
|
| 288 | + $valeurs['formulaire_sign'] = $secu['hash']; |
|
| 289 | + } |
|
| 290 | + |
|
| 291 | + if (!isset($valeurs['id'])) { |
|
| 292 | + $valeurs['id'] = 'new'; |
|
| 293 | + } |
|
| 294 | + // editable peut venir de charger() ou de traiter() sinon |
|
| 295 | + if (!isset($valeurs['editable'])) { |
|
| 296 | + $valeurs['editable'] = $editable; |
|
| 297 | + } |
|
| 298 | + // dans tous les cas, renvoyer un espace ou vide (et pas un booleen) |
|
| 299 | + $valeurs['editable'] = ($valeurs['editable'] ? ' ' : ''); |
|
| 300 | + |
|
| 301 | + if ($je_suis_poste) { |
|
| 302 | + $valeurs['message_erreur'] = ''; |
|
| 303 | + if (isset($erreurs['message_erreur'])) { |
|
| 304 | + $valeurs['message_erreur'] = $erreurs['message_erreur']; |
|
| 305 | + } |
|
| 306 | + |
|
| 307 | + $valeurs['message_ok'] = ''; |
|
| 308 | + if (isset($post["message_ok_$form"])) { |
|
| 309 | + $valeurs['message_ok'] = $post["message_ok_$form"]; |
|
| 310 | + } elseif (isset($erreurs['message_ok'])) { |
|
| 311 | + $valeurs['message_ok'] = $erreurs['message_ok']; |
|
| 312 | + } |
|
| 313 | + |
|
| 314 | + // accessibilite : encapsuler toutes les erreurs dans un role='alert' |
|
| 315 | + // uniquement si c'est une string et au premier niveau (on ne touche pas au tableaux) |
|
| 316 | + // et si $k ne commence pas par un _ (c'est bien une vrai erreur sur un vrai champ) |
|
| 317 | + if (html5_permis()) { |
|
| 318 | + foreach ($erreurs as $k => $v) { |
|
| 319 | + if (is_string($v) and strlen(trim($v)) and strpos($k, '_') !== 0) { |
|
| 320 | + // on encapsule dans un span car ces messages sont en general simple, juste du texte, et deja dans un span dans le form |
|
| 321 | + $valeurs['erreurs'][$k] = "<span role='alert'>" . $erreurs[$k] . '</span>'; |
|
| 322 | + } |
|
| 323 | + } |
|
| 324 | + } |
|
| 325 | + } |
|
| 326 | + |
|
| 327 | + return $valeurs; |
|
| 328 | 328 | } |
| 329 | 329 | |
| 330 | 330 | /** |
@@ -336,51 +336,51 @@ discard block |
||
| 336 | 336 | * @return array |
| 337 | 337 | */ |
| 338 | 338 | function formulaire__charger($form, $args, $poste) { |
| 339 | - if ($charger_valeurs = charger_fonction('charger', "formulaires/$form", true)) { |
|
| 340 | - $valeurs = $charger_valeurs(...$args); |
|
| 341 | - } else { |
|
| 342 | - $valeurs = []; |
|
| 343 | - } |
|
| 344 | - |
|
| 345 | - $valeurs = pipeline( |
|
| 346 | - 'formulaire_charger', |
|
| 347 | - [ |
|
| 348 | - 'args' => ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste], |
|
| 349 | - 'data' => $valeurs |
|
| 350 | - ] |
|
| 351 | - ); |
|
| 352 | - |
|
| 353 | - // prise en charge CVT multi etape |
|
| 354 | - if (is_array($valeurs) and isset($valeurs['_etapes'])) { |
|
| 355 | - include_spip('inc/cvt_multietapes'); |
|
| 356 | - $valeurs = cvtmulti_formulaire_charger_etapes( |
|
| 357 | - ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste], |
|
| 358 | - $valeurs |
|
| 359 | - ); |
|
| 360 | - } |
|
| 361 | - |
|
| 362 | - // si $valeurs et false ou une chaine, pas de formulaire, donc pas de pipeline ! |
|
| 363 | - if (is_array($valeurs)) { |
|
| 364 | - if (!isset($valeurs['_pipelines'])) { |
|
| 365 | - $valeurs['_pipelines'] = []; |
|
| 366 | - } |
|
| 367 | - // l'ancien argument _pipeline devient maintenant _pipelines |
|
| 368 | - // reinjectons le vieux _pipeline au debut de _pipelines |
|
| 369 | - if (isset($valeurs['_pipeline'])) { |
|
| 370 | - $pipe = is_array($valeurs['_pipeline']) ? reset($valeurs['_pipeline']) : $valeurs['_pipeline']; |
|
| 371 | - $args = is_array($valeurs['_pipeline']) ? end($valeurs['_pipeline']) : []; |
|
| 372 | - |
|
| 373 | - $pipelines = [$pipe => $args]; |
|
| 374 | - $valeurs['_pipelines'] = array_merge($pipelines, $valeurs['_pipelines']); |
|
| 375 | - } |
|
| 376 | - |
|
| 377 | - // et enfin, ajoutons systematiquement un pipeline sur le squelette du formulaire |
|
| 378 | - // qui constitue le cas le plus courant d'utilisation du pipeline recuperer_fond |
|
| 379 | - // (performance, cela evite de s'injecter dans recuperer_fond utilise pour *tous* les squelettes) |
|
| 380 | - $valeurs['_pipelines']['formulaire_fond'] = ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste]; |
|
| 381 | - } |
|
| 382 | - |
|
| 383 | - return $valeurs; |
|
| 339 | + if ($charger_valeurs = charger_fonction('charger', "formulaires/$form", true)) { |
|
| 340 | + $valeurs = $charger_valeurs(...$args); |
|
| 341 | + } else { |
|
| 342 | + $valeurs = []; |
|
| 343 | + } |
|
| 344 | + |
|
| 345 | + $valeurs = pipeline( |
|
| 346 | + 'formulaire_charger', |
|
| 347 | + [ |
|
| 348 | + 'args' => ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste], |
|
| 349 | + 'data' => $valeurs |
|
| 350 | + ] |
|
| 351 | + ); |
|
| 352 | + |
|
| 353 | + // prise en charge CVT multi etape |
|
| 354 | + if (is_array($valeurs) and isset($valeurs['_etapes'])) { |
|
| 355 | + include_spip('inc/cvt_multietapes'); |
|
| 356 | + $valeurs = cvtmulti_formulaire_charger_etapes( |
|
| 357 | + ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste], |
|
| 358 | + $valeurs |
|
| 359 | + ); |
|
| 360 | + } |
|
| 361 | + |
|
| 362 | + // si $valeurs et false ou une chaine, pas de formulaire, donc pas de pipeline ! |
|
| 363 | + if (is_array($valeurs)) { |
|
| 364 | + if (!isset($valeurs['_pipelines'])) { |
|
| 365 | + $valeurs['_pipelines'] = []; |
|
| 366 | + } |
|
| 367 | + // l'ancien argument _pipeline devient maintenant _pipelines |
|
| 368 | + // reinjectons le vieux _pipeline au debut de _pipelines |
|
| 369 | + if (isset($valeurs['_pipeline'])) { |
|
| 370 | + $pipe = is_array($valeurs['_pipeline']) ? reset($valeurs['_pipeline']) : $valeurs['_pipeline']; |
|
| 371 | + $args = is_array($valeurs['_pipeline']) ? end($valeurs['_pipeline']) : []; |
|
| 372 | + |
|
| 373 | + $pipelines = [$pipe => $args]; |
|
| 374 | + $valeurs['_pipelines'] = array_merge($pipelines, $valeurs['_pipelines']); |
|
| 375 | + } |
|
| 376 | + |
|
| 377 | + // et enfin, ajoutons systematiquement un pipeline sur le squelette du formulaire |
|
| 378 | + // qui constitue le cas le plus courant d'utilisation du pipeline recuperer_fond |
|
| 379 | + // (performance, cela evite de s'injecter dans recuperer_fond utilise pour *tous* les squelettes) |
|
| 380 | + $valeurs['_pipelines']['formulaire_fond'] = ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste]; |
|
| 381 | + } |
|
| 382 | + |
|
| 383 | + return $valeurs; |
|
| 384 | 384 | } |
| 385 | 385 | |
| 386 | 386 | /** |
@@ -399,9 +399,9 @@ discard block |
||
| 399 | 399 | * @return bool |
| 400 | 400 | */ |
| 401 | 401 | function formulaire__identifier($form, $args, $p) { |
| 402 | - if ($identifier_args = charger_fonction('identifier', "formulaires/$form", true)) { |
|
| 403 | - return $identifier_args(...$args) === $identifier_args(...$p); |
|
| 404 | - } |
|
| 402 | + if ($identifier_args = charger_fonction('identifier', "formulaires/$form", true)) { |
|
| 403 | + return $identifier_args(...$args) === $identifier_args(...$p); |
|
| 404 | + } |
|
| 405 | 405 | |
| 406 | - return $args === $p; |
|
| 406 | + return $args === $p; |
|
| 407 | 407 | } |
@@ -38,7 +38,7 @@ discard block |
||
| 38 | 38 | if ($max_prof > 0) { |
| 39 | 39 | return array_map( |
| 40 | 40 | function($v) use ($max_prof) { |
| 41 | - return protege_champ($v, $max_prof-1); |
|
| 41 | + return protege_champ($v, $max_prof - 1); |
|
| 42 | 42 | }, |
| 43 | 43 | $valeur |
| 44 | 44 | ); |
@@ -318,7 +318,7 @@ discard block |
||
| 318 | 318 | foreach ($erreurs as $k => $v) { |
| 319 | 319 | if (is_string($v) and strlen(trim($v)) and strpos($k, '_') !== 0) { |
| 320 | 320 | // on encapsule dans un span car ces messages sont en general simple, juste du texte, et deja dans un span dans le form |
| 321 | - $valeurs['erreurs'][$k] = "<span role='alert'>" . $erreurs[$k] . '</span>'; |
|
| 321 | + $valeurs['erreurs'][$k] = "<span role='alert'>".$erreurs[$k].'</span>'; |
|
| 322 | 322 | } |
| 323 | 323 | } |
| 324 | 324 | } |
@@ -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 | /** |
@@ -27,24 +27,24 @@ discard block |
||
| 27 | 27 | * Environnement du formulaire |
| 28 | 28 | **/ |
| 29 | 29 | function formulaires_configurer_reducteur_charger_dist() { |
| 30 | - $valeurs = []; |
|
| 31 | - foreach ( |
|
| 32 | - [ |
|
| 33 | - 'image_process', |
|
| 34 | - 'formats_graphiques', |
|
| 35 | - 'creer_preview', |
|
| 36 | - 'taille_preview', |
|
| 37 | - ] as $m |
|
| 38 | - ) { |
|
| 39 | - $valeurs[$m] = $GLOBALS['meta'][$m] ?? null; |
|
| 40 | - } |
|
| 41 | - |
|
| 42 | - $valeurs['taille_preview'] = (int) $valeurs['taille_preview']; |
|
| 43 | - if ($valeurs['taille_preview'] < 10) { |
|
| 44 | - $valeurs['taille_preview'] = 120; |
|
| 45 | - } |
|
| 46 | - |
|
| 47 | - return $valeurs; |
|
| 30 | + $valeurs = []; |
|
| 31 | + foreach ( |
|
| 32 | + [ |
|
| 33 | + 'image_process', |
|
| 34 | + 'formats_graphiques', |
|
| 35 | + 'creer_preview', |
|
| 36 | + 'taille_preview', |
|
| 37 | + ] as $m |
|
| 38 | + ) { |
|
| 39 | + $valeurs[$m] = $GLOBALS['meta'][$m] ?? null; |
|
| 40 | + } |
|
| 41 | + |
|
| 42 | + $valeurs['taille_preview'] = (int) $valeurs['taille_preview']; |
|
| 43 | + if ($valeurs['taille_preview'] < 10) { |
|
| 44 | + $valeurs['taille_preview'] = 120; |
|
| 45 | + } |
|
| 46 | + |
|
| 47 | + return $valeurs; |
|
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | |
@@ -55,52 +55,52 @@ discard block |
||
| 55 | 55 | * Retours des traitements |
| 56 | 56 | **/ |
| 57 | 57 | function formulaires_configurer_reducteur_traiter_dist() { |
| 58 | - $res = ['editable' => true]; |
|
| 59 | - |
|
| 60 | - if (is_array($image_process = _request('image_process_'))) { |
|
| 61 | - $image_process = array_keys($image_process); |
|
| 62 | - $image_process = reset($image_process); |
|
| 63 | - |
|
| 64 | - // application du choix de vignette |
|
| 65 | - if ($image_process) { |
|
| 66 | - // mettre a jour les formats graphiques lisibles |
|
| 67 | - switch ($image_process) { |
|
| 68 | - case 'gd2': |
|
| 69 | - $formats_graphiques = $GLOBALS['meta']['gd_formats_read']; |
|
| 70 | - break; |
|
| 71 | - case 'netpbm': |
|
| 72 | - $formats_graphiques = $GLOBALS['meta']['netpbm_formats']; |
|
| 73 | - break; |
|
| 74 | - case 'convert': |
|
| 75 | - case 'imagick': |
|
| 76 | - $formats_graphiques = 'gif,jpg,png,webp'; |
|
| 77 | - break; |
|
| 78 | - default: #debug |
|
| 79 | - $formats_graphiques = ''; |
|
| 80 | - $image_process = 'non'; |
|
| 81 | - break; |
|
| 82 | - } |
|
| 83 | - ecrire_meta('formats_graphiques', $formats_graphiques, 'non'); |
|
| 84 | - ecrire_meta('image_process', $image_process, 'non'); |
|
| 85 | - } |
|
| 86 | - } |
|
| 87 | - |
|
| 88 | - foreach ( |
|
| 89 | - [ |
|
| 90 | - 'creer_preview' |
|
| 91 | - ] as $m |
|
| 92 | - ) { |
|
| 93 | - if (!is_null($v = _request($m))) { |
|
| 94 | - ecrire_meta($m, $v == 'oui' ? 'oui' : 'non'); |
|
| 95 | - } |
|
| 96 | - } |
|
| 97 | - if (!is_null($v = _request('taille_preview'))) { |
|
| 98 | - ecrire_meta('taille_preview', (int) $v); |
|
| 99 | - } |
|
| 100 | - |
|
| 101 | - $res['message_ok'] = _T('config_info_enregistree'); |
|
| 102 | - |
|
| 103 | - return $res; |
|
| 58 | + $res = ['editable' => true]; |
|
| 59 | + |
|
| 60 | + if (is_array($image_process = _request('image_process_'))) { |
|
| 61 | + $image_process = array_keys($image_process); |
|
| 62 | + $image_process = reset($image_process); |
|
| 63 | + |
|
| 64 | + // application du choix de vignette |
|
| 65 | + if ($image_process) { |
|
| 66 | + // mettre a jour les formats graphiques lisibles |
|
| 67 | + switch ($image_process) { |
|
| 68 | + case 'gd2': |
|
| 69 | + $formats_graphiques = $GLOBALS['meta']['gd_formats_read']; |
|
| 70 | + break; |
|
| 71 | + case 'netpbm': |
|
| 72 | + $formats_graphiques = $GLOBALS['meta']['netpbm_formats']; |
|
| 73 | + break; |
|
| 74 | + case 'convert': |
|
| 75 | + case 'imagick': |
|
| 76 | + $formats_graphiques = 'gif,jpg,png,webp'; |
|
| 77 | + break; |
|
| 78 | + default: #debug |
|
| 79 | + $formats_graphiques = ''; |
|
| 80 | + $image_process = 'non'; |
|
| 81 | + break; |
|
| 82 | + } |
|
| 83 | + ecrire_meta('formats_graphiques', $formats_graphiques, 'non'); |
|
| 84 | + ecrire_meta('image_process', $image_process, 'non'); |
|
| 85 | + } |
|
| 86 | + } |
|
| 87 | + |
|
| 88 | + foreach ( |
|
| 89 | + [ |
|
| 90 | + 'creer_preview' |
|
| 91 | + ] as $m |
|
| 92 | + ) { |
|
| 93 | + if (!is_null($v = _request($m))) { |
|
| 94 | + ecrire_meta($m, $v == 'oui' ? 'oui' : 'non'); |
|
| 95 | + } |
|
| 96 | + } |
|
| 97 | + if (!is_null($v = _request('taille_preview'))) { |
|
| 98 | + ecrire_meta('taille_preview', (int) $v); |
|
| 99 | + } |
|
| 100 | + |
|
| 101 | + $res['message_ok'] = _T('config_info_enregistree'); |
|
| 102 | + |
|
| 103 | + return $res; |
|
| 104 | 104 | } |
| 105 | 105 | |
| 106 | 106 | /** |
@@ -113,17 +113,17 @@ discard block |
||
| 113 | 113 | * URL d'action pour tester la librairie graphique en créant une vignette |
| 114 | 114 | **/ |
| 115 | 115 | function url_vignette_choix(string $process): string { |
| 116 | - $ok = match ($process) { |
|
| 117 | - 'gd2' => function_exists('ImageCreateTrueColor'), |
|
| 118 | - 'netpbm' => !(defined('_PNMSCALE_COMMAND') && _PNMSCALE_COMMAND == ''), |
|
| 119 | - 'imagick' => method_exists(\Imagick::class, 'readImage'), |
|
| 120 | - 'convert' => !(defined('_CONVERT_COMMAND') && _CONVERT_COMMAND == ''), |
|
| 121 | - default => false, |
|
| 122 | - }; |
|
| 123 | - |
|
| 124 | - if (!$ok) { |
|
| 125 | - return ''; |
|
| 126 | - } |
|
| 127 | - |
|
| 128 | - return generer_url_action('tester', "arg=$process&time=" . time()); |
|
| 116 | + $ok = match ($process) { |
|
| 117 | + 'gd2' => function_exists('ImageCreateTrueColor'), |
|
| 118 | + 'netpbm' => !(defined('_PNMSCALE_COMMAND') && _PNMSCALE_COMMAND == ''), |
|
| 119 | + 'imagick' => method_exists(\Imagick::class, 'readImage'), |
|
| 120 | + 'convert' => !(defined('_CONVERT_COMMAND') && _CONVERT_COMMAND == ''), |
|
| 121 | + default => false, |
|
| 122 | + }; |
|
| 123 | + |
|
| 124 | + if (!$ok) { |
|
| 125 | + return ''; |
|
| 126 | + } |
|
| 127 | + |
|
| 128 | + return generer_url_action('tester', "arg=$process&time=" . time()); |
|
| 129 | 129 | } |
@@ -125,5 +125,5 @@ |
||
| 125 | 125 | return ''; |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | - return generer_url_action('tester', "arg=$process&time=" . time()); |
|
| 128 | + return generer_url_action('tester', "arg=$process&time=".time()); |
|
| 129 | 129 | } |
@@ -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 | /** |
@@ -29,101 +29,101 @@ discard block |
||
| 29 | 29 | * redirige sur l'image ainsi créée (sinon sur une image d'echec). |
| 30 | 30 | **/ |
| 31 | 31 | function action_tester_dist() { |
| 32 | - $arg = _request('arg'); |
|
| 33 | - |
|
| 34 | - // verifier les formats acceptes par GD |
|
| 35 | - if ($arg === 'gd2') { |
|
| 36 | - $gd_formats = []; |
|
| 37 | - |
|
| 38 | - if (function_exists('imagetypes')) { |
|
| 39 | - if (imagetypes() & IMG_GIF) { |
|
| 40 | - $gd_formats[] = 'gif'; |
|
| 41 | - } |
|
| 42 | - if (imagetypes() & IMG_JPG) { |
|
| 43 | - $gd_formats[] = 'jpg'; |
|
| 44 | - } |
|
| 45 | - if (imagetypes() & IMG_PNG) { |
|
| 46 | - $gd_formats[] = 'png'; |
|
| 47 | - } |
|
| 48 | - if (imagetypes() & IMG_WEBP) { |
|
| 49 | - $gd_formats[] = 'webp'; |
|
| 50 | - } |
|
| 51 | - } |
|
| 52 | - |
|
| 53 | - $gd_formats = implode(',', $gd_formats); |
|
| 54 | - ecrire_meta('gd_formats_read', $gd_formats); |
|
| 55 | - ecrire_meta('gd_formats', $gd_formats); |
|
| 56 | - |
|
| 57 | - } elseif ($arg == 'netpbm') { |
|
| 58 | - // verifier les formats netpbm |
|
| 59 | - if (!defined('_PNMSCALE_COMMAND')) { |
|
| 60 | - define('_PNMSCALE_COMMAND', 'pnmscale'); |
|
| 61 | - } // Securite : mes_options.php peut preciser le chemin absolu |
|
| 62 | - if (_PNMSCALE_COMMAND == '') { |
|
| 63 | - return; |
|
| 64 | - } |
|
| 65 | - $netpbm_formats = []; |
|
| 66 | - |
|
| 67 | - $jpegtopnm_command = str_replace( |
|
| 68 | - 'pnmscale', |
|
| 69 | - 'jpegtopnm', |
|
| 70 | - _PNMSCALE_COMMAND |
|
| 71 | - ); |
|
| 72 | - $pnmtojpeg_command = str_replace( |
|
| 73 | - 'pnmscale', |
|
| 74 | - 'pnmtojpeg', |
|
| 75 | - _PNMSCALE_COMMAND |
|
| 76 | - ); |
|
| 77 | - |
|
| 78 | - $vignette = _ROOT_IMG_PACK . 'test.jpg'; |
|
| 79 | - $dest = _DIR_VAR . 'test-jpg.jpg'; |
|
| 80 | - $commande = "$jpegtopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 81 | - spip_log($commande); |
|
| 82 | - exec($commande); |
|
| 83 | - if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
|
| 84 | - $netpbm_formats[] = 'jpg'; |
|
| 85 | - } |
|
| 86 | - $giftopnm_command = str_replace('pnmscale', 'giftopnm', _PNMSCALE_COMMAND); |
|
| 87 | - $pnmtojpeg_command = str_replace('pnmscale', 'pnmtojpeg', _PNMSCALE_COMMAND); |
|
| 88 | - $vignette = _ROOT_IMG_PACK . 'test.gif'; |
|
| 89 | - $dest = _DIR_VAR . 'test-gif.jpg'; |
|
| 90 | - $commande = "$giftopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 91 | - spip_log($commande); |
|
| 92 | - exec($commande); |
|
| 93 | - if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
|
| 94 | - $netpbm_formats[] = 'gif'; |
|
| 95 | - } |
|
| 96 | - |
|
| 97 | - $pngtopnm_command = str_replace('pnmscale', 'pngtopnm', _PNMSCALE_COMMAND); |
|
| 98 | - $vignette = _ROOT_IMG_PACK . 'test.png'; |
|
| 99 | - $dest = _DIR_VAR . 'test-gif.jpg'; |
|
| 100 | - $commande = "$pngtopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 101 | - spip_log($commande); |
|
| 102 | - exec($commande); |
|
| 103 | - if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
|
| 104 | - $netpbm_formats[] = 'png'; |
|
| 105 | - } |
|
| 106 | - |
|
| 107 | - ecrire_meta('netpbm_formats', implode(',', $netpbm_formats ?: [])); |
|
| 108 | - } |
|
| 109 | - |
|
| 110 | - // et maintenant envoyer la vignette de tests |
|
| 111 | - if (in_array($arg, ['gd2', 'imagick', 'convert', 'netpbm'])) { |
|
| 112 | - include_spip('inc/filtres'); |
|
| 113 | - include_spip('inc/filtres_images_mini'); |
|
| 114 | - $taille_preview = 150; |
|
| 115 | - $image = _image_valeurs_trans(_DIR_IMG_PACK . 'test_image.jpg', "reduire-$taille_preview-$taille_preview", 'jpg'); |
|
| 116 | - |
|
| 117 | - $image['fichier_dest'] = _DIR_VAR . "test_$arg"; |
|
| 118 | - |
|
| 119 | - if ( |
|
| 120 | - ($preview = _image_creer_vignette($image, $taille_preview, $taille_preview, $arg, true)) |
|
| 121 | - && $preview['width'] * $preview['height'] > 0 |
|
| 122 | - ) { |
|
| 123 | - redirige_par_entete($preview['fichier']); |
|
| 124 | - } |
|
| 125 | - } |
|
| 126 | - |
|
| 127 | - # image echec |
|
| 128 | - redirige_par_entete(chemin_image('echec-reducteur-xx.svg')); |
|
| 32 | + $arg = _request('arg'); |
|
| 33 | + |
|
| 34 | + // verifier les formats acceptes par GD |
|
| 35 | + if ($arg === 'gd2') { |
|
| 36 | + $gd_formats = []; |
|
| 37 | + |
|
| 38 | + if (function_exists('imagetypes')) { |
|
| 39 | + if (imagetypes() & IMG_GIF) { |
|
| 40 | + $gd_formats[] = 'gif'; |
|
| 41 | + } |
|
| 42 | + if (imagetypes() & IMG_JPG) { |
|
| 43 | + $gd_formats[] = 'jpg'; |
|
| 44 | + } |
|
| 45 | + if (imagetypes() & IMG_PNG) { |
|
| 46 | + $gd_formats[] = 'png'; |
|
| 47 | + } |
|
| 48 | + if (imagetypes() & IMG_WEBP) { |
|
| 49 | + $gd_formats[] = 'webp'; |
|
| 50 | + } |
|
| 51 | + } |
|
| 52 | + |
|
| 53 | + $gd_formats = implode(',', $gd_formats); |
|
| 54 | + ecrire_meta('gd_formats_read', $gd_formats); |
|
| 55 | + ecrire_meta('gd_formats', $gd_formats); |
|
| 56 | + |
|
| 57 | + } elseif ($arg == 'netpbm') { |
|
| 58 | + // verifier les formats netpbm |
|
| 59 | + if (!defined('_PNMSCALE_COMMAND')) { |
|
| 60 | + define('_PNMSCALE_COMMAND', 'pnmscale'); |
|
| 61 | + } // Securite : mes_options.php peut preciser le chemin absolu |
|
| 62 | + if (_PNMSCALE_COMMAND == '') { |
|
| 63 | + return; |
|
| 64 | + } |
|
| 65 | + $netpbm_formats = []; |
|
| 66 | + |
|
| 67 | + $jpegtopnm_command = str_replace( |
|
| 68 | + 'pnmscale', |
|
| 69 | + 'jpegtopnm', |
|
| 70 | + _PNMSCALE_COMMAND |
|
| 71 | + ); |
|
| 72 | + $pnmtojpeg_command = str_replace( |
|
| 73 | + 'pnmscale', |
|
| 74 | + 'pnmtojpeg', |
|
| 75 | + _PNMSCALE_COMMAND |
|
| 76 | + ); |
|
| 77 | + |
|
| 78 | + $vignette = _ROOT_IMG_PACK . 'test.jpg'; |
|
| 79 | + $dest = _DIR_VAR . 'test-jpg.jpg'; |
|
| 80 | + $commande = "$jpegtopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 81 | + spip_log($commande); |
|
| 82 | + exec($commande); |
|
| 83 | + if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
|
| 84 | + $netpbm_formats[] = 'jpg'; |
|
| 85 | + } |
|
| 86 | + $giftopnm_command = str_replace('pnmscale', 'giftopnm', _PNMSCALE_COMMAND); |
|
| 87 | + $pnmtojpeg_command = str_replace('pnmscale', 'pnmtojpeg', _PNMSCALE_COMMAND); |
|
| 88 | + $vignette = _ROOT_IMG_PACK . 'test.gif'; |
|
| 89 | + $dest = _DIR_VAR . 'test-gif.jpg'; |
|
| 90 | + $commande = "$giftopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 91 | + spip_log($commande); |
|
| 92 | + exec($commande); |
|
| 93 | + if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
|
| 94 | + $netpbm_formats[] = 'gif'; |
|
| 95 | + } |
|
| 96 | + |
|
| 97 | + $pngtopnm_command = str_replace('pnmscale', 'pngtopnm', _PNMSCALE_COMMAND); |
|
| 98 | + $vignette = _ROOT_IMG_PACK . 'test.png'; |
|
| 99 | + $dest = _DIR_VAR . 'test-gif.jpg'; |
|
| 100 | + $commande = "$pngtopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 101 | + spip_log($commande); |
|
| 102 | + exec($commande); |
|
| 103 | + if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
|
| 104 | + $netpbm_formats[] = 'png'; |
|
| 105 | + } |
|
| 106 | + |
|
| 107 | + ecrire_meta('netpbm_formats', implode(',', $netpbm_formats ?: [])); |
|
| 108 | + } |
|
| 109 | + |
|
| 110 | + // et maintenant envoyer la vignette de tests |
|
| 111 | + if (in_array($arg, ['gd2', 'imagick', 'convert', 'netpbm'])) { |
|
| 112 | + include_spip('inc/filtres'); |
|
| 113 | + include_spip('inc/filtres_images_mini'); |
|
| 114 | + $taille_preview = 150; |
|
| 115 | + $image = _image_valeurs_trans(_DIR_IMG_PACK . 'test_image.jpg', "reduire-$taille_preview-$taille_preview", 'jpg'); |
|
| 116 | + |
|
| 117 | + $image['fichier_dest'] = _DIR_VAR . "test_$arg"; |
|
| 118 | + |
|
| 119 | + if ( |
|
| 120 | + ($preview = _image_creer_vignette($image, $taille_preview, $taille_preview, $arg, true)) |
|
| 121 | + && $preview['width'] * $preview['height'] > 0 |
|
| 122 | + ) { |
|
| 123 | + redirige_par_entete($preview['fichier']); |
|
| 124 | + } |
|
| 125 | + } |
|
| 126 | + |
|
| 127 | + # image echec |
|
| 128 | + redirige_par_entete(chemin_image('echec-reducteur-xx.svg')); |
|
| 129 | 129 | } |
@@ -75,9 +75,9 @@ discard block |
||
| 75 | 75 | _PNMSCALE_COMMAND |
| 76 | 76 | ); |
| 77 | 77 | |
| 78 | - $vignette = _ROOT_IMG_PACK . 'test.jpg'; |
|
| 79 | - $dest = _DIR_VAR . 'test-jpg.jpg'; |
|
| 80 | - $commande = "$jpegtopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 78 | + $vignette = _ROOT_IMG_PACK.'test.jpg'; |
|
| 79 | + $dest = _DIR_VAR.'test-jpg.jpg'; |
|
| 80 | + $commande = "$jpegtopnm_command $vignette | "._PNMSCALE_COMMAND." -width 10 | $pnmtojpeg_command > $dest"; |
|
| 81 | 81 | spip_log($commande); |
| 82 | 82 | exec($commande); |
| 83 | 83 | if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
@@ -85,9 +85,9 @@ discard block |
||
| 85 | 85 | } |
| 86 | 86 | $giftopnm_command = str_replace('pnmscale', 'giftopnm', _PNMSCALE_COMMAND); |
| 87 | 87 | $pnmtojpeg_command = str_replace('pnmscale', 'pnmtojpeg', _PNMSCALE_COMMAND); |
| 88 | - $vignette = _ROOT_IMG_PACK . 'test.gif'; |
|
| 89 | - $dest = _DIR_VAR . 'test-gif.jpg'; |
|
| 90 | - $commande = "$giftopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 88 | + $vignette = _ROOT_IMG_PACK.'test.gif'; |
|
| 89 | + $dest = _DIR_VAR.'test-gif.jpg'; |
|
| 90 | + $commande = "$giftopnm_command $vignette | "._PNMSCALE_COMMAND." -width 10 | $pnmtojpeg_command > $dest"; |
|
| 91 | 91 | spip_log($commande); |
| 92 | 92 | exec($commande); |
| 93 | 93 | if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
@@ -95,9 +95,9 @@ discard block |
||
| 95 | 95 | } |
| 96 | 96 | |
| 97 | 97 | $pngtopnm_command = str_replace('pnmscale', 'pngtopnm', _PNMSCALE_COMMAND); |
| 98 | - $vignette = _ROOT_IMG_PACK . 'test.png'; |
|
| 99 | - $dest = _DIR_VAR . 'test-gif.jpg'; |
|
| 100 | - $commande = "$pngtopnm_command $vignette | " . _PNMSCALE_COMMAND . " -width 10 | $pnmtojpeg_command > $dest"; |
|
| 98 | + $vignette = _ROOT_IMG_PACK.'test.png'; |
|
| 99 | + $dest = _DIR_VAR.'test-gif.jpg'; |
|
| 100 | + $commande = "$pngtopnm_command $vignette | "._PNMSCALE_COMMAND." -width 10 | $pnmtojpeg_command > $dest"; |
|
| 101 | 101 | spip_log($commande); |
| 102 | 102 | exec($commande); |
| 103 | 103 | if (($taille = @getimagesize($dest)) && $taille[1] == 10) { |
@@ -112,9 +112,9 @@ discard block |
||
| 112 | 112 | include_spip('inc/filtres'); |
| 113 | 113 | include_spip('inc/filtres_images_mini'); |
| 114 | 114 | $taille_preview = 150; |
| 115 | - $image = _image_valeurs_trans(_DIR_IMG_PACK . 'test_image.jpg', "reduire-$taille_preview-$taille_preview", 'jpg'); |
|
| 115 | + $image = _image_valeurs_trans(_DIR_IMG_PACK.'test_image.jpg', "reduire-$taille_preview-$taille_preview", 'jpg'); |
|
| 116 | 116 | |
| 117 | - $image['fichier_dest'] = _DIR_VAR . "test_$arg"; |
|
| 117 | + $image['fichier_dest'] = _DIR_VAR."test_$arg"; |
|
| 118 | 118 | |
| 119 | 119 | if ( |
| 120 | 120 | ($preview = _image_creer_vignette($image, $taille_preview, $taille_preview, $arg, true)) |
@@ -2,437 +2,437 @@ discard block |
||
| 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 | - 'activer_plugin' => 'Activer le plugin', |
|
| 12 | - 'affichage' => 'Affichage', |
|
| 13 | - 'aide_non_disponible' => 'Cette partie de l’aide en ligne n’est pas encore disponible dans cette langue.', |
|
| 14 | - 'annuler_recherche' => 'Annuler la recherche', |
|
| 15 | - 'auteur' => 'Auteur :', |
|
| 16 | - 'avis_acces_interdit' => 'Accès interdit.', |
|
| 17 | - 'avis_acces_interdit_prive' => 'Vous n’avez pas le droit d’accéder à la page <b>@exec@</b>.', |
|
| 18 | - 'avis_article_modifie' => 'Attention, @nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes', |
|
| 19 | - 'avis_aucun_resultat' => 'Aucun résultat.', |
|
| 20 | - 'avis_base_inaccessible' => 'Impossible de se connecter à la base de données @base@.', |
|
| 21 | - 'avis_chemin_invalide_1' => 'Le chemin que vous avez choisi', |
|
| 22 | - 'avis_chemin_invalide_2' => 'ne semble pas valide. Veuillez retourner à la page précédente et vérifier les informations fournies.', |
|
| 23 | - 'avis_connexion_echec_1' => 'La connexion à la base de données a échoué.', |
|
| 24 | - 'avis_connexion_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.', |
|
| 25 | - 'avis_connexion_echec_3' => '<b>N.B.</b> Sur de nombreux serveurs, vous devez <b>demander</b> l’activation de votre accès à la base de données avant de pouvoir l’utiliser. Si vous ne pouvez vous connecter, vérifiez que vous avez effectué cette démarche.', |
|
| 26 | - 'avis_connexion_erreur_creer_base' => 'La base de données n’a pas pu être créée.', |
|
| 27 | - 'avis_connexion_erreur_fichier_cle_manquant_1' => 'L’installation doit être faite par un webmestre avec un backup des clés et son mot de passe', |
|
| 28 | - 'avis_connexion_erreur_fichier_cle_manquant_2' => 'L’installation doit être faite par un webmestre avec un backup des clés', |
|
| 29 | - 'avis_connexion_erreur_nom_base' => 'Le nom de la base ne peut contenir que des lettres, des chiffres et des tirets', |
|
| 30 | - 'avis_connexion_ldap_echec_1' => 'La connexion au serveur LDAP a échoué.', |
|
| 31 | - 'avis_connexion_ldap_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.', |
|
| 32 | - 'avis_connexion_ldap_echec_3' => 'Alternativement, n’utilisez pas le support LDAP pour importer des utilisateurs.', |
|
| 33 | - 'avis_deplacement_rubrique' => 'Attention ! Cette rubrique contient @contient_breves@ brève@scb@ : si vous la déplacez, veuillez cocher cette case de confirmation.', |
|
| 34 | - 'avis_erreur_connexion_mysql' => 'Erreur de connexion SQL', |
|
| 35 | - 'avis_erreur_creation_compte' => 'Echec lors de l’initialisation du compte', |
|
| 36 | - 'avis_espace_interdit' => '<b>Espace interdit</b> <div>SPIP est déjà installé.</div>', |
|
| 37 | - 'avis_lecture_noms_bases_1' => 'Le programme d’installation n’a pas pu lire les noms des bases de données installées.', |
|
| 38 | - 'avis_lecture_noms_bases_2' => 'Soit aucune base n’est disponible, soit la fonction permettant de lister les bases a été désactivée |
|
| 10 | + // A |
|
| 11 | + 'activer_plugin' => 'Activer le plugin', |
|
| 12 | + 'affichage' => 'Affichage', |
|
| 13 | + 'aide_non_disponible' => 'Cette partie de l’aide en ligne n’est pas encore disponible dans cette langue.', |
|
| 14 | + 'annuler_recherche' => 'Annuler la recherche', |
|
| 15 | + 'auteur' => 'Auteur :', |
|
| 16 | + 'avis_acces_interdit' => 'Accès interdit.', |
|
| 17 | + 'avis_acces_interdit_prive' => 'Vous n’avez pas le droit d’accéder à la page <b>@exec@</b>.', |
|
| 18 | + 'avis_article_modifie' => 'Attention, @nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes', |
|
| 19 | + 'avis_aucun_resultat' => 'Aucun résultat.', |
|
| 20 | + 'avis_base_inaccessible' => 'Impossible de se connecter à la base de données @base@.', |
|
| 21 | + 'avis_chemin_invalide_1' => 'Le chemin que vous avez choisi', |
|
| 22 | + 'avis_chemin_invalide_2' => 'ne semble pas valide. Veuillez retourner à la page précédente et vérifier les informations fournies.', |
|
| 23 | + 'avis_connexion_echec_1' => 'La connexion à la base de données a échoué.', |
|
| 24 | + 'avis_connexion_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.', |
|
| 25 | + 'avis_connexion_echec_3' => '<b>N.B.</b> Sur de nombreux serveurs, vous devez <b>demander</b> l’activation de votre accès à la base de données avant de pouvoir l’utiliser. Si vous ne pouvez vous connecter, vérifiez que vous avez effectué cette démarche.', |
|
| 26 | + 'avis_connexion_erreur_creer_base' => 'La base de données n’a pas pu être créée.', |
|
| 27 | + 'avis_connexion_erreur_fichier_cle_manquant_1' => 'L’installation doit être faite par un webmestre avec un backup des clés et son mot de passe', |
|
| 28 | + 'avis_connexion_erreur_fichier_cle_manquant_2' => 'L’installation doit être faite par un webmestre avec un backup des clés', |
|
| 29 | + 'avis_connexion_erreur_nom_base' => 'Le nom de la base ne peut contenir que des lettres, des chiffres et des tirets', |
|
| 30 | + 'avis_connexion_ldap_echec_1' => 'La connexion au serveur LDAP a échoué.', |
|
| 31 | + 'avis_connexion_ldap_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.', |
|
| 32 | + 'avis_connexion_ldap_echec_3' => 'Alternativement, n’utilisez pas le support LDAP pour importer des utilisateurs.', |
|
| 33 | + 'avis_deplacement_rubrique' => 'Attention ! Cette rubrique contient @contient_breves@ brève@scb@ : si vous la déplacez, veuillez cocher cette case de confirmation.', |
|
| 34 | + 'avis_erreur_connexion_mysql' => 'Erreur de connexion SQL', |
|
| 35 | + 'avis_erreur_creation_compte' => 'Echec lors de l’initialisation du compte', |
|
| 36 | + 'avis_espace_interdit' => '<b>Espace interdit</b> <div>SPIP est déjà installé.</div>', |
|
| 37 | + 'avis_lecture_noms_bases_1' => 'Le programme d’installation n’a pas pu lire les noms des bases de données installées.', |
|
| 38 | + 'avis_lecture_noms_bases_2' => 'Soit aucune base n’est disponible, soit la fonction permettant de lister les bases a été désactivée |
|
| 39 | 39 | pour des raisons de sécurité (ce qui est le cas chez de nombreux hébergeurs).', |
| 40 | - 'avis_lecture_noms_bases_3' => 'Dans la seconde alternative, il est probable qu’une base portant votre nom de login soit utilisable :', |
|
| 41 | - 'avis_non_acces_page' => 'Vous n’avez pas accès à cette page.', |
|
| 42 | - 'avis_operation_echec' => 'L’opération a échoué.', |
|
| 43 | - 'avis_operation_impossible' => 'Opération impossible', |
|
| 44 | - 'avis_suppression_base' => 'ATTENTION, la suppression des données est irréversible', |
|
| 40 | + 'avis_lecture_noms_bases_3' => 'Dans la seconde alternative, il est probable qu’une base portant votre nom de login soit utilisable :', |
|
| 41 | + 'avis_non_acces_page' => 'Vous n’avez pas accès à cette page.', |
|
| 42 | + 'avis_operation_echec' => 'L’opération a échoué.', |
|
| 43 | + 'avis_operation_impossible' => 'Opération impossible', |
|
| 44 | + 'avis_suppression_base' => 'ATTENTION, la suppression des données est irréversible', |
|
| 45 | 45 | |
| 46 | - // B |
|
| 47 | - 'bouton_acces_ldap' => 'Ajouter l’accès à LDAP', |
|
| 48 | - 'bouton_ajouter' => 'Ajouter', |
|
| 49 | - 'bouton_annuler' => 'Annuler', |
|
| 50 | - 'bouton_cache_activer' => 'Réactiver le cache', |
|
| 51 | - 'bouton_cache_desactiver' => 'Désactiver temporairement le cache', |
|
| 52 | - 'bouton_demande_publication' => 'Demander la publication de cet article', |
|
| 53 | - 'bouton_desactive_tout' => 'Tout désactiver', |
|
| 54 | - 'bouton_desinstaller' => 'Désinstaller', |
|
| 55 | - 'bouton_effacer_tout' => 'Effacer TOUT', |
|
| 56 | - 'bouton_envoyer_message' => 'Message définitif : envoyer', |
|
| 57 | - 'bouton_fermer' => 'Fermer', |
|
| 58 | - 'bouton_mettre_a_jour_base' => 'Mettre à jour la base de données', |
|
| 59 | - 'bouton_modifier' => 'Modifier', |
|
| 60 | - 'bouton_radio_afficher' => 'Afficher', |
|
| 61 | - 'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Apparaître dans la liste des rédacteurs connectés', |
|
| 62 | - 'bouton_radio_envoi_annonces_adresse' => 'Envoyer les annonces à l’adresse :', |
|
| 63 | - 'bouton_radio_envoi_liste_nouveautes' => 'Envoyer la liste des nouveautés', |
|
| 64 | - 'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ne pas apparaître dans la liste des rédacteurs', |
|
| 65 | - 'bouton_radio_non_envoi_annonces_editoriales' => 'Ne pas envoyer d’annonces éditoriales', |
|
| 66 | - 'bouton_redirection' => 'REDIRECTION', |
|
| 67 | - 'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Réinitialiser aux valeurs par défaut', |
|
| 68 | - 'bouton_relancer_inscription' => 'Relancer l’inscription', |
|
| 69 | - 'bouton_relancer_inscriptions' => 'Relancer les inscriptions', |
|
| 70 | - 'bouton_relancer_installation' => 'Relancer l’installation', |
|
| 71 | - 'bouton_reset_password' => 'Générer un nouveau mot de passe et l’envoyer par email', |
|
| 72 | - 'bouton_suivant' => 'Suivant', |
|
| 73 | - 'bouton_tenter_recuperation' => 'Tenter une réparation', |
|
| 74 | - 'bouton_test_proxy' => 'Essayer le proxy', |
|
| 75 | - 'bouton_vider_cache' => 'Vider le cache', |
|
| 46 | + // B |
|
| 47 | + 'bouton_acces_ldap' => 'Ajouter l’accès à LDAP', |
|
| 48 | + 'bouton_ajouter' => 'Ajouter', |
|
| 49 | + 'bouton_annuler' => 'Annuler', |
|
| 50 | + 'bouton_cache_activer' => 'Réactiver le cache', |
|
| 51 | + 'bouton_cache_desactiver' => 'Désactiver temporairement le cache', |
|
| 52 | + 'bouton_demande_publication' => 'Demander la publication de cet article', |
|
| 53 | + 'bouton_desactive_tout' => 'Tout désactiver', |
|
| 54 | + 'bouton_desinstaller' => 'Désinstaller', |
|
| 55 | + 'bouton_effacer_tout' => 'Effacer TOUT', |
|
| 56 | + 'bouton_envoyer_message' => 'Message définitif : envoyer', |
|
| 57 | + 'bouton_fermer' => 'Fermer', |
|
| 58 | + 'bouton_mettre_a_jour_base' => 'Mettre à jour la base de données', |
|
| 59 | + 'bouton_modifier' => 'Modifier', |
|
| 60 | + 'bouton_radio_afficher' => 'Afficher', |
|
| 61 | + 'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Apparaître dans la liste des rédacteurs connectés', |
|
| 62 | + 'bouton_radio_envoi_annonces_adresse' => 'Envoyer les annonces à l’adresse :', |
|
| 63 | + 'bouton_radio_envoi_liste_nouveautes' => 'Envoyer la liste des nouveautés', |
|
| 64 | + 'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ne pas apparaître dans la liste des rédacteurs', |
|
| 65 | + 'bouton_radio_non_envoi_annonces_editoriales' => 'Ne pas envoyer d’annonces éditoriales', |
|
| 66 | + 'bouton_redirection' => 'REDIRECTION', |
|
| 67 | + 'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Réinitialiser aux valeurs par défaut', |
|
| 68 | + 'bouton_relancer_inscription' => 'Relancer l’inscription', |
|
| 69 | + 'bouton_relancer_inscriptions' => 'Relancer les inscriptions', |
|
| 70 | + 'bouton_relancer_installation' => 'Relancer l’installation', |
|
| 71 | + 'bouton_reset_password' => 'Générer un nouveau mot de passe et l’envoyer par email', |
|
| 72 | + 'bouton_suivant' => 'Suivant', |
|
| 73 | + 'bouton_tenter_recuperation' => 'Tenter une réparation', |
|
| 74 | + 'bouton_test_proxy' => 'Essayer le proxy', |
|
| 75 | + 'bouton_vider_cache' => 'Vider le cache', |
|
| 76 | 76 | |
| 77 | - // C |
|
| 78 | - 'cache_modifiable_webmestre' => 'Ce paramètre est modifiable par le webmestre du site.', |
|
| 79 | - 'calendrier_synchro' => 'Si vous utilisez un logiciel d’agenda compatible <b>iCal</b>, vous pouvez le synchroniser avec les informations de ce site.', |
|
| 80 | - 'config_activer_champs' => 'Activer les champs suivants', |
|
| 81 | - 'config_choix_base_sup' => 'indiquer une base sur ce serveur', |
|
| 82 | - 'config_erreur_base_sup' => 'SPIP n’a pas accès à la liste des bases accessibles', |
|
| 83 | - 'config_info_base_sup' => 'Si vous avez d’autres bases de données à interroger à travers SPIP, avec son serveur SQL ou avec un autre, le formulaire ci-dessous, vous permet de les déclarer. Si vous laissez certains champs vides, les identifiants de connexion à la base principale seront utilisés.', |
|
| 84 | - 'config_info_base_sup_disponibles' => 'Bases supplémentaires déjà interrogeables :', |
|
| 85 | - 'config_info_enregistree' => 'La nouvelle configuration a été enregistrée', |
|
| 86 | - 'config_info_logos' => 'Chaque élément du site peut avoir un logo, ainsi qu’un « logo de survol »', |
|
| 87 | - 'config_info_logos_utiliser' => 'Utiliser les logos', |
|
| 88 | - 'config_info_logos_utiliser_non' => 'Ne pas utiliser les logos', |
|
| 89 | - 'config_info_logos_utiliser_survol' => 'Utiliser les logos de survol', |
|
| 90 | - 'config_info_logos_utiliser_survol_non' => 'Ne pas utiliser les logos de survol', |
|
| 91 | - 'config_info_redirection' => 'En activant cette option, vous pourrez créer des articles virtuels, simples références d’articles publiés sur d’autres sites ou hors de SPIP.', |
|
| 92 | - 'config_redirection' => 'Articles virtuels', |
|
| 93 | - 'config_titre_base_sup' => 'Déclaration d’une base supplémentaire', |
|
| 94 | - 'config_titre_base_sup_choix' => 'Choisissez une base supplémentaire', |
|
| 95 | - 'connexion_ldap' => 'Connexion :', |
|
| 96 | - 'creer_et_associer_un_auteur' => 'Créer et associer un auteur', |
|
| 77 | + // C |
|
| 78 | + 'cache_modifiable_webmestre' => 'Ce paramètre est modifiable par le webmestre du site.', |
|
| 79 | + 'calendrier_synchro' => 'Si vous utilisez un logiciel d’agenda compatible <b>iCal</b>, vous pouvez le synchroniser avec les informations de ce site.', |
|
| 80 | + 'config_activer_champs' => 'Activer les champs suivants', |
|
| 81 | + 'config_choix_base_sup' => 'indiquer une base sur ce serveur', |
|
| 82 | + 'config_erreur_base_sup' => 'SPIP n’a pas accès à la liste des bases accessibles', |
|
| 83 | + 'config_info_base_sup' => 'Si vous avez d’autres bases de données à interroger à travers SPIP, avec son serveur SQL ou avec un autre, le formulaire ci-dessous, vous permet de les déclarer. Si vous laissez certains champs vides, les identifiants de connexion à la base principale seront utilisés.', |
|
| 84 | + 'config_info_base_sup_disponibles' => 'Bases supplémentaires déjà interrogeables :', |
|
| 85 | + 'config_info_enregistree' => 'La nouvelle configuration a été enregistrée', |
|
| 86 | + 'config_info_logos' => 'Chaque élément du site peut avoir un logo, ainsi qu’un « logo de survol »', |
|
| 87 | + 'config_info_logos_utiliser' => 'Utiliser les logos', |
|
| 88 | + 'config_info_logos_utiliser_non' => 'Ne pas utiliser les logos', |
|
| 89 | + 'config_info_logos_utiliser_survol' => 'Utiliser les logos de survol', |
|
| 90 | + 'config_info_logos_utiliser_survol_non' => 'Ne pas utiliser les logos de survol', |
|
| 91 | + 'config_info_redirection' => 'En activant cette option, vous pourrez créer des articles virtuels, simples références d’articles publiés sur d’autres sites ou hors de SPIP.', |
|
| 92 | + 'config_redirection' => 'Articles virtuels', |
|
| 93 | + 'config_titre_base_sup' => 'Déclaration d’une base supplémentaire', |
|
| 94 | + 'config_titre_base_sup_choix' => 'Choisissez une base supplémentaire', |
|
| 95 | + 'connexion_ldap' => 'Connexion :', |
|
| 96 | + 'creer_et_associer_un_auteur' => 'Créer et associer un auteur', |
|
| 97 | 97 | |
| 98 | - // D |
|
| 99 | - 'date_mot_heures' => 'heures', |
|
| 98 | + // D |
|
| 99 | + 'date_mot_heures' => 'heures', |
|
| 100 | 100 | |
| 101 | - // E |
|
| 102 | - 'ecran_connexion_couleur_principale' => 'Couleur principale', |
|
| 103 | - 'ecran_connexion_image_fond' => 'Image de fond', |
|
| 104 | - 'ecran_connexion_image_fond_explication' => 'Utiliser une image (format JPEG, 1920x1080 pixels)', |
|
| 105 | - 'ecran_connexion_image_revenir_couleur_defaut' => 'Revenir à la couleur par défaut', |
|
| 106 | - 'ecran_connexion_titre' => 'Écran de connexion', |
|
| 107 | - 'ecran_securite' => ' + écran de sécurité @version@', |
|
| 108 | - 'email' => 'email', |
|
| 109 | - 'email_2' => 'email :', |
|
| 110 | - 'en_savoir_plus' => 'En savoir plus', |
|
| 111 | - 'entree_adresse_annuaire' => 'Adresse de l’annuaire', |
|
| 112 | - 'entree_adresse_email' => 'Votre adresse email', |
|
| 113 | - 'entree_adresse_email_2' => 'Adresse email', |
|
| 114 | - 'entree_base_donnee_1' => 'Adresse de la base de données', |
|
| 115 | - 'entree_base_donnee_2' => '(Souvent cette adresse correspond à celle de votre site, parfois elle correspond à la mention « localhost », parfois elle est laissée totalement vide.)', |
|
| 116 | - 'entree_biographie' => 'Courte biographie en quelques mots.', |
|
| 117 | - 'entree_chemin_acces' => '<b>Entrer</b> le chemin d’accès :', |
|
| 118 | - 'entree_cle_pgp' => 'Votre clé PGP', |
|
| 119 | - 'entree_cle_pgp_2' => 'Clé PGP', |
|
| 120 | - 'entree_contenu_rubrique' => '(Contenu de la rubrique en quelques mots.)', |
|
| 121 | - 'entree_identifiants_connexion' => 'Vos identifiants de connexion...', |
|
| 122 | - 'entree_identifiants_connexion_2' => 'Identifiants de connexion', |
|
| 123 | - 'entree_informations_connexion_ldap' => 'Veuillez entrer dans ce formulaire les informations de connexion à votre annuaire LDAP. |
|
| 101 | + // E |
|
| 102 | + 'ecran_connexion_couleur_principale' => 'Couleur principale', |
|
| 103 | + 'ecran_connexion_image_fond' => 'Image de fond', |
|
| 104 | + 'ecran_connexion_image_fond_explication' => 'Utiliser une image (format JPEG, 1920x1080 pixels)', |
|
| 105 | + 'ecran_connexion_image_revenir_couleur_defaut' => 'Revenir à la couleur par défaut', |
|
| 106 | + 'ecran_connexion_titre' => 'Écran de connexion', |
|
| 107 | + 'ecran_securite' => ' + écran de sécurité @version@', |
|
| 108 | + 'email' => 'email', |
|
| 109 | + 'email_2' => 'email :', |
|
| 110 | + 'en_savoir_plus' => 'En savoir plus', |
|
| 111 | + 'entree_adresse_annuaire' => 'Adresse de l’annuaire', |
|
| 112 | + 'entree_adresse_email' => 'Votre adresse email', |
|
| 113 | + 'entree_adresse_email_2' => 'Adresse email', |
|
| 114 | + 'entree_base_donnee_1' => 'Adresse de la base de données', |
|
| 115 | + 'entree_base_donnee_2' => '(Souvent cette adresse correspond à celle de votre site, parfois elle correspond à la mention « localhost », parfois elle est laissée totalement vide.)', |
|
| 116 | + 'entree_biographie' => 'Courte biographie en quelques mots.', |
|
| 117 | + 'entree_chemin_acces' => '<b>Entrer</b> le chemin d’accès :', |
|
| 118 | + 'entree_cle_pgp' => 'Votre clé PGP', |
|
| 119 | + 'entree_cle_pgp_2' => 'Clé PGP', |
|
| 120 | + 'entree_contenu_rubrique' => '(Contenu de la rubrique en quelques mots.)', |
|
| 121 | + 'entree_identifiants_connexion' => 'Vos identifiants de connexion...', |
|
| 122 | + 'entree_identifiants_connexion_2' => 'Identifiants de connexion', |
|
| 123 | + 'entree_informations_connexion_ldap' => 'Veuillez entrer dans ce formulaire les informations de connexion à votre annuaire LDAP. |
|
| 124 | 124 | Ces informations doivent pouvoir vous être fournies par l’administrateur du système, |
| 125 | 125 | ou du réseau.', |
| 126 | - 'entree_infos_perso' => 'Qui êtes-vous ?', |
|
| 127 | - 'entree_infos_perso_2' => 'Qui est l’auteur ?', |
|
| 128 | - 'entree_interieur_rubrique' => 'À l’intérieur de la rubrique :', |
|
| 129 | - 'entree_liens_sites' => '<b>Lien hypertexte</b> (référence, site à visiter...)', |
|
| 130 | - 'entree_login' => 'Votre login', |
|
| 131 | - 'entree_login_connexion_1' => 'Le login de connexion', |
|
| 132 | - 'entree_login_connexion_2' => '(Correspond parfois à votre login d’accès au FTP ; parfois laissé vide)', |
|
| 133 | - 'entree_mot_passe' => 'Votre mot de passe', |
|
| 134 | - 'entree_mot_passe_1' => 'Le mot de passe de connexion', |
|
| 135 | - 'entree_mot_passe_2' => '(Correspond parfois à votre mot de passe pour le FTP ; parfois laissé vide)', |
|
| 136 | - 'entree_nom_fichier' => 'Veuillez entrer le nom du fichier @texte_compresse@ :', |
|
| 137 | - 'entree_nom_pseudo' => 'Votre nom ou votre pseudo', |
|
| 138 | - 'entree_nom_pseudo_1' => '(Votre nom ou votre pseudo)', |
|
| 139 | - 'entree_nom_pseudo_2' => 'Nom ou pseudo', |
|
| 140 | - 'entree_nom_site' => 'Le nom de votre site', |
|
| 141 | - 'entree_nom_site_2' => 'Nom du site de l’auteur', |
|
| 142 | - 'entree_nouveau_passe' => 'Nouveau mot de passe', |
|
| 143 | - 'entree_passe_ldap' => 'Mot de passe', |
|
| 144 | - 'entree_port_annuaire' => 'Le numéro de port de l’annuaire', |
|
| 145 | - 'entree_signature' => 'Signature', |
|
| 146 | - 'entree_titre_obligatoire' => '<b>Titre</b> [Obligatoire]<br />', |
|
| 147 | - 'entree_url' => 'L’adresse (URL) de votre site', |
|
| 148 | - 'entree_url_2' => 'Adresse (URL) du site', |
|
| 149 | - 'erreur_connect_deja_existant' => 'Un serveur existe déjà avec ce nom', |
|
| 150 | - 'erreur_contenu_suspect' => 'Texte échappé', |
|
| 151 | - 'erreur_email_deja_existant' => 'Cette adresse email est déjà enregistrée.', |
|
| 152 | - 'erreur_nom_connect_incorrect' => 'Ce nom de serveur n’est pas autorisé', |
|
| 153 | - 'erreur_plugin_attribut_balise_manquant' => 'Attribut @attribut@ manquant dans la balise @balise@.', |
|
| 154 | - 'erreur_plugin_desinstalation_echouee' => 'La désinstallation du plugin a échoué. Vous pouvez néanmoins le désactiver.', |
|
| 155 | - 'erreur_plugin_fichier_absent' => 'Fichier absent', |
|
| 156 | - 'erreur_plugin_fichier_def_absent' => 'Fichier de définition absent', |
|
| 157 | - 'erreur_plugin_nom_fonction_interdit' => 'Nom de fonction interdit', |
|
| 158 | - 'erreur_plugin_nom_manquant' => 'Nom du plugin manquant', |
|
| 159 | - 'erreur_plugin_prefix_manquant' => 'Espace de nommage du plugin non défini', |
|
| 160 | - 'erreur_plugin_tag_plugin_absent' => '<plugin> manquant dans le fichier de définition', |
|
| 161 | - 'erreur_plugin_version_manquant' => 'Version du plugin manquante', |
|
| 162 | - 'erreur_type_fichier' => 'Type de fichier incorrect', |
|
| 126 | + 'entree_infos_perso' => 'Qui êtes-vous ?', |
|
| 127 | + 'entree_infos_perso_2' => 'Qui est l’auteur ?', |
|
| 128 | + 'entree_interieur_rubrique' => 'À l’intérieur de la rubrique :', |
|
| 129 | + 'entree_liens_sites' => '<b>Lien hypertexte</b> (référence, site à visiter...)', |
|
| 130 | + 'entree_login' => 'Votre login', |
|
| 131 | + 'entree_login_connexion_1' => 'Le login de connexion', |
|
| 132 | + 'entree_login_connexion_2' => '(Correspond parfois à votre login d’accès au FTP ; parfois laissé vide)', |
|
| 133 | + 'entree_mot_passe' => 'Votre mot de passe', |
|
| 134 | + 'entree_mot_passe_1' => 'Le mot de passe de connexion', |
|
| 135 | + 'entree_mot_passe_2' => '(Correspond parfois à votre mot de passe pour le FTP ; parfois laissé vide)', |
|
| 136 | + 'entree_nom_fichier' => 'Veuillez entrer le nom du fichier @texte_compresse@ :', |
|
| 137 | + 'entree_nom_pseudo' => 'Votre nom ou votre pseudo', |
|
| 138 | + 'entree_nom_pseudo_1' => '(Votre nom ou votre pseudo)', |
|
| 139 | + 'entree_nom_pseudo_2' => 'Nom ou pseudo', |
|
| 140 | + 'entree_nom_site' => 'Le nom de votre site', |
|
| 141 | + 'entree_nom_site_2' => 'Nom du site de l’auteur', |
|
| 142 | + 'entree_nouveau_passe' => 'Nouveau mot de passe', |
|
| 143 | + 'entree_passe_ldap' => 'Mot de passe', |
|
| 144 | + 'entree_port_annuaire' => 'Le numéro de port de l’annuaire', |
|
| 145 | + 'entree_signature' => 'Signature', |
|
| 146 | + 'entree_titre_obligatoire' => '<b>Titre</b> [Obligatoire]<br />', |
|
| 147 | + 'entree_url' => 'L’adresse (URL) de votre site', |
|
| 148 | + 'entree_url_2' => 'Adresse (URL) du site', |
|
| 149 | + 'erreur_connect_deja_existant' => 'Un serveur existe déjà avec ce nom', |
|
| 150 | + 'erreur_contenu_suspect' => 'Texte échappé', |
|
| 151 | + 'erreur_email_deja_existant' => 'Cette adresse email est déjà enregistrée.', |
|
| 152 | + 'erreur_nom_connect_incorrect' => 'Ce nom de serveur n’est pas autorisé', |
|
| 153 | + 'erreur_plugin_attribut_balise_manquant' => 'Attribut @attribut@ manquant dans la balise @balise@.', |
|
| 154 | + 'erreur_plugin_desinstalation_echouee' => 'La désinstallation du plugin a échoué. Vous pouvez néanmoins le désactiver.', |
|
| 155 | + 'erreur_plugin_fichier_absent' => 'Fichier absent', |
|
| 156 | + 'erreur_plugin_fichier_def_absent' => 'Fichier de définition absent', |
|
| 157 | + 'erreur_plugin_nom_fonction_interdit' => 'Nom de fonction interdit', |
|
| 158 | + 'erreur_plugin_nom_manquant' => 'Nom du plugin manquant', |
|
| 159 | + 'erreur_plugin_prefix_manquant' => 'Espace de nommage du plugin non défini', |
|
| 160 | + 'erreur_plugin_tag_plugin_absent' => '<plugin> manquant dans le fichier de définition', |
|
| 161 | + 'erreur_plugin_version_manquant' => 'Version du plugin manquante', |
|
| 162 | + 'erreur_type_fichier' => 'Type de fichier incorrect', |
|
| 163 | 163 | |
| 164 | - // H |
|
| 165 | - 'htaccess_a_simuler' => 'Avertissement : la configuration de votre serveur HTTP ne tient pas compte des fichiers @htaccess@. Pour pouvoir assurer une bonne sécurité, il faut que vous modifiiez cette configuration sur ce point, ou bien que les constantes @constantes@ (définissables dans le fichier mes_options.php) aient comme valeur des répertoires en dehors de @document_root@.', |
|
| 166 | - 'htaccess_inoperant' => 'htaccess inopérant', |
|
| 164 | + // H |
|
| 165 | + 'htaccess_a_simuler' => 'Avertissement : la configuration de votre serveur HTTP ne tient pas compte des fichiers @htaccess@. Pour pouvoir assurer une bonne sécurité, il faut que vous modifiiez cette configuration sur ce point, ou bien que les constantes @constantes@ (définissables dans le fichier mes_options.php) aient comme valeur des répertoires en dehors de @document_root@.', |
|
| 166 | + 'htaccess_inoperant' => 'htaccess inopérant', |
|
| 167 | 167 | |
| 168 | - // I |
|
| 169 | - 'ical_info1' => 'Cette page présente plusieurs méthodes pour rester en contact avec la vie de ce site.', |
|
| 170 | - 'ical_info2' => 'Pour plus de renseignements sur toutes ces techniques, n’hésitez pas à consulter <a href="@spipnet@">la documentation de SPIP</a>.', |
|
| 171 | - 'ical_info_calendrier' => 'Deux calendriers sont à votre disposition. Le premier est un plan du site annonçant tous les articles publiés. Le second contient les annonces éditoriales ainsi que vos derniers messages privés : il vous est réservé grâce à une clé personnelle, que vous pouvez modifier à tout moment en renouvelant votre mot de passe.', |
|
| 172 | - 'ical_methode_http' => 'Téléchargement', |
|
| 173 | - 'ical_methode_webcal' => 'Synchronisation (webcal://)', |
|
| 174 | - 'ical_texte_prive' => 'Ce calendrier, à usage strictement personnel, vous informe de l’activité éditoriale privée de ce site (tâches et rendez-vous personnels, articles et brèves proposés...).', |
|
| 175 | - 'ical_texte_public' => 'Ce calendrier vous permet de suivre l’activité publique de ce site (articles et brèves publiés).', |
|
| 176 | - 'ical_texte_rss' => 'Vous pouvez syndiquer les nouveautés de ce site dans n’importe quel lecteur de fichiers au format XML/RSS (Rich Site Summary). C’est aussi le format qui permet à SPIP de lire les nouveautés publiées sur d’autres sites utilisant un format d’échange compatible (sites syndiqués).', |
|
| 177 | - 'ical_titre_js' => 'Javascript', |
|
| 178 | - 'ical_titre_mailing' => 'Mailing-list', |
|
| 179 | - 'ical_titre_rss' => 'Fichiers de syndication', |
|
| 180 | - 'icone_accueil' => 'Accueil', |
|
| 181 | - 'icone_activer_cookie' => 'Activer le cookie de correspondance', |
|
| 182 | - 'icone_activite' => 'Activité', |
|
| 183 | - 'icone_admin_plugin' => 'Gestion des plugins', |
|
| 184 | - 'icone_administration' => 'Maintenance', |
|
| 185 | - 'icone_afficher_auteurs' => 'Afficher les auteurs', |
|
| 186 | - 'icone_afficher_visiteurs' => 'Afficher les visiteurs', |
|
| 187 | - 'icone_arret_discussion' => 'Ne plus participer à cette discussion', |
|
| 188 | - 'icone_calendrier' => 'Calendrier', |
|
| 189 | - 'icone_configuration' => 'Configuration', |
|
| 190 | - 'icone_creer_auteur' => 'Créer un nouvel auteur et l’associer à cet article', |
|
| 191 | - 'icone_creer_mot_cle' => 'Créer un nouveau mot-clé et le lier à cet article', |
|
| 192 | - 'icone_creer_rubrique_2' => 'Créer une nouvelle rubrique', |
|
| 193 | - 'icone_developpement' => 'Développement', |
|
| 194 | - 'icone_edition' => 'Édition', |
|
| 195 | - 'icone_ma_langue' => 'Ma langue', |
|
| 196 | - 'icone_mes_infos' => 'Mes informations', |
|
| 197 | - 'icone_mes_preferences' => 'Mes préférences', |
|
| 198 | - 'icone_modifier_article' => 'Modifier cet article', |
|
| 199 | - 'icone_modifier_rubrique' => 'Modifier cette rubrique', |
|
| 200 | - 'icone_publication' => 'Publication', |
|
| 201 | - 'icone_relancer_signataire' => 'Relancer le signataire', |
|
| 202 | - 'icone_retour' => 'Retour', |
|
| 203 | - 'icone_retour_article' => 'Retour à l’article', |
|
| 204 | - 'icone_squelette' => 'Squelettes', |
|
| 205 | - 'icone_suivi_publication' => 'Suivi de la publication', |
|
| 206 | - 'icone_supprimer_cookie' => 'Supprimer le cookie de correspondance', |
|
| 207 | - 'icone_supprimer_rubrique' => 'Supprimer cette rubrique', |
|
| 208 | - 'icone_supprimer_signature' => 'Supprimer cette signature', |
|
| 209 | - 'icone_valider_signature' => 'Valider cette signature', |
|
| 210 | - 'image_administrer_rubrique' => 'Vous pouvez administrer cette rubrique', |
|
| 211 | - 'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', |
|
| 212 | - 'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', |
|
| 213 | - 'info_1_article' => '1 article', |
|
| 214 | - 'info_1_auteur' => '1 auteur', |
|
| 215 | - 'info_1_message' => '1 message', |
|
| 216 | - 'info_1_mot_cle' => '1 mot-clé', |
|
| 217 | - 'info_1_rubrique' => '1 rubrique', |
|
| 218 | - 'info_1_visiteur' => '1 visiteur', |
|
| 219 | - 'info_activer_cookie' => 'Vous pouvez activer un <b>cookie de correspondance</b>, ce qui vous |
|
| 168 | + // I |
|
| 169 | + 'ical_info1' => 'Cette page présente plusieurs méthodes pour rester en contact avec la vie de ce site.', |
|
| 170 | + 'ical_info2' => 'Pour plus de renseignements sur toutes ces techniques, n’hésitez pas à consulter <a href="@spipnet@">la documentation de SPIP</a>.', |
|
| 171 | + 'ical_info_calendrier' => 'Deux calendriers sont à votre disposition. Le premier est un plan du site annonçant tous les articles publiés. Le second contient les annonces éditoriales ainsi que vos derniers messages privés : il vous est réservé grâce à une clé personnelle, que vous pouvez modifier à tout moment en renouvelant votre mot de passe.', |
|
| 172 | + 'ical_methode_http' => 'Téléchargement', |
|
| 173 | + 'ical_methode_webcal' => 'Synchronisation (webcal://)', |
|
| 174 | + 'ical_texte_prive' => 'Ce calendrier, à usage strictement personnel, vous informe de l’activité éditoriale privée de ce site (tâches et rendez-vous personnels, articles et brèves proposés...).', |
|
| 175 | + 'ical_texte_public' => 'Ce calendrier vous permet de suivre l’activité publique de ce site (articles et brèves publiés).', |
|
| 176 | + 'ical_texte_rss' => 'Vous pouvez syndiquer les nouveautés de ce site dans n’importe quel lecteur de fichiers au format XML/RSS (Rich Site Summary). C’est aussi le format qui permet à SPIP de lire les nouveautés publiées sur d’autres sites utilisant un format d’échange compatible (sites syndiqués).', |
|
| 177 | + 'ical_titre_js' => 'Javascript', |
|
| 178 | + 'ical_titre_mailing' => 'Mailing-list', |
|
| 179 | + 'ical_titre_rss' => 'Fichiers de syndication', |
|
| 180 | + 'icone_accueil' => 'Accueil', |
|
| 181 | + 'icone_activer_cookie' => 'Activer le cookie de correspondance', |
|
| 182 | + 'icone_activite' => 'Activité', |
|
| 183 | + 'icone_admin_plugin' => 'Gestion des plugins', |
|
| 184 | + 'icone_administration' => 'Maintenance', |
|
| 185 | + 'icone_afficher_auteurs' => 'Afficher les auteurs', |
|
| 186 | + 'icone_afficher_visiteurs' => 'Afficher les visiteurs', |
|
| 187 | + 'icone_arret_discussion' => 'Ne plus participer à cette discussion', |
|
| 188 | + 'icone_calendrier' => 'Calendrier', |
|
| 189 | + 'icone_configuration' => 'Configuration', |
|
| 190 | + 'icone_creer_auteur' => 'Créer un nouvel auteur et l’associer à cet article', |
|
| 191 | + 'icone_creer_mot_cle' => 'Créer un nouveau mot-clé et le lier à cet article', |
|
| 192 | + 'icone_creer_rubrique_2' => 'Créer une nouvelle rubrique', |
|
| 193 | + 'icone_developpement' => 'Développement', |
|
| 194 | + 'icone_edition' => 'Édition', |
|
| 195 | + 'icone_ma_langue' => 'Ma langue', |
|
| 196 | + 'icone_mes_infos' => 'Mes informations', |
|
| 197 | + 'icone_mes_preferences' => 'Mes préférences', |
|
| 198 | + 'icone_modifier_article' => 'Modifier cet article', |
|
| 199 | + 'icone_modifier_rubrique' => 'Modifier cette rubrique', |
|
| 200 | + 'icone_publication' => 'Publication', |
|
| 201 | + 'icone_relancer_signataire' => 'Relancer le signataire', |
|
| 202 | + 'icone_retour' => 'Retour', |
|
| 203 | + 'icone_retour_article' => 'Retour à l’article', |
|
| 204 | + 'icone_squelette' => 'Squelettes', |
|
| 205 | + 'icone_suivi_publication' => 'Suivi de la publication', |
|
| 206 | + 'icone_supprimer_cookie' => 'Supprimer le cookie de correspondance', |
|
| 207 | + 'icone_supprimer_rubrique' => 'Supprimer cette rubrique', |
|
| 208 | + 'icone_supprimer_signature' => 'Supprimer cette signature', |
|
| 209 | + 'icone_valider_signature' => 'Valider cette signature', |
|
| 210 | + 'image_administrer_rubrique' => 'Vous pouvez administrer cette rubrique', |
|
| 211 | + 'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', |
|
| 212 | + 'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', |
|
| 213 | + 'info_1_article' => '1 article', |
|
| 214 | + 'info_1_auteur' => '1 auteur', |
|
| 215 | + 'info_1_message' => '1 message', |
|
| 216 | + 'info_1_mot_cle' => '1 mot-clé', |
|
| 217 | + 'info_1_rubrique' => '1 rubrique', |
|
| 218 | + 'info_1_visiteur' => '1 visiteur', |
|
| 219 | + 'info_activer_cookie' => 'Vous pouvez activer un <b>cookie de correspondance</b>, ce qui vous |
|
| 220 | 220 | permettra de passer facilement du site public au site privé.', |
| 221 | - 'info_activer_menu_developpement' => 'Afficher le menu Développement', |
|
| 222 | - 'info_admin_etre_webmestre' => 'Me donner les droits de webmestre', |
|
| 223 | - 'info_admin_je_suis_webmestre' => 'Je suis <b>webmestre</b>', |
|
| 224 | - 'info_admin_statuer_webmestre' => 'Donner à cet administrateur les droits de webmestre', |
|
| 225 | - 'info_admin_webmestre' => 'Cet administrateur est <b>webmestre</b>', |
|
| 226 | - 'info_administrateur' => 'Administrateur', |
|
| 227 | - 'info_administrateur_1' => 'Administrateur', |
|
| 228 | - 'info_administrateur_2' => 'du site (<i>utilisez avec précaution</i>)', |
|
| 229 | - 'info_administrateur_site_01' => 'Si vous êtes administrateur du site, veuillez', |
|
| 230 | - 'info_administrateur_site_02' => 'cliquer sur ce lien', |
|
| 231 | - 'info_administrateurs' => 'Administrateurs', |
|
| 232 | - 'info_administrer_rubrique' => 'Vous pouvez administrer cette rubrique', |
|
| 233 | - 'info_adresse' => 'à l’adresse :', |
|
| 234 | - 'info_adresse_desinscription' => 'Adresse de désinscription :', |
|
| 235 | - 'info_adresse_url' => 'Adresse (URL) du site public', |
|
| 236 | - 'info_afficher_par_nb' => 'Afficher par', |
|
| 237 | - 'info_aide_en_ligne' => 'Aide en ligne SPIP', |
|
| 238 | - 'info_ajout_image' => 'Lorsque vous ajoutez des images en tant que documents joints à un article, |
|
| 221 | + 'info_activer_menu_developpement' => 'Afficher le menu Développement', |
|
| 222 | + 'info_admin_etre_webmestre' => 'Me donner les droits de webmestre', |
|
| 223 | + 'info_admin_je_suis_webmestre' => 'Je suis <b>webmestre</b>', |
|
| 224 | + 'info_admin_statuer_webmestre' => 'Donner à cet administrateur les droits de webmestre', |
|
| 225 | + 'info_admin_webmestre' => 'Cet administrateur est <b>webmestre</b>', |
|
| 226 | + 'info_administrateur' => 'Administrateur', |
|
| 227 | + 'info_administrateur_1' => 'Administrateur', |
|
| 228 | + 'info_administrateur_2' => 'du site (<i>utilisez avec précaution</i>)', |
|
| 229 | + 'info_administrateur_site_01' => 'Si vous êtes administrateur du site, veuillez', |
|
| 230 | + 'info_administrateur_site_02' => 'cliquer sur ce lien', |
|
| 231 | + 'info_administrateurs' => 'Administrateurs', |
|
| 232 | + 'info_administrer_rubrique' => 'Vous pouvez administrer cette rubrique', |
|
| 233 | + 'info_adresse' => 'à l’adresse :', |
|
| 234 | + 'info_adresse_desinscription' => 'Adresse de désinscription :', |
|
| 235 | + 'info_adresse_url' => 'Adresse (URL) du site public', |
|
| 236 | + 'info_afficher_par_nb' => 'Afficher par', |
|
| 237 | + 'info_aide_en_ligne' => 'Aide en ligne SPIP', |
|
| 238 | + 'info_ajout_image' => 'Lorsque vous ajoutez des images en tant que documents joints à un article, |
|
| 239 | 239 | SPIP peut créer pour vous, automatiquement, des vignettes (miniatures) des |
| 240 | 240 | images insérées. Cela permet par exemple de créer |
| 241 | 241 | automatiquement une galerie ou un portfolio.', |
| 242 | - 'info_ajouter_rubrique' => 'Ajouter une autre rubrique à administrer :', |
|
| 243 | - 'info_annonce_nouveautes' => 'Annonce des nouveautés', |
|
| 244 | - 'info_article' => 'article', |
|
| 245 | - 'info_article_2' => 'articles', |
|
| 246 | - 'info_article_a_paraitre' => 'Les articles post-datés à paraître', |
|
| 247 | - 'info_articles_02' => 'articles', |
|
| 248 | - 'info_articles_2' => 'Articles', |
|
| 249 | - 'info_articles_auteur' => 'Les articles de cet auteur', |
|
| 250 | - 'info_articles_miens' => 'Mes articles', |
|
| 251 | - 'info_articles_tous' => 'Tous les articles', |
|
| 252 | - 'info_articles_trouves' => 'Articles trouvés', |
|
| 253 | - 'info_attente_validation' => 'Vos articles en attente de validation', |
|
| 254 | - 'info_aucun_article' => 'Aucun article', |
|
| 255 | - 'info_aucun_auteur' => 'Aucun auteur', |
|
| 256 | - 'info_aucun_message' => 'Aucun message', |
|
| 257 | - 'info_aucun_rubrique' => 'Aucune rubrique', |
|
| 258 | - 'info_aujourdhui' => 'aujourd’hui :', |
|
| 259 | - 'info_auteur_gere_rubriques' => 'Cet auteur gère les rubriques suivantes :', |
|
| 260 | - 'info_auteur_gere_toutes_rubriques' => 'Cet auteur gère <b>toutes les rubriques</b>', |
|
| 261 | - 'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>', |
|
| 262 | - 'info_auteurs' => 'Les auteurs', |
|
| 263 | - 'info_auteurs_par_tri' => 'Auteurs@partri@', |
|
| 264 | - 'info_auteurs_trouves' => 'Auteurs trouvés', |
|
| 265 | - 'info_authentification_externe' => 'Authentification externe', |
|
| 266 | - 'info_avertissement' => 'Avertissement', |
|
| 267 | - 'info_barre_outils' => 'avec sa barre d’outils ?', |
|
| 268 | - 'info_base_installee' => 'La structure de votre base de données est installée.', |
|
| 269 | - 'info_bio' => 'Biographie', |
|
| 270 | - 'info_cache_desactive' => 'Le cache est temporairement désactivé.', |
|
| 271 | - 'info_chapeau' => 'Chapeau', |
|
| 272 | - 'info_chapeau_2' => 'Chapeau :', |
|
| 273 | - 'info_chemin_acces_1' => 'Options : <b>Chemin d’accès dans l’annuaire</b>', |
|
| 274 | - 'info_chemin_acces_2' => 'Vous devez désormais configurer le chemin d’accès aux informations dans l’annuaire. Cette information est indispensable pour lire les profils utilisateurs stockés dans l’annuaire.', |
|
| 275 | - 'info_chemin_acces_annuaire' => 'Options : <b>Chemin d’accès dans l’annuaire</b>', |
|
| 276 | - 'info_choix_base' => 'Troisième étape :', |
|
| 277 | - 'info_classement_1' => '<sup>er</sup> sur @liste@', |
|
| 278 | - 'info_classement_2' => '<sup>e</sup> sur @liste@', |
|
| 279 | - 'info_code_acces' => 'N’oubliez pas vos propres codes d’accès !', |
|
| 280 | - 'info_config_suivi' => 'Si cette adresse correspond à une mailing-list, vous pouvez indiquer ci-dessous l’adresse à laquelle les participants au site peuvent s’inscrire. Cette adresse peut être une URL (par exemple la page d’inscription à la liste par le Web), ou une adresse email dotée d’un sujet spécifique (par exemple : <tt>@adresse_suivi@?subject=subscribe</tt>) :', |
|
| 281 | - 'info_config_suivi_explication' => 'Vous pouvez vous abonner à la mailing-list de ce site. Vous recevrez alors par courrier électronique les annonces d’articles et de brèves proposés à la publication.', |
|
| 282 | - 'info_confirmer_passe' => 'Confirmer ce nouveau mot de passe :', |
|
| 283 | - 'info_conflit_edition_avis_non_sauvegarde' => 'Attention, les champs suivants ont été modifiés par ailleurs. Vos modifications sur ces champs n’ont donc pas été enregistrées.', |
|
| 284 | - 'info_conflit_edition_differences' => 'Différences :', |
|
| 285 | - 'info_conflit_edition_version_enregistree' => 'La version enregistrée :', |
|
| 286 | - 'info_conflit_edition_votre_version' => 'Votre version :', |
|
| 287 | - 'info_connexion_base' => 'Essai de connexion à la base', |
|
| 288 | - 'info_connexion_base_donnee' => 'Connexion à votre base de données', |
|
| 289 | - 'info_connexion_ldap_ok' => '<b>La connexion LDAP a réussi.</b><p> Vous pouvez passer à l’étape suivante.</p>', |
|
| 290 | - 'info_connexion_mysql' => 'Votre connexion SQL', |
|
| 291 | - 'info_connexion_ok' => 'La connexion a réussi.', |
|
| 292 | - 'info_contact' => 'Contact', |
|
| 293 | - 'info_contenu_articles' => 'Contenu des articles', |
|
| 294 | - 'info_contributions' => 'Contributions', |
|
| 295 | - 'info_creation_paragraphe' => 'Pour créer des paragraphes, laissez simplement des lignes vides.', |
|
| 296 | - 'info_creation_rubrique' => 'Avant de pouvoir écrire des articles,<br /> vous devez créer au moins une rubrique.<br />', |
|
| 297 | - 'info_creation_tables' => 'Création des tables de la base', |
|
| 298 | - 'info_creer_base' => '<b>Créer</b> une nouvelle base de données :', |
|
| 299 | - 'info_dans_rubrique' => 'Dans la rubrique :', |
|
| 300 | - 'info_date_publication_anterieure' => 'Date de rédaction antérieure :', |
|
| 301 | - 'info_date_referencement' => 'DATE DE RÉFÉRENCEMENT DE CE SITE :', |
|
| 302 | - 'info_derniere_etape' => 'C’est terminé !', |
|
| 303 | - 'info_descriptif' => 'Descriptif :', |
|
| 304 | - 'info_desinstaller_plugin' => 'supprime les données et désactive le plugin', |
|
| 305 | - 'info_discussion_cours' => 'Discussions en cours', |
|
| 306 | - 'info_ecrire_article' => 'Avant de pouvoir écrire des articles, vous devez créer au moins une rubrique.', |
|
| 307 | - 'info_email_envoi' => 'Adresse email d’envoi (optionnel)', |
|
| 308 | - 'info_email_envoi_txt' => 'Indiquez ici l’adresse à utiliser pour envoyer les emails (à défaut, l’adresse destinataire sera utilisée comme adresse d’envoi) :', |
|
| 309 | - 'info_email_webmestre' => 'Adresse email du webmestre', |
|
| 310 | - 'info_envoi_email_automatique' => 'Envoi de mails automatique', |
|
| 311 | - 'info_envoyer_maintenant' => 'Envoyer maintenant', |
|
| 312 | - 'info_etape_suivante' => 'Passer à l’étape suivante', |
|
| 313 | - 'info_etape_suivante_1' => 'Vous pouvez passer à l’étape suivante.', |
|
| 314 | - 'info_etape_suivante_2' => 'Vous pouvez passer à l’étape suivante.', |
|
| 315 | - 'info_exceptions_proxy' => 'Exceptions pour le proxy', |
|
| 316 | - 'info_exportation_base' => 'exportation de la base vers @archive@', |
|
| 317 | - 'info_facilite_suivi_activite' => 'Afin de faciliter le suivi de l’activité |
|
| 242 | + 'info_ajouter_rubrique' => 'Ajouter une autre rubrique à administrer :', |
|
| 243 | + 'info_annonce_nouveautes' => 'Annonce des nouveautés', |
|
| 244 | + 'info_article' => 'article', |
|
| 245 | + 'info_article_2' => 'articles', |
|
| 246 | + 'info_article_a_paraitre' => 'Les articles post-datés à paraître', |
|
| 247 | + 'info_articles_02' => 'articles', |
|
| 248 | + 'info_articles_2' => 'Articles', |
|
| 249 | + 'info_articles_auteur' => 'Les articles de cet auteur', |
|
| 250 | + 'info_articles_miens' => 'Mes articles', |
|
| 251 | + 'info_articles_tous' => 'Tous les articles', |
|
| 252 | + 'info_articles_trouves' => 'Articles trouvés', |
|
| 253 | + 'info_attente_validation' => 'Vos articles en attente de validation', |
|
| 254 | + 'info_aucun_article' => 'Aucun article', |
|
| 255 | + 'info_aucun_auteur' => 'Aucun auteur', |
|
| 256 | + 'info_aucun_message' => 'Aucun message', |
|
| 257 | + 'info_aucun_rubrique' => 'Aucune rubrique', |
|
| 258 | + 'info_aujourdhui' => 'aujourd’hui :', |
|
| 259 | + 'info_auteur_gere_rubriques' => 'Cet auteur gère les rubriques suivantes :', |
|
| 260 | + 'info_auteur_gere_toutes_rubriques' => 'Cet auteur gère <b>toutes les rubriques</b>', |
|
| 261 | + 'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>', |
|
| 262 | + 'info_auteurs' => 'Les auteurs', |
|
| 263 | + 'info_auteurs_par_tri' => 'Auteurs@partri@', |
|
| 264 | + 'info_auteurs_trouves' => 'Auteurs trouvés', |
|
| 265 | + 'info_authentification_externe' => 'Authentification externe', |
|
| 266 | + 'info_avertissement' => 'Avertissement', |
|
| 267 | + 'info_barre_outils' => 'avec sa barre d’outils ?', |
|
| 268 | + 'info_base_installee' => 'La structure de votre base de données est installée.', |
|
| 269 | + 'info_bio' => 'Biographie', |
|
| 270 | + 'info_cache_desactive' => 'Le cache est temporairement désactivé.', |
|
| 271 | + 'info_chapeau' => 'Chapeau', |
|
| 272 | + 'info_chapeau_2' => 'Chapeau :', |
|
| 273 | + 'info_chemin_acces_1' => 'Options : <b>Chemin d’accès dans l’annuaire</b>', |
|
| 274 | + 'info_chemin_acces_2' => 'Vous devez désormais configurer le chemin d’accès aux informations dans l’annuaire. Cette information est indispensable pour lire les profils utilisateurs stockés dans l’annuaire.', |
|
| 275 | + 'info_chemin_acces_annuaire' => 'Options : <b>Chemin d’accès dans l’annuaire</b>', |
|
| 276 | + 'info_choix_base' => 'Troisième étape :', |
|
| 277 | + 'info_classement_1' => '<sup>er</sup> sur @liste@', |
|
| 278 | + 'info_classement_2' => '<sup>e</sup> sur @liste@', |
|
| 279 | + 'info_code_acces' => 'N’oubliez pas vos propres codes d’accès !', |
|
| 280 | + 'info_config_suivi' => 'Si cette adresse correspond à une mailing-list, vous pouvez indiquer ci-dessous l’adresse à laquelle les participants au site peuvent s’inscrire. Cette adresse peut être une URL (par exemple la page d’inscription à la liste par le Web), ou une adresse email dotée d’un sujet spécifique (par exemple : <tt>@adresse_suivi@?subject=subscribe</tt>) :', |
|
| 281 | + 'info_config_suivi_explication' => 'Vous pouvez vous abonner à la mailing-list de ce site. Vous recevrez alors par courrier électronique les annonces d’articles et de brèves proposés à la publication.', |
|
| 282 | + 'info_confirmer_passe' => 'Confirmer ce nouveau mot de passe :', |
|
| 283 | + 'info_conflit_edition_avis_non_sauvegarde' => 'Attention, les champs suivants ont été modifiés par ailleurs. Vos modifications sur ces champs n’ont donc pas été enregistrées.', |
|
| 284 | + 'info_conflit_edition_differences' => 'Différences :', |
|
| 285 | + 'info_conflit_edition_version_enregistree' => 'La version enregistrée :', |
|
| 286 | + 'info_conflit_edition_votre_version' => 'Votre version :', |
|
| 287 | + 'info_connexion_base' => 'Essai de connexion à la base', |
|
| 288 | + 'info_connexion_base_donnee' => 'Connexion à votre base de données', |
|
| 289 | + 'info_connexion_ldap_ok' => '<b>La connexion LDAP a réussi.</b><p> Vous pouvez passer à l’étape suivante.</p>', |
|
| 290 | + 'info_connexion_mysql' => 'Votre connexion SQL', |
|
| 291 | + 'info_connexion_ok' => 'La connexion a réussi.', |
|
| 292 | + 'info_contact' => 'Contact', |
|
| 293 | + 'info_contenu_articles' => 'Contenu des articles', |
|
| 294 | + 'info_contributions' => 'Contributions', |
|
| 295 | + 'info_creation_paragraphe' => 'Pour créer des paragraphes, laissez simplement des lignes vides.', |
|
| 296 | + 'info_creation_rubrique' => 'Avant de pouvoir écrire des articles,<br /> vous devez créer au moins une rubrique.<br />', |
|
| 297 | + 'info_creation_tables' => 'Création des tables de la base', |
|
| 298 | + 'info_creer_base' => '<b>Créer</b> une nouvelle base de données :', |
|
| 299 | + 'info_dans_rubrique' => 'Dans la rubrique :', |
|
| 300 | + 'info_date_publication_anterieure' => 'Date de rédaction antérieure :', |
|
| 301 | + 'info_date_referencement' => 'DATE DE RÉFÉRENCEMENT DE CE SITE :', |
|
| 302 | + 'info_derniere_etape' => 'C’est terminé !', |
|
| 303 | + 'info_descriptif' => 'Descriptif :', |
|
| 304 | + 'info_desinstaller_plugin' => 'supprime les données et désactive le plugin', |
|
| 305 | + 'info_discussion_cours' => 'Discussions en cours', |
|
| 306 | + 'info_ecrire_article' => 'Avant de pouvoir écrire des articles, vous devez créer au moins une rubrique.', |
|
| 307 | + 'info_email_envoi' => 'Adresse email d’envoi (optionnel)', |
|
| 308 | + 'info_email_envoi_txt' => 'Indiquez ici l’adresse à utiliser pour envoyer les emails (à défaut, l’adresse destinataire sera utilisée comme adresse d’envoi) :', |
|
| 309 | + 'info_email_webmestre' => 'Adresse email du webmestre', |
|
| 310 | + 'info_envoi_email_automatique' => 'Envoi de mails automatique', |
|
| 311 | + 'info_envoyer_maintenant' => 'Envoyer maintenant', |
|
| 312 | + 'info_etape_suivante' => 'Passer à l’étape suivante', |
|
| 313 | + 'info_etape_suivante_1' => 'Vous pouvez passer à l’étape suivante.', |
|
| 314 | + 'info_etape_suivante_2' => 'Vous pouvez passer à l’étape suivante.', |
|
| 315 | + 'info_exceptions_proxy' => 'Exceptions pour le proxy', |
|
| 316 | + 'info_exportation_base' => 'exportation de la base vers @archive@', |
|
| 317 | + 'info_facilite_suivi_activite' => 'Afin de faciliter le suivi de l’activité |
|
| 318 | 318 | éditoriale du site, SPIP peut faire parvenir par mail, par exemple |
| 319 | 319 | à une mailing-list des rédacteurs, l’annonce des demandes de |
| 320 | 320 | publication et des validations d’articles. Indiquer une ou plusieurs adresses, séparées par des virgules.', |
| 321 | - 'info_fichiers_authent' => 'Fichiers d’authentification « .htpasswd »', |
|
| 322 | - 'info_forums_abo_invites' => 'Votre site comporte des forums sur abonnement ; les visiteurs sont donc invités à s’enregistrer sur le site public.', |
|
| 323 | - 'info_gauche_admin_tech' => '<b>Cette page est uniquement accessible aux responsables du site.</b><p> Elle donne accès aux différentes |
|
| 321 | + 'info_fichiers_authent' => 'Fichiers d’authentification « .htpasswd »', |
|
| 322 | + 'info_forums_abo_invites' => 'Votre site comporte des forums sur abonnement ; les visiteurs sont donc invités à s’enregistrer sur le site public.', |
|
| 323 | + 'info_gauche_admin_tech' => '<b>Cette page est uniquement accessible aux responsables du site.</b><p> Elle donne accès aux différentes |
|
| 324 | 324 | fonctions de maintenance technique. Certaines d’entre elles donnent lieu à un processus d’authentification spécifique, qui |
| 325 | 325 | exige d’avoir un accès FTP au site Web.</p>', |
| 326 | - 'info_gauche_admin_vider' => '<b>Cette page est uniquement accessible aux responsables du site.</b><p> Elle donne accès aux différentes |
|
| 326 | + 'info_gauche_admin_vider' => '<b>Cette page est uniquement accessible aux responsables du site.</b><p> Elle donne accès aux différentes |
|
| 327 | 327 | fonctions de maintenance technique. Certaines d’entre elles donnent lieu à un processus d’authentification spécifique, qui |
| 328 | 328 | exige d’avoir un accès FTP au site Web.</p>', |
| 329 | - 'info_gauche_auteurs' => 'Vous trouverez ici tous les auteurs du site. |
|
| 329 | + 'info_gauche_auteurs' => 'Vous trouverez ici tous les auteurs du site. |
|
| 330 | 330 | Leur statut est indiqué par la couleur de leur icone (administrateur = vert ; rédacteur = jaune).', |
| 331 | - 'info_gauche_auteurs_exterieurs' => 'Les auteurs extérieurs, sans accès au site, sont indiqués par une icone bleue ; |
|
| 331 | + 'info_gauche_auteurs_exterieurs' => 'Les auteurs extérieurs, sans accès au site, sont indiqués par une icone bleue ; |
|
| 332 | 332 | les auteurs effacés par une icone grise.', |
| 333 | - 'info_gauche_messagerie' => 'La messagerie vous permet d’échanger des messages entre rédacteurs, de conserver des pense-bêtes (pour votre usage personnel) ou d’afficher des annonces sur la page d’accueil de l’espace privé (si vous êtes administrateur).', |
|
| 334 | - 'info_gauche_statistiques_referers' => 'Cette page présente la liste des <i>referers</i>, c’est-à-dire des sites contenant des liens menant vers votre propre site, uniquement pour hier et aujourd’hui ; cette liste est remise à zéro toutes les 24 heures.', |
|
| 335 | - 'info_gauche_visiteurs_enregistres' => 'Vous trouverez ici les visiteurs enregistrés |
|
| 333 | + 'info_gauche_messagerie' => 'La messagerie vous permet d’échanger des messages entre rédacteurs, de conserver des pense-bêtes (pour votre usage personnel) ou d’afficher des annonces sur la page d’accueil de l’espace privé (si vous êtes administrateur).', |
|
| 334 | + 'info_gauche_statistiques_referers' => 'Cette page présente la liste des <i>referers</i>, c’est-à-dire des sites contenant des liens menant vers votre propre site, uniquement pour hier et aujourd’hui ; cette liste est remise à zéro toutes les 24 heures.', |
|
| 335 | + 'info_gauche_visiteurs_enregistres' => 'Vous trouverez ici les visiteurs enregistrés |
|
| 336 | 336 | dans l’espace public du site (forums sur abonnement).', |
| 337 | - 'info_generation_miniatures_images' => 'Génération de miniatures des images', |
|
| 338 | - 'info_gerer_trad_objets' => '@objets@ : gérer les liens de traduction', |
|
| 339 | - 'info_hebergeur_desactiver_envoi_email' => 'Certains hébergeurs désactivent l’envoi automatique de |
|
| 337 | + 'info_generation_miniatures_images' => 'Génération de miniatures des images', |
|
| 338 | + 'info_gerer_trad_objets' => '@objets@ : gérer les liens de traduction', |
|
| 339 | + 'info_hebergeur_desactiver_envoi_email' => 'Certains hébergeurs désactivent l’envoi automatique de |
|
| 340 | 340 | mails depuis leurs serveurs. Dans ce cas, les fonctionnalités suivantes |
| 341 | 341 | de SPIP ne fonctionneront pas.', |
| 342 | - 'info_hier' => 'hier :', |
|
| 343 | - 'info_identification_publique' => 'Votre identité publique...', |
|
| 344 | - 'info_image_process' => 'Veuillez sélectionner la meilleure méthode de fabrication des vignettes en cliquant sur l’image correspondante.', |
|
| 345 | - 'info_images_auto' => 'Images calculées automatiquement', |
|
| 346 | - 'info_informations_personnelles' => 'Informations personnelles', |
|
| 347 | - 'info_inscription' => 'Inscription le', |
|
| 348 | - 'info_inscription_automatique' => 'Inscription automatique de nouveaux rédacteurs', |
|
| 349 | - 'info_jeu_caractere' => 'Jeu de caractères du site', |
|
| 350 | - 'info_jours' => 'jours', |
|
| 351 | - 'info_laisser_champs_vides' => 'laisser ces champs vides)', |
|
| 352 | - 'info_langues' => 'Langues du site', |
|
| 353 | - 'info_ldap_ok' => 'L’authentification LDAP est installée.', |
|
| 354 | - 'info_lien_hypertexte' => 'Lien hypertexte :', |
|
| 355 | - 'info_liste_nouveautes_envoyee' => 'La liste des nouveautés a été envoyée', |
|
| 356 | - 'info_liste_redacteurs_connectes' => 'Liste des rédacteurs connectés', |
|
| 357 | - 'info_login_existant' => 'Ce login existe déjà.', |
|
| 358 | - 'info_login_trop_court' => 'Login trop court.', |
|
| 359 | - 'info_login_trop_court_car_pluriel' => 'Le login doit contenir au moins @nb@ caractères.', |
|
| 360 | - 'info_logos' => 'Les logos', |
|
| 361 | - 'info_maximum' => 'maximum :', |
|
| 362 | - 'info_meme_rubrique' => 'Dans la même rubrique', |
|
| 363 | - 'info_message_en_redaction' => 'Vos messages en cours de rédaction', |
|
| 364 | - 'info_message_technique' => 'Message technique :', |
|
| 365 | - 'info_messagerie_interne' => 'Messagerie interne', |
|
| 366 | - 'info_mise_a_niveau_base' => 'mise à niveau de votre base SQL', |
|
| 367 | - 'info_mise_a_niveau_base_2' => '{{Attention !}} Vous avez installé une version |
|
| 342 | + 'info_hier' => 'hier :', |
|
| 343 | + 'info_identification_publique' => 'Votre identité publique...', |
|
| 344 | + 'info_image_process' => 'Veuillez sélectionner la meilleure méthode de fabrication des vignettes en cliquant sur l’image correspondante.', |
|
| 345 | + 'info_images_auto' => 'Images calculées automatiquement', |
|
| 346 | + 'info_informations_personnelles' => 'Informations personnelles', |
|
| 347 | + 'info_inscription' => 'Inscription le', |
|
| 348 | + 'info_inscription_automatique' => 'Inscription automatique de nouveaux rédacteurs', |
|
| 349 | + 'info_jeu_caractere' => 'Jeu de caractères du site', |
|
| 350 | + 'info_jours' => 'jours', |
|
| 351 | + 'info_laisser_champs_vides' => 'laisser ces champs vides)', |
|
| 352 | + 'info_langues' => 'Langues du site', |
|
| 353 | + 'info_ldap_ok' => 'L’authentification LDAP est installée.', |
|
| 354 | + 'info_lien_hypertexte' => 'Lien hypertexte :', |
|
| 355 | + 'info_liste_nouveautes_envoyee' => 'La liste des nouveautés a été envoyée', |
|
| 356 | + 'info_liste_redacteurs_connectes' => 'Liste des rédacteurs connectés', |
|
| 357 | + 'info_login_existant' => 'Ce login existe déjà.', |
|
| 358 | + 'info_login_trop_court' => 'Login trop court.', |
|
| 359 | + 'info_login_trop_court_car_pluriel' => 'Le login doit contenir au moins @nb@ caractères.', |
|
| 360 | + 'info_logos' => 'Les logos', |
|
| 361 | + 'info_maximum' => 'maximum :', |
|
| 362 | + 'info_meme_rubrique' => 'Dans la même rubrique', |
|
| 363 | + 'info_message_en_redaction' => 'Vos messages en cours de rédaction', |
|
| 364 | + 'info_message_technique' => 'Message technique :', |
|
| 365 | + 'info_messagerie_interne' => 'Messagerie interne', |
|
| 366 | + 'info_mise_a_niveau_base' => 'mise à niveau de votre base SQL', |
|
| 367 | + 'info_mise_a_niveau_base_2' => '{{Attention !}} Vous avez installé une version |
|
| 368 | 368 | des fichiers SPIP {antérieure} à celle qui se trouvait |
| 369 | 369 | auparavant sur ce site : votre base de données risque d’être |
| 370 | 370 | perdue et votre site ne fonctionnera plus.<br />{{Réinstallez les |
| 371 | 371 | fichiers de SPIP.}}', |
| 372 | - 'info_modification_enregistree' => 'Votre modification a été enregistrée', |
|
| 373 | - 'info_modifier_auteur' => 'Modifier l’auteur :', |
|
| 374 | - 'info_modifier_rubrique' => 'Modifier la rubrique :', |
|
| 375 | - 'info_modifier_titre' => 'Modifier : @titre@', |
|
| 376 | - 'info_mon_site_spip' => 'Mon site SPIP', |
|
| 377 | - 'info_moyenne' => 'moyenne :', |
|
| 378 | - 'info_multi_cet_article' => 'Langue de cet article :', |
|
| 379 | - 'info_multi_langues_choisies' => 'Veuillez sélectionner ci-après les langues à disposition des rédacteurs de votre site. |
|
| 372 | + 'info_modification_enregistree' => 'Votre modification a été enregistrée', |
|
| 373 | + 'info_modifier_auteur' => 'Modifier l’auteur :', |
|
| 374 | + 'info_modifier_rubrique' => 'Modifier la rubrique :', |
|
| 375 | + 'info_modifier_titre' => 'Modifier : @titre@', |
|
| 376 | + 'info_mon_site_spip' => 'Mon site SPIP', |
|
| 377 | + 'info_moyenne' => 'moyenne :', |
|
| 378 | + 'info_multi_cet_article' => 'Langue de cet article :', |
|
| 379 | + 'info_multi_langues_choisies' => 'Veuillez sélectionner ci-après les langues à disposition des rédacteurs de votre site. |
|
| 380 | 380 | Les langues déjà utilisées dans votre site (affichées en premier) ne peuvent pas être désactivées.', |
| 381 | - 'info_multi_objets' => '@objets@ : activer le menu de langue', |
|
| 382 | - 'info_multi_secteurs' => '... seulement pour les rubriques situées à la racine ?', |
|
| 383 | - 'info_nb_articles' => '@nb@ articles', |
|
| 384 | - 'info_nb_auteurs' => '@nb@ auteurs', |
|
| 385 | - 'info_nb_messages' => '@nb@ messages', |
|
| 386 | - 'info_nb_mots_cles' => '@nb@ mots-clés', |
|
| 387 | - 'info_nb_rubriques' => '@nb@ rubriques', |
|
| 388 | - 'info_nb_visiteurs' => '@nb@ visiteurs', |
|
| 389 | - 'info_nom' => 'Nom', |
|
| 390 | - 'info_nom_destinataire' => 'Nom du destinataire', |
|
| 391 | - 'info_nom_pas_conforme' => 'les tags html ne sont pas autorisés', |
|
| 392 | - 'info_nom_site' => 'Nom de votre site', |
|
| 393 | - 'info_nombre_articles' => '@nb_articles@ articles,', |
|
| 394 | - 'info_nombre_rubriques' => '@nb_rubriques@ rubriques,', |
|
| 395 | - 'info_nombre_sites' => '@nb_sites@ sites,', |
|
| 396 | - 'info_non_deplacer' => 'Ne pas déplacer...', |
|
| 397 | - 'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP peut envoyer, régulièrement, l’annonce des dernières nouveautés du site |
|
| 381 | + 'info_multi_objets' => '@objets@ : activer le menu de langue', |
|
| 382 | + 'info_multi_secteurs' => '... seulement pour les rubriques situées à la racine ?', |
|
| 383 | + 'info_nb_articles' => '@nb@ articles', |
|
| 384 | + 'info_nb_auteurs' => '@nb@ auteurs', |
|
| 385 | + 'info_nb_messages' => '@nb@ messages', |
|
| 386 | + 'info_nb_mots_cles' => '@nb@ mots-clés', |
|
| 387 | + 'info_nb_rubriques' => '@nb@ rubriques', |
|
| 388 | + 'info_nb_visiteurs' => '@nb@ visiteurs', |
|
| 389 | + 'info_nom' => 'Nom', |
|
| 390 | + 'info_nom_destinataire' => 'Nom du destinataire', |
|
| 391 | + 'info_nom_pas_conforme' => 'les tags html ne sont pas autorisés', |
|
| 392 | + 'info_nom_site' => 'Nom de votre site', |
|
| 393 | + 'info_nombre_articles' => '@nb_articles@ articles,', |
|
| 394 | + 'info_nombre_rubriques' => '@nb_rubriques@ rubriques,', |
|
| 395 | + 'info_nombre_sites' => '@nb_sites@ sites,', |
|
| 396 | + 'info_non_deplacer' => 'Ne pas déplacer...', |
|
| 397 | + 'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP peut envoyer, régulièrement, l’annonce des dernières nouveautés du site |
|
| 398 | 398 | (articles et brèves récemment publiés).', |
| 399 | - 'info_non_envoi_liste_nouveautes' => 'Ne pas envoyer la liste des nouveautés', |
|
| 400 | - 'info_non_modifiable' => 'ne peut pas être modifié', |
|
| 401 | - 'info_non_suppression_mot_cle' => 'je ne veux pas supprimer ce mot-clé.', |
|
| 402 | - 'info_notes' => 'Notes', |
|
| 403 | - 'info_nouvel_article' => 'Nouvel article', |
|
| 404 | - 'info_nouvelle_traduction' => 'Nouvelle traduction :', |
|
| 405 | - 'info_numero_article' => 'ARTICLE NUMÉRO :', |
|
| 406 | - 'info_obligatoire_02' => '(obligatoire)', |
|
| 407 | - 'info_option_accepter_visiteurs' => 'Accepter l’inscription de visiteurs du site public', |
|
| 408 | - 'info_option_ne_pas_accepter_visiteurs' => 'Refuser l’inscription des visiteurs', |
|
| 409 | - 'info_options_avancees' => 'OPTIONS AVANCÉES', |
|
| 410 | - 'info_ou' => 'ou...', |
|
| 411 | - 'info_page_interdite' => 'Page interdite', |
|
| 412 | - 'info_par_nom' => 'par nom', |
|
| 413 | - 'info_par_nombre_article' => 'par nombre d’articles', |
|
| 414 | - 'info_par_statut' => 'par statut', |
|
| 415 | - 'info_par_tri' => '’(par @tri@)’', |
|
| 416 | - 'info_passe_trop_court' => 'Mot de passe trop court.', |
|
| 417 | - 'info_passe_trop_court_car_pluriel' => 'Le mot de passe doit contenir au moins @nb@ caractères.', |
|
| 418 | - 'info_passes_identiques' => 'Les deux mots de passe ne sont pas identiques.', |
|
| 419 | - 'info_plus_cinq_car' => 'plus de 5 caractères', |
|
| 420 | - 'info_plus_cinq_car_2' => '(Plus de 5 caractères)', |
|
| 421 | - 'info_plus_trois_car' => '(Plus de 3 caractères)', |
|
| 422 | - 'info_popularite' => 'popularité : @popularite@ ; visites : @visites@', |
|
| 423 | - 'info_post_scriptum' => 'Post-Scriptum', |
|
| 424 | - 'info_post_scriptum_2' => 'Post-scriptum :', |
|
| 425 | - 'info_pour' => 'pour', |
|
| 426 | - 'info_preview_texte' => 'Il est possible de prévisualiser les différents éléments éditoriaux du site ayant au moins le statut « proposé », ainsi que les éléments en cours de rédaction dont on est l’auteur. Cette fonctionnalité doit-elle être disponible pour les administrateurs, les rédacteurs, ou personne ?', |
|
| 427 | - 'info_procedez_par_etape' => 'procédez étape par étape', |
|
| 428 | - 'info_procedure_maj_version' => 'la procédure de mise à jour doit être lancée afin d’adapter |
|
| 399 | + 'info_non_envoi_liste_nouveautes' => 'Ne pas envoyer la liste des nouveautés', |
|
| 400 | + 'info_non_modifiable' => 'ne peut pas être modifié', |
|
| 401 | + 'info_non_suppression_mot_cle' => 'je ne veux pas supprimer ce mot-clé.', |
|
| 402 | + 'info_notes' => 'Notes', |
|
| 403 | + 'info_nouvel_article' => 'Nouvel article', |
|
| 404 | + 'info_nouvelle_traduction' => 'Nouvelle traduction :', |
|
| 405 | + 'info_numero_article' => 'ARTICLE NUMÉRO :', |
|
| 406 | + 'info_obligatoire_02' => '(obligatoire)', |
|
| 407 | + 'info_option_accepter_visiteurs' => 'Accepter l’inscription de visiteurs du site public', |
|
| 408 | + 'info_option_ne_pas_accepter_visiteurs' => 'Refuser l’inscription des visiteurs', |
|
| 409 | + 'info_options_avancees' => 'OPTIONS AVANCÉES', |
|
| 410 | + 'info_ou' => 'ou...', |
|
| 411 | + 'info_page_interdite' => 'Page interdite', |
|
| 412 | + 'info_par_nom' => 'par nom', |
|
| 413 | + 'info_par_nombre_article' => 'par nombre d’articles', |
|
| 414 | + 'info_par_statut' => 'par statut', |
|
| 415 | + 'info_par_tri' => '’(par @tri@)’', |
|
| 416 | + 'info_passe_trop_court' => 'Mot de passe trop court.', |
|
| 417 | + 'info_passe_trop_court_car_pluriel' => 'Le mot de passe doit contenir au moins @nb@ caractères.', |
|
| 418 | + 'info_passes_identiques' => 'Les deux mots de passe ne sont pas identiques.', |
|
| 419 | + 'info_plus_cinq_car' => 'plus de 5 caractères', |
|
| 420 | + 'info_plus_cinq_car_2' => '(Plus de 5 caractères)', |
|
| 421 | + 'info_plus_trois_car' => '(Plus de 3 caractères)', |
|
| 422 | + 'info_popularite' => 'popularité : @popularite@ ; visites : @visites@', |
|
| 423 | + 'info_post_scriptum' => 'Post-Scriptum', |
|
| 424 | + 'info_post_scriptum_2' => 'Post-scriptum :', |
|
| 425 | + 'info_pour' => 'pour', |
|
| 426 | + 'info_preview_texte' => 'Il est possible de prévisualiser les différents éléments éditoriaux du site ayant au moins le statut « proposé », ainsi que les éléments en cours de rédaction dont on est l’auteur. Cette fonctionnalité doit-elle être disponible pour les administrateurs, les rédacteurs, ou personne ?', |
|
| 427 | + 'info_procedez_par_etape' => 'procédez étape par étape', |
|
| 428 | + 'info_procedure_maj_version' => 'la procédure de mise à jour doit être lancée afin d’adapter |
|
| 429 | 429 | la base de données à la nouvelle version de SPIP.', |
| 430 | - 'info_proxy_ok' => 'Test du proxy réussi.', |
|
| 431 | - 'info_ps' => 'P.-S.', |
|
| 432 | - 'info_publier' => 'publier', |
|
| 433 | - 'info_publies' => 'Vos articles publiés en ligne', |
|
| 434 | - 'info_question_accepter_visiteurs' => 'Si les squelettes de votre site prévoient l’enregistrement de visiteurs sans accès à l’espace privé, veuillez activer l’option ci-dessous :', |
|
| 435 | - 'info_question_inscription_nouveaux_redacteurs' => 'Acceptez-vous les inscriptions de nouveaux rédacteurs à |
|
| 430 | + 'info_proxy_ok' => 'Test du proxy réussi.', |
|
| 431 | + 'info_ps' => 'P.-S.', |
|
| 432 | + 'info_publier' => 'publier', |
|
| 433 | + 'info_publies' => 'Vos articles publiés en ligne', |
|
| 434 | + 'info_question_accepter_visiteurs' => 'Si les squelettes de votre site prévoient l’enregistrement de visiteurs sans accès à l’espace privé, veuillez activer l’option ci-dessous :', |
|
| 435 | + 'info_question_inscription_nouveaux_redacteurs' => 'Acceptez-vous les inscriptions de nouveaux rédacteurs à |
|
| 436 | 436 | partir du site public ? Si vous acceptez, les visiteurs pourront s’inscrire |
| 437 | 437 | depuis un formulaire automatisé et accéderont alors à l’espace privé pour |
| 438 | 438 | proposer leurs propres articles. <div class="notice">Lors de la phase d’inscription, |
@@ -441,405 +441,405 @@ discard block |
||
| 441 | 441 | hébergeurs désactivent l’envoi de mails depuis leurs |
| 442 | 442 | serveurs : dans ce cas, l’inscription automatique est |
| 443 | 443 | impossible.</div>', |
| 444 | - 'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes', |
|
| 445 | - 'info_racine_site' => 'Racine du site', |
|
| 446 | - 'info_recharger_page' => 'Veuillez recharger cette page dans quelques instants.', |
|
| 447 | - 'info_recherche_auteur_zero' => 'Aucun résultat pour « @cherche_auteur@ ».', |
|
| 448 | - 'info_recommencer' => 'Veuillez recommencer.', |
|
| 449 | - 'info_redacteur_1' => 'Rédacteur', |
|
| 450 | - 'info_redacteur_2' => 'ayant accès à l’espace privé (<i>recommandé</i>)', |
|
| 451 | - 'info_redacteurs' => 'Rédacteurs', |
|
| 452 | - 'info_redaction_en_cours' => 'EN COURS DE RÉDACTION', |
|
| 453 | - 'info_redirection' => 'Redirection', |
|
| 454 | - 'info_redirection_activee' => 'La redirection est activée.', |
|
| 455 | - 'info_redirection_boucle' => 'Vous essayez de rediriger l’article sur lui-même.', |
|
| 456 | - 'info_redirection_desactivee' => 'La redirection a été supprimée.', |
|
| 457 | - 'info_refuses' => 'Vos articles refusés', |
|
| 458 | - 'info_reglage_ldap' => 'Options : <b>Réglage de l’importation LDAP</b>', |
|
| 459 | - 'info_renvoi_article' => '<b>Redirection.</b> Cet article renvoie à la page :', |
|
| 460 | - 'info_reserve_admin' => 'Seuls les administrateurs peuvent modifier cette adresse.', |
|
| 461 | - 'info_restreindre_rubrique' => 'Restreindre la gestion à la rubrique :', |
|
| 462 | - 'info_resultat_recherche' => 'Résultats de la recherche :', |
|
| 463 | - 'info_rubriques' => 'Rubriques', |
|
| 464 | - 'info_rubriques_02' => 'rubriques', |
|
| 465 | - 'info_rubriques_trouvees' => 'Rubriques trouvées', |
|
| 466 | - 'info_sans_titre' => 'Sans titre', |
|
| 467 | - 'info_selection_chemin_acces' => '<b>Sélectionnez</b> ci-après le chemin d’accès dans l’annuaire :', |
|
| 468 | - 'info_signatures' => 'signatures', |
|
| 469 | - 'info_site' => 'Site', |
|
| 470 | - 'info_site_2' => 'site :', |
|
| 471 | - 'info_site_min' => 'site', |
|
| 472 | - 'info_site_reference_2' => 'Site référencé', |
|
| 473 | - 'info_site_web' => 'Site Web :', |
|
| 474 | - 'info_sites' => 'sites', |
|
| 475 | - 'info_sites_lies_mot' => 'Les sites référencés liés à ce mot-clé', |
|
| 476 | - 'info_sites_proxy' => 'Utiliser un proxy', |
|
| 477 | - 'info_sites_trouves' => 'Sites trouvés', |
|
| 478 | - 'info_sous_titre' => 'Soustitre :', |
|
| 479 | - 'info_statut_administrateur' => 'Administrateur', |
|
| 480 | - 'info_statut_auteur' => 'Statut de cet auteur :', |
|
| 481 | - 'info_statut_auteur_2' => 'Je suis', |
|
| 482 | - 'info_statut_auteur_a_confirmer' => 'Inscription à confirmer', |
|
| 483 | - 'info_statut_auteur_autre' => 'Autre statut :', |
|
| 484 | - 'info_statut_redacteur' => 'Rédacteur', |
|
| 485 | - 'info_statut_utilisateurs_1' => 'Statut par défaut des utilisateurs importés', |
|
| 486 | - 'info_statut_utilisateurs_2' => 'Choisissez le statut qui est attribué aux personnes présentes dans l’annuaire LDAP lorsqu’elles se connectent pour la première fois. Vous pourrez par la suite modifier cette valeur pour chaque auteur au cas par cas.', |
|
| 487 | - 'info_suivi_activite' => 'Suivi de l’activité éditoriale', |
|
| 488 | - 'info_surtitre' => 'Surtitre :', |
|
| 489 | - 'info_syndication_integrale_1' => 'Votre site propose des fichiers de syndication (voir « <a href="@url@">@titre@</a> »).', |
|
| 490 | - 'info_syndication_integrale_2' => 'Souhaitez-vous transmettre les articles dans leur intégralité, ou ne diffuser qu’un résumé de quelques centaines de caractères ?', |
|
| 491 | - 'info_table_prefix' => 'Vous pouvez modifier le préfixe du nom des tables de données (ceci est indispensable lorsque l’on souhaite installer plusieurs sites dans la même base de données). Ce préfixe s’écrit en lettres minuscules, non accentuées, et sans espace.', |
|
| 492 | - 'info_taille_maximale_images' => 'SPIP va tester la taille maximale des images qu’il peut traiter (en millions de pixels).<br /> Les images plus grandes ne seront pas réduites.', |
|
| 493 | - 'info_taille_maximale_vignette' => 'Taille maximale des vignettes générées par le système :', |
|
| 494 | - 'info_terminer_installation' => 'Vous pouvez maintenant terminer la procédure d’installation standard.', |
|
| 495 | - 'info_texte' => 'Texte', |
|
| 496 | - 'info_texte_explicatif' => 'Texte explicatif', |
|
| 497 | - 'info_texte_long' => '(le texte est long : il apparaît donc en plusieurs parties qui seront recollées après validation.)', |
|
| 498 | - 'info_texte_message' => 'Texte de votre message', |
|
| 499 | - 'info_texte_message_02' => 'Texte du message', |
|
| 500 | - 'info_titre' => 'Titre :', |
|
| 501 | - 'info_total' => 'total :', |
|
| 502 | - 'info_tous_articles_en_redaction' => 'Tous les articles en cours de rédaction', |
|
| 503 | - 'info_tous_articles_presents' => 'Tous les articles publiés dans cette rubrique', |
|
| 504 | - 'info_tous_articles_refuses' => 'Tous les articles refusés', |
|
| 505 | - 'info_tous_les' => 'tous les :', |
|
| 506 | - 'info_tout_site' => 'Tout le site', |
|
| 507 | - 'info_tout_site2' => 'L’article n’a pas été traduit dans cette langue.', |
|
| 508 | - 'info_tout_site3' => 'L’article a été traduit dans cette langue, mais des modifications ont été apportées par la suite à l’article de référence. La traduction doit être mise à jour.', |
|
| 509 | - 'info_tout_site4' => 'L’article a été traduit dans cette langue, et la traduction est à jour.', |
|
| 510 | - 'info_tout_site5' => 'Article original.', |
|
| 511 | - 'info_tout_site6' => '<b>Attention :</b> seuls les articles originaux sont affichés. |
|
| 444 | + 'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes', |
|
| 445 | + 'info_racine_site' => 'Racine du site', |
|
| 446 | + 'info_recharger_page' => 'Veuillez recharger cette page dans quelques instants.', |
|
| 447 | + 'info_recherche_auteur_zero' => 'Aucun résultat pour « @cherche_auteur@ ».', |
|
| 448 | + 'info_recommencer' => 'Veuillez recommencer.', |
|
| 449 | + 'info_redacteur_1' => 'Rédacteur', |
|
| 450 | + 'info_redacteur_2' => 'ayant accès à l’espace privé (<i>recommandé</i>)', |
|
| 451 | + 'info_redacteurs' => 'Rédacteurs', |
|
| 452 | + 'info_redaction_en_cours' => 'EN COURS DE RÉDACTION', |
|
| 453 | + 'info_redirection' => 'Redirection', |
|
| 454 | + 'info_redirection_activee' => 'La redirection est activée.', |
|
| 455 | + 'info_redirection_boucle' => 'Vous essayez de rediriger l’article sur lui-même.', |
|
| 456 | + 'info_redirection_desactivee' => 'La redirection a été supprimée.', |
|
| 457 | + 'info_refuses' => 'Vos articles refusés', |
|
| 458 | + 'info_reglage_ldap' => 'Options : <b>Réglage de l’importation LDAP</b>', |
|
| 459 | + 'info_renvoi_article' => '<b>Redirection.</b> Cet article renvoie à la page :', |
|
| 460 | + 'info_reserve_admin' => 'Seuls les administrateurs peuvent modifier cette adresse.', |
|
| 461 | + 'info_restreindre_rubrique' => 'Restreindre la gestion à la rubrique :', |
|
| 462 | + 'info_resultat_recherche' => 'Résultats de la recherche :', |
|
| 463 | + 'info_rubriques' => 'Rubriques', |
|
| 464 | + 'info_rubriques_02' => 'rubriques', |
|
| 465 | + 'info_rubriques_trouvees' => 'Rubriques trouvées', |
|
| 466 | + 'info_sans_titre' => 'Sans titre', |
|
| 467 | + 'info_selection_chemin_acces' => '<b>Sélectionnez</b> ci-après le chemin d’accès dans l’annuaire :', |
|
| 468 | + 'info_signatures' => 'signatures', |
|
| 469 | + 'info_site' => 'Site', |
|
| 470 | + 'info_site_2' => 'site :', |
|
| 471 | + 'info_site_min' => 'site', |
|
| 472 | + 'info_site_reference_2' => 'Site référencé', |
|
| 473 | + 'info_site_web' => 'Site Web :', |
|
| 474 | + 'info_sites' => 'sites', |
|
| 475 | + 'info_sites_lies_mot' => 'Les sites référencés liés à ce mot-clé', |
|
| 476 | + 'info_sites_proxy' => 'Utiliser un proxy', |
|
| 477 | + 'info_sites_trouves' => 'Sites trouvés', |
|
| 478 | + 'info_sous_titre' => 'Soustitre :', |
|
| 479 | + 'info_statut_administrateur' => 'Administrateur', |
|
| 480 | + 'info_statut_auteur' => 'Statut de cet auteur :', |
|
| 481 | + 'info_statut_auteur_2' => 'Je suis', |
|
| 482 | + 'info_statut_auteur_a_confirmer' => 'Inscription à confirmer', |
|
| 483 | + 'info_statut_auteur_autre' => 'Autre statut :', |
|
| 484 | + 'info_statut_redacteur' => 'Rédacteur', |
|
| 485 | + 'info_statut_utilisateurs_1' => 'Statut par défaut des utilisateurs importés', |
|
| 486 | + 'info_statut_utilisateurs_2' => 'Choisissez le statut qui est attribué aux personnes présentes dans l’annuaire LDAP lorsqu’elles se connectent pour la première fois. Vous pourrez par la suite modifier cette valeur pour chaque auteur au cas par cas.', |
|
| 487 | + 'info_suivi_activite' => 'Suivi de l’activité éditoriale', |
|
| 488 | + 'info_surtitre' => 'Surtitre :', |
|
| 489 | + 'info_syndication_integrale_1' => 'Votre site propose des fichiers de syndication (voir « <a href="@url@">@titre@</a> »).', |
|
| 490 | + 'info_syndication_integrale_2' => 'Souhaitez-vous transmettre les articles dans leur intégralité, ou ne diffuser qu’un résumé de quelques centaines de caractères ?', |
|
| 491 | + 'info_table_prefix' => 'Vous pouvez modifier le préfixe du nom des tables de données (ceci est indispensable lorsque l’on souhaite installer plusieurs sites dans la même base de données). Ce préfixe s’écrit en lettres minuscules, non accentuées, et sans espace.', |
|
| 492 | + 'info_taille_maximale_images' => 'SPIP va tester la taille maximale des images qu’il peut traiter (en millions de pixels).<br /> Les images plus grandes ne seront pas réduites.', |
|
| 493 | + 'info_taille_maximale_vignette' => 'Taille maximale des vignettes générées par le système :', |
|
| 494 | + 'info_terminer_installation' => 'Vous pouvez maintenant terminer la procédure d’installation standard.', |
|
| 495 | + 'info_texte' => 'Texte', |
|
| 496 | + 'info_texte_explicatif' => 'Texte explicatif', |
|
| 497 | + 'info_texte_long' => '(le texte est long : il apparaît donc en plusieurs parties qui seront recollées après validation.)', |
|
| 498 | + 'info_texte_message' => 'Texte de votre message', |
|
| 499 | + 'info_texte_message_02' => 'Texte du message', |
|
| 500 | + 'info_titre' => 'Titre :', |
|
| 501 | + 'info_total' => 'total :', |
|
| 502 | + 'info_tous_articles_en_redaction' => 'Tous les articles en cours de rédaction', |
|
| 503 | + 'info_tous_articles_presents' => 'Tous les articles publiés dans cette rubrique', |
|
| 504 | + 'info_tous_articles_refuses' => 'Tous les articles refusés', |
|
| 505 | + 'info_tous_les' => 'tous les :', |
|
| 506 | + 'info_tout_site' => 'Tout le site', |
|
| 507 | + 'info_tout_site2' => 'L’article n’a pas été traduit dans cette langue.', |
|
| 508 | + 'info_tout_site3' => 'L’article a été traduit dans cette langue, mais des modifications ont été apportées par la suite à l’article de référence. La traduction doit être mise à jour.', |
|
| 509 | + 'info_tout_site4' => 'L’article a été traduit dans cette langue, et la traduction est à jour.', |
|
| 510 | + 'info_tout_site5' => 'Article original.', |
|
| 511 | + 'info_tout_site6' => '<b>Attention :</b> seuls les articles originaux sont affichés. |
|
| 512 | 512 | Les traductions sont associées à l’original, |
| 513 | 513 | dans une couleur qui indique leur état :', |
| 514 | - 'info_traductions' => 'Traductions', |
|
| 515 | - 'info_travail_colaboratif' => 'Travail collaboratif sur les articles', |
|
| 516 | - 'info_un_article' => 'un article,', |
|
| 517 | - 'info_un_site' => 'un site,', |
|
| 518 | - 'info_une_rubrique' => 'une rubrique,', |
|
| 519 | - 'info_une_rubrique_02' => '1 rubrique', |
|
| 520 | - 'info_url' => 'URL :', |
|
| 521 | - 'info_url_proxy' => 'URL du proxy', |
|
| 522 | - 'info_url_proxy_pas_conforme' => 'l’URL du proxy n’est pas valide.', |
|
| 523 | - 'info_url_site_pas_conforme' => 'l’URL du site n’est pas valide.', |
|
| 524 | - 'info_url_test_proxy' => 'URL de test', |
|
| 525 | - 'info_urlref' => 'Lien hypertexte :', |
|
| 526 | - 'info_utilisation_spip' => 'Vous pouvez maintenant commencer à utiliser le système de publication assistée...', |
|
| 527 | - 'info_visites_par_mois' => 'Affichage par mois :', |
|
| 528 | - 'info_visiteur_1' => 'Visiteur', |
|
| 529 | - 'info_visiteur_2' => 'du site public', |
|
| 530 | - 'info_visiteurs' => 'Visiteurs', |
|
| 531 | - 'info_visiteurs_02' => 'Visiteurs du site public', |
|
| 532 | - 'info_webmestre_forces' => 'Les webmestres sont actuellement définis dans <tt>@file_options@</tt>.', |
|
| 533 | - 'install_adresse_base_hebergeur' => 'Adresse de la base de données attribuée par l’hébergeur', |
|
| 534 | - 'install_connect_ok' => 'La nouvelle base a bien été déclarée sous le nom de serveur @connect@.', |
|
| 535 | - 'install_echec_annonce' => 'L’installation va probablement échouer, ou aboutir à un site non fonctionnel...', |
|
| 536 | - 'install_extension_mbstring' => 'SPIP ne fonctionne pas avec :', |
|
| 537 | - 'install_extension_php_obligatoire' => 'SPIP exige l’extension php :', |
|
| 538 | - 'install_login_base_hebergeur' => 'Login de connexion attribué par l’hébergeur', |
|
| 539 | - 'install_nom_base_hebergeur' => 'Nom de la base attribué par l’hébergeur :', |
|
| 540 | - 'install_pas_table' => 'Base actuellement sans tables', |
|
| 541 | - 'install_pass_base_hebergeur' => 'Mot de passe de connexion attribué par l’hébergeur', |
|
| 542 | - 'install_php_extension' => 'Les extensions suivantes sont manquantes : @extensions@', |
|
| 543 | - 'install_php_version' => 'PHP version @version@ insuffisant (minimum = @minimum@)', |
|
| 544 | - 'install_php_version_max' => 'PHP version @version@ trop récent (maximum = @maximum@)', |
|
| 545 | - 'install_select_langue' => 'Sélectionnez une langue puis cliquez sur le bouton « suivant » pour lancer la procédure d’installation.', |
|
| 546 | - 'install_select_type_db' => 'Indiquer le type de base de données :', |
|
| 547 | - 'install_select_type_mysql' => 'MySQL', |
|
| 548 | - 'install_select_type_pg' => 'PostgreSQL', |
|
| 549 | - 'install_select_type_sqlite2' => 'SQLite 2', |
|
| 550 | - 'install_select_type_sqlite3' => 'SQLite 3', |
|
| 551 | - 'install_serveur_hebergeur' => 'Serveur de base de données attribué par l’hébergeur', |
|
| 552 | - 'install_table_prefix_hebergeur' => 'Préfixe de table attribué par l’hébergeur :', |
|
| 553 | - 'install_tables_base' => 'Tables de la base', |
|
| 554 | - 'install_types_db_connus' => 'SPIP sait utiliser <b>MySQL</b> (le plus répandu) et <b>SQLite</b>.', |
|
| 555 | - 'install_types_db_connus_avertissement' => 'Le support de <b>PostgreSQL</b> est également proposé à titre experimental', |
|
| 556 | - 'instituer_erreur_statut_a_change' => 'Le statut a déjà été modifié', |
|
| 557 | - 'instituer_erreur_statut_non_autorise' => 'Vous ne pouvez pas choisir ce statut', |
|
| 558 | - 'intem_redacteur' => 'rédacteur', |
|
| 559 | - 'intitule_licence' => 'Licence', |
|
| 560 | - 'item_accepter_inscriptions' => 'Accepter les inscriptions', |
|
| 561 | - 'item_activer_messages_avertissement' => 'Activer les messages d’avertissement', |
|
| 562 | - 'item_administrateur_2' => 'administrateur', |
|
| 563 | - 'item_afficher_calendrier' => 'Afficher dans le calendrier', |
|
| 564 | - 'item_autoriser_syndication_integrale' => 'Diffuser l’intégralité des articles dans les fichiers de syndication', |
|
| 565 | - 'item_choix_administrateurs' => 'les administrateurs', |
|
| 566 | - 'item_choix_generation_miniature' => 'Générer automatiquement les miniatures des images.', |
|
| 567 | - 'item_choix_non_generation_miniature' => 'Ne pas générer de miniatures des images.', |
|
| 568 | - 'item_choix_redacteurs' => 'les rédacteurs', |
|
| 569 | - 'item_choix_visiteurs' => 'les visiteurs du site public', |
|
| 570 | - 'item_creer_fichiers_authent' => 'Créer les fichiers .htpasswd', |
|
| 571 | - 'item_login' => 'Login', |
|
| 572 | - 'item_messagerie_agenda' => 'Activer la messagerie et l’agenda', |
|
| 573 | - 'item_mots_cles_association_articles' => 'aux articles', |
|
| 574 | - 'item_mots_cles_association_rubriques' => 'aux rubriques', |
|
| 575 | - 'item_mots_cles_association_sites' => 'aux sites référencés ou syndiqués.', |
|
| 576 | - 'item_non' => 'Non', |
|
| 577 | - 'item_non_accepter_inscriptions' => 'Ne pas accepter les inscriptions', |
|
| 578 | - 'item_non_activer_messages_avertissement' => 'Pas de messages d’avertissement', |
|
| 579 | - 'item_non_afficher_calendrier' => 'Ne pas afficher dans le calendrier', |
|
| 580 | - 'item_non_autoriser_syndication_integrale' => 'Ne diffuser qu’un résumé', |
|
| 581 | - 'item_non_creer_fichiers_authent' => 'Ne pas créer ces fichiers', |
|
| 582 | - 'item_non_messagerie_agenda' => 'Désactiver la messagerie et l’agenda', |
|
| 583 | - 'item_non_publier_articles' => 'Ne pas publier les articles avant la date de publication fixée.', |
|
| 584 | - 'item_nouvel_auteur' => 'Nouvel auteur', |
|
| 585 | - 'item_nouvelle_rubrique' => 'Nouvelle rubrique', |
|
| 586 | - 'item_oui' => 'Oui', |
|
| 587 | - 'item_publier_articles' => 'Publier les articles, quelle que soit leur date de publication.', |
|
| 588 | - 'item_reponse_article' => 'Réponse à l’article', |
|
| 589 | - 'item_visiteur' => 'visiteur', |
|
| 514 | + 'info_traductions' => 'Traductions', |
|
| 515 | + 'info_travail_colaboratif' => 'Travail collaboratif sur les articles', |
|
| 516 | + 'info_un_article' => 'un article,', |
|
| 517 | + 'info_un_site' => 'un site,', |
|
| 518 | + 'info_une_rubrique' => 'une rubrique,', |
|
| 519 | + 'info_une_rubrique_02' => '1 rubrique', |
|
| 520 | + 'info_url' => 'URL :', |
|
| 521 | + 'info_url_proxy' => 'URL du proxy', |
|
| 522 | + 'info_url_proxy_pas_conforme' => 'l’URL du proxy n’est pas valide.', |
|
| 523 | + 'info_url_site_pas_conforme' => 'l’URL du site n’est pas valide.', |
|
| 524 | + 'info_url_test_proxy' => 'URL de test', |
|
| 525 | + 'info_urlref' => 'Lien hypertexte :', |
|
| 526 | + 'info_utilisation_spip' => 'Vous pouvez maintenant commencer à utiliser le système de publication assistée...', |
|
| 527 | + 'info_visites_par_mois' => 'Affichage par mois :', |
|
| 528 | + 'info_visiteur_1' => 'Visiteur', |
|
| 529 | + 'info_visiteur_2' => 'du site public', |
|
| 530 | + 'info_visiteurs' => 'Visiteurs', |
|
| 531 | + 'info_visiteurs_02' => 'Visiteurs du site public', |
|
| 532 | + 'info_webmestre_forces' => 'Les webmestres sont actuellement définis dans <tt>@file_options@</tt>.', |
|
| 533 | + 'install_adresse_base_hebergeur' => 'Adresse de la base de données attribuée par l’hébergeur', |
|
| 534 | + 'install_connect_ok' => 'La nouvelle base a bien été déclarée sous le nom de serveur @connect@.', |
|
| 535 | + 'install_echec_annonce' => 'L’installation va probablement échouer, ou aboutir à un site non fonctionnel...', |
|
| 536 | + 'install_extension_mbstring' => 'SPIP ne fonctionne pas avec :', |
|
| 537 | + 'install_extension_php_obligatoire' => 'SPIP exige l’extension php :', |
|
| 538 | + 'install_login_base_hebergeur' => 'Login de connexion attribué par l’hébergeur', |
|
| 539 | + 'install_nom_base_hebergeur' => 'Nom de la base attribué par l’hébergeur :', |
|
| 540 | + 'install_pas_table' => 'Base actuellement sans tables', |
|
| 541 | + 'install_pass_base_hebergeur' => 'Mot de passe de connexion attribué par l’hébergeur', |
|
| 542 | + 'install_php_extension' => 'Les extensions suivantes sont manquantes : @extensions@', |
|
| 543 | + 'install_php_version' => 'PHP version @version@ insuffisant (minimum = @minimum@)', |
|
| 544 | + 'install_php_version_max' => 'PHP version @version@ trop récent (maximum = @maximum@)', |
|
| 545 | + 'install_select_langue' => 'Sélectionnez une langue puis cliquez sur le bouton « suivant » pour lancer la procédure d’installation.', |
|
| 546 | + 'install_select_type_db' => 'Indiquer le type de base de données :', |
|
| 547 | + 'install_select_type_mysql' => 'MySQL', |
|
| 548 | + 'install_select_type_pg' => 'PostgreSQL', |
|
| 549 | + 'install_select_type_sqlite2' => 'SQLite 2', |
|
| 550 | + 'install_select_type_sqlite3' => 'SQLite 3', |
|
| 551 | + 'install_serveur_hebergeur' => 'Serveur de base de données attribué par l’hébergeur', |
|
| 552 | + 'install_table_prefix_hebergeur' => 'Préfixe de table attribué par l’hébergeur :', |
|
| 553 | + 'install_tables_base' => 'Tables de la base', |
|
| 554 | + 'install_types_db_connus' => 'SPIP sait utiliser <b>MySQL</b> (le plus répandu) et <b>SQLite</b>.', |
|
| 555 | + 'install_types_db_connus_avertissement' => 'Le support de <b>PostgreSQL</b> est également proposé à titre experimental', |
|
| 556 | + 'instituer_erreur_statut_a_change' => 'Le statut a déjà été modifié', |
|
| 557 | + 'instituer_erreur_statut_non_autorise' => 'Vous ne pouvez pas choisir ce statut', |
|
| 558 | + 'intem_redacteur' => 'rédacteur', |
|
| 559 | + 'intitule_licence' => 'Licence', |
|
| 560 | + 'item_accepter_inscriptions' => 'Accepter les inscriptions', |
|
| 561 | + 'item_activer_messages_avertissement' => 'Activer les messages d’avertissement', |
|
| 562 | + 'item_administrateur_2' => 'administrateur', |
|
| 563 | + 'item_afficher_calendrier' => 'Afficher dans le calendrier', |
|
| 564 | + 'item_autoriser_syndication_integrale' => 'Diffuser l’intégralité des articles dans les fichiers de syndication', |
|
| 565 | + 'item_choix_administrateurs' => 'les administrateurs', |
|
| 566 | + 'item_choix_generation_miniature' => 'Générer automatiquement les miniatures des images.', |
|
| 567 | + 'item_choix_non_generation_miniature' => 'Ne pas générer de miniatures des images.', |
|
| 568 | + 'item_choix_redacteurs' => 'les rédacteurs', |
|
| 569 | + 'item_choix_visiteurs' => 'les visiteurs du site public', |
|
| 570 | + 'item_creer_fichiers_authent' => 'Créer les fichiers .htpasswd', |
|
| 571 | + 'item_login' => 'Login', |
|
| 572 | + 'item_messagerie_agenda' => 'Activer la messagerie et l’agenda', |
|
| 573 | + 'item_mots_cles_association_articles' => 'aux articles', |
|
| 574 | + 'item_mots_cles_association_rubriques' => 'aux rubriques', |
|
| 575 | + 'item_mots_cles_association_sites' => 'aux sites référencés ou syndiqués.', |
|
| 576 | + 'item_non' => 'Non', |
|
| 577 | + 'item_non_accepter_inscriptions' => 'Ne pas accepter les inscriptions', |
|
| 578 | + 'item_non_activer_messages_avertissement' => 'Pas de messages d’avertissement', |
|
| 579 | + 'item_non_afficher_calendrier' => 'Ne pas afficher dans le calendrier', |
|
| 580 | + 'item_non_autoriser_syndication_integrale' => 'Ne diffuser qu’un résumé', |
|
| 581 | + 'item_non_creer_fichiers_authent' => 'Ne pas créer ces fichiers', |
|
| 582 | + 'item_non_messagerie_agenda' => 'Désactiver la messagerie et l’agenda', |
|
| 583 | + 'item_non_publier_articles' => 'Ne pas publier les articles avant la date de publication fixée.', |
|
| 584 | + 'item_nouvel_auteur' => 'Nouvel auteur', |
|
| 585 | + 'item_nouvelle_rubrique' => 'Nouvelle rubrique', |
|
| 586 | + 'item_oui' => 'Oui', |
|
| 587 | + 'item_publier_articles' => 'Publier les articles, quelle que soit leur date de publication.', |
|
| 588 | + 'item_reponse_article' => 'Réponse à l’article', |
|
| 589 | + 'item_visiteur' => 'visiteur', |
|
| 590 | 590 | |
| 591 | - // J |
|
| 592 | - 'jour_non_connu_nc' => 'n.c.', |
|
| 591 | + // J |
|
| 592 | + 'jour_non_connu_nc' => 'n.c.', |
|
| 593 | 593 | |
| 594 | - // L |
|
| 595 | - 'label_bando_outils' => 'Barre d’outils', |
|
| 596 | - 'label_bando_outils_afficher' => 'Afficher les outils', |
|
| 597 | - 'label_bando_outils_masquer' => 'Masquer les outils', |
|
| 598 | - 'label_choix_langue' => 'Sélectionnez votre langue', |
|
| 599 | - 'label_langue' => 'Langue', |
|
| 600 | - 'label_nom_fichier_connect' => 'Indiquez le nom utilisé pour ce serveur', |
|
| 601 | - 'label_slogan_site' => 'Slogan du site', |
|
| 602 | - 'label_taille_ecran' => 'Largeur de l’écran', |
|
| 603 | - 'label_texte_et_icones_navigation' => 'Menu de navigation', |
|
| 604 | - 'label_texte_et_icones_page' => 'Affichage dans la page', |
|
| 605 | - 'ldap_correspondance' => 'héritage du champ @champ@', |
|
| 606 | - 'ldap_correspondance_1' => 'Héritage des champs LDAP', |
|
| 607 | - 'ldap_correspondance_2' => 'Pour chacun des champs SPIP suivants, indiquer le nom du champ LDAP correspondant. Laisser vide pour ne pas le remplir, séparer par des espaces ou des virgules pour essayer plusieurs champs LDAP.', |
|
| 608 | - 'lien_ajouter_auteur' => 'Ajouter cet auteur', |
|
| 609 | - 'lien_ajouter_une_rubrique' => 'Ajouter cette rubrique', |
|
| 610 | - 'lien_email' => 'email', |
|
| 611 | - 'lien_nom_site' => 'NOM DU SITE :', |
|
| 612 | - 'lien_rapide_contenu' => 'Aller au contenu', |
|
| 613 | - 'lien_rapide_navigation' => 'Aller à la navigation', |
|
| 614 | - 'lien_rapide_recherche' => 'Aller à la recherche', |
|
| 615 | - 'lien_retirer_auteur' => 'Retirer l’auteur', |
|
| 616 | - 'lien_retirer_rubrique' => 'Retirer la rubrique', |
|
| 617 | - 'lien_retirer_tous_auteurs' => 'Retirer tous les auteurs', |
|
| 618 | - 'lien_retirer_toutes_rubriques' => 'Retirer toutes les rubriques', |
|
| 619 | - 'lien_site' => 'site', |
|
| 620 | - 'lien_tout_decocher' => 'Tout décocher', |
|
| 621 | - 'lien_tout_deplier' => 'Tout déplier', |
|
| 622 | - 'lien_tout_replier' => 'Tout replier', |
|
| 623 | - 'lien_tout_supprimer' => 'Tout supprimer', |
|
| 624 | - 'lien_trier_nom' => 'Trier par nom', |
|
| 625 | - 'lien_trier_nombre_articles' => 'Trier par nombre d’articles', |
|
| 626 | - 'lien_trier_statut' => 'Trier par statut', |
|
| 627 | - 'lien_voir_en_ligne' => 'VOIR EN LIGNE :', |
|
| 628 | - 'logo_article' => 'Logo de l’article', |
|
| 629 | - 'logo_auteur' => 'Logo de l’auteur', |
|
| 630 | - 'logo_rubrique' => 'Logo de la rubrique', |
|
| 631 | - 'logo_site' => 'Logo de ce site', |
|
| 632 | - 'logo_standard_rubrique' => 'Logo standard des rubriques', |
|
| 633 | - 'logo_survol' => 'Logo pour survol', |
|
| 594 | + // L |
|
| 595 | + 'label_bando_outils' => 'Barre d’outils', |
|
| 596 | + 'label_bando_outils_afficher' => 'Afficher les outils', |
|
| 597 | + 'label_bando_outils_masquer' => 'Masquer les outils', |
|
| 598 | + 'label_choix_langue' => 'Sélectionnez votre langue', |
|
| 599 | + 'label_langue' => 'Langue', |
|
| 600 | + 'label_nom_fichier_connect' => 'Indiquez le nom utilisé pour ce serveur', |
|
| 601 | + 'label_slogan_site' => 'Slogan du site', |
|
| 602 | + 'label_taille_ecran' => 'Largeur de l’écran', |
|
| 603 | + 'label_texte_et_icones_navigation' => 'Menu de navigation', |
|
| 604 | + 'label_texte_et_icones_page' => 'Affichage dans la page', |
|
| 605 | + 'ldap_correspondance' => 'héritage du champ @champ@', |
|
| 606 | + 'ldap_correspondance_1' => 'Héritage des champs LDAP', |
|
| 607 | + 'ldap_correspondance_2' => 'Pour chacun des champs SPIP suivants, indiquer le nom du champ LDAP correspondant. Laisser vide pour ne pas le remplir, séparer par des espaces ou des virgules pour essayer plusieurs champs LDAP.', |
|
| 608 | + 'lien_ajouter_auteur' => 'Ajouter cet auteur', |
|
| 609 | + 'lien_ajouter_une_rubrique' => 'Ajouter cette rubrique', |
|
| 610 | + 'lien_email' => 'email', |
|
| 611 | + 'lien_nom_site' => 'NOM DU SITE :', |
|
| 612 | + 'lien_rapide_contenu' => 'Aller au contenu', |
|
| 613 | + 'lien_rapide_navigation' => 'Aller à la navigation', |
|
| 614 | + 'lien_rapide_recherche' => 'Aller à la recherche', |
|
| 615 | + 'lien_retirer_auteur' => 'Retirer l’auteur', |
|
| 616 | + 'lien_retirer_rubrique' => 'Retirer la rubrique', |
|
| 617 | + 'lien_retirer_tous_auteurs' => 'Retirer tous les auteurs', |
|
| 618 | + 'lien_retirer_toutes_rubriques' => 'Retirer toutes les rubriques', |
|
| 619 | + 'lien_site' => 'site', |
|
| 620 | + 'lien_tout_decocher' => 'Tout décocher', |
|
| 621 | + 'lien_tout_deplier' => 'Tout déplier', |
|
| 622 | + 'lien_tout_replier' => 'Tout replier', |
|
| 623 | + 'lien_tout_supprimer' => 'Tout supprimer', |
|
| 624 | + 'lien_trier_nom' => 'Trier par nom', |
|
| 625 | + 'lien_trier_nombre_articles' => 'Trier par nombre d’articles', |
|
| 626 | + 'lien_trier_statut' => 'Trier par statut', |
|
| 627 | + 'lien_voir_en_ligne' => 'VOIR EN LIGNE :', |
|
| 628 | + 'logo_article' => 'Logo de l’article', |
|
| 629 | + 'logo_auteur' => 'Logo de l’auteur', |
|
| 630 | + 'logo_rubrique' => 'Logo de la rubrique', |
|
| 631 | + 'logo_site' => 'Logo de ce site', |
|
| 632 | + 'logo_standard_rubrique' => 'Logo standard des rubriques', |
|
| 633 | + 'logo_survol' => 'Logo pour survol', |
|
| 634 | 634 | |
| 635 | - // M |
|
| 636 | - 'menu_aide_installation_choix_base' => 'Choix de votre base', |
|
| 637 | - 'module_fichier_langue' => 'Fichier de langue', |
|
| 638 | - 'module_raccourci' => 'Raccourci', |
|
| 639 | - 'module_texte_affiche' => 'Texte affiché', |
|
| 640 | - 'module_texte_explicatif' => 'Vous pouvez insérer les raccourcis suivants dans les squelettes de votre site public. Ils seront automatiquement traduits dans les différentes langues pour lesquelles il existe un fichier de langue.', |
|
| 641 | - 'module_texte_traduction' => 'Le fichier de langue « @module@ » est disponible en :', |
|
| 642 | - 'mois_non_connu' => 'non connu', |
|
| 635 | + // M |
|
| 636 | + 'menu_aide_installation_choix_base' => 'Choix de votre base', |
|
| 637 | + 'module_fichier_langue' => 'Fichier de langue', |
|
| 638 | + 'module_raccourci' => 'Raccourci', |
|
| 639 | + 'module_texte_affiche' => 'Texte affiché', |
|
| 640 | + 'module_texte_explicatif' => 'Vous pouvez insérer les raccourcis suivants dans les squelettes de votre site public. Ils seront automatiquement traduits dans les différentes langues pour lesquelles il existe un fichier de langue.', |
|
| 641 | + 'module_texte_traduction' => 'Le fichier de langue « @module@ » est disponible en :', |
|
| 642 | + 'mois_non_connu' => 'non connu', |
|
| 643 | 643 | |
| 644 | - // N |
|
| 645 | - 'nouvelle_version_spip' => 'La mise à jour @version@ de SPIP est disponible', |
|
| 646 | - 'nouvelle_version_spip_majeure' => 'Une nouvelle version SPIP @version@ est disponible', |
|
| 644 | + // N |
|
| 645 | + 'nouvelle_version_spip' => 'La mise à jour @version@ de SPIP est disponible', |
|
| 646 | + 'nouvelle_version_spip_majeure' => 'Une nouvelle version SPIP @version@ est disponible', |
|
| 647 | 647 | |
| 648 | - // O |
|
| 649 | - 'onglet_contenu' => 'Contenu', |
|
| 650 | - 'onglet_declarer_une_autre_base' => 'Déclarer une autre base', |
|
| 651 | - 'onglet_discuter' => 'Discuter', |
|
| 652 | - 'onglet_interactivite' => 'Interactivité', |
|
| 653 | - 'onglet_proprietes' => 'Propriétés', |
|
| 654 | - 'onglet_repartition_actuelle' => 'actuellement', |
|
| 655 | - 'onglet_sous_rubriques' => 'Sous-rubriques', |
|
| 648 | + // O |
|
| 649 | + 'onglet_contenu' => 'Contenu', |
|
| 650 | + 'onglet_declarer_une_autre_base' => 'Déclarer une autre base', |
|
| 651 | + 'onglet_discuter' => 'Discuter', |
|
| 652 | + 'onglet_interactivite' => 'Interactivité', |
|
| 653 | + 'onglet_proprietes' => 'Propriétés', |
|
| 654 | + 'onglet_repartition_actuelle' => 'actuellement', |
|
| 655 | + 'onglet_sous_rubriques' => 'Sous-rubriques', |
|
| 656 | 656 | |
| 657 | - // P |
|
| 658 | - 'page_pas_proxy' => 'Cette page ne doit pas passer par le proxy', |
|
| 659 | - 'pas_de_proxy_pour' => 'Au besoin, indiquez les machines ou domaines pour lesquels ce proxy ne doit pas s’appliquer (par exemple : @exemple@)', |
|
| 660 | - 'phpinfo' => 'Configuration PHP', |
|
| 661 | - 'plugin_charge_paquet' => 'Chargement du paquet @name@', |
|
| 662 | - 'plugin_charger' => 'Télécharger', |
|
| 663 | - 'plugin_erreur_charger' => 'erreur : impossible de charger @zip@', |
|
| 664 | - 'plugin_erreur_droit1' => 'Le répertoire <code>@dest@</code> n’est pas accessible en écriture.', |
|
| 665 | - 'plugin_erreur_droit2' => 'Veuillez vérifier les droits sur ce répertoire (et le créer le cas échéant), ou installer les fichiers par FTP.', |
|
| 666 | - 'plugin_erreur_zip' => 'échec pclzip : erreur @status@', |
|
| 667 | - 'plugin_etat_developpement' => 'en développement', |
|
| 668 | - 'plugin_etat_experimental' => 'expérimental', |
|
| 669 | - 'plugin_etat_stable' => 'stable', |
|
| 670 | - 'plugin_etat_test' => 'en test', |
|
| 671 | - 'plugin_impossible_activer' => 'Impossible d’activer le plugin @plugin@', |
|
| 672 | - 'plugin_info_automatique1' => 'Si vous souhaitez autoriser l’installation automatique des plugins, veuillez :', |
|
| 673 | - 'plugin_info_automatique1_lib' => 'Si vous souhaitez autoriser l’installation automatique de cette librairie, veuillez :', |
|
| 674 | - 'plugin_info_automatique2' => 'créer un répertoire <code>@rep@</code> ;', |
|
| 675 | - 'plugin_info_automatique3' => 'vérifier que le serveur est autorisé à écrire dans ce répertoire.', |
|
| 676 | - 'plugin_info_automatique_creer' => 'à créer à la racine du site.', |
|
| 677 | - 'plugin_info_automatique_exemples' => 'exemples :', |
|
| 678 | - 'plugin_info_automatique_ftp' => 'Vous pouvez installer des plugins, par FTP, dans le répertoire <tt>@rep@</tt>', |
|
| 679 | - 'plugin_info_automatique_lib' => 'Certains plugins demandent aussi à pouvoir télécharger des fichiers dans le répertoire <code>lib/</code>, à créer le cas échéant à la racine du site.', |
|
| 680 | - 'plugin_info_automatique_liste' => 'Vos listes de plugins :', |
|
| 681 | - 'plugin_info_automatique_liste_officielle' => 'les plugins officiels', |
|
| 682 | - 'plugin_info_automatique_liste_update' => 'Mettre à jour les listes', |
|
| 683 | - 'plugin_info_automatique_ou' => 'ou...', |
|
| 684 | - 'plugin_info_automatique_select' => 'Sélectionnez ci-dessous un plugin : SPIP le téléchargera et l’installera dans le répertoire <code>@rep@</code> ; si ce plugin existe déjà, il sera mis à jour.', |
|
| 685 | - 'plugin_info_credit' => 'Crédits', |
|
| 686 | - 'plugin_info_erreur_xml' => 'La déclaration de ce plugin est incorrecte', |
|
| 687 | - 'plugin_info_install_ok' => 'Installation réussie', |
|
| 688 | - 'plugin_info_necessite' => 'Nécessite :', |
|
| 689 | - 'plugin_info_non_compatible_spip' => 'Ce plugin n’est pas compatible avec cette version de SPIP', |
|
| 690 | - 'plugin_info_plugins_dist_1' => 'Les plugins ci-dessous sont chargés et activés dans le répertoire @plugins_dist@.', |
|
| 691 | - 'plugin_info_plugins_dist_2' => 'Ils ne sont pas désactivables.', |
|
| 692 | - 'plugin_info_telecharger' => 'à télécharger depuis @url@ et à installer dans @rep@', |
|
| 693 | - 'plugin_info_upgrade_ok' => 'Mise à jour réussie', |
|
| 694 | - 'plugin_librairies_installees' => 'Librairies installées', |
|
| 695 | - 'plugin_necessite_extension_php' => 'Nécessite l’extension PHP @plugin@ en version @version@.', |
|
| 696 | - 'plugin_necessite_extension_php_sans_version' => 'Nécessite l’extension PHP @plugin@', |
|
| 697 | - 'plugin_necessite_lib' => 'Ce plugin nécessite la librairie @lib@', |
|
| 698 | - 'plugin_necessite_php' => 'Nécessite @plugin@ en version @version@.', |
|
| 699 | - 'plugin_necessite_plugin' => 'Nécessite le plugin @plugin@ en version @version@.', |
|
| 700 | - 'plugin_necessite_plugin_sans_version' => 'Nécessite le plugin @plugin@', |
|
| 701 | - 'plugin_necessite_spip' => 'Nécessite SPIP en version @version@ minimum.', |
|
| 702 | - 'plugin_source' => 'source : ', |
|
| 703 | - 'plugin_titre_automatique' => 'Installation automatique', |
|
| 704 | - 'plugin_titre_automatique_ajouter' => 'Ajouter des plugins', |
|
| 705 | - 'plugin_titre_installation' => 'Installation du plugin @plugin@', |
|
| 706 | - 'plugin_titre_modifier' => 'Mes plugins', |
|
| 707 | - 'plugin_utilise_extension_php' => 'L’extension PHP @plugin@ doit être en version @version@.', |
|
| 708 | - 'plugin_utilise_php' => '@plugin@ doit être en version @version@.', |
|
| 709 | - 'plugin_utilise_plugin' => 'Le plugin @plugin@ doit être en version @version@.', |
|
| 710 | - 'plugin_zip_active' => 'Continuez pour l’activer', |
|
| 711 | - 'plugin_zip_adresse' => 'indiquez ci-dessous l’adresse d’un fichier zip de plugin à télécharger, ou encore l’adresse d’une liste de plugins.', |
|
| 712 | - 'plugin_zip_adresse_champ' => 'Adresse du plugin ou de la liste ', |
|
| 713 | - 'plugin_zip_content' => 'Il contient les fichiers suivants (@taille@),<br />prêts à installer dans le répertoire <code>@rep@</code>', |
|
| 714 | - 'plugin_zip_installe_finie' => 'Le fichier @zip@ a été décompacté et installé.', |
|
| 715 | - 'plugin_zip_installe_rep_finie' => 'Le fichier @zip@ a été décompacté et installé dans le répertoire @rep@', |
|
| 716 | - 'plugin_zip_installer' => 'Vous pouvez maintenant l’installer.', |
|
| 717 | - 'plugin_zip_telecharge' => 'Le fichier @zip@ a été téléchargé', |
|
| 718 | - 'plugins_actif_aucun' => 'Aucun plugin activé.', |
|
| 719 | - 'plugins_actif_un' => 'Un plugin activé.', |
|
| 720 | - 'plugins_actifs' => '@count@ plugins activés.', |
|
| 721 | - 'plugins_actifs_liste' => 'Actifs', |
|
| 722 | - 'plugins_compte' => '@count@ plugins', |
|
| 723 | - 'plugins_disponible_un' => 'Un plugin disponible.', |
|
| 724 | - 'plugins_disponibles' => '@count@ plugins disponibles.', |
|
| 725 | - 'plugins_erreur' => 'Erreur dans les plugins : @plugins@', |
|
| 726 | - 'plugins_liste' => 'Liste des plugins', |
|
| 727 | - 'plugins_liste_dist' => 'Plugins verrouillés', |
|
| 728 | - 'plugins_recents' => 'Plugins récents.', |
|
| 729 | - 'plugins_tous_liste' => 'Tous', |
|
| 730 | - 'plugins_vue_hierarchie' => 'Hiérarchie', |
|
| 731 | - 'plugins_vue_liste' => 'Liste', |
|
| 732 | - 'protocole_ldap' => 'Version du protocole :', |
|
| 657 | + // P |
|
| 658 | + 'page_pas_proxy' => 'Cette page ne doit pas passer par le proxy', |
|
| 659 | + 'pas_de_proxy_pour' => 'Au besoin, indiquez les machines ou domaines pour lesquels ce proxy ne doit pas s’appliquer (par exemple : @exemple@)', |
|
| 660 | + 'phpinfo' => 'Configuration PHP', |
|
| 661 | + 'plugin_charge_paquet' => 'Chargement du paquet @name@', |
|
| 662 | + 'plugin_charger' => 'Télécharger', |
|
| 663 | + 'plugin_erreur_charger' => 'erreur : impossible de charger @zip@', |
|
| 664 | + 'plugin_erreur_droit1' => 'Le répertoire <code>@dest@</code> n’est pas accessible en écriture.', |
|
| 665 | + 'plugin_erreur_droit2' => 'Veuillez vérifier les droits sur ce répertoire (et le créer le cas échéant), ou installer les fichiers par FTP.', |
|
| 666 | + 'plugin_erreur_zip' => 'échec pclzip : erreur @status@', |
|
| 667 | + 'plugin_etat_developpement' => 'en développement', |
|
| 668 | + 'plugin_etat_experimental' => 'expérimental', |
|
| 669 | + 'plugin_etat_stable' => 'stable', |
|
| 670 | + 'plugin_etat_test' => 'en test', |
|
| 671 | + 'plugin_impossible_activer' => 'Impossible d’activer le plugin @plugin@', |
|
| 672 | + 'plugin_info_automatique1' => 'Si vous souhaitez autoriser l’installation automatique des plugins, veuillez :', |
|
| 673 | + 'plugin_info_automatique1_lib' => 'Si vous souhaitez autoriser l’installation automatique de cette librairie, veuillez :', |
|
| 674 | + 'plugin_info_automatique2' => 'créer un répertoire <code>@rep@</code> ;', |
|
| 675 | + 'plugin_info_automatique3' => 'vérifier que le serveur est autorisé à écrire dans ce répertoire.', |
|
| 676 | + 'plugin_info_automatique_creer' => 'à créer à la racine du site.', |
|
| 677 | + 'plugin_info_automatique_exemples' => 'exemples :', |
|
| 678 | + 'plugin_info_automatique_ftp' => 'Vous pouvez installer des plugins, par FTP, dans le répertoire <tt>@rep@</tt>', |
|
| 679 | + 'plugin_info_automatique_lib' => 'Certains plugins demandent aussi à pouvoir télécharger des fichiers dans le répertoire <code>lib/</code>, à créer le cas échéant à la racine du site.', |
|
| 680 | + 'plugin_info_automatique_liste' => 'Vos listes de plugins :', |
|
| 681 | + 'plugin_info_automatique_liste_officielle' => 'les plugins officiels', |
|
| 682 | + 'plugin_info_automatique_liste_update' => 'Mettre à jour les listes', |
|
| 683 | + 'plugin_info_automatique_ou' => 'ou...', |
|
| 684 | + 'plugin_info_automatique_select' => 'Sélectionnez ci-dessous un plugin : SPIP le téléchargera et l’installera dans le répertoire <code>@rep@</code> ; si ce plugin existe déjà, il sera mis à jour.', |
|
| 685 | + 'plugin_info_credit' => 'Crédits', |
|
| 686 | + 'plugin_info_erreur_xml' => 'La déclaration de ce plugin est incorrecte', |
|
| 687 | + 'plugin_info_install_ok' => 'Installation réussie', |
|
| 688 | + 'plugin_info_necessite' => 'Nécessite :', |
|
| 689 | + 'plugin_info_non_compatible_spip' => 'Ce plugin n’est pas compatible avec cette version de SPIP', |
|
| 690 | + 'plugin_info_plugins_dist_1' => 'Les plugins ci-dessous sont chargés et activés dans le répertoire @plugins_dist@.', |
|
| 691 | + 'plugin_info_plugins_dist_2' => 'Ils ne sont pas désactivables.', |
|
| 692 | + 'plugin_info_telecharger' => 'à télécharger depuis @url@ et à installer dans @rep@', |
|
| 693 | + 'plugin_info_upgrade_ok' => 'Mise à jour réussie', |
|
| 694 | + 'plugin_librairies_installees' => 'Librairies installées', |
|
| 695 | + 'plugin_necessite_extension_php' => 'Nécessite l’extension PHP @plugin@ en version @version@.', |
|
| 696 | + 'plugin_necessite_extension_php_sans_version' => 'Nécessite l’extension PHP @plugin@', |
|
| 697 | + 'plugin_necessite_lib' => 'Ce plugin nécessite la librairie @lib@', |
|
| 698 | + 'plugin_necessite_php' => 'Nécessite @plugin@ en version @version@.', |
|
| 699 | + 'plugin_necessite_plugin' => 'Nécessite le plugin @plugin@ en version @version@.', |
|
| 700 | + 'plugin_necessite_plugin_sans_version' => 'Nécessite le plugin @plugin@', |
|
| 701 | + 'plugin_necessite_spip' => 'Nécessite SPIP en version @version@ minimum.', |
|
| 702 | + 'plugin_source' => 'source : ', |
|
| 703 | + 'plugin_titre_automatique' => 'Installation automatique', |
|
| 704 | + 'plugin_titre_automatique_ajouter' => 'Ajouter des plugins', |
|
| 705 | + 'plugin_titre_installation' => 'Installation du plugin @plugin@', |
|
| 706 | + 'plugin_titre_modifier' => 'Mes plugins', |
|
| 707 | + 'plugin_utilise_extension_php' => 'L’extension PHP @plugin@ doit être en version @version@.', |
|
| 708 | + 'plugin_utilise_php' => '@plugin@ doit être en version @version@.', |
|
| 709 | + 'plugin_utilise_plugin' => 'Le plugin @plugin@ doit être en version @version@.', |
|
| 710 | + 'plugin_zip_active' => 'Continuez pour l’activer', |
|
| 711 | + 'plugin_zip_adresse' => 'indiquez ci-dessous l’adresse d’un fichier zip de plugin à télécharger, ou encore l’adresse d’une liste de plugins.', |
|
| 712 | + 'plugin_zip_adresse_champ' => 'Adresse du plugin ou de la liste ', |
|
| 713 | + 'plugin_zip_content' => 'Il contient les fichiers suivants (@taille@),<br />prêts à installer dans le répertoire <code>@rep@</code>', |
|
| 714 | + 'plugin_zip_installe_finie' => 'Le fichier @zip@ a été décompacté et installé.', |
|
| 715 | + 'plugin_zip_installe_rep_finie' => 'Le fichier @zip@ a été décompacté et installé dans le répertoire @rep@', |
|
| 716 | + 'plugin_zip_installer' => 'Vous pouvez maintenant l’installer.', |
|
| 717 | + 'plugin_zip_telecharge' => 'Le fichier @zip@ a été téléchargé', |
|
| 718 | + 'plugins_actif_aucun' => 'Aucun plugin activé.', |
|
| 719 | + 'plugins_actif_un' => 'Un plugin activé.', |
|
| 720 | + 'plugins_actifs' => '@count@ plugins activés.', |
|
| 721 | + 'plugins_actifs_liste' => 'Actifs', |
|
| 722 | + 'plugins_compte' => '@count@ plugins', |
|
| 723 | + 'plugins_disponible_un' => 'Un plugin disponible.', |
|
| 724 | + 'plugins_disponibles' => '@count@ plugins disponibles.', |
|
| 725 | + 'plugins_erreur' => 'Erreur dans les plugins : @plugins@', |
|
| 726 | + 'plugins_liste' => 'Liste des plugins', |
|
| 727 | + 'plugins_liste_dist' => 'Plugins verrouillés', |
|
| 728 | + 'plugins_recents' => 'Plugins récents.', |
|
| 729 | + 'plugins_tous_liste' => 'Tous', |
|
| 730 | + 'plugins_vue_hierarchie' => 'Hiérarchie', |
|
| 731 | + 'plugins_vue_liste' => 'Liste', |
|
| 732 | + 'protocole_ldap' => 'Version du protocole :', |
|
| 733 | 733 | |
| 734 | - // Q |
|
| 735 | - 'queue_executer_maintenant' => 'Exécuter maintenant', |
|
| 736 | - 'queue_info_purger' => 'Vous pouvez supprimer toutes les tâches de fond en attente et réinitialiser la liste avec les tâches périodiques', |
|
| 737 | - 'queue_nb_jobs_in_queue' => '@nb@ tâches en attente', |
|
| 738 | - 'queue_next_job_in_nb_sec' => 'Prochaine tâche dans @nb@ s', |
|
| 739 | - 'queue_no_job_in_queue' => 'Aucune tâche en attente', |
|
| 740 | - 'queue_one_job_in_queue' => '1 tâche en attente', |
|
| 741 | - 'queue_priorite_tache' => 'priorité', |
|
| 742 | - 'queue_purger_queue' => 'Réinitialiser la liste des tâches', |
|
| 743 | - 'queue_titre' => 'Tâches de fond', |
|
| 734 | + // Q |
|
| 735 | + 'queue_executer_maintenant' => 'Exécuter maintenant', |
|
| 736 | + 'queue_info_purger' => 'Vous pouvez supprimer toutes les tâches de fond en attente et réinitialiser la liste avec les tâches périodiques', |
|
| 737 | + 'queue_nb_jobs_in_queue' => '@nb@ tâches en attente', |
|
| 738 | + 'queue_next_job_in_nb_sec' => 'Prochaine tâche dans @nb@ s', |
|
| 739 | + 'queue_no_job_in_queue' => 'Aucune tâche en attente', |
|
| 740 | + 'queue_one_job_in_queue' => '1 tâche en attente', |
|
| 741 | + 'queue_priorite_tache' => 'priorité', |
|
| 742 | + 'queue_purger_queue' => 'Réinitialiser la liste des tâches', |
|
| 743 | + 'queue_titre' => 'Tâches de fond', |
|
| 744 | 744 | |
| 745 | - // R |
|
| 746 | - 'repertoire_plugins' => 'Répertoire :', |
|
| 747 | - 'required' => '(obligatoire)', |
|
| 745 | + // R |
|
| 746 | + 'repertoire_plugins' => 'Répertoire :', |
|
| 747 | + 'required' => '(obligatoire)', |
|
| 748 | 748 | |
| 749 | - // S |
|
| 750 | - 'sans_heure' => 'sans heure', |
|
| 751 | - 'statut_admin_restreint' => 'admin restreint', |
|
| 752 | - 'statut_webmestre' => 'webmestre', |
|
| 749 | + // S |
|
| 750 | + 'sans_heure' => 'sans heure', |
|
| 751 | + 'statut_admin_restreint' => 'admin restreint', |
|
| 752 | + 'statut_webmestre' => 'webmestre', |
|
| 753 | 753 | |
| 754 | - // T |
|
| 755 | - 'tache_cron_asap' => 'Tâche CRON @function@ (ASAP)', |
|
| 756 | - 'tache_cron_secondes' => 'Tâche CRON @function@ (toutes les @nb@ s)', |
|
| 757 | - 'taille_cache_image' => 'Les images calculées automatiquement par SPIP (vignettes des documents, titres présentés sous forme graphique, fonctions mathématiques au format TeX...) occupent dans le répertoire @dir@ un total de @taille@.', |
|
| 758 | - 'taille_cache_moins_de' => 'La taille du cache est de moins de @octets@.', |
|
| 759 | - 'taille_cache_octets' => 'La taille du cache est actuellement de @octets@ environ.', |
|
| 760 | - 'taille_cache_vide' => 'Le cache est vide.', |
|
| 761 | - 'taille_repertoire_cache' => 'Taille du répertoire cache', |
|
| 762 | - 'text_article_propose_publication' => 'Article proposé pour la publication.', |
|
| 763 | - 'texte_acces_ldap_anonyme_1' => 'Certains serveurs LDAP n’acceptent aucun accès anonyme. Dans ce cas il faut spécifier un identifiant d’accès initial afin de pouvoir ensuite rechercher des informations dans l’annuaire. Dans la plupart des cas néanmoins, les champs suivants pourront être laissés vides.', |
|
| 764 | - 'texte_admin_effacer_01' => 'Cette commande efface <i>tout</i> le contenu de la base de données, |
|
| 754 | + // T |
|
| 755 | + 'tache_cron_asap' => 'Tâche CRON @function@ (ASAP)', |
|
| 756 | + 'tache_cron_secondes' => 'Tâche CRON @function@ (toutes les @nb@ s)', |
|
| 757 | + 'taille_cache_image' => 'Les images calculées automatiquement par SPIP (vignettes des documents, titres présentés sous forme graphique, fonctions mathématiques au format TeX...) occupent dans le répertoire @dir@ un total de @taille@.', |
|
| 758 | + 'taille_cache_moins_de' => 'La taille du cache est de moins de @octets@.', |
|
| 759 | + 'taille_cache_octets' => 'La taille du cache est actuellement de @octets@ environ.', |
|
| 760 | + 'taille_cache_vide' => 'Le cache est vide.', |
|
| 761 | + 'taille_repertoire_cache' => 'Taille du répertoire cache', |
|
| 762 | + 'text_article_propose_publication' => 'Article proposé pour la publication.', |
|
| 763 | + 'texte_acces_ldap_anonyme_1' => 'Certains serveurs LDAP n’acceptent aucun accès anonyme. Dans ce cas il faut spécifier un identifiant d’accès initial afin de pouvoir ensuite rechercher des informations dans l’annuaire. Dans la plupart des cas néanmoins, les champs suivants pourront être laissés vides.', |
|
| 764 | + 'texte_admin_effacer_01' => 'Cette commande efface <i>tout</i> le contenu de la base de données, |
|
| 765 | 765 | y compris <i>tous</i> les accès rédacteurs et administrateurs. Après l’avoir exécutée, vous devrez lancer la |
| 766 | 766 | réinstallation de SPIP pour recréer une nouvelle base ainsi qu’un premier accès administrateur.', |
| 767 | - 'texte_adresse_annuaire_1' => '(Si votre annuaire est installé sur la même machine que ce site Web, il s’agit probablement de « localhost ».)', |
|
| 768 | - 'texte_ajout_auteur' => 'L’auteur suivant a été ajouté à l’article :', |
|
| 769 | - 'texte_annuaire_ldap_1' => 'Si vous avez accès à un annuaire (LDAP), vous pouvez l’utiliser pour importer automatiquement des utilisateurs sous SPIP.', |
|
| 770 | - 'texte_article_statut' => 'Cet article est :', |
|
| 771 | - 'texte_article_virtuel' => 'Article virtuel', |
|
| 772 | - 'texte_article_virtuel_reference' => '<b>Article virtuel :</b> article référencé dans votre site SPIP, mais redirigé vers une autre URL. Pour supprimer la redirection, effacez l’URL ci-dessus.', |
|
| 773 | - 'texte_aucun_resultat_auteur' => 'Aucun résultat pour "@cherche_auteur@"', |
|
| 774 | - 'texte_auteur_messagerie' => 'Ce site peut vous indiquer en permanence la liste des rédacteurs connectés, ce qui vous permet d’échanger des messages en direct. Vous pouvez décider de ne pas apparaître dans cette liste (vous êtes « invisible » pour les autres utilisateurs).', |
|
| 775 | - 'texte_auteurs' => 'LES AUTEURS', |
|
| 776 | - 'texte_choix_base_1' => 'Choisissez votre base :', |
|
| 777 | - 'texte_choix_base_2' => 'Le serveur SQL contient plusieurs bases de données.', |
|
| 778 | - 'texte_choix_base_3' => '<b>Sélectionnez</b> ci-après celle qui vous a été attribuée par votre hébergeur :', |
|
| 779 | - 'texte_choix_table_prefix' => 'Préfixe des tables :', |
|
| 780 | - 'texte_compte_element' => '@count@ élément', |
|
| 781 | - 'texte_compte_elements' => '@count@ éléments', |
|
| 782 | - 'texte_conflit_edition_correction' => 'Veuillez contrôler ci-dessous les différences entre les deux versions du texte ; vous pouvez aussi copier vos modifications, puis recommencer.', |
|
| 783 | - 'texte_connexion_mysql' => 'Consultez les informations fournies par votre hébergeur : vous devez y trouver le serveur de base de données qu’il propose et vos identifiants personnels pour vous y connecter.', |
|
| 784 | - 'texte_contenu_article' => '(Contenu de l’article en quelques mots.)', |
|
| 785 | - 'texte_contenu_articles' => 'Selon la maquette adoptée pour votre site, vous pouvez décider |
|
| 767 | + 'texte_adresse_annuaire_1' => '(Si votre annuaire est installé sur la même machine que ce site Web, il s’agit probablement de « localhost ».)', |
|
| 768 | + 'texte_ajout_auteur' => 'L’auteur suivant a été ajouté à l’article :', |
|
| 769 | + 'texte_annuaire_ldap_1' => 'Si vous avez accès à un annuaire (LDAP), vous pouvez l’utiliser pour importer automatiquement des utilisateurs sous SPIP.', |
|
| 770 | + 'texte_article_statut' => 'Cet article est :', |
|
| 771 | + 'texte_article_virtuel' => 'Article virtuel', |
|
| 772 | + 'texte_article_virtuel_reference' => '<b>Article virtuel :</b> article référencé dans votre site SPIP, mais redirigé vers une autre URL. Pour supprimer la redirection, effacez l’URL ci-dessus.', |
|
| 773 | + 'texte_aucun_resultat_auteur' => 'Aucun résultat pour "@cherche_auteur@"', |
|
| 774 | + 'texte_auteur_messagerie' => 'Ce site peut vous indiquer en permanence la liste des rédacteurs connectés, ce qui vous permet d’échanger des messages en direct. Vous pouvez décider de ne pas apparaître dans cette liste (vous êtes « invisible » pour les autres utilisateurs).', |
|
| 775 | + 'texte_auteurs' => 'LES AUTEURS', |
|
| 776 | + 'texte_choix_base_1' => 'Choisissez votre base :', |
|
| 777 | + 'texte_choix_base_2' => 'Le serveur SQL contient plusieurs bases de données.', |
|
| 778 | + 'texte_choix_base_3' => '<b>Sélectionnez</b> ci-après celle qui vous a été attribuée par votre hébergeur :', |
|
| 779 | + 'texte_choix_table_prefix' => 'Préfixe des tables :', |
|
| 780 | + 'texte_compte_element' => '@count@ élément', |
|
| 781 | + 'texte_compte_elements' => '@count@ éléments', |
|
| 782 | + 'texte_conflit_edition_correction' => 'Veuillez contrôler ci-dessous les différences entre les deux versions du texte ; vous pouvez aussi copier vos modifications, puis recommencer.', |
|
| 783 | + 'texte_connexion_mysql' => 'Consultez les informations fournies par votre hébergeur : vous devez y trouver le serveur de base de données qu’il propose et vos identifiants personnels pour vous y connecter.', |
|
| 784 | + 'texte_contenu_article' => '(Contenu de l’article en quelques mots.)', |
|
| 785 | + 'texte_contenu_articles' => 'Selon la maquette adoptée pour votre site, vous pouvez décider |
|
| 786 | 786 | que certains éléments des articles ne sont pas utilisés. |
| 787 | 787 | Utilisez la liste ci-dessous pour indiquer quels éléments sont disponibles.', |
| 788 | - 'texte_crash_base' => 'Si votre base de données a |
|
| 788 | + 'texte_crash_base' => 'Si votre base de données a |
|
| 789 | 789 | crashé, vous pouvez tenter une réparation |
| 790 | 790 | automatique.', |
| 791 | - 'texte_creer_rubrique' => 'Avant de pouvoir écrire des articles,<br /> vous devez créer une rubrique.', |
|
| 792 | - 'texte_date_creation_article' => 'DATE DE CRÉATION DE L’ARTICLE :', # on ajoute le ":" |
|
| 793 | - 'texte_date_creation_objet' => 'Date de création :', # on ajoute le ":" |
|
| 794 | - 'texte_date_publication_anterieure' => 'Date de rédaction antérieure :', |
|
| 795 | - 'texte_date_publication_anterieure_nonaffichee' => 'Ne pas afficher de date de rédaction antérieure.', |
|
| 796 | - 'texte_date_publication_article' => 'DATE DE PUBLICATION EN LIGNE :', |
|
| 797 | - 'texte_date_publication_objet' => 'Date de publication en ligne :', |
|
| 798 | - 'texte_definir_comme_traduction_rubrique' => 'Cette rubrique est une traduction de la rubrique numéro :', |
|
| 799 | - 'texte_descriptif_rapide' => 'Descriptif rapide', |
|
| 800 | - 'texte_effacer_base' => 'Effacer la base de données SPIP', |
|
| 801 | - 'texte_effacer_statistiques' => 'Effacer les statistiques', |
|
| 802 | - 'texte_en_cours_validation' => 'Les contenus ci-dessous sont en attente de validation.', |
|
| 803 | - 'texte_enrichir_mise_a_jour' => 'Vous pouvez enrichir la mise en page de votre texte en utilisant des « raccourcis typographiques ».', |
|
| 804 | - 'texte_fichier_authent' => '<b>SPIP doit-il créer les fichiers spéciaux |
|
| 791 | + 'texte_creer_rubrique' => 'Avant de pouvoir écrire des articles,<br /> vous devez créer une rubrique.', |
|
| 792 | + 'texte_date_creation_article' => 'DATE DE CRÉATION DE L’ARTICLE :', # on ajoute le ":" |
|
| 793 | + 'texte_date_creation_objet' => 'Date de création :', # on ajoute le ":" |
|
| 794 | + 'texte_date_publication_anterieure' => 'Date de rédaction antérieure :', |
|
| 795 | + 'texte_date_publication_anterieure_nonaffichee' => 'Ne pas afficher de date de rédaction antérieure.', |
|
| 796 | + 'texte_date_publication_article' => 'DATE DE PUBLICATION EN LIGNE :', |
|
| 797 | + 'texte_date_publication_objet' => 'Date de publication en ligne :', |
|
| 798 | + 'texte_definir_comme_traduction_rubrique' => 'Cette rubrique est une traduction de la rubrique numéro :', |
|
| 799 | + 'texte_descriptif_rapide' => 'Descriptif rapide', |
|
| 800 | + 'texte_effacer_base' => 'Effacer la base de données SPIP', |
|
| 801 | + 'texte_effacer_statistiques' => 'Effacer les statistiques', |
|
| 802 | + 'texte_en_cours_validation' => 'Les contenus ci-dessous sont en attente de validation.', |
|
| 803 | + 'texte_enrichir_mise_a_jour' => 'Vous pouvez enrichir la mise en page de votre texte en utilisant des « raccourcis typographiques ».', |
|
| 804 | + 'texte_fichier_authent' => '<b>SPIP doit-il créer les fichiers spéciaux |
|
| 805 | 805 | <tt>.htpasswd</tt> et <tt>.htpasswd-admin</tt> dans le répertoire @dossier@ ?</b> |
| 806 | 806 | <p>Ces fichiers peuvent vous servir à restreindre l’accès aux auteurs et administrateurs en d’autres endroits de votre site (programme externe de statistiques, par exemple).</p> |
| 807 | 807 | <p>Si vous n’en avez pas l’utilité, vous pouvez laisser cette option à sa valeur par défaut (pas de création des fichiers).</p>', |
| 808 | - 'texte_informations_personnelles_1' => 'Le système va maintenant vous créer un accès personnalisé au site.', |
|
| 809 | - 'texte_informations_personnelles_2' => '(Note : il s’agit d’une réinstallation, si votre accès marche toujours vous pouvez', |
|
| 810 | - 'texte_introductif_article' => '(Texte introductif de l’article.)', |
|
| 811 | - 'texte_jeu_caractere' => 'Il est conseillé d’employer, sur votre site, l’alphabet universel (<tt>utf-8</tt>) : celui-ci permet l’affichage de textes dans toutes les langues, et ne pose plus de problèmes de compatibilité avec les navigateurs modernes.', |
|
| 812 | - 'texte_jeu_caractere_3' => 'Votre site est actuellement installé dans le jeu de caractères :', |
|
| 813 | - 'texte_jeu_caractere_4' => 'Si cela ne correspond pas à la réalité de vos données (suite, par exemple, à une restauration de base de données), ou si <em>vous démarrez ce site</em> et souhaitez partir sur un autre jeu de caractères, veuillez indiquer ce dernier ici :', |
|
| 814 | - 'texte_login_ldap_1' => '(Laisser vide pour un accès anonyme, ou entrer le chemin complet, par exemple « <tt>uid=dupont, ou=users, dc=mon-domaine, dc=com</tt> ».)', |
|
| 815 | - 'texte_login_precaution' => 'Attention ! Ceci est le login sous lequel vous êtes connecté actuellement. |
|
| 808 | + 'texte_informations_personnelles_1' => 'Le système va maintenant vous créer un accès personnalisé au site.', |
|
| 809 | + 'texte_informations_personnelles_2' => '(Note : il s’agit d’une réinstallation, si votre accès marche toujours vous pouvez', |
|
| 810 | + 'texte_introductif_article' => '(Texte introductif de l’article.)', |
|
| 811 | + 'texte_jeu_caractere' => 'Il est conseillé d’employer, sur votre site, l’alphabet universel (<tt>utf-8</tt>) : celui-ci permet l’affichage de textes dans toutes les langues, et ne pose plus de problèmes de compatibilité avec les navigateurs modernes.', |
|
| 812 | + 'texte_jeu_caractere_3' => 'Votre site est actuellement installé dans le jeu de caractères :', |
|
| 813 | + 'texte_jeu_caractere_4' => 'Si cela ne correspond pas à la réalité de vos données (suite, par exemple, à une restauration de base de données), ou si <em>vous démarrez ce site</em> et souhaitez partir sur un autre jeu de caractères, veuillez indiquer ce dernier ici :', |
|
| 814 | + 'texte_login_ldap_1' => '(Laisser vide pour un accès anonyme, ou entrer le chemin complet, par exemple « <tt>uid=dupont, ou=users, dc=mon-domaine, dc=com</tt> ».)', |
|
| 815 | + 'texte_login_precaution' => 'Attention ! Ceci est le login sous lequel vous êtes connecté actuellement. |
|
| 816 | 816 | Utilisez ce formulaire avec précaution...', |
| 817 | - 'texte_messagerie_agenda' => 'Une messagerie permet aux rédacteurs du site de communiquer entre eux directement dans l’espace privé du site. Elle est associée à un agenda.', |
|
| 818 | - 'texte_mise_a_niveau_base_1' => 'Vous venez de mettre à jour les fichiers SPIP. |
|
| 817 | + 'texte_messagerie_agenda' => 'Une messagerie permet aux rédacteurs du site de communiquer entre eux directement dans l’espace privé du site. Elle est associée à un agenda.', |
|
| 818 | + 'texte_mise_a_niveau_base_1' => 'Vous venez de mettre à jour les fichiers SPIP. |
|
| 819 | 819 | Il faut maintenant mettre à niveau la base de données |
| 820 | 820 | du site.', |
| 821 | - 'texte_modifier_article' => 'Modifier l’article :', |
|
| 822 | - 'texte_multilinguisme' => 'Si vous souhaitez gérer des objets en plusieurs langues, avec une navigation complexe, vous pouvez ajouter un menu de sélection de langue sur ces objets, en fonction de l’organisation de votre site.', |
|
| 823 | - 'texte_multilinguisme_trad' => 'Vous pouvez également activer un système de gestion de liens entre les différentes traductions sur certains objets.', |
|
| 824 | - 'texte_non_compresse' => '<i>non compressé</i> (votre serveur ne supportant pas cette fonctionnalité)', |
|
| 825 | - 'texte_nouvelle_version_spip_1' => 'Vous avez installé une nouvelle version de SPIP.', |
|
| 826 | - 'texte_nouvelle_version_spip_2' => 'Cette nouvelle version nécessite une mise à jour plus complète qu’à l’accoutumée. Si vous êtes webmestre du site, veuillez effacer le fichier @connect@ et reprendre l’installation afin de mettre à jour vos paramètres de connexion à la base de données.<p> (NB. : si vous avez oublié vos paramètres de connexion, jetez un œil au fichier @connect@ avant de le supprimer...)</p>', |
|
| 827 | - 'texte_operation_echec' => 'Retournez à la page précédente, sélectionnez une autre base ou créez-en une nouvelle. Vérifiez les informations fournies par votre hébergeur.', |
|
| 828 | - 'texte_plus_trois_car' => 'plus de 3 caractères', |
|
| 829 | - 'texte_plusieurs_articles' => 'Plusieurs auteurs trouvés pour "@cherche_auteur@" :', |
|
| 830 | - 'texte_port_annuaire' => '(La valeur indiquée par défaut convient généralement.)', |
|
| 831 | - 'texte_presente_plugin' => 'Cette page liste les plugins disponibles sur le site. Vous pouvez activer les plugins nécessaires en cochant la case correspondante.', |
|
| 832 | - 'texte_proposer_publication' => 'Lorsque votre article est terminé,<br /> vous pouvez proposer sa publication.', |
|
| 833 | - 'texte_proxy' => 'Dans certains cas (intranet, réseaux protégés), les sites distants (documentation de SPIP, sites syndiqués, etc.) ne sont accessibles qu’à travers un <i>proxy HTTP</i>. Le cas échéant, indiquez ci-dessous son adresse, sous la forme @proxy_en_cours@. En général, vous laisserez cette case vide.', |
|
| 834 | - 'texte_publication_articles_post_dates' => 'Quel comportement SPIP doit-il adopter face aux articles dont la |
|
| 821 | + 'texte_modifier_article' => 'Modifier l’article :', |
|
| 822 | + 'texte_multilinguisme' => 'Si vous souhaitez gérer des objets en plusieurs langues, avec une navigation complexe, vous pouvez ajouter un menu de sélection de langue sur ces objets, en fonction de l’organisation de votre site.', |
|
| 823 | + 'texte_multilinguisme_trad' => 'Vous pouvez également activer un système de gestion de liens entre les différentes traductions sur certains objets.', |
|
| 824 | + 'texte_non_compresse' => '<i>non compressé</i> (votre serveur ne supportant pas cette fonctionnalité)', |
|
| 825 | + 'texte_nouvelle_version_spip_1' => 'Vous avez installé une nouvelle version de SPIP.', |
|
| 826 | + 'texte_nouvelle_version_spip_2' => 'Cette nouvelle version nécessite une mise à jour plus complète qu’à l’accoutumée. Si vous êtes webmestre du site, veuillez effacer le fichier @connect@ et reprendre l’installation afin de mettre à jour vos paramètres de connexion à la base de données.<p> (NB. : si vous avez oublié vos paramètres de connexion, jetez un œil au fichier @connect@ avant de le supprimer...)</p>', |
|
| 827 | + 'texte_operation_echec' => 'Retournez à la page précédente, sélectionnez une autre base ou créez-en une nouvelle. Vérifiez les informations fournies par votre hébergeur.', |
|
| 828 | + 'texte_plus_trois_car' => 'plus de 3 caractères', |
|
| 829 | + 'texte_plusieurs_articles' => 'Plusieurs auteurs trouvés pour "@cherche_auteur@" :', |
|
| 830 | + 'texte_port_annuaire' => '(La valeur indiquée par défaut convient généralement.)', |
|
| 831 | + 'texte_presente_plugin' => 'Cette page liste les plugins disponibles sur le site. Vous pouvez activer les plugins nécessaires en cochant la case correspondante.', |
|
| 832 | + 'texte_proposer_publication' => 'Lorsque votre article est terminé,<br /> vous pouvez proposer sa publication.', |
|
| 833 | + 'texte_proxy' => 'Dans certains cas (intranet, réseaux protégés), les sites distants (documentation de SPIP, sites syndiqués, etc.) ne sont accessibles qu’à travers un <i>proxy HTTP</i>. Le cas échéant, indiquez ci-dessous son adresse, sous la forme @proxy_en_cours@. En général, vous laisserez cette case vide.', |
|
| 834 | + 'texte_publication_articles_post_dates' => 'Quel comportement SPIP doit-il adopter face aux articles dont la |
|
| 835 | 835 | date de publication a été fixée à une |
| 836 | 836 | échéance future ?', |
| 837 | - 'texte_rappel_selection_champs' => '[N’oubliez pas de sélectionner correctement ce champ.]', |
|
| 838 | - 'texte_recalcul_page' => 'Si vous voulez |
|
| 837 | + 'texte_rappel_selection_champs' => '[N’oubliez pas de sélectionner correctement ce champ.]', |
|
| 838 | + 'texte_recalcul_page' => 'Si vous voulez |
|
| 839 | 839 | recalculer une seule page, passez plutôt par l’espace public et utilisez-y le bouton « recalculer ».', |
| 840 | - 'texte_recuperer_base' => 'Réparer la base de données', |
|
| 841 | - 'texte_reference_mais_redirige' => 'article référencé dans votre site SPIP, mais redirigé vers une autre URL.', |
|
| 842 | - 'texte_requetes_echouent' => '<b>Lorsque certaines requêtes SQL échouent |
|
| 840 | + 'texte_recuperer_base' => 'Réparer la base de données', |
|
| 841 | + 'texte_reference_mais_redirige' => 'article référencé dans votre site SPIP, mais redirigé vers une autre URL.', |
|
| 842 | + 'texte_requetes_echouent' => '<b>Lorsque certaines requêtes SQL échouent |
|
| 843 | 843 | systématiquement et sans raison apparente, il est possible |
| 844 | 844 | que ce soit à cause de la base de données |
| 845 | 845 | elle-même.</b><p> |
@@ -850,90 +850,90 @@ discard block |
||
| 850 | 850 | peut-être des indices de ce qui ne va pas...</p><p> |
| 851 | 851 | Si le problème persiste, prenez contact avec votre |
| 852 | 852 | hébergeur.</p>', |
| 853 | - 'texte_selection_langue_principale' => 'Vous pouvez sélectionner ci-dessous la « langue principale » du site. Ce choix ne vous oblige - heureusement ! - pas à écrire vos articles dans la langue sélectionnée, mais permet de déterminer : |
|
| 853 | + 'texte_selection_langue_principale' => 'Vous pouvez sélectionner ci-dessous la « langue principale » du site. Ce choix ne vous oblige - heureusement ! - pas à écrire vos articles dans la langue sélectionnée, mais permet de déterminer : |
|
| 854 | 854 | <ul><li> le format par défaut des dates sur le site public ;</li> |
| 855 | 855 | <li> la nature du moteur typographique que SPIP doit utiliser pour le rendu des textes ;</li> |
| 856 | 856 | <li> la langue utilisée dans les formulaires du site public ;</li> |
| 857 | 857 | <li> la langue présentée par défaut dans l’espace privé.</li></ul>', |
| 858 | - 'texte_sous_titre' => 'Sous-titre', |
|
| 859 | - 'texte_statistiques_visites' => '(barres foncées : dimanche / courbe foncée : évolution de la moyenne)', |
|
| 860 | - 'texte_statut_attente_validation' => 'en attente de validation', |
|
| 861 | - 'texte_statut_publies' => 'publiés en ligne', |
|
| 862 | - 'texte_statut_refuses' => 'refusés', |
|
| 863 | - 'texte_suppression_fichiers' => 'Utilisez cette commande afin de supprimer tous les fichiers présents |
|
| 858 | + 'texte_sous_titre' => 'Sous-titre', |
|
| 859 | + 'texte_statistiques_visites' => '(barres foncées : dimanche / courbe foncée : évolution de la moyenne)', |
|
| 860 | + 'texte_statut_attente_validation' => 'en attente de validation', |
|
| 861 | + 'texte_statut_publies' => 'publiés en ligne', |
|
| 862 | + 'texte_statut_refuses' => 'refusés', |
|
| 863 | + 'texte_suppression_fichiers' => 'Utilisez cette commande afin de supprimer tous les fichiers présents |
|
| 864 | 864 | dans le cache SPIP. Cela permet par exemple de forcer un recalcul de toutes les pages si vous |
| 865 | 865 | avez fait des modifications importantes de graphisme ou de structure du site.', |
| 866 | - 'texte_sur_titre' => 'Sur-titre', |
|
| 867 | - 'texte_table_ok' => ' : cette table est OK.', |
|
| 868 | - 'texte_tentative_recuperation' => 'Tentative de réparation', |
|
| 869 | - 'texte_tenter_reparation' => 'Tenter une réparation de la base de données', |
|
| 870 | - 'texte_test_proxy' => 'Pour faire un essai de ce proxy, indiquez ici l’adresse d’un site Web |
|
| 866 | + 'texte_sur_titre' => 'Sur-titre', |
|
| 867 | + 'texte_table_ok' => ' : cette table est OK.', |
|
| 868 | + 'texte_tentative_recuperation' => 'Tentative de réparation', |
|
| 869 | + 'texte_tenter_reparation' => 'Tenter une réparation de la base de données', |
|
| 870 | + 'texte_test_proxy' => 'Pour faire un essai de ce proxy, indiquez ici l’adresse d’un site Web |
|
| 871 | 871 | que vous souhaitez tester.', |
| 872 | - 'texte_titre_02' => 'Titre :', |
|
| 873 | - 'texte_titre_obligatoire' => '<b>Titre</b> [Obligatoire]', |
|
| 874 | - 'texte_travail_article' => '@nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes', |
|
| 875 | - 'texte_travail_collaboratif' => 'S’il est fréquent que plusieurs rédacteurs |
|
| 872 | + 'texte_titre_02' => 'Titre :', |
|
| 873 | + 'texte_titre_obligatoire' => '<b>Titre</b> [Obligatoire]', |
|
| 874 | + 'texte_travail_article' => '@nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes', |
|
| 875 | + 'texte_travail_collaboratif' => 'S’il est fréquent que plusieurs rédacteurs |
|
| 876 | 876 | travaillent sur le même article, le système |
| 877 | 877 | peut afficher les articles récemment « ouverts » |
| 878 | 878 | afin d’éviter les modifications simultanées. |
| 879 | 879 | Cette option est désactivée par défaut |
| 880 | 880 | afin d’éviter d’afficher des messages d’avertissement |
| 881 | 881 | intempestifs.', |
| 882 | - 'texte_vide' => 'vide', |
|
| 883 | - 'texte_vider_cache' => 'Vider le cache', |
|
| 884 | - 'titre_admin_tech' => 'Maintenance technique', |
|
| 885 | - 'titre_admin_vider' => 'Maintenance technique', |
|
| 886 | - 'titre_ajouter_un_auteur' => 'Ajouter un auteur', |
|
| 887 | - 'titre_ajouter_un_mot' => 'Ajouter un mot-clé', |
|
| 888 | - 'titre_cadre_afficher_article' => 'Afficher les articles', |
|
| 889 | - 'titre_cadre_afficher_traductions' => 'Afficher l’état des traductions pour les langues suivantes :', |
|
| 890 | - 'titre_cadre_ajouter_auteur' => 'AJOUTER UN AUTEUR :', |
|
| 891 | - 'titre_cadre_interieur_rubrique' => 'À l’intérieur de la rubrique', |
|
| 892 | - 'titre_cadre_numero_auteur' => 'AUTEUR NUMÉRO', |
|
| 893 | - 'titre_cadre_numero_objet' => '@objet@ NUMÉRO :', |
|
| 894 | - 'titre_cadre_signature_obligatoire' => '<b>Signature</b> [Obligatoire]<br />', |
|
| 895 | - 'titre_config_contenu_notifications' => 'Notifications', |
|
| 896 | - 'titre_config_contenu_prive' => 'Dans l’espace privé', |
|
| 897 | - 'titre_config_contenu_public' => 'Sur le site public', |
|
| 898 | - 'titre_config_fonctions' => 'Configuration du site', |
|
| 899 | - 'titre_config_langage' => 'Configurer la langue', |
|
| 900 | - 'titre_configuration' => 'Configuration du site', |
|
| 901 | - 'titre_configurer_preferences' => 'Configurer vos préférences', |
|
| 902 | - 'titre_configurer_preferences_menus' => 'Configurer vos préférences de menus', |
|
| 903 | - 'titre_conflit_edition' => 'Conflit lors de l’édition', |
|
| 904 | - 'titre_connexion_ldap' => 'Options : <b>Votre connexion LDAP</b>', |
|
| 905 | - 'titre_groupe_mots' => 'GROUPE DE MOTS :', |
|
| 906 | - 'titre_identite_site' => 'Identité du site', |
|
| 907 | - 'titre_langue_article' => 'Langue de l’article', |
|
| 908 | - 'titre_langue_rubrique' => 'Langue de la rubrique', |
|
| 909 | - 'titre_langue_trad_article' => 'LANGUE ET TRADUCTIONS DE L’ARTICLE', |
|
| 910 | - 'titre_les_articles' => 'LES ARTICLES', |
|
| 911 | - 'titre_messagerie_agenda' => 'Messagerie et agenda', |
|
| 912 | - 'titre_naviguer_dans_le_site' => 'Naviguer dans le site...', |
|
| 913 | - 'titre_nouvelle_rubrique' => 'Nouvelle rubrique', |
|
| 914 | - 'titre_numero_rubrique' => 'RUBRIQUE NUMÉRO :', |
|
| 915 | - 'titre_page_articles_edit' => 'Modifier : @titre@', |
|
| 916 | - 'titre_page_articles_page' => 'Les articles', |
|
| 917 | - 'titre_page_articles_tous' => 'Tout le site', |
|
| 918 | - 'titre_page_calendrier' => 'Calendrier @nom_mois@ @annee@', |
|
| 919 | - 'titre_page_config_contenu' => 'Configuration du site', |
|
| 920 | - 'titre_page_delete_all' => 'suppression totale et irréversible', |
|
| 921 | - 'titre_page_recherche' => 'Résultats de la recherche @recherche@', |
|
| 922 | - 'titre_page_statistiques_referers' => 'Statistiques (liens entrants)', |
|
| 923 | - 'titre_page_upgrade' => 'Mise à niveau de SPIP', |
|
| 924 | - 'titre_preference_menus_favoris' => 'Menus favoris', |
|
| 925 | - 'titre_publication_articles_post_dates' => 'Publication des articles post-datés', |
|
| 926 | - 'titre_reparation' => 'Réparation', |
|
| 927 | - 'titre_suivi_petition' => 'Suivi des pétitions', |
|
| 928 | - 'tls_ldap' => 'Transport Layer Security :', |
|
| 929 | - 'trad_article_traduction' => 'Toutes les versions de cet article :', |
|
| 930 | - 'trad_delier' => 'Ne plus lier à ces traductions', |
|
| 931 | - 'trad_lier' => 'Cet article est une traduction de l’article numéro :', |
|
| 932 | - 'trad_new' => 'Écrire une nouvelle traduction', |
|
| 882 | + 'texte_vide' => 'vide', |
|
| 883 | + 'texte_vider_cache' => 'Vider le cache', |
|
| 884 | + 'titre_admin_tech' => 'Maintenance technique', |
|
| 885 | + 'titre_admin_vider' => 'Maintenance technique', |
|
| 886 | + 'titre_ajouter_un_auteur' => 'Ajouter un auteur', |
|
| 887 | + 'titre_ajouter_un_mot' => 'Ajouter un mot-clé', |
|
| 888 | + 'titre_cadre_afficher_article' => 'Afficher les articles', |
|
| 889 | + 'titre_cadre_afficher_traductions' => 'Afficher l’état des traductions pour les langues suivantes :', |
|
| 890 | + 'titre_cadre_ajouter_auteur' => 'AJOUTER UN AUTEUR :', |
|
| 891 | + 'titre_cadre_interieur_rubrique' => 'À l’intérieur de la rubrique', |
|
| 892 | + 'titre_cadre_numero_auteur' => 'AUTEUR NUMÉRO', |
|
| 893 | + 'titre_cadre_numero_objet' => '@objet@ NUMÉRO :', |
|
| 894 | + 'titre_cadre_signature_obligatoire' => '<b>Signature</b> [Obligatoire]<br />', |
|
| 895 | + 'titre_config_contenu_notifications' => 'Notifications', |
|
| 896 | + 'titre_config_contenu_prive' => 'Dans l’espace privé', |
|
| 897 | + 'titre_config_contenu_public' => 'Sur le site public', |
|
| 898 | + 'titre_config_fonctions' => 'Configuration du site', |
|
| 899 | + 'titre_config_langage' => 'Configurer la langue', |
|
| 900 | + 'titre_configuration' => 'Configuration du site', |
|
| 901 | + 'titre_configurer_preferences' => 'Configurer vos préférences', |
|
| 902 | + 'titre_configurer_preferences_menus' => 'Configurer vos préférences de menus', |
|
| 903 | + 'titre_conflit_edition' => 'Conflit lors de l’édition', |
|
| 904 | + 'titre_connexion_ldap' => 'Options : <b>Votre connexion LDAP</b>', |
|
| 905 | + 'titre_groupe_mots' => 'GROUPE DE MOTS :', |
|
| 906 | + 'titre_identite_site' => 'Identité du site', |
|
| 907 | + 'titre_langue_article' => 'Langue de l’article', |
|
| 908 | + 'titre_langue_rubrique' => 'Langue de la rubrique', |
|
| 909 | + 'titre_langue_trad_article' => 'LANGUE ET TRADUCTIONS DE L’ARTICLE', |
|
| 910 | + 'titre_les_articles' => 'LES ARTICLES', |
|
| 911 | + 'titre_messagerie_agenda' => 'Messagerie et agenda', |
|
| 912 | + 'titre_naviguer_dans_le_site' => 'Naviguer dans le site...', |
|
| 913 | + 'titre_nouvelle_rubrique' => 'Nouvelle rubrique', |
|
| 914 | + 'titre_numero_rubrique' => 'RUBRIQUE NUMÉRO :', |
|
| 915 | + 'titre_page_articles_edit' => 'Modifier : @titre@', |
|
| 916 | + 'titre_page_articles_page' => 'Les articles', |
|
| 917 | + 'titre_page_articles_tous' => 'Tout le site', |
|
| 918 | + 'titre_page_calendrier' => 'Calendrier @nom_mois@ @annee@', |
|
| 919 | + 'titre_page_config_contenu' => 'Configuration du site', |
|
| 920 | + 'titre_page_delete_all' => 'suppression totale et irréversible', |
|
| 921 | + 'titre_page_recherche' => 'Résultats de la recherche @recherche@', |
|
| 922 | + 'titre_page_statistiques_referers' => 'Statistiques (liens entrants)', |
|
| 923 | + 'titre_page_upgrade' => 'Mise à niveau de SPIP', |
|
| 924 | + 'titre_preference_menus_favoris' => 'Menus favoris', |
|
| 925 | + 'titre_publication_articles_post_dates' => 'Publication des articles post-datés', |
|
| 926 | + 'titre_reparation' => 'Réparation', |
|
| 927 | + 'titre_suivi_petition' => 'Suivi des pétitions', |
|
| 928 | + 'tls_ldap' => 'Transport Layer Security :', |
|
| 929 | + 'trad_article_traduction' => 'Toutes les versions de cet article :', |
|
| 930 | + 'trad_delier' => 'Ne plus lier à ces traductions', |
|
| 931 | + 'trad_lier' => 'Cet article est une traduction de l’article numéro :', |
|
| 932 | + 'trad_new' => 'Écrire une nouvelle traduction', |
|
| 933 | 933 | |
| 934 | - // U |
|
| 935 | - 'utf8_convert_erreur_orig' => 'Erreur : le jeu de caractères @charset@ n’est pas supporté.', |
|
| 934 | + // U |
|
| 935 | + 'utf8_convert_erreur_orig' => 'Erreur : le jeu de caractères @charset@ n’est pas supporté.', |
|
| 936 | 936 | |
| 937 | - // V |
|
| 938 | - 'version' => 'Version :' |
|
| 937 | + // V |
|
| 938 | + 'version' => 'Version :' |
|
| 939 | 939 | ); |