1 | <?php |
---|
2 | |
---|
3 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
4 | |
---|
5 | include_spip('inc/deboussoler'); |
---|
6 | |
---|
7 | function formulaires_ajouter_boussole_charger_dist(){ |
---|
8 | return array('mode' => _request('mode'), |
---|
9 | 'url_boussole' => _request('url_boussole')); |
---|
10 | } |
---|
11 | |
---|
12 | |
---|
13 | function formulaires_ajouter_boussole_verifier_dist(){ |
---|
14 | $erreurs = array(); |
---|
15 | $mode = _request('mode'); |
---|
16 | |
---|
17 | if ($mode == 'url_perso') { |
---|
18 | // Pour le mode perso uniquement on verifie que le fichier a bien ete saisi |
---|
19 | $url = _request('url_boussole'); |
---|
20 | if (!$url) |
---|
21 | // L'url est obligatoire |
---|
22 | $erreurs['url_boussole'] = _T('boussole:message_nok_champ_obligatoire'); |
---|
23 | } |
---|
24 | |
---|
25 | return $erreurs; |
---|
26 | } |
---|
27 | |
---|
28 | |
---|
29 | function formulaires_ajouter_boussole_traiter_dist(){ |
---|
30 | $retour = array(); |
---|
31 | $mode = _request('mode'); |
---|
32 | $xml = _request('url_boussole'); |
---|
33 | |
---|
34 | // On fait des verifications dans traiter pour renvoyer les resultats dans le message d'erreur global |
---|
35 | if (!$url = boussole_localiser_xml($xml, $mode)) { |
---|
36 | // Le fichier est introuvable |
---|
37 | $retour['message_erreur'] = _T('boussole:message_nok_xml_introuvable', array('fichier' => $xml)); |
---|
38 | } |
---|
39 | else { |
---|
40 | if (!boussole_valider_xml($url, $erreur)) { |
---|
41 | // Le fichier ne suit pas la DTD (boussole.dtd) |
---|
42 | $retour['message_erreur'] = _T('boussole:message_nok_xml_invalide', array('fichier' => $url)); |
---|
43 | spip_log("ERREUR DTD" . var_export($erreur['detail'], true), 'boussole'); |
---|
44 | } |
---|
45 | else { |
---|
46 | // On insere la boussole dans la base |
---|
47 | // et on traite le cas d'erreur fichier ($retour['message_erreur']) non conforme |
---|
48 | // si c'est encore possible apres avoir valide le fichier avec la dtd |
---|
49 | $ok = boussole_ajouter($url, $erreur); |
---|
50 | |
---|
51 | // Determination des messages de retour |
---|
52 | if (!$ok) |
---|
53 | $retour['message_erreur'] = $erreur; |
---|
54 | spip_log("ERREUR AJOUT", 'boussole'); |
---|
55 | else { |
---|
56 | $retour['message_ok'] = _T('boussole:message_ok_boussole_ajoutee', array('fichier' => $url)); |
---|
57 | spip_log("ACTION AJOUTER BOUSSOLE : url = ". $url, 'boussole'); |
---|
58 | } |
---|
59 | } |
---|
60 | } |
---|
61 | $retour['editable'] = true; |
---|
62 | |
---|
63 | return $retour; |
---|
64 | } |
---|
65 | ?> |
---|