source: spip-zone/_plugins_/logos_roles/branches/v1/formulaires/configurer_logos_roles.php @ 111569

Last change on this file since 111569 was 111569, checked in by bystrano@…, 2 years ago

permettre de forcer les dimensions d'un type de logo

Dans ce cas, les logos de ce type seront automatiquement recadrés a l'affichage,
et le plugin massicot obligera tout recadrage a respecter ces dimensions.

File size: 3.4 KB
Line 
1<?php
2
3/**
4 * Saisies du formulaire d'édition
5 *
6 * @return array
7 *         Tableau des saisies du formulaire
8 */
9function formulaires_configurer_logos_roles_saisies_dist() {
10        $datas_objets = array();
11        foreach (lister_tables_objets_sql() as $table => $def) {
12                $datas_objets[table_objet($table)] = _T($def['texte_objets']);
13        }
14
15        $saisies = array(
16                array(
17                        'saisie' => 'liste',
18                        'options' => array(
19                                'nom' => 'roles_logos',
20                                'label' => _T('logos_roles:titre_saisie_roles'),
21                                'ordre_fixe' => 'oui',
22                        ),
23                        'saisies' => array(
24                                array(
25                                        'saisie' => 'input',
26                                        'options' => array(
27                                                'nom' => 'slug',
28                                                'label' => _T('logos_roles:label_saisie_slug_role'),
29                                                'explication' => _T('logos_roles:explication_saisie_slug_role'),
30                                        ),
31                                ),
32                                array(
33                                        'saisie' => 'input',
34                                        'options' => array(
35                                                'nom' => 'titre',
36                                                'label' => _T('logos_roles:label_saisie_titre_role'),
37                                                'explication' => _T('logos_roles:explication_saisie_titre_role'),
38                                        ),
39                                ),
40                                array(
41                                        'saisie' => 'checkbox',
42                                        'options' => array(
43                                                'nom' => 'objets',
44                                                'label' => _T('logos_roles:label_saisie_objets_role'),
45                                                'datas' => $datas_objets,
46                                        ),
47                                ),
48                                array(
49                                        'saisie' => 'fieldset',
50                                        'options' => array(
51                                                'nom' => 'dimensions',
52                                                'label' => _T('logos_roles:label_fieldset_dimensions_role'),
53                                                'explication' => _T('logos_roles:explication_fieldset_dimensions_role'),
54                                        ),
55                                        'saisies' => array(
56                                                array(
57                                                        'saisie' => 'input',
58                                                        'options' => array(
59                                                                'nom' => 'dimensions[largeur]',
60                                                                'label' => _T('logos_roles:label_saisie_largeur_role'),
61                                                        ),
62                                                ),
63                                                array(
64                                                        'saisie' => 'input',
65                                                        'options' => array(
66                                                                'nom' => 'dimensions[hauteur]',
67                                                                'label' => _T('logos_roles:label_saisie_hauteur_role'),
68                                                        ),
69                                                ),
70                                        )
71                                ),
72                        ),
73                ),
74        );
75
76        return $saisies;
77}
78
79/**
80 * Chargement du formulaire d'édition
81 *
82 * Déclarer les champs postés et y intégrer les valeurs par défaut
83 *
84 * @return array
85 *         Environnement du formulaire
86 */
87function formulaires_configurer_logos_roles_charger_dist() {
88        if (_request('roles_logos')) {
89                $valeurs = array(
90                        'roles_logos' => _request('roles_logos'),
91                );
92        } else {
93                $valeurs = lire_config('logos_roles/', array());
94        }
95        return $valeurs;
96}
97
98/**
99 * Vérifications du formulaire d'édition
100 *
101 * Vérifier les champs postés et signaler d'éventuelles erreurs
102 *
103 * @return array
104 *         Tableau des erreurs
105 */
106function formulaires_configurer_logos_roles_verifier_dist() {
107
108        if (saisies_liste_verifier('roles_logos')) {
109                return array();
110        }
111
112        $erreurs = array();
113        $roles = _request('roles_logos');
114
115        foreach ($roles as $i => $role) {
116                if ((! isset($role['slug']) or (! $role['slug']))) {
117                        $erreurs['roles_logos'][$i]['slug'] = _T('info_obligatoire');
118                } elseif (! preg_match('/^[a-z_]+$/', $role['slug'])) {
119                        $erreurs['roles_logos'][$i]['slug'] = _T('logos_roles:erreur_slug_invalide');
120                }
121        }
122
123        return $erreurs;
124}
125
126/**
127 * Traitement du formulaire d'édition
128 *
129 * Traiter les champs postés
130 *
131 * @return array
132 *         Retours des traitements
133 */
134function formulaires_configurer_logos_roles_traiter_dist() {
135
136        if (saisies_liste_traiter('roles_logos')) {
137                return array('editable' => 'oui');
138        }
139
140        ecrire_config(
141                'logos_roles',
142                array(
143                        'roles_logos' => _request('roles_logos'),
144                )
145        );
146
147        $retour = array(
148                'editable' => 'oui',
149                'message_ok' => _T('logos_roles:message_conf_ok'),
150        );
151
152        return $retour;
153}
Note: See TracBrowser for help on using the repository browser.