PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 4.0
Advanced Access Manager – Access Governance for WordPress v4.0
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / Application / Core / Object / Metabox.php
advanced-access-manager / Application / Core / Object Last commit date
Capability.php 9 years ago LoginRedirect.php 9 years ago Menu.php 9 years ago Metabox.php 9 years ago Post.php 9 years ago Redirect.php 9 years ago Teaser.php 9 years ago
Metabox.php
158 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * Metabox object
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Core_Object_Metabox extends AAM_Core_Object {
17
18 /**
19 * Constructor
20 *
21 * @param AAM_Core_Subject $subject
22 *
23 * @return void
24 *
25 * @access public
26 */
27 public function __construct(AAM_Core_Subject $subject) {
28 parent::__construct($subject);
29
30 $option = $this->getSubject()->readOption('metabox');
31
32 if (empty($option)) {
33 $option = $this->getSubject()->inheritFromParent('metabox');
34 } else {
35 $this->setOverwritten(true);
36 }
37
38 $this->setOption($option);
39 }
40
41 /**
42 *
43 * @global type $wp_registered_widgets
44 * @param type $sidebar_widgets
45 * @return type
46 */
47 public function filterFrontend($sidebar_widgets) {
48 global $wp_registered_widgets;
49
50 if (is_array($wp_registered_widgets)) {
51 foreach ($wp_registered_widgets as $id => $widget) {
52 $callback = $this->getWidgetCallback($widget);
53 if ($this->has('widgets', $callback)) {
54 unregister_widget($callback);
55 //remove it from registered widget global var!!
56 //INFORM: Why Unregister Widget does not clear global var?
57 unset($wp_registered_widgets[$id]);
58 }
59 }
60 }
61
62 return $sidebar_widgets;
63 }
64
65 /**
66 *
67 * @param type $widget
68 * @return type
69 */
70 protected function getWidgetCallback($widget) {
71 if (is_object($widget['callback'][0])) {
72 $callback = get_class($widget['callback'][0]);
73 } elseif (is_string($widget['callback'][0])) {
74 $callback = $widget['callback'][0];
75 } else {
76 $callback = null;
77 }
78
79 return $callback;
80 }
81
82 /**
83 *
84 * @global type $wp_meta_boxes
85 * @param type $screen
86 */
87 public function filterBackend($screen) {
88 global $wp_meta_boxes;
89
90 if (is_array($wp_meta_boxes)) {
91 foreach ($wp_meta_boxes as $screen_id => $zones) {
92 if ($screen == $screen_id) {
93 $this->filterZones($zones, $screen_id);
94 }
95 }
96 }
97 }
98
99 /**
100 *
101 * @param type $zones
102 * @param type $screen_id
103 */
104 protected function filterZones($zones, $screen_id) {
105 foreach ($zones as $zone => $priorities) {
106 foreach ($priorities as $metaboxes) {
107 $this->filterMetaboxes($zone, $metaboxes, $screen_id);
108 }
109 }
110 }
111
112 /**
113 *
114 * @param type $zone
115 * @param type $metaboxes
116 * @param type $screen_id
117 */
118 protected function filterMetaboxes($zone, $metaboxes, $screen_id) {
119 foreach (array_keys($metaboxes) as $metabox) {
120 if ($this->has($screen_id, $metabox)) {
121 remove_meta_box($metabox, $screen_id, $zone);
122 }
123 }
124 }
125
126 /**
127 * @inheritdoc
128 */
129 public function save($metabox, $granted) {
130 $param = explode('|', $metabox);
131 $option = $this->getOption();
132
133 $option[$param[0]][$param[1]] = $granted;
134
135 return $this->getSubject()->updateOption($option, 'metabox');
136 }
137
138 /**
139 *
140 */
141 public function reset() {
142 return $this->getSubject()->deleteOption('metabox');
143 }
144
145
146 /**
147 *
148 * @param type $screen
149 * @param type $metabox
150 * @return type
151 */
152 public function has($screen, $metabox) {
153 $options = $this->getOption();
154
155 return !empty($options[$screen][$metabox]);
156 }
157
158 }