[42026] | 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 | |
---|
[42208] | 12 | |
---|
[42026] | 13 | function formulaires_ajouter_boussole_verifier_dist(){ |
---|
| 14 | $erreurs = array(); |
---|
| 15 | $mode = _request('mode'); |
---|
| 16 | |
---|
| 17 | if ($mode == 'url_perso') { |
---|
[42208] | 18 | // Pour le mode perso uniquement on verifie que le fichier a bien ete saisi |
---|
[42026] | 19 | $url = _request('url_boussole'); |
---|
[42208] | 20 | if (!$url) |
---|
[42026] | 21 | // L'url est obligatoire |
---|
| 22 | $erreurs['url_boussole'] = _T('boussole:message_nok_champ_obligatoire'); |
---|
| 23 | } |
---|
[42208] | 24 | |
---|
[42026] | 25 | return $erreurs; |
---|
| 26 | } |
---|
| 27 | |
---|
[42208] | 28 | |
---|
[42026] | 29 | function formulaires_ajouter_boussole_traiter_dist(){ |
---|
| 30 | $retour = array(); |
---|
| 31 | $mode = _request('mode'); |
---|
[42208] | 32 | $xml = _request('url_boussole'); |
---|
[42026] | 33 | |
---|
[42208] | 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 | } |
---|
[42026] | 39 | else { |
---|
[42208] | 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)); |
---|
[42210] | 43 | spip_log("ERREUR DTD" . var_export($erreur['detail'], true), 'boussole'); |
---|
[42208] | 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 |
---|
[42211] | 52 | if (!$ok) { |
---|
[42208] | 53 | $retour['message_erreur'] = $erreur; |
---|
[42210] | 54 | spip_log("ERREUR AJOUT", 'boussole'); |
---|
[42211] | 55 | } |
---|
[42208] | 56 | else { |
---|
| 57 | $retour['message_ok'] = _T('boussole:message_ok_boussole_ajoutee', array('fichier' => $url)); |
---|
| 58 | spip_log("ACTION AJOUTER BOUSSOLE : url = ". $url, 'boussole'); |
---|
| 59 | } |
---|
| 60 | } |
---|
[42026] | 61 | } |
---|
| 62 | $retour['editable'] = true; |
---|
| 63 | |
---|
| 64 | return $retour; |
---|
| 65 | } |
---|
| 66 | ?> |
---|