Code source de ch.lerolle.free.fr/1com/affiche.php


modifié le 30 juillet 2020 à 12:48, taille: 4,53 Ko
validation du HTML: W3C ou Aborla avec correction automatique
NB: les fichiers appelés par 'include' ou 'include_once' sont tous localisés 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 ♥♥♥)...
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
<!doctype html>
<!-- Usage: ch.lerolle.free.fr/1com/affiche.php?doc=/rsrc/ebook/arch-gratuit/Carlo-Brugnoli-COMMENT09-Comment-s'epanouir-dans-son-travail.pdf 
Si l'extension du fichier en paramètre est .pdf: affichage via PDF.js hébergé sur mon serveur
Sinon, affichage via le visualiseur de MicroSoft = https://view.officeapps.live.com/op/view.aspx?src=http://... -->

<html lang="fr-FR">
<head><!-- &nbsp; &thinsp; &copy; apostrophe-incline: ‘’ &quot;citation&quot; code: &#8217; «» ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝ -->
    <meta charset="utf-8">
    <?php
    
include_once 'init_variables.php'// NB: l'INCLUDE du source d'une fonction doit être fait AVANT l'appel de la-dite fonction

    
$chemin_document $_GET['doc'];
//    $nom_document = basename($chemin_document,".pdf");    VERSION sans l'extension .pdf
    
$nom_document basename($chemin_document);
    echo 
'<title>'.$nom_document.'</title>';    // echo '$chemin_document='.$chemin_document;
    
?>
    <meta name="CREATED" content="20191117;2472285">
    <meta name="AUTHOR" content="Christophe LEROLLE">
    <meta name="ROBOTS" content="NOINDEX">
    <meta name="google-translate-customization" content="8d5407833dcced32-52453bb0cc663ec7-g046940367ec47155-13">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="/1com/css/style-rsrc.css">
    <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Alike">
    <link rel="shortcut icon" href="/christophe/images/chris-id-pap-028k.jpg">
    <?php
    $extension 
strrchr($nom_document,'.');    // détermination de l'extension du fichier:
    // echo '$extension = '.$extension.'<br>';
    
switch ($extension)
    {
        case 
'.php'    : case '.htm' :    case '.html' : case '.mp3' : case '.mp4': case '.org' : case '.net' : case '' // case '' = URL qui se termine par un DOSSIER, et pas par une page web
        // pour des pages web, on se contente de rediriger vers la page demandée...
        
{    // NB: on peut mettre en paramètre une URL RELATIVE (locale) ou ABSOLUE...
            
$redirection 'oui';
            echo 
'<meta http-equiv="refresh" content="0; URL='.$chemin_document.'">'; break;
        }

        case 
'.pps'    : case '.ppsx' : case '.ppt' : case '.pptx' : case '.odp' :    // diaporama
        // case '.pub' : Publisher non géré par MS...
        
case '.xls'    : case '.xlsx' : case '.ods' // tableaux
        
case '.doc'    : case '.docx' : case '.odt' // textes
        // pour les documents Microsoft Office et LibreOffice suivants: affichage immédiat via view.officeapps.live.com...
        
{    // echo 'URL=https://view.officeapps.live.com/op/view.aspx?src=http://ch.lerolle.free.fr'.$chemin_document.'<br>';
            
$redirection 'oui';
            echo 
'<meta http-equiv="refresh" content="0; URL=https://view.officeapps.live.com/op/view.aspx?src=http://ch.lerolle.free.fr'.$chemin_document.'">'; break;
        }
        default    :
        {    
$redirection 'non'; }
    }
    
?>
    <!-- style pour présenter les fichiers inclus : là, ça marche mais pas à l'affichage du fichier: pourquoi ?!-->
    <style type="text/css">
        pre code {white-space:pre-wrap;}
    </style>
</head>

<body>
<?php
// echo  '$redirection = '.$redirection.'<br>';
if     ($redirection == 'non'  and ( $extension == '.pdf' or $extension == '.PDF' ))
/*    PDF.js hébergé sur le serveur web:
    1 http://influence-pc.fr/14-03-2014-inclure-des-pdf-sur-votre-site-avec-pdf-js-cree-par-mozilla
    2 http://mozilla.github.io/pdf.js/getting_started/
    3 https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-support
    4 http://ch.lerolle.free.fr/1com/affiche-source.php?file=/include/PDF.js-installation-et-utilisation.txt
*/
    
