source: spip-zone/_plugins_/spip-bible/trunk/bible_fonctions.php @ 65642

Last change on this file since 65642 was 65642, checked in by maieul@…, 7 years ago

afficher l'url de la traduction

File size: 9.2 KB
Line 
1<?php
2/*
3Maïeul Rouquette Licence GPL 3
4Spip-Bible
5*/
6include_spip('inc/bible_tableau');
7
8
9function bible_supprimer_retour($texte){
10   
11    $texte = preg_replace("#\t#",'',$texte);
12   
13    $texte = preg_replace("# {2,}#",'',$texte);
14    $texte = preg_replace("#[\r|\n][\r|\n]#",'',$texte);
15   
16 return $texte;
17}
18function bible_traduire_abreviation($abrev,$lang_original,$lang_traduction){
19        $tableau_gateway = bible_tableau("gateway");
20        $tableau_originales = bible_tableau('original');
21        if (array_key_exists($lang_traduction,$tableau_originales)){
22                return $abrev; 
23               
24        }
25
26        $livre = livre_seul($abrev);
27       
28        $numero = $tableau_gateway[$lang_original][$livre];
29       
30        $tableau_inverse = array_flip($tableau_gateway[$lang_traduction]);
31        $livre_traduit = $tableau_inverse[$numero];
32       
33        return str_replace($livre,$livre_traduit,$abrev);
34
35
36}
37
38function bible_test_livre_seul($i){
39        if (preg_match('#[0-9|,|-]+$#',$i)){ return 'non';}
40        else {return 'oui';}
41
42}
43function livre_seul($i){
44        return preg_replace('#[0-9|,|-]+$#','',$i);
45
46}
47function bible_analyser_ref($passage,$traduction){
48    $tableau_traduction = bible_tableau('traduction');
49    $tableau_separateur = bible_tableau('separateur');
50        $tableau_livres = bible_tableau('livres');
51        global $spip_lang;
52    $verset_debut = '';
53
54        $lang = $tableau_traduction[$traduction]['lang'];
55    $langues_originales = bible_tableau('original');
56    //var_dump($langues_originales);
57    array_key_exists($lang,$langues_originales) ? $lang = $spip_lang : $lang = $lang;
58       
59        $separateur = $tableau_separateur[$lang];
60   
61        $livres=$tableau_livres[$lang];
62       
63        // phase d'anaylse
64       
65        $livre = strtolower($livre);
66        $tableau = explode('-',$passage);
67        if (count($tableau)==2){
68                $fin=$tableau[1];
69                //chercher chapitre et verset de fin
70                        $tableau2 = explode(',',$fin);
71                        if (count($tableau2)==1){
72                               
73                                $verset_fin = $tableau2[0];}
74                        else{
75                                $chapitre_fin   = $tableau2[0];
76                                $verset_fin = $tableau2[1];}                   
77               
78                }
79       
80        $debut = $tableau[0];
81       
82        $livre = livre_seul($debut);
83       
84        if (!array_key_exists($livre,$livres)){
85                return _T('bible:pas_livre');
86       
87        }
88
89        $debut = str_replace($livre,'',$debut);
90       
91       
92        //problème Isaïe / Esaïe => on converti dans la bonne confession
93        if ($lang=='fr' and ($livre == 'Is' or $livre =='Es' )){
94           $livre = $tableau_traduction[$traduction]['isaie'];
95           $isaie=true;
96       
97       
98        }
99       
100        //chercher chapitre et verset du début
101       
102        $tableau = explode(',',$debut);
103        if (count($tableau)==2){
104                $verset_debut = $tableau[1];}
105        else{
106                if (count($tableau2)==1){
107                        $chapitre_fin=$tableau2[0];
108                        $verset_fin='';
109                }
110               
111       
112                }
113        $chapitre_debut  = $tableau[0]; 
114               
115       
116        // si reference courte
117        if ($chapitre_fin==''){$chapitre_fin=$chapitre_debut;};
118       
119        if ($verset_debut=='' and count($tableau2)==2){$verset_debut=1;
120        $verset_fin=='';
121        $chapitre_fin=$chapitre_debut;};
122        if ($verset_fin=='' and (count($tableau)==2)){$verset_fin=$verset_debut;}
123    return  array($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin);
124}
125
126function bible($passage,$traduction='jerusalem',$mode_test=false){
127
128       
129        $tableau_traduction = bible_tableau('traduction');
130        $tableau_separateur = bible_tableau('separateur');
131       
132    global $spip_lang;
133       
134        $traduction = strtolower($traduction);
135       
136        $erreur = true;
137       
138        if (array_key_exists($traduction,$tableau_traduction)){$erreur = false;};
139               
140        if ($erreur) { 
141                return _T('bible:traduction_pas_dispo');
142        }
143    $lang = $tableau_traduction[$traduction]['lang'];
144    $langues_originales = bible_tableau('original');
145    $lang_original = $lang;
146               
147       
148        //si langue originel
149        foreach ($langues_originales as $i=>$dir){
150                if ($i ==$lang){
151                $original = true;
152                $lang     = $spip_lang;
153                $lang_original = $i;
154                $dir = $dir;
155                include_spip('inc/lang');
156                break;
157                }
158       
159        }
160        $separateur = $tableau_separateur[$lang];
161
162    $tableau_analyse = bible_analyser_ref($passage,$traduction);
163    if (!is_array($tableau_analyse)){
164        return $tableau_analyse;
165    }
166    if ($mode_test){
167           return ;
168        }
169       
170       
171
172    $livre = $tableau_analyse[0];
173    $chapitre_debut = $tableau_analyse[1];
174    $verset_debut = $tableau_analyse[2];
175    $chapitre_fin = $tableau_analyse[3];
176    $verset_fin = $tableau_analyse[4];
177   
178   
179    $gateway = $tableau_traduction[$traduction]['gateway'];
180        $wissen  = $tableau_traduction[$traduction]['wissen'];
181        $unbound = $tableau_traduction[$traduction]['unbound']; 
182    $lire = $tableau_traduction[$traduction]['lire'];
183       
184        if ($lire){
185                include_spip('traduction/lire');
186                $tableau = recuperer_passage_lire($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lire,$lang);
187        }
188       
189        else if ($unbound){
190                include_spip('traduction/unbound');
191                $tableau = recuperer_passage_unbound($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$unbound,$lang);
192        }
193               
194               
195        else if ($wissen){
196                $isaie == true ? $livre = str_replace('Es','Is',$livre) : $passage = $passage;
197                include_spip('traduction/wissen');
198                $tableau = recuperer_passage_wissen($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$wissen,$lang);
199               
200                }
201       
202        else if ($gateway){
203                include_spip('traduction/gateway');
204                $tableau = recuperer_passage_gateway($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$gateway,$lang);
205
206               
207        }
208       
209        else{
210       
211                include_spip('traduction/'.$traduction);
212                $fonction= 'recuperer_passage_'.$traduction;
213                $tableau = $fonction($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lang);
214        }
215        include_spip('inc/utils');
216       
217        return (array('passage_texte'=>$tableau,'passage'=>$tableau_analyse,'lang_original'=>$lang_original,'spip_lang'=>$spip_lang,'lang'=>$lang,'separateur'=>$separateur));
218       
219        }
220function livre_long($i,$lang=''){
221        global $spip_lang;
222        $lang =='' ? $lang = $spip_lang : $lang=$lang;
223       
224        $i = livre_seul($i);
225       
226        $tableau_livres = bible_tableau('livres');
227       
228        return $tableau_livres[$lang][$i];
229
230}
231function filtre_ref($i){
232        global $spip_lang;
233        $tableau_livres = bible_tableau('livres');
234       
235        $livre =livre_seul($i);
236        $trad = $tableau_livres[$spip_lang][$livre];
237       
238        $c = str_replace($livre,'',$i);
239       
240        return $trad.' '.$c; 
241       
242       
243}
244function bible_afficher_references_direct($ref,$traduction,$lang,$nommer_trad=true){
245        $t = bible_analyser_ref($ref,$traduction);
246        $tableau_separateur = bible_tableau('separateur');
247        $lang_version           = info_bible_version($traduction,'lang_abrev');
248        $separateur = $tableau_separateur[$lang_version];
249        return afficher_references($t[0],$t[1],$t[2],$t[3],$t[4],$traduction,$separateur,$lang,$nommer_trad);
250}
251function afficher_references($livre,$cd,$vd,$cf,$vf,$trad,$separateur,$lang,$nommer_trad='true',$propre='oui',$url='oui'){
252        $tableau_traduction = bible_tableau('traduction');
253        $tableau_livres = bible_tableau('livres');
254        $trad = strtolower($trad);
255        $traduction = $tableau_traduction[$trad]['traduction'];
256       
257        $livre_long = $tableau_livres[$lang][$livre] ;
258       
259        $livre = str_replace('1','1 ',$livre);
260        $livre = str_replace('2','2 ',$livre);
261        $livre = str_replace('3','3 ',$livre);
262
263
264    if ($nommer_trad=='true'){
265        if ($url=='oui'){
266             $url = bible_url_passage($livre,$cd,$vd,$cf,$vf,$trad,$lang);
267                 $bloc_fin = " ({[$traduction->$url]})"; 
268            }
269            else{
270                  $bloc_fin = " ({$traduction})" ;
271            }
272    }
273        else {
274            $bloc_fin='';
275        }
276        if ($cd==$cf and $vd=='' and $vf==''){
277               
278                return "[$livre|$livre_long] ".$cd.$bloc_fin;
279       
280        }
281       
282        if ($vd=='' and $vf==''){
283               
284                return "[$livre|$livre_long] ".$cd.'-'.$cf.$bloc_fin;
285       
286        }
287
288        $chaine = "[$livre|$livre_long] ".$cd.$separateur." ".$vd;
289       
290        if ($cd!=$cf){
291                       
292                $chaine .= '-'.$cf.$separateur.' '.$vf;
293       
294        }
295        elseif ($vd!=$vf) {
296               
297                $chaine .= '-'.$vf;
298               
299        }
300       
301        $chaine.= $bloc_fin;
302   
303
304        if ($propre!='non'){$chaine = propre($chaine);}
305
306        return $chaine;
307
308}
309function bible_url_passage($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$traduction,$lang){
310    $tableau_traduction = bible_tableau('traduction');
311   
312    $gateway = $tableau_traduction[$traduction]['gateway'];
313        $wissen  = $tableau_traduction[$traduction]['wissen'];
314        $unbound = $tableau_traduction[$traduction]['unbound']; 
315    $lire = $tableau_traduction[$traduction]['lire'];
316
317        if ($lire){
318                include_spip('traduction/lire');
319                $url = generer_url_passage_lire($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lire,$lang);
320        }
321        else if ($unbound){
322                include_spip('traduction/unbound');
323                $url = generer_url_passage_unbound($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$unbound,$lang);
324        }       
325        else if ($wissen){
326                $isaie == true ? $livre = str_replace('Es','Is',$livre) : $passage = $passage;
327                include_spip('traduction/wissen');
328                $url = generer_url_passage_wissen($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$wissen,$lang);
329               
330                }
331       
332        else if ($gateway){
333                include_spip('traduction/gateway');
334                $url = generer_url_passage_gateway($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$gateway,$lang);     
335        }
336        else{
337                include_spip('traduction/'.$traduction);
338                $fonction= 'generer_url_passage_'.$traduction;
339                $url = $fonction($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lang);
340        }
341
342    return $url;
343}
344function traduction_longue($i){
345       
346        $tableau_traduction = bible_tableau('traduction');
347        return $tableau_traduction[$i]['traduction'];
348        }
349       
350function traduction_defaut($lang){
351        $normal =  lire_config('bible/traduction_'.$lang);
352        //pour compatibilite
353        $normal ='' ? $lire_config =lire_config('bible/traduction') : $normal = $normal;
354        return $normal;
355}
356
357
358
359?>
Note: See TracBrowser for help on using the repository browser.