Hermes::updateTimer PHP Method

updateTimer() public static method

Update an existing timer.
public static updateTimer ( integer $id, array $timer )
$id integer The timer id.
$timer array The timer hash.
    public static function updateTimer($id, $timer)
    {
        global $prefs;
        $timers = @unserialize($prefs->getValue('running_timers'));
        if (!is_array($timers)) {
            $timers = array();
        }
        $timers[$id] = $timer;
        $prefs->setValue('running_timers', serialize($timers));
        if (!$timer['paused'] && $timer['exclusive']) {
            foreach ($timers as $key => $t) {
                if ($key != $id && $t['exclusive']) {
                    self::pauseTimer($key);
                }
            }
        }
    }

Usage Example

示例#1
0
 /**
  * Stop a timer. Expects the following in $this->vars:
  *   - t:  The timer id.
  *   - restart:
  *
  * @return array  An array describing the current timer state. Contains:
  *  - h: The total number of hours elapsed so far.
  *  - n: A note to apply to the description field of a time slice.
  *  - t: The new timer title, if restarting.
  */
 public function stopTimer()
 {
     global $prefs, $notification;
     try {
         $timer = Hermes::getTimer($this->vars->t);
     } catch (Horde_Exception_NotFound $e) {
         $notification->push(_("Invalid timer requested"), 'horde.error');
         return false;
     }
     $results = $timer;
     $tname = $timer['name'];
     $elapsed = (!$timer['paused'] ? time() - $timer['time'] : 0) + $timer['elapsed'];
     $results['h'] = round((double) $elapsed / 3600, 2);
     $started = new Horde_Date($this->vars->t, 'UTC');
     $started->setTimezone(date_default_timezone_get());
     $now = new Horde_Date(time(), 'UTC');
     $now->setTimezone(date_default_timezone_get());
     if ($prefs->getValue('add_description')) {
         $results['n'] = sprintf(_("Using the \"%s\" stop watch from %s %s to %s %s"), $tname, $started->strftime($prefs->getValue('date_format_mini')), $started->strftime($prefs->getValue('time_format')), $now->strftime($prefs->getValue('date_format_mini')), $now->strftime($prefs->getValue('time_format')));
     } else {
         $results['n'] = '';
     }
     $notification->push(sprintf(_("The stop watch \"%s\" has been stopped."), $tname), 'horde.success');
     Hermes::clearTimer($this->vars->t);
     if ($this->vars->restart == 'true') {
         $now = time();
         $timer['elapsed'] = 0;
         $timer['paused'] = $results['paused'] = true;
         $timer['time'] = $now;
         Hermes::updateTimer($this->vars->t, $timer);
     }
     return $results;
 }
All Usage Examples Of Hermes::updateTimer