Nov 24
|
J’ai effectué quelques modifications pour étoffer l’exemple afin que la balise supporte des attributs, mais également pour corriger quelques bugs découverts suites au premier déploiement dans de réelles conditions.
On peut maintenant ainsi utiliser la balise :
[random-number/]
[random-number from='α']
[random-number to='β'/]
[random-number from='α' to='β' format='φ']
[random-number]φ[/random-number]
[random-number from='α' to='β']φ[/random-number]
- α : correspond à la valeur entière minimale incluse souhaitée
- β : correspond à la valeur entière maximale incluse souhaitée
- donc α < β
- φ : format à utiliser. φ ne doit contenir qu’un seul champ de spécification. Actuellement, si vous en mettez plusieurs, une erreur sera générée. Nous verrons dans un prochain article comment la gérer.
- α, β & φ sont optionnels. Leurs valeurs sauvegardées dans les réglages seront utilisées si elles sont omises.
Pour cela, j’ai essentiellement modifié la fonction random_number_generator_shortcode_handler()
:
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 | /** * Fonction renvoyant un chiffre aléatoire * @param string $atts Attributs éventuellement passés dans le tag * @param string $content Format à utiliser si encapsulé par le tag * @return HTML */ function random_number_generator_shortcode_handler($atts, $content) { // [random-number from="2" to="72" format="%b"]%d minutes[/random-number] // output: an integer value between 2 & 72 followed by the word 'minutes' // affiche : une valeur entière entre 2 & 72 suivie du mot 'minutes' // Récupération des paramètres depuis les options de WP $random_number_generator_from = get_option('random_number_generator_from'); $random_number_generator_to = get_option('random_number_generator_to'); $random_number_generator_format = get_option('random_number_generator_format'); // Récupération des paramètres éventuels avec les options sauvegardées comme valeur par défaut extract(shortcode_atts(array('from' => $random_number_generator_from, 'to' => $random_number_generator_to, 'format' => $random_number_generator_format), $atts)); // Si on a entouré du texte avec la balise, c'est que ce texte est LE format à utiliser // Il devrait contenir un champ de spécification pour afficher le nombre aléatoire if ($content != "") { $format = $content; } // Valide les différentes options validate_data($from, $to, $format); // Génération aléatoire mt_srand(); // Renvoie un nombre aléatoire return sprintf($format, mt_rand($from, $to)); } |
Les bugs corrigés sont :
- Chemins codés en dur… j’avais mis le répertoire avec des « _ » et WordPress l’a publié avec des « -« … Le code utilise maintenant un chemin totalement dynamique.
- Le format de mon fichier php n’était pas en UTF-8… pour être certain d’avoir le bon format, j’ai mis à jour mes sources via l’interface d’administration de WordPress, puis j’ai téléchargé le fichier modifié via FTP depuis mon hébergeur pour ensuite le publier via SVN
L’ensemble du code source est disponible sur la page suivante…
Derniers commentaires