source: spip-zone/_plugins_/ocr/trunk/formulaires/configurer_ocr.php @ 75261

Last change on this file since 75261 was 75261, checked in by lesage.sylvain@…, 8 years ago

Utilise les variables _OCR_...

_OCR_TAILLE_TEXTE_MAX, _OCR_INTERVALLE_CRON, _OCR_NB_DOCS,
_OCR_OPT, _OCR_BIN

File size: 3.0 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4include_spip('inc/config');
5
6function formulaires_configurer_ocr_charger_dist(){
7        //Recuperation de la configuration
8        $ocr = lire_config('ocr',array());
9        if (empty($ocr)) {
10                $ocr = null;
11        }
12
13        /* Valeurs prealablement saisie ou par defaut/d'exemple
14         * -* intervalle de 600s entre les lancements de CRON
15         * -* 5 fichiers analysés par CRON
16         * -* binaire de reconnaissance des caractères : /usr/bin/tesseract
17         * -* options du binaire : -l fra (modèle de langue : français)
18         * -* taille maximale du texte inséré dans la base de données
19         * */
20        $valeur = array(
21                'intervalle_cron' =>  $ocr['intervalle_cron'] ? $ocr['intervalle_cron'] : (defined('_OCR_INTERVALLE_CRON') ? _OCR_INTERVALLE_CRON : 600),
22                'nb_docs' =>  $ocr['nb_docs'] ? $ocr['nb_docs'] : (defined('_OCR_NB_DOCS') ? _OCR_NB_DOCS : 5),
23                'ocr_bin' => $ocr['ocr_bin'] ? $ocr['ocr_bin'] : (defined('_OCR_BIN') ? _OCR_BIN : '/usr/bin/tesseract'),
24                'ocr_opt' => $ocr['ocr_opt'] ? $ocr['ocr_opt'] : (defined('_OCR_OPT') ? _OCR_OPT : '-l fra'),
25                'taille_texte_max' => $ocr['taille_texte_max'] ? $ocr['taille_texte_max'] : (defined('_OCR_TAILLE_TEXTE_MAX') ? _OCR_TAILLE_TEXTE_MAX : 50000),
26        );
27}
28function formulaires_configurer_ocr_verifier_dist(){
29        $erreurs = array();
30        //Il faut au moins une seconde
31        if((!_request('intervalle_cron'))||(_request('intervalle_cron') < 1)){
32                $erreurs['intervalle_cron'] = _T('ocr:erreur_intervalle_cron');
33        }
34        //Il faut au moins un document a la fois
35        if((!_request('nb_docs'))||(_request('nb_docs') < 1)){
36                $erreurs['nb_docs'] = _T('ocr:erreur_nb_docs');
37        }
38        //Il faut un nombre positif
39        if((!_request('taille_texte_max'))||(_request('taille_texte_max') < 0)){
40                $erreurs['taille_texte_max'] = _T('ocr:erreur_taille_texte_max');
41        }
42        /**
43         * On teste les binaires
44         */
45        $binaire = 'ocr_bin';
46        /**
47         * Pas de binaire => on doit en avoir un pour récupérer le contenu
48         */
49        if(!_request($binaire)){
50                $erreurs[$binaire] = _T('ocr:erreur_ocr_bin');
51        }else{
52                /**
53                 * On teste avec la commande de base ...
54                 * Le code de retour normal doit être 0
55                 */
56                @exec(_request($binaire),$retour_bin,$retour_bin_int);
57                if($retour_bin_int != 0){
58                        /**
59                         * Sinon on fait un test que le binaire est executable
60                         * Cela nécessite un chemin complet du binaire
61                         */
62                        @exec('test -x '._request($binaire),$retour_bin,$retour_bin_int);
63                        if($retour_bin_int != 0){
64                                $erreurs[$binaire] = _T('ocr:erreur_binaire_indisponible');
65                        }
66                }
67        }
68       
69        if(count($erreurs) > 0){
70                $erreurs['message_erreur'] = _T('ocr:erreur_verifier_configuration');
71        }
72        return $erreurs;
73}
74
75function formulaires_configurer_ocr_traiter_dist(){
76        //Recuperation de la configuration et serialization
77        $ocr = array(
78                'intervalle_cron' => intval(_request('intervalle_cron')),
79                'nb_docs' => intval(_request('nb_docs')),
80                'taille_texte_max' => intval(_request('taille_texte_max')),
81               
82                'ocr_bin' => _request('ocr_bin'),
83                'ocr_opt' => _request('ocr_opt'),
84        );
85        //Insere ou update ?
86        ecrire_config('ocr',$ocr);
87        $res = array('message_ok'=>_T('ocr:message_ok_configuration'));
88        return $res;
89       
90}
91?>
Note: See TracBrowser for help on using the repository browser.