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

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

Un peu de phpdoc

Faire fonctionner correctement l'écriture des tags

Faire attention, quand on souhaite uniquement récupérer les infos et non pas les enregistrer en base

Un lien de documentation, un lien de développement, on incrémente en 1.3.2

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