// j'interromps temporairement le PHP pour faciliter le codage HTML, et bénéficier de la coloration syntaxique... ?>
        <script>
        pdfDocument = document.getElementById("mon_document");
        pageWidth = document.getElementById("content").offsetWidth;
        documentWidth = 5 * pageWidth;
        pdfDocument.style.width = documentWidth + "px";
        pdfDocument.style.height = documentWidth * 4.9 + "px";
        </script>
        <details close class="bordure-pointillee">
            <summary style="cursor:pointer;" class="blanc fonds-grisfonce">
            <!--<h5> -->Lire un document via <b><?php affiche_mot_cle(PDF_js);?></b> &nbsp; (<a target="_blank" href="/rsrc/livres.php#EBOOK_Logiciels" title=""><span class="blanc">Autres logiciels</span></a>)<!--</h5> --> &nbsp; <?php bouton_bas();?>
            </summary>
        <table class="largeur-100-100 blanc fonds-grisfonce"><!-- decal-droite-60px marge-gauche-3em --> 
          <tbody>
            <tr>
                <td class="fonds-grisfonce"><!-- td class="rouge fonds-jaune"> -->
                Le document ci-dessous vous est présenté par <?php affiche_mot_cle(PDF_js);?>, directement dans votre navigateur.<br>
                Les fonctions d'affichage sont présentées sur la première ligne, en 3 groupes:<br>
                <br>
                <details close class="">
                    <summary style="cursor:pointer;" class="">
                    <span class="fonds-roseindien">1) <b>à gauche: Navigation</b></span>
                    </summary>
                <br>
                • Si nécessaire, <b>Ouvrir</b> le <span class="fonds•grisfonce"> <img src="/1com/pdf.js/web/images/toolbarButton-sidebarToggle@2x.png" alt="Panneau latéral" height="30em" class="align-vertical-milieu"> panneau latéral, pouvant afficher:<br>
                <div class="marge-gauche-3em">
                    ○ <img src="/1com/pdf.js/web/images/toolbarButton-viewThumbnail@2x.png" alt="Vignettes" height="30em" class="align-vertical-milieu"> une vignette par page<br>
                    ○ <img src="/1com/pdf.js/web/images/toolbarButton-viewOutline@2x.png" alt="Sommaire" height="30em" class="align-vertical-milieu"> la Table des Matières en <b>hypertexte</b> (cliquable): en grisé si le document n'en contient pas <big><big><big>☹</big></big></big>.<br>
                    ○ <img src="/1com/pdf.js/web/images/toolbarButton-viewAttachments@2x.png" alt="Pièces jointes" height="30em" class="align-vertical-milieu"> les pièces jointes (en grisé: le document n'en contient pas)<br>
                    ASTUCES <img src="/1com/img/top_regarde.gif" height="30" align="absbottom"> :<br>
                    . Sur grand écran, on peut <span class="gras">élargir le panneau latéral</span> en faisant glisser son bord droit avec une souris...<br>
                    . Sur toute entrée de la Table des Matières, cliquer pour afficher le chapitre, et Fermer le panneau latéral pour lire<br>
                    par un ClicDroit ou appui long, on obtient un "<b>lien profond</b>" partageable, qui dirige les visiteurs directement dans le chapitre.<br>
                    <a target="_blank" href="/1com/pdf.js/web/viewer.html?file=/rsrc/ebook/arch-gratuit/Carlo-Brugnoli-COMMENT05-Comment-reussir-son-mariage.pdf#%5B%7B%22num%22%3A2345%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C28.35%2C543.603%2C0%5D" title="Lien profond exemple 1">Exemple 1</a> &nbsp; &nbsp; 
                    <a target="_blank" href="/1com/pdf.js/web/viewer.html?file=/rsrc/ebook/arch-gratuit/Carlo-Brugnoli-COMMENT09-Comment-s%27epanouir-dans-son-travail.pdf#%5B%7B%22num%22%3A1882%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C28.35%2C541.353%2C0%5D" title="Lien profond exemple 2">Exemple 2</a> &nbsp; &nbsp; 
                    <a target="_blank" href="/1com/pdf.js/web/viewer.html?file=/rsrc/ebook/arch-gratuit/Carlo-Brugnoli-Progresser-avec-Dieu.pdf#%5B%7B%22num%22%3A234%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C0%2C731%2Cnull%5D" title="Lien profond exemple 3">Exemple 3</a> 
                </div>
                • <img src="/1com/pdf.js/web/images/toolbarButton-search@2x.png" alt="loupe" height="30em" class="align-vertical-milieu"> Rechercher un mot dans le texte (en grisé: le document ne contient que des images <big><big><big>☹</big></big></big>)<br>
                • <img src="/1com/pdf.js/web/images/toolbarButton-pageUp@2x.png" alt="Précédente" height="30em" class="align-vertical-milieu"> Page précédente et <img src="/1com/pdf.js/web/images/toolbarButton-pageDown@2x.png" alt="Suivante" height="30em" class="align-vertical-milieu"> Page suivante (en grisé: choix non proposé...)<br>
                • <img src="/1com/img/PDF.js-page-x-sur-y.png" alt="Précédente" height="30em" class="align-vertical-milieu"> Entrer un numéro de page à afficher<br>
                <br>
                </details>
                <details close class="">
                    <summary style="cursor:pointer;" class="">
                    <span class="fonds-roseindien">2) <b>au centre: Taille des caractères</b></span>
                    </summary>
                <br>
                • boutons <img src="/1com/pdf.js/web/images/toolbarButton-zoomOut@2x.png" alt="dézoomer" height="30em" class="align-vertical-milieu"> et <img src="/1com/pdf.js/web/images/toolbarButton-zoomIn@2x.png" alt="zoomer" height="30em" class="align-vertical-milieu"> pour dézoomer / zoomer<br>
                • sur grand écran: au lieu de '<b>Pleine largeur</b>', choisir '<b>Page entière</b>' pour voir toute la page, ou choisir un pourcentage de zoom<br>
                <span class="blanc gras">NB: tourner l'écran en mode "paysage" pour agrandir les caractères...</span><br>
                <br>
                </details>
                <details close class="">
                    <summary style="cursor:pointer;" class="">
                    <span class="fonds-roseindien">3) <b>à droite: Exploitation du document</b> (suite via le chevron <img src="/1com/pdf.js/web/images/toolbarButton-secondaryToolbarToggle@2x.png" alt="Afficher/Masquer" height="30em" class="align-vertical-milieu">)</span>
                    </summary>
                <br>
                • <img src="/1com/pdf.js/web/images/toolbarButton-openFile@2x.png" alt="Ouvrir autre document" height="30em" class="align-vertical-milieu"> Ouvrir un <b>autre</b> document <b>à la place</b> du document affiché<br>
                • <img src="/1com/pdf.js/web/images/toolbarButton-print@2x.png" alt="Ouvrir autre document" height="30em" class="align-vertical-milieu"> Imprimer le document<br>
                • <img src="/1com/pdf.js/web/images/toolbarButton-download@2x.png" alt="Ouvrir autre document" height="30em" class="align-vertical-milieu"> Télécharger le document<br>
                • <b>Ctrl</b> + <img src="/1com/pdf.js/web/images/toolbarButton-bookmark@2x.png" alt="Marque-page" height="30em" class="align-vertical-milieu"> <b>Affichage courant</b>: affiche la page en cours dans un nouvel onglet, en plein écran (sans cette aide)<br>
                • Divers outils de Rotation, Sélection, Défilement, Doubles pages et ...<br>                
                • <img src="/1com/pdf.js/web/images/secondaryToolbarButton-documentProperties@2x.png" alt="propriétés du document" height="30em" class="align-vertical-milieu"> Propriétés du document: Nom, Taille, Date, Format, Version de PDF...<br>
                </details>
                <?php echo ' &nbsp; &nbsp; '; include 'drapeaux-traduction.php';?>
                <br>
                <details close class="noir fonds-jaune-leger">
                    <summary style="cursor:pointer;" class="">
                    <?php affiche_idPDF_js_developpeurs );?><span class="fonds-jaune">Note aux développeurs:</span>
                    </summary>
                <span class="fonds-jaune-leger"><!-- inopérant ici: pourquoi ? style="white-space:pre-wrap;"  class="espaces-crlf-borde" -->
                <pre><code><?php include 'PDF.js-installation-et-utilisation.txt';?></code></pre>
                </span>
                </details>
                </td>
            </tr>
          </tbody>
        </table>
        </details><br>
        <!--Contenu du fichier -->
        <!-- attention: pdf.js et le fichier PDF à afficher doivent être sur le même serveur...! -->
        <object height="800px" width="95%" id="mon_document" data="/1com/pdf.js/web/viewer.html?file=<?php echo $chemin_document ?>#zoom=page-width" type="text/html">La visualisation n’est pas encore disponible sur votre navigateur, veillez à le mettre à jour.</object>
        <?php // je reprends le PHP pour traiter les autres cas...
    
}

