source: spip-zone/_plugins_/fulltext/formulaires/configurer_document_fulltext.php @ 54180

Last change on this file since 54180 was 54180, checked in by kent1@…, 8 years ago

Si ça passe pas avec des codes de retour pourris sur l'appel simple, on teste avec l'option -V

File size: 6.6 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function formulaires_configurer_document_fulltext_charger_dist(){
6        //Recuperation de la configuration
7        $fulltext = @unserialize($GLOBALS['meta']['fulltext']);
8        if(!is_array($fulltext)){
9                $fulltext = array();
10        }
11        //Valeurs prealablement saisie ou par defaut/d'exemple
12        $valeur = array(
13                'intervalle_cron' =>  $fulltext['intervalle_cron'] ? $fulltext['intervalle_cron'] : 600,
14                'nb_docs' =>  $fulltext['nb_docs'] ? $fulltext['nb_docs'] : 5,
15                'taille_index' => $fulltext['taille_index'] ? $fulltext['taille_index'] : 50000,
16               
17                'pdf_index' => $fulltext['pdf_index'] ? $fulltext['pdf_index'] : 'off',
18                'pdf_bin' => $fulltext['pdf_bin'] ? $fulltext['pdf_bin'] : '/usr/bin/pdftotext',
19                'pdf_opt' => $fulltext['pdf_opt'] ? $fulltext['pdf_opt'] : '-enc Latin1',
20               
21                'odt_index' => $fulltext['odt_index'] ? $fulltext['odt_index'] : 'off',
22               
23                'doc_index' => $fulltext['doc_index'] ? $fulltext['doc_index'] : 'off',
24                'doc_bin' => $fulltext['doc_bin'] ? $fulltext['doc_bin'] : '/usr/bin/catdoc',
25                'doc_opt' => $fulltext['doc_opt'] ? $fulltext['doc_opt'] : '-s cp1252 -d 8859-1',
26               
27                'docx_index' => $fulltext['docx_index'] ? $fulltext['docx_index'] : 'off',
28               
29                'ppt_index' => $fulltext['ppt_index'] ? $fulltext['ppt_index'] : 'off',
30                'ppt_bin' => $fulltext['ppt_bin'] ? $fulltext['ppt_bin'] : '/usr/bin/catppt',
31                'ppt_opt' => $fulltext['ppt_opt'] ? $fulltext['ppt_opt'] : '',
32               
33                'pptx_index' => $fulltext['pptx_index'] ? $fulltext['pptx_index'] : 'off',
34               
35                'xls_index' => $fulltext['xls_index'] ? $fulltext['xls_index'] : 'off',
36                'xls_bin' => $fulltext['xls_bin'] ? $fulltext['xls_bin'] : '/usr/bin/xls2csv',
37                'xls_opt' => $fulltext['xls_opt'] ? $fulltext['xls_opt'] : '-s cp1252 -d 8859-1',
38               
39                'xlsx_index' => $fulltext['xlsx_index'] ? $fulltext['xlsx_index'] : 'off',
40        );
41        if(defined('_FULLTEXT_DOC_EXE')){
42                $valeur['doc_bin'] = _FULLTEXT_DOC_EXE;
43                $valeur['doc_bin_readonly'] = true;
44        }
45        if(defined('_FULLTEXT_DOC_CMD_OPTIONS')){
46                $valeur['doc_opt'] = _FULLTEXT_DOC_CMD_OPTIONS;
47                $valeur['doc_opt_readonly'] = true;
48        }
49        if(defined('_FULLTEXT_PDF_EXE')){
50                $valeur['pdf_bin'] = _FULLTEXT_PDF_EXE;
51                $valeur['pdf_bin_readonly'] = true;     
52        }
53        if(defined('_FULLTEXT_PDF_CMD_OPTIONS')){
54                $valeur['pdf_opt'] = _FULLTEXT_PDF_CMD_OPTIONS;
55                $valeur['pdf_opt_readonly'] = true;
56        }
57        if(defined('_FULLTEXT_PPT_EXE')){
58                $valeur['ppt_bin'] = _FULLTEXT_PPT_EXE;
59                $valeur['ppt_bin_readonly'] = true;     
60        }
61        if(defined('_FULLTEXT_PPT_CMD_OPTIONS')){
62                $valeur['ppt_opt'] = _FULLTEXT_PPT_CMD_OPTIONS;
63                $valeur['ppt_opt_readonly'] = true;
64        }
65        if(defined('_FULLTEXT_XLS_EXE')){
66                $valeur['xls_bin'] = _FULLTEXT_XLS_EXE;
67                $valeur['xls_bin_readonly'] = true;     
68        }
69        if(defined('_FULLTEXT_XLS_CMD_OPTIONS')){
70                $valeur['xls_opt'] = _FULLTEXT_XLS_CMD_OPTIONS;
71                $valeur['xls_opt_readonly'] = true;     
72        }
73
74        return $valeur;
75}
76function formulaires_configurer_document_fulltext_verifier_dist(){
77        $erreurs = array();
78        //Il faut au moins une seconde
79        if((!_request('intervalle_cron'))||(_request('intervalle_cron') < 1)){
80                $erreurs['intervalle_cron'] = _T('fulltext:erreur_intervalle_cron');
81        }
82        //Il faut au moins une documents a la fois
83        if((!_request('nb_docs'))||(_request('nb_docs') < 1)){
84                $erreurs['nb_docs'] = _T('fulltext:erreur_nb_docs');
85        }       
86        //Il faut au moins indexer un caractere
87        if((!_request('taille_index'))||(_request('taille_index') < 1)){
88                $erreurs['taille_index'] = _T('fulltext:erreur_taille_index');
89        }
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');
111                                }
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');
137                        }
138                }
139        }
140       
141        //TODO : verifier si on a bien une version PHP superieur a 5.2 avec option Zip si on indexe les odt,docx,xlsx,pptx
142       
143        if(count($erreurs) > 0){
144                $erreurs['message_erreur'] = _T('fulltext:erreur_verifier_configuration');
145        }
146        return $erreurs;
147}
148
149function formulaires_configurer_document_fulltext_traiter_dist(){
150        //Recuperation de la configuration et serialization
151        $fulltext = serialize(array(
152                'intervalle_cron' => intval(_request('intervalle_cron')),
153                'nb_docs' => intval(_request('nb_docs')),
154                'taille_index' => intval(_request('taille_index')),
155               
156                'pdf_index' => _request('pdf_index'),
157                'pdf_bin' => _request('pdf_bin'),
158                'pdf_opt' => _request('pdf_opt'),
159               
160                'odt_index' => _request('odt_index'),
161               
162                'doc_index' => _request('doc_index'),
163                'doc_bin' => _request('doc_bin'),
164                'doc_opt' => _request('doc_opt'),
165               
166                'docx_index' => _request('docx_index'),
167               
168                'ppt_index' => _request('ppt_index'),
169                'ppt_bin' => _request('ppt_bin'),
170                'ppt_opt' => _request('ppt_opt'),
171               
172                'pptx_index' => _request('pptx_index'),
173               
174                'xls_index' => _request('xls_index'),
175                'xls_bin' => _request('xls_bin'),
176                'xls_opt' => _request('xls_opt'),
177               
178                'xlsx_index' => _request('xlsx_index'), 
179        ));
180        //Insere ou update ?
181        ecrire_meta('fulltext',$fulltext);
182        $res = array('message_ok'=>_T('fulltext:message_ok_configuration'));
183        return $res;
184       
185}
186?>
Note: See TracBrowser for help on using the repository browser.