Plugin Directory

Changeset 176587


Ignore:
Timestamp:
11/24/2009 05:39:38 PM (16 years ago)
Author:
Whiler
Message:

Tag supports attributes ([from][to][format]) and a content for its format

Location:
random-number-generator/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • random-number-generator/trunk/random_number_generator.php

    r176581 r176587  
    44Plugin URI: http://blogs.wittwer.fr/whiler/
    55Description: Generates a random number (for instance, useful to avoid browsers links cache)
    6 Version: 0.0.1
     6Version: 1.0.0
    77Author: Whiler
    88Author URI: http://william.wittwer.fr/
     
    2222
    2323/**
    24  * Fonction qui récupère et valide les paramètres avant de les renvoyer par référence
     24 * Fonction qui valide les paramètres avant de les renvoyer par référence
    2525 * @param integer &$random_number_generator_from   Valeur minimale
    2626 * @param integer &$random_number_generator_to     Valeur maximale
    2727 * @param string  &$random_number_generator_format Format utilisé pour l'affichage
    2828 */
    29 function get_data(&$random_number_generator_from, &$random_number_generator_to, &$random_number_generator_format) {
    30     // Récupération des paramètres depuis les options de WP
    31     $random_number_generator_from   = get_option('random_number_generator_from');
    32     $random_number_generator_to     = get_option('random_number_generator_to');
    33     $random_number_generator_format = get_option('random_number_generator_format');
     29function validate_data(&$random_number_generator_from, &$random_number_generator_to, &$random_number_generator_format) {
    3430    // Validation de la cohérence des valeurs
    3531    if (($random_number_generator_from == $random_number_generator_to) || ($random_number_generator_from > $random_number_generator_to)) {
     
    5652 */
    5753function random_number_generator_optionsPage() {
    58     get_data($random_number_generator_from, $random_number_generator_to, $random_number_generator_format);
     54    // Récupération des paramètres depuis les options de WP
     55    $random_number_generator_from   = get_option('random_number_generator_from');
     56    $random_number_generator_to     = get_option('random_number_generator_to');
     57    $random_number_generator_format = get_option('random_number_generator_format');
     58    validate_data($random_number_generator_from, $random_number_generator_to, $random_number_generator_format);
    5959?>
    6060<div class="wrap">
     
    6666                <th  colspan="2" scope="row">
    6767                    <?php global $random_number_generator_key; printf(__('Simply replace the tag %s by a random number.', 'random_number_generator'), "<code>[$random_number_generator_key]</code>"); ?><br/>
    68                     <span class="description"><?php printf(__('Used to avoid browsers cache by inserting a random number. For instance, %1$s generates %2$s.', 'random_number_generator'), "<code>&lt;a href=\"http://".__('my_url', 'random_number_generator')."?[$random_number_generator_key]\"&gt;</code>", "<code>&lt;a href=\"http://".__('my_url', 'random_number_generator')."?".random_number_generator_shortcode_handler()."\"&gt;</code>"); ?></span>
     68                    <span class="description"><?php printf(__('Used to avoid browsers cache by inserting a random number. For instance, %1$s generates %2$s.', 'random_number_generator'), "<code>&lt;a href=\"http://".__('my_url', 'random_number_generator')."?[$random_number_generator_key]\"&gt;</code>", "<code>&lt;a href=\"http://".__('my_url', 'random_number_generator')."?<span style=\"color:black;font-size:medium;font-weight:bold;\">".do_shortcode("[$random_number_generator_key]")."</span>\"&gt;</code>"); ?></span>
    6969                </th>
    7070            </tr>
     
    160160/**
    161161 * Fonction renvoyant un chiffre aléatoire
     162 * @param string $atts Attributs éventuellement passés dans le tag
     163 * @param string $content Format à utiliser si encapsulé par le tag
    162164 * @return HTML
    163165 */
    164 function random_number_generator_shortcode_handler() {
     166function random_number_generator_shortcode_handler($atts, $content) {
    165167    // $atts    ::= array of attributes
    166168    // $content ::= text within enclosing form of shortcode element
     
    173175    //           [my-shortcode foo='bar']content[/my-shortcode]
    174176   
    175     // Récupère les différentes options
    176     get_data($random_number_generator_from, $random_number_generator_to, $random_number_generator_format);
     177    // [random-number from="2" to="72" format="%b"]%d minutes[/random-number]
     178    // output:   an integer value between 2 & 72 followed by the word 'minutes'
     179    // affiche : une valeur entière entre 2 & 72 suivie du mot 'minutes'
     180
     181    // Récupération des paramètres depuis les options de WP
     182    $random_number_generator_from   = get_option('random_number_generator_from');
     183    $random_number_generator_to     = get_option('random_number_generator_to');
     184    $random_number_generator_format = get_option('random_number_generator_format');
     185
     186    // Récupération des paramètres éventuels avec les options sauvegardées comme valeur par défaut
     187    extract(shortcode_atts(array('from' => $random_number_generator_from, 'to' => $random_number_generator_to, 'format' => $random_number_generator_format), $atts));
     188
     189    // Si on a entouré du texte avec la balise, c'est que ce texte est LE format à utiliser
     190    // Il devrait contenir un champ de spécification pour afficher le nombre aléatoire
     191    if ($content != "") {
     192        $format = $content;
     193    }
     194
     195    // Valide les différentes options
     196    validate_data($from, $to, $format);
    177197    // Génération aléatoire
    178198    mt_srand();
    179199    // Renvoie un nombre aléatoire
    180     return sprintf($random_number_generator_format, mt_rand($random_number_generator_from, $random_number_generator_to));
     200    return sprintf($format, mt_rand($from, $to));
    181201}
    182202
  • random-number-generator/trunk/readme.txt

    r176581 r176587  
    55Requires at least: 2.7
    66Tested up to: 2.8.6
    7 Stable tag: 0.0.1
     7Stable tag: 1.0.0
    88
    99Simply replace the tag [random-number] by a random number.
     
    1212
    1313It can be used to avoid browsers cache by inserting a random number. For instance, http://my_url?[random-number]" could generate http://my_url?134548.
     14[random-number from="2" to="72" format="%b"]%d minutes[/random-number]
     15output: an integer value between 2 & 72 followed by the word 'minutes'
    1416
    1517This plugin is a sample on how to create a plugin which:
     
    4042== Changelog ==
    4143
     44= 1.0.0 =
     45* Tag supports attributes ([from][to][format]) and a content for its format
     46
    4247= 0.0.1 =
    4348* First release
Note: See TracChangeset for help on using the changeset viewer.