banner_id = $banner_id; $this->spot = new AdfoxlySpotModel(); $this->format = new AdfoxlyFormatsModel(); $this->image = new AdfoxlyFormatImageModel(); $this->campaign = new AdfoxlyCampaignModel('adCampaign'); $this->places_settings = new AdfoxlyPlacesSettingsController(); $this->campaigns_settings = new AdfoxlyCampaignModel(); // model $this->banners = new AdfoxlyBannerModel(); // settings $this->settings_redirect = new AdfoxlySettingsRedirectModel(); $this->settings_statistics = new AdfoxlySettingsStatisticsModel(); $this->settings_pixel = new AdfoxlySettingsPixelModel(); $this->settings_adstxt = new AdfoxlySettingsAdstxtModel(); $this->settings_core = new AdfoxlySettingsCoreModel(); $this->settings_privacy = new AdfoxlySettingsPrivacyModel(); // $this->places_controller = new AdfoxlyPlacesController(); } /** * @param array $arguments * * This method generate form based on config arrays which are above * Forms are used in all places in dashboard * * @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 AdfoxlyBannerModel(); $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 ) { Timber::$locations = array( realpath( dirname( __DIR__ ) ) . '/view' ); $output = ''; $output1 = ''; $output2 = ''; if ( isset( $meta_field ) && isset( $meta_field[ 'type' ] ) ): switch ( $meta_field[ 'type' ] ): case ( $meta_field[ 'type' ] == "image_checkbox" || $meta_field[ 'type' ] == "image_radio" || $meta_field['type'] === 'image_radio_label'): if ( isset( $meta_field ) && ! empty( $meta_field ) && ! empty( $meta_field[ 'options' ] ) ) { if ( $meta_field['id'] === 'adfoxly-adzone-place' ) { // $content[ 'title' ] = 'Custom Places'; // $content[ 'subtitle' ] = 'If you choose a custom place, at the end you will get generated shortcode, which you can use on every spot on the site by inserting generated code in PHP file.'; // $output .= $groupHeader->render( $content ); $output .= $this->generate_options( $output2, $meta_field, array( 'category' => 'custom' ) ); $output .= '
'; $output .= '
'; $context[ 'title' ] = 'Create new place'; $context[ 'subtitle' ] = 'Here you can select a place on your site, and an ad will be visible automatically without using any shortcode or other steps. Just choose one of these places and rest of will be done without your effort.'; $output .= Timber::compile( 'group-header.twig', $context ); $output .= $this->generate_options( $output1, $meta_field, array( 'category' => 'predefined' ) ); $output .= '
'; $output .= '
'; } else { $output = $this->generate_options( $output, $meta_field ); } } break; case 'checkbox': if ( $meta_field['id'] === 'adfoxly-statistics-type' ) { if ( isset( $meta_field[ 'group' ] ) && ! empty( $meta_field[ 'group' ] ) ) { $output .= '
'; } $output .=''; $output .= '
'; switch ( $meta_field[ 'type' ] ): case 'checkbox': 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 .= '
'; endforeach; 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 . "' "; endif; 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' ] . " "; endif; if ( isset( $meta_field[ 'autocomplete' ] ) && ! empty( $meta_field[ 'autocomplete' ] ) ): $output .= " autocomplete=" . $meta_field[ 'autocomplete' ] . " "; endif; $output .= '/>'; } else { $output .= ''; } break; endswitch; if ( isset( $meta_field[ 'data-parsley-errors-container' ] ) && ! empty( $meta_field[ 'data-parsley-errors-container' ] ) ): $output .= '
'; endif; if ( isset( $meta_field[ 'help-block' ] ) && ! empty( $meta_field[ 'help-block' ] ) ) { $output .= '

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

