Ejemplo n.º 1
0
 /**
  * Prepare the current parameters, filter non valid values out and use defaults instead.
  *
  */
 public function preDispatch()
 {
     parent::preDispatch();
     $intervallType = $this->getRequest()->getParam('intervall_type');
     $measurementUnit = $this->getRequest()->getParam('measurement_unit');
     $sensor = $this->getRequest()->getParam('sensor');
     $intervallStart = $this->getRequest()->getParam('intervall_start', time());
     switch ($intervallType) {
         case Diagram_Model_IntervallMapper::INTERVALL_TYPE_HOUR:
         case Diagram_Model_IntervallMapper::INTERVALL_TYPE_DAY:
         case Diagram_Model_IntervallMapper::INTERVALL_TYPE_WEEK:
         case Diagram_Model_IntervallMapper::INTERVALL_TYPE_MONTH:
         case Diagram_Model_IntervallMapper::INTERVALL_TYPE_YEAR:
             $this->_intervallType = $intervallType;
             break;
         default:
             $this->_intervallType = Diagram_Model_IntervallMapper::INTERVALL_TYPE_DAY;
             break;
     }
     switch ($measurementUnit) {
         case Diagram_Model_IntervallMapper::MEASUREMENT_UNIT_A:
         case Diagram_Model_IntervallMapper::MEASUREMENT_UNIT_W:
         case Diagram_Model_IntervallMapper::MEASUREMENT_UNIT_WH:
             $this->_measurementUnit = $measurementUnit;
             break;
         default:
             $this->_measurementUnit = Diagram_Model_IntervallMapper::MEASUREMENT_UNIT_W;
             break;
     }
     if (is_numeric($sensor)) {
         $this->_sensor = (int) $sensor;
     } else {
         $this->_sensor = Diagram_Model_IntervallMapper::TOTAL_SENSORS;
     }
     $filteredIntervallStart = Diagram_Model_IntervallMapper::getPreparedStartDate($intervallType, $intervallStart);
     $this->_intervallStart = $filteredIntervallStart;
 }
Ejemplo n.º 2
0
 /**
  *
  * @param string	$intervallType
  * @param Zend_Date	$date
  * @return int|string
  */
 public function getStartDateTimestamp($intervallType, Zend_Date $date)
 {
     $dateObj = $this->_getLocaleDate($date);
     $filteredDateObj = Diagram_Model_IntervallMapper::getPreparedStartDate($intervallType, $dateObj);
     return $filteredDateObj->getTimestamp();
 }
Ejemplo n.º 3
0
 /**
  * For comparisons in Flot the returning manipulationtime must be made of a flattened value,
  * to show multiple intervallStarts over each other instead of drawing them behind or later.
  *
  * It's only necessary to flatten the intervalls to a specific datetime for given intervallType.
  *
  * ATTENTION: We use >Monday, January 1, 1973 1:00:00 AM< with timestamp >94694400< for all calculations.
  * TODO Check if 1:00 is all right. wouldn't be 12:00 AM be the first time of the day? e.g. (timestamp(0) - 60sec * 60min)
  *
  * ATTENTION: if multiple intervallStarts are leapYear or not won't be handled.
  * 		Means, if one year is leap and another isn't,
  * 		then the timestamp-values will differ in 1 day from Feb 28. on.
  * TODO fix leap year issue if neccessary.
  *
  * @return int
  */
 protected function _getStartTimeToSubtract()
 {
     $origStartTime = $flattenedStartTime = Diagram_Model_IntervallMapper::getPreparedStartDate($this->_intervallType, $this->_intervallStart)->getTimestamp();
     return $origStartTime - 94694400;
 }