@ -1,4 +1,4 @@
< ? php require " config. inc.php" ; ?>
< ? php require " inc.php " ; ?>
<!--
_ _ _ ___ ____
| | ( _ | | __ _ __ ___ / _ \ | _ \
@ -95,15 +95,15 @@ if (badQuery()) {
?>
<! DOCTYPE html >
< html lang = " fr " >
< html lang = " <?= $locale ?> " >
< head >
< meta charset = " UTF-8 " >
< title > Générateur de codes QR </ title >
< meta name = " description " content = " Générez des codes QR librement. Choisissez le contenu, la taille, la couleur... " >
< title > LibreQR · < ? = $loc [ 'subtitle' ] ?> </title>
< meta name = " description " content = " <?= $loc['description'] ?> " >
< meta name = " theme-color " content = " <?php echo $variablesTheme['bg'] ; ?> " >
< meta name = " viewport " content = " width=device-width, initial-scale=1 " >
< link rel = " manifest " href = " manifest.php " >
< link rel = " search " type = " application/opensearchdescription+xml " title = " Générer un code QR " href = " opensearch.php?redondancy=<?= $_GET['redondancy'] ?>&margin=<?= $_GET['margin'] ?>&size=<?= $_GET['size'] ?>&bgColor=<?= urlencode( $_GET['bgColor'] ) ?>&mainColor=<?= urlencode( $_GET['mainColor'] ) ?> " >
< link rel = " search " type = " application/opensearchdescription+xml " title = " <?= $loc['opensearch_actionName'] ?> " href = " opensearch.php?redondancy=<?= $_GET['redondancy'] ?>&margin=<?= $_GET['margin'] ?>&size=<?= $_GET['size'] ?>&bgColor=<?= urlencode( $_GET['bgColor'] ) ?>&mainColor=<?= urlencode( $_GET['mainColor'] ) ?> " >
< ? php
// If style.min.css exists
if ( file_exists ( " style.min.css " ))
@ -112,17 +112,17 @@ if (badQuery()) {
// Then delete it
unlink ( " style.min.css " );
require " lessphp/lessc.inc.php " ;
require " lesser php/lessc.inc.php " ;
$less = new lessc ;
$less -> setVariables ( $variablesTheme ); // Rends ces couleurs utilisables dans style.less
$less -> setVariables ( $variablesTheme ); // Make these colors available in style.less
$less -> setFormatter ( " compressed " );
$less -> checkedCompile ( " style.less " , " style.min.css " ); // Compile, minimise et met en cache style.less dans style.min.css
$less -> checkedCompile ( " style.less " , " style.min.css " ); // Compile, minimise and cache style.less into style.min.css
?>
< link type = " text/css " rel = " stylesheet " href = " style.min.css " >
< link type = " text/css " rel = " stylesheet " href = " ubuntu/ubuntu.min.css " >
< ? php
foreach ( $themeDimensionsIcons as $dimFav ) { // Indique toutes les dimensions d'icone s
foreach ( $themeDimensionsIcons as $dimFav ) { // Set all icons dimension s
echo ' <link rel="icon" type="image/png" href="themes/' . $theme . '/icons/' . $dimFav . '.png" sizes="' . $dimFav . 'x' . $dimFav . '">' . " \n " ;
} ?>
@ -130,14 +130,14 @@ if (badQuery()) {
< body >
< div class = " center " >
< main >
< header >
< a id = " lienTitres " href = " ./ " >
< img id = " logo " src = " themes/<?php echo $theme ; ?>/icons/128.png " alt = " Code QR stylisé " >
< img id = " logo " src = " themes/<?php echo $theme ; ?>/icons/128.png " >
< div id = " titres " >
< h1 > LibreQR </ h1 >
< h2 > Générateur de codes QR </ h2 >
< h2 >< ? = $loc [ 'subtitle' ] ?> </h2>
</ div >
</ a >
</ header >
@ -147,24 +147,15 @@ if (badQuery()) {
< div id = " firstWrapper " >
< div class = " param " >
< label for = " txt " > Texte à encoder </ label >
< label for = " txt " >< ? = $loc [ 'label_content' ] ?> </label>
< span class = " conteneurAide " >
< span class = " boutonAide " tabindex = " 0 " >< img id = " helpImg " src = " help.svg.php?clr=<?= urlencode( $variablesTheme["text"] ) ?> " alt = " Aide " ></ span >
< span class = " contenuAide " >
Vous pouvez encoder ce que vous voulez sous forme de texte .< br >
Les logiciels qui décodent ces codes QR pourraient proposer de les ouvrir avec un logiciel dédié , en fonction de leur < a href = " https://fr.wikipedia.org/wiki/Sch%C3%A9ma_d%27URI " > schéma d ' URI </ a >.< br >< br >
Par exemple , pour ouvrir une page Web :< br >
https :// www . domaine . tld /< br >< br >
Pour envoyer un mail :< br >
mailto : contact @ domaine . tld < br >< br >
Pour partager des coordonnées géographique :< br >
geo : 48.867564 , 2.364057 < br >< br >
Pour appeler un numéro de téléphone :< br >
tel : 063 9981871
< ? = $loc [ 'help_content' ] ?>
</ span >
</ span >
< br >
< textarea rows = " 8 " required = " " id = " txt " placeholder = " Entrez le texte à encoder dans le code QR " name = " txt " >< ? php
< textarea rows = " 8 " required = " " id = " txt " placeholder = " <?= $loc['placeholder'] ?> " name = " txt " >< ? php
if ( isset ( $_GET [ 'txt' ])) {
echo htmlspecialchars ( $_GET [ 'txt' ]);
@ -176,31 +167,31 @@ if (badQuery()) {
< div id = " menusDeroulants " >
< div class = " param " >
< label for = " redondancy " > Taux de redondance </ label >
< label for = " redondancy " >< ? = $loc [ 'label_redondancy' ] ?> </label>
< span class = " conteneurAide " >
< span class = " boutonAide " tabindex = " 0 " >< img id = " helpImg " src = " help.svg.php?clr=<?= urlencode( $variablesTheme["text"] ) ?> " alt = " Aide " ></ span >
< span class = " contenuAide " > La redondance est le " doublement " des informations dans le code QR afin de corriger les erreurs lors du décodage . Un taux plus élevé produira un code QR plus grand , mais aura plus de chance d ' être décodé correctement .</ span >
< span class = " contenuAide " >< ? = $loc [ 'help_redondancy' ] ?> </span>
</ span >
< br >
< select id = " redondancy " name = " redondancy " >
< option < ? php if ( isset ( $_GET [ 'redondancy' ]) AND ( $_GET [ 'redondancy' ] == " L " )) { echo 'selected="" ' ;} ?> value="L">L - 7% de redondance </option>
< option < ? php if ( isset ( $_GET [ 'redondancy' ]) AND ( $_GET [ 'redondancy' ] == " M " )) { echo 'selected="" ' ;} ?> value="M">M - 15% de redondance </option>
< option < ? php if ( isset ( $_GET [ 'redondancy' ]) AND ( $_GET [ 'redondancy' ] == " Q " )) { echo 'selected="" ' ;} ?> value="Q">Q - 25% de redondance </option>
< option < ? php if (( isset ( $_GET [ 'redondancy' ]) AND ( $_GET [ 'redondancy' ] == " H " )) OR ( ! isset ( $_GET [ 'redondancy' ]) OR empty ( $_GET [ 'redondancy' ]))) { echo 'selected="" ' ;} ?> value="H">H - 30% de redondance </option>
< option < ? php if ( isset ( $_GET [ 'redondancy' ]) AND ( $_GET [ 'redondancy' ] == " L " )) { echo 'selected="" ' ;} ?> value="L">L - 7%</option>
< option < ? php if ( isset ( $_GET [ 'redondancy' ]) AND ( $_GET [ 'redondancy' ] == " M " )) { echo 'selected="" ' ;} ?> value="M">M - 15%</option>
< option < ? php if ( isset ( $_GET [ 'redondancy' ]) AND ( $_GET [ 'redondancy' ] == " Q " )) { echo 'selected="" ' ;} ?> value="Q">Q - 25%</option>
< option < ? php if (( isset ( $_GET [ 'redondancy' ]) AND ( $_GET [ 'redondancy' ] == " H " )) OR ( ! isset ( $_GET [ 'redondancy' ]) OR empty ( $_GET [ 'redondancy' ]))) { echo 'selected="" ' ;} ?> value="H">H - 30%</option>
</ select >
</ div >
< div class = " param " >
< label for = " margin " > Taille de la marge </ label >
< label for = " margin " >< ? = $loc [ 'label_margin' ] ?> </label>
< span class = " conteneurAide " >
< span class = " boutonAide " tabindex = " 0 " >< img id = " helpImg " src = " help.svg.php?clr=<?= urlencode( $variablesTheme["text"] ) ?> " alt = " Aide " ></ span >
< span class = " contenuAide " > Nombre de pixels des bandes blanches autour du code QR .</ span >
< span class = " contenuAide " >< ? = $loc [ 'help_margin' ] ?> </span>
</ span >
< br >
< select id = " margin " name = " margin " >
< option < ? php if ( isset ( $_GET [ 'margin' ]) AND ( $_GET [ 'margin' ] == " 0 " )) { echo 'selected="" ' ;} ?> value="0">0</option>
< option < ? php if ( isset ( $_GET [ 'margin' ]) AND ( $_GET [ 'margin' ] == " 1 " )) { echo 'selected="" ' ;} ?> value="1">1</option>
< option < ? php if (( isset ( $_GET [ 'margin' ]) AND ( $_GET [ 'margin' ] == " 2 " )) OR ( ! isset ( $_GET [ 'margin' ]) OR empty ( $_GET [ 'margin' ]))) { echo 'selected="" ' ;} ?> value="2">2 - par défaut </option>
< option < ? php if (( isset ( $_GET [ 'margin' ]) AND ( $_GET [ 'margin' ] == " 2 " )) OR ( ! isset ( $_GET [ 'margin' ]) OR empty ( $_GET [ 'margin' ]))) { echo 'selected="" ' ;} ?> value="2">2 - <?= $loc['value_default'] ?> </option>
< option < ? php if ( isset ( $_GET [ 'margin' ]) AND ( $_GET [ 'margin' ] == " 3 " )) { echo 'selected="" ' ;} ?> value="3">3</option>
< option < ? php if ( isset ( $_GET [ 'margin' ]) AND ( $_GET [ 'margin' ] == " 4 " )) { echo 'selected="" ' ;} ?> value="4">4</option>
< option < ? php if ( isset ( $_GET [ 'margin' ]) AND ( $_GET [ 'margin' ] == " 5 " )) { echo 'selected="" ' ;} ?> value="5">5</option>
@ -210,17 +201,17 @@ if (badQuery()) {
</ div >
< div class = " param " >
< label for = " size " > Taille de l ' image </ label >
< label for = " size " >< ? = $loc [ 'label_size' ] ?> </label>
< span class = " conteneurAide " >
< span class = " boutonAide " tabindex = " 0 " >< img id = " helpImg " src = " help.svg.php?clr=<?= urlencode( $variablesTheme["text"] ) ?> " alt = " Aide " ></ span >
< span class = " contenuAide " > Par combien les dimensions de l ' image seront - elles multipliées ? </ span >
< span class = " contenuAide " >< ? = $loc [ 'help_size' ] ?> </span>
</ span >
< br >
< select id = " size " name = " size " >
< option < ? php if ( isset ( $_GET [ 'size' ]) AND ( $_GET [ 'size' ] == 1 )) { echo 'selected="" ' ;} ?> value="1">1</option>
< option < ? php if ( isset ( $_GET [ 'size' ]) AND ( $_GET [ 'size' ] == 2 )) { echo 'selected="" ' ;} ?> value="2">2</option>
< option < ? php if ( isset ( $_GET [ 'size' ]) AND ( $_GET [ 'size' ] == 3 )) { echo 'selected="" ' ;} ?> value="3">3</option>
< option < ? php if (( isset ( $_GET [ 'size' ]) AND ( $_GET [ 'size' ] == 4 )) OR ( ! isset ( $_GET [ 'size' ]) OR empty ( $_GET [ 'size' ]))) { echo 'selected="" ' ;} ?> value="4">4 - par défaut </option>
< option < ? php if (( isset ( $_GET [ 'size' ]) AND ( $_GET [ 'size' ] == 4 )) OR ( ! isset ( $_GET [ 'size' ]) OR empty ( $_GET [ 'size' ]))) { echo 'selected="" ' ;} ?> value="4">4 - <?= $loc['value_default'] ?> </option>
< option < ? php if ( isset ( $_GET [ 'size' ]) AND ( $_GET [ 'size' ] == 5 )) { echo 'selected="" ' ;} ?> value="5">5</option>
< option < ? php if ( isset ( $_GET [ 'size' ]) AND ( $_GET [ 'size' ] == 6 )) { echo 'selected="" ' ;} ?> value="6">6</option>
< option < ? php if ( isset ( $_GET [ 'size' ]) AND ( $_GET [ 'size' ] == 8 )) { echo 'selected="" ' ;} ?> value="8">8</option>
@ -237,22 +228,22 @@ if (badQuery()) {
< div id = " colors " >
< div class = " param " >
< label for = " bgColor " > Couleur de fond </ label >
< label for = " bgColor " >< ? = $loc [ 'label_bgColor' ] ?> </label>
< div class = " conteneurInputColor " >
< input type = " color " name = " bgColor " id = " bgColor " value = " <?php if (!empty( $_GET['bgColor'] )) { echo htmlspecialchars( $_GET['bgColor'] );} else { echo " #FFFFFF";} ?>">
</ div >
</ div >
< div class = " param " >
< label for = " mainColor " > Couleur de premier plan </ label >
< label for = " mainColor " >< ? = $loc [ 'label_mainColor' ] ?> </label>
< div class = " conteneurInputColor " >
< input type = " color " name = " mainColor " id = " mainColor " value = " <?php if (!empty( $_GET['mainColor'] )) { echo htmlspecialchars( $_GET['mainColor'] );} else { echo " #000000";} ?>">
</ div >
</ div >
</ div >
< div class = " centrer " >
< input class = " bouton " type = " submit " value = " Générer " />
< div class = " centered " >
< input class = " bouton " type = " submit " value = " <?= $loc['button_create'] ?> " />
</ div >
</ form >
@ -267,31 +258,36 @@ if (badQuery()) {
$cheminImage = " temp/ " . generateRandomString ( $fileNameLenght ) . " .png " ;
QRcode :: png ( $_GET [ 'txt' ], $cheminImage , $_GET [ 'redondancy' ], $_GET [ 'size' ], $_GET [ 'margin' ], false , hexdec ( $_GET [ 'bgColor' ]), hexdec ( $_GET [ 'mainColor' ]));
?>
< div class = " centrer " >
< a href = " <?php echo $cheminImage ; ?> " class = " bouton " download = " <?php echo htmlspecialchars( $_GET['txt'] ); ?>.png " > Télécharger ce code QR </ a >
< div class = " centered " >
< a href = " <?php echo $cheminImage ; ?> " class = " bouton " download = " <?php echo htmlspecialchars( $_GET['txt'] ); ?>.png " >< ? = $loc [ 'button_download' ] ?> </a>
</ div >
< div class = " centrer " id = " showOnlyQR " >
< a title = " Cliquez pour afficher uniquement ce code QR " href = " <?php echo $cheminImage ; ?> " >< img alt = 'Un code QR contenant "<?php echo htmlspecialchars($_GET[' txt ']); ?>"' id = " qrCode " src = " <?php echo $cheminImage ; ?> " /></ a >
< div class = " centered " id = " showOnlyQR " >
< a title = " <?= $loc['title_showOnlyQR'] ?> " href = " <?php echo $cheminImage ; ?> " >< img alt = 'Un code QR contenant "<?php echo htmlspecialchars($_GET[' txt ']); ?>"' id = " qrCode " src = " <?php echo $cheminImage ; ?> " /></ a >
</ div >
< ? php
}
}
?>
</ div >
</ main >
< div id = " metaTexts " >
< section id = " info " class = " metaText " >
< h3 > Qu 'est-ce qu' un code QR ? </ h3 >
Un code QR est un code - barres en 2 dimensions dans lequel est inscrit en binaire du texte . Il peut être décodé avec un appareil muni d 'un capteur photo et d' un logiciel adéquat .
< a href = " https://fr.wikipedia.org/wiki/Code_QR " > Code QR sur Wikipédia </ a >
< ? = $loc [ 'metaText_qr' ] ?>
</ section >
< footer class = " metaText " >
LibreQR 1.2 . 0 est un logiciel libre dont le < a href = " https://code.antopie.org/miraty/libreqr/ " > code source </ a > est disponible
selon les termes de l ' < abbr title = " GNU Affero General Public License version 3 ou toute version ultérieure " >< a href = " LICENSE.html " > AGPLv3 </ a >+</ abbr >.
< p >
< ? = $loc [ 'metaText_legal' ] ?>
</ p >
< ? php if ( isset ( $additionalText )) { ?>
< br >
< p >
< ? = $additionalText ?>
</ p >
< ? php } ?>
</ footer >
</ div >