[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / ecrire / balise / formulaire_inscription.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 `#FORMULAIRE_INSCRIPTION`
15 *
16 * @package SPIP\Core\Inscription
17 **/
18
19 if (!defined('_ECRIRE_INC_VERSION')) {
20 return;
21 }
22
23 include_spip('base/abstract_sql');
24 include_spip('inc/filtres');
25
26 // Balise independante du contexte
27
28
29 /**
30 * Compile la balise dynamique `#FORMULAIRE_INSCRIPTION` qui affiche
31 * un formulaire d'inscription au site
32 *
33 * @balise
34 * @example
35 * ```
36 * #FORMULAIRE_INSCRIPTION
37 * #FORMULAIRE_INSCRIPTION{nom_inscription, #ID_RUBRIQUE}
38 * ```
39 *
40 * @param Champ $p
41 * Pile au niveau de la balise
42 * @return Champ
43 * Pile complétée du code compilé
44 **/
45 function balise_FORMULAIRE_INSCRIPTION($p) {
46 return calculer_balise_dynamique($p, 'FORMULAIRE_INSCRIPTION', array());
47 }
48
49 /**
50 * Calculs de paramètres de contexte automatiques pour la balise FORMULAIRE_INSCRIPTION
51 *
52 * En absence de mode d'inscription transmis à la balise, celui-ci est
53 * calculé en fonction de la configuration :
54 *
55 * - '1comite' si les rédacteurs peuvent s'inscrire,
56 * - '6forum' sinon si les forums sur abonnements sont actifs,
57 * - rien sinon.
58 *
59 * @example
60 * ```
61 * #FORMULAIRE_INSCRIPTION
62 * [(#FORMULAIRE_INSCRIPTION{mode_inscription, #ID_RUBRIQUE})]
63 * ```
64 *
65 * @param array $args
66 * - args[0] un statut d'auteur (rédacteur par defaut)
67 * - args[1] indique la rubrique éventuelle de proposition
68 * @param array $context_compil
69 * Tableau d'informations sur la compilation
70 * @return array|string
71 * - Liste (statut, id) si un mode d'inscription est possible
72 * - chaîne vide sinon.
73 */
74 function balise_FORMULAIRE_INSCRIPTION_stat($args, $context_compil) {
75 list($mode, $id, $retour) = array_pad($args, 3, null);
76 include_spip('action/inscrire_auteur');
77 $mode = tester_statut_inscription($mode, $id);
78
79 return $mode ? array($mode, $id, $retour) : '';
80 }