getRequest(); $i18n = $this->getContext()->getI18N(); $context = $this->getContext(); $this->config = stConfig::getInstance($context); $this->config->setCulture($this->getRequestParameter('culture', stLanguage::getOptLanguage())); $currency_config = stConfig::getInstance($this->getContext(), 'stCurrencyPlugin'); $this->default_currency = $currency_config->get('default_currency'); if (!appAdsTracker::getIsAdsTrackerActive()) { $i18n = $this->getContext()->getI18n(); $notice = $i18n->__('Moduł analizy reklam nie jest aktywny i nie zbiera danych.')." ".$i18n->__('Aby go aktywować przejdź do konfiguracji modułu.')." ".''.$i18n->__('Konfiguracja').''; $this->setFlash("info", $notice, false); } $filters = $this->getFiltersEntering(); $this->from_date = $filters['from_date']; $this->to_date = $filters['to_date']; $this->getUser()->setAttribute("filters", $filters, 'soteshop/appAdsTrackerPlugin'); $result = appAdsTracker::getReportsPlatformEnteringValue($filters); $this->result = $result; $this->filters = $filters; $this->periods = $this->getPeriods(); $this->platforms = $this->getPlatforms(); //$this->labels = $this->getLabels(); } protected function getFiltersEntering() { $config = stConfig::getInstance($this->getContext(), 'appAdsTrackerBackend'); $filters = $this->getRequestParameter('filters', $this->getDefaultFiltersEntering()); $periods_array = $this->getDateFromPeriods($filters['period']); $filters['from_date'] = $periods_array['from']." 00:00:00"; $filters['to_date'] = $periods_array['to']." 23:59:59"; $filters_default = json_decode($config->get('platform_entering_default_view')); foreach ($filters_default as $platform_label => $platform_id) { $filters['platform'][$platform_label] = $platform_id; } if ($this->getRequest()->hasParameter('filters')) { $config = stConfig::getInstance('appAdsTrackerBackend'); $config->set('entering_widget_period', $filters['period']); $config->save(); } return $filters; } protected function getDefaultFiltersEntering() { $config = stConfig::getInstance($this->getContext(), 'appAdsTrackerBackend'); $filters_platform = json_decode($config->get('platform_entering_default_view'),true); $filters_period = $config->get('entering_widget_period'); if ($filters_period!="") { $periods_array = $this->getDateFromPeriods($filters_period); $default_date_from = $periods_array['from']." 00:00:00"; $default_date_to = $periods_array['to']." 23:59:59"; } if (is_array($filters_platform)) { return array('from_date' => $default_date_from, 'to_date' => $default_date_to, 'platform'=>$filters_platform, 'period'=>$filters_period ); } $c = new Criteria(); $c->add(AdsTrackerPlatformPeer::IS_ACTIVE, 1); $c->add(AdsTrackerPlatformPeer::IS_SYSTEM_DEFAULT, 1); $platform = AdsTrackerPlatformPeer::doSelectOne($c); if ($platform) { return array('from_date' => $default_date_from, 'to_date' => $default_date_to, 'platform'=>array($platform->getAdsName()=>$platform->getId()), 'period'=>$filters_period); } else { return array('from_date' => $default_date_from, 'to_date' => $default_date_to, 'period'=>$filters_period); } } public function getDateFromPeriods($period) { $date['from'] = ""; $date['to'] = ""; if ($period=="14day") { $date['from'] = date("Y-m-d", strtotime('-14 day')); $date['to'] = date("Y-m-d", strtotime('-1 day')); } if ($period=="30day") { $date['from'] = date("Y-m-d", strtotime('-30 day')); $date['to'] = date("Y-m-d", strtotime('-1 day')); } if ($period=="month") { $date['from'] = date("Y-m-d", strtotime('first day of this month')); $date['to'] = date("Y-m-d", strtotime('today')); } if ($period=="custom") { } return $date; } public function getPeriods() { $i18n = $this->getContext()->getI18N(); // Dzisiaj // Wczoraj // Ostatnie 7 dni // Ostatnie 14 dni // Ostatnie 30 dni // Ostatnie 90 dni // Bieżący miesiąc // Poprzedni miesiąc return array( '14day' => $i18n->__('Ostatnie 14 dni'), '30day' => $i18n->__('Ostatnie 30 dni'), 'month' => $i18n->__('Bieżący miesiąc'), ); } public function getPlatforms() { //pobieranie platform $c = new Criteria(); $c->add(AdsTrackerPlatformPeer::IS_ACTIVE, 1); $platforms = AdsTrackerPlatformPeer::doSelect($c); if ($platforms) { foreach ($platforms as $platform) { $my_platform[$platform->getId()] = $platform->getAdsName(); } return $my_platform; } } }