[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / balise / configurer_metas.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2017 *
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 /**
15 * Ce fichier gère la balise dynamique `#CONFIGURER_METAS`
16 *
17 * @package SPIP\Core\Compilateur\Balises
18 **/
19 if (!defined('_ECRIRE_INC_VERSION')) {
20 return;
21 }
22
23
24 /**
25 * Compile la balise dynamique `#CONFIGURER_METAS` appelant un formulaire
26 * de configuration
27 *
28 * L'usage `#CONFIGURER_METAS{nom}` suppose qu'il existe un formulaire
29 * nommé `nom.html` et une table SQL `spip_nom` ayant deux colonnes
30 * `nom` et `valeur` où sont stockées les configurations (comme la table `spip_meta`).
31 * L'enregistrement des saisies du formulaire sera alors automatique.
32 *
33 * Cette fonction est dépréciée. Pour obtenir ce résultat, il faut
34 * utiliser `#FORMULAIRE_CONFIGURER_NOM` qui appelle le formulaire `nom.html`
35 * et dans ce formulaire indiquer un champ hidden spécifiant la table d'enregistrement
36 * tel que :
37 *
38 * Chaque saisie à la racine de la table spip_nom :
39 * <input type="hidden" name="_meta_casier" value="/nom" />
40 *
41 * Toutes les saisies dans la clé 'config' de spip_nom :
42 * <input type="hidden" name="_meta_casier" value="/nom/config" />
43 *
44 * Chaque saisie à la racine de la table spip_meta :
45 * <input type="hidden" name="_meta_casier" value="" />
46 *
47 * Toutes les saisies dans la clé 'config' de spip_meta :
48 * <input type="hidden" name="_meta_casier" value="config" />
49 *
50 * @note
51 * Comme l'emplacement du squelette est calcule (par l'argument de la balise)
52 * on ne peut rien dire sur l'existence du squelette lors de la compil.
53 * On pourrait toutefois traiter le cas de l'argument qui est une constante.
54 *
55 * @balise
56 * @deprecated Utiliser `#FORMULAIRE_CONFIGURER_XX`
57 * @param Champ $p
58 * Pile au niveau de la balise
59 * @return Champ
60 * Pile complétée du code compilé
61 **/
62 function balise_CONFIGURER_METAS_dist($p) {
63 return calculer_balise_dynamique($p, $p->nom_champ, array());
64 }
65
66 /**
67 * Exécution de la balise dynamique `#CONFIGURER_METAS`
68 *
69 * À l'exécution on dispose du nom du squelette, on verifie qu'il existe.
70 * Pour le calcul du contexte, c'est comme la balise `#FORMULAIRE_`
71 * y compris le contrôle au retour pour faire apparaître le message d'erreur.
72 *
73 * @see balise_CONFIGURER_METAS_dist()
74 * @param string $form
75 * Nom du formulaire
76 * @return array
77 * Liste : Chemin du squelette, durée du cache, contexte
78 **/
79 function balise_CONFIGURER_METAS_dyn($form) {
80
81 include_spip('balise/formulaire_');
82 if (!existe_formulaire($form)) {
83 return '';
84 }
85 $args = func_get_args();
86 $contexte = balise_FORMULAIRE__contexte('configurer_metas', $args);
87 if (!is_array($contexte)) {
88 return $contexte;
89 }
90
91 return array('formulaires/' . $form, 3600, $contexte);
92 }