File "qrcode_fonctions.php"
Full path: /home/argothem/www/organecyberpresse/plugins/auto/qrcode/v2.0.0/qrcode_fonctions.php
File size: 1.91 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Fonctions utiles au plugin QrCode
*
* @plugin QrCode
* @copyright 2014
* @author Frédéric Bonnaud
* @licence GNU/GPL
* @package SPIP\Qrcode\Fonctions
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
if (!is_dir(_DIR_VAR . 'cache-qrcode/')) {
if (!mkdir(_DIR_VAR . 'cache-qrcode/', 0777)) {
spip_log('impossible de creer le repertoire', 'qrcode');
}
}
function qrcode_hash($texte, $taille, $ecc) {
return md5(serialize([$texte, $taille, $ecc]));
}
function qrcode_getpng($texte, $taille, $ecc) {
$filename = _DIR_VAR . 'cache-qrcode/qrcode-' . qrcode_hash($texte, $taille, $ecc) . '.png';
if (! file_exists($filename)) {
require_once(find_in_path('lib/phpqrcode.php'));
$errorCorrectionLevel = 'L';
if (isset($ecc) && in_array($ecc, ['L', 'M', 'Q', 'H'])) {
$errorCorrectionLevel = $ecc;
}
$matrixPointSize = 4;
if (isset($taille)) {
$matrixPointSize = min(max((int) $taille, 1), 10);
}
$data = 'https://www.spip.net';
if (isset($texte)) {
$data = $texte;
}
QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize);
}
return $filename;
}
function filtre_qrcode($texte, $taille = false, $ecc = false, $link = false) {
$taille || ($taille = lire_config('qrcode/taille')) || ($taille = 1);
$ecc || ($ecc = lire_config('qrcode/ecc')) || ($ecc = 'L');
if ($class = lire_config('qrcode/css')) {
$class = ' class="' . $class . '"';
}
if ($style = lire_config('qrcode/style')) {
$style = ' style="' . $style . '"';
}
$filename = qrcode_getpng($texte, $taille, $ecc);
$width = ' width="' . largeur($filename) . '"';
$height = ' height="' . hauteur($filename) . '"';
if ($link) {
return "<a href=\"$texte\" title=\"" . _T('qrcode:aide') . "\"><img$class$style src=\"$filename\"$width$height alt=\"qrcode:$texte\"/></a>";
}
return "<img$class$style src=\"$filename\"$width$height alt=\"qrcode:$texte\" title=\"" . _T('qrcode:aide') . '"/>';
}