======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: {{codeqr txt="Le texte que contiendra le code"}} 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: {{codeqr txt="AdresseWeb" class="right"}} 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:=== %% 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 "qrcode"; return "$fichier"; } } $fichier= qr_code($txt); echo "
"; echo "qrcode"; echo "
"; } ?> %%