source: spip-zone/_plugins_/coche_mots/trunk/formulaires/cmots.php @ 98113

Last change on this file since 98113 was 98113, checked in by joseph@…, 4 years ago

compatibilité avec groupes de mots arborescents

File size: 2.2 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) return;
4
5include_spip('base/abstract_sql');
6
7function cmots_mots_deja_associes($id_groupe, $objet, $id_objet) {
8        if (test_plugin_actif(gma)) 
9                $select_id_mots = sql_allfetsel(
10                        'mots.id_mot AS id_mot', // select
11                        array('spip_mots AS mots','spip_mots_liens AS liens'), // from
12                        array('mots.id_groupe_racine='.intval($id_groupe),'liens.objet='.sql_quote($objet),'liens.id_objet='.intval($id_objet),'mots.id_mot=liens.id_mot') // where
13                );
14        else
15                $select_id_mots = sql_allfetsel(
16                        'mots.id_mot AS id_mot', // select
17                        array('spip_mots AS mots','spip_mots_liens AS liens'), // from
18                        array('mots.id_groupe='.intval($id_groupe),'liens.objet='.sql_quote($objet),'liens.id_objet='.intval($id_objet),'mots.id_mot=liens.id_mot') // where
19                );
20        $mots=array();
21        foreach ($select_id_mots as $select_id_mot)
22                $mots[] = $select_id_mot['id_mot'];
23        return $mots;
24}
25
26function formulaires_cmots_charger_dist($id_groupe, $objet, $id_objet, $retour=''){
27        $contexte = array();
28        $contexte['id_groupe'] = $id_groupe;
29        $contexte['objet'] = $objet;
30        $contexte['id_objet'] = $id_objet;
31        $contexte['mots'] = cmots_mots_deja_associes($id_groupe, $objet, $id_objet);
32        return $contexte;
33}
34
35function formulaires_cmots_traiter_dist($id_groupe, $objet, $id_objet, $retour=''){
36        $mots_en_base = cmots_mots_deja_associes($id_groupe, $objet, $id_objet);
37        $mots_demandes = _request('mots');
38        if (!$mots_demandes) $mots_demandes = array();
39        $mots_a_associer = array_diff($mots_demandes,$mots_en_base);
40        $mots_a_dissocier = array_diff($mots_en_base,$mots_demandes);
41       
42        include_spip('action/editer_liens');
43        if (count($mots_a_associer)>0) objet_associer(array('mot' => $mots_a_associer),array($objet => $id_objet));
44        if (count($mots_a_dissocier)>0) objet_dissocier(array('mot' => $mots_a_dissocier),array($objet => $id_objet));
45       
46        // On invalide le cache
47        include_spip('inc/invalideur');
48        suivre_invalideur("id='$objet/$id_objet'");
49        $res['message_ok'] = _T('info_modification_enregistree');
50        if ($retour) {
51                if (strncmp($retour,'javascript:',11)==0){
52                        $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/'.substr($retour,11).'/*]]>*/</script>';
53                        $res['editable'] = true;
54                }
55                else
56                        $res['redirect'] = $retour;
57        }
58        return $res;
59}
Note: See TracBrowser for help on using the repository browser.