source: spip-zone/_plugins_/spip-bible/trunk/traduction/na28.php @ 65521

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

pour les traductions autre que wissen/bible/unbound, on met en suffixe de la fonction la traduction

File size: 3.3 KB
Line 
1<?php
2
3function generer_url_passage_na28($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lang){
4        // passage en int
5        settype($chapitre_debut,'int');
6        settype($chapitre_fin,'int');
7        settype($verset_fin,'int');
8        settype($verset_debut,'int');
9        // Correction pour correspondre au systeme de NA
10        if ($verset_fin == 0){
11                $verset_fin= 9999;     
12        }
13        if ($verset_debut == 0){
14                $verset_debut=1;
15        }
16       
17        $livres =       bible_tableau('gateway');
18        $base   = 'http://www.nestle-aland.com/en/online-lesen/text/bibeltext/lesen/stelle';
19        $id             = ($livres[$lang][$livre]) -46; // numéro du livre
20       
21        $debut  = $chapitre_debut * 10000 + $verset_debut;
22        $fin    = $chapitre_fin * 10000 + $verset_fin;
23        return ($base."/$id/$debut/$fin");
24}
25function recuperer_passage_na28($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lang){
26        $param_cache = array($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lang,'na28');
27        if (_NO_CACHE == 0){
28                include_spip('inc/bible_cache');
29                $cache = bible_lire_cache($param_cache);
30                if ($cache){
31                        return $cache; 
32                }
33        }
34        $tab = array();// endroit où l'on stocke le passage
35       
36        if ($chapitre_debut == $chapitre_fin){ // cas le plus simple
37        $url = generer_url_passage_na28($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lang);
38        $tab[$chapitre_debut] = extraire_passage($url,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin);
39        }
40        else {
41            $chap = $chapitre_debut;
42           
43            while ($chap <= $chapitre_fin){ // On reconstruit chapitre par chapitre
44                if ($chap == $chapitre_debut){// pour le premier chapitre du lot       
45                        $url = generer_url_passage_na28($livre,$chapitre_debut,$verset_debut,$chapitre_debut,0,$lang);
46                        $tab[$chap] = extraire_passage($url,$verset_debut,0); 
47                }
48                else if ($chap == $chapitre_fin){// pour le dernier chapitre du lot
49                        $url = generer_url_passage_na28($livre,$chapitre_fin,1,$chapitre_fin,$verset_fin,$lang);
50                        $tab[$chap] = extraire_passage($url,1,$verset_fin); 
51                }
52                else {// pour les autres chapitre
53                        $url = generer_url_passage_na28($livre,$chap,0,$chap,0,$lang);
54                        $tab[$chap] = extraire_passage($url,1,$chap,1000000);   
55                }
56                $chap++;       
57            }
58        }
59        if (_NO_CACHE == 0){
60                bible_ecrire_cache($param_cache,$tab);
61        }
62        return $tab;
63}
64
65function extraire_passage($url,$verset_debut,$verset_fin){
66        include_spip('inc/querypath');
67        include_spip("inc/distant");
68        include_spip("inc/charsets");
69        $code = importer_charset(recuperer_page($url),'utf-8');
70        $tab = explode('<body>',$code);
71        $code = $tab[2];
72        $tab = explode('</body>',$code);
73        $code = $tab[0];
74        $code = str_replace("</blockquote>",'',$code);
75        $code = str_replace("<blockquote>",'',$code);
76        $code = str_replace('<div class="lineBreak"></div>','',$code);
77       
78        $qp = spip_query_path($code,'.markdown',array('ignore_parser_warnings'=>true,'omit_xml_declaration'=>true,'encoding'=>'UTF-8','use_parser'=>'xml'));
79    $tab_verset=array();
80   
81    $versets = $qp->children(); // chaque p
82    foreach ($versets as $verset){ // le contenu de chaque <p>
83        $id    = qp($verset,'.verse')->text();
84        $texte = qp($verset,'.greek')->text();
85        if ($texte!='') {// pb des retour à la ligne dans les verset
86                if ($id){
87                        $tab_verset[$id]=$texte;
88                }
89                else {
90                        $tab_verset[$oldid]=$texte;
91                }
92        }
93        $oldid=$id;
94    }
95    return($tab_verset);
96   
97}
98?>
Note: See TracBrowser for help on using the repository browser.