source: spip-zone/_plugins_/getID3/formulaires/editer_id3.php @ 55593

Last change on this file since 55593 was 55593, checked in by kent1@…, 8 years ago

Des trucs qui dataient

File size: 3.0 KB
Line 
1<?php
2/**
3 * Plugin GetID3
4 * (c) 2008-2010 BoOz et kent1
5 * Distribue sous licence GPL
6 * Formulaire d'édition des tags ID3 d'un fichier sonore
7 */
8
9
10/**
11 * Chargement des donnees du formulaire
12 *
13 * @param int $id l'id du document
14 * @return array
15 */
16function formulaires_editer_id3_charger($id){
17        $valeurs = array();
18        $config_id3 = lire_config('getid3',array());
19        $infos_doc = sql_fetsel('*','spip_documents','id_document='.intval($id));
20       
21        if(!in_array($infos_doc['extension'],lire_config('getid3_write',array('mp3')))){
22                $valeurs['message_erreur'] = _T('getid3:message_extension_invalide_ecriture');
23        }else if($infos_doc['distant'] == 'oui'){
24                $valeurs['message_erreur'] = _T('getid3:message_erreur_document_distant_ecriture');
25        }
26        if(isset($valeurs['message_erreur'])){
27                $valeurs['editable'] = false;
28        }else{
29                /**
30                 * Récupération des tags habituels:
31                 * - title
32                 * - artist
33                 * - group
34                 * - year
35                 * - album
36                 */
37                include_spip('inc/documents');
38                $fichier = get_spip_doc($infos_doc['fichier']);
39                $recuperer_id3 = charger_fonction('recuperer_id3','inc');
40                $valeurs = $recuperer_id3($fichier);
41                foreach($valeurs as $valeur => $info){
42                        if(preg_match('/cover/',$valeur)){
43                                $valeurs['covers'][] = $info;
44                                $valeurs['_hidden'] .= "<input type='hidden' name='old_cover' id='old_cover' value='$info' />"; 
45                        }else{
46                                $valeurs[$valeur] = filtrer_entites($info);
47                        }
48                }
49                if(!count($valeurs['covers']) && (strlen($config_id3['cover_defaut']) > 0)){
50                        $valeurs['covers'][] = $config_id3['cover_defaut'];
51                        $valeurs['_hidden'] .= "<input type='hidden' name='old_cover' id='old_cover' value='".$config_id3['cover_defaut']."' />";
52                        $valeurs['message_cover_defaut'] = _T('getid3:message_valider_cover_defaut');
53                }
54                $valeurs['id_document'] = $id;
55        }
56        return $valeurs;
57}
58
59/**
60 * Traitement du formulaire
61 *
62 * @param int $id
63 * @return array
64 */
65function formulaires_editer_id3_traiter($id){
66        $valeurs = array();
67       
68        $infos = array('title','artist','album','year','genre','comment');
69        foreach($infos as $info){
70                $valeurs[$info] = _request($info);
71        }
72
73        $post = isset($_FILES) ? $_FILES : $GLOBALS['HTTP_POST_FILES'];
74        $files = null;
75        if (is_array($post)){
76                if (!($post['cover']['error'] == 4) && in_array($post['cover']['type'],array('image/png','image/jpeg','image/gif'))){
77                        include_spip('inc/getdocument');
78                        $dest = _DIR_TMP.$post['cover']['name'];
79                        deplacer_fichier_upload($post['cover']['tmp_name'],$dest);
80                        $files[] = $dest;
81                }elseif(_request('old_cover')){
82                        $files[] = _request('old_cover');
83                }
84        }
85
86        $ecrire_id3 = charger_fonction('getid3_ecrire_infos','inc');
87        $err = $ecrire_id3($id,$valeurs,$files);
88        spip_log($err,'getid3');
89        if(is_array($files)){
90                foreach($files as $file){
91                        supprimer_fichier($file);
92                }
93        }
94        if(_request('redirect')){
95                $redirect = parametre_url(urldecode(_request('redirect')),
96                        'id_document', $id, '&');
97                       
98                include_spip('inc/headers');
99                redirige_par_entete($redirect);
100        }
101        return array('message_ok'=>_T('getid3:message_fichier_maj'),'editable'=>true);
102}
Note: See TracBrowser for help on using the repository browser.