source: spip-zone/_core_/plugins/svp/formulaires/ajouter_depot.php @ 57482

Last change on this file since 57482 was 57482, checked in by marcimat@…, 8 years ago
  • ne pas modifier le vmax pour les paquets locaux (eric)
  • ne pas télécharger 2 fois le xml complet de l'archive. 1 seule fois suffira.
  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5
6function formulaires_ajouter_depot_charger_dist(){
7        // On ne renvoie pas les valeurs saisies mais on fait un raz systematique
8        return array();
9}
10
11function formulaires_ajouter_depot_verifier_dist(){
12       
13        $erreurs = array();
14        $xml = trim(_request('xml_paquets'));
15
16        if (!$xml) {
17                // L'url est obligatoire
18                $erreurs['xml_paquets'] = _T('svp:message_nok_champ_obligatoire');
19        }
20        elseif (!svp_verifier_adresse_depot($xml)) {
21                // L'url n'est pas correcte, le fichier xml n'a pas ete trouve
22                $erreurs['xml_paquets'] = _T('svp:message_nok_url_depot_incorrecte', array('url' => $xml));
23        }
24        elseif (sql_countsel('spip_depots','xml_paquets='.sql_quote($xml))) {
25                // L'url est deja ajoutee
26                $erreurs['xml_paquets'] = _T('svp:message_nok_depot_deja_ajoute', array('url' => $xml));
27        }
28        return $erreurs;
29}
30
31function formulaires_ajouter_depot_traiter_dist(){
32        include_spip('inc/svp_depoter_distant');
33
34        $retour = array();
35        $xml = trim(_request('xml_paquets'));
36
37        // On ajoute le depot et ses plugins dans la base
38        // On traite le cas d'erreur fichier ($retour['message_erreur']) non conforme
39        // - si la syntaxe xml est incorrecte
40        // - ou si le depot ne possede pas au moins un plugin
41        $ok = svp_ajouter_depot($xml, $erreur);
42
43        // Determination des messages de retour
44        if (!$ok)
45                $retour['message_erreur'] = $erreur;
46        else {
47                $retour['message_ok'] = _T('svp:message_ok_depot_ajoute', array('url' => $xml));
48                spip_log("ACTION AJOUTER DEPOT (manuel) : url = ". $xml, 'svp_actions.' . _LOG_INFO);
49        }
50        $retour['editable'] = true;
51
52        return $retour;
53}
54
55
56/**
57 * Teste la validite d'une url d'un depot de paquets
58 *
59 * @param string $url
60 * @return boolean
61 */
62
63// $url => url du fichier xml de description du depot
64function svp_verifier_adresse_depot($url){
65        include_spip('inc/distant');
66        // evitons de recuperer 2 fois le XML demandé.
67        // si on le recupere ici, il sera deja a jour pour le prochain copie_locale
68        // lors du traitement.
69        return (copie_locale($url) ? true : false);
70        #return (!$xml = recuperer_page($url)) ? false : true;
71}
72
73?>
Note: See TracBrowser for help on using the repository browser.