Code source de ch.lerolle.free.fr/include/frmwrk.php

modifié le 1er avril 2024, taille: 25,16 Ko
NB: Les fonctions (<function>) sont intégrées dans la page appelante, en général avant la balise <body>
ou dans un document externe appelé par un 'include', 'include_once' ou 'require',
localisé dans le dossier ch.lerolle.free.fr/include, ou un de ses sous-dossiers, ou dans le même dossier que la page appelant l'include
(règle pour les Pages Perso de Free, mon hébergeur gratuit (❤️❤️❤️)...)

validation du HTML: W3C ou Aborla avec correction automatique
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
<!-- DEBUT INCLUDE frmwrk.php CopyLeft Christophe Lerolle, initié le 11/11/2015   &nbsp; &thinsp; apostrophe-incline: ‘’ code: &#8217; «» ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝ
 //❤️ 🔴 🟠 🟡 🟢 🔵 🟣 🟤 ⚫ ⚪ 🟥 🟧 🟨 🟩 🟦 🟪 🟫 ⬛ ⬜
consulter mes scripts en ligne: http://ch.lerolle.free.fr/rsrc/logiciels/scripts.php
NB: toutes les fonctions sont consultables dans http://ch.lerolle.free.fr/include/... -->

<!--<script>  W3C dit que language= et type= sont inutiles ! -->
    <script><!-- ferme la page en cours -->
        function _closeWindow() {window.opener = self; self.close();}
    </script>

<?php /* NB: l'INCLUDE du source d'une fonction doit être fait AVANT l'appel de la-dite fonction !
Jean si tu as des micro-fonctions sympas à me donner pour enrichir ce framework, ne te gêne pas: WANTED... */
// pour optimiser, j'ai remplacé tous les include_once par des include ...

mb_internal_encoding('UTF-8');/* recommandé par Jean pour forcer l'interprétaion des caractères en UTF-8 */

// include 'init_variables.php'; DÉPLACÉ: désormais, c'est init_variables.php qui inclut frmwrk.php ...
        
include 'fn-affiche_date.php';/* ex: <?php affiche_date(getlastmod());?> */

include 'fn-affiche_def.php';/* ex: <?php affiche_def('fr','Woody Allen','');?> */

include 'fn-affiche_dt_source.php';/* ex: <?php affiche_dt_source();?> */

include 'fn-affiche_id.php';/* ex: <?php affiche_id('mon-titre');?> mon-titre <?php bouton_bas_haut();?> */

include 'fn-affiche_mot_cle.php';/* ex: <?php affiche_mot_cle('Afrique');?> */

include 'fn-aff_lecteur_audio.php';/* ex: <?php aff_lecteur_audio('/rsrc/sons/temoignage-hillereau-bernard.mp3');?> */

include 'fn-aff_lecteur_video.php';/* ex: <?php aff_lecteur_video( https://www.youtube.com/embed/videoseries?list=PL6FAA3366163DA8B8);?> */

include 'fn-aff_taille_fichier.php';/* ex: le fichier pèse <?php aff_taille_fichier( $_SERVER["REQUEST_URI"]);?>  */

include 'fn-bibleverse_rich.php';/* ex: <?php echo bibleverse_rich('');?> ou <?php echo bibleverse_rich('Genèse 3:1');?> */

include 'fn-inscription_veille_maj.php';/* ex: <?php inscription_veille_maj( 'http://www.changedetection.com/log/fr/free/lerolle/ch/oleron-infos_log.html');?> */

include 'fn-suppr_accents.php';/* ex: <?php suppr_accents('Ça va mon cœur adoré ?');?> */

function aligne_str($strEntree,$LongueurAlign,$carAjoute)
/* ajoute le caractere $carAjoute en fin du string $strEntree jusqu'à la taille de $LongueurAlign caractères... 
   exemple usage: $page_actuelle = aligne_str($page_actuelle, 35, $navigch); */
{
    
$strEntreeLongueur    strlen($strEntree);
    
$strSortie            $strEntree;
    
    for (
$strSortieLongueur $strEntreeLongueur$strSortieLongueur $LongueurAlign$strSortieLongueur++)
        {
$strSortie .= $carAjoute;}    // version abrégée de {$strSortie = $strSortie.$carAjoute;}
//        echo '$strSortie='.$strSortie.'<br>';
    
return $strSortie;
}