'; } $output .= '
'; $output .= '
'; } else { $checkbox = new wizardCheckbox(); $output = $checkbox->render( $output, $meta_field ); } break; case 'tab': $tab = new wizardTab(); $output = $tab->render( $output, $meta_field ); break; case 'campaign_days_and_hours': $cmpaignDaysAndHours = new wizardCmpaignDaysAndHours(); $output = $cmpaignDaysAndHours->render( $output, $meta_field ); break; case 'textarea': $textarea = new wizardTextarea( $this->banner_data ); $output = $textarea->render( $output, $meta_field ); break; default: if ( isset( $meta_field[ 'is_premium' ] ) && ! empty( $meta_field[ 'is_premium' ] ) && $meta_field[ 'is_premium' ] === true ) { if ( adfoxly_wa_fs()->is__premium_only() ) { if ( adfoxly_wa_fs()->can_use_premium_code() ) { if ( isset( $meta_field[ 'group' ] ) && ! empty( $meta_field[ 'group' ] ) ) { $output .= '
'; } $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 .= '
'; endforeach; 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 . "' "; endif; 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' ] . " "; endif; if ( isset( $meta_field[ 'autocomplete' ] ) && ! empty( $meta_field[ 'autocomplete' ] ) ): $output .= " autocomplete=" . $meta_field[ 'autocomplete' ] . " "; endif; $output .= '/>'; } else { $output .= ''; } break; endswitch; if ( isset( $meta_field[ 'data-parsley-errors-container' ] ) && ! empty( $meta_field[ 'data-parsley-errors-container' ] ) ): $output .= '
'; endif; if ( isset( $meta_field[ 'help-block' ] ) && ! empty( $meta_field[ 'help-block' ] ) ) { $output .= '

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

'; } $output .= '
'; $output .= '
'; } } if ( ! adfoxly_wa_fs()->is__premium_only() ) { 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 .= '
'; endforeach; break; default: if ( $meta_field[ 'id' ] !== 'adfoxly-ad-preview' ) { if ( ! isset( $meta_field[ 'class' ] ) ) { $meta_field[ 'class' ] = ''; } $output .= ''; } break; endswitch; if ( isset( $meta_field[ 'data-parsley-errors-container' ] ) && ! empty( $meta_field[ 'data-parsley-errors-container' ] ) ): $output .= '
'; endif; 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 .=''; $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 ] ) ) ) { // echo "
";
//										var_dump($meta_field[ 'default' ]);
//										var_dump($key);
//										echo "
"; $output .= ' checked '; } $output .= '>'; $output .= ''; $output .= '
'; endforeach; 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 . "' "; endif; 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' ] . " "; endif; if ( isset( $meta_field[ 'autocomplete' ] ) && ! empty( $meta_field[ 'autocomplete' ] ) ): $output .= " autocomplete=" . $meta_field[ 'autocomplete' ] . " "; endif; $output .= '/>'; if ( isset( $meta_field[ 'adfoxly_validation_type' ] ) && ! empty( $meta_field[ 'adfoxly_validation_type' ] ) ) { $output .= '
'; if ( isset( $meta_field[ 'adfoxly_validation_text' ] ) && ! empty( $meta_field[ 'adfoxly_validation_text' ] ) ) { $output .= $meta_field[ 'adfoxly_validation_text' ]; } $output .= '
'; } } else { $output .= ''; } break; endswitch; if ( isset( $meta_field[ 'data-parsley-errors-container' ] ) && ! empty( $meta_field[ 'data-parsley-errors-container' ] ) ): $output .= '
'; endif; if ( isset( $meta_field[ 'help-block' ] ) && ! empty( $meta_field[ 'help-block' ] ) ) { $output .= '

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

'; } $output .= '
'; $output .= '
'; } break; endswitch; endif; return $output; } /** * @param $output * @param $meta_field * @param null $array * * @return string */ public function generate_options( $output, $meta_field, $array = null ) { // $view = new AdfoxlyWizardView(); // $view->generateOptions(); // exit(); if ( $meta_field['type'] === 'image_radio_label' ) { $output .= '
'; $output .= ''; $output .= '
'; $output .= '
'; } foreach ( $meta_field[ 'options' ] as $key => $field ) { switch ( $meta_field[ 'type' ] ): case "image_checkbox" || "image_radio" || "image_radio_label": $imageCheckbox = new wizardImageCheckbox(); $output = $imageCheckbox->render( $this->banner_data, $output, $meta_field, $key, $field, $array ); break; endswitch; } if ( $meta_field['type'] === 'image_radio_label' ) { $output .= '
'; $output .= '
'; $output .= '
'; } return $output; } }