Changeset 54185 in spip-zone


Ignore:
Timestamp:
Nov 8, 2011, 10:40:15 AM (8 years ago)
Author:
kent1@…
Message:

On revient sur la vérification de présence des binaires car ceux par défaut renvoient des codes d'exécution ésotériques...

On teste d'abord avec la commande de base ...
Le code de retour normal doit être 0

Si cela retourne un mauvais code d'erreur
On teste avec l'option -V (catdoc et catppt)

Sinon on fait un test que le binaire est executable
Cela nécessite un chemin complet du binaire

On incrémente le numéro de version

Location:
_plugins_/fulltext
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/fulltext/formulaires/configurer_document_fulltext.php

    r54180 r54185  
    8888                $erreurs['taille_index'] = _T('fulltext:erreur_taille_index');
    8989        }
    90         //Si on a choisit d'indexer un type de document on doit renseigner le binaire correspondant
    91         if(_request('pdf_index') == 'on' && !defined('_FULLTEXT_PDF_EXE')){
    92                 if(!_request('pdf_bin')){
    93                         $erreurs['pdf_bin'] = _T('fulltext:erreur_pdf_bin');
    94                 }else{
    95                         @exec(_request('pdf_bin'),$retour_pdfbin,$retour_pdfbin_int);
    96                         if($retour_pdfbin_int != 0){
    97                                 $erreurs['pdf_bin'] = _T('fulltext:erreur_binaire_indisponible');
    98                         }
    99                 }
    100         }
    101        
    102         if(_request('doc_index') == 'on' && !defined('_FULLTEXT_DOC_EXE')){
    103                 if(!_request('doc_bin')){
    104                         $erreurs['doc_bin'] = _T('fulltext:erreur_doc_bin');
    105                 }else{
    106                         @exec(_request('doc_bin'),$retour_doc_bin,$retour_doc_bin_int);
    107                         if($retour_doc_bin_int != 0){
    108                                 @exec(_request('doc_bin').' -V',$retour_doc_bin,$retour_doc_bin_int);
    109                                 if($retour_doc_bin_int != 0){
    110                                         $erreurs['doc_bin'] = _T('fulltext:erreur_binaire_indisponible');
     90
     91        /**
     92         * On teste les binaires
     93         */
     94        $binaires = array('pdf_bin' => array('pdf_index','_FULLTEXT_PDF_EXE'),'doc_bin' => array('doc_index','_FULLTEXT_DOC_EXE'),'ppt_bin' => array('ppt_index','_FULLTEXT_PPT_EXE'),'xls_bin' => array('xls_index','_FULLTEXT_XLS_EXE'));
     95        foreach($binaires as $binaire => $index){
     96                /**
     97                 * On ne teste l'exécutable que si on index sinon ça ne sert à rien
     98                 */
     99                if(_request($index[0]) == 'on' && !defined($index[1])){
     100                        /**
     101                         * Pas de binaire => on doit en avoir un pour récupérer le contenu
     102                         */
     103                        if(!_request($binaire)){
     104                                $erreurs[$binaire] = _T('fulltext:erreur_pdf_bin');
     105                        }else{
     106                                /**
     107                                 * On teste avec la commande de base ...
     108                                 * Le code de retour normal doit être 0
     109                                 */
     110                                @exec(_request($binaire),$retour_bin,$retour_bin_int);
     111                                if($retour_bin_int != 0){
     112                                        /**
     113                                         * Si cela retourne un mauvais code d'erreur
     114                                         * on teste avec l'option -V (catdoc et catppt)
     115                                         */
     116                                        @exec(_request($binaire).' -V',$retour_bin,$retour_bin_int);
     117                                        if($retour_bin_int != 0){
     118                                                /**
     119                                                 * Sinon on fait un test que le binaire est executable
     120                                                 * Cela nécessite un chemin complet du binaire
     121                                                 */
     122                                                @exec('test -x '._request($binaire),$retour_bin,$retour_bin_int);
     123                                                $erreurs[$binaire] = _T('fulltext:erreur_binaire_indisponible');
     124                                        }
    111125                                }
    112                         }
    113                 }
    114         }
    115        
    116         if(_request('ppt_index') == 'on' && !defined('_FULLTEXT_PPT_EXE')){
    117                 if(!_request('ppt_bin')){
    118                         $erreurs['ppt_bin'] = _T('fulltext:erreur_ppt_bin');
    119                 }else{
    120                         @exec(_request('ppt_bin'),$retour_ppt_bin,$retour_ppt_bin_int);
    121                         if($retour_ppt_bin_int != 0){
    122                                 @exec(_request('ppt_bin').' -V',$retour_ppt_bin,$retour_ppt_bin_int);
    123                                 if($retour_ppt_bin_int != 0){
    124                                         $erreurs['ppt_bin'] = _T('fulltext:erreur_binaire_indisponible');
    125                                 }
    126                         }
    127                 }
    128         }
    129        
    130         if(_request('xls_index') == 'on' && !defined('_FULLTEXT_XLS_EXE')){
    131                 if(!_request('xls_bin')){
    132                         $erreurs['xls_bin'] = _T('fulltext:erreur_xls_bin');
    133                 }else{
    134                         @exec(_request('xls_bin'),$retour_xls_bin,$retour_xls_bin_int);
    135                         if($retour_xls_bin_int != 0 && $retour_xls_bin_int != 139){
    136                                 $erreurs['xls_bin'] = _T('fulltext:erreur_binaire_indisponible');
    137126                        }
    138127                }
  • _plugins_/fulltext/plugin.xml

    r53495 r54185  
    88        </slogan>
    99        <auteur>Fil, Gael Chareyre</auteur>
    10         <version>0.6.5</version>
     10        <version>0.6.6</version>
    1111        <version_base>0.2</version_base>
    1212        <etat>dev</etat>
Note: See TracChangeset for help on using the changeset viewer.