Action Code QR
Les codes QR peuvent être utiles pour partager l'URL d'une page wiki par exemple. C'est pourquoi nous avons créé cette action.
Pour afficher un code QR : {{codeqr txt="Le texte que contiendra le code"}}
donne:

On peut ajouter les critères suivants:
- class="center" (left ou right) : n'a pas de class par défaut.
Exemple: {{codeqr txt="AdresseWebdepréférence" class="right" dim="200"}}
donne:

Un API de Google est utilisé ici: http://code.google.com/intl/fr/apis/chart/image/docs/gallery/qr_codes.html
Voici le code de l'action:
<?php
if (empty($vars['txt'])) {echo "Pas de critère txt!";}
else {
$txt=$vars['txt'];
if ($vars['class']=="") { $laclass="nul";} else {$laclass="attach_".$vars['class'];}
$urlmst = $this->config[url_site];
if (!function_exists("qr_code"))
{
/**
* Filtre pour générer un QRCode à partir d'un texte
*/
function qr_code ( $txt, $dim=120 )
{
// S'il existe pas on crée le répertoire qui va accueillir nos QRCodes
if ( !is_dir("cache-qrcode/" ) )
{
if ( !mkdir ( "cache-qrcode/", 0775 ) )
{
return "impossible de creer le repertoire" ;
}
}
// l'url du service web de Google qui va bien
$url = 'http://chart.apis.google.com/chart';
// On colle dans un tableau les arguments pour la requète
$args = array( "cht"=>"qr",
"chs"=>$dim . "x" . $dim,
"chl"=>rawurldecode(urlencode($txt))
);
// On crée le context pour la requète
$context = stream_context_create( array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($args)
)
)
);
// Ici on va générer un nom et un chemin pour notre fichier final
$hash = md5(serialize($txt));
$fichier = "cache-qrcode/qrcode-$hash.png";
// Si notre fichier n'existe pas on requète le service et on crée le fichier
if ( !is_file( $fichier ) ){
file_put_contents( $fichier, file_get_contents( $url, false, $context ) );
}
// On retourne un tag image avec la source qui va bien
//return "<img src=\"$fichier\" alt='qrcode' width='$dim' height='$dim' class='middle' />";
return "$fichier";
}
}
$fichier= qr_code($txt);
echo "<div class='$laclass'>";
echo "<img src=\"".$urlmst."$fichier\" alt='qrcode' width='120' height='120' class='middle' />";
echo "</div>";
}
?>
Il n'y a pas de commentaire sur cette page.
[Afficher commentaires/formulaire]