function 
cree_lien_profond($url_cible,$texte_ancrage/* <?php cree_lien_profond("aigrefeuille_d'aunis_eglise_saint-etienne.php","Aigrefeuille d’Aunis");?> */
/*    crée un lien "standard" avec:
• target="_blank" ouverture dans un nouvel onglet
• ciblage vers un fragment de texte dans la page: de "Vous%20êtes%20ici" jusqu'à "maj%20le"
*/
{//    echo '$url_cible='.$url_cible.' $texte_ancrage='.$texte_ancrage.'<br>';
    
echo '<a target="_blank" href="'.$url_cible.'#:~:text=Vous%20êtes%20ici,maj%20le">'.$texte_ancrage.'</a>';
//    NB:j'encadre les variables avec " et non ', car ' ne fonctionne pas quand il y a un ' dans l'une des variables... 
}

function 
encadre_source($code_source)    /* ex: <?php encadre_source($code_source);?> */
{?>
<table class="centre fonds-h4" cellpadding="2" cellspacing="0">
    <tbody>
    <tr>
        <td>
            <?php echo $code_source;?>
        </td>
    </tr>
    <tbody>
</table>
<?php
}

function 
encadre_verset($MessageHtml)    /* ex: <?php encadre_verset($MessageHtml);?> */
{
    
// <center> permet de centrer la cellule dans la page
    // class="centre" permet de centrer le texte dans la cellule
?>
<center>
<table class="centre bordure-ligne-fine">
    <tbody>
    <tr>
        <td class="fonds-jaune-leger">
            <?php echo $MessageHtml;?>
        </td>
    </tr>
    </tbody>
</table>
</center>
<?php
}

function 
encadre_verset_defile($RefMessage,$MessageHtml,$TxtMessageDefile)
{    
// Usage: 1) bibleverse_rich($NuméroMessage); // j'initialise les variables du n° de verset demandé (obligatoire)...
//          2) encadre_verset_defile($RefMessage,$MessageHtml,$TxtMessageDefile); // mise en forme des variables globales fournies...
?>
    <center>
    <?php // echo 'encadre_verset_defile2 $TxtMessageDefile='.$TxtMessageDefile.'<br>';?>
    <details>
        <summary><img src="/rsrc/images/parchemin-court.png" alt="parchemin" width="50" height="25" align="middle" title="► cliquer pour voir la suite du verset &nbsp;<?php echo $RefMessage;?> ▼
        
        ▼ cliquer de nouveau pour le cacher ►...">
            <marquee scrollamount="2" scrolldelay="20" loop="-1" hspace="35%">
                <?php echo '<b><i>'.$TxtMessageDefile.'</i></b> ... <small>►</small> <big><big>🔎</big></big> voir <b><i>'.$RefMessage./*' ('.$RefVersetExplicite.')*/'</i></b> enrichi';?>
            </marquee>
        </summary>
        <span class="centre"><?php encadre_verset($MessageHtml);?>
        <a href="#bas-de-page-debut" title="Voir un autre verset de la Bible, en bas de page"><img src="/1com/img/bas-de-page.png" alt="Bas" height="30"></a></span>
    </details>
    </center>
<?php
}

function 
bouton_accueil()
{
$chemin_page $_SERVER["SCRIPT_NAME"];
$page_actuelle basename($_SERVER["SCRIPT_NAME"]); // nom du fichier .php actuel

if         ( $chemin_page == '/index.php' )    // affichage du bouton 'globe-atlantique' y'a pas plus haut !
        
{    echo '<span class="infobulle-t2"><img src="/1com/img/globe-atlantique.gif" alt="globe" width="32">
            <span>Vous êtes à l’accueil de mes sites web publics</span>
        </span>'
;
        }
elseif    ( 
$page_actuelle == 'index.php' )    // affichage du bouton 'remonter au niveau supérieur'
        
{    echo '<span class="infobulle-t2 c-a-gauche"><img src="/1com/img/bouton-retour2.png" alt="Retour" width="35" height="35">
            <span><br>
            <a href="../index.php"><b>Accueil</b> du site (<b>remonter d’un niveau</b>)</a></span>
         </span>'
;
        }
else    
// affiche la maison, avec lien vers la page d'index
        
{    echo '<span class="infobulle-t2 c-a-gauche"><img src="/1com/img/home.png" alt="Accueil" width="35" height="35">
            <span><br>
            <a href="index.php"><b>Accueil du site</b></a></span>
         </span>'
;
        }
}

function 
bouton_info($taille_infobulle,$source)    /* ex: <?php bouton_info(6,'Bonjour, c’est bouton_info');?> */
/* NB: voir toutes les tailles d'infobulles possibles dans /1com/css/style-rsrc.css */
{
echo 
'
<span class="infobulle-t'
.$taille_infobulle.'"><img src="/1com/img/bouton-info.png" alt="Info" title="" height="25">
    <span class="noir">'
.$source.'</span>
</span>'
;
}

function 
affiche_motif($nb_motif,$motif)    /* ex: <?php affiche_motif(5,'❤️');?> */
{    /* j'encadre le motif avec de parenthèses pour permettre une sélection de (❤️❤️❤️❤️) ou (❤️❤️❤️) */
    
echo '<span class="rouge clignotant"><big><big>(';
    for (
$occurrence 1$occurrence <= $nb_motif$occurrence++)
    {
        if    (
$motif == '')    echo '❤️';
        else                echo 
$motif;
    }
    echo 
')</big></big></span>';
}

function 
bouton_coups_de_coeur()/* ex: <?php bouton_coups_de_coeur();?> */
{?>
    <a target="_blank" href="https://www.google.fr/search?hl=fr&as_q=&as_epq=%E2%9D%A4%EF%B8%8F%E2%9D%A4%EF%B8%8F%E2%9D%A4%EF%B8%8F%E2%9D%A4%EF%B8%8F%E2%9D%A4%EF%B8%8F&as_sitesearch=ch.lerolle.free.fr%2F&as_occt=any&safe=active"><b>Chercher</b> (<img src="/1com/img/coeur-x5.gif" alt="5 coeurs" height="20" class="align-vertical-milieu">)</a> (mes "coups de coeur") dans toutes mes pages...
<?php
}

function 
bouton_chercher($dossier_local,$site_local)/* ex: <?php bouton_chercher('rsrc','Ressources.fr.cr');?> */
{?>
    <span class="infobulle-t3 c-a-gauche"><b>Chercher</b> <img src="/1com/img/loupe.png" alt="Loupe" height="35" width="35" class="align-vertical-milieu">
    <span class="noir">Chercher <b>un</b> ou <b>plusieurs mots</b> dans:<br>
    <br>• <b>cette page</b>: <img src="/1com/img/ctrl.gif" alt="Ctrl" height="25"> + <img src="/1com/img/f.gif" alt="F" height="25"> + <b>le mot</b> + <img src="/1com/img/touche-entree.jpg" alt="Entrée" height="25"><br>
    <?php
    $URL_racine 
'https://www.google.fr/advanced_search?q=site:ch.lerolle.free.fr/';
    if (
$dossier_local !== '')
    {    
// on propose la recherche limitée au sous-domaine local
        
$URL_recherche $URL_racine.$dossier_local.'/';
        echo 
'<br>• <a target="_blank" href="'.$URL_recherche.'&amp;hl=fr&amp;num=100">le portail <b>'.$site_local.'</b> (local)</a><br>';
    }
    echo 
'<br>• <a target="_blank" href="'.$URL_racine.'&amp;hl=fr&amp;num=100">le portail <b>ch.lerolle.free.fr</b> (global)</a><br>
    Exemple: '
bouton_coups_de_coeur(); echo '<br>';
    
    global 
$dossier;
    if (
$dossier == 'bible')    // on propose, en +, une recherche dans la Bible (copié-collé de bouton_chercher_bible(), inutilisable ici...)
    
{?>
        <br>• <b>la Bible</b> (Internet complet): <img alt="livre" title="" src="/1com/img/livre-ouvert.png" width="50"><br>
         &nbsp; ○ <a target="_blank" href="https://www.google.fr/search?hl=fr&amp;as_q=bible&amp;as_epq=en+v%C3%A9rit%C3%A9&amp;as_oq=&amp;as_eq=&amp;as_nlo=&amp;as_nhi=&amp;lr=&amp;cr=&amp;as_qdr=all&amp;as_sitesearch=&amp;as_occt=any&amp;safe=images&amp;as_filetype=&amp;tbs="><b>remplacer les mots "en vérité" par votre/vos mots à chercher</b></a><br>
         &nbsp; ○ puis cliquer sur <p style="background-color:rgb(51,204,255); display:inline;">Recherche avancée</p>, <b>en bas de page</b><br>    
    <?php
    
}

    echo 
'</span>
    </span>'
;
}

function 
bouton_chercher_bible() /* usage: <?php bouton_chercher_bible();?> */
{?>
    <span class="infobulle-t3"><img src="/1com/img/loupe.png" alt="Loupe" height="35" width="35" class="align-vertical-milieu"> Chercher dans la Bible <img alt="livre" title="" src="/1com/img/livre-ouvert.png" width="50">
        <span>• <a target="_blank" href="https://www.google.fr/search?hl=fr&as_q=bible&as_epq=en+v%C3%A9rit%C3%A9&as_oq=&as_eq=&as_nlo=&as_nhi=&lr=&cr=&as_qdr=all&as_sitesearch=&as_occt=any&safe=images&as_filetype=&tbs="><b>remplacer les mots "en vérité" par votre/vos mots à chercher</b></a><br>
        • puis cliquer sur <p style="background-color:rgb(51,204,255); display:inline;">Recherche avancée</p>, <b>en bas de page</b></span>
    </span>
<?php
}
    
function 
bouton_bas()/* ex: <?php bouton_bas();?> */
{?> 
 &nbsp; &nbsp; &nbsp; <a href="#bas-de-page-debut" title="Bas de page: Origine des visites, Partager, Code \'source\' etc..."><img src="/1com/img/bas-de-page.png" class="align-vertical-milieu" alt="Bas" height="20"></a>
<?php
}

function 
bouton_haut()/* ex: <?php bouton_haut();?> */
{?>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" title="Haut de page: Menu, Chercher, Traduction, etc..."><img src="/1com/img/haut-de-page.png" class="align-vertical-haut" alt="Haut" height="20"></a>
<?php
}

function 
bouton_precedent()/* ex: <?php bouton_precedent();?> */
{?>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:history.go(-1)" title="Vue précédente de cette page"><img src="/1com/img/bouton-retour1.png" class="align-vertical-milieu" alt="Vue précédente" height="20"></a>
<?php
}

function 
bouton_fermer_page()/* ex: <?php bouton_fermer_page;?> */
{if (!empty($_SERVER['HTTP_REFERER']))
    echo 
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:window.close();" title="Fermer cette page, retouner à '.$_SERVER['HTTP_REFERER'].'"><img src="/1com/img/bouton-fermer.png" alt="Fermer" width="30"></a>';}

function 
bouton_fermer_page2()/* ex: <?php bouton_fermer_page2();?> */
{if (!empty($_SERVER['HTTP_REFERER'])) // cette version est utilisée dans paroisse/celebrer, et nécesstite un script en Head...
//    echo '<a href="#" onclick="javascript:_closeWindow();" title="Fermer cette page, retouner à '.$_SERVER['HTTP_REFERER'].'"><big><big><big>◄</big></big></big></a>';}
    
echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="javascript:_closeWindow();" title="Fermer cette page"><big><big><big>◄</big></big></big></a>';}

function 
bouton_bas_haut()/* ex: <?php bouton_bas_haut();?> */
{echo '<span class="insecable">'bouton_bas(); bouton_haut(); bouton_precedent(); echo '</span>';}

function 
bouton_bas_haut_precedent()/* ex: <?php bouton_bas_haut_precedent();?> */
{echo '<span class="insecable">'bouton_bas(); bouton_haut(); bouton_precedent(); bouton_fermer_page(); echo '</span>';}

function 
boutons_suivre()/* ex: <?php boutons_suivre();?> */
    
{bouton_telegram_canal(); echo '<br>'bouton_flux_rss(); echo '<br>'bouton_twitter();}

function 
bouton_twitter()/* ex: <?php bouton_twitter();?> */
{?><!--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-->
<span class="infobulle-t1">Twitter: <img src="/1com/img/twitter-t-carre-bleu.gif" alt="Twitter" title="" height="40" class="align-vertical-bas">
    <span><a target="_blank" href="https://twitter.com/chrisrsrc">mes tweets <b>Ressources</b></a></span>
</span>
<?php
}

function 
bouton_telegram_canal()/* ex: <?php bouton_telegram-canal();?> */
{?><!--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp-->
<span class="infobulle-t3">Blog: <img src="/1com/img/telegram.png" alt="Telegram" title="" height="40" class="align-vertical-bas">
    <span class="noir">Visualiser le blog <b>https://t.me/ressources_fr_cr</b> (canal Telegram):<br>
    en <a target="_blank" href="/1com/affiche.php?doc=https://t.me/s/ressources_fr_cr" title="voir les infos du canal en plein écran, télécharger Telegram, s'abonner au canal...">français <img class="bordure-ligne-fine" alt="Français" src="/1com/img/flag_france.png" width="23" height="16"></a>, <a target="_blank" href="https://t-me.translate.goog/s/ressources_fr_cr?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=fr" title="see the channel in english">anglais&nbsp;<img class="bordure-ligne-fine" alt="traduction Français ⏩ Anglais" src="/1com/img/flag_en-us.png" width="23" height="16"></a>, 
    <a target="_blank" href="https://t-me.translate.goog/s/ressources_fr_cr?_x_tr_sl=auto&_x_tr_tl=de&_x_tr_hl=fr" title="siehe den Kanal auf Deutsch">allemand&nbsp;<img class="bordure-ligne-fine" alt="traduction Français ⏩ Allemand" src="/1com/img/flag_germany.png" width="23" height="16"></a>, 
    <a target="_blank" href="https://t-me.translate.goog/s/ressources_fr_cr?_x_tr_sl=auto&_x_tr_tl=es&_x_tr_hl=fr" title="ver el canal en español">espagnol&nbsp;<img class="bordure-ligne-fine" alt="traduction Français ⏩ Espagnol" src="/1com/img/flag_spain.png" width="23" height="16"></a>, etc...<br>
    </span>
</span>
<?php 
}

function 
bouton_flux_rss()/* ex: <?php bouton_flux_rss();?> Voir si opportun d'en faire un mot-clé ???*/
{
//    $UrlRSS = 'http://ch.lerolle.free.fr/christophe/flux-rss-ch.lerolle.xml';    // 1ère version maj à la main via D:\progasis\wev SE-RssTools\SE-WriteRSS.exe
//    $UrlRSS = 'https://rss.app/feeds/neBlNwMVX2MIxDha.xml';                        // 2ème version du 8/09/2021 généré par https://rss.app/signin
    
$UrlRSS 'http://channel2rss.bitmachine.org/rss/ressources_fr_cr';            // 3ème version du 4/11/2021 généré par bot Telegram @channel2rssbot
?>
<span class="infobulle-t3">RSS: <img src="/1com/img/flux-rss-bonhomme-journal.png" alt="Journal" title="" height="40" class="align-vertical-bas">
    <span class="noir">
    • un <b>flux RSS</b>, c’est <a target="_blank" href="/rsrc/tutoriels/mail-vs-rss.php#Flux_RSS"><em><strong>"l’information choisie, au temps choisi ! "</strong></em></a><br>
    • quel intérêt par rapport à une <a target="_blank" href="/rsrc/tutoriels/mail-vs-rss.php#Mail"><b>lettre de nouvelles par mail</b></a> ?<br>
    • <a target="_blank" type="application/rss+xml" href="https://morss.it/:clip:format=html/<?php echo $UrlRSS ?>">Voir mes nouvelles en format <b>RSS</b></a> <i>(<u>partiel</u>, via <a target="_blank" href="https://morss.it"><b>morss.it</b>)</a></i><br>
    • <a target="_blank" type="application/rss+xml" href="<?php echo $UrlRSS ?>">Voir mes nouvelles en format <b>RSS</b></a> <i>(<u>complet</u>, avec l'extension <a target="_blank" href="https://addons.mozilla.org/fr/firefox/addon/want-my-rss/"><b>Want My RSS</b></a> pour FireFox...)</i><br>
    • 🔗adresse du fil: <b><?php echo $UrlRSS ?></b><br>
    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; à copier-coller dans un lecteur de nouvelles,<br>
    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; par exemple <a target="_blank" href="https://www.inoreader.com/language/french"><b>InoReader.com</b></a> ou <a target="_blank" href="https://feedly.com"><b>Feedly.com</b></a>
    </span>
</span>
<?php 
}

/* function affiche_flux_rss($url)/* ex: <?php affiche_flux_rss($url);?> source modifié: https://tonyarchambeau.com/blog/115-php-afficher-articles-flux-rss/
{ // utilisée seulement dans t.php, sans succès, à creuser...
//    $url = "https://tonyarchambeau.com/feed/"; /* insérer ici l'adresse du flux RSS de votre choix
//    $url = "http://ch.lerolle.free.fr/christophe/flux-rss-ch.lerolle.xml"; /* insérer ici l'adresse du flux RSS de votre choix

$rss = simplexml_load_file($url);
echo '<ul>';
foreach ($rss->channel->item as $item)
    {
        $datetime = date_create($item->pubDate);
        $date     = date_format($datetime,'d M Y, H\hi');
        echo '<li><a href="'.$item->link.'">'.utf8_decode($item->title).'</a> ('.$date.')</li>';
    }
echo '</ul>';
}
*/

function aff_canal($code_canal,$nom_canal,$langue_source,$nb_abonnes_actuel,$date_actuelle,$nb_abonnes_debut,$date_debut)
/* mise en page d'un MESSAGE ou CANAL Telegram en mode prévisualisation (avec https://t.me/s/), avec nombre d'abonnés, et bouton de traduction...
<?php aff_canal('CovidRechercheVerite','Covid Recherche Vérité','fr','5 260','20/11/2021','433','26/05/2021');?>  */    
{
    switch (
$langue_source)
    {
        case
'de':    {$drapeau_source='flag_germany.png';$code_langue_cible='fr'$libelle_langue_cible='français';break;}
        case
'en':    {$drapeau_source='flag_en-us.png';    $code_langue_cible='fr'$libelle_langue_cible='français';break;}
        case
'fr':    {$drapeau_source='flag_france.png';    $code_langue_cible='en'$libelle_langue_cible='anglais';break;}
        default:    {
$drapeau_source='flag_france.png';    $code_langue_cible='en'$libelle_langue_cible='anglais';break;}
    }
    echo 
'<img class="bordure-ligne-fine" alt="" src="/1com/img/'.$drapeau_source.'" width="20" height="15"> <a target="_blank" href="/1com/affiche.php?doc=https://t.me/s/'.$code_canal.'" title="voir le contenu du canal en mode \'preview\'">'.$nom_canal.'</a>';
    if (
$nb_abonnes_actuel !== '')
    {
        echo 
' &nbsp; &nbsp; &nbsp; &nbsp;abonnés:&nbsp;<b>'.$nb_abonnes_actuel.'</b>&nbsp;au&nbsp;'.$date_actuelle.' &nbsp; &nbsp; &nbsp; &nbsp;';
        if (
$nb_abonnes_debut  !== '')        echo '<span class="barre">(<b>'.$nb_abonnes_debut.'</b>&nbsp;au&nbsp;<b>'.$date_debut.'</b>)</span>';
        else 
mention_nouveau('23/09/2023'); echo ' &nbsp; &nbsp; &nbsp; &nbsp;';
    }

//    modèle d'URL cible : https://t-me.translate.goog/s/ressources_fr_cr?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=fr
/* echo ' &nbsp; &nbsp; &nbsp; &nbsp; <a target="_blank" href="https://t-me.translate.goog/s/'.$code_canal.'?_x_tr_sl=auto&_x_tr_tl='.$code_langue_cible.'&_x_tr_hl=fr" title="traduire le canal (changer la langue si nécessaire)">
traduire<img src="/1com/img/bouton-traduire.png" class="align-vertical-milieu" alt="" height="30"></a>'; */
?> <span class="infobulle-t3">traduire<img src="/1com/img/bouton-traduire.png" class="align-vertical-milieu" alt="" height="30">
        <span class="noir">• <a target="_blank" href="https://t-me.translate.goog/s/<?php echo $code_canal?>?_x_tr_sl=auto&_x_tr_tl=<?php echo $code_langue_cible?>&_x_tr_hl=fr" title="traduire le canal (changer la langue si nécessaire)">traduire l'aperçu <b>dans votre navigateur</b> en <b><?php echo $libelle_langue_cible?></b>, modifiable...</a><br>
        • traduire par l'appli <a target="_blank" href="/rsrc/logiciels/android.php#Telegram" title="description et téléchargement"><b>Telegram</b> pour Android</a><br>
        • traduire par l'appli <a target="_blank" href="/rsrc/logiciels/android.php#google_traduction" title="description et téléchargement"><b>Google Traduction</b> pour Android</a><br>
        </span>
    </span>
<?php
}

function 
mention_nouveau($commentaire)
/* ex: <?php mention_nouveau('29 novembre 2022');?> le $commentaire est optionnel, on peut mettre la date de la nouveauté, par exemple */
{echo '<b><span class="rouge">Nouveau'; if ($commentaire !== '') echo ' ('.$commentaire.') '; echo '</span></b>'; }

function 
eBook_introduction()/* ex: <?php eBook_introduction();?> */
{affiche_id('livre-electronique');
?>
Le <span class="infobulle-t2">livre électronique <img src="/1com/img/ebook.jpg" alt="eBook" title="" height="25"><span class="noir"><b>"eBook"</b> ou <b>"electronic Book"</b> ou <b>"livre électronique"</b>:<br>
Livre stocké sur un appareil électronique; il a de <b>nombreux avantages</b> par rapport à un livre en papier !<br>
<a target="_blank" href="/rsrc/livres.php#EBOOK">→ Plus...</a></span></span> (eBook): &nbsp 
<a target="_blank" href="/rsrc/livres.php#EBOOK" title=""><b>avantages</b></a> <span class="grisfonce"> &nbsp | &nbsp </span> 
<a target="_blank" href="/rsrc/livres.php#EBOOK_Generations" title=""><b>formats</b></a> <span class="grisfonce"> &nbsp | &nbsp </span> 
<a target="_blank" href="/rsrc/livres.php#EBOOK_Logiciels" title=""><b>logiciels</b></a> <span class="grisfonce"> &nbsp | &nbsp </span>
<a target="_blank" href="/rsrc/livres.php#EBOOK_Exemples" title=""><b>livres à télécharger</b></a> (gratuits et payants)...
<?php
}

function 
traduire($cd_langue,$libelle_langue,$img_drapeau)    /* ex: <?php traduire('en','Anglais','flag_en-us.png');?>
traduit la page courante du Français dans la langue en paramètre, utilisée dans chaque en-tête de page ... */
{?>
    <a target="_blank" rel="nofollow" onclick="window.open('https://translate.google.com/translate?hl=fr&sl=fr&tl=<?php echo $cd_langue ?>&u='+encodeURIComponent(location.href)); return false;" title="traduction Français ⏩ <?php echo $libelle_langue ?>"><img class="bordure-ligne-fine" height="16" width="23" alt="traduction Français ⏩ <?php echo $libelle_langue ?>" src="/1com/img/<?php echo $img_drapeau ?>"></a>
<?php
}

function 
traduire_fr($cd_langue,$libelle_langue,$img_drapeau,$url)
/* ex: <?php traduire_fr('en','Anglais','','http%3A%2F%2Fch.lerolle.free.fr/haiti/2010-02-02-inventaire-photo-edifices-du-gouvernement-haiti.php');?>
traduit la page courante du $cd_langue vers le Français ... */
{
//          <a target="_blank" href="https://translate.google.com/translate?hl=&sl=auto&tl=fr&u=https://www.euromomo.eu/">francisé</a>
    
echo '<a target="_blank" href="https://translate.google.com/translate?hl=&sl='.$cd_langue.'&tl=fr&u='.$url.'" title="traduction machine...">Version&nbsp;<b>francisée</b></a>, &nbsp; ';
//    l'enveloppe par /1com/affiche.php?doc= a été supprimée, car HS pour euromomo : voir pourquoi ?
//    echo '<a target="_blank" href="/1com/affiche.php?doc='.$url.'" title="version originale">Version&nbsp;originale&nbsp;<b>en&nbsp;'.$libelle_langue.'</b></a>';
    
switch ($cd_langue)
    {
        case
'de':    {$drapeau_source='flag_germany.png'    ;break;}
        case
'en':    {$drapeau_source='flag_en-us.png';    ;break;}
        default:    {
$drapeau_source='flag_en-us.png';    ;break;}
    }
    echo 
'<a target="_blank" href="'.$url.'" title="version originale">Version&nbsp;<b>originale</b>&nbsp;en&nbsp;'.$libelle_langue.'&nbsp;<img class="bordure-ligne-fine" height="16" width="23" alt="'.$libelle_langue.'" src="/1com/img/'.$drapeau_source.'"></a>';
}

function 
fil_d_ariane()
{
$chemin_page $_SERVER['PHP_SELF'];
$chemin_decoupe explode('/'$chemin_page); // echo '$chemin_decoupe='; print_r($chemin_decoupe); echo '<br>'; Array([0]=> [1]=>rsrc [2]=>sante [3]=>ehs.php
//    $fragmentTexte = '#:~:text=Vous%20%C3%AAtes%20ici,maj%%20le';

// je constitue l'URL : DEBUT du chemin
echo '<a target="_blank" href="/" title="Voir tous les sites web disponibles"><b>Accueil</b></a> ';

for (
$i=1$i<count($chemin_decoupe); $i++)
{    
// je constitue l'URL : suite du chemin
    
echo '> <b><a href="/';
    for (
$j=1$j<=$i$j++ )
    {
        echo 
$chemin_decoupe[$j]; // ajout d'un maillon
        
if ($j!=count($chemin_decoupe)-1)/* si ce n'est pas le dernier...*/    {echo '/';/* j'ajoute un slash de séparation */}
    
//    else echo $fragmentTexte; si dernier, inutile car on reste sur la même page
    
}

    if (
$i==count($chemin_decoupe)-1)
    {    
// dernier maillon du chemin = nom de dossier/ OU nom de la page.php
//        echo '$ii='.$i.' ';     
        
$dernier_maillon explode('.'$chemin_decoupe[$i]);
        if (
$dernier_maillon[0] == 'index') {$dernier_maillon[0] = '';} // texte d'ancrage vide: lien invisible !!!
        
$dernier_maillon[0] = $dernier_maillon[0] .'</a></b>';
    }
    else 
$dernier_maillon[0]=$chemin_decoupe[$i] .'</a></b> ';
    echo 
'">';
    echo 
str_replace('_',' ',ucfirst($dernier_maillon[0]));
}    
// fin de la fonction fil_d_ariane() 
}

include 
'frmwrk-fragments.php'/* fragments de code sans paramètre ex: <?php insere_fragment('imprimer-eBook');?> */

?> 
<?php // FIN détermination du temps d'exécution d'une page PHP: Source=https://lehollandaisvolant.net/tuto/php/#mesurer-le-temps-de-generation-d-une-page
    
$micro_temps_fin microtime(TRUE);
    if (isset(
$_GET['e'])) echo 'généré en '.round(($micro_temps_fin $micro_temps_debut),3).' s ';
?>
<!-- FIN INCLUDE frmwrk.php  -->