source: spip-zone/_plugins_/spiperipsum/inc/spiperipsum_utils.php @ 66767

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

Passage en UTF-8 du fichier.

File size: 7.5 KB
Line 
1<?php
2// Convertir le code de langue SPIP en code langue du serveur
3function langue2code($langue){
4        switch(strtolower($langue))
5        {
6                case 'fr':
7                case 'co':
8                case 'fr_tu':
9                case 'oc':
10                case 'oc_lnc':
11                case 'oc_ni':
12                case 'oc_ni_la':
13                case 'oc_prv':
14                case 'oc_gsc':
15                case 'oc_lms':
16                case 'oc_auv':
17                case 'oc_va':
18                case 'roa':
19                case 'ty':
20                        $code = 'FR'; break;
21                case 'en':
22                case 'en_hx':
23                case 'ga':
24                case 'gd':
25                        $code = 'AM'; break;
26                case 'de':
27                        $code = 'DE'; break;
28                case 'es':
29                case 'an':
30                case 'ast':
31                case 'ca':
32                case 'es_co':
33                case 'eu':
34                case 'gl':
35                case 'la':
36                        $code = 'SP'; break;
37                case 'pt':
38                case 'pt_br':
39                        $code = 'PT'; break;
40                case 'it':
41                case 'it_fem':
42                case 'nap':
43                case 'ro':
44                case 'sc':
45                case 'scn':
46                case 'src':
47                case 'sro':
48                        $code = 'IT'; break;
49                case 'nl':
50                        $code = 'NL'; break;
51                case 'trf':  $code = 'TRF'; break;
52                case 'maa':  $code = 'MAA'; break;
53                default: 
54                        $code = _SPIPERIPSUM_LANGUE_DEFAUT; break;
55        }
56        return $code;
57}
58
59// Convertir la date Y-m-d en url avec l'annee, le mois et le jour
60function date2url_date($date){
61        $url = '';
62        $infos = getdate(strtotime($date));
63        $url = '&year=' . $infos['year'] . '&month=' . $infos['mon'] .'&day=' . $infos['mday'];
64        return $url;
65}
66
67// Determine le jour de la semaine a partir de la date fournie (0=dimanche)
68function date2jour_semaine($date){
69        $infos = getdate(strtotime($date));
70        return $infos['wday'];
71}
72
73// Charger le fichier des lectures et du saint du jour j
74// - si le fichier existe on retourne directement son nom complet
75// - sinon on le cree dans le cache du plugin
76function charger_lectures($langue, $jour){
77
78        $date = ($jour == _SPIPERIPSUM_JOUR_DEFAUT) ? date('Y-m-d') : $jour;
79        $code_langue = langue2code($langue);
80       
81        $dir = sous_repertoire(_DIR_CACHE,"spiperipsum");
82        $dir = sous_repertoire($dir,substr(md5($code_langue),0,1));
83        $f = $dir . $code_langue . "_" . $date . ".txt";
84
85        if (!file_exists($f)) {
86                // Determination de la sous-chaine url correspondant a la date (vide si jour courant)
87                $url_date = ($jour == _SPIPERIPSUM_JOUR_DEFAUT) ? '' : date2url_date($date);
88                // Date du jour
89                $tableau['date'] = $date;
90                // Traitement de l'evangile
91                $url = "http://www.levangileauquotidien.org/ind-gospel-d.php?language=".$code_langue.$url_date;
92                $textes = extraire_balises(recuperer_page($url), 'font');
93                $tableau['evangile']['titre'] = $textes[0];
94                $tableau['evangile']['verset'] = $textes[1];
95                $tableau['evangile']['texte'] = $textes[2];
96                $tableau['evangile'] = preg_replace(',</?font\b.*>,UimsS', '', $tableau['evangile']);
97                $tableau['evangile'] = preg_replace(',</?br\b.*>,UimsS', '<br />', $tableau['evangile']);
98                $tableau['evangile'] = str_replace('©', '&copy;', $tableau['evangile']);
99                // Traitement de la premiere lecture
100                $url = "http://www.levangileauquotidien.org/ind-gospel-d.php?language=".$code_langue."&typeRead=FR".$url_date;
101                $textes = extraire_balises(recuperer_page($url), 'font');
102                $tableau['premiere']['titre'] = $textes[0];
103                $tableau['premiere']['verset'] = $textes[1];
104                $tableau['premiere']['texte'] = $textes[2];
105                $tableau['premiere'] = preg_replace(',</?font\b.*>,UimsS', '', $tableau['premiere']);
106                $tableau['premiere'] = preg_replace(',</?br\b.*>,UimsS', '<br />', $tableau['premiere']);
107                $tableau['premiere'] = str_replace('©', '&copy;', $tableau['premiere']);
108                // Traitement de la seconde lecture - uniquement le dimanche
109                if (date2jour_semaine($date) == 0) {
110                        $url = "http://www.levangileauquotidien.org/ind-gospel-d.php?language=".$code_langue."&typeRead=SR".$url_date;
111                        $textes = extraire_balises(recuperer_page($url), 'font');
112                        $tableau['seconde']['titre'] = $textes[0];
113                        $tableau['seconde']['verset'] = $textes[1];
114                        $tableau['seconde']['texte'] = $textes[2];
115                        $tableau['seconde'] = preg_replace(',</?font\b.*>,UimsS', '', $tableau['seconde']);
116                        $tableau['seconde'] = preg_replace(',</?br\b.*>,UimsS', '<br />', $tableau['seconde']);
117                        $tableau['seconde'] = str_replace('©', '&copy;', $tableau['seconde']);
118                }
119                // Traitement du psaume
120                $url = "http://www.levangileauquotidien.org/ind-gospel-d.php?language=".$code_langue."&typeRead=PS".$url_date;
121                $page = recuperer_page($url);
122                // -- on traite façon particuliere les numéros de verset du psaume
123                preg_match('/,[0-9\.\-]*\./', $page, $fin_verset);
124                $textes = extraire_balises($page, 'font');
125                $tableau['psaume']['titre'] = $textes[0];
126                $tableau['psaume']['verset'] = $textes[1] . $fin_verset[0];
127                $tableau['psaume']['texte'] = $textes[2];
128                $tableau['psaume'] = preg_replace(',</?font\b.*>,UimsS', '', $tableau['psaume']);
129                $tableau['psaume'] = preg_replace(',</?br\b.*>,UimsS', '<br />', $tableau['psaume']);
130                $tableau['psaume'] = str_replace('©', '&copy;', $tableau['psaume']);
131                // Traitement du commentaire
132                // -- titre du commentaire
133                $url = "http://feed.evangelizo.org/reader.php?lang=".$code_langue."&type=comment_t&date=".date("Ymd", strtotime($date));
134                $page = recuperer_page($url);
135                $tableau['commentaire']['titre'] = $page;
136                // -- auteur du commentaire
137                $url = "http://feed.evangelizo.org/reader.php?lang=".$code_langue."&type=comment_a&date=".date("Ymd", strtotime($date));
138                $page = recuperer_page($url);
139                $tableau['commentaire']['auteur'] = $page;
140                // -- source du commentaire
141                $url = "http://feed.evangelizo.org/reader.php?lang=".$code_langue."&type=comment_s&date=".date("Ymd", strtotime($date));
142                $page = recuperer_page($url);
143                $tableau['commentaire']['source'] = $page;
144                $tableau['commentaire'] = preg_replace(',</?br\b.*>,UimsS', '', $tableau['commentaire']);
145                $tableau['commentaire'] = preg_replace(',<p\b.*>.*</p\b.*>,UimsS', '', $tableau['commentaire']);
146                // -- texte du commentaire
147                $url = "http://feed.evangelizo.org/reader.php?lang=".$code_langue."&type=comment&date=".date("Ymd", strtotime($date));
148                $page = recuperer_page($url);
149                $tableau['commentaire']['texte'] = $page;
150                $tableau['commentaire']['texte'] = preg_replace('#(</?br\b.*>)#UimsS', '<br />', $tableau['commentaire']['texte']);
151                $tableau['commentaire']['texte'] = preg_replace('#(&nbsp;){2,}#UimsS', '', $tableau['commentaire']['texte']);
152                $tableau['commentaire']['texte'] = preg_replace(',<p\b.*>.*</p\b.*>,UimsS', '', $tableau['commentaire']['texte']);
153                $tableau['commentaire']['texte'] = preg_replace(',ú,UimsS', '&oelig;', $tableau['commentaire']['texte']);
154                $tableau['commentaire']['texte'] = trim($tableau['commentaire']['texte']);
155
156                // Traitement du saint du jour
157                // -- Traitement du nom seul et de l'url permettant de recuperer les textes
158                $url = "http://feed.evangelizo.org/reader.php?lang=".$code_langue."&type=saint&date=".date("Ymd", strtotime($date));
159                $page = recuperer_page($url);
160                $balise = extraire_balises($page, 'a');
161                $titre = preg_replace(',</?a\b.*>,UimsS', '', $balise[0]);
162                $tableau['saint']['titre'] = preg_replace(',Ü,UimsS', '&dagger;', $titre);
163                // -- Traitement des textes
164                $attribut = extraire_attribut($balise, 'onclick');
165                preg_match(';window.open\(\'(.[^\s,\']+);i', $attribut[0], $url_texte);
166                $page = recuperer_page($url_texte[1]);
167                $textes = extraire_balises(extraire_balise($page, 'div'), 'p');
168                $tableau['saint']['texte'] = '';               
169                foreach($textes as $p) {
170                        if ((!extraire_attribut($p, 'align')) AND (!extraire_attribut($p, 'style')))
171                                $tableau['saint']['texte'] .= $p;               
172                }
173                if (!$tableau['saint']['texte'])
174                        $tableau['saint']['texte'] = preg_replace(',</?div\b.*>,UimsS', '', extraire_balise($page, 'div'));
175                $tableau['saint']['texte'] = trim(str_replace('&nbsp;', '', $tableau['saint']['texte']));
176                $tableau['saint']['url'] = $url_texte[1];
177
178                ecrire_fichier($f, serialize($tableau));
179        }
180        return $f;
181}
182
183?>
Note: See TracBrowser for help on using the repository browser.