Changeset 40519 in spip-zone


Ignore:
Timestamp:
Sep 6, 2010, 1:52:37 PM (9 years ago)
Author:
kent1@…
Message:

A la modification d'un document en base (titre, descriptif, vignette), on peut modifier les id3 automatiquement.

Cela reste configurable via CFG et non activé par défaut

On met à jour la taille des fichiers à l'écriture des métas dans un fichier

Location:
_plugins_/getID3
Files:
4 added
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/getID3/formulaires/editer_id3.php

    r40512 r40519  
    4646                        }
    4747                }
    48                
    4948        }
    5049        return $valeurs;
  • _plugins_/getID3/getid3_pipelines.php

    r40512 r40519  
    1010        $id_document = $flux['args']['id'];
    1111        if(in_array($flux['args']['type'],array('case_document'))){
    12                 spip_log($flux['args']['type'],'id3');
    1312                $son = array("mp3","ogg","flac","aiff","aif","wav");
    1413                $sons_metas = array('mp3','ogg');
     
    3433function getid3_post_edition($flux){
    3534        $id_document = $flux['args']['id_objet'];
     35        $son_modif_id3 = array("mp3");
     36        $son_recup_id3 = array("mp3","ogg","flac","aiff","aif","wav");
     37        $conf_id3 = lire_config('getid3/reecriture_tags',array());
    3638        if($flux['args']['operation'] == 'ajouter_document'){
    37                 $son = array("mp3","ogg","flac","aiff","aif","wav");
    3839                $document = sql_fetsel("docs.id_document, docs.extension,docs.fichier,docs.mode,docs.distant, L.vu, L.objet, L.id_objet", "spip_documents AS docs INNER JOIN spip_documents_liens AS L ON L.id_document=docs.id_document","L.id_document=".sql_quote($id_document));
    3940                $extension = $document['extension'];
    40                 if(in_any($extension,$son)){
     41                if(in_any($extension,$son_recup_id3)){
    4142                        $recuperer_infos = charger_fonction('getid3_recuperer_infos','inc');
    4243                        $infos = $recuperer_infos($id_document);
     44                }
     45        }
     46        /**
     47         * Mise à jour des tags des mp3 si besoin
     48         */
     49        if($flux['args']['action'] == 'modifier'){
     50                $document = sql_fetsel("*", "spip_documents AS docs INNER JOIN spip_documents_liens AS L ON L.id_document=docs.id_document","L.id_document=".sql_quote($id_document));
     51                $extension = $document['extension'];
     52                if(in_any($extension,$son_modif_id3)){
     53                        $update = false;
     54                        foreach($flux['data'] as $key => $value){
     55                                if(in_array($key,$conf_id3))
     56                                        $update = true;
     57                        }
     58                        if(is_numeric($flux['data']['id_vignette'])){
     59                                $update = true;
     60                        }
     61                        if($update){
     62                                $files = null;
     63                               
     64                                /**
     65                                 * On récupère tout d'abord les anciens tags
     66                                 */     
     67                                include_spip('inc/documents');
     68                                $fichier = get_spip_doc($document['fichier']);
     69                                $recuperer_id3 = charger_fonction('recuperer_id3','inc');
     70                                $valeurs = $recuperer_id3($fichier);
     71                               
     72                                if(is_numeric($flux['data']['id_vignette'])){
     73                                        $files[] = get_spip_doc(sql_getfetsel('fichier','spip_documents','id_document='.intval($flux['data']['id_vignette'])));
     74                                }
     75                                foreach($valeurs as $valeur => $info){
     76                                        if(preg_match('/cover/',$valeur) && (count($files) == 0)){
     77                                                $files[] = $info;
     78                                        }else{
     79                                                $valeurs[$valeur] = filtrer_entites($info);
     80                                        }
     81                                }
     82                               
     83                                if(isset($flux['data']['titre']) && in_array('titre',$conf_id3))
     84                                        $valeurs['title'] = $flux['data']['titre'];
     85                                       
     86                                if(isset($flux['data']['descriptif']) && in_array('descriptif',$conf_id3))
     87                                        $valeurs['comment'] = $flux['data']['descriptif'];
     88                                       
     89                                /**
     90                                 * On écrit les tags
     91                                 */
     92                                $ecrire_id3 = charger_fonction('getid3_ecrire_infos','inc');
     93                                $err = $ecrire_id3($id_document,$valeurs,$files);
     94                        }
    4395                }
    4496        }
  • _plugins_/getID3/inc/getid3_ecrire_infos.php

    r40512 r40519  
    9898        }
    9999
     100        $taille = filesize($document_chemin);
     101        sql_updateq('spip_documents', array('taille'=>$taille),"id_document=".$id_document);   
     102
    100103        return $err;
    101104}
  • _plugins_/getID3/inc/recuperer_id3.php

    r40512 r40519  
    6464        }
    6565        if(!$info){
    66                 spip_log($id3,'id3');
    6766                return $id3;
    6867        }
  • _plugins_/getID3/lang/getid3_en.php

    r40512 r40519  
    5353        'label_cover' => 'Cover',
    5454        'label_genre' => 'Genre',
     55        'label_reecriture_tags' => 'Rewrite file tags after editing :',
     56        'label_reecriture_tags_descriptif' => 'the description of the document',
     57        'label_reecriture_tags_logo' => 'the logo of the document',
     58        'label_reecriture_tags_titre' => 'the title of the document',
    5559        'label_title' => 'Title',
    5660        'label_year' => 'Year',
     61        'legende_ecriture_tags' => 'Writing tags',
    5762        'lien_modifier_id3' => 'Edit the ID3 tags',
    5863       
     
    7984        'recuperer_infos' => 'Retrieve file informations',
    8085
     86        // T
     87        'titre_getid3' => 'GetID3',
     88
    8189        // V
    8290        'verifier_formulaire' => 'Verify the content of the form',
  • _plugins_/getID3/lang/getid3_fr.php

    r40512 r40519  
    5353        'label_cover' => 'Pochette',
    5454        'label_genre' => 'Genre',
     55        'label_reecriture_tags' => 'Réécrire les tags des fichiers &agrave la modification :',
     56        'label_reecriture_tags_descriptif' => 'de la description du document',
     57        'label_reecriture_tags_logo' => 'du logo du document',
     58        'label_reecriture_tags_titre' => 'du titre du document',
    5559        'label_title' => 'Titre',
    5660        'label_year' => 'Année',
     61        'legende_ecriture_tags' => 'Écriture des tags',
    5762        'lien_modifier_id3' => 'Modifier les tags ID3',
    5863
     
    7984        'recuperer_infos' => 'Récupérer les informations du fichier',
    8085
     86        // T
     87        'titre_getid3' => 'GetID3',
     88
    8189        // V
    8290        'verifier_formulaire' => 'Vérifiez le remplissage du formulaire.',
  • _plugins_/getID3/plugin.xml

    r40512 r40519  
    99        <licence>(c) 2008-2010 GPL</licence>
    1010        <version>
    11         0.4.0
     11        0.4.1
    1212        </version>
    1313        <version_base>
     
    5050        <install>base/getid3_upgrade.php</install>
    5151        <necessite id="SPIP" version='[2.0.0;]' />
     52        <utilise id="cfg" />
     53        <utilise id="gestdoc" />
    5254        <categorie>multimedia</categorie>
    5355</plugin>
Note: See TracChangeset for help on using the changeset viewer.