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

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

On réaffiche l'ensemble des objets connus par SPIP, même ceux pas cochés pour proposer le bouton dans l'interface, car dans pas longtemps va falloir ajouter des configs de quels enfants on accepte de dupliquer etc, y compris donc pour pouvoir configurer des objets qui ne sont pas proposés dans l'interface, mais qui vont être dupliqués par hiérarchie quand décide de dupliquer les enfants… (je clair Luc, ne pas ?)

File size: 3.6 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                // On boucle sur tous les objets possibles
27                foreach ($declaration_objets as $table_objet_sql=>$declaration_objet) {
28                        $table_objet = table_objet($table_objet_sql);
29                        $objet = objet_type($table_objet);
30                       
31                        $groupe_objet = array(
32                                'saisie' => 'fieldset',
33                                'options' => array(
34                                        'nom' => "groupe_$table_objet",
35                                        'label' => _T($declaration_objet['texte_objets']),
36                                        'pliable' => 'oui',
37                                        'plie' => 'oui',
38                                ),
39                                'saisies' => array(),
40                        );
41                       
42                        // Si l'objet a des champs
43                        if (isset($declaration_objet['field']) and $champs = $declaration_objet['field']) {
44                                // On cherche et vire le champ statut, car il y a une config pour ça ensuite
45                                if (isset($declaration_objet['statut'][0]['champ']) and $champ_statut = $declaration_objet['statut'][0]['champ']) {
46                                        unset($champs[$champ_statut]);
47                                }
48                               
49                                foreach ($champs as $champ=>$sql) {
50                                        $champs[$champ] = $champ;
51                                }
52                                $groupe_objet['saisies'][] = array(
53                                        'saisie' => 'case',
54                                        'options' => array(
55                                                'nom' => "${table_objet}[personnaliser_champs]",
56                                                'label_case' => _T('duplicator:configurer_personnaliser_champs_label'),
57                                                'valeur_forcee' => (isset($config[$table_objet]['champs']) and $config[$table_objet]['champs']) ? 'on' : '',
58                                        ),
59                                );
60                                $groupe_objet['saisies'][] = array(
61                                        'saisie' => 'checkbox',
62                                        'options' => array(
63                                                'nom' => "${table_objet}[champs]",
64                                                'label' => _T('duplicator:configurer_champs_label'),
65                                                'data' => $champs,
66                                                'defaut' => isset($config[$table_objet]['champs']) ? $config[$table_objet]['champs'] : array(),
67                                                'afficher_si' => "@${table_objet}[personnaliser_champs]@ == 'on'",
68                                        ),
69                                );
70                        }
71                       
72                        // S'il y a des statuts
73                        if (isset($declaration_objet['statut_textes_instituer']) and $statuts = $declaration_objet['statut_textes_instituer']) {
74                                foreach ($statuts as $statut=>$lang) {
75                                        $statuts[$statut] = _T($lang);
76                                }
77                                $groupe_objet['saisies'][] = array(
78                                        'saisie' => 'selection',
79                                        'options' => array(
80                                                'nom' => "${table_objet}[statut]",
81                                                'label' => _T('duplicator:configurer_statut_label'),
82                                                'option_intro' => _T('duplicator:configurer_statut_option_intro'),
83                                                'data' => $statuts,
84                                                'defaut' => isset($config[$table_objet]['statut']) ? $config[$table_objet]['statut'] : '',
85                                        ),
86                                );
87                        }
88                       
89                        // Les autorisations
90                        $groupe_objet['saisies'][] = array(
91                                'saisie' => 'selection',
92                                'options' => array(
93                                        'nom' => "${table_objet}[autorisation]",
94                                        'label' => _T('duplicator:configurer_autorisation_label'),
95                                        'option_intro' => _T('duplicator:configurer_autorisation_option_intro'),
96                                        'data' => array(
97                                                'webmestre' => _T('duplicator:configurer_autorisation_choix_webmestre'),
98                                                'administrateur' => _T('duplicator:configurer_autorisation_choix_administrateur'),
99                                                'redacteur' => _T('duplicator:configurer_autorisation_choix_redacteur'),
100                                        ),
101                                        'defaut' => isset($config[$table_objet]['autorisation']) ? $config[$table_objet]['autorisation'] : '',
102                                ),
103                        );
104                       
105                        $saisies[] = $groupe_objet;
106                }
107        }
108       
109        return $saisies;
110}
Note: See TracBrowser for help on using the repository browser.