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

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

Une chaine de langue manquante

Moins de logs

De simples quotas au lieu de doubles, il parait que c'est plus rapide

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