From c95d1fef63d3cf3232fb8774d2f1cf0918fb4ff6 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Wed, 1 Mar 2006 14:43:17 +0000 Subject: [PATCH] suppression du concept de _DIR_LANG --- ecrire/exec/lang_raccourcis.php | 140 ++++++++++++++------------------ ecrire/inc/cron.php | 2 +- ecrire/inc/lang.php | 17 +++- ecrire/inc_utils.php | 28 ++----- 4 files changed, 85 insertions(+), 102 deletions(-) diff --git a/ecrire/exec/lang_raccourcis.php b/ecrire/exec/lang_raccourcis.php index b97865ab08..0fa1f61ef4 100644 --- a/ecrire/exec/lang_raccourcis.php +++ b/ecrire/exec/lang_raccourcis.php @@ -13,109 +13,93 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_spip('inc/presentation'); +include_spip('inc/lang'); -function exec_lang_raccourcis_dist() -{ - global $changer_config, $couleur_foncee, $spip_lang, $spip_lang_left; +function exec_lang_raccourcis_dist() { + global $changer_config, $couleur_foncee, $spip_lang, $spip_lang_left; - $module = $changer_config ? $changer_config : "public"; + ##### a revoir : des repertoires lang, il peut y en avoir plusieurs + $modules = array(); + $fichiers = preg_files(repertoire_lang().'[a-z_]+\.php[3]?$'); + foreach ($fichiers as $fichier) { + if (preg_match(',/([a-z]+)_([a-z_]+)\.php[3]?$,', $fichier, $r)) + $modules[$r[1]] ++; + } -debut_page(_T('module_fichier_langue').": $module", "administration", "langues"); + $modules = array_keys($modules); -echo "<br><br><br>"; -gros_titre(_T('module_fichier_langue').": $module"); + if (!in_array($module = _request('module'), $modules)) + $module = 'public'; -barre_onglets("config_lang", "fichiers"); + debut_page(_T('module_fichier_langue').": $module", + "administration", "langues"); + echo "<br><br><br>"; + gros_titre(_T('module_fichier_langue').": $module"); -debut_gauche(); - -$modules = array(); - -##### a revoir : des repertoires lang, il peut y en avoir partout sur le chemin -##### cf. aussi fonction ci-dessous -if (!$d = @opendir(_DIR_LANG)) return; -while (($f = readdir($d)) !== false) { - if (ereg('^([a-z_]+)\.php[3]?$', $f, $regs)) - $nom_module = $regs[1]; - if (!ereg('^(spip|ecrire)\_', $nom_module) && ereg("^([a-zA-Z]+)\_".$spip_lang."$", $nom_module, $reps)) - $modules[] = $reps[1]; -} -closedir($d); + barre_onglets("config_lang", "fichiers"); -if (count($modules) > 1) { - echo debut_cadre_relief(); - echo "<div class='verdana3' style='background-color: $couleur_foncee; color: white; padding: 3px;'><b>"._T('module_fichiers_langues').":</b></div><br>\n"; - reset($modules); - while (list(, $nom_module) = each($modules)) { - if ($nom_module == $module) echo "<div style='padding-$spip_lang_left: 10px;' class='verdana3'><b>$nom_module</b></div>"; - else echo "<div style='padding-$spip_lang_left: 10px;' class='verdana3'><a href='" . generer_url_ecrire("lang_raccourcis","module=$nom_module") . "'>$nom_module</a></div>"; + debut_gauche(); + + if (count($modules) > 1) { + echo debut_cadre_relief(); + echo "<div class='verdana3' style='background-color: $couleur_foncee; color: white; padding: 3px;'><b>"._T('module_fichiers_langues').":</b></div><br>\n"; + + foreach ($modules as $nom_module) { + if ($nom_module == $module) echo "<div style='padding-$spip_lang_left: 10px;' class='verdana3'><b>$nom_module</b></div>"; + else echo "<div style='padding-$spip_lang_left: 10px;' class='verdana3'><a href='" . generer_url_ecrire("lang_raccourcis","module=$nom_module") . "'>$nom_module</a></div>"; + } + echo fin_cadre_relief(); } - echo fin_cadre_relief(); -} -$module = array_pop($modules); + debut_droite(); -debut_droite(); + afficher_raccourcis($module); -afficher_raccourcis($module); + fin_page(); -fin_page(); } -##### a revoir aussi (cf. commentaire ci-dessus) function afficher_raccourcis($module = "public") { global $spip_lang; global $couleur_foncee; - $lang = $module.'_'.$spip_lang; - if ($fichier_lang = find_in_path($lang._EXTENSION_PHP, _DIR_LANG)) { - $GLOBALS['idx_lang'] = 'i18n_' . $lang; - include_local($fichier_lang); - - $tableau = $GLOBALS['i18n_' . $lang]; - ksort($tableau); - - if ($module != "public" AND $module != "local") $aff_nom_module = "$module:"; - - echo "<div class='arial2'>"._T('module_texte_explicatif')."</div>"; - echo "<div> </div>"; - - if (!$d = @opendir(_DIR_LANG)) return; - while (($f = readdir($d)) !== false) { - if (ereg("^".$module."\_([a-z_]+)\.php[3]?$", $f, $regs)) + charger_langue($spip_lang, $module); + + $tableau = $GLOBALS['i18n_' . $module . '_' . $spip_lang]; + ksort($tableau); + + if ($module != "public" AND $module != "local") + $aff_nom_module = "$module:"; + + echo "<div class='arial2'>"._T('module_texte_explicatif')."</div>"; + echo "<div> </div>"; + + foreach (preg_files(repertoire_lang().$module.'_[a-z_]+\.php[3]?$') as $f) + if (ereg("^".$module."\_([a-z_]+)\.php[3]?$", $f, $regs)) $langue_module[$regs[1]] = traduire_nom_langue($regs[1]); - } - if ($langue_module) { - ksort($langue_module); - echo "<div class='arial2'>"._T('module_texte_traduction', array('module' => $module)); - echo " ".join(", ", $langue_module)."."; - echo "</div><div> </div>"; - } - - closedir($d); - - echo "<table cellpadding='3' cellspacing='1' border='0'>"; - echo "<tr bgcolor='$couleur_foncee' style='color:white;'><td class='verdana1'><b>"._T('module_raccourci')."</b></td><td class='verdana2'><b>"._T('module_texte_affiche')."</b></td></tr>\n"; - - for (reset($tableau); $raccourci = key($tableau); next($tableau)) { - if ($i == 1) { - $i = 0; - $bgcolor = '#eeeeee'; - } else { - $i = 1; - $bgcolor= 'white'; - } - - $texte = pos($tableau); - echo "<tr bgcolor='$bgcolor'><td class='verdana2'><b><:$aff_nom_module$raccourci:></b></td><td class='arial2'>$texte</td></tr>\n"; - } - echo "</table>"; + + if ($langue_module) { + ksort($langue_module); + echo "<div class='arial2'>"._T('module_texte_traduction', + array('module' => $module)); + echo " ".join(", ", $langue_module)."."; + echo "</div><div> </div>"; } + + echo "<table cellpadding='3' cellspacing='1' border='0'>"; + echo "<tr bgcolor='$couleur_foncee' style='color:white;'><td class='verdana1'><b>"._T('module_raccourci')."</b></td><td class='verdana2'><b>"._T('module_texte_affiche')."</b></td></tr>\n"; + + foreach ($tableau as $raccourci => $val) { + $bgcolor = alterner($i++, '#eeeeee','white'); + echo "<tr bgcolor='$bgcolor'><td class='verdana2'><b><:$aff_nom_module$raccourci:></b></td><td class='arial2'>".$val."</td></tr>\n"; + } + + echo "</table>"; } ?> diff --git a/ecrire/inc/cron.php b/ecrire/inc/cron.php index 72a5381ae7..c8e2e79d0c 100644 --- a/ecrire/inc/cron.php +++ b/ecrire/inc/cron.php @@ -49,7 +49,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // Les taches les plus longues sont tronconnees, ce qui impose d'antidater // le fichier de verrouillage (avec la valeur absolue du code de retour). // La fonction executant la tache est un homonyme de prefixe "cron_" -// Le fichier homonyme de prefixe "inc_" et de suffixe _EXTENSION_PHP +// Le fichier homonyme de prefixe "inc_" // est automatiquement charge si besoin, et est supposee la definir si ce // n'est fait ici. diff --git a/ecrire/inc/lang.php b/ecrire/inc/lang.php index 8428bcf739..a4133f687d 100644 --- a/ecrire/inc/lang.php +++ b/ecrire/inc/lang.php @@ -376,6 +376,21 @@ function utiliser_langue_visiteur() { changer_langue($_COOKIE[$cookie_lang]); } +// Une fonction qui donne le repertoire ou trouver des fichiers de langue +// note : pourrait en donner une liste... complique +function repertoire_lang($module='spip', $lang='fr') { + # valeur forcee (par ex.sur spip.net), old style, a faire disparaitre + if (defined('_DIR_LANG')) + return _DIR_LANG; + + # regarder s'il existe une v.f. qq part + if ($f = include_spip('lang/'.$module.'_'.$lang)); + return dirname($f).'/'; + + # sinon, je ne sais trop pas quoi dire... + return _DIR_INCLUDE.'lang/'; +} + // // Initialisation // @@ -392,7 +407,7 @@ function init_langues() { $toutes_langs = Array(); if (!$all_langs || !$langue_site || !_DIR_RESTREINT) { - if (!$d = @opendir(_DIR_LANG)) return; + if (!$d = @opendir(repertoire_lang())) return; while (($f = readdir($d)) !== false) { if (ereg('^spip_([a-z_]+)\.php[3]?$', $f, $regs)) $toutes_langs[] = $regs[1]; diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php index f30e7c22df..b9e531aa8c 100644 --- a/ecrire/inc_utils.php +++ b/ecrire/inc_utils.php @@ -31,7 +31,7 @@ function include_local ($file, $silence=false) { include($f); return true; } - else if (is_readable($f = $nom . _EXTENSION_PHP)) { + else if (is_readable($f = $nom . '.php3')) { include($f); return true; } @@ -782,28 +782,15 @@ function get_spip_script($default='') { function generer_url_public($script, $args="", $no_entities=false) { - if (!$script) { - $action = get_spip_script(); - - } else { - // transition : s'agit-il d'un fichier existant ? - $fichier = $script . (ereg('[.]php[3]?$', $script) ? - '' : _EXTENSION_PHP); - if (@file_exists(_DIR_RACINE . $fichier)) { - $action = $fichier; - } - - // sinon utiliser _SPIP_SCRIPT?page=script - else { - $action = get_spip_script() . '?page=' . $script; - } - } - // si le script est une action (spip_pass, spip_inscription), // utiliser generer_url_action [hack temporaire pour faire // fonctionner #URL_PAGE{spip_pass} ] if (preg_match(',^spip_(.*),', $script, $regs)) - return generer_url_action($regs[1],$args,true); + return generer_url_action($regs[1],$args,true); # attention a la recursivite !! + + $action = get_spip_script(); + if ($script) + $action = parametre_url($action, 'page', $script, '&'); if ($args) $action .= @@ -935,9 +922,6 @@ function spip_initialisation() { define('_ROOT_IMG_PACK', (dirname(__FILE__) . '/img_pack/')); define('_ROOT_IMG_ICONES_DIST', (dirname(__FILE__) . '/img_pack/icones/')); - // Fichiers de langue - define('_DIR_LANG', (_DIR_RESTREINT . 'lang/')); - // Le charset par defaut lors de l'installation define('_DEFAULT_CHARSET', 'utf-8'); -- GitLab