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 / Backend / Feature.php
advanced-access-manager / Application / Backend Last commit date
Feature 9 years ago View 9 years ago phtml 9 years ago Feature.php 9 years ago Filter.php 9 years ago Manager.php 9 years ago View.php 9 years ago
Feature.php
116 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 class AAM_Backend_Feature {
11
12 /**
13 * Collection of features
14 *
15 * @var array
16 *
17 * @access private
18 * @static
19 */
20 static private $_features = array();
21
22 /**
23 * Register UI Feature
24 *
25 * @param stdClass $feature
26 *
27 * @return boolean
28 *
29 * @access public
30 * @static
31 */
32 public static function registerFeature(stdClass $feature) {
33 $response = false;
34
35 if (empty($feature->capability)){
36 $cap = AAM_Core_Config::get('page.capability', 'administrator');
37 } else {
38 $cap = $feature->capability;
39 }
40
41 if (AAM::getUser()->hasCapability($cap)) {
42 self::$_features[] = $feature;
43 $response = true;
44 }
45
46 return $response;
47 }
48
49 /**
50 * Initiate the Controller
51 *
52 * @param stdClass $feature
53 *
54 * @return stdClass
55 *
56 * @access public
57 * @static
58 */
59 public static function initView(stdClass $feature){
60 if (is_string($feature->view)){
61 $feature->view = new $feature->view;
62 }
63
64 return $feature;
65 }
66
67 /**
68 * Retrieve list of features
69 *
70 * Retrieve sorted list of featured based on current subject
71 *
72 * @return array
73 *
74 * @access public
75 * @static
76 */
77 public static function retriveList() {
78 $response = array();
79
80 $subject = AAM_Backend_View::getSubject();
81 foreach (self::$_features as $feature) {
82 if (in_array(get_class($subject), $feature->subjects)) {
83 $response[] = self::initView($feature);
84 }
85 }
86 usort($response, 'AAM_Backend_Feature::reorder');
87
88 return $response;
89 }
90
91 /**
92 * Order list of features or subjectes
93 *
94 * Reorganize the list based on "position" attribute
95 *
96 * @param array $features
97 *
98 * @return array
99 *
100 * @access public
101 * @static
102 */
103 public static function reorder($feature_a, $feature_b){
104 $pos_a = (empty($feature_a->position) ? 9999 : $feature_a->position);
105 $pos_b = (empty($feature_b->position) ? 9999 : $feature_b->position);
106
107 if ($pos_a == $pos_b){
108 $response = 0;
109 } else {
110 $response = ($pos_a < $pos_b ? -1 : 1);
111 }
112
113 return $response;
114 }
115
116 }