source: spip-zone/_plugins_/duplicator/trunk/formulaires/configurer_duplicator.php @ 109535

Last change on this file since 109535 was 109535, checked in by rastapopoulos@…, 3 years ago

On retire le champ statut des configurations, car il y a une autre config pour ça, et on rajoute le champ dans le select ensuite, pour s'assurer de toujours au moins le copier.

File size: 3.7 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7include_spip('base/objets');
8
9function formulaires_configurer_duplicator_saisies_dist() {
10        $declaration_objets = lister_tables_objets_sql();
11        $config = lire_config('duplicator');
12       
13        $saisies = array(
14                array(
15                        'saisie' => 'choisir_objets',
16                        'options' => array(
17                                'nom' => 'objets',
18                                'label' => _T('duplicator:configurer_objets_label'),
19                                'defaut' => isset($config['objets']) ? $config['objets'] : array(),
20                        ),
21                ),
22        );
23       
24        // Pour chaque objet déjà choisi, on ajoute des options
25        if (isset($config['objets'])) {
26                foreach ($config['objets'] as $table_objet_sql) {
27                        // Si l'objet fait toujours parti des objets installés
28                        if (isset($declaration_objets[$table_objet_sql]) and $declaration_objet = $declaration_objets[$table_objet_sql]) {
29                                $table_objet = table_objet($table_objet_sql);
30                                $objet = objet_type($table_objet);
31                               
32                                $groupe_objet = array(
33                                        'saisie' => 'fieldset',
34                                        'options' => array(
35                                                'nom' => "groupe_$table_objet",
36                                                'label' => _T($declaration_objet['texte_objets']),
37                                        ),
38                                        'saisies' => array(),
39                                );
40                               
41                                // Si l'objet a des champs
42                                if (isset($declaration_objet['field']) and $champs = $declaration_objet['field']) {
43                                        // On cherche et vire le champ statut, car il y a une config pour ça ensuite
44                                        if (isset($declaration_objet['statut'][0]['champ']) and $champ_statut = $declaration_objet['statut'][0]['champ']) {
45                                                unset($champs[$champ_statut]);
46                                        }
47                                       
48                                        foreach ($champs as $champ=>$sql) {
49                                                $champs[$champ] = $champ;
50                                        }
51                                        $groupe_objet['saisies'][] = array(
52                                                'saisie' => 'case',
53                                                'options' => array(
54                                                        'nom' => "${table_objet}[personnaliser_champs]",
55                                                        'label_case' => _T('duplicator:configurer_personnaliser_champs_label'),
56                                                        'valeur_forcee' => (isset($config[$table_objet]['champs']) and $config[$table_objet]['champs']) ? 'on' : '',
57                                                ),
58                                        );
59                                        $groupe_objet['saisies'][] = array(
60                                                'saisie' => 'checkbox',
61                                                'options' => array(
62                                                        'nom' => "${table_objet}[champs]",
63                                                        'label' => _T('duplicator:configurer_champs_label'),
64                                                        'data' => $champs,
65                                                        'defaut' => isset($config[$table_objet]['champs']) ? $config[$table_objet]['champs'] : array(),
66                                                        'afficher_si' => "@${table_objet}[personnaliser_champs]@ == 'on'",
67                                                ),
68                                        );
69                                }
70                               
71                                // S'il y a des statuts
72                                if (isset($declaration_objet['statut_textes_instituer']) and $statuts = $declaration_objet['statut_textes_instituer']) {
73                                        foreach ($statuts as $statut=>$lang) {
74                                                $statuts[$statut] = _T($lang);
75                                        }
76                                        $groupe_objet['saisies'][] = array(
77                                                'saisie' => 'selection',
78                                                'options' => array(
79                                                        'nom' => "${table_objet}[statut]",
80                                                        'label' => _T('duplicator:configurer_statut_label'),
81                                                        'option_intro' => _T('duplicator:configurer_statut_option_intro'),
82                                                        'data' => $statuts,
83                                                        'defaut' => isset($config[$table_objet]['statut']) ? $config[$table_objet]['statut'] : '',
84                                                ),
85                                        );
86                                }
87                               
88                                // Les autorisations
89                                $groupe_objet['saisies'][] = array(
90                                        'saisie' => 'selection',
91                                        'options' => array(
92                                                'nom' => "${table_objet}[autorisation]",
93                                                'label' => _T('duplicator:configurer_autorisation_label'),
94                                                'option_intro' => _T('duplicator:configurer_autorisation_option_intro'),
95                                                'data' => array(
96                                                        'webmestre' => _T('duplicator:configurer_autorisation_choix_webmestre'),
97                                                        'administrateur' => _T('duplicator:configurer_autorisation_choix_administrateur'),
98                                                        'redacteur' => _T('duplicator:configurer_autorisation_choix_redacteur'),
99                                                ),
100                                                'defaut' => isset($config[$table_objet]['autorisation']) ? $config[$table_objet]['autorisation'] : '',
101                                        ),
102                                );
103                               
104                                $saisies[] = $groupe_objet;
105                        }
106                }
107        }
108       
109        return $saisies;
110}
Note: See TracBrowser for help on using the repository browser.