[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / ecrire / balise / login_public.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
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 \***************************************************************************/
12
13 /**
14 * Ce fichier gère la balise dynamique dépréciée `#LOGIN_PUBLIC`
15 *
16 * @package SPIP\Core\Compilateur\Balises
17 **/
18
19 if (!defined("_ECRIRE_INC_VERSION")) {
20 return;
21 } #securite
22
23
24 /**
25 * Compile la balise dynamique `#LOGIN_PUBLIC` qui permet d'afficher le
26 * formulaire de connexion vers l'espace public
27 *
28 * @balise
29 * @deprecated Utiliser `#FORMULAIRE_LOGIN`
30 *
31 * @param Champ $p
32 * Pile au niveau de la balise
33 * @param string $nom
34 * Nom de la fonction de calcul des arguments statiques à appeler
35 * @return Champ
36 * Pile complétée du code compilé
37 **/
38 function balise_LOGIN_PUBLIC($p, $nom = 'LOGIN_PUBLIC') {
39 return calculer_balise_dynamique($p, $nom, array('url'));
40 }
41
42 /**
43 * Calculs de paramètres de contexte automatiques pour la balise LOGIN_PUBLIC
44 *
45 * Retourne le contexte du formulaire en prenant :
46 *
47 * 1. l'URL collectée ci-dessus (args0) ou donnée en premier paramètre (args1)
48 * `#LOGIN_PUBLIC{#SELF}`
49 * 2. un éventuel paramètre (args2) indiquant le login et permettant une écriture
50 * `<boucle(AUTEURS)>[(#LOGIN_PUBLIC{#SELF, #LOGIN})]`
51 *
52 * @param array $args
53 * Liste des arguments demandés obtenus du contexte (url)
54 * @param array $context_compil
55 * Tableau d'informations sur la compilation
56 * @return array
57 * Liste (url, login) des arguments collectés.
58 */
59 function balise_LOGIN_PUBLIC_stat($args, $context_compil) {
60 return array(isset($args[1]) ? $args[1] : $args[0], (isset($args[2]) ? $args[2] : ''));
61 }
62
63 /**
64 * Exécution de la balise dynamique `#LOGIN_PUBLIC`
65 *
66 * Exécution mappée sur le formulaire de login.
67 *
68 * @param string $url
69 * URL de destination après l'identification. Par défaut la page
70 * en cours.
71 * @param string $login
72 * Login de la personne à identifié (si connu)
73 * @return array
74 * Liste : Chemin du squelette, durée du cache, contexte
75 **/
76 function balise_LOGIN_PUBLIC_dyn($url, $login) {
77 include_spip('balise/formulaire_');
78 if (!$url # pas d'url passee en filtre ou dans le contexte
79 and !$url = _request('url') # ni d'url passee par l'utilisateur
80 ) {
81 $url = parametre_url(self(), '', '', '&');
82 }
83
84 return balise_FORMULAIRE__dyn('login', $url, $login, false);
85 }