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

Last change on this file since 64676 was 64676, checked in by marcimat@…, 7 years ago

Du PHP Doc sur une partie de SVP

  • Property svn:eol-style set to native
File size: 2.8 KB
Line 
1<?php
2
3/**
4 * Gestion du formulaire d'ajout de dépot
5 *
6 * @plugin SVP pour SPIP
7 * @license GPL
8 * @package Plugins\SVP\Formulaires
9 */
10 
11if (!defined("_ECRIRE_INC_VERSION")) return;
12
13/**
14 * Chargement du formulaire d'ajout de dépot
15 *
16 * @return array
17 *     Environnement du formulaire
18**/
19function formulaires_ajouter_depot_charger_dist(){
20        // On ne renvoie pas les valeurs saisies mais on fait un raz systematique
21        return array();
22}
23
24/**
25 * Vérifications du formulaire d'ajout de dépot
26 *
27 * Vérifie qu'une adresse valide est soumise et que ce dépot n'a pas
28 * déjà été créé.
29 *
30 * @return array
31 *     Tableau des erreurs
32**/
33function formulaires_ajouter_depot_verifier_dist(){
34       
35        $erreurs = array();
36        $xml = trim(_request('xml_paquets'));
37
38        if (!$xml) {
39                // L'url est obligatoire
40                $erreurs['xml_paquets'] = _T('svp:message_nok_champ_obligatoire');
41        }
42        elseif (!svp_verifier_adresse_depot($xml)) {
43                // L'url n'est pas correcte, le fichier xml n'a pas ete trouve
44                $erreurs['xml_paquets'] = _T('svp:message_nok_url_depot_incorrecte', array('url' => $xml));
45        }
46        elseif (sql_countsel('spip_depots','xml_paquets='.sql_quote($xml))) {
47                // L'url est deja ajoutee
48                $erreurs['xml_paquets'] = _T('svp:message_nok_depot_deja_ajoute', array('url' => $xml));
49        }
50        return $erreurs;
51}
52
53/**
54 * Traitement du formulaire d'ajout de dépot
55 *
56 * Ajoute le dépot.
57 * Retourne une éventuelle erreur si le dépot a un XML mal formé
58 * ou s'il n'a aucun plugin.
59 *
60 * @return array
61 *     Retours du traitement
62**/
63function formulaires_ajouter_depot_traiter_dist(){
64        include_spip('inc/svp_depoter_distant');
65
66        $retour = array();
67        $xml = trim(_request('xml_paquets'));
68
69        // On ajoute le depot et ses plugins dans la base
70        // On traite le cas d'erreur fichier ($retour['message_erreur']) non conforme
71        // - si la syntaxe xml est incorrecte
72        // - ou si le depot ne possede pas au moins un plugin
73        $ok = svp_ajouter_depot($xml, $erreur);
74
75        // Determination des messages de retour
76        if (!$ok)
77                $retour['message_erreur'] = $erreur;
78        else {
79                $retour['message_ok'] = _T('svp:message_ok_depot_ajoute', array('url' => $xml));
80                spip_log("ACTION AJOUTER DEPOT (manuel) : url = ". $xml, 'svp_actions.' . _LOG_INFO);
81        }
82        $retour['editable'] = true;
83
84        return $retour;
85}
86
87
88/**
89 * Teste la validité d'une URL d'un dépot de paquets
90 *
91 * Pour cela on tente de rapatrier le fichier distant
92 * en local. Si on réussi, c'est bon.
93 *
94 * @param string $url
95 *     URL du fichier xml de description du depot
96 * @return bool
97 *     Le dépot est-il valide ?
98 */
99function svp_verifier_adresse_depot($url){
100        include_spip('inc/distant');
101        // evitons de recuperer 2 fois le XML demandé.
102        // si on le recupere ici, il sera deja a jour pour le prochain copie_locale
103        // lors du traitement.
104        return (copie_locale($url) ? true : false);
105        #return (!$xml = recuperer_page($url)) ? false : true;
106}
107
108?>
Note: See TracBrowser for help on using the repository browser.