2be723656c967853267bcf6f0560075cf242c0aa
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2017 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
14 * Ce fichier gère la balise dynamique `#MENU_LANG_ECRIRE`
16 * @package SPIP\Core\Compilateur\Balises
19 if (!defined('_ECRIRE_INC_VERSION')) {
24 * Compile la balise dynamique `#MENU_LANG_ECRIRE` qui affiche
25 * un sélecteur de langue pour l'interface privée
27 * Affiche le menu des langues de l'espace privé
28 * et présélectionne celle la globale `$lang`
29 * ou de l'arguemnt fourni: `#MENU_LANG_ECRIRE{#ENV{malangue}}`
32 * @link http://www.spip.net/4626
35 * Pile au niveau de la balise
37 * Pile complétée du code compilé
39 function balise_MENU_LANG_ECRIRE($p) {
40 return calculer_balise_dynamique($p, 'MENU_LANG_ECRIRE', array('lang'));
44 * Calculs de paramètres de contexte automatiques pour la balise MENU_LANG_ECRIRE
46 * S'il n'y a qu'une langue proposée, pas besoin du formulaire
47 * (éviter une balise ?php inutile)
50 * Liste des arguments demandés obtenus du contexte (lang)
51 * complétés de ceux fournis à la balise
52 * @param array $context_compil
53 * Tableau d'informations sur la compilation
55 * Liste (lang) des arguments collectés et fournis.
57 function balise_MENU_LANG_ECRIRE_stat($args, $context_compil) {
58 include_spip('inc/lang');
59 if (strpos($GLOBALS['meta']['langues_proposees'], ',') === false) {
67 * Exécution de la balise dynamique `#MENU_LANG_ECRIRE`
69 * @uses menu_lang_pour_tous()
71 * Normalement `$opt` sera toujours non vide suite au test ci-dessus
76 * Liste : Chemin du squelette, durée du cache, contexte
78 function balise_MENU_LANG_ECRIRE_dyn($opt) {
79 return menu_lang_pour_tous('var_lang_ecrire', $opt);
83 * Calcule l'environnement et le squelette permettant d'afficher
84 * le formulaire de sélection de changement de langue
86 * Le changement de langue se fait par l'appel à l'action `converser`
89 * @see action_converser_dist()
92 * Nom de la variable qui sera postée par le formulaire
93 * @param string $default
94 * Valeur par défaut de la langue
96 * Liste : Chemin du squelette, durée du cache, contexte
98 function menu_lang_pour_tous($nom, $default) {
99 include_spip('inc/lang');
101 if ($GLOBALS['spip_lang'] <> $default) {
102 $opt = lang_select($default); # et remplace
103 if ($GLOBALS['spip_lang'] <> $default) {
104 $default = ''; # annule tout choix par defaut
112 $cible = parametre_url(self(), 'lang', '', '&');
113 $post = generer_url_action('converser', 'redirect=' . rawurlencode($cible), '&');
116 'formulaires/menu_lang',
122 'default' => $default,