//    elseif    ( $extension == '.txt' )
if     ($redirection == 'non'  and ( $extension == '.txt' or $extension == '.TXT' ))
        {
?>
            <details open class="noir fonds-jaune-leger">
                <summary style="cursor:pointer;" class="">
                <span class=""><h5>Contenu de <?php echo $chemin_document;?></h5>: &nbsp; <?php bouton_bas();?></span>
                </summary>
            <span class="fonds-jaune-leger"><!-- inopérant ici: pourquoi ? style="white-space:pre-wrap;"  class="espaces-crlf-borde" -->
            <pre><code><?php include $chemin_document;?></code></pre>
            </span>
            </details>
        <?php
        
}
// choix du trailer...
if    ($redirection == 'non')
    {
        if        ( 
substr($chemin_document,0,5)  == '/rsrc')            include 'rsrc-trailer.php';
        elseif    ( 
substr($chemin_document,0,10) == '/eglises17')    include 'eglises17-trailer.php';
        elseif    ( 
substr($chemin_document,0,11) == '/christophe')    include 'chris-trailer.php';        
        else                                                        include 
'common-trailer.php';
    }
    
else
    { 
// $redirection == 'oui': cas des doc xls ppt etc visualisés par MicroSoft: pas de trailer visible
        
include 'compteur-visites.php';
    }
?>
</body>
</html>