[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / ecrire / balise / menu_lang_ecrire.php
index ab48a33..0752df9 100644 (file)
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2014                                                *
+ *  Copyright (c) 2001-2019                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-if (!defined('_ECRIRE_INC_VERSION')) return;
+/**
+ * Ce fichier gère la balise dynamique `#MENU_LANG_ECRIRE`
+ *
+ * @package SPIP\Core\Compilateur\Balises
+ **/
 
-// #MENU_LANG_ECRIRE affiche le menu des langues de l'espace privé
-// et preselectionne celle la globale $lang
-// ou de l'arguemnt fourni: #MENU_LANG_ECRIRE{#ENV{malangue}} 
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
-// http://doc.spip.org/@balise_MENU_LANG_ECRIRE
-function balise_MENU_LANG_ECRIRE ($p) {
-       return calculer_balise_dynamique($p,'MENU_LANG_ECRIRE', array('lang'));
+/**
+ * Compile la balise dynamique `#MENU_LANG_ECRIRE` qui affiche
+ * un sélecteur de langue pour l'interface privée
+ *
+ * Affiche le menu des langues de l'espace privé
+ * et présélectionne celle la globale `$lang`
+ * ou de l'arguemnt fourni: `#MENU_LANG_ECRIRE{#ENV{malangue}}`
+ *
+ * @balise
+ * @link http://www.spip.net/4626
+ *
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée du code compilé
+ **/
+function balise_MENU_LANG_ECRIRE($p) {
+       return calculer_balise_dynamique($p, 'MENU_LANG_ECRIRE', array('lang'));
 }
 
-// s'il n'y a qu'une langue proposee eviter definitivement la balise ?php 
-// http://doc.spip.org/@balise_MENU_LANG_ECRIRE_stat
-function balise_MENU_LANG_ECRIRE_stat ($args, $context_compil) {
+/**
+ * Calculs de paramètres de contexte automatiques pour la balise MENU_LANG_ECRIRE
+ *
+ * S'il n'y a qu'une langue proposée, pas besoin du formulaire
+ * (éviter une balise ?php inutile)
+ *
+ * @param array $args
+ *   Liste des arguments demandés obtenus du contexte (lang)
+ *   complétés de ceux fournis à la balise
+ * @param array $context_compil
+ *   Tableau d'informations sur la compilation
+ * @return array
+ *   Liste (lang) des arguments collectés et fournis.
+ */
+function balise_MENU_LANG_ECRIRE_stat($args, $context_compil) {
        include_spip('inc/lang');
-       if (strpos($GLOBALS['meta']['langues_proposees'],',') === false) return '';
+       if (strpos($GLOBALS['meta']['langues_proposees'], ',') === false) {
+               return '';
+       }
+
        return $args;
 }
 
-// normalement $opt sera toujours non vide suite au test ci-dessus
-// http://doc.spip.org/@balise_MENU_LANG_ECRIRE_dyn
+/**
+ * Exécution de la balise dynamique `#MENU_LANG_ECRIRE`
+ *
+ * @uses menu_lang_pour_tous()
+ * @note
+ *   Normalement `$opt` sera toujours non vide suite au test ci-dessus
+ *
+ * @param string $opt
+ *     Langue par défaut
+ * @return array
+ *     Liste : Chemin du squelette, durée du cache, contexte
+ **/
 function balise_MENU_LANG_ECRIRE_dyn($opt) {
        return menu_lang_pour_tous('var_lang_ecrire', $opt);
 }
 
-// http://doc.spip.org/@menu_lang_pour_tous
+/**
+ * Calcule l'environnement et le squelette permettant d'afficher
+ * le formulaire de sélection de changement de langue
+ *
+ * Le changement de langue se fait par l'appel à l'action `converser`
+ *
+ * @uses lang_select()
+ * @see  action_converser_dist()
+ *
+ * @param string $nom
+ *     Nom de la variable qui sera postée par le formulaire
+ * @param string $default
+ *     Valeur par défaut de la langue
+ * @return array
+ *     Liste : Chemin du squelette, durée du cache, contexte
+ **/
 function menu_lang_pour_tous($nom, $default) {
        include_spip('inc/lang');
 
        if ($GLOBALS['spip_lang'] <> $default) {
-               $opt = lang_select($default);   # et remplace
+               $opt = lang_select($default);  # et remplace
                if ($GLOBALS['spip_lang'] <> $default) {
-                       $default = '';  # annule tout choix par defaut
-                       if ($opt) lang_select();
+                       $default = '';  # annule tout choix par defaut
+                       if ($opt) {
+                               lang_select();
+                       }
                }
        }
 
        # lien a partir de /
-       $cible = parametre_url(self(), 'lang' , '', '&');
-       $post = generer_url_action('converser', 'redirect='. rawurlencode($cible), '&');
+       $cible = parametre_url(self(), 'lang', '', '&');
+       $post = generer_url_action('converser', 'redirect=' . rawurlencode($cible), '&');
 
-       return array('formulaires/menu_lang',
+       return array(
+               'formulaires/menu_lang',
                3600,
-               array('nom' => $nom,
+               array(
+                       'nom' => $nom,
                        'url' => $post,
                        'name' => $nom,
                        'default' => $default,
                )
        );
 }
-
-?>