1 | <?php |
---|
2 | |
---|
3 | if (!defined('_ECRIRE_INC_VERSION')) { |
---|
4 | return; |
---|
5 | } |
---|
6 | |
---|
7 | |
---|
8 | function formulaires_configurer_noizetier_charger_dist() { |
---|
9 | |
---|
10 | // On récupère les valeurs configurées |
---|
11 | include_spip('inc/cvt_configurer'); |
---|
12 | $valeurs = cvtconf_formulaires_configurer_recense('configurer_noizetier'); |
---|
13 | |
---|
14 | // Injecter les options possibles pour le défaut d'encapsulation |
---|
15 | $valeurs['_balise_options'] = array( |
---|
16 | 'div' => _T('noizetier:option_noizetier_balise_div'), |
---|
17 | 'auto' => _T('noizetier:option_noizetier_balise_auto'), |
---|
18 | 'aucune' => _T('noizetier:option_noizetier_balise_aucune') |
---|
19 | ); |
---|
20 | |
---|
21 | // Injecter les objets exclus |
---|
22 | include_spip('inc/noizetier_objet'); |
---|
23 | $valeurs['_objets_exclus'] = lister_objets_exclus(); |
---|
24 | |
---|
25 | $valeurs['editable'] = true; |
---|
26 | |
---|
27 | return $valeurs; |
---|
28 | } |
---|
29 | |
---|
30 | |
---|
31 | function formulaires_configurer_noizetier_traiter_dist() { |
---|
32 | $retour = array(); |
---|
33 | |
---|
34 | // Si on a changé la configuration de l'ajax par défaut, on supprime le cache ajax des |
---|
35 | // noisettes pour forcer son recalcul à la prochaine utilisation. |
---|
36 | include_spip('inc/config'); |
---|
37 | $defaut_ajax = lire_config('noizetier/ajax_noisette'); |
---|
38 | |
---|
39 | if ($defaut_ajax != _request('ajax_noisette')) { |
---|
40 | include_spip('inc/ncore_cache'); |
---|
41 | cache_supprimer('noizetier', _NCORE_NOMCACHE_TYPE_NOISETTE_AJAX); |
---|
42 | } |
---|
43 | |
---|
44 | // On filtre le tableau des objets configurables pour éviter l'index vide fourni systématiquement par la saisie. |
---|
45 | $objets_configurables = _request('objets_noisettes'); |
---|
46 | $objets_configurables = is_array($objets_configurables) ? array_filter($objets_configurables) : array(); |
---|
47 | set_request('objets_noisettes', $objets_configurables); |
---|
48 | |
---|
49 | // On enregistre les nouvelles valeurs saisies |
---|
50 | include_spip('inc/cvt_configurer'); |
---|
51 | $trace = cvtconf_formulaires_configurer_enregistre('configurer_noizetier', array()); |
---|
52 | $retour['message_ok'] = _T('config_info_enregistree') . $trace; |
---|
53 | $retour['editable'] = true; |
---|
54 | |
---|
55 | return $retour; |
---|
56 | } |
---|
57 | |
---|
58 | |
---|
59 | /** |
---|
60 | * Renvoie la liste des types d'objet ne pouvant pas être personnalisés car ne possédant pas |
---|
61 | * de page détectable par le noiZetier. |
---|
62 | * |
---|
63 | * @api |
---|
64 | * |
---|
65 | * @return array|null |
---|
66 | */ |
---|
67 | function lister_objets_exclus() { |
---|
68 | |
---|
69 | static $exclusions = null; |
---|
70 | |
---|
71 | if (is_null($exclusions)) { |
---|
72 | $exclusions = array(); |
---|
73 | include_spip('base/objets'); |
---|
74 | |
---|
75 | // On récupère les tables d'objets sous la forme spip_xxxx. |
---|
76 | $tables = lister_tables_objets_sql(); |
---|
77 | $tables = array_keys($tables); |
---|
78 | |
---|
79 | // On récupère la liste des pages disponibles et on transforme le type d'objet en table SQL. |
---|
80 | $where = array('composition=' . sql_quote(''), 'est_page_objet=' . sql_quote('oui')); |
---|
81 | $pages = sql_allfetsel('type', 'spip_noizetier_pages', $where); |
---|
82 | $pages = array_map('reset', $pages); |
---|
83 | $pages = array_map('table_objet_sql', $pages); |
---|
84 | |
---|
85 | // On exclut donc les tables qui ne sont pas dans la liste issues des pages. |
---|
86 | $exclusions = array_diff($tables, $pages); |
---|
87 | } |
---|
88 | |
---|
89 | return $exclusions; |
---|
90 | } |
---|