Changeset 75040 in spip-zone


Ignore:
Timestamp:
Aug 28, 2013, 3:22:56 PM (7 years ago)
Author:
kent1@…
Message:

Améliorations et optimisations du code
Moins de log

On invalide bien à la fin

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/doc2img/trunk/inc/doc2img_convertir.php

    r74896 r75040  
    11<?php
     2/**
     3 * Plugin Doc2img
     4 * Conversion du fichier
     5 */
    26
    37if (!defined('_ECRIRE_INC_VERSION')) return;
     
    2327        @set_time_limit(0);
    2428        if(!in_array($opt,array('full','vignette'))){
    25                 if(isset($opt['options']) && in_array($opt['options'],array('full','vignette'))){
     29                if(isset($opt['options']) && in_array($opt['options'],array('full','vignette')))
    2630                        $type = $opt['options'];
    27                 }else
     31                else
    2832                        $type = 'full';
    2933        }else
     
    3438            include_spip('inc/documents');
    3539                include_spip('inc/config');
    36                
     40                include_spip('action/editer_document');
     41
    3742                /**
    3843                 * Si cette action est lancée en CRON, on ne peut supprimer les documents ensuite
     
    5661            $frame = 0;
    5762
    58                 $resolution = $config['resolution'] ? $config['resolution'] : 150;
    59                
     63                $resolution = (isset($config['resolution']) && intval($config['resolution']) > 150) ? $config['resolution'] : 150;
    6064                $ajouter_documents = charger_fonction('ajouter_documents', 'action');
    61                
     65
    6266                if($type == 'full'){
    6367                        try{
    6468                                $image = new Imagick($document['fichier']);
    6569                                $identify = $image->identifyImage();
    66                                 spip_log($identify,"docimg");
    67                                 $identify2 = $image->getImageProperties();
    68                                 spip_log($identify2,"docimg");
    6970                                $nb_pages = $image->getNumberImages();
    70                                 spip_log($nb_pages.' pages','docimg');
    7171                                $image->clear();
    7272                                $image->destroy();
    73                                 include_spip('action/editer_document');
     73
    7474                                /**
    7575                                 * Est ce que ce document a déja été converti
     
    7979                                                                                                'spip_documents AS L1 LEFT JOIN spip_documents_liens AS L2 ON L1.id_document=L2.id_document',
    8080                                                                                                'L1.mode="doc2img" AND L2.objet="document" AND L2.id_objet='.intval($id_document));
    81                                
     81
    8282                                $documents_a_supprimer = array();
    8383                                while($document_doc2img = sql_fetch($documents_doc2img)){
     
    9696                                $image_frame = new Imagick();
    9797                                //on accede à la page $frame
    98                                 spip_log("page $frame",'docimg');
    99                                                
    100                                                 // Il faut définir la résolution avant de charger l'image (cf. Notes dans http://www.php.net/manual/en/imagick.setresolution.php)
    101                                                 if(is_numeric($resolution) && ($resolution <= '600') && ($resolution > $identify['resolution']['x'])){
     98
     99                                                if(is_numeric($resolution) && ($resolution <= '600'))
    102100                                                $image_frame->setResolution($resolution,$resolution);
    103                                         }
     101
    104102                                                $image_frame->readImage($document['fichier'].'['.$frame.']');
    105103                                                $image_frame->setImageFormat($format_cible);
    106                                                 if(is_numeric($config['compression']) && ($config['compression'] > 50) && ($config['compression'] <= 100)){
     104
     105                                                if(is_numeric($config['compression']) && ($config['compression'] > 50) && ($config['compression'] <= 100))
    107106                                                        $image_frame->setImageCompressionQuality($config['compression']);
    108                                                 }
    109                        
     107
    110108                                        //calcule des dimensions
    111109                                        //$dimensions = doc2img_ratio($image_frame,$config);
    112                        
     110
    113111                                        //nom du fichier cible, c'est à dire la frame (image) indexée
    114112                                        $frame_name = $document['name'].'-'.$frame.'.'.$format_cible;
    115113                                                $dest = $document['cible_url'].$frame_name;
    116114                                        //on sauvegarde la page
    117                                        
     115
    118116                                        //$image_frame->resizeImage($dimensions['largeur'], $dimensions['hauteur'],Imagick::FILTER_LANCZOS,1);
    119117                                    $image_frame->writeImage($dest);
    120                                                
     118
    121119                                                /**
    122120                                                 * On ajoute le document dans la table spip_documents avec comme type "doc2img"
     
    131129                                                        $image_frame->writeImage($frame_tmp);
    132130                                                        $files = array(array('tmp_name'=>$frame_tmp,'name'=>$frame_name));
    133                                                 if(is_numeric($id_vignette) && ($id_vignette > 0)){
     131                                                if(is_numeric($id_vignette) && ($id_vignette > 0))
    134132                                                        $vignette = $ajouter_documents($id_vignette, $files,'', 0, 'vignette');
    135                                                 }else{
     133                                                else
    136134                                                                $vignette = $ajouter_documents('new', $files,'', 0, 'vignette');
    137                                                         }
    138                                                         if (is_numeric(reset($vignette))
    139                                                           AND $id_vignette = reset($vignette))
     135
     136                                                        if (is_numeric(reset($vignette)) AND $id_vignette = reset($vignette))
    140137                                                                document_modifier($id_document,array("id_vignette" => intval($id_vignette)));
    141138                                                        spip_unlink($document['cible_url'].$frame_tmp);
    142139                                                        unset($vignette,$files);
    143140                                        }
    144                                                
    145                                                
     141
    146142                                        spip_unlink($document['cible_url'].$frame_name);
    147143                                    unset($frame_name,$dest);
     
    151147                                                $image_frame->clear();
    152148                                                $image_frame->destroy();
     149                                                $invalider = true;
    153150                                        } while($frame < $nb_pages);
    154151                                }
     
    157154                                        spip_log($e,'docimg');
    158155                        }
    159                         include_spip('inc/invalideur');
    160                         suivre_invalideur('id_document="$id_document"');
    161156            }else{
    162157                try{
     
    164159                                if(in_array($format_cible,array('png','jpg'))){
    165160                                        $image_frame = new Imagick();
    166                                         if(is_numeric($resolution) && ($resolution <= '600') && ($resolution > $identify['resolution']['x'])){
     161                                        if(is_numeric($resolution) && ($resolution <= '600')){
     162                                                spip_log('set resolution','docimg');
    167163                                                $image_frame->setResolution($resolution,$resolution);
    168164                                        }
     
    172168                                                        $image_frame->setImageCompressionQuality($config['compression']);
    173169                                                }
    174                        
     170
    175171                                        //nom du fichier cible, c'est à dire la frame (image) indexée
    176172                                        $frame_name = $document['name'].'-logo.'.$format_cible;
    177                        
     173
    178174                                        //on sauvegarde la page
    179175                                    $image_frame->writeImage($document['cible_url'].$frame_name);
    180176                                                $image_frame->clear();
    181177                                    $image_frame->destroy();
    182                                                
     178
    183179                                                $files = array(array('tmp_name'=>$document['cible_url'].$frame_name,'name'=>$frame_name));
    184180                                                $id_vignette = $document['id_vignette'];
    185                                         if(is_numeric($id_vignette) && ($id_vignette > 0)){
     181                                        if(is_numeric($id_vignette) && ($id_vignette > 0))
    186182                                                $x = $ajouter_documents($id_vignette, $files,'', 0, 'vignette');       
    187                                         }else{
     183                                        else
    188184                                                        $x = $ajouter_documents('new', $files,'', 0, 'vignette');
    189                                                 }
    190                                                 if (is_numeric(reset($x))
    191                                                   AND $id_vignette = reset($x)){
    192                                                         spip_log('On modifie','docimg');
    193                                                         include_spip('action/editer_document');
     185
     186                                                if (is_numeric(reset($x)) AND $id_vignette = reset($x))
    194187                                                        document_modifier($id_document,array("id_vignette" => intval($id_vignette)));
    195                                                 }
     188
    196189                                                spip_unlink($document['cible_url'].$frame_name);
    197                             }else{
     190                            }else
    198191                                                spip_log("DOC2IMG : le format de sortie sélectionné dans la configuration ne permet pas de créer une vignette",'docimg');
    199                             }
     192                                        $invalider = true;
    200193                                $frame++;
    201194                            } while($frame < 1 );
     
    204197                                        spip_log($e,'docimg');
    205198                        }
     199            }
     200                $ret['success'] = true;
     201                if($invalider){
    206202                        include_spip('inc/invalideur');
    207203                        suivre_invalideur('id_document="$id_document"');
    208             }
    209                 $ret['success'] = true;
     204                }
    210205            return $ret;
    211206        }else{
Note: See TracChangeset for help on using the changeset viewer.