/** * Generate the module */ protected function compile() { $parameters = deserialize($this->airquality_parameters); $size = deserialize($this->chartSize); $this->Template->width = $size[0]; $this->Template->height = $size[1]; $objAirQualityCity = \AirQualityCityModel::findByAlias(\Input::get('items')); $this->Template->city = $objAirQualityCity->title; $this->Template->date = \Date::parse('l j F Y'); $this->Template->source = $objAirQualityCity->source; $objAirQualityStaions = \AirQualityStationModel::findByPid($objAirQualityCity->id); // No stations found if ($objAirQualityStaions === null) { $this->Template = new \FrontendTemplate('mod_airquality_empty'); $this->Template->empty = $GLOBALS['TL_LANG']['MSC']['emptyAirQuality']; } else { $arrAirQuality = array(); $arrCityMaxAQI = array(parameter => '', value => 0, color => '', level => ''); foreach ($objAirQualityStaions as $objStation) { $objAirQualityData = \AirQualityDataModel::findByPidAndToday($objStation->id); if ($objAirQualityData !== null) { $aqi = new \AirQuality($objAirQualityData); $aqis = $aqi->AirQualityIndexes; $maxaqi = $aqi->AirQualityIndex; $arrAirQuality = array('station' => $objStation->title, 'date' => \Date::parse('l j F', $objAirQualityData->date), 'aqi' => $aqis, 'maxaqi' => $maxaqi); $objTemplate = new \FrontendTemplate($this->chartTemplate); $size = deserialize($this->chartSize); $objTemplate->width = $size[0]; $objTemplate->height = $size[1]; $objTemplate->title = $objStation->title; $objTemplate->alias = $objStation->alias; $objTemplate->id = uniqid('chart_'); $objTemplate->labels = '"PM2.5","PM10","CO","NO2","SO2","O3"'; $objTemplate->data = $arrAirQuality; $arrAirQualityCharts[] = $objTemplate->parse(); if ($arrCityMaxAQI[value] < $maxaqi[value]) { $arrCityMaxAQI = $maxaqi; } } } $this->Template->citymaxaqi = $arrCityMaxAQI; if ($arrAirQualityCharts) { $this->Template->airqualitycharts = $arrAirQualityCharts; } else { $this->Template = new \FrontendTemplate('mod_airquality_empty'); $this->Template->empty = $GLOBALS['TL_LANG']['MSC']['emptyAirQuality']; } $arrAirQualityAll = array(); foreach ($objAirQualityStaions as $objStation) { $objAirQualityData = \AirQualityDataModel::findByPid($objStation->id, 30, 1); while ($objAirQualityData->next()) { $aqi = new \AirQuality($objAirQualityData); $arrAirQualityAll[$objStation->title][\Date::parse('m/d', $objAirQualityData->date)] = $aqi->AirQualityIndexes; } } $this->Template->allaqi = $arrAirQualityAll; } }
/** * Generate the module */ protected function compile() { $this->Template->emptyAirQuality = $GLOBALS['TL_LANG']['MSC']['emptyAirQuality']; // Generate a jumpTo link if ($this->jumpTo > 0) { $objJump = \PageModel::findByPk($this->jumpTo); if ($objJump !== null) { $strLink = $this->generateFrontendUrl($objJump->row(), $GLOBALS['TL_CONFIG']['useAutoItem'] ? '/%s' : '/items/%s'); } } $parameters = deserialize($this->airquality_parameters); $objAirQualityCity = \AirQualityCityModel::findById($this->airquality_city); $this->Template->city = $objAirQualityCity->title; $this->Template->source = $objAirQualityCity->source; $this->Template->date = \Date::parse('l j F'); $this->Template->link = strlen($strLink) ? sprintf($strLink, $objAirQualityCity->alias) : ''; $objAirQualityStaions = \AirQualityStationModel::findByPid($this->airquality_city); // No stations found if ($objAirQualityStaions === null) { retuen; } $arrAirQuality = array(); $arrCityMaxAQI = array(parameter => '', value => 0, color => '', level => ''); foreach ($objAirQualityStaions as $objStation) { $objAirQualityData = \AirQualityDataModel::findByPidAndToday($objStation->id); if ($objAirQualityData !== null) { $aqis = deserialize($objAirQualityData->AQI_ALL); $maxaqi = deserialize($objAirQualityData->AQI_MAX); $arrAirQuality = array('station' => $objStation->title, 'date' => \Date::parse('l j F', $objAirQualityData->date), 'aqi' => $aqis, 'maxaqi' => $maxaqi); $objTemplate = new \FrontendTemplate($this->chartTemplate); $size = deserialize($this->chartSize); $objTemplate->width = $size[0]; $objTemplate->height = $size[1]; $objTemplate->title = $objStation->title; $objTemplate->alias = $objStation->alias; $objTemplate->id = uniqid('chart_'); $objTemplate->labels = '"PM2.5","PM10","CO","NO2","SO2","O3"'; $objTemplate->data = $arrAirQuality; $arrAirQualityCharts[] = $objTemplate->parse(); if ($arrCityMaxAQI[value] < $maxaqi[value]) { $arrCityMaxAQI = $maxaqi; } } $this->Template->citymaxaqi = $arrCityMaxAQI; $this->Template->airqualitycharts = $arrAirQualityCharts; } }