first commit
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user