PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.8.3
Advanced Ads – Ad Manager & AdSense v1.8.3
2.0.26 2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / admin / includes / class-menu.php
advanced-ads / admin / includes Last commit date
class-ad-groups-list.php 9 years ago class-ad-type.php 9 years ago class-licenses.php 9 years ago class-menu.php 9 years ago class-meta-box.php 9 years ago class-notices.php 9 years ago class-options.php 9 years ago class-overview-widgets.php 9 years ago class-settings.php 9 years ago class-shortcode-creator.php 9 years ago notices.php 9 years ago shortcode-creator-l10n.php 10 years ago
class-menu.php
231 lines
1 <?php
2 defined( 'ABSPATH' ) || exit;
3
4 class Advanced_Ads_Admin_Menu {
5 /**
6 * Instance of this class.
7 *
8 * @var object
9 */
10 protected static $instance = null;
11
12 /**
13 * Slug of the ad group page
14 *
15 * @since 1.0.0
16 * @var string
17 */
18 protected $ad_group_hook_suffix = null;
19
20 private function __construct() {
21 // Add menu items
22 add_action( 'admin_menu', array($this, 'add_plugin_admin_menu') );
23 add_action( 'admin_head', array( $this, 'highlight_menu_item' ) );
24
25 $this->plugin_slug = Advanced_Ads::get_instance()->get_plugin_slug();
26 $this->post_type = constant( 'Advanced_Ads::POST_TYPE_SLUG' );
27 }
28
29 /**
30 * Return an instance of this class.
31 *
32 * @return object A single instance of this class.
33 */
34 public static function get_instance() {
35 // If the single instance hasn't been set, set it now.
36 if ( null == self::$instance ) {
37 self::$instance = new self;
38 }
39
40 return self::$instance;
41 }
42
43 /**
44 * Register the administration menu for this plugin into the WordPress Dashboard menu.
45 *
46 * @since 1.0.0
47 */
48 public function add_plugin_admin_menu() {
49
50 // add main menu item with overview page
51 add_menu_page(
52 __( 'Overview', 'advanced-ads' ), 'Advanced Ads', Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface'), $this->plugin_slug, array($this, 'display_overview_page'), 'dashicons-chart-line', '58.74'
53 );
54
55 // forward Ads link to new-ad page when there is no ad existing yet.
56 // the target to post-new.php needs the extra "new" or any other attribute, since the original add-ad link was removed by CSS using the exact href attribute as a selector
57 $target = ( ! Advanced_Ads::get_number_of_ads() ) ? 'post-new.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG . '&new=new' : 'edit.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG;
58 add_submenu_page(
59 $this->plugin_slug, __( 'Ads', 'advanced-ads' ), __( 'Ads', 'advanced-ads' ), Advanced_Ads_Plugin::user_cap( 'advanced_ads_edit_ads'), $target
60 );
61
62 // hidden by css; not placed in 'options.php' in order to highlight the correct item, see the 'highlight_menu_item()'
63 if ( ! current_user_can( 'edit_posts' ) ) {
64 add_submenu_page(
65 $this->plugin_slug, __( 'Add New Ad', 'advanced-ads' ), __( 'New Ad', 'advanced-ads' ), Advanced_Ads_Plugin::user_cap( 'advanced_ads_edit_ads'), 'post-new.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG
66 );
67 }
68
69 $this->ad_group_hook_suffix = add_submenu_page(
70 $this->plugin_slug, __( 'Ad Groups', 'advanced-ads' ), __( 'Groups', 'advanced-ads' ), Advanced_Ads_Plugin::user_cap( 'advanced_ads_edit_ads'), $this->plugin_slug . '-groups', array($this, 'ad_group_admin_page')
71 );
72
73 // add placements page
74 add_submenu_page(
75 $this->plugin_slug, __( 'Ad Placements', 'advanced-ads' ), __( 'Placements', 'advanced-ads' ), Advanced_Ads_Plugin::user_cap( 'advanced_ads_manage_placements'), $this->plugin_slug . '-placements', array($this, 'display_placements_page')
76 );
77 // add settings page
78 Advanced_Ads_Admin::get_instance()->plugin_screen_hook_suffix = add_submenu_page(
79 $this->plugin_slug, __( 'Advanced Ads Settings', 'advanced-ads' ), __( 'Settings', 'advanced-ads' ), Advanced_Ads_Plugin::user_cap( 'advanced_ads_manage_options'), $this->plugin_slug . '-settings', array($this, 'display_plugin_settings_page')
80 );
81 // add support page
82 add_submenu_page(
83 $this->plugin_slug, __( 'Support', 'advanced-ads' ), __( 'Support', 'advanced-ads' ), Advanced_Ads_Plugin::user_cap( 'advanced_ads_manage_options'), $this->plugin_slug . '-support', array($this, 'display_support_page')
84 );
85
86 // allows extensions to insert sub menu pages
87 do_action( 'advanced-ads-submenu-pages', $this->plugin_slug );
88 }
89
90 /**
91 * Highlights the 'Advanced Ads->Ads' item in the menu when an ad edit page is open
92 * @see the 'parent_file' and the 'submenu_file' filters for reference
93 */
94 public function highlight_menu_item() {
95 global $parent_file, $submenu_file, $post_type;
96 if ( $post_type === $this->post_type ) {
97 $parent_file = $this->plugin_slug;
98 $submenu_file = 'edit.php?post_type=' . $this->post_type;
99 }
100 }
101
102 /**
103 * Render the overview page
104 *
105 * @since 1.2.2
106 */
107 public function display_overview_page() {
108
109 $screen = get_current_screen();
110
111 // set up overview widgets
112 Advanced_Ads_Overview_Widgets_Callbacks::setup_overview_widgets( $screen );
113
114 // convert from vertical order to horizontal
115 $screen->add_option( 'layout_columns', 1 );
116
117 include ADVADS_BASE_PATH . 'admin/views/overview.php';
118 }
119
120 /**
121 * Render the settings page
122 *
123 * @since 1.0.0
124 */
125 public function display_plugin_settings_page() {
126 include ADVADS_BASE_PATH . 'admin/views/settings.php';
127 }
128
129 /**
130 * Render the placements page
131 *
132 * @since 1.1.0
133 */
134 public function display_placements_page() {
135 $placement_types = Advanced_Ads_Placements::get_placement_types();
136 $placements = Advanced_Ads::get_ad_placements_array(); // -TODO use model
137 $items = Advanced_Ads_Placements::items_for_select();
138 // load ads and groups for select field
139
140 // display view
141 include ADVADS_BASE_PATH . 'admin/views/placements.php';
142 }
143
144 /**
145 * Render the support page
146 *
147 * @since 1.6.8.1
148 */
149 public function display_support_page() {
150
151 include ADVADS_BASE_PATH . 'admin/views/support.php';
152 }
153
154 /**
155 * Render the ad group page
156 *
157 * @since 1.0.0
158 */
159 public function ad_group_admin_page() {
160
161 $taxonomy = Advanced_Ads::AD_GROUP_TAXONOMY;
162 $post_type = Advanced_Ads::POST_TYPE_SLUG;
163 $tax = get_taxonomy( $taxonomy );
164
165 $action = Advanced_Ads_Admin::get_instance()->current_action();
166
167 // handle new and updated groups
168 if ( 'editedgroup' == $action ) {
169 $group_id = (int) $_POST['group_id'];
170 check_admin_referer( 'update-group_' . $group_id );
171
172 if ( ! current_user_can( $tax->cap->edit_terms ) ) {
173 wp_die( __( 'Sorry, you are not allowed to access this feature.', 'advanced-ads' ) ); }
174
175 // handle new groups
176 if ( 0 == $group_id ) {
177 $ret = wp_insert_term( $_POST['name'], $taxonomy, $_POST );
178 if ( $ret && ! is_wp_error( $ret ) ) {
179 $forced_message = 1; }
180 else {
181 $forced_message = 4; }
182 // handle group updates
183 } else {
184 $tag = get_term( $group_id, $taxonomy );
185 if ( ! $tag ) {
186 wp_die( __( 'You attempted to edit an ad group that doesn&#8217;t exist. Perhaps it was deleted?', 'advanced-ads' ) ); }
187
188 $ret = wp_update_term( $group_id, $taxonomy, $_POST );
189 if ( $ret && ! is_wp_error( $ret ) ) {
190 $forced_message = 3; }
191 else {
192 $forced_message = 5; }
193 }
194 // deleting items
195 } elseif ( $action == 'delete' ){
196 $group_id = (int) $_REQUEST['group_id'];
197 check_admin_referer( 'delete-tag_' . $group_id );
198
199 if ( ! current_user_can( $tax->cap->delete_terms ) ) {
200 wp_die( __( 'Sorry, you are not allowed to access this feature.', 'advanced-ads' ) ); }
201
202 wp_delete_term( $group_id, $taxonomy );
203
204 $forced_message = 2;
205 }
206
207 // handle views
208 switch ( $action ) {
209 case 'edit' :
210 $title = $tax->labels->edit_item;
211 if ( isset($_REQUEST['group_id']) ) {
212 $group_id = absint( $_REQUEST['group_id'] );
213 $tag = get_term( $group_id, $taxonomy, OBJECT, 'edit' );
214 } else {
215 $group_id = 0;
216 $tag = false;
217 }
218
219 include ADVADS_BASE_PATH . 'admin/views/ad-group-edit.php';
220 break;
221
222 default :
223 $title = $tax->labels->name;
224 $wp_list_table = _get_list_table( 'WP_Terms_List_Table' );
225
226 // load template
227 include ADVADS_BASE_PATH . 'admin/views/ad-group.php';
228 }
229 }
230
231 }