Changeset 97001 in spip-zone


Ignore:
Timestamp:
May 6, 2016, 10:41:06 AM (4 years ago)
Author:
kent1@…
Message:

PSR SPIP

Location:
_plugins_/epub_reader/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/epub_reader/trunk/epubreader_fonctions.php

    r73125 r97001  
    99 *
    1010 * Fichier de fonctions du plugin
    11  * 
     11 *
    1212 */
    1313
    14 if (!defined("_ECRIRE_INC_VERSION")) return;
     14if (!defined('_ECRIRE_INC_VERSION')) {
     15        return;
     16}
    1517
    1618/**
    1719 * Créer le js qui sera utilisé par monocle
    18  * 
     20 *
    1921 * @param int $id_document
    2022 *              l'identifiant numérique du document
    21  * @param string $id 
     23 * @param string $id
    2224 *              l'identifiant dans le dom
    2325 * @param int $hauteur
     
    2628 *              le code js utilisable par Monocle ou false
    2729 */
    28 function epubreader_creer_js($id_document,$id=false,$hauteur=600){
    29         $creer_js = charger_fonction('epubreader_creerjs','inc');
     30function epubreader_creer_js($id_document, $id = false, $hauteur = 600) {
     31        $creer_js = charger_fonction('epubreader_creerjs', 'inc');
    3032        return $creer_js($id_document,$id,$hauteur);
    3133}
    32 ?>
  • _plugins_/epub_reader/trunk/epubreader_pipelines.php

    r73125 r97001  
    1212 */
    1313
    14 if (!defined("_ECRIRE_INC_VERSION")) return;
     14if (!defined('_ECRIRE_INC_VERSION')) {
     15        return;
     16}
    1517
    1618/**
    1719 * Insertion dans le pipeline jquery_plugins (SPIP)
    1820 * Ajoute les scripts js de monocle dans le head des pages
    19  * 
    20  * @param array $flux 
     21 *
     22 * @param array $flux
    2123 *              Le contexte du pipeline
    22  * @return array $flux 
     24 * @return array $flux
    2325 *              Le contexte de pipeline complété
    2426 */
    25 function epubreader_jquery_plugins($plugins){
     27function epubreader_jquery_plugins($plugins) {
    2628        $plugins[] = 'scripts/monocore.js';
    2729        return $plugins;
     
    3032/**
    3133 * Insertion dans le pipeline insert_head_css (SPIP)
    32  * Ajoute la css de monocle dans le head de chaque page 
    33  * 
    34  * @param array $flux 
     34 * Ajoute la css de monocle dans le head de chaque page
     35 *
     36 * @param array $flux
    3537 *              Le contexte du pipeline
    36  * @return array $flux 
     38 * @return array $flux
    3739 *              Le contexte de pipeline complété
    3840 */
    39 function epubreader_insert_head_css($flux){
     41function epubreader_insert_head_css($flux) {
    4042        $flux .= '
    4143        <link rel="stylesheet" href="'.direction_css(find_in_path('styles/monocore.css')).'" type="text/css" media="all" />';
    42         return $flux;   
     44        return $flux;
    4345}
    4446
     
    4850 * Intervient à chaque modification d'un objet de SPIP
    4951 * notamment lors de l'ajout d'un document
    50  * 
    51  * @param array $flux 
     52 *
     53 * @param array $flux
    5254 *              Le contexte du pipeline
    53  * @return array $flux 
     55 * @return array $flux
    5456 *              Le contexte de pipeline complété
    5557 */
    56 function epubreader_post_edition($flux){
     58function epubreader_post_edition($flux) {
    5759        $id_document = $flux['args']['id_objet'];
    58                
     60
    5961        /**
    6062         * A l'ajout du document, on le décompresse dans un répertoire de cache
    6163         * TODO Déplacer ce contenu dans metadatas/epub.php qui est appelé à l'import
    6264         */
    63         if(in_array($flux['args']['operation'], array('ajouter_document','document_copier_local'))){
    64                 $infos_doc = sql_fetsel('*','spip_documents','id_document='.intval($id_document));
    65        
     65        if (in_array($flux['args']['operation'], array('ajouter_document', 'document_copier_local'))) {
     66                $infos_doc = sql_fetsel('*', 'spip_documents', 'id_document=' . intval($id_document));
     67
    6668                $mode = $infos_doc['mode'];
    6769                $fichier = $infos_doc['fichier'];
    6870                $extension = $infos_doc['extension'];
    69                
     71
    7072                /**
    7173                 * On ne récupère les infos que d'un fichier local de type epub
    7274                 */
    73                 if(($infos_doc['extension'] == 'epub') && ($mode != 'vignette') && ($infos_doc['distant'] == 'non')){
     75                if (($infos_doc['extension'] == 'epub') && ($mode != 'vignette') && ($infos_doc['distant'] == 'non')) {
    7476                        include_spip('inc/epubreader_creerjs');
    7577                        $metadonnees = epubreader_recuperer_metas($id_document);
    76                         if(count($metadonnees) > 0){
     78                        if (count($metadonnees) > 0) {
    7779                                //$invalider = true;
    7880                                //document_modifier($id_document, $metadonnees);
    79                                 if(isset($metadonnees['cover']) && file_exists($metadonnees['cover'])){
     81                                if (isset($metadonnees['cover']) && file_exists($metadonnees['cover'])) {
    8082                                        $id_vignette = (intval($infos_doc['id_vignette']) > 0) ? $infos_doc['id_vignette'] : 'new';
    81                                         $ajouter_documents = charger_fonction('ajouter_documents','action');
     83                                        $ajouter_documents = charger_fonction('ajouter_documents', 'action');
    8284                                        $x = $ajouter_documents($id_vignette,
    8385                                                                                        array(array('tmp_name'=>$metadonnees['cover'],'name'=> $metadonnees['cover'])),
    84                                                                                 '', 0, 'vignette');
     86                                                                                        '', 0, 'vignette');
    8587                                        $id_vignette = reset($x);
    86                                         if(intval($id_vignette)){
     88                                        if (intval($id_vignette)) {
    8789                                                $vignette = true;
    88                                                 if(($infos_doc['id_vignette'] != $id_vignette))
    89                                                         document_modifier($id_document, array('id_vignette'=>$id_vignette));
     90                                                if (($infos_doc['id_vignette'] != $id_vignette)) {
     91                                                        document_modifier($id_document, array('id_vignette' => $id_vignette));
     92                                                }
    9093                                        }
    9194                                }
     
    9497                         * On invalide le cache de cet élément si nécessaire
    9598                         */
    96                         if($invalider){
     99                        if ($invalider) {
    97100                                include_spip('inc/invalideur');
    98                                 suivre_invalideur("1");
     101                                suivre_invalideur('1');
    99102                        }
    100103                }
    101         }
    102         /**
    103          * A la suppression du document, on supprime son répertoire de cache s'il existe
    104          */
    105         else if(in_array($flux['args']['operation'],array('supprimer_documents','supprimer_document'))){
     104        } elseif (in_array($flux['args']['operation'], array('supprimer_documents','supprimer_document'))) {
     105                /**
     106                 * A la suppression du document, on supprime son répertoire de cache s'il existe
     107                 */
    106108                $rep_dest = _DIR_RACINE._DIR_VAR.'cache-epub/'.$id_document;
    107                 if(is_dir($rep_dest)){
     109                if (is_dir($rep_dest)) {
    108110                        include_spip('inc/invalideur');
    109                         purger_repertoire($rep_dest,array('subdir'=>true));
    110                         spip_unlink($rep_dest); 
     111                        purger_repertoire($rep_dest, array('subdir' => true));
     112                        spip_unlink($rep_dest);
    111113                }
    112114        }
    113115        return $flux;
    114116}
    115 ?>
  • _plugins_/epub_reader/trunk/inc/epubreader_creerjs.php

    r73125 r97001  
    66 */
    77
    8 if (!defined("_ECRIRE_INC_VERSION")) return;
     8if (!defined('_ECRIRE_INC_VERSION')) {
     9        return;
     10}
    911
    1012/**
    1113 * Créer le js qui sera utilisé par monocle
    12  * 
    13  * @param int $id_document 
     14 *
     15 * @param int $id_document
    1416 *              l'identifiant numérique du document
    15  * @param string $id 
     17 * @param string $id
    1618 *              l'identifiant dans le dom
    1719 * @param int $hauteur
    1820 *              La hauteur d'affichage
    19  * @return string|false 
     21 * @return string|false
    2022 *              Le code javascript si possible
    2123 */
    22 function inc_epubreader_creerjs_dist($id_document,$id=false,$hauteur=600) {
    23         if($repertoire = epubreader_unzip($id_document)){
     24function inc_epubreader_creerjs_dist($id_document, $id = false, $hauteur = 600) {
     25        if ($repertoire = epubreader_unzip($id_document)) {
    2426                include_spip('inc/xml');
    2527                $base_root = $repertoire;
    26                 if(file_exists($repertoire.'META-INF/container.xml')){
     28                if (file_exists($repertoire.'META-INF/container.xml')) {
    2729                        $arbre_container = spip_xml_load($repertoire.'/META-INF/container.xml');
    28                         spip_xml_match_nodes(",^rootfile ,",$arbre_container, $rootfiles);
     30                        spip_xml_match_nodes(',^rootfile ,', $arbre_container, $rootfiles);
    2931                        $items_manifest = array();
    30                         if(is_array($rootfiles)){
    31                                 foreach($rootfiles as $rootfile => $info){
    32                                         $file = extraire_attribut("<$rootfile>",'full-path');
    33                                         if($file){
     32                        if (is_array($rootfiles)) {
     33                                foreach ($rootfiles as $rootfile => $info) {
     34                                        $file = extraire_attribut("<$rootfile>", 'full-path');
     35                                        if ($file) {
    3436                                                $base_root = dirname($repertoire.$file);
    3537                                                $arbre_root = spip_xml_load($repertoire.$file);
    36                                                 spip_xml_match_nodes(",^manifest,",$arbre_root, $manifest);
     38                                                spip_xml_match_nodes(',^manifest,', $arbre_root, $manifest);
    3739                                                /**
    3840                                                 * On parcourt la partie manifest
    3941                                                 * et on remplit $items_manifest
    4042                                                 */
    41                                                 if(is_array($manifest)){
    42                                                         foreach($manifest['manifest'][0] as $item => $info_item){
    43                                                                 if(preg_match('/^item.*href=["\'](.*)["\'].*id=["\'](.*)["\'].*/Uims',$item,$item_match))
     43                                                if (is_array($manifest)) {
     44                                                        foreach ($manifest['manifest'][0] as $item => $info_item) {
     45                                                                if (preg_match('/^item.*href=["\'](.*)["\'].*id=["\'](.*)["\'].*/Uims', $item, $item_match)) {
    4446                                                                        $items_manifest[$item_match[2]] = array('content'=>url_absolue($base_root.'/'.$item_match[1]),'id'=>$item_match[2]);
    45                                                                 else if(preg_match('/^item.*id=["\'](.*)["\'].*href=["\'](.*)["\'].*/Uims',$item,$item_match))
     47                                                                } elseif (preg_match('/^item.*id=["\'](.*)["\'].*href=["\'](.*)["\'].*/Uims', $item, $item_match)) {
    4648                                                                        $items_manifest[$item_match[1]] = array('content'=>url_absolue($base_root.'/'.$item_match[2]),'id'=>$item_match[1]);
     49                                                                }
    4750                                                        }
    4851                                                }
     
    5053                                                 * On parcourt la partie <spine></spine> et on range nos items comme dans cette partie
    5154                                                 */
    52                                                 if(count($items_manifest) > 0){
    53                                                         spip_xml_match_nodes(",^spine,",$arbre_root, $spines);
    54                                                         if(is_array($spines)){
     55                                                if (count($items_manifest) > 0) {
     56                                                        spip_xml_match_nodes(',^spine,', $arbre_root, $spines);
     57                                                        if (is_array($spines)) {
    5558                                                                $items_spine = array();
    56                                                                 foreach($spines as $spine){
    57                                                                         foreach($spine[0] as $itemref => $info_itemref){
    58                                                                                 if(preg_match('/^itemref.*idref=["\'](.*)["\'].*/Uims',$itemref,$itemref_match))
     59                                                                foreach ($spines as $spine) {
     60                                                                        foreach ($spine[0] as $itemref => $info_itemref) {
     61                                                                                if (preg_match('/^itemref.*idref=["\'](.*)["\'].*/Uims', $itemref, $itemref_match)) {
    5962                                                                                        $items_spine[$itemref_match[1]] = $items_manifest[$itemref_match[1]];
     63                                                                                }
    6064                                                                        }
    6165                                                                }
     
    6569                                }
    6670                        }
    67                         if(is_array($items_spine)){
     71                        if (is_array($items_spine)) {
    6872                                $items_manifest = $items_spine;
    6973                        }
    7074                }
    71                 if($ncx = preg_files($repertoire, '[.]ncx$')){
    72                         foreach($ncx as $toc){
     75                if ($ncx = preg_files($repertoire, '[.]ncx$')) {
     76                        foreach ($ncx as $toc) {
    7377                                $base = dirname($toc);
    74                                 lire_fichier($toc,$contenu);
    75                                 $contenu = preg_replace(',<!DOCTYPE(.*)>,Uims','',$contenu);
     78                                lire_fichier($toc, $contenu);
     79                                $contenu = preg_replace(',<!DOCTYPE(.*)>,Uims', '', $contenu);
    7680                                $arbre_toc = spip_xml_parse($contenu);
    77                                 spip_xml_match_nodes(",^navMap,",$arbre_toc, $navmaps);
    78                                 foreach($navmaps as $navmap => $nav){
    79                                         foreach($nav[0] as $navpoints => $navpoint){
     81                                spip_xml_match_nodes(',^navMap,', $arbre_toc, $navmaps);
     82                                foreach ($navmaps as $navmap => $nav) {
     83                                        foreach ($nav[0] as $navpoints => $navpoint) {
    8084                                                $new_navpoint = array();
    81                                                 foreach($navpoint[0] as $info => $data){
    82                                                         if(preg_match(',navLabel,',$info))
     85                                                foreach ($navpoint[0] as $info => $data) {
     86                                                        if (preg_match(',navLabel,', $info)) {
    8387                                                                $new_navpoint['label'] = $data[0]['text'][0];
    84                                                         else if(preg_match(',content src="(.*)",',$info,$matches))
     88                                                        } elseif (preg_match(',content src="(.*)",', $info, $matches)) {
    8589                                                                $new_navpoint['content'] = url_absolue($base.'/'.$matches[1]);
     90                                                        }
    8691                                                }
    8792                                                $navpoint_final[$new_navpoint['content']] = $new_navpoint;
    8893                                        }
    8994                                }
    90                                 foreach($navpoint_final as $navpoint_final_content => $navpoint_final_content_infos){
    91                                         foreach($items_manifest as $item_manifest => $item_manifest_info){
    92                                                 if($navpoint_final_content == $item_manifest_info['content']){
     95                                foreach ($navpoint_final as $navpoint_final_content => $navpoint_final_content_infos) {
     96                                        foreach ($items_manifest as $item_manifest => $item_manifest_info) {
     97                                                if ($navpoint_final_content == $item_manifest_info['content']) {
    9398                                                        $items_manifest[$item_manifest]['label'] = $navpoint_final_content_infos['label'];
    9499                                                        break;
     
    98103                        }
    99104                }
    100                 if(count($items_manifest) > 0){
     105                if (count($items_manifest) > 0) {
    101106                        $components_done = array();
    102107                        $components = $contents = $component = '';
    103                         foreach($items_manifest as $item_manifest => $item){
    104                                 $component_normal = preg_replace(',#.*,','',$item['content']);
    105                                 if(!in_array($component_normal,$components_done))
     108                        foreach ($items_manifest as $item_manifest => $item) {
     109                                $component_normal = preg_replace(',#.*,', '', $item['content']);
     110                                if (!in_array($component_normal, $components_done)) {
    106111                                        $components_done[] = "\"$component_normal\"";
     112                                }
    107113                                $contents .= "{
    108114                                        title: '".texte_script($item['label'])."',
     
    111117                                $component .= '\''.$item['content'].'\':\'<h3>'.texte_script($item['label']).'</h3>\',';
    112118                        }
    113                         $components = implode(',',$components_done);
     119                        $components = implode(',', $components_done);
    114120
    115121                        $js = "<script type='text/javascript'>
     
    118124        getComponents: function () {
    119125                return [
    120                         ".$components."
     126                        ' . $components . '
    121127                ];
    122128        },
     
    149155// Initialize the reader element.
    150156Monocle.Reader('".$id."', bookData, { panels: Monocle.Panels.IMode });
    151 </script>";     
     157</script>";
    152158                        return $js;
    153159                }
    154160                return false;
    155         }else
     161        } else {
    156162                return false;
     163        }
    157164}
    158165
     
    160167 * Dézip un document epub dans son répertoire de cache
    161168 * Le répertoire de cache défini est local/cache-epub/id_document
    162  * 
     169 *
    163170 * @param int $id_document
    164171 *              l'identifiant numérique du document
     
    166173                retourne le chemin du répertoire de cache ou false
    167174 */
    168 function epubreader_unzip($id_document=false,$fichier=false){
     175function epubreader_unzip($id_document = false, $fichier = false) {
    169176        include_spip('inc/documents');
    170         if(intval($id_document)){
    171                 $document = sql_fetsel('*','spip_documents','id_document='.intval($id_document));
    172                
     177        if (intval($id_document)) {
     178                $document = sql_fetsel('*', 'spip_documents', 'id_document=' . intval($id_document));
     179
    173180                $fichier = get_spip_doc($document['fichier']);
    174                 if(!file_exists($fichier))
     181                if (!file_exists($fichier)) {
    175182                        return false;
    176         }
    177        
     183                }
     184        }
     185
    178186        include_spip('inc/flock');
    179187        $rep_dest = sous_repertoire(_DIR_VAR, 'cache-epub/');
    180         $rep_dest = sous_repertoire(_DIR_VAR.'cache-epub/',(intval($id_document) ? $id_document : md5($fichier)));
    181        
     188        $rep_dest = sous_repertoire(_DIR_VAR.'cache-epub/', (intval($id_document) ? $id_document : md5($fichier)));
     189
    182190        include_spip('inc/pclzip');
    183191        $zip = new PclZip(get_spip_doc($fichier));
    184        
     192
    185193        $ok = $zip->extract(
    186                 PCLZIP_OPT_PATH,$rep_dest,
    187                 PCLZIP_OPT_SET_CHMOD, _SPIP_CHMOD,
     194                PCLZIP_OPT_PATH,
     195                $rep_dest,
     196                PCLZIP_OPT_SET_CHMOD,
     197                _SPIP_CHMOD,
    188198                PCLZIP_OPT_REPLACE_NEWER,
    189                 PCLZIP_OPT_REMOVE_PATH, ''
     199                PCLZIP_OPT_REMOVE_PATH,
     200                ''
    190201        );
    191202        if ($zip->error_code < 0) {
    192                 spip_log('Erreur de décompression ' . $zip->error_code .' pour le fichier: ' . $fichier,'epub_reader');
     203                spip_log('Erreur de décompression ' . $zip->error_code .' pour le fichier: ' . $fichier, 'epub_reader');
    193204                return false;
    194205        }
    195         else
    196                 return $rep_dest;
     206        return $rep_dest;
    197207}
    198208
     
    203213 * - On analyse chaque document "root"
    204214 * Renvoie toutes les métas dublin core contenue dans le document.
    205  * 
     215 *
    206216 * On change certains noms de métas (title devient titre, subject devient descriptif, rights devient credits)
    207217 * pour être compatible avec la table spip_documents
    208  * 
     218 *
    209219 * TODO Déplacer cette fonction dans metadatas/epub.php
    210  * 
     220 *
    211221 * @param int $id_document
    212222 *              l'identifiant numérique du document
     
    214224 *              un array des métas du document
    215225 */
    216 function epubreader_recuperer_metas($id_document=false,$fichier=false){
    217         if($repertoire = epubreader_unzip($id_document,$fichier)){
    218                 if(file_exists($repertoire.'META-INF/container.xml')){
     226function epubreader_recuperer_metas($id_document = false, $fichier = false) {
     227        if ($repertoire = epubreader_unzip($id_document, $fichier)) {
     228                if (file_exists($repertoire. 'META-INF/container.xml')) {
    219229                        include_spip('inc/xml');
    220230                        $arbre_container = spip_xml_load($repertoire.'META-INF/container.xml');
    221                         spip_xml_match_nodes(",^rootfile ,",$arbre_container, $rootfiles);
    222                         if(is_array($rootfiles)){
    223                                 foreach($rootfiles as $rootfile => $info){
    224                                         $file = extraire_attribut("<$rootfile>",'full-path');
    225                                         if($file){
     231                        spip_xml_match_nodes(',^rootfile ,', $arbre_container, $rootfiles);
     232                        if (is_array($rootfiles)) {
     233                                foreach ($rootfiles as $rootfile => $info) {
     234                                        $file = extraire_attribut("<$rootfile>", 'full-path');
     235                                        if ($file) {
    226236                                                $file_dir = dirname($file);
    227237                                                $arbre_root = spip_xml_load($repertoire.$file);
    228                                                 spip_xml_match_nodes(",^dc:,",$arbre_root, $dublins);
    229                                                 if(is_array($dublins)){
    230                                                         foreach($dublins as $dublin => $info_dublin){
    231                                                                 if(preg_match('/dc:title/',$dublin) && (strlen($info_dublin[0]) > 0)){
     238                                                spip_xml_match_nodes(',^dc:,', $arbre_root, $dublins);
     239                                                if (is_array($dublins)) {
     240                                                        foreach ($dublins as $dublin => $info_dublin) {
     241                                                                if (preg_match('/dc:title/', $dublin) && (strlen($info_dublin[0]) > 0)) {
    232242                                                                        $infos['titre'] = trim(textebrut(translitteration($info_dublin[0])));
    233                                                                 }else if(preg_match('/dc:subject/',$dublin) && (strlen($info_dublin[0]) > 0)){
     243                                                                } elseif (preg_match('/dc:subject/', $dublin) && (strlen($info_dublin[0]) > 0)) {
    234244                                                                        $infos['descriptif'] = trim(textebrut(translitteration($info_dublin[0])));
    235                                                                 }else if(preg_match('/dc:rights/',$dublin) && (strlen($info_dublin[0]) > 0)){
     245                                                                } elseif (preg_match('/dc:rights/', $dublin) && (strlen($info_dublin[0]) > 0)) {
    236246                                                                        $infos['credits'] = trim(textebrut(translitteration($info_dublin[0])));
    237                                                                 }else if(preg_match('/dc:([a-z]*) /',$dublin,$matches) && (strlen($info_dublin[0]) > 0)){
     247                                                                } elseif (preg_match('/dc:([a-z]*) /', $dublin, $matches) && (strlen($info_dublin[0]) > 0)) {
    238248                                                                        $infos[$matches[1]] = trim(textebrut(translitteration($info_dublin[0])));
    239                                                                 }else if(preg_match('/dc:([a-z]*)/',$dublin,$matches) && (strlen($info_dublin[0]) > 0)){
    240                                                                         if(($matches[1] == 'description') && !$infos['descriptif']){
     249                                                                } elseif (preg_match('/dc:([a-z]*)/', $dublin, $matches) && (strlen($info_dublin[0]) > 0)) {
     250                                                                        if (($matches[1] == 'description') && !$infos['descriptif']) {
    241251                                                                                $infos['descriptif'] = trim(textebrut(translitteration($info_dublin[0])));
    242252                                                                        }
     
    245255                                                        }
    246256                                                }
    247                                                 spip_xml_match_nodes(",^meta.*name,",$arbre_root, $metas);
    248                                                 if(is_array($metas)){
    249                                                         foreach($metas as $meta => $info_meta){
    250                                                                 if(preg_match('/.*name=["\']cover["\'].*content=["\'](.*)["\'].*/',$meta,$meta_match) OR preg_match('/.*content=["\'](.*)["\'].*name=["\']cover["\'].*/',$meta,$meta_match)){
    251                                                                         spip_xml_match_nodes(",^item.*href=['\"].*['\"].*id=['\"]".$meta_match[1]."['\"],",$arbre_root, $covers);
     257                                                spip_xml_match_nodes(',^meta.*name,', $arbre_root, $metas);
     258                                                if (is_array($metas)) {
     259                                                        foreach ($metas as $meta => $info_meta) {
     260                                                                if (preg_match('/.*name=["\']cover["\'].*content=["\'](.*)["\'].*/', $meta, $meta_match) or preg_match('/.*content=["\'](.*)["\'].*name=["\']cover["\'].*/', $meta, $meta_match)) {
     261                                                                        spip_xml_match_nodes(",^item.*href=['\"].*['\"].*id=['\"]".$meta_match[1]."['\"],", $arbre_root, $covers);
    252262                                                                        /**
    253263                                                                         * On parcourt les items trouvés pour retrouver le chemin de la cover si elle existe
    254264                                                                         */
    255                                                                         if(is_array($covers)){
    256                                                                                 foreach($covers as $cover => $info_cover){
    257                                                                                         preg_match('/^item.*href=["\'](.*)["\'].*id=["\']'.$meta_match[1].'["\'].*/Uims',$cover,$cover_match);
    258                                                                                         if(file_exists($repertoire.$cover_match[1])){
     265                                                                        if (is_array($covers)) {
     266                                                                                foreach ($covers as $cover => $info_cover) {
     267                                                                                        preg_match('/^item.*href=["\'](.*)["\'].*id=["\']'.$meta_match[1].'["\'].*/Uims', $cover, $cover_match);
     268                                                                                        if (file_exists($repertoire.$cover_match[1])) {
    259269                                                                                                $infos['cover'] = $repertoire.$cover_match[1];
    260270                                                                                                break;
     
    265275                                                        }
    266276                                                }
    267                                                 spip_xml_match_nodes(",^reference ,",$arbre_root, $references);
    268                                                 if(is_array($references)){
    269                                                         foreach($references as $reference => $info_reference){
    270                                                                 if(preg_match('/.*type=["\']cover["\'].*/s',$reference,$reference_match)){
    271                                                                         if(preg_match('/ href=["\'](.*\.[a-z]{3})["\'] /',$reference,$cover_match)){
    272                                                                                 if(file_exists($repertoire.$file_dir.'/'.$cover_match[1])){
     277                                                spip_xml_match_nodes(',^reference ,', $arbre_root, $references);
     278                                                if (is_array($references)) {
     279                                                        foreach ($references as $reference => $info_reference) {
     280                                                                if (preg_match('/.*type=["\']cover["\'].*/s', $reference, $reference_match)) {
     281                                                                        if (preg_match('/ href=["\'](.*\.[a-z]{3})["\'] /', $reference, $cover_match)) {
     282                                                                                if (file_exists($repertoire.$file_dir.'/'.$cover_match[1])) {
    273283                                                                                        $infos['cover'] = $repertoire.$file_dir.'/'.$cover_match[1];
    274284                                                                                        break;
     
    278288                                                        }
    279289                                                }
    280                                                 if(isset($infos['cover']) && file_exists($infos['cover'])){
    281                                                         $ext = substr($infos['cover'],-3);
    282                                                         if(in_array($ext,array('gif','png','jpg','jpeg')))
     290                                                if (isset($infos['cover']) && file_exists($infos['cover'])) {
     291                                                        $ext = substr($infos['cover'], -3);
     292                                                        if (in_array($ext, array('gif', 'png', 'jpg', 'jpeg'))) {
    283293                                                                $infos['cover'] = $infos['cover'];
    284                                                         elseif(in_array($ext,array('xml','html'))){
     294                                                        } elseif (in_array($ext, array('xml', 'html'))) {
    285295                                                                include_spip('inc/flock');
    286296                                                                $contenu = '';
    287                                                                 lire_fichier($infos['cover'],$contenu);
    288                                                                 if(strlen($contenu) > 1){
    289                                                                         $img = extraire_attribut(extraire_balise($contenu,'img'),'src');
    290                                                                         if(file_exists(dirname($infos['cover']).'/'.$img))
     297                                                                lire_fichier($infos['cover'], $contenu);
     298                                                                if (strlen($contenu) > 1) {
     299                                                                        $img = extraire_attribut(extraire_balise($contenu, 'img'), 'src');
     300                                                                        if (file_exists(dirname($infos['cover']).'/'.$img)) {
    291301                                                                                $infos['cover'] = dirname($infos['cover']).'/'.$img;
    292                                                                         else
     302                                                                        } else {
    293303                                                                                unset($infos['cover']);
     304                                                                        }
    294305                                                                }
    295306                                                        }
     
    299310                        }
    300311                }
    301                
     312
    302313                /**
    303314                 * Normaliser la date pour éviter des soucis d'édition
    304315                 */
    305                 if(isset($infos['date']) && $infos['date']){
     316                if (isset($infos['date']) && $infos['date']) {
    306317                        include_spip('inc/filtres');
    307318                        if (!$infos['date'] = recup_date($infos['date'])) {
    308319                                $erreur = "Impossible d'extraire la date de ".$infos['date'];
    309320                                unset($infos['date']);
    310                         }
    311                         else if (!($infos['date'] = mktime($infos['date'][3], $infos['date'][4], 0, (int)$infos['date'][1], (int)$infos['date'][2], (int)$infos['date'][0])))
     321                        } elseif (!($infos['date'] = mktime($infos['date'][3], $infos['date'][4], 0, (int)$infos['date'][1], (int)$infos['date'][2], (int)$infos['date'][0]))) {
    312322                                unset($infos['date']);
    313                         else{
    314                                 $infos['date'] = date("Y-m-d H:i:s", $infos['date']);
     323                        } else {
     324                                $infos['date'] = date('Y-m-d H:i:s', $infos['date']);
    315325                                $infos['date'] = vider_date($infos['date']); // enlever les valeurs considerees comme nulles (1 1 1970, etc...)
    316326                        }
    317                         if (!$infos['date'])
     327                        if (!$infos['date']) {
    318328                                unset($infos['date']);
     329                        }
    319330                }
    320331                return $infos;
    321         }else
    322                 return array();
    323 }
    324 
    325 ?>
     332        }
     333        return array();
     334}
  • _plugins_/epub_reader/trunk/metadata/epub.php

    r73125 r97001  
    44 * © 2011-2013 - kent1
    55 * Licence GPL v3
    6  * 
     6 *
    77 * Fonction de récupération automatique de métadonnées à l'upload de document
    88 * appelée par le plugin medias
    99 */
    1010
    11 if (!defined('_ECRIRE_INC_VERSION')) return;
     11if (!defined('_ECRIRE_INC_VERSION')) {
     12        return;
     13}
    1214
    1315/**
    1416 * Fonction de récupération des métadonnées sur les fichiers epub
    1517 * appelée à l'insertion en base dans le plugin medias (inc/renseigner_document)
    16  * 
    17  * @param string $file 
     18 *
     19 * @param string $file
    1820 *              Le chemin du fichier à analyser
    19  * @return array $metas 
     21 * @return array $metas
    2022 *              Le tableau comprenant les différentes metas à mettre en base
    2123 */
    22 function metadata_epub_dist($file){
     24function metadata_epub_dist($file) {
    2325        include_spip('inc/epubreader_creerjs');
    24         $metas = epubreader_recuperer_metas(false,$file);
     26        $metas = epubreader_recuperer_metas(false, $file);
    2527        return is_array($metas) ? $metas : array();
    2628}
    27 
    28 ?>
Note: See TracChangeset for help on using the changeset viewer.