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

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

Premier tour de compatibilité SPIP 3.0 :

-* paquet.xml et ses fichiers de langue
-* getid3_administrations
-* on met à jour les entêtes de fichier PHP

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