[ Index ]
 

Code source de CMS made simple 1.0.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/smarty/plugins/ -> function.html_select_time.php (source)

   1  <?php
   2  /**
   3   * Smarty plugin
   4   * @package Smarty
   5   * @subpackage plugins
   6   */
   7  
   8  
   9  /**
  10   * Smarty {html_select_time} function plugin
  11   *
  12   * Type:     function<br>
  13   * Name:     html_select_time<br>
  14   * Purpose:  Prints the dropdowns for time selection
  15   * @link http://smarty.php.net/manual/en/language.function.html.select.time.php {html_select_time}
  16   *          (Smarty online manual)
  17   * @author Roberto Berto <roberto@berto.net>
  18   * @credits Monte Ohrt <monte AT ohrt DOT com>
  19   * @param array
  20   * @param Smarty
  21   * @return string
  22   * @uses smarty_make_timestamp()
  23   */
  24  function smarty_function_html_select_time($params, &$smarty)
  25  {
  26      require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
  27      require_once $smarty->_get_plugin_filepath('function','html_options');
  28      /* Default values. */
  29      $prefix             = "Time_";
  30      $time               = time();
  31      $display_hours      = true;
  32      $display_minutes    = true;
  33      $display_seconds    = true;
  34      $display_meridian   = true;
  35      $use_24_hours       = true;
  36      $minute_interval    = 1;
  37      $second_interval    = 1;
  38      /* Should the select boxes be part of an array when returned from PHP?
  39         e.g. setting it to "birthday", would create "birthday[Hour]",
  40         "birthday[Minute]", "birthday[Seconds]" & "birthday[Meridian]".
  41         Can be combined with prefix. */
  42      $field_array        = null;
  43      $all_extra          = null;
  44      $hour_extra         = null;
  45      $minute_extra       = null;
  46      $second_extra       = null;
  47      $meridian_extra     = null;
  48  
  49      foreach ($params as $_key=>$_value) {
  50          switch ($_key) {
  51              case 'prefix':
  52              case 'time':
  53              case 'field_array':
  54              case 'all_extra':
  55              case 'hour_extra':
  56              case 'minute_extra':
  57              case 'second_extra':
  58              case 'meridian_extra':
  59                  $$_key = (string)$_value;
  60                  break;
  61  
  62              case 'display_hours':
  63              case 'display_minutes':
  64              case 'display_seconds':
  65              case 'display_meridian':
  66              case 'use_24_hours':
  67                  $$_key = (bool)$_value;
  68                  break;
  69  
  70              case 'minute_interval':
  71              case 'second_interval':
  72                  $$_key = (int)$_value;
  73                  break;
  74  
  75              default:
  76                  $smarty->trigger_error("[html_select_time] unknown parameter $_key", E_USER_WARNING);
  77          }
  78      }
  79  
  80      $time = smarty_make_timestamp($time);
  81  
  82      $html_result = '';
  83  
  84      if ($display_hours) {
  85          $hours       = $use_24_hours ? range(0, 23) : range(1, 12);
  86          $hour_fmt = $use_24_hours ? '%H' : '%I';
  87          for ($i = 0, $for_max = count($hours); $i < $for_max; $i++)
  88              $hours[$i] = sprintf('%02d', $hours[$i]);
  89          $html_result .= '<select name=';
  90          if (null !== $field_array) {
  91              $html_result .= '"' . $field_array . '[' . $prefix . 'Hour]"';
  92          } else {
  93              $html_result .= '"' . $prefix . 'Hour"';
  94          }
  95          if (null !== $hour_extra){
  96              $html_result .= ' ' . $hour_extra;
  97          }
  98          if (null !== $all_extra){
  99              $html_result .= ' ' . $all_extra;
 100          }
 101          $html_result .= '>'."\n";
 102          $html_result .= smarty_function_html_options(array('output'          => $hours,
 103                                                             'values'          => $hours,
 104                                                             'selected'      => strftime($hour_fmt, $time),
 105                                                             'print_result' => false),
 106                                                       $smarty);
 107          $html_result .= "</select>\n";
 108      }
 109  
 110      if ($display_minutes) {
 111          $all_minutes = range(0, 59);
 112          for ($i = 0, $for_max = count($all_minutes); $i < $for_max; $i+= $minute_interval)
 113              $minutes[] = sprintf('%02d', $all_minutes[$i]);
 114          $selected = intval(floor(strftime('%M', $time) / $minute_interval) * $minute_interval);
 115          $html_result .= '<select name=';
 116          if (null !== $field_array) {
 117              $html_result .= '"' . $field_array . '[' . $prefix . 'Minute]"';
 118          } else {
 119              $html_result .= '"' . $prefix . 'Minute"';
 120          }
 121          if (null !== $minute_extra){
 122              $html_result .= ' ' . $minute_extra;
 123          }
 124          if (null !== $all_extra){
 125              $html_result .= ' ' . $all_extra;
 126          }
 127          $html_result .= '>'."\n";
 128          
 129          $html_result .= smarty_function_html_options(array('output'          => $minutes,
 130                                                             'values'          => $minutes,
 131                                                             'selected'      => $selected,
 132                                                             'print_result' => false),
 133                                                       $smarty);
 134          $html_result .= "</select>\n";
 135      }
 136  
 137      if ($display_seconds) {
 138          $all_seconds = range(0, 59);
 139          for ($i = 0, $for_max = count($all_seconds); $i < $for_max; $i+= $second_interval)
 140              $seconds[] = sprintf('%02d', $all_seconds[$i]);
 141          $selected = intval(floor(strftime('%S', $time) / $second_interval) * $second_interval);
 142          $html_result .= '<select name=';
 143          if (null !== $field_array) {
 144              $html_result .= '"' . $field_array . '[' . $prefix . 'Second]"';
 145          } else {
 146              $html_result .= '"' . $prefix . 'Second"';
 147          }
 148          
 149          if (null !== $second_extra){
 150              $html_result .= ' ' . $second_extra;
 151          }
 152          if (null !== $all_extra){
 153              $html_result .= ' ' . $all_extra;
 154          }
 155          $html_result .= '>'."\n";
 156          
 157          $html_result .= smarty_function_html_options(array('output'          => $seconds,
 158                                                             'values'          => $seconds,
 159                                                             'selected'      => $selected,
 160                                                             'print_result' => false),
 161                                                       $smarty);
 162          $html_result .= "</select>\n";
 163      }
 164  
 165      if ($display_meridian && !$use_24_hours) {
 166          $html_result .= '<select name=';
 167          if (null !== $field_array) {
 168              $html_result .= '"' . $field_array . '[' . $prefix . 'Meridian]"';
 169          } else {
 170              $html_result .= '"' . $prefix . 'Meridian"';
 171          }
 172          
 173          if (null !== $meridian_extra){
 174              $html_result .= ' ' . $meridian_extra;
 175          }
 176          if (null !== $all_extra){
 177              $html_result .= ' ' . $all_extra;
 178          }
 179          $html_result .= '>'."\n";
 180          
 181          $html_result .= smarty_function_html_options(array('output'          => array('AM', 'PM'),
 182                                                             'values'          => array('am', 'pm'),
 183                                                             'selected'      => strtolower(strftime('%p', $time)),
 184                                                             'print_result' => false),
 185                                                       $smarty);
 186          $html_result .= "</select>\n";
 187      }
 188  
 189      return $html_result;
 190  }
 191  
 192  /* vim: set expandtab: */
 193  
 194  ?>


Généré le : Tue Apr 3 18:50:37 2007 par Balluche grâce à PHPXref 0.7