source: spip-zone/_plugins_/noizetier/trunk/formulaires/configurer_noizetier.php @ 112698

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

Adaptation du noizetier à la dernière version de N-Core (encapsulation).
Tout n'est pas fonctionnel, il manque encore :

  • un problème de détection de l'input radio balise_noisette dans la config du noizetier (bug Saisies ???)
  • la prise en compte du mode d'encapsulation auto pour cacher la config balise_noisette et la suppression des saisies balise et css dans l'edition d'une noisette.

A tester.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.7 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7
8function 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
31function 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 */
67function 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}
Note: See TracBrowser for help on using the repository browser.