source: spip-zone/_plugins_/forms/forms_et_tables_2_5/exec/forms_telecharger.php @ 65963

Last change on this file since 65963 was 65963, checked in by sblanc@…, 9 years ago
File size: 4.9 KB
Line 
1<?php
2/*
3 * forms
4 * Gestion de formulaires editables dynamiques
5 *
6 * Auteurs :
7 * Antoine Pitrou
8 * Cedric Morin
9 * Renato
10 * © 2005,2006 - Distribue sous licence GNU/GPL
11 *
12 */
13
14
15include_spip('inc/forms');
16include_spip("inc/presentation");
17include_spip('inc/forms_tables_affichage');
18if (!include_spip('inc/autoriser'))
19        include_spip('inc/autoriser_compat');
20
21function acces_interdit() {
22        /*debut_page(_T('avis_acces_interdit'), "documents", "forms");*/
23        $commencer_page = charger_fonction("commencer_page", "inc") ; 
24        echo $commencer_page(_T('avis_acces_interdit'), "documents", "forms");
25        /*debut_gauche();*/
26        echo debut_gauche('', true);
27        /*debut_droite();*/
28        echo debut_droite('',true);
29        echo "<strong>"._T('avis_acces_interdit')."</strong>";
30        fin_page();
31        exit;
32}
33
34
35//
36// (Telechargement d'un fichier particulier)
37// function exec_forms_telecharger() :
38//              Fonction servant à affiche une liste déroulante des différents formats disponibles au téléchargement
39// (Le bouton 'Télécharger' éxécute l'action "action_forms_telecharger" du fichier "action/forms_telecharger.php"
40//
41//
42function exec_forms_telecharger(){
43        $id_donnee = _request('id_donnee');
44        $id_form = _request('id_form');
45        $champ = _request('champ');
46
47        if ($id_donnee = intval($id_donnee) AND $champ) {
48                $res = spip_query("SELECT id_form FROM spip_forms_donnees WHERE id_donnee="._q($id_donnee));
49                if ($row = spip_fetch_array($res))
50                        $id_form = $row['id_form'];
51                if (!$id_form || !autoriser('administrer','form',$id_form))
52                        acces_interdit();
53                $res = spip_query("SELECT * FROM spip_forms_champs WHERE id_form="._q($id_form)." AND type='fichier' AND champ="._q($champ));
54                if (!$row = spip_fetch_array($res))
55                        acces_interdit();
56                $row = spip_fetch_array(spip_query("SELECT valeur FROM spip_forms_donnees_champs WHERE id_donnee="._q($id_donnee)." AND champ="._q($champ)));
57                if (!$row)      acces_interdit();
58               
59                $fichier = $row['valeur'];
60                if ((strpos($fichier, "..")!==FALSE) || !preg_match(',^'._DIR_IMG.',', _DIR_RACINE.$fichier))
61                        acces_interdit();
62
63                $filename = basename($fichier);
64                $mimetype = "";
65                if (preg_match(',\.([^\.]+)$,', $fichier, $r)) {
66                        $ext = $r[1];
67                        $result = spip_query("SELECT * FROM spip_types_documents WHERE extension="._q($ext));
68                        if ($row = spip_fetch_array($result))
69                                $mimetype = $row['mime_type'];
70                }
71                if (!$mimetype) $mimetype = "application/octet-stream";
72                $chemin = "../".$fichier;
73                if (!is_file($chemin))
74                        acces_interdit();
75
76                Header("Content-Type: $mimetype");
77                Header("Content-Disposition: inline; filename=$filename");
78                Header("Content-Length :".filesize($chemin));
79                readfile($chemin);
80                exit;
81        }
82
83        $retour = _request('retour');
84        if ($retour!==NULL)
85                $retour = urldecode($retour);
86        else
87                $retour = generer_url_ecrire('forms_tous');
88       
89        $res = spip_query("SELECT type_form FROM spip_forms WHERE id_form="._q($id_form));
90        $row = spip_fetch_array($res);
91        $prefix = forms_prefixi18n($row['type_form']);
92        $titre = _T("$prefix:telecharger_reponses");
93
94        $icone = _DIR_PLUGIN_FORMS."img_pack/donnees-24.png";
95       
96        /*debut_page($titre, "documents", "forms");*/
97        $commencer_page = charger_fonction("commencer_page", "inc") ; 
98        echo $commencer_page($titre, "documents", "forms") ;
99        /*debut_gauche();*/
100        echo debut_gauche('', true);
101
102        echo "<br /><br />\n";
103        /*debut_droite();*/
104        echo debut_droite('',true);
105
106        debut_cadre_relief($icone);
107        //gros_titre($titre);
108        echo gros_titre($titre,'',false);
109        echo "<br />\n";
110        echo _T("forms:format_fichier");
111        echo "<br />\n";
112       
113        // Extrait de la table en commencant par les dernieres maj
114        $action = generer_action_auteur("forms_telecharger","$id_form",urlencode($retour));
115        $action = parametre_url($action,'var_mode','download'); // hack pour desactiver la compression gzip par buffer qui corromp le zip
116       
117        echo "<form action='$action' method='POST'>";
118        echo form_hidden($action);
119       
120        // Liste des formats de CSV disponibles au téléchargement :
121        echo "<select name='delim'>\n";
122       
123        echo "<option value=','>"._T("forms:csv_classique")."</option>\n";
124        echo "<option value=';'>"._T("forms:csv_excel")."</option>\n";
125        echo "<option value='TAB'>"._T("forms:csv_tab")."</option>\n";
126        // Ajout d'un nouveau format de téléchargement spécialement pour "CSV_Import"
127        echo "<option value='Import_CSV'>" . _T("forms:csv_import_csv") . "</option>\n"; 
128       
129        echo "</select>";
130       
131        echo "<br /><br />\n";
132        echo "<input type='submit' name='ok' value='"._T("forms:telecharger")."' />\n";
133
134        fin_cadre_relief();
135       
136        //
137        // Icones retour
138        //
139        if ($retour) {
140                echo "<br />\n";
141                echo "<div align='$spip_lang_right'>";
142                $contexteBT = array(
143                        'style'=>'verticale ',
144                        'titre'=>_T('icone_retour'),
145                        'url_destination'=>'donnees_tous',
146                        'url_parametres'=>"id_form=$id_form&retour=./?exec=forms_tous",
147                        'icon_base'=>'donnees-24.png',
148                        'icon_action'=>'rien.gif'
149                );
150                echo recuperer_fond("fonds/bouton_cree",$contexteBT);
151                // echo icone(_T('icone_retour'), $retour, $icone, "rien.gif");
152                echo "</div>\n";
153        }
154        if ($GLOBALS['spip_version_code']>=1.9203)
155                echo fin_gauche();
156        echo fin_page();
157
158}
159?>
Note: See TracBrowser for help on using the repository browser.