source: spip-zone/_plugins_/askwiki/trunk/formulaires/lots_askwiki.php @ 119770

Last change on this file since 119770 was 119770, checked in by toutati@…, 11 months ago

Attention, DEV en cours

Pour le moment :

  • ne fonctionne qu'avec CURL
  • Ne fonctionne que sur un objet, soit contact du plugin Contacts & Organisations

Il faut ajouter les champs sur la table spip_contacts, avec par exmple le plugin cextras

  • date_naissance
  • date_deces
  • page_wikipedia
  • phrase_wikipedia

Todo -> installer une librairie WP

  • Property svn:executable set to *
File size: 5.1 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6include_spip('inc/config');
7
8function formulaires_lots_askwiki_charger($retour = ''){
9       
10        //url WP
11        $url_wikipedia = which_wikipedia('wiki');
12       
13        //nawak pas utile amha ?
14        $contexte['id_contact'] = _request('id_contact');
15        $contexte['contact'] = _request('contact');
16    $contexte['nblimite'] = _request('nblimite');
17   
18    $contexte['recherche'] = _request('recherche');
19    $contexte['lettre'] = _request('lettre');
20    $contexte['debut_liste_contacts'] = _request('debut_liste_contacts');
21   // $contexte['redirect'] = $retour;
22   
23    //previsu
24    //todo ne pas refaire le test, et reprendre ce tableau pour enregistrer
25    if ($id_contact = intval(_request('askwiki_contact'))){
26
27        $contexte['id_contact'] = $id_contact;
28       
29        $page_wikipedia = titre_page_wiki($id_contact,'contact');
30                $phrase_wikipedia = askwiki_first_line($page_wikipedia);
31                $naissance = askwiki_datelife($page_wikipedia,0);
32                $deces = askwiki_datelife($page_wikipedia,1);
33               
34                if(!$phrase_wikipedia){ 
35                        $contexte['page_wikipedia'.$id_contact] = "La page $url_wikipedia".''."$page_wikipedia n'existe pas."; 
36                }
37                else{
38                        $page_wiki = "$url_wikipedia".''."$page_wikipedia"; 
39                        $contexte['page_wikipedia'.$id_contact] = supprimer_tags($page_wiki);
40                        $contexte['phrase_wikipedia'.$id_contact] = supprimer_tags($phrase_wikipedia);
41                }
42                $contexte['naissance'.$id_contact] = $naissance;
43                if($deces){
44                        $contexte['deces'.$id_contact] = $deces;
45                }
46                $contexte['td_plus'.$id_contact] = true;
47               
48                //if($retour){
49                        //$contexte['redirect'] = $retour.$id_contact;
50                //}
51    }
52        //spip_log("retour charger".$contexte['redirect'],'test_retour');
53        return $contexte;
54}
55
56function formulaires_lots_askwiki_verifier($retour = ''){
57        $erreurs = array();
58       
59        // Si c'est un test sur un seul contact
60        if ($id_contact = intval(_request('enregistrer_askwiki'))){
61                //$erreurs['contacts'] = $retour;
62        }
63       
64        if (!_request('askwiki_contact') and !_request('contacts')){
65                #$erreurs['contacts'] = _T('lots_askwiki:erreur_aucun_contact');
66        }
67       
68        return $erreurs;
69}
70
71function formulaires_lots_askwiki_traiter($retour = ''){
72        // On revient toujours en éditable
73        $retours = array('editable' => true);
74        /*
75        if($retour){
76                $retours['redirect'] = $retour;
77                spip_log("retour traiter $retour",'test_retour');
78        }
79        */
80       
81       
82        // enregistrer sur un seul contact
83        $objet = 'contact';
84        if ($id_objet = intval(_request('enregistrer_askwiki'))){
85               
86                include_spip('action/editer_objet');
87               
88                $url_wikipedia = which_wikipedia('wiki');
89        $page_wikipedia = titre_page_wiki($id_objet,$objet);
90                $phrase_wikipedia = askwiki_first_line($page_wikipedia);
91                $naissance = askwiki_datelife($page_wikipedia,0);
92                $deces = askwiki_datelife($page_wikipedia,1);
93               
94                if($phrase_wikipedia){
95                       
96                                $set['page_wikipedia'] = $url_wikipedia.''.$page_wikipedia;
97                                $set['phrase_wikipedia'] = supprimer_tags($phrase_wikipedia);
98                               
99                                if($naissance){
100                                        $set['date_naissance'] = $naissance;
101                                }
102                                if($deces){
103                                        $set['date_deces'] = $deces;
104                                }
105                                objet_modifier($objet, $id_objet, $set);
106                } else {
107                        $set['page_wikipedia'] = "-";
108                        objet_modifier($objet, $id_objet, $set);
109                }
110                $retours['message_ok'] = _T('lots_askwiki:objet_modifie');
111                $retours['redirect'] = $retour;
112        }
113               
114        //si c'est sur l'ensemble coché
115        //todo
116       
117        return $retours;
118}
119
120
121//non utilise ici
122function traiter_inviter_contacts($contacts){
123        $contacts = array_map('intval',$contacts);
124        // On envoie pas à n'importe qui, on filtre ceux qui peuvent être invités
125        $contacts = sql_allfetsel(
126                'id_contact',
127                'spip_contacts',
128                array(
129                        sql_in('id_contact', $contacts),
130                        sql_in('statut', array('contact', 'sans_nouvelles'))
131                )
132        );
133        $contacts = array_map('reset', $contacts);
134
135        // S'il en reste dans la liste
136        if ($contacts){
137                $nombre = 0;
138                $ok = true;
139                       
140                // L'éventuel message perso
141                $message = _request('message');
142                foreach ($contacts as $id_contact){
143                        // On programme l'invitation au plus tôt
144                        $id_job = job_queue_add('inviter_contact', "Inviter le contact $id_contact", array($id_contact, $message), 'action/', true);
145                        // Si c'est bon
146                        if ($id_job){
147                                // On lie l'invitation au contact
148                                job_queue_link($id_job, array('objet'=>'contact', 'id_objet'=>$id_contact));
149                                // On change le statut
150                                sql_updateq(
151                                        'spip_contacts',
152                                        array(
153                                                'statut' => 'en_cours'
154                                        ),
155                                        'id_contact = '.$id_contact
156                                );
157                                // On incrémente le nombre d'invitation envoyée
158                                $nombre+=1;
159                        }
160                        // Si c'est pas bon
161                        else{
162                                $ok = false;
163                        }
164                }
165
166                // Si au moins un message a bien été envoyé on le dit
167                if ($nombre)
168                        $retours['message_ok'] = $nombre > 1 ? _T('lots_askwiki:lots_askwiki_message_ok_pluriel', array('nombre'=>$nombre)) : _T('lots_askwiki:lots_askwiki_message_ok_singulier');
169                // Si au moins un message a merdé on le dit
170                if (!$ok)
171                        $retours['message_erreur'] = _T('lots_askwiki:lots_askwiki_message_erreur');
172        }
173        // Si on invite personne dans la sélection
174        else{
175                if (count($contacts)>1)
176                        $retours['message_ok'] = _T('lots_askwiki:lots_askwiki_message_aucun');
177                else
178                        $retours['message_ok'] = _T('lots_askwiki:lots_askwiki_message_aucun_1');
179        }
180        return $retours;
181}
182?>
Note: See TracBrowser for help on using the repository browser.