banner_id = $banner_id; $this->places = new adfoxlyPlaces(); $this->format = new adfoxlyFormats(); $this->image = new adfoxlyFormatImage(); $this->options = new adfoxlyAdOptions(); $this->group = new adfoxlyAdGroup(); $this->campaign = new adfoxlyAdCampaign(); $this->banners = new BannerController(); $this->settings_redirect = new adfoxlySettingsRedirect(); $this->settings_statistics = new adfoxlySettingsStatistics(); $this->places_settings = new adfoxlyPlacesSettings(); $this->groups_settings = new adfoxlyGroupsSettings(); $this->campaigns_settings = new adfoxlyCampaignsSettings(); $this->settings_pixel = new adfoxlySettingsPixel(); $this->settings_privacy = new adfoxlySettingsPrivacy(); $this->places_controller = new PlacesController(); if ( isset( $banner_id ) && !empty($banner_id) ) { // $this->banner = $banner->getBanner( $banner_id ); } } /** * @param array $arguments * * @return string */ public function generate( array $arguments = array() ) { if ( !empty($arguments) ) { foreach ( $arguments as $property => $argument ) { $this->{$property} = $argument; } if ( !empty($arguments['type']) ) { $output = ''; foreach ( $this->{$arguments['type']}->meta_fields as $meta_field ) { if ( !empty($arguments['banner_id']) ) { $bannerController = new BannerController(); $this->banner_data = $bannerController->getBanner( $this->banner_id ); } $output .= $this->generate_field( $meta_field ); } return $output; } } } /** * @param $meta_field * * @return string */ public function generate_field( $meta_field ) { $output = ''; if ( isset( $meta_field ) && isset( $meta_field['type'] ) ) { switch ( $meta_field['type'] ) { case $meta_field['type'] == "image_checkbox" || $meta_field['type'] == "image_radio": if ( isset( $meta_field ) && !empty($meta_field) && !empty($meta_field['options']) ) { foreach ( $meta_field['options'] as $key => $field ) { switch ( $meta_field['type'] ) { case "image_checkbox" || "image_radio": if ( $meta_field['type'] == 'image_checkbox' ) { $html_type = 'checkbox'; $design_type = 'check'; } else { if ( $meta_field['type'] == 'image_radio' ) { $html_type = 'radio'; $design_type = 'radio'; } } $output .= '
'; $output .= '
'; $output .= '
'; if ( isset( $meta_field['options'][$key]['soon'] ) && $meta_field['options'][$key]['soon'] === true ) { $output .= '
' . __( 'soon', 'adfoxly' ) . '
'; } $output .= ''; $output .= '
'; break; } } } break; case 'checkbox': if ( isset( $meta_field['group'] ) && !empty($meta_field['group']) ) { $output .= '
'; $output .= '
'; if ( isset( $meta_field['data-parsley-errors-container'] ) && !empty($meta_field['data-parsley-errors-container']) ) { $output .= '
'; } if ( $meta_field['id'] === 'adfoxly-group-ads-list' ) { $bannerArgs = array( 'meta_query' => array( array( 'key' => 'adfoxly-adzone-place', 'value' => sprintf( ':"%s";', 7 ), 'compare' => 'LIKE', ), array( 'relation' => 'OR', array( array( 'key' => 'adfoxly-ad-campaign-start', 'compare' => 'NOT EXISTS', ), array( 'key' => 'adfoxly-ad-campaign-end', 'compare' => 'NOT EXISTS', ) ), array( array( 'key' => 'adfoxly-ad-campaign-start', 'value' => date( "Y-m-d" ), 'compare' => '<=', 'type' => 'DATE', ), array( 'key' => 'adfoxly-ad-campaign-end', 'value' => date( "Y-m-d" ), 'compare' => '>=', 'type' => 'DATE', ) ), ) ), 'post_type' => 'adfoxly_banners', 'posts_per_page' => -1, ); $banners = get_posts( $bannerArgs ); if ( isset( $_GET['edit'] ) ) { $groups = get_post_meta( $_GET['edit'], 'adfoxly-ad-group', true ); } } else { if ( $meta_field['id'] === 'adfoxly-campaign-ads-list' ) { $bannerArgs = array( 'meta_query' => array( array( 'relation' => 'OR', array( array( 'key' => 'adfoxly-ad-campaign-start', 'compare' => 'NOT EXISTS', ), array( 'key' => 'adfoxly-ad-campaign-end', 'compare' => 'NOT EXISTS', ) ), array( array( 'key' => 'adfoxly-ad-campaign-start', 'value' => date( "Y-m-d" ), 'compare' => '<=', 'type' => 'DATE', ), array( 'key' => 'adfoxly-ad-campaign-end', 'value' => date( "Y-m-d" ), 'compare' => '>=', 'type' => 'DATE', ) ), ) ), 'post_type' => 'adfoxly_banners', 'posts_per_page' => -1, ); $banners = get_posts( $bannerArgs ); $groups = get_post_meta( $_GET['edit'], 'adfoxly-ad-campaign', true ); } else { if ( $meta_field['id'] === 'adfoxly-wizard-campaign-list' ) { $bannerArgs = array( 'meta_query' => array( array( 'relation' => 'OR', array( array( 'key' => 'adfoxly-ad-campaign-start', 'compare' => 'NOT EXISTS', ), array( 'key' => 'adfoxly-ad-campaign-end', 'compare' => 'NOT EXISTS', ) ), array( array( 'key' => 'adfoxly-ad-campaign-start', 'value' => date( "Y-m-d" ), 'compare' => '<=', 'type' => 'DATE', ), array( 'key' => 'adfoxly-ad-campaign-end', 'value' => date( "Y-m-d" ), 'compare' => '>=', 'type' => 'DATE', ) ), ) ), 'post_type' => 'adfoxly_banners', 'posts_per_page' => -1, ); $campaignArgs = array( 'post_type' => 'adfoxly_ad_campaign', 'posts_per_page' => -1, ); $banners = get_posts( $campaignArgs ); $groups = get_posts( $campaignArgs ); if ( isset( $_GET['edit'] ) ) { $g_id = $_GET['edit']; $g_id_int = intval( $g_id ); $selectedCampaignsArgs = array( 'meta_query' => array( array( 'key' => 'adfoxly-ad-campaign', 'value' => $g_id_int, 'compare' => 'LIKE', ) ), 'post_type' => 'adfoxly_ad_campaign', 'posts_per_page' => -1, 'fields' => 'ids', ); $selectedCampaigns = get_posts( $selectedCampaignsArgs ); } } else { if ( $meta_field['id'] === 'adfoxly-place-ads-list' ) { $campaignArgs = array( 'post_type' => 'adfoxly_banners', 'posts_per_page' => -1, ); $banners = get_posts( $campaignArgs ); $groups = get_posts( $campaignArgs ); if ( isset( $_GET['edit'] ) ) { $g_id = $_GET['edit']; $g_id_int = intval( $g_id ); $selectedCampaignsArgs = array( 'meta_query' => array( array( 'key' => 'adfoxly-adzone-place', 'value' => $g_id_int, 'compare' => 'LIKE', ) ), 'post_type' => 'adfoxly_banners', 'posts_per_page' => -1, 'fields' => 'ids', ); $selectedCampaigns = get_posts( $selectedCampaignsArgs ); } } } } } $output .= '
'; foreach ( $banners as $banner ) { // $output .= '
'; // $output .= ''; // $output .= ''; // $output .= '
'; $output .= '
'; // $output .= '
'; // $output .= ''; $output .= '>'; $output .= '
'; } $output .= '
'; if ( isset( $meta_field['help-block'] ) && !empty($meta_field['help-block']) ) { $output .= '

'; $output .= '' . $meta_field['help-block'] . ''; $output .= '

'; } $output .= '
'; $output .= '
'; break; case 'tab': if ( isset( $meta_field['group'] ) && !empty($meta_field['group']) ) { $output .= '
'; } else { $output .= ''; break; case 'campaign_days_and_hours': if ( isset( $_GET['edit'] ) && !empty($_GET['edit']) && is_numeric( $_GET['edit'] ) ) { $campaignID = $_GET['edit']; } if ( isset( $campaignID ) && !empty($campaignID) ) { $adfoxlyCampaignDays = get_post_meta( $campaignID, 'adfoxly-campaign-days', true ); $adfoxlyCampaignSpecificHours = get_post_meta( $campaignID, 'adfoxly-campaign-specific-hours', true ); } if ( isset( $meta_field['group'] ) && !empty($meta_field['group']) ) { $output .= '
'; } else { $output .= '
'; } $output .= ''; $output .= '
'; $days = array( 'monday' => 'Monday', 'tuesday' => 'Tuesday', 'wednesday' => 'Wednesday', 'thursday' => 'Thursday', 'friday' => 'Friday', 'saturday' => 'Saturday', 'sunday' => 'Sunday', ); foreach ( $days as $key => $day ) { $output .= '
'; } $output .= '
'; $output .= '
'; break; case 'textarea': if ( isset( $meta_field['group'] ) && !empty($meta_field['group']) ) { $output .= '
'; $output .= '
'; $output .= ''; $output .= '
'; $output .= '
'; break; default: if ( isset( $meta_field['is_premium'] ) && !empty($meta_field['is_premium']) && $meta_field['is_premium'] === true ) { if ( isset( $meta_field['group'] ) && !empty($meta_field['group']) ) { $output .= '
(PRO)
This feature is available only in pro version. Start free 7-day trial. No hidden fees. No credit card required.'; $output .= '
'; switch ( $meta_field['type'] ) { case 'radio': foreach ( $meta_field['options'] as $key => $value ) { $output .= '
'; $output .= '' . $value . ''; $output .= '
'; } break; default: if ( $meta_field['id'] !== 'adfoxly-ad-preview' ) { if ( !isset( $meta_field['class'] ) ) { $meta_field['class'] = ''; } $output .= ''; } break; } if ( isset( $meta_field['data-parsley-errors-container'] ) && !empty($meta_field['data-parsley-errors-container']) ) { $output .= '
'; } if ( isset( $meta_field['help-block'] ) && !empty($meta_field['help-block']) ) { $output .= '

'; $output .= '' . $meta_field['help-block'] . ''; $output .= '

'; } $output .= '
'; $output .= '
'; } else { // free if ( isset( $meta_field['group'] ) && !empty($meta_field['group']) ) { $output .= '
'; $output .= '
'; switch ( $meta_field['type'] ) { case 'radio': foreach ( $meta_field['options'] as $key => $value ) { $output .= '
'; $output .= 'banner_data['meta'][$meta_field['id']][0]) && $key === intval( $this->banner_data['meta'][$meta_field['id']][0] ) ) { $output .= ' checked '; } $output .= '>'; $output .= ''; $output .= '
'; } break; default: if ( $meta_field['id'] !== 'adfoxly-ad-preview' ) { if ( !isset( $meta_field['class'] ) ) { $meta_field['class'] = ''; } $output .= 'banner_data['meta'][$meta_field['id']][0]) ) { $output .= " value='" . $this->banner_data['meta'][$meta_field['id']][0] . "' "; } elseif ( isset( $meta_field['value'] ) && !empty($meta_field['value']) ) { $input_default_value = $meta_field['value']; $output .= " value='" . $input_default_value . "' "; } if ( isset( $meta_field['data-media-uploader-target'] ) && !empty($meta_field['data-media-uploader-target']) ) { $output .= " data-media-uploader-target=" . $meta_field['data-media-uploader-target'] . " "; } $output .= '/>'; } else { $output .= ''; } break; } if ( isset( $meta_field['data-parsley-errors-container'] ) && !empty($meta_field['data-parsley-errors-container']) ) { $output .= '
'; } if ( isset( $meta_field['help-block'] ) && !empty($meta_field['help-block']) ) { $output .= '

'; $output .= '' . $meta_field['help-block'] . ''; $output .= '

'; } $output .= '
'; $output .= '
'; } break; } } return $output; } }