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