notices
6 years ago
ad-conditions-string-operators.php
7 years ago
ad-display-metabox.php
6 years ago
ad-group-edit.php
7 years ago
ad-group-list-ads.php
7 years ago
ad-group-list-form-row.php
6 years ago
ad-group-list-header.php
7 years ago
ad-group-list-row.php
7 years ago
ad-group.php
6 years ago
ad-info-after-textarea.php
7 years ago
ad-info-bottom.php
6 years ago
ad-info-top.php
7 years ago
ad-info.php
7 years ago
ad-list-details-column.php
7 years ago
ad-list-filters.php
6 years ago
ad-list-no-ads.php
7 years ago
ad-list-shortcode-column.php
7 years ago
ad-list-timing-column.php
7 years ago
ad-main-metabox.php
6 years ago
ad-output-metabox.php
6 years ago
ad-parameters-metabox.php
6 years ago
ad-parameters-size.php
7 years ago
ad-submitbox-meta.php
7 years ago
ad-visitor-metabox.php
6 years ago
checks.php
6 years ago
feedback-disable.php
6 years ago
gadsense-dashboard.php
6 years ago
index.php
7 years ago
overview-addons-line.php
7 years ago
overview-notice-row.php
6 years ago
overview-notices.php
6 years ago
overview-widget.php
6 years ago
overview.php
6 years ago
pitch-bundle.php
7 years ago
pitch-pro-tab.php
7 years ago
pitch-tracking.php
7 years ago
placement-injection-top.php
7 years ago
placements-ad-label-position.php
7 years ago
placements-ad-label.php
7 years ago
placements-content-index.php
7 years ago
placements-item.php
6 years ago
placements.php
6 years ago
post-ad-settings-metabox.php
6 years ago
setting-disable-post-types.php
6 years ago
setting-license.php
6 years ago
setting-target.php
7 years ago
settings-disable-ads.php
6 years ago
settings.php
6 years ago
support-callout.php
6 years ago
support.php
7 years ago
settings.php
149 lines
| 1 | <?php |
| 2 | /** |
| 3 | * the view for the settings page |
| 4 | */ |
| 5 | |
| 6 | // array with setting tabs for frontend |
| 7 | $setting_tabs = apply_filters( |
| 8 | 'advanced-ads-setting-tabs', array( |
| 9 | 'general' => array( |
| 10 | 'page' => Advanced_Ads_Admin::get_instance()->plugin_screen_hook_suffix, |
| 11 | 'group' => ADVADS_SLUG, |
| 12 | 'tabid' => 'general', |
| 13 | 'title' => __( 'General', 'advanced-ads' ), |
| 14 | ), |
| 15 | ) |
| 16 | ); |
| 17 | ?><div class="wrap"> |
| 18 | <h1><?php echo esc_html( get_admin_page_title() ); ?></h1> |
| 19 | <?php Advanced_Ads_Checks::show_issues(); ?> |
| 20 | |
| 21 | <?php settings_errors(); ?> |
| 22 | <div class="nav-tab-wrapper" id="advads-tabs"> |
| 23 | <?php foreach ( $setting_tabs as $_setting_tab_id => $_setting_tab ) : ?> |
| 24 | <a class="nav-tab" id="<?php echo $_setting_tab_id; ?>-tab" |
| 25 | href="#top#<?php echo $_setting_tab_id; ?>"><?php echo $_setting_tab['title']; ?></a> |
| 26 | <?php endforeach; ?> |
| 27 | <a class="nav-tab" id="support-tab" |
| 28 | href="#top#support"><?php _e( 'Support', 'advanced-ads' ); ?></a> |
| 29 | </div> |
| 30 | <?php foreach ( $setting_tabs as $_setting_tab_id => $_setting_tab ) : ?> |
| 31 | <div id="<?php echo $_setting_tab_id; ?>" class="advads-tab"> |
| 32 | <div id="advads-sub-menu-<?php echo $_setting_tab_id; ?>" class="advads-tab-sub-menu"></div> |
| 33 | <form class="advads-settings-tab-main-form" method="post" action="options.php"> |
| 34 | <?php |
| 35 | if ( isset( $_setting_tab['group'] ) ) { |
| 36 | settings_fields( $_setting_tab['group'] ); |
| 37 | } |
| 38 | do_settings_sections( $_setting_tab['page'] ); |
| 39 | |
| 40 | do_action( 'advanced-ads-settings-form', $_setting_tab_id, $_setting_tab ); |
| 41 | if ( isset( $_setting_tab['group'] ) && 'advanced-ads-licenses' !== $_setting_tab['group'] ) { |
| 42 | submit_button( __( 'Save settings on this page', 'advanced-ads' ) ); |
| 43 | } |
| 44 | ?> |
| 45 | </form> |
| 46 | <?php do_action( 'advanced-ads-settings-tab-after-form', $_setting_tab_id, $_setting_tab ); ?> |
| 47 | <?php if ( 'general' === $_setting_tab_id ) : ?> |
| 48 | <ul> |
| 49 | <li><a href="<?php echo esc_url( admin_url( 'admin.php?page=advanced-ads-import-export' ) ); ?>"><?php _e( 'Import & Export', 'advanced-ads' ); ?></a></li> |
| 50 | </ul> |
| 51 | <?php endif; ?> |
| 52 | </div> |
| 53 | <?php endforeach; ?> |
| 54 | <div id="support" class="advads-tab"> |
| 55 | <?php require_once ADVADS_BASE_PATH . 'admin/views/support.php'; ?> |
| 56 | </div> |
| 57 | <?php |
| 58 | do_action( 'advanced-ads-additional-settings-form' ); |
| 59 | // print the filesystem credentials modal if needed |
| 60 | Advanced_Ads_Filesystem::get_instance()->print_request_filesystem_credentials_modal(); |
| 61 | ?> |
| 62 | |
| 63 | </div> |
| 64 | <script> |
| 65 | /** |
| 66 | * There are two formats of URL supported: |
| 67 | * admin.php?page=advanced-ads-settings#top#tab_id go to the `tab_id` |
| 68 | * admin.php?page=advanced-ads-settings#tab_id__anchor go to the `tab_id`, scroll to the `anchor` |
| 69 | */ |
| 70 | |
| 71 | /** |
| 72 | * Extract the active tab and anchor from the URL. |
| 73 | */ |
| 74 | function advads_extract_tab( url ) { |
| 75 | var hash_parts = url.replace( '#top#', '' ).replace( '#', '' ).split( '__' ); |
| 76 | |
| 77 | return { |
| 78 | 'tab': hash_parts[0] || jQuery( '.advads-tab' ).attr( 'id' ), |
| 79 | 'anchor': hash_parts[1] |
| 80 | } |
| 81 | } |
| 82 | |
| 83 | /** |
| 84 | * Set the active tab and optionally scroll to the anchor. |
| 85 | */ |
| 86 | function advads_set_tab( tab ) { |
| 87 | jQuery( '#advads-tabs' ).find( 'a' ).removeClass( 'nav-tab-active' ); |
| 88 | jQuery( '.advads-tab' ).removeClass( 'active' ); |
| 89 | |
| 90 | jQuery( '#' + tab.tab ).addClass( 'active' ); |
| 91 | jQuery( '#' + tab.tab + '-tab' ).addClass( 'nav-tab-active' ); |
| 92 | |
| 93 | if ( tab.anchor ) { |
| 94 | var anchor_offset = document.getElementById( tab.anchor ).getBoundingClientRect().top; |
| 95 | var admin_bar = 48; |
| 96 | window.scrollTo( 0, anchor_offset + window.scrollY - admin_bar ); |
| 97 | } |
| 98 | } |
| 99 | |
| 100 | // menu tabs |
| 101 | jQuery( '#advads-tabs' ).find( 'a' ).click(function () { |
| 102 | var url = jQuery( this ).attr( 'href' ); |
| 103 | var tab = advads_extract_tab( url ); |
| 104 | advads_set_tab( tab ); |
| 105 | }); |
| 106 | |
| 107 | // While user is already on the Settings page, find links (in admin menu, |
| 108 | // in the Checks at the top, in the notices at the top) to particular setting tabs and open them on click. |
| 109 | jQuery( document ).on( 'click', 'a[href*="page=advanced-ads-settings"]:not(.nav-tab)', function() { |
| 110 | // Already on the Settings page, so set the new tab. |
| 111 | // Extract the tab id from the url. |
| 112 | var url = jQuery( this ).attr( 'href' ).split( 'advanced-ads-settings' )[1]; |
| 113 | var tab = advads_extract_tab( url ); |
| 114 | advads_set_tab( tab ); |
| 115 | }); |
| 116 | |
| 117 | // activate specific or first tab |
| 118 | |
| 119 | var active_tab = advads_extract_tab( window.location.hash ); |
| 120 | advads_set_tab( active_tab ); |
| 121 | |
| 122 | // set all tab urls |
| 123 | advads_set_tab_hashes(); |
| 124 | |
| 125 | // dynamically generate the sub-menu |
| 126 | jQuery( '.advads-tab-sub-menu' ).each( function( key, e ){ |
| 127 | // abort if scrollIntoView is not supported; we can’t use anchors because they are used for tabs already |
| 128 | if (typeof e.scrollIntoView !== "function") { return; }; |
| 129 | // get all h2 headlines |
| 130 | advads_settings_parent_tab = jQuery( e ).parent( '.advads-tab'); |
| 131 | var headlines = advads_settings_parent_tab.find( 'h2' ); |
| 132 | // create list |
| 133 | if( headlines.length ){ |
| 134 | advads_submenu_list = jQuery('<ul>'); |
| 135 | headlines.each( function( key, h ){ |
| 136 | // create anchor for this headline |
| 137 | var headline_id = 'advads-tab-headline-' + advads_settings_parent_tab.attr( 'id' ) + key; |
| 138 | jQuery( h ).attr( 'id', headline_id ); |
| 139 | // place the link in the top menu |
| 140 | var text = text = h.textContent || h.innerText; |
| 141 | jQuery( '<li><a onclick="document.getElementById(\'' + headline_id + '\').scrollIntoView()">' + text + '</a></li>' ).appendTo( advads_submenu_list ); |
| 142 | }); |
| 143 | // place the menu |
| 144 | advads_submenu_list.appendTo( e ); |
| 145 | } |
| 146 | }); |
| 147 | |
| 148 | </script> |
| 149 |