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

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

PHPdoc

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