source: spip-zone/_plugins_/a2a/branches/type/formulaires/ajoute_a2a.php @ 65443

Last change on this file since 65443 was 65443, checked in by maieul@…, 9 years ago

pouvoir lier plusieurs 2 articles dans les 2 sens

File size: 3.0 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5// chargement des valeurs par defaut des champs du formulaire
6function formulaires_ajoute_a2a_charger($id_article_orig,$id_article_dest){
7
8        return 
9                array(
10                        'id_article_orig' => $id_article_orig,
11                        'id_article_dest'=>$id_article_dest
12                );
13}
14
15function formulaires_ajoute_a2a_verifier($id_article_orig,$id_article_dest){
16        $nv_type_liaison=_request('type_liaison');
17        $types_liaions  =       array_keys(lister_types_liaisons());
18        if ($nv_type_liaison){
19                if (!in_array($nv_type_liaison,$types_liaions)){
20                        return array('message_erreur'=>_T('a2a:type_inexistant'));
21                }
22        }
23        elseif(lire_config('a2a/type_obligatoire')){
24                return array('message_erreur'=>_T('a2a:type_inexistant'));
25        }
26}
27
28function formulaires_ajoute_a2a_traiter($id_article_orig,$id_article_dest){
29        $lier  = _request('lier');
30        $lier2 = _request('lier2');     
31        if ($lier){
32                a2a_lier_article($id_article_dest,$id_article_orig,'',_request('type_liaison'));       
33        }
34        if ($lier2){
35                a2a_lier_article($id_article_dest,$id_article_orig,'both',_request('type_liaison'));           
36        }
37        return array("message_ok"=>"ok");
38}
39
40function a2a_lier_article($id_article_cible, $id_article_source, $type=null, $type_liaison=''){
41        include_spip('inc/config');
42        //on verifie que cet article n'est pas deja lie
43        if (
44               
45                !((!lire_config('a2a/types_differents')
46                and 
47                sql_countsel('spip_articles_lies', array(
48                'id_article=' . sql_quote($id_article_source),
49                'id_article_lie=' . sql_quote($id_article_cible)))
50                ))
51               
52                or 
53               
54                !((lire_config('a2a/types_differents')
55                and 
56                sql_countsel('spip_articles_lies', array(
57                'id_article=' . sql_quote($id_article_source),
58                'id_article_lie=' . sql_quote($id_article_cible),'type_Liaison='.sql_quote($type_liaison)))
59                ))
60                ){
61                       
62                        //on recupere le rang le plus haut pour definir celui de l'article a lier
63                        $rang = sql_getfetsel('MAX(rang)', 'spip_articles_lies', 'id_article='. sql_quote($id_article_source));
64                        //on ajoute le lien vers l'article
65               
66                        sql_insertq('spip_articles_lies', array(
67                                'id_article' => $id_article_source,
68                                'id_article_lie' => $id_article_cible,
69                                'rang' => ++$rang,
70                                'type_liaison' => $type_liaison,
71                                ));
72        }
73        if(
74        ($type == 'both') && !sql_countsel('spip_articles_lies', array(
75                'id_article=' . sql_quote($id_article_cible),
76                'id_article_lie=' . sql_quote($id_article_source))) 
77                or 
78                (($type == 'both') and !((lire_config('a2a/types_differents')
79                and 
80                sql_countsel('spip_articles_lies', array(
81                'id_article=' . sql_quote($id_article_cible),
82                'id_article_lie=' . sql_quote($id_article_source),'type_Liaison='.sql_quote($type_liaison))))
83                ))
84                ){
85                        //on recupere le rang le plus haut pour definir celui de l'article a lier
86                        $rang = sql_getfetsel('MAX(rang)', 'spip_articles_lies', 'id_article='. sql_quote($id_article_cible));
87                       
88                        //on ajoute le lien vers l'article
89                        sql_insertq('spip_articles_lies', array(
90                                'id_article' => $id_article_cible,
91                                'id_article_lie' => $id_article_source,
92                                'rang' => ++$rang,
93                                'type_liaison' => $type_liaison,
94                                ));
95        }
96       
97}
98
99
100?>
Note: See TracBrowser for help on using the repository browser.