function.counter.php
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:2k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. <?php
  2. /**
  3.  * Smarty plugin
  4.  * @package Smarty
  5.  * @subpackage plugins
  6.  */
  7. /**
  8.  * Smarty {counter} function plugin
  9.  *
  10.  * Type:     function<br>
  11.  * Name:     counter<br>
  12.  * Purpose:  print out a counter value
  13.  * @link http://smarty.php.net/manual/en/language.function.counter.php {counter}
  14.  *       (Smarty online manual)
  15.  * @param array parameters
  16.  * @param Smarty
  17.  * @return string|null
  18.  */
  19. function smarty_function_counter($params, &$smarty)
  20. {
  21.     static $counters = array();
  22.     $name = (isset($params['name'])) ? $params['name'] : 'default';
  23.     if (!isset($counters[$name])) {
  24.         $counters[$name] = array(
  25.             'start'=>1,
  26.             'skip'=>1,
  27.             'direction'=>'up',
  28.             'count'=>1
  29.             );
  30.     }
  31.     $counter =& $counters[$name];
  32.     if (isset($params['start'])) {
  33.         $counter['start'] = $counter['count'] = (int)$params['start'];
  34.     }
  35.     if (!empty($params['assign'])) {
  36.         $counter['assign'] = $params['assign'];
  37.     }
  38.     if (isset($counter['assign'])) {
  39.         $smarty->assign($counter['assign'], $counter['count']);
  40.     }
  41.     
  42.     if (isset($params['print'])) {
  43.         $print = (bool)$params['print'];
  44.     } else {
  45.         $print = empty($counter['assign']);
  46.     }
  47.     if ($print) {
  48.         $retval = $counter['count'];
  49.     } else {
  50.         $retval = null;
  51.     }
  52.     if (isset($params['skip'])) {
  53.         $counter['skip'] = $params['skip'];
  54.     }
  55.     
  56.     if (isset($params['direction'])) {
  57.         $counter['direction'] = $params['direction'];
  58.     }
  59.     if ($counter['direction'] == "down")
  60.         $counter['count'] -= $counter['skip'];
  61.     else
  62.         $counter['count'] += $counter['skip'];
  63.     
  64.     return $retval;
  65.     
  66. }
  67. /* vim: set expandtab: */
  68. ?>