first commit
This commit is contained in:
@@ -0,0 +1,993 @@
|
||||
<?php
|
||||
|
||||
|
||||
class appAdsTrackerBackendActions extends autoAppAdsTrackerBackendActions
|
||||
{
|
||||
|
||||
protected function updateAdsTrackerListFromRequest()
|
||||
{
|
||||
$ads_tracker_list = $this->getRequestParameter('ads_tracker_list');
|
||||
|
||||
$this->ads_tracker_list->setIsActive(isset($ads_tracker_list['is_active']) ? $ads_tracker_list['is_active'] : 0);
|
||||
|
||||
|
||||
if (isset($ads_tracker_list['platform_campaign']))
|
||||
{
|
||||
$platform_campaign = explode("_", $ads_tracker_list['platform_campaign']);
|
||||
|
||||
$platform = $platform_campaign[0];
|
||||
$campaign = $platform_campaign[1];
|
||||
|
||||
$this->ads_tracker_list->setAppAdsTrackerPlatformId($platform);
|
||||
$this->ads_tracker_list->setAppAdsTrackerCampaignId($campaign);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (isset($ads_tracker_list['ads_group']))
|
||||
{
|
||||
$this->ads_tracker_list->setAdsGroup($ads_tracker_list['ads_group']);
|
||||
}
|
||||
if (isset($ads_tracker_list['ads_name']))
|
||||
{
|
||||
$this->ads_tracker_list->setAdsName($ads_tracker_list['ads_name']);
|
||||
}
|
||||
|
||||
if (isset($ads_tracker_list['url']) && $this->ads_tracker_list->isNew())
|
||||
{
|
||||
$this->ads_tracker_list->setUrl($ads_tracker_list['url']);
|
||||
|
||||
$hash = md5(date('YmdHis').$ads_tracker_list['url'].$ads_tracker_list['platform_campaign']);
|
||||
|
||||
$this->ads_tracker_list->setHash($hash);
|
||||
|
||||
$this->ads_tracker_list->setUrlHash($ads_tracker_list['url']."?hash=".$hash);
|
||||
}else{
|
||||
|
||||
$hash = $this->ads_tracker_list->getHash();
|
||||
|
||||
$this->ads_tracker_list->setUrl($ads_tracker_list['url']);
|
||||
|
||||
$this->ads_tracker_list->setUrlHash($ads_tracker_list['url']."?hash=".$hash);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
$this->getDispatcher()->notify(new sfEvent($this, 'autoAppAdsTrackerBackendActions.postUpdateFromRequest', array('modelInstance' => $this->ads_tracker_list, 'requestParameters' => $ads_tracker_list)));
|
||||
|
||||
stTheme::clearSmartyCache(true);
|
||||
}
|
||||
|
||||
protected function getFiltersPlatform()
|
||||
{
|
||||
$filters = $this->getRequestParameter('filters', $this->getDefaultFiltersPlatform());
|
||||
|
||||
if($filters['period']=="custom"){
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['from_date']))
|
||||
{
|
||||
$filters['from_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['from_date'], $this->getUser()->getCulture()))." 00:00:00";
|
||||
}
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['to_date']))
|
||||
{
|
||||
$filters['to_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['to_date'], $this->getUser()->getCulture()))." 23:59:59";
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
$periods_array = $this->getDateFromPeriods($filters['period']);
|
||||
|
||||
$filters['from_date'] = $periods_array['from']." 00:00:00";
|
||||
$filters['to_date'] = $periods_array['to']." 23:59:59";
|
||||
|
||||
}
|
||||
|
||||
foreach ($filters['platform'] as $platform_label => $platform_id) {
|
||||
$filters['platform'][$platform_label] = $platform_id;
|
||||
}
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters'))
|
||||
{
|
||||
$config = stConfig::getInstance('appAdsTrackerBackend');
|
||||
$config->set('platform_default_view', json_encode($filters['platform']));
|
||||
$config->set('platform_default_period', $filters['period']);
|
||||
|
||||
if($filters['period']=="custom"){
|
||||
$custom['from_date'] = $filters['from_date'];
|
||||
$custom['to_date'] = $filters['to_date'];
|
||||
$config->set('platform_default_period_custom', json_encode($custom));
|
||||
}
|
||||
|
||||
$config->save();
|
||||
}
|
||||
|
||||
return $filters;
|
||||
}
|
||||
|
||||
|
||||
protected function getFiltersCampaign()
|
||||
{
|
||||
$filters = $this->getRequestParameter('filters', $this->getDefaultFiltersCampaign());
|
||||
|
||||
if($filters['period']=="custom"){
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['from_date']))
|
||||
{
|
||||
$filters['from_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['from_date'], $this->getUser()->getCulture()))." 00:00:00";
|
||||
}
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['to_date']))
|
||||
{
|
||||
$filters['to_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['to_date'], $this->getUser()->getCulture()))." 23:59:59";
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
$periods_array = $this->getDateFromPeriods($filters['period']);
|
||||
|
||||
$filters['from_date'] = $periods_array['from']." 00:00:00";
|
||||
$filters['to_date'] = $periods_array['to']." 23:59:59";
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters'))
|
||||
{
|
||||
$config = stConfig::getInstance('appAdsTrackerBackend');
|
||||
$config->set('campaign_default_view_1', $filters['platform_campaign_1']);
|
||||
$config->set('campaign_default_view_2', $filters['platform_campaign_2']);
|
||||
$config->set('campaign_default_period', $filters['period']);
|
||||
|
||||
if($filters['period']=="custom"){
|
||||
$custom['from_date'] = $filters['from_date'];
|
||||
$custom['to_date'] = $filters['to_date'];
|
||||
$config->set('campaign_default_period_custom', json_encode($custom));
|
||||
}
|
||||
|
||||
|
||||
$config->save();
|
||||
}
|
||||
|
||||
return $filters;
|
||||
}
|
||||
|
||||
protected function getFiltersCampaignEntering()
|
||||
{
|
||||
$filters = $this->getRequestParameter('filters', $this->getDefaultFiltersCampaignEntering());
|
||||
|
||||
if ($filters['period']=="custom") {
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['from_date'])) {
|
||||
$filters['from_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['from_date'], $this->getUser()->getCulture()))." 00:00:00";
|
||||
}
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['to_date'])) {
|
||||
$filters['to_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['to_date'], $this->getUser()->getCulture()))." 23:59:59";
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
$periods_array = $this->getDateFromPeriods($filters['period']);
|
||||
|
||||
$filters['from_date'] = $periods_array['from']." 00:00:00";
|
||||
$filters['to_date'] = $periods_array['to']." 23:59:59";
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters')) {
|
||||
$config = stConfig::getInstance('appAdsTrackerBackend');
|
||||
$config->set('campaign_entering_default_view_1', $filters['platform_campaign_1']);
|
||||
$config->set('campaign_entering_default_view_2', $filters['platform_campaign_2']);
|
||||
$config->set('campaign_entering_default_period', $filters['period']);
|
||||
|
||||
if ($filters['period']=="custom") {
|
||||
$custom['from_date'] = $filters['from_date'];
|
||||
$custom['to_date'] = $filters['to_date'];
|
||||
$config->set('campaign_entering_default_period_custom', json_encode($custom));
|
||||
}
|
||||
|
||||
|
||||
$config->save();
|
||||
}
|
||||
|
||||
return $filters;
|
||||
}
|
||||
|
||||
protected function getDefaultFiltersCampaignEntering()
|
||||
{
|
||||
$config = stConfig::getInstance($this->getContext(), 'appAdsTrackerBackend');
|
||||
|
||||
$filters_platform_campaign_1 = $config->get('campaign_entering_default_view_1');
|
||||
$filters_platform_campaign_2 = $config->get('campaign_entering_default_view_2');
|
||||
$filters_period = $config->get('campaign_entering_default_period');
|
||||
$filters_period_custom = json_decode($config->get('campaign_entering_default_period_custom'), true);
|
||||
|
||||
|
||||
|
||||
if (!$filters_platform_campaign_1) {
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerPlatformPeer::IS_ACTIVE, 1);
|
||||
$c->add(AdsTrackerPlatformPeer::IS_SYSTEM_DEFAULT, 1);
|
||||
$platform = AdsTrackerPlatformPeer::doSelectOne($c);
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerCampaignPeer::IS_ACTIVE, 1);
|
||||
$c->add(AdsTrackerCampaignPeer::IS_SYSTEM_DEFAULT, 1);
|
||||
$campaign = AdsTrackerCampaignPeer::doSelectOne($c);
|
||||
|
||||
$filters_platform_campaign_1 = $platform->getId()."_".$campaign->getId();
|
||||
}
|
||||
|
||||
|
||||
if ($filters_period!="") {
|
||||
|
||||
if ($filters_period=="custom") {
|
||||
$default_date_from = $filters_period_custom['from_date'];
|
||||
$default_date_to = $filters_period_custom['to_date'];
|
||||
} else {
|
||||
|
||||
$periods_array = $this->getDateFromPeriods($filters_period);
|
||||
|
||||
$default_date_from = $periods_array['from']." 00:00:00";
|
||||
$default_date_to = $periods_array['to']." 23:59:59";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return array('from_date' => $default_date_from, 'to_date' => $default_date_to, 'platform_campaign_1'=>$filters_platform_campaign_1, 'platform_campaign_2'=>$filters_platform_campaign_2, 'period'=>$filters_period);
|
||||
}
|
||||
|
||||
protected function getFiltersInfo()
|
||||
{
|
||||
$filters = $this->getRequestParameter('filters', $this->getDefaultFiltersInfo());
|
||||
//$filters = $this->getRequestParameter('filters');
|
||||
|
||||
if($filters['period']=="custom"){
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['from_date']))
|
||||
{
|
||||
$filters['from_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['from_date'], $this->getUser()->getCulture()))." 00:00:00";
|
||||
}
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['to_date']))
|
||||
{
|
||||
$filters['to_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['to_date'], $this->getUser()->getCulture()))." 23:59:59";
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
$periods_array = $this->getDateFromPeriods($filters['period']);
|
||||
|
||||
$filters['from_date'] = $periods_array['from']." 00:00:00";
|
||||
$filters['to_date'] = $periods_array['to']." 23:59:59";
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters'))
|
||||
{
|
||||
$config = stConfig::getInstance('appAdsTrackerBackend');
|
||||
$config->set('info_default_view', $filters['ads_id']);
|
||||
$config->set('info_default_period', $filters['period']);
|
||||
|
||||
if($filters['period']=="custom"){
|
||||
$custom['from_date'] = $filters['from_date'];
|
||||
$custom['to_date'] = $filters['to_date'];
|
||||
$config->set('info_default_period_custom', json_encode($custom));
|
||||
}
|
||||
|
||||
$config->save();
|
||||
}
|
||||
|
||||
return $filters;
|
||||
}
|
||||
|
||||
protected function getFiltersPlatformEntering()
|
||||
{
|
||||
$filters = $this->getRequestParameter('filters', $this->getDefaultFiltersPlatformEntering());
|
||||
|
||||
if ($filters['period']=="custom") {
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['from_date'])) {
|
||||
$filters['from_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['from_date'], $this->getUser()->getCulture()))." 00:00:00";
|
||||
}
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters') && isset($filters['to_date'])) {
|
||||
$filters['to_date'] = date("Y-m-d", sfI18N::getTimestampForCulture($filters['to_date'], $this->getUser()->getCulture()))." 23:59:59";
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
$periods_array = $this->getDateFromPeriods($filters['period']);
|
||||
|
||||
$filters['from_date'] = $periods_array['from']." 00:00:00";
|
||||
$filters['to_date'] = $periods_array['to']." 23:59:59";
|
||||
|
||||
}
|
||||
|
||||
foreach ($filters['platform'] as $platform_label => $platform_id) {
|
||||
$filters['platform'][$platform_label] = $platform_id;
|
||||
}
|
||||
|
||||
if ($this->getRequest()->hasParameter('filters')) {
|
||||
$config = stConfig::getInstance('appAdsTrackerBackend');
|
||||
$config->set('platform_entering_default_view', json_encode($filters['platform']));
|
||||
$config->set('platform_entering_default_period', $filters['period']);
|
||||
|
||||
if ($filters['period']=="custom") {
|
||||
$custom['from_date'] = $filters['from_date'];
|
||||
$custom['to_date'] = $filters['to_date'];
|
||||
$config->set('platform_entering_default_period_custom', json_encode($custom));
|
||||
}
|
||||
|
||||
$config->save();
|
||||
}
|
||||
|
||||
return $filters;
|
||||
}
|
||||
|
||||
protected function getDefaultFiltersPlatformEntering()
|
||||
{
|
||||
$config = stConfig::getInstance($this->getContext(), 'appAdsTrackerBackend');
|
||||
|
||||
$filters_platform = json_decode($config->get('platform_entering_default_view'),true);
|
||||
$filters_period = $config->get('platform_entering_default_period');
|
||||
$filters_period_custom = json_decode($config->get('platform_entering_default_period_custom'),true);
|
||||
|
||||
|
||||
if ($filters_period!="") {
|
||||
|
||||
if ($filters_period=="custom") {
|
||||
|
||||
$default_date_from = $filters_period_custom['from_date'];
|
||||
$default_date_to = $filters_period_custom['to_date'];
|
||||
} else {
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getDefaultFiltersPlatform()
|
||||
{
|
||||
$config = stConfig::getInstance($this->getContext(), 'appAdsTrackerBackend');
|
||||
|
||||
$filters_platform = json_decode($config->get('platform_default_view'),true);
|
||||
$filters_period = $config->get('platform_default_period');
|
||||
$filters_period_custom = json_decode($config->get('platform_default_period_custom'),true);
|
||||
|
||||
if($filters_period!=""){
|
||||
|
||||
if($filters_period=="custom"){
|
||||
$default_date_from = $filters_period_custom['from_date'];
|
||||
$default_date_to = $filters_period_custom['to_date'];
|
||||
}else{
|
||||
$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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected function getDefaultFiltersCampaign()
|
||||
{
|
||||
$config = stConfig::getInstance($this->getContext(), 'appAdsTrackerBackend');
|
||||
|
||||
$filters_platform_campaign_1 = $config->get('campaign_default_view_1');
|
||||
$filters_platform_campaign_2 = $config->get('campaign_default_view_2');
|
||||
$filters_period = $config->get('campaign_default_period');
|
||||
$filters_period_custom = json_decode($config->get('campaign_default_period_custom'), true);
|
||||
|
||||
|
||||
|
||||
if(!$filters_platform_campaign_1){
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerPlatformPeer::IS_ACTIVE, 1);
|
||||
$c->add(AdsTrackerPlatformPeer::IS_SYSTEM_DEFAULT, 1);
|
||||
$platform = AdsTrackerPlatformPeer::doSelectOne($c);
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerCampaignPeer::IS_ACTIVE, 1);
|
||||
$c->add(AdsTrackerCampaignPeer::IS_SYSTEM_DEFAULT, 1);
|
||||
$campaign = AdsTrackerCampaignPeer::doSelectOne($c);
|
||||
|
||||
$filters_platform_campaign_1 = $platform->getId()."_".$campaign->getId();
|
||||
}
|
||||
|
||||
|
||||
if($filters_period!=""){
|
||||
|
||||
if($filters_period=="custom"){
|
||||
$default_date_from = $filters_period_custom['from_date'];
|
||||
$default_date_to = $filters_period_custom['to_date'];
|
||||
}else{
|
||||
|
||||
$periods_array = $this->getDateFromPeriods($filters_period);
|
||||
|
||||
$default_date_from = $periods_array['from']." 00:00:00";
|
||||
$default_date_to = $periods_array['to']." 23:59:59";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return array('from_date' => $default_date_from, 'to_date' => $default_date_to, 'platform_campaign_1'=>$filters_platform_campaign_1, 'platform_campaign_2'=>$filters_platform_campaign_2, 'period'=>$filters_period);
|
||||
}
|
||||
|
||||
protected function getDefaultFiltersInfo()
|
||||
{
|
||||
$config = stConfig::getInstance($this->getContext(), 'appAdsTrackerBackend');
|
||||
|
||||
$filters_ads = $config->get('info_default_view');
|
||||
$filters_period = $config->get('info_default_period');
|
||||
$filters_period_custom = json_decode($config->get('info_default_period_custom'), true);
|
||||
|
||||
|
||||
if($filters_period!=""){
|
||||
|
||||
if($filters_period=="custom"){
|
||||
$default_date_from = $filters_period_custom['from_date'];
|
||||
$default_date_to = $filters_period_custom['to_date'];
|
||||
}else{
|
||||
$default_date_from = $this->getDateFromPeriods($filters_period);
|
||||
@$default_date_from = $default_date_from." 00:00:00";
|
||||
$default_date_to = date("Y-m-d")." 23:59:59";
|
||||
}
|
||||
}
|
||||
|
||||
if($filters_ads==""){
|
||||
$filters_ads = $this->getRequestParameter('id');
|
||||
}
|
||||
|
||||
return array('from_date' => $default_date_from, 'to_date' => $default_date_to, 'ads_id'=>$filters_ads, 'period'=>$filters_period);
|
||||
}
|
||||
|
||||
|
||||
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(
|
||||
'today' => $i18n->__('Dzisiaj'),
|
||||
'yesterday' => $i18n->__('Wczoraj'),
|
||||
'7day' => $i18n->__('Ostatnie 7 dni'),
|
||||
'14day' => $i18n->__('Ostatnie 14 dni'),
|
||||
'30day' => $i18n->__('Ostatnie 30 dni'),
|
||||
'90day' => $i18n->__('Ostatnie 90 dni'),
|
||||
'month' => $i18n->__('Bieżący miesiąc'),
|
||||
'monthbefore' => $i18n->__('Poprzedni miesiąc'),
|
||||
'custom' => $i18n->__('Własny zakres')
|
||||
);
|
||||
}
|
||||
|
||||
public function getDateFromPeriods($period){
|
||||
|
||||
$date['from'] = "";
|
||||
$date['to'] = "";
|
||||
|
||||
if($period=="today"){
|
||||
$date['from'] = date("Y-m-d", strtotime('today'));
|
||||
$date['to'] = date("Y-m-d", strtotime('today'));
|
||||
}
|
||||
|
||||
if($period=="yesterday"){
|
||||
$date['from'] = date("Y-m-d", strtotime('yesterday'));
|
||||
$date['to'] = date("Y-m-d", strtotime('yesterday'));
|
||||
}
|
||||
|
||||
if($period=="7day"){
|
||||
$date['from'] = date("Y-m-d", strtotime('-7 day'));
|
||||
$date['to'] = date("Y-m-d", strtotime('-1 day'));
|
||||
}
|
||||
|
||||
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=="90day"){
|
||||
$date['from'] = date("Y-m-d", strtotime('-90 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=="monthbefore"){
|
||||
$date['from'] = date("Y-m-d", strtotime('first day of last month'));
|
||||
$date['to'] = date("Y-m-d", strtotime('last day of last month'));
|
||||
}
|
||||
|
||||
if($period=="custom"){
|
||||
|
||||
}
|
||||
|
||||
return $date;
|
||||
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function getCampaigns()
|
||||
{
|
||||
//pobieranie kampanii
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerCampaignPeer::IS_ACTIVE, 1);
|
||||
$campaigns = AdsTrackerCampaignPeer::doSelect($c);
|
||||
|
||||
$result_campaigns = array();
|
||||
|
||||
if($campaigns){
|
||||
|
||||
foreach ($campaigns as $campaign) {
|
||||
$my_campaigns[$campaign->getAppAdsTrackerPlatformId()."_".$campaign->getId()] = $campaign->getAdsTrackerPlatform()->getAdsName()." - ".$campaign->getAdsName();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $my_campaigns;
|
||||
}
|
||||
|
||||
public function getAdsList()
|
||||
{
|
||||
//pobieranie kampanii
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerListPeer::IS_ACTIVE, 1);
|
||||
$adsTrackerList = AdsTrackerListPeer::doSelect($c);
|
||||
|
||||
$result_tracker_list = array();
|
||||
|
||||
if($adsTrackerList){
|
||||
|
||||
foreach ($adsTrackerList as $ads) {
|
||||
$name = "";
|
||||
|
||||
if($ads->getAdsGroup()){
|
||||
$name.= $ads->getAdsGroup()." / ";
|
||||
}
|
||||
|
||||
if($ads->getAdsName()){
|
||||
$name.= $ads->getAdsName()." / ";
|
||||
}
|
||||
|
||||
$my_ads[$ads->getId()] = $name.$ads->getAdsTrackerPlatform()->getAdsName()." - ".$ads->getAdsTrackerCampaign()->getAdsName();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $my_ads;
|
||||
}
|
||||
|
||||
public function executeAdsTrackerPlatformStats()
|
||||
{
|
||||
$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->getFiltersPlatform();
|
||||
|
||||
$this->from_date = $filters['from_date'];
|
||||
$this->to_date = $filters['to_date'];
|
||||
|
||||
$this->getUser()->setAttribute("filters", $filters, 'soteshop/appAdsTrackerPlugin');
|
||||
|
||||
$result = appAdsTracker::getReportsPlatformsValue($filters);
|
||||
|
||||
|
||||
$this->result = $result;
|
||||
|
||||
$this->filters = $filters;
|
||||
|
||||
$this->periods = $this->getPeriods();
|
||||
|
||||
$this->platforms = $this->getPlatforms();
|
||||
|
||||
$this->labels = $this->getLabels();
|
||||
|
||||
}
|
||||
|
||||
public function executeAdsTrackerPlatformEnteringStats()
|
||||
{
|
||||
$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->getFiltersPlatformEntering();
|
||||
|
||||
$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();
|
||||
}
|
||||
|
||||
|
||||
public function executeAdsTrackerCampaignStats()
|
||||
{
|
||||
$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->getFiltersCampaign();
|
||||
|
||||
$this->from_date = $filters['from_date'];
|
||||
$this->to_date = $filters['to_date'];
|
||||
$this->selected_1 = $filters['platform_campaign_1'];
|
||||
$this->selected_2 = $filters['platform_campaign_2'];
|
||||
|
||||
$this->getUser()->setAttribute("filters", $filters, 'soteshop/appAdsTrackerPlugin');
|
||||
|
||||
|
||||
|
||||
$result = appAdsTracker::getReportsCampaignValue($filters);
|
||||
|
||||
|
||||
$this->result = $result;
|
||||
|
||||
$this->filters = $filters;
|
||||
|
||||
$this->periods = $this->getPeriods();
|
||||
|
||||
$this->campaigns_1 = $this->getCampaigns();
|
||||
|
||||
$this->campaigns_2 = $this->getCampaigns();
|
||||
|
||||
//$this->labels = $this->getLabels();
|
||||
}
|
||||
|
||||
public function executeAdsTrackerCampaignEnteringStats()
|
||||
{
|
||||
$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->getFiltersCampaignEntering();
|
||||
|
||||
$this->from_date = $filters['from_date'];
|
||||
$this->to_date = $filters['to_date'];
|
||||
$this->selected_1 = $filters['platform_campaign_1'];
|
||||
$this->selected_2 = $filters['platform_campaign_2'];
|
||||
|
||||
$this->getUser()->setAttribute("filters", $filters, 'soteshop/appAdsTrackerPlugin');
|
||||
|
||||
|
||||
|
||||
$result = appAdsTracker::getReportsCampaignEnteringValue($filters);
|
||||
|
||||
|
||||
$this->result = $result;
|
||||
|
||||
$this->filters = $filters;
|
||||
|
||||
$this->periods = $this->getPeriods();
|
||||
|
||||
$this->campaigns_1 = $this->getCampaigns();
|
||||
|
||||
$this->campaigns_2 = $this->getCampaigns();
|
||||
|
||||
//$this->labels = $this->getLabels();
|
||||
}
|
||||
|
||||
public function executeAdsTrackerInfoStats()
|
||||
{
|
||||
|
||||
$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');
|
||||
|
||||
$ads_tracker_id = $this->getRequestParameter('id');
|
||||
|
||||
$filters = $this->getFiltersInfo();
|
||||
|
||||
$this->from_date = $filters['from_date'];
|
||||
$this->to_date = $filters['to_date'];
|
||||
|
||||
if(isset($ads_tracker_id)){
|
||||
$filters['ads_id'] = $ads_tracker_id;
|
||||
}
|
||||
|
||||
$this->getUser()->setAttribute("filters", $filters, 'soteshop/appAdsTrackerPlugin');
|
||||
|
||||
|
||||
/*echo "<pre>";
|
||||
print_r($filters);
|
||||
echo "</pre>";*/
|
||||
|
||||
$result = appAdsTracker::getReportsAdsInfoValue($filters);
|
||||
|
||||
/*echo "<pre>";
|
||||
print_r($result);
|
||||
echo "</pre>";*/
|
||||
|
||||
$this->result = $result;
|
||||
|
||||
$this->filters = $filters;
|
||||
//
|
||||
$this->periods = $this->getPeriods();
|
||||
//
|
||||
$this->ads_list = $this->getAdsList();
|
||||
|
||||
//$this->labels = $this->getLabels();
|
||||
}
|
||||
|
||||
public function executeDeleteAll()
|
||||
{
|
||||
AdsTrackerDebugPeer::doDeleteAll();
|
||||
return $this->redirect('appAdsTrackerBackend/adsTrackerDebugList');
|
||||
}
|
||||
|
||||
|
||||
protected function saveConfig()
|
||||
{
|
||||
$this->config->save();
|
||||
|
||||
stFastCacheManager::clearCache();
|
||||
stTheme::clearSmartyCache(true);
|
||||
foreach (glob(sfConfig::get('sf_root_dir').'/cache/smarty_c/*') as $file)
|
||||
{unlink($file);}
|
||||
|
||||
}
|
||||
|
||||
public function executeList()
|
||||
{
|
||||
|
||||
parent::executeList();
|
||||
|
||||
if ($this->getRequest()->getMethod() == sfRequest::GET && $this->getRequest()->hasParameter("filters"))
|
||||
{
|
||||
return $this->redirect('appAdsTrackerBackend/list');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function executeAdsTrackerCampaignList()
|
||||
{
|
||||
parent::executeAdsTrackerCampaignList();
|
||||
|
||||
if ($this->getRequest()->getMethod() == sfRequest::GET && $this->getRequest()->hasParameter("filters"))
|
||||
{
|
||||
return $this->redirect('appAdsTrackerBackend/adsTrackerCampaignList');
|
||||
}
|
||||
}
|
||||
|
||||
protected function addFiltersCriteria($c)
|
||||
{
|
||||
$c->add(AdsTrackerListPeer::ADS_NAME, "Wejścia bezpośrednie", Criteria::NOT_EQUAL );
|
||||
parent::addFiltersCriteria($c);
|
||||
}
|
||||
|
||||
|
||||
protected function addAdsTrackerCampaignFiltersCriteria($c)
|
||||
{
|
||||
$c->add(AdsTrackerCampaignPeer::ADS_NAME, "Wejścia bezpośrednie", Criteria::NOT_EQUAL );
|
||||
parent::addAdsTrackerCampaignFiltersCriteria($c);
|
||||
}
|
||||
|
||||
|
||||
protected function getAdsTrackerListOrCreate($id = 'id')
|
||||
{
|
||||
|
||||
parent::getAdsTrackerListOrCreate($id);
|
||||
|
||||
if ($this->ads_tracker_list->getIsPlugin()){
|
||||
|
||||
$this->getUser()->setParameter('hide', true, 'appAdsTrackerBackend/edit/fields/url');
|
||||
$this->getUser()->setParameter('hide', true, 'appAdsTrackerBackend/edit/fields/url_hash');
|
||||
}else{
|
||||
$this->getUser()->setParameter('hide', true, 'appAdsTrackerBackend/edit/fields/hash_for_plugin');
|
||||
}
|
||||
|
||||
return $this->ads_tracker_list;
|
||||
}
|
||||
|
||||
|
||||
protected function updateAdsTrackerCampaignAdsTrackerCampaignFromRequest()
|
||||
{
|
||||
$ads_tracker_campaign = $this->getRequestParameter('ads_tracker_campaign');
|
||||
|
||||
$this->ads_tracker_campaign->setIsActive(isset($ads_tracker_campaign['is_active']) ? $ads_tracker_campaign['is_active'] : 0);
|
||||
if (isset($ads_tracker_campaign['app_ads_tracker_platform_id'])) {
|
||||
$this->ads_tracker_campaign->setAppAdsTrackerPlatformId($ads_tracker_campaign['app_ads_tracker_platform_id'] ? $ads_tracker_campaign['app_ads_tracker_platform_id'] : null);
|
||||
}
|
||||
if (isset($ads_tracker_campaign['ads_name'])) {
|
||||
$this->ads_tracker_campaign->setAdsName($ads_tracker_campaign['ads_name']);
|
||||
}
|
||||
if (isset($ads_tracker_campaign['color'])) {
|
||||
if (method_exists($this->ads_tracker_campaign, 'setColor')) {
|
||||
$this->ads_tracker_campaign->setColor($ads_tracker_campaign['color']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerListPeer::APP_ADS_TRACKER_CAMPAIGN_ID, $this->ads_tracker_campaign->getId());
|
||||
$adsTrackerList = AdsTrackerListPeer::doSelect($c);
|
||||
|
||||
if ($adsTrackerList) {
|
||||
foreach ($adsTrackerList as $ads ) {
|
||||
|
||||
$ads->setAppAdsTrackerPlatformId($this->ads_tracker_campaign->getAppAdsTrackerPlatformId());
|
||||
$ads->save();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$this->getDispatcher()->notify(new sfEvent($this, 'autoAppAdsTrackerBackendActions.postUpdateAdsTrackerCampaignFromRequest', array('modelInstance' => $this->ads_tracker_campaign, 'requestParameters' => $ads_tracker_campaign)));
|
||||
}
|
||||
|
||||
|
||||
protected function deleteAdsTrackerCampaignAdsTrackerCampaign($ads_tracker_campaign)
|
||||
{
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerListPeer::APP_ADS_TRACKER_CAMPAIGN_ID, $ads_tracker_campaign->getId());
|
||||
$adsTrackerList = AdsTrackerListPeer::doSelect($c);
|
||||
|
||||
|
||||
if ($adsTrackerList) {
|
||||
$i18n = $this->getContext()->getI18N();
|
||||
$message = $i18n->__('Nie można usunąć kampani, ktora zawiera reklamy.');
|
||||
throw new Exception($message);
|
||||
}
|
||||
|
||||
|
||||
return parent::deleteAdsTrackerCampaignAdsTrackerCampaign($ads_tracker_campaign);
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected function deleteAdsTrackerPlatformAdsTrackerPlatform($ads_tracker_platform)
|
||||
{
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerCampaignPeer::APP_ADS_TRACKER_PLATFORM_ID, $ads_tracker_platform->getId());
|
||||
$adsTrackerCampaign = AdsTrackerCampaignPeer::doSelect($c);
|
||||
|
||||
if ($adsTrackerCampaign) {
|
||||
$i18n = $this->getContext()->getI18N();
|
||||
$message = $i18n->__('Nie można usunąć platformy, ktora zawiera kampanie.');
|
||||
throw new Exception($message);
|
||||
}
|
||||
|
||||
return parent::deleteAdsTrackerPlatformAdsTrackerPlatform($ads_tracker_platform);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
|
||||
class appAdsTrackerBackendComponents extends autoAppAdsTrackerBackendComponents
|
||||
{
|
||||
|
||||
public function executeAdsTrackerPlatformCampaign()
|
||||
{
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerCampaignPeer::IS_ACTIVE, 1);
|
||||
$campaigns = AdsTrackerCampaignPeer::doSelect($c);
|
||||
|
||||
$result_campaigns = array();
|
||||
|
||||
if($campaigns){
|
||||
|
||||
foreach ($campaigns as $campaign) {
|
||||
$result_campaigns[$campaign->getAppAdsTrackerPlatformId()."_".$campaign->getId()] = $campaign->getAdsTrackerPlatform()->getAdsName()." - ".$campaign->getAdsName();
|
||||
}
|
||||
|
||||
}
|
||||
$result_campaigns = $result_campaigns;
|
||||
$this->campaigns = $result_campaigns;
|
||||
}
|
||||
|
||||
public function executeAdsEntering()
|
||||
{
|
||||
$ads_id = $this -> ads_tracker_list -> getId();
|
||||
$this->id = $ads_id;
|
||||
$this->value = appAdsTracker::getAdsEnteringValue($ads_id);
|
||||
}
|
||||
|
||||
protected function processMenuItems()
|
||||
{
|
||||
$config = stConfig::getInstance($this->getContext(), 'appAdsTrackerBackend');
|
||||
$config = $config;
|
||||
|
||||
if(!$config->get('is_debug')):
|
||||
unset($this->items["@appAdsTrackerPlugin?action=adsTrackerDebugList"]);
|
||||
endif;
|
||||
|
||||
parent::processMenuItems();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
generator:
|
||||
class: stAdminGenerator
|
||||
param:
|
||||
model_class: AdsTrackerList
|
||||
ads_tracker_platform_model_class: AdsTrackerPlatform
|
||||
ads_tracker_campaign_model_class: AdsTrackerCampaign
|
||||
ads_tracker_debug_model_class: AdsTrackerDebug
|
||||
|
||||
theme: simple
|
||||
head:
|
||||
package: appAdsTrackerPlugin
|
||||
|
||||
custom_actions:
|
||||
list: [ads_tracker_platform, ads_tracker_campaign, ads_tracker_debug]
|
||||
edit: [ads_tracker_platform, ads_tracker_campaign, ads_tracker_debug]
|
||||
|
||||
documentation:
|
||||
pl: https://www.sote.pl/docs/ads-tracker
|
||||
en: https://www.sote.pl/docs/ads-tracker
|
||||
|
||||
config:
|
||||
title: Konfiguracja
|
||||
display:
|
||||
"NONE": [is_active, is_extend, ads_terminate, ads_conversion_type, _exclude_remote_address, _hash_control, _is_debug]
|
||||
menu: {use: list.menu}
|
||||
fields:
|
||||
is_active: {name: Aktywuj, type: checkbox}
|
||||
is_extend: {name: Tryb rozszerzony, type: checkbox, help: "Tryb rozszerzony pozwala na lepsze rozpoznawanie użytkownika. Wiąże się to z większym wykorzystaniem zasobów bazy danych."}
|
||||
is_debug: {name: Tryb debug, type: plain}
|
||||
hash_control: {name: Klucz kontrolny, type: plain}
|
||||
exclude_remote_address: {name: Wykluczone adresy, help: "Wykluczone adresy IP rozdzielone przecinkiem np: 192.168.1.1,192.168.1.2"}
|
||||
ads_terminate:
|
||||
name: Czas przechowywania danych (dni)
|
||||
type: select
|
||||
display: [one, two, three, four]
|
||||
options:
|
||||
one: {name: 30, value: 30}
|
||||
two: {name: 60, value: 60}
|
||||
three: {name: 90, value: 90}
|
||||
four: {name: 180, value: 180}
|
||||
selected: two
|
||||
|
||||
ads_conversion_type:
|
||||
name: Do konwersji zaliczaj
|
||||
type: select
|
||||
display: [one, two]
|
||||
options:
|
||||
one: {name: Pierwsze wejście, value: 1}
|
||||
two: {name: Ostatnie wejście, value: 2}
|
||||
selected: two
|
||||
actions:
|
||||
|
||||
_list: {name: Lista}
|
||||
_save: {name: Zapisz}
|
||||
|
||||
list:
|
||||
title: Reklamy i linki
|
||||
display: [id, ads_name, _app_ads_tracker_platform_id, _app_ads_tracker_campaign_id, ~ads_entering, is_active, updated_at ]
|
||||
sort: [updated_at, ASC]
|
||||
fields:
|
||||
id: {name: Id}
|
||||
created_at: {name: Utworzono}
|
||||
updated_at: {name: Aktualizowano}
|
||||
is_active: {name: Aktywna}
|
||||
app_ads_tracker_platform_id: {name: Platforma}
|
||||
app_ads_tracker_campaign_id: {name: Kampania}
|
||||
ads_group: {name: Grupa, params: truncate_text=30 }
|
||||
ads_name: {name: Nazwa, params: truncate_text=30 }
|
||||
ads_entering: {name: Wejścia }
|
||||
actions:
|
||||
_create: {name: Dodaj}
|
||||
object_actions:
|
||||
_edit: -
|
||||
_delete: -
|
||||
menu:
|
||||
display: [platform_entering_stats, platform_stats, campaign_entering_stats, campaign_stats, platform, campaign, tracker, debug]
|
||||
fields:
|
||||
|
||||
platform_entering_stats: {name: Raporty wejść, action: @appAdsTrackerPlugin?action=adsTrackerPlatformEnteringStats}
|
||||
platform_stats: {name: Raporty platform, action: @appAdsTrackerPlugin?action=adsTrackerPlatformStats}
|
||||
campaign_stats: {name: Raporty kampanii, action: @appAdsTrackerPlugin?action=adsTrackerCampaignStats}
|
||||
campaign_entering_stats: {name: Raporty wejść kampanii, action: @appAdsTrackerPlugin?action=adsTrackerCampaignEnteringStats}
|
||||
platform: {name: Platformy, action: @appAdsTrackerPlugin?action=adsTrackerPlatformList}
|
||||
campaign: {name: Kampanie, action: @appAdsTrackerPlugin?action=adsTrackerCampaignList}
|
||||
tracker: {name: Reklamy i linki, action: @appAdsTrackerPlugin?action=list}
|
||||
debug: {name: Debug, action: @appAdsTrackerPlugin?action=adsTrackerDebugList}
|
||||
|
||||
edit:
|
||||
title: Edycja reklamy i linków
|
||||
description: Wysyłanie wiadomości do klientów
|
||||
display: [_show_id, _entering, is_active, ~ads_tracker_platform_campaign, ads_name, url, _hash_for_plugin, _url_hash]
|
||||
fields:
|
||||
show_id: {name: Id, hide_on_create: true, type: plain}
|
||||
is_active: {name: Aktywna}
|
||||
app_ads_tracker_platform_id: {name: Platforma, params: text_method=getAdsName include_blank=false}
|
||||
app_ads_tracker_campaign_id: {name: Kampania, params: text_method=getAdsName include_blank=false}
|
||||
ads_tracker_platform_campaign: {name: Kampania}
|
||||
ads_group: {name: Grupa, type: input_tag, params: style='width:550px'}
|
||||
ads_name: {name: Nazwa, type: input_tag, params: style='width:550px'}
|
||||
url: {name: Domyślny link, type: input_tag, params: style='width:550px', help: "Parametru można używać dla wielu linków."}
|
||||
url_hash: {name: Link śledzenia, hide_on_create: true}
|
||||
hash_for_plugin: {name: Hash śledzący, hide_on_create: true}
|
||||
entering: {name: Ilość wejść, hide_on_create: true, type: plain}
|
||||
|
||||
actions:
|
||||
_delete: {name: Usuń}
|
||||
_list: {name: Lista}
|
||||
_save: {name: Zapisz}
|
||||
_save_and_add: {name: Zapisz i dodaj kolejny}
|
||||
|
||||
create:
|
||||
title: Dodaj reklamę lub link
|
||||
|
||||
ads_tracker_platform_list:
|
||||
title: Platformy
|
||||
display: [id, =ads_name, description, _platform_type, is_active, updated_at ]
|
||||
fields:
|
||||
is_active: {name: Aktywna}
|
||||
created_at: {name: Utworzono}
|
||||
updated_at: {name: Aktualizowano}
|
||||
ads_name: {name: Nazwa, params: size=20 link_to="@appAdsTrackerBackend?action=adsTrackerCampaignList&filters[ads_tracker_platform]=%%id%%"}
|
||||
description: {name: Opis}
|
||||
platform_type: {name: Typ}
|
||||
actions:
|
||||
_create: {name: Dodaj}
|
||||
object_actions:
|
||||
_edit: -
|
||||
_delete: -
|
||||
|
||||
ads_tracker_platform_edit:
|
||||
title: Edycja platformy
|
||||
description: Wysyłanie wiadomości do klientów
|
||||
display: [is_active, ads_name, description, _color, _platform_type ]
|
||||
fields:
|
||||
is_active: {name: Aktywna}
|
||||
ads_name: {name: Nazwa, type: input_tag, params: style='width:550px'}
|
||||
color: {name: Kolor, hide_on_create: true}
|
||||
description: {name: Opis, params: style='width:550px'}
|
||||
platform_type: {name: Typ, type: plain}
|
||||
actions:
|
||||
_delete: {name: Usuń}
|
||||
_list: {name: Lista}
|
||||
_save: {name: Zapisz}
|
||||
|
||||
ads_tracker_platform_create:
|
||||
title: Dodaj platformę
|
||||
|
||||
ads_tracker_campaign_list:
|
||||
title: Kampanie
|
||||
display: [id, _ads_name, ads_tracker_platform, is_active, updated_at ]
|
||||
sort: [updated_at, ASC]
|
||||
peer_method: doSelectJoinAll
|
||||
filters:
|
||||
ads_tracker_platform: {filter_field: ads_tracker_campaign.app_ads_tracker_platform_id}
|
||||
fields:
|
||||
is_active: {name: Aktywna}
|
||||
created_at: {name: Utworzono}
|
||||
updated_at: {name: Aktualizowano}
|
||||
ads_tracker_platform: {name: Platforma, sort_field: ads_tracker_platform.ads_name}
|
||||
ads_name: {name: Nazwa, params: size=20}
|
||||
actions:
|
||||
_create: {name: Dodaj}
|
||||
object_actions:
|
||||
_edit: -
|
||||
_delete: -
|
||||
|
||||
ads_tracker_campaign_edit:
|
||||
title: Edycja kampanii
|
||||
description: Wysyłanie wiadomości do klientów
|
||||
display: [is_active, app_ads_tracker_platform_id, ads_name, _color ]
|
||||
fields:
|
||||
is_active: {name: Aktywna}
|
||||
app_ads_tracker_platform_id: {name: Platforma, params: text_method=getAdsName include_blank=false}
|
||||
ads_name: {name: Nazwa, type: input_tag, params: style='width:550px'}
|
||||
color: {name: Kolor, hide_on_create: true}
|
||||
actions:
|
||||
_delete: {name: Usuń}
|
||||
_list: {name: Lista}
|
||||
_save: {name: Zapisz}
|
||||
|
||||
ads_tracker_campaign_create:
|
||||
title: Dodaj kampanie
|
||||
|
||||
|
||||
ads_tracker_debug_list:
|
||||
title: Lista wejść
|
||||
display: [_app_ads_tracker_list_id, created_at]
|
||||
fields:
|
||||
created_at: {name: Utworzono}
|
||||
app_ads_tracker_list_id: {name: Reklama}
|
||||
sort: [created_at, desc]
|
||||
actions:
|
||||
_deleteAll: {name: Usuń wszystko, icon: remove}
|
||||
object_actions:
|
||||
_edit: -
|
||||
_delete: -
|
||||
|
||||
ads_tracker_debug_edit:
|
||||
title: Edycja
|
||||
description: Wysyłanie wiadomości do klientów
|
||||
display: [_app_ads_tracker_list_id, url, referrer, browser, ip, ads_hash_control, hash, cookie_ads_hash, cookie, _table_cookie, _table_ip]
|
||||
fields:
|
||||
app_ads_tracker_list_id: {name: Reklama}
|
||||
url: {name: URL, type: textarea_tag, params: style='width:550px'}
|
||||
referrer: {name: Referrer, type: textarea_tag, params: style='width:550px'}
|
||||
browser: {name: Przeglądarka, type: input_tag, params: style='width:550px'}
|
||||
ip: {name: Adres IP, type: input_tag, params: style='width:550px'}
|
||||
hash: {name: Hash linku, type: input_tag, params: style='width:550px'}
|
||||
cookie: {name: Cookie, type: textarea_tag, params: style='width:550px'}
|
||||
table_cookie: {name: Reklamy z cookie}
|
||||
table_ip: {name: Odwiedzone reklamy z tego IP}
|
||||
cookie_ads_hash: {name: Hash identyfikacyjny reklamy}
|
||||
ads_hash_control: {name: Hash kontrolny konfiguracji, params: style='width:550px'}
|
||||
|
||||
actions:
|
||||
_delete: {name: Usuń}
|
||||
_list: {name: Lista}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
class appAdsTrackerBackendBreadcrumbsBuilder extends autoAppAdsTrackerBackendBreadcrumbsBuilder
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
class appAdsTrackerValidator extends sfValidator
|
||||
{
|
||||
protected $regex = null;
|
||||
|
||||
public function execute(&$value, &$error)
|
||||
{
|
||||
if (empty($value))
|
||||
{
|
||||
$error = 'Podaj nazwę kampanii';
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!$this->regex->execute($value, $error))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!$this->validateUnique($value, $error))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function initialize($context, $parameters = array())
|
||||
{
|
||||
parent::initialize($context, $parameters);
|
||||
|
||||
$this->regex = new sfRegexValidator();
|
||||
|
||||
$this->regex->initialize($context, array('pattern' => '/["\']/', 'match' => false, 'match_error' => 'Kod produktu nie może zawierać znaków \' oraz "'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function validateUnique($value, &$error)
|
||||
{
|
||||
$r = $this->getContext()->getRequest();
|
||||
|
||||
$c = new Criteria();
|
||||
|
||||
$c->add(AdsTrackerCampaignPeer::ADS_NAME, $value);
|
||||
|
||||
if ($this->getParameter('check_primary_key', true))
|
||||
{
|
||||
$c->add(AdsTrackerCampaignPeer::ID, $this->getParameter('primary_key', $r->getParameter(AdsTrackerCampaignPeer::translateFieldName('Id', BasePeer::TYPE_PHPNAME, BasePeer::TYPE_FIELDNAME))), Criteria::NOT_EQUAL);
|
||||
}
|
||||
|
||||
if (AdsTrackerCampaignPeer::doCount($c))
|
||||
{
|
||||
$error = 'Ta nazwa kampanii jest już wykorzystywana. Podaj inną';
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<div style="margin:10px; color: #000;padding: 15px; border: 1px solid #ccc; background-color: #eee; border-radius: 5px 5px 5px 5px;">
|
||||
<?php echo __('Moduł analizy reklam nie jest aktywny i nie zbiera danych.') ?><br>
|
||||
<?php echo __('Aby go aktywować przejdź do konfiguracji modułu.') ?>
|
||||
<a href="<?php echo st_url_for("appAdsTrackerBackend/config") ?>" target="_parent"><?php echo __('Konfiguracja') ?></a>
|
||||
</div>
|
||||
@@ -0,0 +1,3 @@
|
||||
<a href="/backend.php/adsTracker/adsTrackerInfoStats/?id=<?php echo $id; ?>">
|
||||
<?php echo st_admin_get_icon('preview') ?> <?php echo $value; ?>
|
||||
</a>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
asort($campaigns);
|
||||
$selected = $ads_tracker_list->getAppAdsTrackerPlatformId()."_".$ads_tracker_list->getAppAdsTrackerCampaignId();
|
||||
?>
|
||||
|
||||
<select name="ads_tracker_list[platform_campaign]" id="ads_tracker_list_platform_campaign">
|
||||
|
||||
<?php foreach ($campaigns as $key => $value): ?>
|
||||
|
||||
<?php $campaign_id = explode("_",$key) ?>
|
||||
|
||||
<?php
|
||||
if (!appAdsTracker::getIsCampaignSytemDefault($campaign_id[0])): ?>
|
||||
<option value="<?php echo $key; ?>" <?php if ($selected== $key): ?> selected="selected"<?php endif; ?>><?php echo appAdsTracker::langFilter($value); ?></option>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
</select>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
if(is_object(@$ads_tracker_platform)):
|
||||
$fullurl = "appAdsTrackerBackend/adsTrackerCampaignList?filters[app_ads_tracker_platform_id]=".$ads_tracker_platform->getId();
|
||||
?>
|
||||
<a href="<?php echo st_url_for($fullurl) ?>">
|
||||
<?php echo appAdsTracker::langFilter($ads_tracker_platform->getAdsName()); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<?php
|
||||
if(is_object(@$ads_tracker_campaign)):
|
||||
$fullurl = "appAdsTrackerBackend/index?filters[app_ads_tracker_campaign_id]=".$ads_tracker_campaign->getId();
|
||||
?>
|
||||
<a href="<?php echo st_url_for($fullurl) ?>">
|
||||
<?php echo appAdsTracker::langFilter($ads_tracker_campaign->getAdsName()); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
$fullurl = "appAdsTrackerBackend/index?filters[app_ads_tracker_campaign_id]=".$ads_tracker_list->getAdsTrackerCampaign()->getId();
|
||||
?>
|
||||
<a href="<?php echo st_url_for($fullurl) ?>">
|
||||
<?php echo appAdsTracker::langFilter($ads_tracker_list->getAdsTrackerCampaign()->getAdsName()); ?>
|
||||
</a>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
$name = "";
|
||||
$group = "";
|
||||
|
||||
if($ads_tracker_debug->getAdsTrackerList()->getAdsName()!=""){
|
||||
$name = " / ".$ads_tracker_debug->getAdsTrackerList()->getAdsName();
|
||||
}
|
||||
|
||||
if($ads_tracker_debug->getAdsTrackerList()->getAdsGroup()!=""){
|
||||
$group = " / ".$ads_tracker_debug->getAdsTrackerList()->getAdsGroup();
|
||||
}
|
||||
|
||||
$fullname = $ads_tracker_debug->getAdsTrackerList()->getId()." / ".$ads_tracker_debug->getAdsTrackerList()->getAdsTrackerPlatform()->getAdsName()." - ".$ads_tracker_debug->getAdsTrackerList()->getAdsTrackerCampaign()->getAdsName().$group.$name;
|
||||
$fullurl = "appAdsTrackerBackend/edit?id=".$ads_tracker_debug->getAdsTrackerList()->getId();
|
||||
?>
|
||||
|
||||
<a href="<?php echo st_url_for($fullurl) ?>">
|
||||
<img src="/images/backend/icons/view.png" title="Podgląd" class="tooltip" style="top: 4px;position: relative;">
|
||||
<?php echo $fullname ?>
|
||||
</a>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
$fullurl = "appAdsTrackerBackend/index?filters[app_ads_tracker_platform_id]=".$ads_tracker_list->getAdsTrackerPlatform()->getId();
|
||||
?>
|
||||
<a href="<?php echo st_url_for($fullurl) ?>">
|
||||
<?php echo appAdsTracker::langFilter($ads_tracker_list->getAdsTrackerPlatform()->getAdsName()); ?>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php echo appAdsTracker::langFilter($ads_tracker_campaign->getAdsTrackerPlatform()->getAdsName()); ?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
if(is_object(@$ads_tracker_platform)){
|
||||
echo st_colorpicker_input_tag('ads_tracker_platform[color]', $ads_tracker_platform->getColor());
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
if(is_object(@$ads_tracker_campaign)){
|
||||
echo st_colorpicker_input_tag('ads_tracker_campaign[color]', $ads_tracker_campaign->getColor());
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
<?php echo appAdsTracker::getAdsEnteringValue($ads_tracker_list->getId()) ?> <?php if(appAdsTracker::getAdsEnteringValue($ads_tracker_list->getId())!=0): ?><a href="/backend.php/adsTracker/adsTrackerInfoStats/?id=<?php echo $ads_tracker_list->getId(); ?>"><?php echo __('Zobacz') ?></a><?php endif; ?>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?php echo input_tag('config[exclude_remote_address]', $config->get('exclude_remote_address', null, false), array ("style" => "width:550px")); ?>
|
||||
<div><?php echo __("Twoje IP")?>: <?php echo $_SERVER['REMOTE_ADDR'] ?></div>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php $admin = sfContext::getInstance()->getRequest()->getParameter('admin'); ?>
|
||||
<?php
|
||||
if($admin!=1):
|
||||
echo $config->get('hash_control', null, false);
|
||||
echo input_hidden_tag('config[hash_control]', $config->get('hash_control', null, false), array ());
|
||||
else:
|
||||
?>
|
||||
<?php echo input_tag('config[hash_control]', $config->get('hash_control', null, false), array ()); ?>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
$params = explode("=", $ads_tracker_list->getUrlHash());
|
||||
$params = $params[1];
|
||||
?>
|
||||
|
||||
<!-- The text field -->
|
||||
<input type="text" style="width:550px;background-color: #eee;" value="<?php echo $params; ?>" readonly id="myInput">
|
||||
|
||||
<!-- The button used to copy the text -->
|
||||
<span style="display: inline-block;border: 1px solid #ccc;background-color: #eee; padding: 2px 10px;cursor: pointer;" onclick="copyToClipboard('#params')"><?php echo __('Skopiuj') ?></span>
|
||||
|
||||
|
||||
<div style="display: none;" id="params"><?php echo $params ?></div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function copyToClipboard(element) {
|
||||
|
||||
jQuery(function($) {
|
||||
|
||||
$('#myInput').fadeOut(250).fadeIn(250);
|
||||
|
||||
var $temp = $("<input>");
|
||||
$("body").append($temp);
|
||||
$temp.val($(element).html()).select();
|
||||
document.execCommand("copy");
|
||||
$temp.remove();
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php $admin = sfContext::getInstance()->getRequest()->getParameter('admin'); ?>
|
||||
|
||||
<?php if($admin!=1): ?>
|
||||
|
||||
<?php
|
||||
if($config->get('is_debug', null, false)==1){
|
||||
echo "włączony";
|
||||
}else{
|
||||
echo "wyłączony";
|
||||
}
|
||||
|
||||
echo input_hidden_tag('config[is_debug]', $config->get('is_debug', null, false), array ());
|
||||
?>
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<?php echo checkbox_tag('config[is_debug]', 1, $config->get('is_debug', null, false), array ()); ?>
|
||||
|
||||
<?php endif; ?>
|
||||
<?php if($admin!=1): ?>
|
||||
<style>
|
||||
.row_is_debug{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php if($type=="edit"): ?>
|
||||
|
||||
<?php
|
||||
if($ads_tracker_platform->getPlatformType()==1): ?>
|
||||
<?php echo __('Wejścia bezpośrednie'); ?>
|
||||
<input type="hidden" value="1" name="ads_tracker_platform[platform_type]" id="ads_tracker_platform_type" />
|
||||
|
||||
<?php elseif($ads_tracker_platform->getPlatformType()==4): ?>
|
||||
<?php echo __('Porównywarki'); ?>
|
||||
<input type="hidden" value="4" name="ads_tracker_platform[platform_type]" id="ads_tracker_platform_type" />
|
||||
|
||||
<?php elseif($ads_tracker_platform->getPlatformType()==5): ?>
|
||||
<?php echo __('Reklamy Google'); ?>
|
||||
<input type="hidden" value="5" name="ads_tracker_platform[platform_type]" id="ads_tracker_platform_type" />
|
||||
|
||||
<?php elseif($ads_tracker_platform->getPlatformType()==6): ?>
|
||||
<?php echo __('Reklamy Facebook'); ?>
|
||||
<input type="hidden" value="6" name="ads_tracker_platform[platform_type]" id="ads_tracker_platform_type" />
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<select name="ads_tracker_platform[platform_type]" id="ads_tracker_platform_type">
|
||||
<option value="2" <?php if($ads_tracker_platform->getPlatformType()==2): ?> selected="selected" <?php endif; ?> ><?php echo __('Reklama') ?></option>
|
||||
<option value="3" <?php if($ads_tracker_platform->getPlatformType()==3): ?> selected="selected" <?php endif; ?> ><?php echo __('Własne') ?></option>
|
||||
</select>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<?php if($ads_tracker_platform->getPlatformType()==1): ?><?php echo __('Wejścia bezpośrednie') ?><?php endif; ?>
|
||||
<?php if($ads_tracker_platform->getPlatformType()==2): ?><?php echo __('Reklama') ?><?php endif; ?>
|
||||
<?php if($ads_tracker_platform->getPlatformType()==3): ?><?php echo __('Własne') ?><?php endif; ?>
|
||||
<?php if($ads_tracker_platform->getPlatformType()==4): ?><?php echo __('Porównywarki') ?><?php endif; ?>
|
||||
<?php if($ads_tracker_platform->getPlatformType()==5): ?><?php echo __('Reklamy Google') ?><?php endif; ?>
|
||||
<?php if($ads_tracker_platform->getPlatformType()==6): ?><?php echo __('Reklamy Facebooka') ?><?php endif; ?>
|
||||
|
||||
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php echo $ads_tracker_list->getId() ?>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
$cookie_array = json_decode($ads_tracker_debug->getCookie());
|
||||
?>
|
||||
<table class="st_record_list" width="100%" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 105px;">Utworzono</th>
|
||||
<th>Reklama</th>
|
||||
<th>Wejść</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<?php foreach ($cookie_array as $ads):
|
||||
|
||||
$fullurl = "appAdsTrackerBackend/edit?id=".$ads->ads_id;
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo $ads->ads_create ?></td>
|
||||
<td style="text-align: left">
|
||||
<a href="<?php echo st_url_for($fullurl) ?>"><img src="/images/backend/icons/view.png" title="Podgląd" class="tooltip" style="top: 4px;position: relative;"></a>
|
||||
<?php
|
||||
if(appAdsTracker::getFullAdsName($ads->ads_id)){
|
||||
echo appAdsTracker::getFullAdsName($ads->ads_id);
|
||||
}else{
|
||||
echo $ads->ads_id."/".$ads->ads_path;
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td><?php echo $ads->ads_entering ?></td>
|
||||
</tr>
|
||||
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<pre>
|
||||
<?php // print_r($cookie_array); ?>
|
||||
</pre>
|
||||
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
if($ads_tracker_debug->getIp()!="" && $ads_tracker_debug->getIp()!="217.168.136.34"){
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(AdsTrackerDebugPeer::IP , $ads_tracker_debug->getIp());
|
||||
//$c->add(AdsTrackerDebugPeer::CREATED_AT , $ads_tracker_debug->getCreatedAt(), Criteria::LESS_EQUAL);
|
||||
$c->addDescendingOrderByColumn(AdsTrackerDebugPeer::CREATED_AT);
|
||||
$adsTrackerDebug = AdsTrackerDebugPeer::doSelect($c);
|
||||
|
||||
if($adsTrackerDebug){
|
||||
|
||||
?>
|
||||
|
||||
<table class="st_record_list" width="100%" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 105px;">Utworzono</th>
|
||||
<th>Reklama</th>
|
||||
<th>Debug</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
foreach ($adsTrackerDebug as $ads_tracker_debug):
|
||||
|
||||
$name = "";
|
||||
$group = "";
|
||||
|
||||
if($ads_tracker_debug->getAdsTrackerList()->getAdsName()!=""){
|
||||
$name = " / ".$ads_tracker_debug->getAdsTrackerList()->getAdsName();
|
||||
}
|
||||
|
||||
if($ads_tracker_debug->getAdsTrackerList()->getAdsGroup()!=""){
|
||||
$group = " / ".$ads_tracker_debug->getAdsTrackerList()->getAdsGroup();
|
||||
}
|
||||
|
||||
$fullname = $ads_tracker_debug->getAdsTrackerList()->getId()." / ".$ads_tracker_debug->getAdsTrackerList()->getAdsTrackerPlatform()->getAdsName()." - ".$ads_tracker_debug->getAdsTrackerList()->getAdsTrackerCampaign()->getAdsName().$group.$name;
|
||||
$fullurl = "appAdsTrackerBackend/edit?id=".$ads_tracker_debug->getAdsTrackerList()->getId();
|
||||
|
||||
$fullurldebug = "appAdsTrackerBackend/adsTrackerDebugEdit?id=".$ads_tracker_debug->getId();
|
||||
|
||||
?>
|
||||
|
||||
<tr>
|
||||
|
||||
<td>
|
||||
<?php echo $ads_tracker_debug->getCreatedAt(); ?>
|
||||
</td>
|
||||
|
||||
|
||||
<td style="text-align: left">
|
||||
|
||||
<a href="<?php echo st_url_for($fullurl) ?>">
|
||||
<img src="/images/backend/icons/view.png" title="Podgląd" class="tooltip" style="top: 4px;position: relative;">
|
||||
</a>
|
||||
|
||||
<?php echo $fullname ?>
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
<td>
|
||||
|
||||
<a href="<?php echo st_url_for($fullurldebug) ?>">
|
||||
<img src="/images/backend/icons/view.png" title="Podgląd" class="tooltip" style="top: 4px;position: relative;">
|
||||
</a>
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
</tr>
|
||||
<?php
|
||||
endforeach;
|
||||
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php
|
||||
|
||||
}else{
|
||||
echo "Brak wejść z adresu zamówienia: ".$ads_tracker_debug->getIp();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
if($order->getRemoteAddress()=="217.168.136.34"){
|
||||
echo "Pominięte dla SOTE IP";
|
||||
}else{
|
||||
echo "Brak adresu IP w zamówieniu";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,38 @@
|
||||
<!-- The text field -->
|
||||
<input type="text" style="width:550px;background-color: #eee;" value="<?php echo $ads_tracker_list->getUrlHash(); ?>" readonly id="myInput">
|
||||
|
||||
<!-- The button used to copy the text -->
|
||||
<span style="display: inline-block;border: 1px solid #ccc;background-color: #eee; padding: 2px 10px;cursor: pointer;" onclick="copyToClipboard('#params_link')"><?php echo __('Skopiuj link') ?></span>
|
||||
<span style="display: inline-block;border: 1px solid #ccc;background-color: #eee; padding: 2px 10px;cursor: pointer;" onclick="copyToClipboard('#params')"><?php echo __('Skopiuj parametr') ?></span>
|
||||
|
||||
<?php
|
||||
$params = explode("?", $ads_tracker_list->getUrlHash());
|
||||
$params = $params[1];
|
||||
?>
|
||||
<div style="display: none;" id="params_link"><?php echo $ads_tracker_list->getUrlHash() ?></div>
|
||||
<div style="display: none;" id="params"><?php echo $params ?></div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
function copyToClipboard(element) {
|
||||
|
||||
jQuery(function($) {
|
||||
|
||||
$('#myInput').fadeOut(250).fadeIn(250);
|
||||
|
||||
var $temp = $("<input>");
|
||||
$("body").append($temp);
|
||||
$temp.val($(element).html()).select();
|
||||
document.execCommand("copy");
|
||||
$temp.remove();
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,331 @@
|
||||
|
||||
<?php use_helper('Object', 'Validation', 'ObjectAdmin', 'I18N', 'Date', 'VisualEffect', 'stAdminGenerator') ?>
|
||||
<?php echo st_admin_get_viewport_force_width(); ?>
|
||||
<?php echo st_get_admin_head('appAdsTrackerPlugin', __('Raport wejść kampanii')) ?>
|
||||
|
||||
<?php st_view_slot_start('application-menu') ?>
|
||||
<?php st_include_component('appAdsTrackerBackend', 'listMenu') ?>
|
||||
<?php st_view_slot_end() ?>
|
||||
|
||||
<?php st_include_partial('stAdminGenerator/message'); ?>
|
||||
|
||||
<script type="text/javascript" src="/js/backend/chart.min.js"></script>
|
||||
|
||||
<style>
|
||||
|
||||
.list_filters select, .list_filters input {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#filters_from_date, #filters_to_date {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#date-filters {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#date-filters li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<div id="sf_admin_content">
|
||||
|
||||
<form id="filter-campaign" action="<?php echo url_for('appAdsTrackerBackend/adsTrackerCampaignEnteringStats') ?>" method="post" style="margin-bottom: 10px">
|
||||
<div class="list_filters">
|
||||
|
||||
<?php
|
||||
// echo "<pre>";
|
||||
// print_r($filters);
|
||||
// echo "</pre>";
|
||||
?>
|
||||
|
||||
<ul class="header">
|
||||
<li>
|
||||
<label><?php echo __("Zakres") ?></label>
|
||||
<div id="filters_period">
|
||||
<select id="filters_period_select" name="filters[period]">
|
||||
<?php foreach ($periods as $period => $label): ?>
|
||||
<option value="<?php echo $period ?>" <?php if ($filters['period']==$period): ?>selected<?php endif; ?>><?php echo appAdsTracker::langFilter($label) ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label><?php echo __("Zakres dat") ?></label>
|
||||
<?php echo input_date_tag('filters[from_date]', $from_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))); ?>
|
||||
-
|
||||
<?php echo input_date_tag('filters[to_date]', $to_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))) ?>
|
||||
|
||||
</li>
|
||||
<li class="filter-control">
|
||||
<label> </label>
|
||||
<button class="button button-search no-label with-icon" type="submit">
|
||||
<span class="svg-icon svg-icon-search" style="-webkit-mask-image: url(/images/backend/icons/svg/search.svg?v=2); mask-image: url(/images/backend/icons/svg/search.svg?v=2); " title=""></span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="clr" style="margin-bottom: 15px;"></div>
|
||||
|
||||
|
||||
<?php asort($campaigns_1); ?>
|
||||
<select name="filters[platform_campaign_1]" id="ads_tracker_list_platform_campaign_1" style="margin-top:5px;display: block;float: left;">
|
||||
|
||||
<?php
|
||||
foreach ($campaigns_1 as $key => $value): ?>
|
||||
<option value="<?php echo $key; ?>" <?php
|
||||
if (@$selected_1== $key): ?> selected="selected"<?php endif; ?>><?php echo appAdsTracker::langFilter($value); ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
|
||||
<span style="margin-top: 8px;display: inline-block;"> <?php echo __("porównaj z") ?> </span>
|
||||
|
||||
<?php asort($campaigns_2); ?>
|
||||
<select name="filters[platform_campaign_2]" id="ads_tracker_list_platform_campaign_2" style="margin-top:5px;display: block;float: left;">
|
||||
<option value="none" <?php
|
||||
if (@$selected_2== "none"): ?> selected="selected"<?php endif; ?>> -- <?php echo __("Wybierz kampanie") ?> -- </option>
|
||||
<?php
|
||||
foreach ($campaigns_2 as $key => $value): ?>
|
||||
<option value="<?php echo $key; ?>" <?php
|
||||
if (@$selected_2== $key): ?> selected="selected"<?php endif; ?>><?php echo appAdsTracker::langFilter($value); ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
|
||||
<div class="clr"></div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
|
||||
<div class="chart-container" style="position: relative; width: 100%; height: 270px">
|
||||
<canvas id="myChart1"></canvas>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<form id="record_list_form" class="admin_form">
|
||||
|
||||
<table class="st_record_list record_list" cellspacing="0" cellpadding="0" style="max-width: 500px;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('Kampania') ?></th><th><?php echo __('Wejścia') ?></th><!--<th><?php echo __('Konwersje') ?></th><th><?php echo __('CTR') ?></th><th><?php echo __('Wartość brutto') ?></th><th><?php echo __('Średnia') ?></th><!-- <th><?php // echo __('Zamówienia') ?></th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<?php
|
||||
$change_range_brutto = 0;
|
||||
$change_range_entering = 0;
|
||||
foreach ($result['campaign'] as $campaign):
|
||||
?>
|
||||
|
||||
<?php
|
||||
if($campaign['total_brutto']>0){
|
||||
$change_range_brutto = 1;
|
||||
}
|
||||
|
||||
if($campaign['total_entering']>0){
|
||||
$change_range_entering = 1;
|
||||
}
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td><?php echo appAdsTracker::langFilter($campaign['name']) ?></td>
|
||||
<td><?php echo $campaign['total_entering'] ?></td>
|
||||
<!-- <td><?php echo $campaign['conversion'] ?></td>
|
||||
<td><?php echo $campaign['ctr'] ?>%</td>
|
||||
<td><?php echo $campaign['total_brutto'] ?></td>
|
||||
<td><?php echo $campaign['total_brutto_median'] ?></td>-->
|
||||
<!-- <td><?php // echo $campaign['order_ids'] ?></td> -->
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
<?php
|
||||
|
||||
// echo "<pre>";
|
||||
// print_r($result);
|
||||
// echo "</pre>";
|
||||
|
||||
?>
|
||||
|
||||
<?php
|
||||
|
||||
$chart_labels = json_encode(array_values($result['chart']['labels']));
|
||||
$chart_data = json_encode(array_values($result['chart']['dates']));
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
$('#filters_from_date, #filters_to_date').click(function() {
|
||||
console.log("wybrano custom");
|
||||
$("#filters_period_select").val("custom");
|
||||
$("#filters_period_select").trigger('chosen:update');
|
||||
});
|
||||
|
||||
$('#ads_tracker_list_platform_campaign_1').on('change',function() {
|
||||
$('#filter-campaign').submit();
|
||||
});
|
||||
|
||||
$('#ads_tracker_list_platform_campaign_2').on('change',function() {
|
||||
$('#filter-campaign').submit();
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
|
||||
<?php
|
||||
$i=0;
|
||||
foreach ($result['chart']['campaign'] as $key => $value):
|
||||
?>
|
||||
|
||||
var quantites<?php echo $i ?> = <?php echo json_encode(array_values($value['count'])); ?>
|
||||
|
||||
<?php
|
||||
$i++;
|
||||
endforeach;
|
||||
?>
|
||||
|
||||
var chart_dates = <?php echo $chart_data ?>;
|
||||
|
||||
// wejścia
|
||||
|
||||
|
||||
var chart = $("#myChart1");
|
||||
|
||||
var data = {
|
||||
labels: <?php echo $chart_labels ?>,
|
||||
datasets: [
|
||||
|
||||
|
||||
<?php foreach ($result['chart']['campaign'] as $key => $value): ?>
|
||||
|
||||
{
|
||||
label: "<?php echo appAdsTracker::langFilter($key) ?>",
|
||||
fill: false,
|
||||
lineTension: 0.1,
|
||||
backgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
pointBorderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointBackgroundColor: "#fff",
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 5,
|
||||
pointHoverBackgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointHoverBorderColor: "rgba(220,220,220,1)",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 3,
|
||||
pointHitRadius: 10,
|
||||
pointStyle: "circle",
|
||||
data: <?php echo json_encode(array_values($value['entering'])); ?>,
|
||||
},
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
]
|
||||
};
|
||||
|
||||
var options = {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
legend: { display: true },
|
||||
tooltips: {
|
||||
enabled: true,
|
||||
mode: 'single',
|
||||
callbacks: {
|
||||
label: function(tooltipItems, data2) {
|
||||
return "<?php echo __('wejść') ?>: "+tooltipItems.yLabel;
|
||||
},
|
||||
title: function(tooltipItems, data2) {
|
||||
return chart_dates[tooltipItems[0].index];
|
||||
}
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
xAxes: [{
|
||||
barPercentage: 0.5,
|
||||
maxBarThickness: 120,
|
||||
}],
|
||||
yAxes: [{
|
||||
ticks: {
|
||||
mirror: false,
|
||||
beginAtZero:true,
|
||||
<?php if($change_range_entering == 0): ?>
|
||||
stepSize: 50,
|
||||
<?php endif; ?>
|
||||
userCallback: function(value, index, values) {
|
||||
value = Number(value);
|
||||
return value;
|
||||
}
|
||||
},
|
||||
afterDataLimits(scale) {
|
||||
|
||||
if(scale.max==1){
|
||||
scale.max = 10;
|
||||
|
||||
}else{
|
||||
var my_y = scale.max*0.2;
|
||||
scale.max += my_y;
|
||||
}
|
||||
|
||||
}
|
||||
}]
|
||||
},
|
||||
title: {
|
||||
display: true,
|
||||
text: '<?php echo __('Raport wejść') ?>'
|
||||
}
|
||||
}
|
||||
|
||||
var myLineChart = new Chart(chart.get(0), {
|
||||
type: 'bar',
|
||||
data: data,
|
||||
options: options
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<?php echo st_get_admin_foot() ?>
|
||||
@@ -0,0 +1,485 @@
|
||||
|
||||
<?php use_helper('Object', 'Validation', 'ObjectAdmin', 'I18N', 'Date', 'VisualEffect', 'stAdminGenerator') ?>
|
||||
|
||||
<?php echo st_get_admin_head('appAdsTrackerPlugin', __('Raport kampanii')) ?>
|
||||
|
||||
<?php echo st_admin_get_viewport_force_width(); ?>
|
||||
|
||||
<?php st_view_slot_start('application-menu') ?>
|
||||
<?php st_include_component('appAdsTrackerBackend', 'listMenu') ?>
|
||||
<?php st_view_slot_end() ?>
|
||||
|
||||
<?php st_include_partial('stAdminGenerator/message'); ?>
|
||||
|
||||
<script type="text/javascript" src="/js/backend/chart.min.js"></script>
|
||||
|
||||
<style>
|
||||
|
||||
.list_filters select, .list_filters input {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#filters_from_date, #filters_to_date {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#date-filters {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#date-filters li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<div id="sf_admin_content">
|
||||
|
||||
<form id="filter-campaign" action="<?php echo url_for('appAdsTrackerBackend/adsTrackerCampaignStats') ?>" method="post" style="margin-bottom: 10px">
|
||||
<div class="list_filters">
|
||||
|
||||
<?php
|
||||
// echo "<pre>";
|
||||
// print_r($filters);
|
||||
// echo "</pre>";
|
||||
?>
|
||||
|
||||
<ul class="header">
|
||||
<li>
|
||||
<label><?php echo __("Zakres") ?></label>
|
||||
<div id="filters_period">
|
||||
<select id="filters_period_select" name="filters[period]">
|
||||
<?php foreach ($periods as $period => $label): ?>
|
||||
<option value="<?php echo $period ?>" <?php if ($filters['period']==$period): ?>selected<?php endif; ?>><?php echo appAdsTracker::langFilter($label) ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label><?php echo __("Zakres dat") ?></label>
|
||||
<?php echo input_date_tag('filters[from_date]', $from_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))); ?>
|
||||
-
|
||||
<?php echo input_date_tag('filters[to_date]', $to_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))) ?>
|
||||
|
||||
</li>
|
||||
<li class="filter-control">
|
||||
<label> </label>
|
||||
<button class="button button-search no-label with-icon" type="submit">
|
||||
<span class="svg-icon svg-icon-search" style="-webkit-mask-image: url(/images/backend/icons/svg/search.svg?v=2); mask-image: url(/images/backend/icons/svg/search.svg?v=2); " title=""></span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="clr" style="margin-bottom: 15px;"></div>
|
||||
|
||||
|
||||
<?php asort($campaigns_1); ?>
|
||||
<select name="filters[platform_campaign_1]" id="ads_tracker_list_platform_campaign_1" style="margin-top:5px;display: block;float: left;">
|
||||
|
||||
<?php
|
||||
foreach ($campaigns_1 as $key => $value): ?>
|
||||
<option value="<?php echo $key; ?>" <?php
|
||||
if (@$selected_1== $key): ?> selected="selected"<?php endif; ?>><?php echo appAdsTracker::langFilter($value); ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
|
||||
<span style="margin-top: 8px;display: inline-block;"> <?php echo __("porównaj z") ?> </span>
|
||||
|
||||
<?php asort($campaigns_2); ?>
|
||||
<select name="filters[platform_campaign_2]" id="ads_tracker_list_platform_campaign_2" style="margin-top:5px;display: block;float: left;">
|
||||
<option value="none" <?php
|
||||
if (@$selected_2== "none"): ?> selected="selected"<?php endif; ?>> -- <?php echo __("Wybierz kampanie") ?> -- </option>
|
||||
<?php
|
||||
foreach ($campaigns_2 as $key => $value): ?>
|
||||
<option value="<?php echo $key; ?>" <?php
|
||||
if (@$selected_2== $key): ?> selected="selected"<?php endif; ?>><?php echo appAdsTracker::langFilter($value); ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
|
||||
<div class="clr"></div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
<div class="chart-container" style="position: relative; width: 100%; height: 270px">
|
||||
<canvas id="myChart1"></canvas>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<form id="record_list_form" class="admin_form">
|
||||
|
||||
<table class="st_record_list record_list" cellspacing="0" cellpadding="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('Kampania') ?></th><th><?php echo __('Wejścia') ?></th><th><?php echo __('Konwersje') ?></th><th><?php echo __('CTR') ?></th><th><?php echo __('Wartość brutto') ?></th><th><?php echo __('Średnia') ?></th><!-- <th><?php // echo __('Zamówienia') ?></th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<?php
|
||||
$change_range_brutto = 0;
|
||||
$change_range_entering = 0;
|
||||
foreach ($result['campaign'] as $campaign):
|
||||
?>
|
||||
|
||||
<?php
|
||||
if($campaign['total_brutto']>0){
|
||||
$change_range_brutto = 1;
|
||||
}
|
||||
|
||||
if($campaign['total_entering']>0){
|
||||
$change_range_entering = 1;
|
||||
}
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td><?php echo appAdsTracker::langFilter($campaign['name']) ?></td>
|
||||
<td><?php echo $campaign['total_entering'] ?></td>
|
||||
<td><?php echo $campaign['conversion'] ?></td>
|
||||
<td><?php echo $campaign['ctr'] ?>%</td>
|
||||
<td><?php echo $campaign['total_brutto'] ?></td>
|
||||
<td><?php echo $campaign['total_brutto_median'] ?></td>
|
||||
<!-- <td><?php // echo $campaign['order_ids'] ?></td> -->
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
<?php
|
||||
|
||||
// echo "<pre>";
|
||||
// print_r($result);
|
||||
// echo "</pre>";
|
||||
|
||||
?>
|
||||
|
||||
<?php
|
||||
|
||||
$chart_labels = json_encode(array_values($result['chart']['labels']));
|
||||
$chart_data = json_encode(array_values($result['chart']['dates']));
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
$('#filters_from_date, #filters_to_date').click(function() {
|
||||
console.log("wybrano custom");
|
||||
$("#filters_period_select").val("custom");
|
||||
$("#filters_period_select").trigger('chosen:update');
|
||||
});
|
||||
|
||||
$('#ads_tracker_list_platform_campaign_1').on('change',function() {
|
||||
$('#filter-campaign').submit();
|
||||
});
|
||||
|
||||
$('#ads_tracker_list_platform_campaign_2').on('change',function() {
|
||||
$('#filter-campaign').submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
|
||||
<?php
|
||||
$i=0;
|
||||
foreach ($result['chart']['campaign'] as $key => $value):
|
||||
?>
|
||||
|
||||
var quantites<?php echo $i ?> = <?php echo json_encode(array_values($value['count'])); ?>
|
||||
|
||||
<?php
|
||||
$i++;
|
||||
endforeach;
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
var chart_dates = <?php echo $chart_data ?>;
|
||||
var display_type = "day";
|
||||
|
||||
var chart = $("#myChart1");
|
||||
|
||||
var data = {
|
||||
labels: <?php echo appAdsTracker::langFilter($chart_labels) ?>,
|
||||
datasets: [
|
||||
|
||||
|
||||
<?php foreach ($result['chart']['campaign'] as $key => $value): ?>
|
||||
|
||||
{
|
||||
label: "<?php echo appAdsTracker::langFilter($key) ?>",
|
||||
fill: false,
|
||||
lineTension: 0.1,
|
||||
backgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
pointBorderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointBackgroundColor: "#fff",
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 5,
|
||||
pointHoverBackgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointHoverBorderColor: "rgba(220,220,220,1)",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 3,
|
||||
pointHitRadius: 10,
|
||||
pointStyle: "circle",
|
||||
data: <?php echo json_encode(array_values($value['amount'])); ?>,
|
||||
},
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
|
||||
]
|
||||
};
|
||||
|
||||
var options = {
|
||||
hover: {
|
||||
onHover: function(data) {
|
||||
if (display_type == "month") {
|
||||
if (data.length && quantites[data[0]._index] > 0) {
|
||||
chart.css({ cursor: 'pointer' });
|
||||
} else {
|
||||
chart.css({ cursor: 'default' });
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
onClick: function(e) {
|
||||
if (display_type == "month") {
|
||||
var elements = this.getElementsAtEvent(e);
|
||||
|
||||
if (elements.length && quantites[elements[0]._index] > 0) {
|
||||
|
||||
window.location = chart.closest('form').attr('action')+'?filters[filter_order_status]='+$('#filters_filter_order_status').val()+'&filters[expand_date]='+chart_dates[elements[0]._index];
|
||||
}
|
||||
}
|
||||
},
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
legend: { display: true },
|
||||
tooltips: {
|
||||
enabled: true,
|
||||
mode: 'single',
|
||||
callbacks: {
|
||||
beforeLabel: function(tooltipItems, data) {
|
||||
|
||||
if(tooltipItems.datasetIndex==0){
|
||||
return "<?php echo __('ilość zamówień') ?>: "+quantites0[tooltipItems.index];
|
||||
}
|
||||
|
||||
if(tooltipItems.datasetIndex==1){
|
||||
return "<?php echo __('ilość zamówień') ?>: "+quantites1[tooltipItems.index];
|
||||
}
|
||||
|
||||
},
|
||||
label: function(tooltipItems, data) {
|
||||
return "<?php echo __('brutto') ?>: "+tooltipItems.yLabel + ' PLN';
|
||||
},
|
||||
title: function(tooltipItems, data) {
|
||||
return chart_dates[tooltipItems[0].index];
|
||||
}
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
xAxes: [{
|
||||
barPercentage: 0.5,
|
||||
maxBarThickness: 120,
|
||||
}],
|
||||
yAxes: [{
|
||||
ticks: {
|
||||
mirror: false,
|
||||
<?php if($change_range_brutto == 0): ?>
|
||||
stepSize: 50,
|
||||
<?php endif; ?>
|
||||
beginAtZero:true,
|
||||
userCallback: function(value, index, values) {
|
||||
value = Number(value);
|
||||
return (options.scales.yAxes[0].ticks.stepSize == 1 || value > 10 || value == 0 ? value.toFixed(0) : value.toFixed(1)) + ' PLN';
|
||||
}
|
||||
},
|
||||
afterDataLimits(scale) {
|
||||
|
||||
if(scale.max==1){
|
||||
scale.max = 100;
|
||||
|
||||
}else{
|
||||
var my_y = scale.max*0.2;
|
||||
scale.max += my_y;
|
||||
}
|
||||
|
||||
}
|
||||
}]
|
||||
},
|
||||
title: {
|
||||
display: true,
|
||||
text: '<?php echo __('Raport sprzedaży') ?>'
|
||||
}
|
||||
}
|
||||
|
||||
var myLineChart = new Chart(chart.get(0), {
|
||||
type: 'bar',
|
||||
data: data,
|
||||
options: options
|
||||
});
|
||||
|
||||
// wejścia
|
||||
|
||||
|
||||
/* var chart = $("#myChart2");
|
||||
|
||||
var data2 = {
|
||||
labels: <?php echo $chart_labels ?>,
|
||||
datasets: [
|
||||
|
||||
|
||||
<?php foreach ($result['chart']['campaign'] as $key => $value): ?>
|
||||
|
||||
{
|
||||
label: "<?php echo appAdsTracker::langFilter($key) ?>",
|
||||
fill: false,
|
||||
lineTension: 0.1,
|
||||
backgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
pointBorderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointBackgroundColor: "#fff",
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 5,
|
||||
pointHoverBackgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointHoverBorderColor: "rgba(220,220,220,1)",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 3,
|
||||
pointHitRadius: 10,
|
||||
pointStyle: "circle",
|
||||
data: <?php echo json_encode(array_values($value['entering'])); ?>,
|
||||
},
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
|
||||
]
|
||||
};
|
||||
|
||||
var options2 = {
|
||||
hover: {
|
||||
onHover: function(data) {
|
||||
if (display_type == "month") {
|
||||
if (data.length && quantites[data[0]._index] > 0) {
|
||||
chart.css({ cursor: 'pointer' });
|
||||
} else {
|
||||
chart.css({ cursor: 'default' });
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
onClick: function(e) {
|
||||
if (display_type == "month") {
|
||||
var elements = this.getElementsAtEvent(e);
|
||||
|
||||
if (elements.length && quantites[elements[0]._index] > 0) {
|
||||
|
||||
window.location = chart.closest('form').attr('action')+'?filters[filter_order_status]='+$('#filters_filter_order_status').val()+'&filters[expand_date]='+chart_dates[elements[0]._index];
|
||||
}
|
||||
}
|
||||
},
|
||||
responsive: false,
|
||||
maintainAspectRatio: true,
|
||||
legend: { display: true },
|
||||
tooltips: {
|
||||
enabled: true,
|
||||
mode: 'single',
|
||||
callbacks: {
|
||||
label: function(tooltipItems, data2) {
|
||||
return "<?php echo __('wejść') ?>: "+tooltipItems.yLabel;
|
||||
},
|
||||
title: function(tooltipItems, data2) {
|
||||
return chart_dates[tooltipItems[0].index];
|
||||
}
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
xAxes: [{
|
||||
barPercentage: 0.5,
|
||||
maxBarThickness: 120,
|
||||
}],
|
||||
yAxes: [{
|
||||
ticks: {
|
||||
mirror: true,
|
||||
beginAtZero:true,
|
||||
<?php if($change_range_entering == 0): ?>
|
||||
stepSize: 50,
|
||||
<?php endif; ?>
|
||||
userCallback: function(value, index, values) {
|
||||
value = Number(value);
|
||||
return value;
|
||||
}
|
||||
},
|
||||
afterDataLimits(scale) {
|
||||
|
||||
if(scale.max==1){
|
||||
scale.max = 10;
|
||||
|
||||
}else{
|
||||
var my_y = scale.max*0.2;
|
||||
scale.max += my_y;
|
||||
}
|
||||
|
||||
}
|
||||
}]
|
||||
},
|
||||
title: {
|
||||
display: true,
|
||||
text: '<?php echo __('Raport wejść') ?>'
|
||||
}
|
||||
}
|
||||
|
||||
var myLineChart = new Chart(chart.get(0), {
|
||||
type: 'bar',
|
||||
data: data2,
|
||||
options: options2
|
||||
});*/
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<?php echo st_get_admin_foot() ?>
|
||||
@@ -0,0 +1,245 @@
|
||||
|
||||
<?php
|
||||
|
||||
use_helper('I18N', 'stAdminGenerator', 'stJQueryTools','stCurrency', 'stOrder', 'stPrice', 'stJQueryTools', 'stProductImage', 'stDiscount','Validation', 'stDate');
|
||||
sfLoader::loadHelpers('stProduct', 'stProduct');
|
||||
echo st_admin_get_viewport_force_width();
|
||||
?>
|
||||
|
||||
<?php echo st_get_admin_head('appAdsTrackerPlugin', __('Raport odsłon')) ?>
|
||||
<?php st_view_slot_start('application-menu') ?>
|
||||
<?php st_include_component('appAdsTrackerBackend', 'listMenu') ?>
|
||||
<?php st_view_slot_end() ?>
|
||||
|
||||
<?php st_include_partial('stAdminGenerator/message'); ?>
|
||||
<script type="text/javascript" src="/js/backend/chart.min.js"></script>
|
||||
|
||||
<style>
|
||||
|
||||
.list_filters select, .list_filters input {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#filters_from_date, #filters_to_date {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#date-filters {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#date-filters li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<div id="sf_admin_content" style="margin-top: 5px;">
|
||||
|
||||
<?php
|
||||
$datetime1 = date_create($from_date);
|
||||
$datetime2 = date_create($to_date);
|
||||
$interval = date_diff($datetime1, $datetime2);
|
||||
?>
|
||||
|
||||
<form action="<?php echo url_for('appAdsTrackerBackend/adsTrackerInfoStats') ?>" method="post" style="margin-bottom: 10px">
|
||||
<div class="list_filters">
|
||||
|
||||
<?php
|
||||
/*echo "<pre>";
|
||||
print_r($filters);
|
||||
echo "</pre>";*/
|
||||
?>
|
||||
|
||||
|
||||
<input type="hidden" value="<?php echo $filters['ads_id'] ?>" name="filters[ads_id]"/>
|
||||
<div class="clr"></div>
|
||||
|
||||
<ul class="header">
|
||||
<li>
|
||||
<div id="filters_period">
|
||||
<label><?php echo __("Zakres") ?></label>
|
||||
<select id="filters_period_select" name="filters[period]">
|
||||
<?php foreach ($periods as $period => $label): ?>
|
||||
<option value="<?php echo $period ?>" <?php if($filters['period']==$period): ?>selected<?php endif; ?>><?php echo $label ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label><?php echo __("Zakres dat") ?></label>
|
||||
<?php echo input_date_tag('filters[from_date]', $from_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))); ?>
|
||||
-
|
||||
<?php echo input_date_tag('filters[to_date]', $to_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))) ?>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="filter-control">
|
||||
<label> </label>
|
||||
<button class="button button-search no-label with-icon" type="submit">
|
||||
<span class="svg-icon svg-icon-search" style="-webkit-mask-image: url(/images/backend/icons/svg/search.svg?v=2); mask-image: url(/images/backend/icons/svg/search.svg?v=2); " title=""></span>
|
||||
</button>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<div class="clr"></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
<div class="chart-container" style="position: relative; width: 100%; height: 270px">
|
||||
<canvas id="myChart1"></canvas>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
// echo "<pre>";
|
||||
// print_r($result);
|
||||
// echo "</pre>";
|
||||
?>
|
||||
|
||||
<?php
|
||||
|
||||
$chart_labels = json_encode(array_values($result['chart']['labels']));
|
||||
$chart_data = json_encode(array_values($result['chart']['dates']));
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
$('#trigger_filters_from_date, #trigger_filters_to_date').click(function() {
|
||||
console.log("wybrano custom");
|
||||
$("#filters_period_select").val("custom");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
|
||||
|
||||
var chart_dates = <?php echo $chart_data ?>;
|
||||
var display_type = "day";
|
||||
|
||||
var chart = $("#myChart");
|
||||
|
||||
var data = {
|
||||
labels: <?php echo appAdsTracker::langFilter($chart_labels) ?>,
|
||||
datasets: [
|
||||
|
||||
|
||||
<?php foreach ($result['chart']['ads'] as $key => $value): ?>
|
||||
{
|
||||
|
||||
|
||||
// <?php
|
||||
$value['color'] = appAdsTracker::random_color();
|
||||
// echo "<pre>";
|
||||
// print_r($value);
|
||||
// echo "</pre>";
|
||||
//
|
||||
// ?>
|
||||
|
||||
label: "<?php echo appAdsTracker::langFilter(appAdsTracker::getFullAdsName($filters['ads_id'])) ?>",
|
||||
fill: false,
|
||||
lineTension: 0.1,
|
||||
backgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
pointBorderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointBackgroundColor: "#fff",
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 5,
|
||||
pointHoverBackgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointHoverBorderColor: "rgba(220,220,220,1)",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 3,
|
||||
pointHitRadius: 10,
|
||||
pointStyle: "circle",
|
||||
data: <?php echo json_encode(array_values($value['entering'])); ?>,
|
||||
},
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
|
||||
]
|
||||
};
|
||||
|
||||
var options = {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
legend: { display: true },
|
||||
tooltips: {
|
||||
enabled: true,
|
||||
mode: 'single',
|
||||
callbacks: {
|
||||
|
||||
label: function(tooltipItems, data) {
|
||||
return "Ilość wejść: "+tooltipItems.yLabel;
|
||||
},
|
||||
title: function(tooltipItems, data) {
|
||||
return chart_dates[tooltipItems[0].index];
|
||||
}
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
xAxes: [{
|
||||
barPercentage: 0.5,
|
||||
maxBarThickness: 120,
|
||||
}],
|
||||
yAxes: [{
|
||||
ticks: {
|
||||
beginAtZero:true,
|
||||
mirror: true,
|
||||
beginAtZero:true,
|
||||
stepSize: 50,
|
||||
userCallback: function(value, index, values) {
|
||||
value = Number(value);
|
||||
return value;
|
||||
}
|
||||
},
|
||||
afterDataLimits(scale) {
|
||||
var my_y = scale.max*0.2;
|
||||
scale.max += my_y;
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
|
||||
var myLineChart = new Chart(chart.get(0), {
|
||||
type: 'bar',
|
||||
data: data,
|
||||
options: options
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php echo st_get_admin_foot() ?>
|
||||
@@ -0,0 +1,357 @@
|
||||
<?php
|
||||
|
||||
use_helper('I18N', 'stAdminGenerator', 'stJQueryTools','stCurrency', 'stOrder', 'stPrice', 'stJQueryTools', 'stProductImage', 'stDiscount','Validation', 'stDate');
|
||||
sfLoader::loadHelpers('stProduct', 'stProduct');
|
||||
|
||||
echo st_admin_get_viewport_force_width();
|
||||
?>
|
||||
|
||||
<?php echo st_get_admin_head('appAdsTrackerPlugin', __('Raport wejść')) ?>
|
||||
<?php st_view_slot_start('application-menu') ?>
|
||||
<?php st_include_component('appAdsTrackerBackend', 'listMenu') ?>
|
||||
<?php st_view_slot_end() ?>
|
||||
|
||||
<?php st_include_partial('stAdminGenerator/message'); ?>
|
||||
|
||||
|
||||
<script type="text/javascript" src="/js/backend/chart.min.js"></script>
|
||||
|
||||
<style>
|
||||
|
||||
.list_filters select, .list_filters input {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#filters_from_date, #filters_to_date {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#date-filters {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#date-filters li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<div id="sf_admin_content" style="margin-top: 5px;">
|
||||
|
||||
<?php
|
||||
$datetime1 = date_create($from_date);
|
||||
$datetime2 = date_create($to_date);
|
||||
$interval = date_diff($datetime1, $datetime2);
|
||||
|
||||
?>
|
||||
|
||||
<form id="filter-platform" action="<?php echo url_for('appAdsTrackerBackend/adsTrackerPlatformEnteringStats') ?>" method="post" style="margin-bottom: 10px">
|
||||
<div class="list_filters">
|
||||
|
||||
<?php
|
||||
//echo "<pre>";
|
||||
//print_r($filters);
|
||||
//echo "</pre>";
|
||||
?>
|
||||
<ul class="header">
|
||||
<li>
|
||||
<div id="filters_period">
|
||||
<label><?php echo __("Zakres") ?></label>
|
||||
<select id="filters_period_select" name="filters[period]">
|
||||
<?php foreach ($periods as $period => $label): ?>
|
||||
<option value="<?php echo $period ?>" <?php if($filters['period']==$period): ?>selected<?php endif; ?>><?php echo $label ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label><?php echo __("Zakres dat") ?></label>
|
||||
<?php echo input_date_tag('filters[from_date]', $from_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))); ?>
|
||||
-
|
||||
<?php echo input_date_tag('filters[to_date]', $to_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))) ?>
|
||||
|
||||
</li>
|
||||
<li class="filter-control">
|
||||
<label> </label>
|
||||
<button class="button button-search no-label with-icon" type="submit">
|
||||
<span class="svg-icon svg-icon-search" style="-webkit-mask-image: url(/images/backend/icons/svg/search.svg?v=2); mask-image: url(/images/backend/icons/svg/search.svg?v=2); " title=""></span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="clr" style="margin-bottom: 15px;"></div>
|
||||
|
||||
|
||||
<?php echo "Platformy" ?>
|
||||
<ul class="sf_admin_checklist" style="margin-bottom: 15px;">
|
||||
<?php
|
||||
foreach ($platforms as $platform_id => $platform_label ): ?>
|
||||
|
||||
<?php
|
||||
if ( @$filters['platform'][$platform_label] == $platform_id) {
|
||||
$checked = 1;
|
||||
} else {
|
||||
$checked = 0;
|
||||
}
|
||||
|
||||
?>
|
||||
<li style="margin-right: 30px;">
|
||||
<?php echo st_admin_checkbox_tag('filters[platform]['.$platform_label.']', $platform_id, $checked, array("class"=>"platform-checkbox")); ?> <?php echo label_for('filters[platform]['.$platform_label.']', appAdsTracker::langFilter($platform_label)) ?>
|
||||
</li>
|
||||
|
||||
<?php endforeach ?>
|
||||
</ul>
|
||||
|
||||
<div class="clr"></div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
|
||||
<div class="chart-container" style="position: relative; width: 100%; height: 270px">
|
||||
<canvas id="myChart1"></canvas>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<form id="record_list_form" class="admin_form">
|
||||
|
||||
<table class="st_record_list record_list" cellspacing="0" cellpadding="0" style="max-width: 500px;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('Platforma') ?></th><th><?php echo __('Wejścia') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php
|
||||
$change_range_brutto = 0;
|
||||
$change_range_entering = 0;
|
||||
|
||||
$sum_total_entering = 0;
|
||||
$sum_conversion = 0;
|
||||
$sum_total_brutto = 0;
|
||||
|
||||
|
||||
foreach ($result['platform'] as $platform):
|
||||
?>
|
||||
|
||||
<?php
|
||||
if($platform['total_brutto']>0){
|
||||
$change_range_brutto = 1;
|
||||
}
|
||||
|
||||
if($platform['total_entering']>0){
|
||||
$change_range_entering = 1;
|
||||
}
|
||||
|
||||
|
||||
$sum_total_entering += $platform['total_entering'];
|
||||
$sum_conversion += $platform['conversion'];
|
||||
$sum_total_brutto += $platform['total_brutto'];
|
||||
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td><?php echo appAdsTracker::langFilter($platform['name']) ?></td>
|
||||
<td><?php echo $platform['total_entering'] ?></td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
<tfoot>
|
||||
<tr style="background: #f1f1f1; font-weight: bold;">
|
||||
<td style="font-weight: bold;"><?php echo __('Razem') ?></td>
|
||||
<td style="font-weight: bold;"><?php echo $sum_total_entering ?></td>
|
||||
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
<?php
|
||||
|
||||
// echo "<pre>";
|
||||
// print_r($result);
|
||||
// echo "</pre>";
|
||||
|
||||
?>
|
||||
|
||||
<?php
|
||||
|
||||
$chart_labels = json_encode(array_values($result['chart']['labels']));
|
||||
$chart_data = json_encode(array_values($result['chart']['dates']));
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
$('#filters_from_date, #filters_to_date').click(function() {
|
||||
console.log("wybrano custom");
|
||||
$("#filters_period_select").val("custom");
|
||||
$("#filters_period_select").trigger('chosen:update');
|
||||
});
|
||||
|
||||
$('.platform-checkbox').on('change',function() {
|
||||
$('#filter-platform').submit();
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
<script>
|
||||
|
||||
jQuery(function($) {
|
||||
|
||||
var y_label_char = 0;
|
||||
|
||||
<?php
|
||||
$i=0;
|
||||
foreach ($result['chart']['platform'] as $key => $value):
|
||||
?>
|
||||
|
||||
var quantites<?php echo $i ?> = <?php echo json_encode(array_values($value['count'])); ?>
|
||||
|
||||
<?php
|
||||
$i++;
|
||||
endforeach;
|
||||
?>
|
||||
|
||||
|
||||
|
||||
var chart_dates = <?php echo $chart_data ?>;
|
||||
|
||||
// wejścia
|
||||
|
||||
|
||||
var chart = $("#myChart1");
|
||||
|
||||
var data = {
|
||||
labels: <?php echo $chart_labels ?>,
|
||||
datasets: [
|
||||
|
||||
|
||||
<?php foreach ($result['chart']['platform'] as $key => $value): ?>
|
||||
|
||||
{
|
||||
label: "<?php echo appAdsTracker::langFilter($key) ?>",
|
||||
fill: false,
|
||||
lineTension: 0.1,
|
||||
backgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
pointBorderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointBackgroundColor: "#fff",
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 5,
|
||||
pointHoverBackgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointHoverBorderColor: "rgba(220,220,220,1)",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 3,
|
||||
pointHitRadius: 10,
|
||||
pointStyle: "circle",
|
||||
data: <?php echo json_encode(array_values($value['entering'])); ?>,
|
||||
},
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
|
||||
]
|
||||
};
|
||||
|
||||
var options = {
|
||||
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
legend: { display: true },
|
||||
tooltips: {
|
||||
enabled: true,
|
||||
mode: 'single',
|
||||
callbacks: {
|
||||
label: function(tooltipItems, data2) {
|
||||
return "<?php echo __('wejść') ?>: "+tooltipItems.yLabel;
|
||||
},
|
||||
title: function(tooltipItems, data2) {
|
||||
return chart_dates[tooltipItems[0].index];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
scales: {
|
||||
xAxes: [{
|
||||
stacked: true,
|
||||
barPercentage: 0.5,
|
||||
maxBarThickness: 120,
|
||||
}],
|
||||
yAxes: [{
|
||||
stacked: true,
|
||||
ticks: {
|
||||
|
||||
beginAtZero:true,
|
||||
<?php if($change_range_entering == 0): ?>
|
||||
stepSize: 50,
|
||||
<?php endif; ?>
|
||||
userCallback: function(value, index, values) {
|
||||
value = Number(value);
|
||||
return value;
|
||||
}
|
||||
},
|
||||
afterDataLimits(scale) {
|
||||
if(scale.max==1){
|
||||
scale.max = 10;
|
||||
}else{
|
||||
var my_y = scale.max*0.2;
|
||||
scale.max += my_y;
|
||||
}
|
||||
}
|
||||
}]
|
||||
},
|
||||
title: {
|
||||
display: true,
|
||||
text: '<?php echo __('Raport wejść') ?>'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var myLineChart = new Chart(chart.get(0), {
|
||||
type: 'bar',
|
||||
data: data,
|
||||
options: options
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php echo st_get_admin_foot() ?>
|
||||
@@ -0,0 +1,383 @@
|
||||
<?php
|
||||
|
||||
use_helper('I18N', 'stAdminGenerator', 'stJQueryTools','stCurrency', 'stOrder', 'stPrice', 'stJQueryTools', 'stProductImage', 'stDiscount','Validation', 'stDate');
|
||||
sfLoader::loadHelpers('stProduct', 'stProduct');
|
||||
echo st_admin_get_viewport_force_width();
|
||||
?>
|
||||
|
||||
<?php echo st_get_admin_head('appAdsTrackerPlugin', __('Raport platformy')) ?>
|
||||
<?php st_view_slot_start('application-menu') ?>
|
||||
<?php st_include_component('appAdsTrackerBackend', 'listMenu') ?>
|
||||
<?php st_view_slot_end() ?>
|
||||
|
||||
<?php st_include_partial('stAdminGenerator/message'); ?>
|
||||
|
||||
|
||||
<script type="text/javascript" src="/js/backend/chart.min.js"></script>
|
||||
|
||||
<style>
|
||||
|
||||
.list_filters select, .list_filters input {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#filters_from_date, #filters_to_date {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#date-filters {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#date-filters li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<div id="sf_admin_content" style="margin-top: 5px;">
|
||||
|
||||
<?php
|
||||
$datetime1 = date_create($from_date);
|
||||
$datetime2 = date_create($to_date);
|
||||
$interval = date_diff($datetime1, $datetime2);
|
||||
|
||||
?>
|
||||
|
||||
<form id="filter-platform" action="<?php echo url_for('appAdsTrackerBackend/adsTrackerPlatformStats') ?>" method="post" style="margin-bottom: 10px">
|
||||
<div class="list_filters">
|
||||
|
||||
<?php
|
||||
/*echo "<pre>";
|
||||
print_r($filters);
|
||||
echo "</pre>";*/
|
||||
?>
|
||||
<ul class="header">
|
||||
<li>
|
||||
<div id="filters_period">
|
||||
<label><?php echo __("Zakres") ?></label>
|
||||
<select id="filters_period_select" name="filters[period]">
|
||||
<?php foreach ($periods as $period => $label): ?>
|
||||
<option value="<?php echo $period ?>" <?php if($filters['period']==$period): ?>selected<?php endif; ?>><?php echo $label ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label><?php echo __("Zakres dat") ?></label>
|
||||
<?php echo input_date_tag('filters[from_date]', $from_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))); ?>
|
||||
-
|
||||
<?php echo input_date_tag('filters[to_date]', $to_date, _parse_attributes(array (
|
||||
'rich' => true,
|
||||
'withtime' => false,
|
||||
'culture' => $sf_user->getCulture(),
|
||||
'calendar_button_img' => '/sf/sf_admin/images/date.png',
|
||||
'readonly' => 'readonly',
|
||||
'class' => 'filters_date_range',
|
||||
))) ?>
|
||||
|
||||
</li>
|
||||
<li class="filter-control">
|
||||
<label> </label>
|
||||
<button class="button button-search no-label with-icon" type="submit">
|
||||
<span class="svg-icon svg-icon-search" style="-webkit-mask-image: url(/images/backend/icons/svg/search.svg?v=2); mask-image: url(/images/backend/icons/svg/search.svg?v=2); " title=""></span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="clr" style="margin-bottom: 15px;"></div>
|
||||
|
||||
|
||||
<?php echo "Platformy" ?>
|
||||
<ul class="sf_admin_checklist" style="margin-bottom: 15px;">
|
||||
<?php
|
||||
foreach ($platforms as $platform_id => $platform_label ): ?>
|
||||
|
||||
<?php
|
||||
if ( @$filters['platform'][$platform_label] == $platform_id) {
|
||||
$checked = 1;
|
||||
} else {
|
||||
$checked = 0;
|
||||
}
|
||||
|
||||
?>
|
||||
<li style="margin-right: 30px;">
|
||||
<?php echo st_admin_checkbox_tag('filters[platform]['.$platform_label.']', $platform_id, $checked, array("class"=>"platform-checkbox")); ?> <?php echo label_for('filters[platform]['.$platform_label.']', appAdsTracker::langFilter($platform_label)) ?>
|
||||
</li>
|
||||
|
||||
<?php endforeach ?>
|
||||
</ul>
|
||||
|
||||
<div class="clr"></div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
<div class="chart-container" style="position: relative; width: 100%; height: 270px">
|
||||
<canvas id="myChart1"></canvas>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<form id="record_list_form" class="admin_form">
|
||||
|
||||
<table class="st_record_list record_list" cellspacing="0" cellpadding="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('Platforma') ?></th><th><?php echo __('Wejścia') ?></th><th><?php echo __('Konwersje') ?></th><th><?php echo __('CTR') ?></th><th><?php echo __('Wartość brutto') ?></th><th><?php echo __('Średnia') ?></th><!-- <th><?php // echo __('Zamówienia') ?></th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<?php
|
||||
$change_range_brutto = 0;
|
||||
$change_range_entering = 0;
|
||||
|
||||
$sum_total_entering = 0;
|
||||
$sum_conversion = 0;
|
||||
$sum_total_brutto = 0;
|
||||
|
||||
|
||||
foreach ($result['platform'] as $platform):
|
||||
?>
|
||||
|
||||
<?php
|
||||
if($platform['total_brutto']>0){
|
||||
$change_range_brutto = 1;
|
||||
}
|
||||
|
||||
if($platform['total_entering']>0){
|
||||
$change_range_entering = 1;
|
||||
}
|
||||
|
||||
|
||||
$sum_total_entering += $platform['total_entering'];
|
||||
$sum_conversion += $platform['conversion'];
|
||||
$sum_total_brutto += $platform['total_brutto'];
|
||||
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td><?php echo appAdsTracker::langFilter($platform['name']) ?></td>
|
||||
<td><?php echo $platform['total_entering'] ?></td>
|
||||
<td><?php echo $platform['conversion'] ?></td>
|
||||
<td><?php echo $platform['ctr'] ?>%</td>
|
||||
<td><?php echo $platform['total_brutto'] ?></td>
|
||||
<td><?php echo $platform['total_brutto_median'] ?></td>
|
||||
|
||||
<!-- <td><?php // echo $platform['order_ids'] ?></td> -->
|
||||
</tr>
|
||||
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
<tfoot>
|
||||
<tr style="background: #f1f1f1; font-weight: bold;">
|
||||
<td style="font-weight: bold;"><?php echo __('Razem') ?></td>
|
||||
<td style="font-weight: bold;"><?php echo $sum_total_entering ?></td>
|
||||
<td style="font-weight: bold;"><?php echo $sum_conversion ?></td>
|
||||
<td style="font-weight: bold;"><?php if ($sum_conversion==""){ echo "0%"; }else{ echo round(($sum_conversion/$sum_total_entering)*100,'2')."%";} ?></td>
|
||||
<td style="font-weight: bold;"><?php echo number_format($sum_total_brutto, 2, '.', ''); ?></td>
|
||||
<td style="font-weight: bold;"><?php if ($sum_total_brutto=="") { echo "0"; } else { echo round($sum_total_brutto/$sum_conversion,'2');} ?></td>
|
||||
<!-- <td><?php // echo $platform['order_ids'] ?></td> -->
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
<?php
|
||||
|
||||
// echo "<pre>";
|
||||
// print_r($result);
|
||||
// echo "</pre>";
|
||||
|
||||
?>
|
||||
|
||||
<?php
|
||||
|
||||
$chart_labels = json_encode(array_values($result['chart']['labels']));
|
||||
$chart_data = json_encode(array_values($result['chart']['dates']));
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
|
||||
$('#filters_from_date, #filters_to_date').click(function() {
|
||||
console.log("wybrano custom");
|
||||
|
||||
$("#filters_period_select").val("custom");
|
||||
$("#filters_period_select").trigger('chosen:update');
|
||||
});
|
||||
|
||||
$('.platform-checkbox').on('change',function() {
|
||||
$('#filter-platform').submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<?php if (appAdsTracker::chartDisplayType($from_date, $to_date)!="none"): ?>
|
||||
|
||||
<script>
|
||||
|
||||
jQuery(function($) {
|
||||
|
||||
var y_label_char = 0;
|
||||
|
||||
<?php
|
||||
$i=0;
|
||||
foreach ($result['chart']['platform'] as $key => $value):
|
||||
?>
|
||||
|
||||
var quantites<?php echo $i ?> = <?php echo json_encode(array_values($value['count'])); ?>
|
||||
|
||||
<?php
|
||||
$i++;
|
||||
endforeach;
|
||||
?>
|
||||
|
||||
|
||||
|
||||
var chart_dates = <?php echo $chart_data ?>;
|
||||
var display_type = "day";
|
||||
|
||||
var chart = $("#myChart1");
|
||||
|
||||
var data = {
|
||||
labels: <?php echo appAdsTracker::langFilter($chart_labels) ?>,
|
||||
datasets: [
|
||||
|
||||
|
||||
|
||||
<?php foreach ($result['chart']['platform'] as $key => $value): ?>
|
||||
|
||||
{
|
||||
label: "<?php echo appAdsTracker::langFilter($key) ?>",
|
||||
fill: false,
|
||||
lineTension: 0.1,
|
||||
backgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
pointBorderColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointBackgroundColor: "#fff",
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 5,
|
||||
pointHoverBackgroundColor: "<?php echo '#'.$value['color'] ?>",
|
||||
pointHoverBorderColor: "rgba(220,220,220,1)",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 3,
|
||||
pointHitRadius: 10,
|
||||
pointStyle: "circle",
|
||||
data: <?php echo json_encode(array_values($value['amount'])); ?>,
|
||||
},
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
|
||||
]
|
||||
};
|
||||
|
||||
|
||||
var options = {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
legend: { display: true },
|
||||
tooltips: {
|
||||
enabled: true,
|
||||
mode: 'single',
|
||||
callbacks: {
|
||||
beforeLabel: function(tooltipItems, data) {
|
||||
|
||||
if(tooltipItems.datasetIndex==0){
|
||||
return "<?php echo __('ilość zamówień') ?>: "+quantites0[tooltipItems.index];
|
||||
}
|
||||
|
||||
if(tooltipItems.datasetIndex==1){
|
||||
return "<?php echo __('ilość zamówień') ?>: "+quantites1[tooltipItems.index];
|
||||
}
|
||||
|
||||
},
|
||||
label: function(tooltipItems, data) {
|
||||
return "<?php echo __('brutto') ?>: "+tooltipItems.yLabel + ' PLN';
|
||||
},
|
||||
title: function(tooltipItems, data) {
|
||||
return chart_dates[tooltipItems[0].index];
|
||||
}
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
xAxes: [{
|
||||
stacked: true,
|
||||
barPercentage: 0.5,
|
||||
maxBarThickness: 120,
|
||||
}],
|
||||
yAxes: [{
|
||||
stacked: true,
|
||||
ticks: {
|
||||
mirror: false,
|
||||
beginAtZero:true,
|
||||
<?php if($change_range_brutto == 0): ?>
|
||||
stepSize: 50,
|
||||
<?php endif; ?>
|
||||
userCallback: function(value, index, values) {
|
||||
value = Number(value);
|
||||
|
||||
var ret = (options.scales.yAxes[0].ticks.stepSize == 1 || value > 10 || value == 0 ? value.toFixed(0) : value.toFixed(1)) + ' PLN';
|
||||
|
||||
return ret;
|
||||
}
|
||||
},
|
||||
afterDataLimits(scale) {
|
||||
if(scale.max==1){
|
||||
scale.max = 100;
|
||||
|
||||
}else{
|
||||
var my_y = scale.max*0.2;
|
||||
scale.max += my_y;
|
||||
}
|
||||
}
|
||||
}]
|
||||
},
|
||||
title: {
|
||||
display: true,
|
||||
text: '<?php echo __('Raport sprzedaży') ?>'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
var myLineChart = new Chart(chart.get(0), {
|
||||
type: 'bar',
|
||||
data: data,
|
||||
options: options
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php echo st_get_admin_foot() ?>
|
||||
@@ -0,0 +1,6 @@
|
||||
fields:
|
||||
ads_tracker_campaign{ads_name}:
|
||||
required:
|
||||
msg: Podaj unikalną nazwę kampanii
|
||||
appAdsTrackerValidator:
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
fields:
|
||||
ads_tracker_platform{ads_name}:
|
||||
required:
|
||||
msg: Podaj unikalną nazwę platformy
|
||||
appAdsTrackerValidator:
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
fields:
|
||||
ads_tracker_list{ads_name}:
|
||||
required:
|
||||
msg: Podaj nazwę reklamy
|
||||
appAdsTrackerValidator:
|
||||
ads_tracker_list{url}:
|
||||
required:
|
||||
msg: Podaj link śledzenia
|
||||
appAdsTrackerValidator:
|
||||
|
||||
Reference in New Issue
Block a user