Changeset 104813 in spip-zone for _plugins_/spip-bible


Ignore:
Timestamp:
Jun 7, 2017, 10:04:42 PM (22 months ago)
Author:
Maïeul Rouquette
Message:

Merge branch 'master' of https://git.spip.net/_plugins_/spip-bible

Location:
_plugins_/spip-bible
Files:
2 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-bible/trunk

  • _plugins_/spip-bible/trunk/bible_affichage/texte_standard.html

    r73964 r104813  
    1 <BOUCLE_chapitre(POUR){tableau #ENV{passage_texte}}>[{{#CLE}}(#ENV{numeros}|=={oui}|oui)][(#ENV{retour}|=={oui}|oui)[(#COMPTEUR_BOUCLE|>{1}|oui)_ ]]<BOUCLE_verset(POUR){tableau #VALEUR}>[(#ENV{retour}|=={oui}|oui)[(#COMPTEUR_BOUCLE|>{1}|oui)
     1<BOUCLE_chapitre(POUR){tableau #ENV{passage_texte}}>[{{#CLE}}(#ENV{numeros}|=={oui}|oui)][(#ENV{retour}|=={oui}|oui)]<BOUCLE_verset(POUR){tableau #VALEUR}>[(#ENV{retour}|=={oui}|oui)[(#COMPTEUR_BOUCLE|>{1}|oui)
    22_ ]][<sup>#CLE</sup>(#ENV{numeros}|=={oui}|oui)] #VALEUR</BOUCLE_verset>
    33</BOUCLE_chapitre>
  • _plugins_/spip-bible/trunk/bible_fonctions.php

    r74400 r104813  
    4646}
    4747function bible_analyser_ref($passage,$traduction){
    48     $tableau_traduction = bible_tableau('traduction');
    49     $tableau_separateur = bible_tableau('separateur');
     48        $tableau_traduction = bible_tableau('traduction');
     49        $tableau_separateur = bible_tableau('separateur');
    5050        $tableau_livres = bible_tableau('livres');
    5151        global $spip_lang;
    52     $verset_debut = '';
     52        $verset_debut = '';
    5353
    5454        $lang = $tableau_traduction[$traduction]['lang'];
    55     $langues_originales = bible_tableau('original');
    56     array_key_exists($lang,$langues_originales) ? $lang = $spip_lang : $lang = $lang;
     55        $langues_originales = bible_tableau('original');
     56        array_key_exists($lang,$langues_originales) ? $lang = $spip_lang : $lang = $lang;
    5757       
    5858        $separateur = $tableau_separateur[$lang];
     
    6262        // phase d'anaylse
    6363       
    64         $livre = strtolower($livre);
    6564        $tableau = explode('-',$passage);
    6665        if (count($tableau)==2){
  • _plugins_/spip-bible/trunk/paquet.xml

    r103720 r104813  
    22        prefix="bible"
    33        categorie="divers"
    4         version="5.0.6"
     4        version="5.1.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
     
    2424        <pipeline nom="affiche_droite" action="affiche_droite" inclure="bible_pipelines.php" />
    2525
     26        <necessite nom="querypath" compatibilite="[1.1.1;[" />
    2627</paquet>
  • _plugins_/spip-bible/trunk/traduction/lire.php

    r84548 r104813  
    33function generer_url_passage_lire($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lire,$lang){
    44        list($chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$petit) = lire_petit_livre($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lang);
    5         if (!$petit){
    6                 return "http://lire.la-bible.net/index.php?reference=$livre+$chapitre_debut&versions%5B%5D=$lire";     
    7         }
    8         else {
    9                 return "http://lire.la-bible.net/index.php?reference=$livre&versions%5B%5D=$lire";     
    10         }
     5        $url = "http://lire.la-bible.net/lecture/$livre/$chapitre_debut/$verset_debut/$lire";
     6        return $url;
    117}
    128
     
    2824}
    2925function recuperer_passage_lire($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lire,$lang){
    30         $param_cache = array(   'version'=>3,
     26        $param_cache = array(   'version'=>4,
    3127                                'livre'=>$livre,
    3228                                'chapitre_debut'=>$chapitre_debut,
     
    4440                }
    4541        }
    46         $url_base="http://lire.la-bible.net/texte.php?versions[]=".$lire;
    47        
    48        
    4942        list($chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$petit) = lire_petit_livre($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lang);
    5043       
     44        $tableau_resultat = array();
    5145
    52         $tableau_resulat = array();
    53        
    54                 //recuperation du passage
     46        //recuperation du passage
    5547        include_spip("inc/distant");
    5648        include_spip("inc/charsets");
     49        include_spip("inc/querypath");
     50        $chapitre =     intval($chapitre_debut);
     51        $chapitre_fin = intval($chapitre_fin);
     52        while ($chapitre <= $chapitre_fin) {
     53                // Créer un sous tableau
     54                $tableau_resultat[$chapitre] = array();
     55
     56                // recuperer les fichiers distants
     57                $url = generer_url_passage_lire($livre,$chapitre_debut,$verset_debut,$chapitre_fin,$verset_fin,$lire,$lang);
     58                $code = charset2unicode(importer_charset(recuperer_page($url,'utf-8')));
     59
     60                //// elagage pour recuperer juste zone_verset
     61                $tableau = explode("<main", $code);
     62                $code = "<main".$tableau[1];
     63                $tableau = explode("</main>", $code);
     64                $code = $tableau[0]."</main>";
     65
     66                $qp = htmlqp($code, '', array( 'ignore_parser_warnings'=>true,'omit_xml_declaration'=>true));
     67                $qp->remove(".chapitre, .titre2,  .titre3,  .titre4");//suppression des intertitres:
     68                $versets = $qp->find("li[rel=\"$lire\"]  div.zone_versets");
     69                $versets = $versets->xml(); // le code fournit par lire.la-bible.net est tellement irrégulier que je renonce à parser directement le xml avec query_path, on va refaire d'une manière salle
     70                $versets = explode('<span class="reference">', $versets);
     71                unset($versets[0]);
     72                foreach ($versets as $nb => $texte){
     73                        $tableau = explode('</span></a>', $texte);
     74                        $texte = $tableau[1];
     75                        $texte = strip_tags($texte);
     76                        $texte = preg_replace( "/\r|\n/", " ", $texte);
     77                        $texte = trim($texte);
     78                // Insérer le texte dans le tableau, si on a demandé ce verset
     79                        if ($chapitre_debut == $chapitre_fin) { // sur un seul chapitre
     80                                if (
     81                                                ($nb >= $verset_debut and $nb <= $verset_fin) // verset de fin et verset de debut
     82                                                or
     83                                                ($verset_debut == $verset_fin and $verset_fin == '') // pas de précision de verset > chapitre complet
     84                                ) {
     85                                        $tableau_resultat[$chapitre][$nb] = $texte;
     86                                }       
     87                        }       elseif ($chapitre == $chapitre_debut) { // Si plusieurs chapitres, et qu'on parse en ce moment le chapitre de début
     88                                        if ($nb >= $verset_debut or $verset_debut == '') {
     89                                                $tableau_resultat[$chapitre][$nb] = $texte;
     90                                        }       
     91                        } elseif ($chapitre == $chapitre_fin) { // Si plusieurs chapitres, et qu'on parse en ce moment le chapitre de fin {
     92                                        if ($nb <= $verset_fin or $verset_fin == '') {
     93                                                $tableau_resultat[$chapitre][$nb] = $texte;
     94                                        }
     95                        } else { // si plusieurs chapitres et qu'on parse en ce moment un chapitre intermédiaire
     96                                        $tableau_resultat[$chapitre][$nb] = $texte;
     97                        }
     98                }
     99
     100                // passer au chapitre suivant
     101                $chapitre++;
     102        }
    57103       
    58        
    59         $texte = '';
    60         $i = $chapitre_debut;
    61         while ($i<=$chapitre_fin){
    62                 $url = $url_base."&reference=".$livre."+".$i;
    63                
    64                 $i == $chapitre_debut ? $debut = $verset_debut : $debut=1;
    65                 $i == $chapitre_fin ? $fin = $verset_fin : $fin = '';
    66                 $verset_debut =='' and $i==$chapitre_debut ? $debut=1 : $debut=$debut;
    67                 $verset_fin =='' and $i==$chapitre_fin ? $debut=1 : $debut=$debut;             
    68                 $fin == '' ? $fin ='' : $fin =$fin +1;
    69                
    70                 $tableau_resultat[$i] = recuperer_versets(lire_traiter_code(importer_charset(recuperer_page($url,'utf-8'))),$debut,$fin);
    71                
    72                 $i++;
    73         }
    74104        if (_NO_CACHE == 0){
    75105                bible_ecrire_cache($param_cache,$tableau_resultat);
     
    77107        return $tableau_resultat;
    78108}
    79 
    80 function lire_traiter_code($code){
    81         $code = lire_supprimer_interitre($code);
    82         $tableau = explode('<div class="styletxt">',$code);
    83         $tableau = explode('</div>',$tableau[1]);
    84        
    85         $code = $tableau[0];
    86        
    87         $code = preg_replace('#<span class="reference">[0-9]*</span>#i','*spip*',$code);
    88         $code = strip_tags($code);
    89         $tableau = explode("*spip*",$code);
    90         $total = count($tableau);
    91         $tableau = array_slice($tableau,1,$total-1);
    92        
    93         $code = '';
    94        
    95         $i = 1;
    96         foreach ($tableau as $verset){
    97                 $i == 1 ? $code .= '<sup>1</sup> '.$verset : $code .= '<br /><sup>'.$i.'</sup> '.$verset;
    98                
    99                 $i++;
    100         }
    101 
    102         return $code;
    103        
    104 }
    105 function supprimer_rupture_ligne($code){
    106         return preg_replace("#(\n|\r)#"," ",$code);
    107         }
    108 function recuperer_versets($code,$vd,$vf){
    109        
    110         $resultat = array();
    111         $tableau = explode('<sup>'.$vd.'</sup>',$code);
    112        
    113         $code = '<sup>'.$vd.'</sup>'.$tableau[1];
    114        
    115         $tableau = explode('<sup>'.$vf.'</sup>',$code);
    116 
    117         $code = str_replace('<br />','',$tableau[0]);
    118         $versets = array();
    119         preg_match_all("#<sup>([0-9]*)</sup>#",$code,$versets);
    120 
    121                
    122         $texte_verset = preg_split('#<sup>([0-9]*)</sup>#',$code);
    123         if ($texte_verset[0] == ''){
    124                 array_shift($texte_verset);     
    125         }
    126 
    127         $i = 0;
    128         foreach ($versets[1] as $verset){
    129                 $resultat[$verset] = trim($texte_verset[$i]);
    130                 $i++;   
    131         }
    132        
    133         return supprimer_rupture_ligne($resultat);
    134 
    135 }
    136 
    137 function lire_supprimer_interitre($texte){
    138    
    139     $texte = preg_replace("#<p></p>#","",$texte);
    140     if (preg_match('#p class="titre4"#',$texte) == false){ // c'est ton jamais, des fois qu'il n'y auarit pas d'intertitre ce serait gentils
    141         return $texte;
    142    
    143     }
    144    
    145     $tableau = explode('<p class="titre4">',$texte);
    146    
    147     $texte = array_shift($tableau);
    148     foreach ($tableau as $chaine){
    149         $tableau2 = explode("</p>",$chaine);
    150         $i = array_shift($tableau2); // on peut avoir des paragraphes pour la poesie, et pas seulement pour les intertitres
    151         $texte .= implode($tableau2,'</p>');
    152        
    153    
    154     }
    155  
    156     return $texte;
    157 }
    158 ?>
Note: See TracChangeset for help on using the changeset viewer.