1 | <?php |
---|
2 | |
---|
3 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
4 | |
---|
5 | // chargement des valeurs par defaut des champs du formulaire |
---|
6 | function 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 | |
---|
15 | function 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 | |
---|
28 | function 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 | |
---|
40 | function 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(($type == 'both') && !sql_countsel('spip_articles_lies', array( |
---|
74 | 'id_article=' . sql_quote($id_article_cible), |
---|
75 | 'id_article_lie=' . sql_quote($id_article_source)))){ |
---|
76 | //on recupere le rang le plus haut pour definir celui de l'article a lier |
---|
77 | $rang = sql_getfetsel('MAX(rang)', 'spip_articles_lies', 'id_article='. sql_quote($id_article_cible)); |
---|
78 | //on ajoute le lien vers l'article |
---|
79 | sql_insertq('spip_articles_lies', array( |
---|
80 | 'id_article' => $id_article_cible, |
---|
81 | 'id_article_lie' => $id_article_source, |
---|
82 | 'rang' => ++$rang, |
---|
83 | 'type_liaison' => $type_liaison, |
---|
84 | )); |
---|
85 | } |
---|
86 | |
---|
87 | } |
---|
88 | |
---|
89 | |
---|
90 | ?> |
---|