183 lines
5.6 KiB
PHP
183 lines
5.6 KiB
PHP
<?php
|
|
|
|
|
|
class appAdsTrackerWidgetBackendActions extends stGadgetActions
|
|
{
|
|
|
|
public function executeAdsTrackerEnteringWidget()
|
|
{
|
|
$request = $this->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.')." ".'<a href="'.$this->getController()->genUrl("appAdsTrackerBackend/config").'" target="_blank">'.$i18n->__('Konfiguracja').'</a>';
|
|
$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;
|
|
}
|
|
}
|
|
|
|
|
|
}
|