Changeset 63253 in spip-zone for _plugins_/getID3


Ignore:
Timestamp:
Jul 3, 2012, 9:55:45 PM (7 years ago)
Author:
kent1@…
Message:

Ce plugin nécessite medias de toute manière (même s'il est fournit dans SPIP 3.0)

On ne passe plus par post_edition pour récupérer les infos d'un document mais par les fonctions de metadata/ appelées par inc/renseigner_document dans le plugin medias

Du coup l'ancienne fonction de récupération des metas fonctionne de deux manières soit on lui donne un id_document, soit un fichier à analyser

version 1.1.4

Location:
_plugins_/getID3/trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/getID3/trunk/getid3_pipelines.php

    r63130 r63253  
    2525                        $id_document = $flux['args']['id_objet'];
    2626                        $son_modif_id3 = array("mp3,ogg,oga,flac");
    27                         $son_recup_id3 = array("mp3","ogg","flac","aiff","aif","wav","m4a","oga");
    2827                        $extensions_vignettes = array("png","gif","jpg");
    2928                        $conf_id3 = lire_config('getid3/reecriture_tags',array());
    3029                        $document = sql_fetsel("*", "spip_documents","id_document=".sql_quote($id_document));
    31                         $extension = $document['extension'];
     30                        $mode = $document['mode'];
    3231                        if($flux['args']['operation'] == 'ajouter_document'){
    3332                                $getid3_done = true;
    34                                 /**
    35                                  * Récupération automatique des infos des fichiers sons à leur insertion
    36                                  */
    37                                 if(in_any($extension,$son_recup_id3)){
    38                                         $recuperer_infos = charger_fonction('getid3_recuperer_infos','inc');
    39                                         $infos = $recuperer_infos($id_document);
    40                                 }
    4133                                /**
    4234                                 * L'ajout est une vignette
    4335                                 * Insertion de la vignette automatiquement dans le mp3 si changement
    4436                                 */
    45                                 else if(in_any($extension,$extensions_vignettes)
     37                                if(
     38                                        $mode == 'vignette'
    4639                                        && ($document_orig = sql_fetsel('*','spip_documents','id_vignette='.intval($id_document)))
    4740                                        && ($document_orig['distant'] != 'oui')
  • _plugins_/getID3/trunk/inc/getid3_recuperer_infos.php

    r63130 r63253  
    1313
    1414/**
    15  * Enregistrement en base le contenu des données des tags et des données audio
     15 * Récupération des informations d'un document ou d'un fichier audio
     16 * Si on a un id_document (en premier argument) on enregistre en base dans cette fonction
     17 * Si on a seulement un chemin de fichier (en second argument), on retourne un tableau des metas
    1618 *
    17  * @param int $id_document
     19 * @param int/null $id_document : id_document duquel on doit récupérer les infos
     20 * @param string/false $fichier : chemin du fichier duquel on doit récupérer les infos
    1821 */
    1922
    20 function inc_getid3_recuperer_infos($id_document){
    21         if(!intval($id_document)){
    22                 return;
    23         }
    24        
    25         include_spip('action/editer_document');
    26         include_spip('inc/documents');
    27         include_spip('inc/filtres');
    28         $document = sql_fetsel("*", "spip_documents","id_document=".intval($id_document));
    29         $son_chemin = get_spip_doc($document['fichier']);
    30 
     23function inc_getid3_recuperer_infos($id_document=null,$fichier=false){
     24        if(!intval($id_document) && !$fichier){
     25                return false;
     26        }
     27       
     28        /**
     29         * Récupérer le fichier si on part d'un id_document
     30         */
     31        $document = array();
     32       
     33        if(intval($id_document)){
     34                include_spip('action/editer_document');
     35                include_spip('inc/documents');
     36                include_spip('inc/filtres');
     37                $document = sql_fetsel("*", "spip_documents","id_document=".intval($id_document));
     38                $son_chemin = get_spip_doc($document['fichier']);
     39                if(!file_exists($son_chemin))
     40                        return false;
     41        }else{
     42                $son_chemin = $fichier;
     43        }
     44       
     45        /**
     46         * Récupération des metas du fichier
     47         */
    3148        $recuperer_id3 = charger_fonction('recuperer_id3','inc');
    3249        $id3 = $recuperer_id3($son_chemin);
     
    3855         * -* descriptif
    3956         */
    40         if(($document['titre'] == '') && isset($id3['title'])){
     57        if((!isset($document['titre']) OR ($document['titre'] == '')) && isset($id3['title'])){
    4158                $document['titre'] = preg_replace('/_/',' ',utf8_encode($id3['title']));
    4259        }
    4360        if($document['titre'] == ''){
    44                 $titre = strtolower(array_shift(explode('.',basename($document['fichier']))));
     61                $titre = strtolower(array_shift(explode('.',basename($son_chemin))));
    4562                $titre = utf8_encode($titre);
    4663                $document['titre'] = preg_replace('/_/',' ',$titre);
    4764        }
    4865
    49         if($document['descriptif'] == ''){
     66        if(!isset($document['descriptif']) OR ($document['descriptif'] == '')){
    5067                /**
    5168                 * Ne pas prendre les comments foireux d'itunes
     
    7794        $covers = array();
    7895        foreach($id3 as $key=>$val){
    79                 if(preg_match('/cover/',$key)){
     96                if(preg_match('/cover/',$key))
    8097                        $covers[] = $val;
    81                 }
    8298        }
    8399       
    84100        $credits = $id3['copyright_message']?$id3['copyright_message']:$id3['copyright'];
    85101       
    86         if($credits != '')
     102        if(!isset($document['credits']) OR ($document['credits'] == '') && ($credits != ''))
    87103                $credits = filtrer_entites(utf8_encode($credits));
    88104       
     
    138154        }
    139155       
    140         if(count($covers) > 0){
    141                 $id_vignette = sql_getfetsel('id_vignette','spip_documents','id_document='.intval($id_document));
     156        if((count($covers) > 0)){
     157                if(intval($id_document))
     158                        $id_vignette = sql_getfetsel('id_vignette','spip_documents','id_document='.intval($id_document));
     159                else
     160                        $id_vignette = 0;
    142161
    143162                if(($id_vignette == 0)){
     
    160179                 * comme cover du fichier
    161180                 */
    162                 $id_vignette = sql_getfetsel('id_vignette','spip_documents','id_document='.intval($id_document));
     181                if(intval($id_document))
     182                        $id_vignette = sql_getfetsel('id_vignette','spip_documents','id_document='.intval($id_document));
     183                else
     184                        $id_vignette = 0;
    163185       
    164186                if(($id_vignette == 0)){
     
    179201        }
    180202       
    181         document_modifier($id_document,$valeurs);
    182 
    183         return $id3;
     203        if(intval($id_document))
     204                document_modifier($id_document,$valeurs);
     205       
     206        return $valeurs;
    184207}
    185208?>
  • _plugins_/getID3/trunk/paquet.xml

    r63225 r63253  
    22        prefix="getid3"
    33        categorie="multimedia"
    4         version="1.1.3"
     4        version="1.1.4"
    55        etat="stable"
    66        compatibilite="[3.0.2;3.0.99]"
     
    2626        <pipeline nom="taches_generales_cron" inclure="getid3_pipelines.php" />
    2727       
     28        <necessite nom="medias" compatibilite="[2.7.30;[" />
    2829        <utilise nom="licence" />
    2930</paquet>
Note: See TracChangeset for help on using the changeset viewer.