Version Description
- Integrated User Switch with AAM
- Fixed bugs reported by WP Error Fix
- Removed intro message
- Improved AAM speed
- Updated AAM Utilities extension
- Updated AAM Plus Package extension
- Added new AAM Skeleton Extension for developers
Download this release
Release Info
Developer | vasyl_m |
Plugin | Advanced Access Manager |
Version | 3.1 |
Comparing to | |
See all releases |
Code changes from version 3.0 to 3.1
- Application/Backend/Capability.php +47 -9
- Application/Backend/Extension.php +17 -3
- Application/Backend/Filter.php +12 -11
- Application/Backend/Localization.php +9 -0
- Application/Backend/Manager.php +65 -9
- Application/Backend/Menu.php +24 -2
- Application/Backend/Metabox.php +22 -0
- Application/Backend/Post.php +48 -18
- Application/Backend/ProductList.php +80 -0
- Application/Backend/User.php +11 -1
- Application/Backend/View.php +31 -18
- Application/Backend/view/extension.phtml +98 -133
- Application/Backend/view/index.phtml +251 -264
- Application/Backend/view/main-panel.phtml +20 -17
- Application/Backend/view/object/capability.phtml +51 -48
- Application/Backend/view/object/menu.phtml +62 -49
- Application/Backend/view/object/metabox.phtml +60 -49
- Application/Backend/view/object/post.phtml +193 -132
- Application/Backend/view/partial/post-type.phtml +9 -6
- Application/Backend/view/partial/term-type.phtml +9 -6
- Application/Core/API.php +24 -3
- Application/Core/Object.php +52 -1
- Application/Core/Object/Menu.php +8 -0
- Application/Core/Object/Metabox.php +9 -0
- Application/Core/Object/Post.php +58 -23
- Application/Core/Repository.php +60 -19
- Application/Core/Server.php +4 -5
- Application/Core/Subject.php +35 -9
- Application/Core/Subject/Role.php +27 -28
- Application/Core/Subject/User.php +25 -2
- Application/Core/Subject/Visitor.php +3 -15
- Application/Frontend/Manager.php +21 -17
- Lang/{en_US.mo → advanced-access-manager-en_US.mo} +0 -0
- Lang/{en_US.po → advanced-access-manager-en_US.po} +373 -256
- Lang/advanced-access-manager.pot +372 -255
- aam.php +25 -21
- media/css/aam.css +106 -57
- media/css/datatables.min.css +10 -3
- media/font/fontello.eot +0 -0
- media/font/fontello.svg +3 -0
- media/font/fontello.ttf +0 -0
- media/font/fontello.woff +0 -0
- media/js/aam-hook.js +1 -1
- media/js/aam-ui.js +293 -130
- media/js/aam.js +51 -49
- readme.txt +78 -2
- screenshot-1.png +0 -0
- screenshot-2.png +0 -0
- screenshot-3.png +0 -0
- screenshot-4.png +0 -0
- screenshot-5.png +0 -0
Application/Backend/Capability.php
CHANGED
@@ -75,20 +75,57 @@ class AAM_Backend_Capability {
|
|
75 |
if ($subject instanceof AAM_Core_Subject_Role) {
|
76 |
$response['data'] = $this->retrieveAllCaps();
|
77 |
} else {
|
78 |
-
$
|
79 |
-
$role = AAM_Core_API::getRoles()->get_role(array_shift($role_list));
|
80 |
-
foreach (array_keys($role->capabilities) as $cap) {
|
81 |
$response['data'][] = array(
|
82 |
$cap,
|
83 |
$this->getGroup($cap),
|
84 |
AAM_Backend_Helper::getHumanText($cap),
|
85 |
-
|
86 |
);
|
87 |
}
|
88 |
}
|
89 |
|
90 |
return json_encode($response);
|
91 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
|
93 |
/**
|
94 |
*
|
@@ -98,16 +135,17 @@ class AAM_Backend_Capability {
|
|
98 |
$caps = $response = array();
|
99 |
|
100 |
foreach (AAM_Core_API::getRoles()->role_objects as $role) {
|
101 |
-
|
|
|
|
|
102 |
}
|
103 |
|
104 |
-
$subject = AAM_Backend_View::getSubject();
|
105 |
foreach (array_keys($caps) as $cap) {
|
106 |
$response[] = array(
|
107 |
$cap,
|
108 |
$this->getGroup($cap),
|
109 |
AAM_Backend_Helper::getHumanText($cap),
|
110 |
-
|
111 |
);
|
112 |
}
|
113 |
|
@@ -125,7 +163,7 @@ class AAM_Backend_Capability {
|
|
125 |
return apply_filters('aam-capability-groups-filter', array(
|
126 |
__('System', AAM_KEY),
|
127 |
__('Posts & Pages', AAM_KEY),
|
128 |
-
__('Backend
|
129 |
__('Miscellaneous', AAM_KEY)
|
130 |
));
|
131 |
}
|
@@ -166,7 +204,7 @@ class AAM_Backend_Capability {
|
|
166 |
} elseif (in_array($capability, $this->_groups['post'])) {
|
167 |
$response = __('Posts & Pages', AAM_KEY);
|
168 |
} elseif (in_array($capability, $this->_groups['backend'])) {
|
169 |
-
$response = __('Backend
|
170 |
} else {
|
171 |
$response = __('Miscellaneous', AAM_KEY);
|
172 |
}
|
75 |
if ($subject instanceof AAM_Core_Subject_Role) {
|
76 |
$response['data'] = $this->retrieveAllCaps();
|
77 |
} else {
|
78 |
+
foreach ($this->getCapabilityList($subject) as $cap) {
|
|
|
|
|
79 |
$response['data'][] = array(
|
80 |
$cap,
|
81 |
$this->getGroup($cap),
|
82 |
AAM_Backend_Helper::getHumanText($cap),
|
83 |
+
$this->prepareActionList($cap)
|
84 |
);
|
85 |
}
|
86 |
}
|
87 |
|
88 |
return json_encode($response);
|
89 |
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
*
|
93 |
+
* @param AAM_Core_Subject_User $subject
|
94 |
+
* @return type
|
95 |
+
*/
|
96 |
+
protected function getCapabilityList(AAM_Core_Subject_User $subject) {
|
97 |
+
$list = array();
|
98 |
+
|
99 |
+
//IMPORTANT! Cause it is possible that user is not assigned to any role
|
100 |
+
$roles = $subject->roles;
|
101 |
+
|
102 |
+
if (is_array($roles)) {
|
103 |
+
foreach($roles as $slug) {
|
104 |
+
$role = AAM_Core_API::getRoles()->get_role($slug);
|
105 |
+
if ($role) {
|
106 |
+
$list = array_keys($role->capabilities);
|
107 |
+
break;
|
108 |
+
}
|
109 |
+
}
|
110 |
+
}
|
111 |
+
return $list;
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
*
|
116 |
+
* @param type $cap
|
117 |
+
* @return type
|
118 |
+
*/
|
119 |
+
protected function prepareActionList($cap) {
|
120 |
+
$subject = AAM_Backend_View::getSubject();
|
121 |
+
$actions = array();
|
122 |
+
|
123 |
+
$actions[] = ($subject->hasCapability($cap) ? 'checked' : 'unchecked');
|
124 |
+
|
125 |
+
return implode(
|
126 |
+
',', apply_filters('aam-cap-row-actions-filter', $actions, $subject)
|
127 |
+
);
|
128 |
+
}
|
129 |
|
130 |
/**
|
131 |
*
|
135 |
$caps = $response = array();
|
136 |
|
137 |
foreach (AAM_Core_API::getRoles()->role_objects as $role) {
|
138 |
+
if (is_array($role->capabilities)) {
|
139 |
+
$caps = array_merge($caps, $role->capabilities);
|
140 |
+
}
|
141 |
}
|
142 |
|
|
|
143 |
foreach (array_keys($caps) as $cap) {
|
144 |
$response[] = array(
|
145 |
$cap,
|
146 |
$this->getGroup($cap),
|
147 |
AAM_Backend_Helper::getHumanText($cap),
|
148 |
+
$this->prepareActionList($cap)
|
149 |
);
|
150 |
}
|
151 |
|
163 |
return apply_filters('aam-capability-groups-filter', array(
|
164 |
__('System', AAM_KEY),
|
165 |
__('Posts & Pages', AAM_KEY),
|
166 |
+
__('Backend', AAM_KEY),
|
167 |
__('Miscellaneous', AAM_KEY)
|
168 |
));
|
169 |
}
|
204 |
} elseif (in_array($capability, $this->_groups['post'])) {
|
205 |
$response = __('Posts & Pages', AAM_KEY);
|
206 |
} elseif (in_array($capability, $this->_groups['backend'])) {
|
207 |
+
$response = __('Backend', AAM_KEY);
|
208 |
} else {
|
209 |
$response = __('Miscellaneous', AAM_KEY);
|
210 |
}
|
Application/Backend/Extension.php
CHANGED
@@ -31,6 +31,17 @@ class AAM_Backend_Extension {
|
|
31 |
return $content;
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* Install an extension
|
36 |
*
|
@@ -147,7 +158,7 @@ class AAM_Backend_Extension {
|
|
147 |
'uid' => 'extension',
|
148 |
'position' => 999,
|
149 |
'title' => __('Extensions', AAM_KEY),
|
150 |
-
'notification' => self::
|
151 |
'subjects' => array(
|
152 |
'AAM_Core_Subject_Role',
|
153 |
'AAM_Core_Subject_User',
|
@@ -161,11 +172,14 @@ class AAM_Backend_Extension {
|
|
161 |
*
|
162 |
* @return int
|
163 |
*/
|
164 |
-
protected static function
|
165 |
-
$list = AAM_Core_API::getOption('aam-extension-
|
166 |
$repo = AAM_Core_Repository::getInstance();
|
167 |
$count = 0;
|
168 |
|
|
|
|
|
|
|
169 |
foreach($list as $extension) {
|
170 |
$status = $repo->extensionStatus($extension->title);
|
171 |
if ($status == AAM_Core_Repository::STATUS_UPDATE) {
|
31 |
return $content;
|
32 |
}
|
33 |
|
34 |
+
/**
|
35 |
+
* Get Product List
|
36 |
+
*
|
37 |
+
* @return array
|
38 |
+
*
|
39 |
+
* @access protected
|
40 |
+
*/
|
41 |
+
protected function getProductList() {
|
42 |
+
return require(dirname(__FILE__) . '/ProductList.php');
|
43 |
+
}
|
44 |
+
|
45 |
/**
|
46 |
* Install an extension
|
47 |
*
|
158 |
'uid' => 'extension',
|
159 |
'position' => 999,
|
160 |
'title' => __('Extensions', AAM_KEY),
|
161 |
+
'notification' => self::getNotification(),
|
162 |
'subjects' => array(
|
163 |
'AAM_Core_Subject_Role',
|
164 |
'AAM_Core_Subject_User',
|
172 |
*
|
173 |
* @return int
|
174 |
*/
|
175 |
+
protected static function getNotification() {
|
176 |
+
$list = AAM_Core_API::getOption('aam-extension-repository', array());
|
177 |
$repo = AAM_Core_Repository::getInstance();
|
178 |
$count = 0;
|
179 |
|
180 |
+
//WP Error Fix bug report
|
181 |
+
$list = (is_array($list) ? $list : array());
|
182 |
+
|
183 |
foreach($list as $extension) {
|
184 |
$status = $repo->extensionStatus($extension->title);
|
185 |
if ($status == AAM_Core_Repository::STATUS_UPDATE) {
|
Application/Backend/Filter.php
CHANGED
@@ -121,15 +121,12 @@ class AAM_Backend_Filter {
|
|
121 |
unset($actions['inline hide-if-no-js']);
|
122 |
}
|
123 |
}
|
124 |
-
//filter trash menu
|
125 |
-
if ($object->has('backend.trash')) {
|
126 |
-
if (isset($actions['trash'])) {
|
127 |
-
unset($actions['trash']);
|
128 |
-
}
|
129 |
-
}
|
130 |
|
131 |
//filter delete menu
|
132 |
if ($object->has('backend.delete')) {
|
|
|
|
|
|
|
133 |
if (isset($actions['delete'])) {
|
134 |
unset($actions['delete']);
|
135 |
}
|
@@ -235,11 +232,15 @@ class AAM_Backend_Filter {
|
|
235 |
*/
|
236 |
public function thePosts($posts) {
|
237 |
$filtered = array();
|
238 |
-
|
239 |
-
|
240 |
-
$
|
241 |
-
|
242 |
-
|
|
|
|
|
|
|
|
|
243 |
}
|
244 |
}
|
245 |
|
121 |
unset($actions['inline hide-if-no-js']);
|
122 |
}
|
123 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
|
125 |
//filter delete menu
|
126 |
if ($object->has('backend.delete')) {
|
127 |
+
if (isset($actions['trash'])) {
|
128 |
+
unset($actions['trash']);
|
129 |
+
}
|
130 |
if (isset($actions['delete'])) {
|
131 |
unset($actions['delete']);
|
132 |
}
|
232 |
*/
|
233 |
public function thePosts($posts) {
|
234 |
$filtered = array();
|
235 |
+
|
236 |
+
if (AAM::isAAM()) { //skip post filtering if this is AAM page
|
237 |
+
$filtered = $posts;
|
238 |
+
} else {
|
239 |
+
foreach ($posts as $post) {
|
240 |
+
$object = AAM::getUser()->getObject('post', $post->ID);
|
241 |
+
if (!$object->has('backend.list')) {
|
242 |
+
$filtered[] = $post;
|
243 |
+
}
|
244 |
}
|
245 |
}
|
246 |
|
Application/Backend/Localization.php
CHANGED
@@ -40,6 +40,15 @@ return array(
|
|
40 |
'Anonymous' => __('Anonymous', AAM_KEY),
|
41 |
'Current user' => __('Current user', AAM_KEY),
|
42 |
'Current role' => __('Current role', AAM_KEY),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
'Javascript error detected during the page load. AAM may not function properly.' => __('Javascript error detected during the page load. AAM may not function properly.', AAM_KEY),
|
44 |
'Failed to grand capability - WordPress policy' => __('Failed to grand capability - WordPress policy', AAM_KEY),
|
45 |
);
|
40 |
'Anonymous' => __('Anonymous', AAM_KEY),
|
41 |
'Current user' => __('Current user', AAM_KEY),
|
42 |
'Current role' => __('Current role', AAM_KEY),
|
43 |
+
'Manage Access' => __('Manage Access', AAM_KEY),
|
44 |
+
'Edit' => __('Edit', AAM_KEY),
|
45 |
+
'Manage Role' => __('Manage Role', AAM_KEY),
|
46 |
+
'Edit Role Name' => __('Edit Role Name', AAM_KEY),
|
47 |
+
'Delete Role' => __('Delete Role', AAM_KEY),
|
48 |
+
'Manage User' => __('Manage User', AAM_KEY),
|
49 |
+
'Edit User' => __('Edit User', AAM_KEY),
|
50 |
+
'Lock User' => __('Lock User', AAM_KEY),
|
51 |
+
'Unlock User' => __('Unlock User', AAM_KEY),
|
52 |
'Javascript error detected during the page load. AAM may not function properly.' => __('Javascript error detected during the page load. AAM may not function properly.', AAM_KEY),
|
53 |
'Failed to grand capability - WordPress policy' => __('Failed to grand capability - WordPress policy', AAM_KEY),
|
54 |
);
|
Application/Backend/Manager.php
CHANGED
@@ -43,7 +43,7 @@ class AAM_Backend_Manager {
|
|
43 |
//manager AAM Ajax Requests
|
44 |
add_action('wp_ajax_aam', array($this, 'ajax'));
|
45 |
//manager AAM Features Content rendering
|
46 |
-
add_action('
|
47 |
//manager user search and authentication control
|
48 |
add_filter('user_search_columns', array($this, 'searchColumns'));
|
49 |
//manage access action to the user list
|
@@ -51,9 +51,14 @@ class AAM_Backend_Manager {
|
|
51 |
|
52 |
//check extension version
|
53 |
$this->checkExtensionList();
|
|
|
|
|
|
|
54 |
|
55 |
//register backend hooks and filters
|
56 |
-
|
|
|
|
|
57 |
}
|
58 |
|
59 |
/**
|
@@ -69,7 +74,7 @@ class AAM_Backend_Manager {
|
|
69 |
public function enqueueScript() {
|
70 |
if (AAM::isAAM()) {
|
71 |
echo "<script type=\"text/javascript\">\n";
|
72 |
-
echo file_get_contents(
|
73 |
echo "</script>\n";
|
74 |
}
|
75 |
}
|
@@ -78,9 +83,12 @@ class AAM_Backend_Manager {
|
|
78 |
*
|
79 |
*/
|
80 |
protected function checkExtensionList() {
|
81 |
-
$list = AAM_Core_API::getOption('aam-extension-
|
82 |
$repo = AAM_Core_Repository::getInstance();
|
83 |
|
|
|
|
|
|
|
84 |
foreach($list as $extension) {
|
85 |
$status = $repo->extensionStatus($extension->title);
|
86 |
if ($status == AAM_Core_Repository::STATUS_UPDATE) {
|
@@ -92,6 +100,53 @@ class AAM_Backend_Manager {
|
|
92 |
);
|
93 |
}
|
94 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
}
|
96 |
|
97 |
/**
|
@@ -122,10 +177,12 @@ class AAM_Backend_Manager {
|
|
122 |
* @access public
|
123 |
*/
|
124 |
public function userActions($actions, $user) {
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
|
|
|
|
129 |
|
130 |
return $actions;
|
131 |
}
|
@@ -175,7 +232,6 @@ class AAM_Backend_Manager {
|
|
175 |
'name'=> $subject->name,
|
176 |
'blog' => get_current_blog_id()
|
177 |
),
|
178 |
-
'welcome' => AAM_Core_API::getOption('aam-welcome', 1),
|
179 |
'translation' => require (dirname(__FILE__) . '/Localization.php')
|
180 |
));
|
181 |
}
|
43 |
//manager AAM Ajax Requests
|
44 |
add_action('wp_ajax_aam', array($this, 'ajax'));
|
45 |
//manager AAM Features Content rendering
|
46 |
+
add_action('admin_action_aamc', array($this, 'renderContent'));
|
47 |
//manager user search and authentication control
|
48 |
add_filter('user_search_columns', array($this, 'searchColumns'));
|
49 |
//manage access action to the user list
|
51 |
|
52 |
//check extension version
|
53 |
$this->checkExtensionList();
|
54 |
+
|
55 |
+
//check cache status
|
56 |
+
$this->checkCacheStatus();
|
57 |
|
58 |
//register backend hooks and filters
|
59 |
+
if (apply_filters('aam-utility-property', 'backend-access-control', true)) {
|
60 |
+
AAM_Backend_Filter::register();
|
61 |
+
}
|
62 |
}
|
63 |
|
64 |
/**
|
74 |
public function enqueueScript() {
|
75 |
if (AAM::isAAM()) {
|
76 |
echo "<script type=\"text/javascript\">\n";
|
77 |
+
echo file_get_contents(AAM_BASE . '/media/js/aam-hook.js');
|
78 |
echo "</script>\n";
|
79 |
}
|
80 |
}
|
83 |
*
|
84 |
*/
|
85 |
protected function checkExtensionList() {
|
86 |
+
$list = AAM_Core_API::getOption('aam-extension-repository', array());
|
87 |
$repo = AAM_Core_Repository::getInstance();
|
88 |
|
89 |
+
//WP Error Fix bug report
|
90 |
+
$list = (is_array($list) ? $list : array());
|
91 |
+
|
92 |
foreach($list as $extension) {
|
93 |
$status = $repo->extensionStatus($extension->title);
|
94 |
if ($status == AAM_Core_Repository::STATUS_UPDATE) {
|
100 |
);
|
101 |
}
|
102 |
}
|
103 |
+
|
104 |
+
//TODO - Remove in Feb 2016
|
105 |
+
$this->checkRedundantExtensions();
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* @todo Remove in Feb 2016
|
110 |
+
*/
|
111 |
+
protected function checkRedundantExtensions() {
|
112 |
+
$basedir = AAM_Core_Repository::getInstance()->getBasedir();
|
113 |
+
|
114 |
+
//iterate through each active extension and load it
|
115 |
+
if (file_exists($basedir)) {
|
116 |
+
foreach (scandir($basedir) as $extension) {
|
117 |
+
if (!in_array($extension, array('.', '..'))) {
|
118 |
+
if (!preg_match('/^[a-z]{1}[a-z\-]+$/', $extension)) {
|
119 |
+
AAM_Core_Console::add(
|
120 |
+
sprintf(
|
121 |
+
AAM_Backend_Helper::preparePhrase('Please manually remove [%s] and re-install the extension if necessary', 'b'),
|
122 |
+
$basedir . '/' . $extension
|
123 |
+
)
|
124 |
+
);
|
125 |
+
}
|
126 |
+
}
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Check caching status
|
133 |
+
*
|
134 |
+
* If caching is off, show notification about it
|
135 |
+
*
|
136 |
+
* @return void
|
137 |
+
*
|
138 |
+
* @access protected
|
139 |
+
*/
|
140 |
+
protected function checkCacheStatus() {
|
141 |
+
if (apply_filters('aam-cache-status-filter', false) === false) {
|
142 |
+
$message = __(
|
143 |
+
'AAM caching is off. To speed-up the website turn it on.', AAM_KEY
|
144 |
+
);
|
145 |
+
$message .= ' <a href="#cache-info-modal" data-toggle="modal">';
|
146 |
+
$message .= __('Read more.', AAM_KEY) . '</a>';
|
147 |
+
|
148 |
+
AAM_Core_Console::add($message);
|
149 |
+
}
|
150 |
}
|
151 |
|
152 |
/**
|
177 |
* @access public
|
178 |
*/
|
179 |
public function userActions($actions, $user) {
|
180 |
+
if (current_user_can('edit_user', $user->ID)) {
|
181 |
+
$url = admin_url('admin.php?page=aam&user=' . $user->ID);
|
182 |
+
|
183 |
+
$actions['aam'] = '<a href="' . $url . '">';
|
184 |
+
$actions['aam'] .= __('AAM', AAM_KEY) . '</a>';
|
185 |
+
}
|
186 |
|
187 |
return $actions;
|
188 |
}
|
232 |
'name'=> $subject->name,
|
233 |
'blog' => get_current_blog_id()
|
234 |
),
|
|
|
235 |
'translation' => require (dirname(__FILE__) . '/Localization.php')
|
236 |
));
|
237 |
}
|
Application/Backend/Menu.php
CHANGED
@@ -30,6 +30,18 @@ class AAM_Backend_Menu {
|
|
30 |
|
31 |
return $content;
|
32 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
/**
|
35 |
* Get subject's menu
|
@@ -131,9 +143,9 @@ class AAM_Backend_Menu {
|
|
131 |
*
|
132 |
* @return boolean
|
133 |
*
|
134 |
-
* @access
|
135 |
*/
|
136 |
-
|
137 |
$object = AAM_Backend_View::getSubject()->getObject('menu');
|
138 |
$response = $object->has($menu['id']);
|
139 |
|
@@ -146,6 +158,16 @@ class AAM_Backend_Menu {
|
|
146 |
|
147 |
return $response;
|
148 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
|
150 |
/**
|
151 |
* Register Menu feature
|
30 |
|
31 |
return $content;
|
32 |
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
*
|
36 |
+
* @return type
|
37 |
+
*/
|
38 |
+
public function reset() {
|
39 |
+
$object = AAM_Backend_View::getSubject()->getObject('menu');
|
40 |
+
|
41 |
+
return json_encode(array(
|
42 |
+
'status' => ($object->reset() ? 'success' : 'failure')
|
43 |
+
));
|
44 |
+
}
|
45 |
|
46 |
/**
|
47 |
* Get subject's menu
|
143 |
*
|
144 |
* @return boolean
|
145 |
*
|
146 |
+
* @access protected
|
147 |
*/
|
148 |
+
protected function hasRestrictedAll($menu) {
|
149 |
$object = AAM_Backend_View::getSubject()->getObject('menu');
|
150 |
$response = $object->has($menu['id']);
|
151 |
|
158 |
|
159 |
return $response;
|
160 |
}
|
161 |
+
|
162 |
+
/**
|
163 |
+
*
|
164 |
+
* @return type
|
165 |
+
*/
|
166 |
+
protected function isOverwritten() {
|
167 |
+
$object = AAM_Backend_View::getSubject()->getObject('menu');
|
168 |
+
|
169 |
+
return $object->isOverwritten();
|
170 |
+
}
|
171 |
|
172 |
/**
|
173 |
* Register Menu feature
|
Application/Backend/Metabox.php
CHANGED
@@ -33,6 +33,18 @@ class AAM_Backend_Metabox {
|
|
33 |
return $content;
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
*
|
38 |
* @global type $wp_post_types
|
@@ -180,6 +192,16 @@ class AAM_Backend_Metabox {
|
|
180 |
|
181 |
return $response;
|
182 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
/**
|
185 |
* Register metabox feature
|
33 |
return $content;
|
34 |
}
|
35 |
|
36 |
+
/**
|
37 |
+
*
|
38 |
+
* @return type
|
39 |
+
*/
|
40 |
+
public function reset() {
|
41 |
+
$object = AAM_Backend_View::getSubject()->getObject('metabox');
|
42 |
+
|
43 |
+
return json_encode(array(
|
44 |
+
'status' => ($object->reset() ? 'success' : 'failure')
|
45 |
+
));
|
46 |
+
}
|
47 |
+
|
48 |
/**
|
49 |
*
|
50 |
* @global type $wp_post_types
|
192 |
|
193 |
return $response;
|
194 |
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
*
|
198 |
+
* @return type
|
199 |
+
*/
|
200 |
+
protected function isOverwritten() {
|
201 |
+
$object = AAM_Backend_View::getSubject()->getObject('metabox');
|
202 |
+
|
203 |
+
return $object->isOverwritten();
|
204 |
+
}
|
205 |
|
206 |
/**
|
207 |
* Register metabox feature
|
Application/Backend/Post.php
CHANGED
@@ -66,12 +66,10 @@ class AAM_Backend_Post {
|
|
66 |
$breadcrub = $this->renderPostBreadcrumb();
|
67 |
}
|
68 |
|
69 |
-
return json_encode(
|
70 |
-
array(
|
71 |
'status' => 'success',
|
72 |
'breadcrumb' => ($breadcrub ? $breadcrub : __('Base Level', AAM_KEY))
|
73 |
-
|
74 |
-
);
|
75 |
}
|
76 |
|
77 |
/**
|
@@ -83,9 +81,8 @@ class AAM_Backend_Post {
|
|
83 |
*/
|
84 |
protected function renderTermBreadcrumb() {
|
85 |
list($term, $taxonomy) = explode('|', AAM_Core_Request::post('id'));
|
86 |
-
$ancestors = array_reverse(
|
87 |
-
|
88 |
-
);
|
89 |
$breadcrumb = array();
|
90 |
foreach ($ancestors as $id) {
|
91 |
$breadcrumb[] = get_term($id, $taxonomy)->name;
|
@@ -234,21 +231,26 @@ class AAM_Backend_Post {
|
|
234 |
* @access public
|
235 |
*/
|
236 |
public function getAccess() {
|
237 |
-
$type = AAM_Core_Request::post('type');
|
238 |
-
$id = AAM_Core_Request::post('id');
|
239 |
|
240 |
$object = AAM_Backend_View::getSubject()->getObject($type, $id);
|
241 |
|
242 |
-
//prepare the response object
|
243 |
-
if ($object instanceof
|
244 |
-
$
|
|
|
|
|
|
|
|
|
245 |
} else {
|
246 |
-
$
|
247 |
}
|
248 |
|
249 |
-
return json_encode(
|
250 |
-
|
251 |
-
|
|
|
252 |
}
|
253 |
|
254 |
/**
|
@@ -260,13 +262,16 @@ class AAM_Backend_Post {
|
|
260 |
*/
|
261 |
public function save() {
|
262 |
if ($this->checkLimit()) {
|
263 |
-
$object
|
264 |
-
$objectId = AAM_Core_Request::post('objectId', 0);
|
265 |
|
266 |
$param = AAM_Core_Request::post('param');
|
267 |
$value = filter_var(
|
268 |
AAM_Core_Request::post('value'), FILTER_VALIDATE_BOOLEAN
|
269 |
);
|
|
|
|
|
|
|
270 |
|
271 |
$result = AAM_Backend_View::getSubject()->save(
|
272 |
$param, $value, $object, $objectId
|
@@ -281,6 +286,31 @@ class AAM_Backend_Post {
|
|
281 |
'error' => (empty($error) ? '' : $error)
|
282 |
));
|
283 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
|
285 |
/**
|
286 |
*
|
66 |
$breadcrub = $this->renderPostBreadcrumb();
|
67 |
}
|
68 |
|
69 |
+
return json_encode(array(
|
|
|
70 |
'status' => 'success',
|
71 |
'breadcrumb' => ($breadcrub ? $breadcrub : __('Base Level', AAM_KEY))
|
72 |
+
));
|
|
|
73 |
}
|
74 |
|
75 |
/**
|
81 |
*/
|
82 |
protected function renderTermBreadcrumb() {
|
83 |
list($term, $taxonomy) = explode('|', AAM_Core_Request::post('id'));
|
84 |
+
$ancestors = array_reverse(get_ancestors($term, $taxonomy, 'taxonomy'));
|
85 |
+
|
|
|
86 |
$breadcrumb = array();
|
87 |
foreach ($ancestors as $id) {
|
88 |
$breadcrumb[] = get_term($id, $taxonomy)->name;
|
231 |
* @access public
|
232 |
*/
|
233 |
public function getAccess() {
|
234 |
+
$type = trim(AAM_Core_Request::post('type'));
|
235 |
+
$id = intval(AAM_Core_Request::post('id'));
|
236 |
|
237 |
$object = AAM_Backend_View::getSubject()->getObject($type, $id);
|
238 |
|
239 |
+
//prepare the response object
|
240 |
+
if ($object instanceof AAM_Core_Object) {
|
241 |
+
$access = $object->getOption();
|
242 |
+
$metadata = array(
|
243 |
+
'inherited' => $object->getInherited(),
|
244 |
+
'overwritten' => $object->isOverwritten()
|
245 |
+
);
|
246 |
} else {
|
247 |
+
$access = $metadata = array();
|
248 |
}
|
249 |
|
250 |
+
return json_encode(array(
|
251 |
+
'access' => $access,
|
252 |
+
'meta' => $metadata
|
253 |
+
));
|
254 |
}
|
255 |
|
256 |
/**
|
262 |
*/
|
263 |
public function save() {
|
264 |
if ($this->checkLimit()) {
|
265 |
+
$object = trim(AAM_Core_Request::post('object'));
|
266 |
+
$objectId = intval(AAM_Core_Request::post('objectId', 0));
|
267 |
|
268 |
$param = AAM_Core_Request::post('param');
|
269 |
$value = filter_var(
|
270 |
AAM_Core_Request::post('value'), FILTER_VALIDATE_BOOLEAN
|
271 |
);
|
272 |
+
|
273 |
+
//clear cache
|
274 |
+
do_action('aam-clear-cache-action', AAM_Backend_View::getSubject());
|
275 |
|
276 |
$result = AAM_Backend_View::getSubject()->save(
|
277 |
$param, $value, $object, $objectId
|
286 |
'error' => (empty($error) ? '' : $error)
|
287 |
));
|
288 |
}
|
289 |
+
|
290 |
+
/**
|
291 |
+
* Reset the object settings
|
292 |
+
*
|
293 |
+
* @return string
|
294 |
+
*
|
295 |
+
* @access public
|
296 |
+
*/
|
297 |
+
public function reset() {
|
298 |
+
$type = trim(AAM_Core_Request::post('type'));
|
299 |
+
$id = intval(AAM_Core_Request::post('id', 0));
|
300 |
+
|
301 |
+
$object = AAM_Backend_View::getSubject()->getObject($type, $id);
|
302 |
+
if ($object instanceof AAM_Core_Object) {
|
303 |
+
$result = $object->reset();
|
304 |
+
//clear cache
|
305 |
+
do_action('aam-clear-cache-action', AAM_Backend_View::getSubject());
|
306 |
+
} else {
|
307 |
+
$result = false;
|
308 |
+
}
|
309 |
+
|
310 |
+
return json_encode(
|
311 |
+
array('status' => ($result ? 'success' : 'failure'))
|
312 |
+
);
|
313 |
+
}
|
314 |
|
315 |
/**
|
316 |
*
|
Application/Backend/ProductList.php
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
return array(
|
11 |
+
array(
|
12 |
+
'title' => 'AAM Plus Package',
|
13 |
+
'id' => 'AAM Plus Package',
|
14 |
+
'type' => 'commercial',
|
15 |
+
'cost' => '$30',
|
16 |
+
'currency' => 'USD',
|
17 |
+
'description' => __('Unlock limitations related to Posts and Pages feature. Extend basic AAM functionality with Page Categories and ability to manage access to your comments (AAM Plus Package adds new capabilities to the default list of WordPress capabilities like Edit Comments, Delete Comments, Spam Comments etc.)', AAM_KEY),
|
18 |
+
'storeURL' => 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FGAHULDEFZV4U',
|
19 |
+
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Plus Package')
|
20 |
+
),
|
21 |
+
array(
|
22 |
+
'title' => 'AAM Role Filter',
|
23 |
+
'id' => 'AAM Role Filter',
|
24 |
+
'type' => 'commercial',
|
25 |
+
'cost' => '$5',
|
26 |
+
'currency' => 'USD',
|
27 |
+
'description' => __('Extension for more advanced user and role administration. Based on user\'s highest level capability, filter list of roles with higher level. Also prevent from editing, promoting or deleting higher level users.', AAM_KEY),
|
28 |
+
'storeURL' => 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=G9V4BT3T8WJSN',
|
29 |
+
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Role Filter')
|
30 |
+
),
|
31 |
+
array(
|
32 |
+
'title' => 'AAM Dev License',
|
33 |
+
'id' => 'AAM Development License',
|
34 |
+
'type' => 'commercial',
|
35 |
+
'cost' => '$150',
|
36 |
+
'currency' => 'USD',
|
37 |
+
'description' => __('Development license gives you an ability to download all the available extensions and use them to up to 5 life domains.', AAM_KEY),
|
38 |
+
'storeURL' => 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZX9RCWU6BTE52',
|
39 |
+
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Development License')
|
40 |
+
),
|
41 |
+
array(
|
42 |
+
'title' => 'AAM Utilities',
|
43 |
+
'id' => 'AAM Utilities',
|
44 |
+
'type' => 'GNU',
|
45 |
+
'license' => 'AAMUTILITIES',
|
46 |
+
'description' => __('Various useful tools for AAM like caching or clear all settings.', AAM_KEY),
|
47 |
+
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Utilities')
|
48 |
+
),
|
49 |
+
array(
|
50 |
+
'title' => 'AAM Multisite',
|
51 |
+
'id' => 'AAM Multisite',
|
52 |
+
'type' => 'GNU',
|
53 |
+
'license' => 'AAMMULTISITE',
|
54 |
+
'description' => __('Convenient way to navigate between different sites in the Network Admin Panel. This extension adds additional widget to the AAM page that allows to switch between different sites.', AAM_KEY),
|
55 |
+
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Multisite')
|
56 |
+
),
|
57 |
+
array(
|
58 |
+
'title' => 'AAM Post Filter',
|
59 |
+
'id' => 'AAM Post Filter',
|
60 |
+
'type' => 'GNU',
|
61 |
+
'license' => 'AAMPOSTFILTER',
|
62 |
+
'description' => AAM_Backend_Helper::preparePhrase('[WARNING!] Please use with caution. This is a supportive exension for the post access option [List]. It adds additional post filtering to fix the issue with large amount of post. [Turned on caching] is strongly recommended.', 'strong', 'strong', 'strong'),
|
63 |
+
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Post Filter')
|
64 |
+
),
|
65 |
+
array(
|
66 |
+
'title' => 'AAM Skeleton Extension',
|
67 |
+
'id' => 'AAM Skeleton Extension',
|
68 |
+
'type' => 'GNU',
|
69 |
+
'license' => 'SKELETONEXT',
|
70 |
+
'description' => __('Skeleton for custom AAM extension. Please find all necessary documentation inside the source code.', AAM_KEY),
|
71 |
+
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Skeleton Extension')
|
72 |
+
),
|
73 |
+
array(
|
74 |
+
'title' => 'User Switching',
|
75 |
+
'id' => 'User Switching',
|
76 |
+
'type' => 'plugin',
|
77 |
+
'description' => __('Instant switching between user accounts in WordPress. ', AAM_KEY),
|
78 |
+
'status' => AAM_Core_Repository::getInstance()->pluginStatus('User Switching')
|
79 |
+
)
|
80 |
+
);
|
Application/Backend/User.php
CHANGED
@@ -89,11 +89,21 @@ class AAM_Backend_User {
|
|
89 |
$actions = array('manage');
|
90 |
|
91 |
$prefix = ($user->ID == get_current_user_id() ? 'no-' : '');
|
|
|
92 |
$actions[] = $prefix . ($user->user_status ? 'unlock' : 'lock');
|
93 |
-
|
94 |
$actions[] = 'edit';
|
95 |
}
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
return $actions;
|
98 |
}
|
99 |
|
89 |
$actions = array('manage');
|
90 |
|
91 |
$prefix = ($user->ID == get_current_user_id() ? 'no-' : '');
|
92 |
+
|
93 |
$actions[] = $prefix . ($user->user_status ? 'unlock' : 'lock');
|
|
|
94 |
$actions[] = 'edit';
|
95 |
}
|
96 |
|
97 |
+
if (class_exists('user_switching')) {
|
98 |
+
$url = user_switching::maybe_switch_url($user);
|
99 |
+
|
100 |
+
if (!in_array('edit', $actions) || empty($url)) {
|
101 |
+
$actions[] = 'no-switch';
|
102 |
+
} else {
|
103 |
+
$actions[] = 'switch|' . $url;
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
return $actions;
|
108 |
}
|
109 |
|
Application/Backend/View.php
CHANGED
@@ -86,29 +86,26 @@ class AAM_Backend_View {
|
|
86 |
public function processAjax() {
|
87 |
$response = null;
|
88 |
|
89 |
-
$
|
|
|
90 |
|
91 |
-
if (
|
92 |
-
$response = call_user_func(array($this, $
|
93 |
-
}
|
94 |
-
$classname = 'AAM_Backend_' . $
|
95 |
if (class_exists($classname)) {
|
96 |
-
$object = new $classname
|
97 |
-
if (method_exists($object, $
|
98 |
-
$response = call_user_func(array($object, $
|
99 |
}
|
100 |
}
|
101 |
}
|
102 |
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
);
|
107 |
-
}
|
108 |
-
|
109 |
-
return $response;
|
110 |
}
|
111 |
-
|
112 |
/**
|
113 |
* Render the Main Control Area
|
114 |
*
|
@@ -149,8 +146,8 @@ class AAM_Backend_View {
|
|
149 |
* @access public
|
150 |
*/
|
151 |
public function save() {
|
152 |
-
$object
|
153 |
-
$objectId = AAM_Core_Request::post('objectId', 0);
|
154 |
|
155 |
$param = AAM_Core_Request::post('param');
|
156 |
$value = filter_var(
|
@@ -171,6 +168,22 @@ class AAM_Backend_View {
|
|
171 |
'status' => AAM_Core_API::updateOption('aam-welcome', 0)
|
172 |
));
|
173 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
|
175 |
/**
|
176 |
* Get Subject
|
86 |
public function processAjax() {
|
87 |
$response = null;
|
88 |
|
89 |
+
$action = AAM_Core_Request::request('sub_action');
|
90 |
+
$parts = explode('.', $action);
|
91 |
|
92 |
+
if (method_exists($this, $parts[0])) {
|
93 |
+
$response = call_user_func(array($this, $parts[0]));
|
94 |
+
} elseif (count($parts) == 2) { //cover the Model.method pattern
|
95 |
+
$classname = 'AAM_Backend_' . $parts[0];
|
96 |
if (class_exists($classname)) {
|
97 |
+
$object = new $classname;
|
98 |
+
if (method_exists($object, $parts[1])) {
|
99 |
+
$response = call_user_func(array($object, $parts[1]));
|
100 |
}
|
101 |
}
|
102 |
}
|
103 |
|
104 |
+
return apply_filters(
|
105 |
+
'aam-ajax-filter', $response, $this->getSubject(), $action
|
106 |
+
);
|
|
|
|
|
|
|
|
|
107 |
}
|
108 |
+
|
109 |
/**
|
110 |
* Render the Main Control Area
|
111 |
*
|
146 |
* @access public
|
147 |
*/
|
148 |
public function save() {
|
149 |
+
$object = trim(AAM_Core_Request::post('object'));
|
150 |
+
$objectId = intval(AAM_Core_Request::post('objectId', 0));
|
151 |
|
152 |
$param = AAM_Core_Request::post('param');
|
153 |
$value = filter_var(
|
168 |
'status' => AAM_Core_API::updateOption('aam-welcome', 0)
|
169 |
));
|
170 |
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
*
|
174 |
+
* @return type
|
175 |
+
*/
|
176 |
+
public function getErrorFixStatus() {
|
177 |
+
$plugin = AAM_Core_Repository::getInstance()->pluginStatus('WP Error Fix');
|
178 |
+
|
179 |
+
if ($plugin['status'] == 'install') {
|
180 |
+
$response = array('status' => 'show', 'url' => $plugin['url']);
|
181 |
+
} else {
|
182 |
+
$response = array('status' => 'hide');
|
183 |
+
}
|
184 |
+
|
185 |
+
return json_encode($response);
|
186 |
+
}
|
187 |
|
188 |
/**
|
189 |
* Get Subject
|
Application/Backend/view/extension.phtml
CHANGED
@@ -1,151 +1,116 @@
|
|
1 |
-
|
2 |
-
<div class="
|
3 |
-
<div class="
|
4 |
-
<
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
</div>
|
9 |
-
|
10 |
-
<label for="extension-key"><?php echo __('Install Extension', AAM_KEY); ?> <a href="#install-extension-modal" data-toggle="modal"><i class="icon-help-circled"></i></a></label>
|
11 |
-
<div class="row">
|
12 |
-
<div class="col-xs-8">
|
13 |
-
<div class="form-group">
|
14 |
-
<input type="text" class="form-control" id="extension-key" placeholder="<?php echo __('License Key', AAM_KEY); ?>" />
|
15 |
</div>
|
16 |
</div>
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
</div>
|
20 |
-
</div>
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
<tr>
|
25 |
-
<th width="80%"><?php echo __('Extension', AAM_KEY); ?></th>
|
26 |
-
<th><?php echo __('Action', AAM_KEY); ?></th>
|
27 |
-
</tr>
|
28 |
-
</thead>
|
29 |
-
<tbody>
|
30 |
-
<?php $dev = AAM_Core_Repository::getInstance()->extensionStatus('AAM Development License'); ?>
|
31 |
-
<?php if ($dev !== AAM_Core_Repository::STATUS_INSTALLED) { ?>
|
32 |
<tr>
|
33 |
-
<
|
34 |
-
|
35 |
-
<p class="text-justify">
|
36 |
-
<?php echo __('Development license gives you an ability to download all the available extensions and use them to up to 5 life domains.', AAM_KEY); ?>
|
37 |
-
</p>
|
38 |
-
</td>
|
39 |
-
<td>
|
40 |
-
<?php if ($dev == AAM_Core_Repository::STATUS_UPDATE) { ?>
|
41 |
-
<a href="#" class="btn btn-warning btn-block aam-update-extension" data-product="AAM Development License"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
|
42 |
-
<?php } else { ?>
|
43 |
-
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZX9RCWU6BTE52" target="_blank" class="btn btn-success btn-block"><i class="icon-basket"></i> <?php echo __('Purchase', AAM_KEY); ?></a>
|
44 |
-
<?php } ?>
|
45 |
-
</td>
|
46 |
-
</tr>
|
47 |
-
<?php } ?>
|
48 |
-
<?php $plusPackage = AAM_Core_Repository::getInstance()->extensionStatus('AAM Plus Package'); ?>
|
49 |
-
<?php if ($plusPackage !== AAM_Core_Repository::STATUS_INSTALLED) { ?>
|
50 |
-
<tr>
|
51 |
-
<td>
|
52 |
-
<strong>AAM Plus Package - $30 <small>USD</small></strong>
|
53 |
-
<p class="text-justify">
|
54 |
-
<?php echo __('Unlock limitations related to Posts and Pages feature. Extend basic AAM functionality with Page Categories and ability to manage access to your comments (AAM Plus Package adds new capabilities to the default list of WordPress capabilities like Edit Comments, Delete Comments, Spam Comments etc.).', AAM_KEY); ?>
|
55 |
-
</p>
|
56 |
-
</td>
|
57 |
-
<td>
|
58 |
-
<?php if ($plusPackage == AAM_Core_Repository::STATUS_UPDATE) { ?>
|
59 |
-
<a href="#" class="btn btn-warning btn-block aam-update-extension" data-product="AAM Plus Package"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
|
60 |
-
<?php } else { ?>
|
61 |
-
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FGAHULDEFZV4U" target="_blank" class="btn btn-success btn-block"><i class="icon-basket"></i> <?php echo __('Purchase', AAM_KEY); ?></a>
|
62 |
-
<?php } ?>
|
63 |
-
</td>
|
64 |
</tr>
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
</p>
|
74 |
</td>
|
75 |
-
<td>
|
76 |
-
<?php if ($utilities == AAM_Core_Repository::STATUS_UPDATE) { ?>
|
77 |
-
<a href="#" class="btn btn-warning btn-block aam-update-extension" data-product="AAM Utilities"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
|
78 |
-
<?php } else { ?>
|
79 |
-
<a href="#" class="btn btn-success btn-block aam-download-extension" data-license="AAMUTILITIES"><i class="icon-download-cloud"></i> <?php echo __('Download', AAM_KEY); ?></a>
|
80 |
-
<?php } ?>
|
81 |
-
</td>
|
82 |
</tr>
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
|
|
|
|
|
|
|
|
91 |
</p>
|
92 |
-
</td>
|
93 |
-
<td>
|
94 |
-
<?php if ($multisite == AAM_Core_Repository::STATUS_UPDATE) { ?>
|
95 |
-
<a href="#" class="btn btn-warning btn-block aam-update-extension" data-product="AAM Multisite"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
|
96 |
-
<?php } else { ?>
|
97 |
-
<a href="#" class="btn btn-success btn-block aam-download-extension" data-license="AAMMULTISITE"><i class="icon-download-cloud"></i> <?php echo __('Download', AAM_KEY); ?></a>
|
98 |
-
<?php } ?>
|
99 |
-
</td>
|
100 |
-
</tr>
|
101 |
-
<?php } ?>
|
102 |
-
<tr id="extension-list-empty" class="hidden">
|
103 |
-
<td colspan="2">
|
104 |
-
<p class="aam-notification-message text-center">
|
105 |
-
<?php echo __('All extensions are installed and up to date.', AAM_KEY); ?>
|
106 |
-
</p>
|
107 |
-
</td>
|
108 |
-
</tr>
|
109 |
-
</tbody>
|
110 |
-
</table>
|
111 |
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
<
|
122 |
-
</
|
123 |
-
</div>
|
124 |
-
<div class="modal-footer">
|
125 |
-
<button type="button" class="btn btn-success" id="download-extension"><?php echo __('Download', AAM_KEY); ?></button>
|
126 |
-
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Cancel', AAM_KEY); ?></button>
|
127 |
</div>
|
128 |
</div>
|
129 |
</div>
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
</
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
</div>
|
147 |
</div>
|
148 |
</div>
|
149 |
</div>
|
150 |
-
|
151 |
-
|
1 |
+
<?php if (defined('AAM_KEY')) { ?>
|
2 |
+
<div class="aam-feature" id="extension-content">
|
3 |
+
<div class="row">
|
4 |
+
<div class="col-xs-12">
|
5 |
+
<p class="aam-info">
|
6 |
+
<?php echo AAM_Backend_Helper::preparePhrase('One license is limited to one domain only but it can be used for unlimited number of test or development environments where URL is either [localhost] or starts with [dev.], [staging.] or [test.]', 'i', 'i', 'i', 'i'); ?><br/>
|
7 |
+
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
</div>
|
9 |
</div>
|
10 |
+
|
11 |
+
<label for="extension-key"><?php echo __('Install Extension', AAM_KEY); ?> <a href="#install-extension-modal" data-toggle="modal"><i class="icon-help-circled"></i></a></label>
|
12 |
+
<div class="row">
|
13 |
+
<div class="col-xs-8">
|
14 |
+
<div class="form-group">
|
15 |
+
<input type="text" class="form-control" id="extension-key" placeholder="<?php echo __('License Key', AAM_KEY); ?>" />
|
16 |
+
</div>
|
17 |
+
</div>
|
18 |
+
<div class="col-xs-4">
|
19 |
+
<button class="btn btn-primary btn-block" id="install-extension"><i class="icon-download-cloud"></i> <?php echo __('Install', AAM_KEY); ?></button>
|
20 |
+
</div>
|
21 |
</div>
|
|
|
22 |
|
23 |
+
<table class="table table-striped table-bordered aam-margin-top-xs" id="extension-list">
|
24 |
+
<thead>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
<tr>
|
26 |
+
<th width="80%"><?php echo __('Extension', AAM_KEY); ?></th>
|
27 |
+
<th><?php echo __('Action', AAM_KEY); ?></th>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
</tr>
|
29 |
+
</thead>
|
30 |
+
<tbody>
|
31 |
+
<?php foreach ($this->getProductList() as $product) { ?>
|
32 |
+
<tr>
|
33 |
+
<td>
|
34 |
+
<h4><?php echo $product['title'], ' - ' . ($product['type'] == 'commercial' ? $product['cost'] . ' <small>' . $product['currency'] . '</small>' : '<span class="text-success">' . __('Free', AAM_KEY) . '</span>'); ?></h4>
|
35 |
+
<p class="text-justify">
|
36 |
+
<?php echo $product['description']; ?>
|
37 |
+
</p>
|
38 |
+
</td>
|
39 |
+
<td>
|
40 |
+
<?php if ($product['status'] == AAM_Core_Repository::STATUS_INSTALLED) { ?>
|
41 |
+
<span class="aam-extension-installed"><i class="icon-check"></i> <?php echo __('Installed', AAM_KEY); ?></span>
|
42 |
+
<?php } elseif ($product['status'] == AAM_Core_Repository::STATUS_UPDATE) { ?>
|
43 |
+
<a href="#" class="btn btn-warning btn-block aam-update-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
|
44 |
+
<?php } elseif ($product['type'] == 'commercial') { ?>
|
45 |
+
<a href="<?php echo $product['storeURL']; ?>" target="_blank" class="btn btn-success btn-block"><i class="icon-basket"></i> <?php echo __('Purchase', AAM_KEY); ?></a>
|
46 |
+
<?php } elseif ($product['type'] == 'plugin') { ?>
|
47 |
+
<?php if ($product['status']['status'] == 'install') { ?>
|
48 |
+
<a href="<?php echo $product['status']['url']; ?>" class="btn btn-success btn-block"><i class="icon-plus"></i> <?php echo __('Install', AAM_KEY); ?></a>
|
49 |
+
<?php } else { ?>
|
50 |
+
<span class="aam-extension-installed"><i class="icon-check"></i> <?php echo __('Installed', AAM_KEY); ?></span>
|
51 |
+
<?php } ?>
|
52 |
+
<?php } else { ?>
|
53 |
+
<a href="#" class="btn btn-success btn-block aam-download-extension" data-license="<?php echo $product['license']; ?>"><i class="icon-download-cloud"></i> <?php echo __('Download', AAM_KEY); ?></a>
|
54 |
+
<?php } ?>
|
55 |
+
</td>
|
56 |
+
</tr>
|
57 |
+
<?php } ?>
|
58 |
+
|
59 |
+
<tr id="extension-list-empty" class="hidden">
|
60 |
+
<td colspan="2">
|
61 |
+
<p class="aam-notification-message text-center">
|
62 |
+
<?php echo __('All extensions are installed and up to date.', AAM_KEY); ?>
|
63 |
</p>
|
64 |
</td>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
</tr>
|
66 |
+
</tbody>
|
67 |
+
</table>
|
68 |
+
|
69 |
+
<div class="modal fade" id="extension-notification-modal" tabindex="-1" role="dialog">
|
70 |
+
<div class="modal-dialog" role="document">
|
71 |
+
<div class="modal-content">
|
72 |
+
<div class="modal-header">
|
73 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
74 |
+
<h4 class="modal-title"><?php echo __('Notification', AAM_KEY); ?></h4>
|
75 |
+
</div>
|
76 |
+
<div class="modal-body">
|
77 |
+
<p class="text-center aam-notification">
|
78 |
+
<strong><span id="installation-error"></span>.</strong> <?php echo __('Extension requires manual installation. Please follow few simple steps below.', AAM_KEY); ?>
|
79 |
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
|
81 |
+
<ul class="aam-outer-top-xs aam-numeric-list">
|
82 |
+
<li><?php echo AAM_Backend_Helper::preparePhrase('Click [Download] button below and save the zip archive on your computer', 'b'); ?>;</li>
|
83 |
+
<li><?php echo AAM_Backend_Helper::preparePhrase('Connect to your website via FTP and navigate to [wp-content] folder', 'b'); ?>;</li>
|
84 |
+
<li><?php echo AAM_Backend_Helper::preparePhrase('Create [aam/extension] folder inside [wp-content] and make sure it is writable by your server', 'b', 'b'); ?>;</li>
|
85 |
+
<li><?php echo AAM_Backend_Helper::preparePhrase('Unzip downloaded archive and transfer the folder inside the [wp-content/aam/extension] folder', 'b'); ?>.</li>
|
86 |
+
</ul>
|
87 |
+
</div>
|
88 |
+
<div class="modal-footer">
|
89 |
+
<button type="button" class="btn btn-success" id="download-extension"><?php echo __('Download', AAM_KEY); ?></button>
|
90 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Cancel', AAM_KEY); ?></button>
|
91 |
+
</div>
|
|
|
|
|
|
|
|
|
92 |
</div>
|
93 |
</div>
|
94 |
</div>
|
95 |
+
|
96 |
+
<div class="modal fade" id="install-extension-modal" tabindex="-1" role="dialog">
|
97 |
+
<div class="modal-dialog" role="document">
|
98 |
+
<div class="modal-content">
|
99 |
+
<div class="modal-header">
|
100 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
101 |
+
<h4 class="modal-title"><?php echo __('Install Extension Info', AAM_KEY); ?></h4>
|
102 |
+
</div>
|
103 |
+
<div class="modal-body aam-info-modal">
|
104 |
+
<p>
|
105 |
+
<?php echo __('In order to install the extension, please use license number that you recieved after the payment was completed successfully (it might take up to 2 hours for PayPal to send you the email). If you already purchased an extension for the older AAM version, use the license key but please remember that it is limited only to one life domain.', AAM_KEY); ?>
|
106 |
+
</p>
|
107 |
+
</div>
|
108 |
+
<div class="modal-footer">
|
109 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Close', AAM_KEY); ?></button>
|
110 |
+
</div>
|
111 |
</div>
|
112 |
</div>
|
113 |
</div>
|
114 |
</div>
|
115 |
+
<?php
|
116 |
+
}
|
Application/Backend/view/index.phtml
CHANGED
@@ -1,319 +1,306 @@
|
|
1 |
-
|
2 |
-
<div class="
|
3 |
-
<div class="
|
4 |
-
<div class="
|
5 |
-
<div class="
|
6 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
</div>
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
</div>
|
15 |
</div>
|
16 |
</div>
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
</div>
|
23 |
-
</div>
|
24 |
-
|
25 |
-
<div class="row">
|
26 |
-
<div class="col-xs-12 col-md-8">
|
27 |
-
<div class="metabox-holder">
|
28 |
-
<div class="postbox">
|
29 |
-
<h3 class="hndle">
|
30 |
-
<span><?php echo __('Access Manager', AAM_KEY); ?></span>
|
31 |
-
<span class="aam-help-menu" data-target="#access-manager-inside"><i class="icon-help-circled"></i></span>
|
32 |
-
</h3>
|
33 |
-
<div class="inside" id="access-manager-inside">
|
34 |
-
<div class="aam-postbox-inside" id="aam-content"></div>
|
35 |
-
<div class="aam-help-context" >
|
36 |
-
<p class="aam-info aam-hint">
|
37 |
-
<strong><?php echo __('Note from the author', AAM_KEY); ?></strong><br/>
|
38 |
-
<?php echo __('Appreciate your interest in Advanced Access Manager (aka AAM). With a strong knowledge and experience in WordPress, AAM becomes a very powerful tool to manage access to your frontend and backend.', AAM_KEY); ?><br/>
|
39 |
-
<span class="aam-highlight"><?php echo __('Please notice!', AAM_KEY); ?></span> <?php echo AAM_Backend_Helper::preparePhrase('Power comes with responsibility. Make sure that you have enough knowledge in WordPress Roles and Capabilities because AAM is very closely tight to WordPress core. It is also very important [to have backup of your database before you start working with AAM] (there is no need to backup your files, AAM does not modify any physical files on your server and never did).', 'b'); ?><br/>
|
40 |
-
<?php echo __('AAM was thoroughly tested on the fresh installation of WordPress and in the latest versions of Chrome, Safari, IE and Firefox. If you have any issues, please make sure that there is no conflict with other plugins on your WordPress installation.', AAM_KEY); ?><br/>
|
41 |
-
<?php echo __('Please find below the short description of each feature that AAM offers.', AAM_KEY); ?>
|
42 |
-
</p>
|
43 |
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
</div>
|
74 |
</div>
|
75 |
</div>
|
76 |
</div>
|
77 |
</div>
|
78 |
-
</div>
|
79 |
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
</div>
|
119 |
-
<div class="modal-body">
|
120 |
-
<div class="form-group">
|
121 |
-
<label for="new-role-name"><?php echo __('Role Name', AAM_KEY); ?><span class="aam-asterix">*</span></label>
|
122 |
-
<input type="text" class="form-control" id="new-role-name" placeholder="<?php echo __('Enter Role Name', AAM_KEY); ?>" />
|
123 |
</div>
|
124 |
-
<div class="
|
125 |
-
<
|
126 |
-
|
127 |
-
<
|
128 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
</div>
|
130 |
-
</div>
|
131 |
-
<div class="modal-footer">
|
132 |
-
<button type="button" class="btn btn-success" id="add-role-btn"><?php echo __('Add Role', AAM_KEY); ?></button>
|
133 |
-
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Close', AAM_KEY); ?></button>
|
134 |
</div>
|
135 |
</div>
|
136 |
</div>
|
137 |
-
</div>
|
138 |
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
150 |
</div>
|
151 |
-
</div>
|
152 |
-
<div class="modal-footer">
|
153 |
-
<button type="button" class="btn btn-success" id="edit-role-btn"><?php echo __('Update Role', AAM_KEY); ?></button>
|
154 |
-
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Close', AAM_KEY); ?></button>
|
155 |
</div>
|
156 |
</div>
|
157 |
</div>
|
158 |
-
</div>
|
159 |
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
|
|
173 |
</div>
|
174 |
</div>
|
175 |
</div>
|
176 |
-
</div>
|
177 |
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
|
|
190 |
</div>
|
191 |
</div>
|
192 |
</div>
|
193 |
-
</div>
|
194 |
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
|
|
221 |
</div>
|
222 |
</div>
|
223 |
</div>
|
224 |
-
</div>
|
225 |
|
226 |
-
</div>
|
227 |
-
<?php if (current_user_can('edit_users')) { ?>
|
228 |
-
<div role="tabpanel" class="tab-pane" id="visitor">
|
229 |
-
<div class="visitor-message">
|
230 |
-
<span><?php echo __('Manage access to your website for visitors (any user that is not authenticated)', AAM_KEY); ?>.</span>
|
231 |
-
<button class="btn btn-primary btn-block" id="manage-visitor"><i class="icon-cog"></i> <?php echo __('Manage Visitor', AAM_KEY); ?></button>
|
232 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
</div>
|
234 |
-
<?php } ?>
|
235 |
</div>
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
</p>
|
241 |
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
|
|
261 |
</div>
|
262 |
</div>
|
263 |
</div>
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
</
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
<div class="col-xs-8 col-md-10 aam-notification-content">
|
279 |
-
<ul class="aam-error-list"></ul>
|
280 |
</div>
|
281 |
</div>
|
282 |
</div>
|
283 |
</div>
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
<p class="aam-info aam-margin-top-xs">
|
288 |
-
<?php echo sprintf(__('Follow us on twitter %s for the latest Advanced Access Manager news.', AAM_KEY), '<strong><a href="https://twitter.com/vasyltech/" target="_blank">@vasyltech</a></strong>'); ?>
|
289 |
-
</p>
|
290 |
-
|
291 |
-
<h2 class="aam-margin-top-xs"><?php echo __('What\'s New', AAM_KEY); ?></h2>
|
292 |
-
<ul>
|
293 |
-
<li><?php echo __('Brand new and much more intuitive user interface.', AAM_KEY); ?></li>
|
294 |
-
<li><?php echo __('Fully responsive design so you can manage access to website even on your smart phone.', AAM_KEY); ?></li>
|
295 |
-
<li><?php echo __('Better, more reliable and faster core functionality.', AAM_KEY); ?></li>
|
296 |
-
<li><?php echo __('Completely new extension handler. In case of any file system failure, you can download an extension for manual installation.', AAM_KEY); ?></li>
|
297 |
-
<li><?php echo __('Added "Manage Access" action to the list of user.', AAM_KEY); ?></li>
|
298 |
-
</ul>
|
299 |
-
|
300 |
-
<h2 class="aam-highlight aam-margin-top-xs"><?php echo __('Please be aware of the latest changes!', AAM_KEY); ?></h2>
|
301 |
-
<ul>
|
302 |
-
<li><?php echo __('"Save" button has been removed. Any changes that you perform are saved automatically.', AAM_KEY); ?></li>
|
303 |
-
<li><?php echo sprintf('With the first release of AAM version 3, not all extensions from AAM version 2 available for download. More extensions are coming soon. Follow us on twitter %s for the latest news.', '<strong><a href="https://twitter.com/vasyltech/" target="_blank">@vasyltech</a></strong>'); ?></li>
|
304 |
-
<li><?php echo __('License key for an extension is valid for one life domain only. All the licenses that were purchased before are still valid but limited to one domain with AAM version 3 (with AAM version 2 it is still unlimited until April 2016).', AAM_KEY); ?></li>
|
305 |
-
<li><?php echo __('Development License is valid for 5 domains with AAM version 3 but is still unlimited with version 2 (only until April 2016).', AAM_KEY); ?></li>
|
306 |
-
<li><?php echo __('Posts & Pages settings from AAM version 2 are not compatible with AAM version 3.', AAM_KEY); ?></li>
|
307 |
-
<li><?php echo __('You are not allowed to delete or lock an "Administrator" role.', AAM_KEY); ?></li>
|
308 |
-
<li><?php echo __('There is no longer a "Super Admin" role.', AAM_KEY); ?></li>
|
309 |
-
<li><?php echo __('You are not longer allowed to delete any user or group or users (but you still can do it within native WordPress interface).', AAM_KEY); ?></li>
|
310 |
-
<li><?php echo __('You are not allowed to delete any capability (even the one that you created manually).', AAM_KEY); ?></li>
|
311 |
-
</ul>
|
312 |
-
|
313 |
-
<h3>Rollback to AAM version 2</h3>
|
314 |
-
<p><?php echo sprintf(__('You can rolleback to the earlier version of AAM by simply downloading any previous version on %sthis page%s. After download, replace the wp-content/plugins/advanced-access-manager directory with the archive\'s content.'), '<a href="https://wordpress.org/plugins/advanced-access-manager/developers/" target="_blank">', '</a>'); ?></p>
|
315 |
-
|
316 |
-
<p class="aam-margin-top-xs text-center">
|
317 |
-
<a href="#" class="btn btn-lg btn-primary" id="confirm-welcome"><i class="icon-check"></i> <?php echo __('Ok, got it', AAM_KEY); ?></a>
|
318 |
-
</p>
|
319 |
-
</div>
|
1 |
+
<?php if (defined('AAM_KEY')) { ?>
|
2 |
+
<div class="wrap">
|
3 |
+
<div class="row aam-no-margin aam-notification-container<?php echo (AAM_Core_Console::hasIssues() ? '' : ' hidden') ?>">
|
4 |
+
<div class="col-xs-12">
|
5 |
+
<div class="row aam-notification">
|
6 |
+
<div class="col-xs-4 col-md-2 aam-notification-icon">
|
7 |
+
<i class="icon-attention-circled"></i>
|
8 |
+
</div>
|
9 |
+
<div class="col-xs-8 col-md-10 aam-notification-content">
|
10 |
+
<ul class="aam-error-list">
|
11 |
+
<?php foreach (AAM_Core_Console::getWarnings() as $message) { ?>
|
12 |
+
<li><?php echo $message; ?></li>
|
13 |
+
<?php } ?>
|
14 |
+
</ul>
|
15 |
+
</div>
|
16 |
</div>
|
17 |
+
</div>
|
18 |
+
</div>
|
19 |
+
|
20 |
+
<div class="modal fade" id="cache-info-modal" tabindex="-1" role="dialog">
|
21 |
+
<div class="modal-dialog" role="document">
|
22 |
+
<div class="modal-content">
|
23 |
+
<div class="modal-header">
|
24 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
25 |
+
<h4 class="modal-title"><?php echo __('Cache Information', AAM_KEY); ?></h4>
|
26 |
+
</div>
|
27 |
+
<div class="modal-body">
|
28 |
+
<p class="aam-info"><?php echo __('AAM main objective is to control access to your frontend and backend resources. In some cases your website may get slower because AAM performs additional checks. That is why it is important to have AAM caching turned on. Please follow few simple steps below to turn on the caching mechanism.', AAM_KEY); ?></p>
|
29 |
+
<ul class="aam-numeric-list">
|
30 |
+
<li><?php echo AAM_Backend_Helper::preparePhrase('Go to [Extensions] tab and click [Download] button for [AAM Utilities]', 'b', 'b', 'i'); ?>;</li>
|
31 |
+
<li><?php echo AAM_Backend_Helper::preparePhrase('After [AAM Utilities] installed successfully, go to [Utilities] tab and enable [Caching].', 'i', 'b', 'b'); ?></ol>
|
32 |
+
</ul>
|
33 |
+
</div>
|
34 |
+
<div class="modal-footer">
|
35 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('OK', AAM_KEY); ?></button>
|
36 |
+
</div>
|
37 |
</div>
|
38 |
</div>
|
39 |
</div>
|
40 |
+
|
41 |
+
<div class="row">
|
42 |
+
<div class="col-xs-12 col-md-8">
|
43 |
+
<h1 class="aam-current-subject"></h1>
|
44 |
+
</div>
|
45 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
+
<div class="row">
|
48 |
+
<div class="col-xs-12 col-md-8">
|
49 |
+
<div class="metabox-holder">
|
50 |
+
<div class="postbox">
|
51 |
+
<h3 class="hndle">
|
52 |
+
<span><?php echo __('Access Manager', AAM_KEY); ?></span>
|
53 |
+
<span class="aam-help-menu" data-target="#access-manager-inside"><i class="icon-help-circled"></i></span>
|
54 |
+
</h3>
|
55 |
+
<div class="inside" id="access-manager-inside">
|
56 |
+
<div class="aam-postbox-inside" id="aam-content"></div>
|
57 |
+
<div class="aam-help-context" >
|
58 |
+
<p class="aam-info aam-hint">
|
59 |
+
<strong><?php echo __('Note from the author', AAM_KEY); ?></strong><br/>
|
60 |
+
<?php echo __('Appreciate your interest in Advanced Access Manager (aka AAM). With a strong knowledge and experience in WordPress, AAM becomes a very powerful tool to manage access to your frontend and backend.', AAM_KEY); ?><br/>
|
61 |
+
<span class="aam-highlight"><?php echo __('Please notice!', AAM_KEY); ?></span> <?php echo AAM_Backend_Helper::preparePhrase('Power comes with responsibility. Make sure that you have enough knowledge in WordPress Roles and Capabilities because AAM is very closely tight to WordPress core. It is also very important [to have backup of your database before you start working with AAM] (there is no need to backup your files, AAM does not modify any physical files on your server and never did).', 'b'); ?><br/>
|
62 |
+
<?php echo __('AAM was thoroughly tested on the fresh installation of WordPress and in the latest versions of Chrome, Safari, IE and Firefox. If you have any issues, please make sure that there is no conflict with other plugins on your WordPress installation.', AAM_KEY); ?><br/>
|
63 |
+
<?php echo __('Please find below the short description of each feature that AAM offers.', AAM_KEY); ?>
|
64 |
+
</p>
|
65 |
|
66 |
+
<p class="text-justify">
|
67 |
+
<strong><?php echo __('Backend Menu', AAM_KEY); ?></strong><br/>
|
68 |
+
<?php echo __('Filter the admin menu. Please notice that it only filters the menu but does not restrict a direct access to the filtered menus. In order to completely restrict access to the menu, make sure that your role or user does not have capability that is assigned by WordPress core to that menu (the capability name is right next to the menu name).', AAM_KEY); ?>
|
69 |
+
</p>
|
70 |
|
71 |
+
<p class="text-justify">
|
72 |
+
<strong><?php echo __('Metaboxes & Widgets', AAM_KEY); ?></strong><br/>
|
73 |
+
<?php echo __('Filter backend metaboxes and frontend widgets. If the list of metaboxes and widgets is empty, click the “Refresh” button. This will reinitialize the list. It is a possibility that this feature will not work on servers that fails to execute WordPress remote request function “wp_remote_request”.', AAM_KEY); ?>
|
74 |
+
</p>
|
75 |
|
76 |
+
<p class="text-justify">
|
77 |
+
<strong><?php echo __('Capabilities', AAM_KEY); ?></strong><br/>
|
78 |
+
<?php echo __('This is probably the most important and powerful feature that manages list of capabilities for roles and users. Please make sure that you are familiar with WordPress Roles and Capabilities before using this feature. Do not try to un-check any capability for the Administrator role because your might lose access to your backend. While creating a new capability, AAM takes the capability name without any additional processing or normalization; which means that if you created new capability “Manage Boats”, internally it retains the same exact name.', AAM_KEY); ?>
|
79 |
+
</p>
|
80 |
|
81 |
+
<p class="text-justify">
|
82 |
+
<strong><?php echo __('Posts & Pages', AAM_KEY); ?></strong><br/>
|
83 |
+
<?php echo __('Manage access to your posts, pages and custom post types.', AAM_KEY); ?> <span class="aam-highlight"><?php echo __('Please notice!', AAM_KEY); ?></span> <?php echo __('This feature has limitations without AAM Plus Package extension.', AAM_KEY); ?>
|
84 |
+
</p>
|
85 |
+
|
86 |
+
<p class="text-justify">
|
87 |
+
<strong><?php echo __('Extensions', AAM_KEY); ?></strong><br/>
|
88 |
+
<?php echo sprintf(__('Extend AAM functionality with variety of extensions that can be either downloaded for free or purchased. All payment transactions are handled securely through PayPal and the PayPal Transaction ID is used to obtain the purchased extension (you can find Transaction ID in the email that PayPal send you after the purchase). Most of the time the extension is available for download almost immediately but it might take up to 2 hours for PayPal to notify our server about your payment. You are allowed to get the full refund within 30 days after the purchase, if extension did not meet your expectation. Please submit the %srefund form%s and we will issue a refund within next 3 business days.', AAM_KEY), '<a href="http://vasyltech.com/advanced-access-manager" target="_blank">', '</a>'); ?>
|
89 |
+
</p>
|
90 |
+
|
91 |
+
<div class="aam-info aam-social">
|
92 |
+
<a href="http://vasyltech.com" target="_blank"><i class="icon-home"></i></a>
|
93 |
+
<a href="http://twitter.com/vasyltech" target="_blank"><i class="icon-twitter"></i></a>
|
94 |
+
<a href="https://github.com/VasylTech/advanced-access-manager" target="_blank"><i class="icon-github"></i></a>
|
95 |
+
</div>
|
96 |
</div>
|
97 |
</div>
|
98 |
</div>
|
99 |
</div>
|
100 |
</div>
|
|
|
101 |
|
102 |
+
<div class="col-xs-12 col-md-4">
|
103 |
+
<div class="metabox-holder">
|
104 |
+
<?php do_action('aam-sidebar-ui-action', 'top'); ?>
|
105 |
|
106 |
+
<div class="postbox">
|
107 |
+
<h3 class="hndle">
|
108 |
+
<span><?php echo __('User/Role Manager', AAM_KEY); ?></span>
|
109 |
+
<span class="aam-help-menu" data-target="#user-role-manager-inside"><i class="icon-help-circled"></i></span>
|
110 |
+
</h3>
|
111 |
+
<div class="inside" id="user-role-manager-inside">
|
112 |
+
<div class="aam-postbox-inside">
|
113 |
+
<ul class="nav nav-tabs" role="tablist">
|
114 |
+
<li role="presentation" class="active"><a href="#roles" aria-controls="roles" role="tab" data-toggle="tab"><i class="icon-users"></i> <?php echo __('Roles', AAM_KEY); ?></a></li>
|
115 |
+
<li role="presentation"><a href="#users" aria-controls="users" role="tab" data-toggle="tab"><i class="icon-user"></i> <?php echo __('Users', AAM_KEY); ?></a></li>
|
116 |
+
<?php if (current_user_can('edit_users')) { ?>
|
117 |
+
<li role="presentation"><a href="#visitor" aria-controls="visitor" role="tab" data-toggle="tab"><i class="icon-user-secret"></i> <?php echo __('Visitor', AAM_KEY); ?></a></li>
|
118 |
+
<?php } ?>
|
119 |
+
</ul>
|
120 |
+
<div class="tab-content">
|
121 |
+
<div role="tabpanel" class="tab-pane active" id="roles">
|
122 |
+
<table id="role-list" class="table table-striped table-bordered">
|
123 |
+
<thead>
|
124 |
+
<tr>
|
125 |
+
<th>ID</th>
|
126 |
+
<th>Users</th>
|
127 |
+
<th width="70%"><?php echo __('Role', AAM_KEY); ?></th>
|
128 |
+
<th><?php echo __('Action', AAM_KEY); ?></th>
|
129 |
+
</tr>
|
130 |
+
</thead>
|
131 |
+
<tbody></tbody>
|
132 |
+
</table>
|
133 |
|
134 |
+
<div class="modal fade" id="add-role-modal" tabindex="-1" role="dialog">
|
135 |
+
<div class="modal-dialog modal-sm" role="document">
|
136 |
+
<div class="modal-content">
|
137 |
+
<div class="modal-header">
|
138 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
139 |
+
<h4 class="modal-title"><?php echo __('Add New Role', AAM_KEY); ?></h4>
|
|
|
|
|
|
|
|
|
|
|
140 |
</div>
|
141 |
+
<div class="modal-body">
|
142 |
+
<div class="form-group">
|
143 |
+
<label for="new-role-name"><?php echo __('Role Name', AAM_KEY); ?><span class="aam-asterix">*</span></label>
|
144 |
+
<input type="text" class="form-control" id="new-role-name" placeholder="<?php echo __('Enter Role Name', AAM_KEY); ?>" />
|
145 |
+
</div>
|
146 |
+
<div class="form-group">
|
147 |
+
<label for="inherit-role-list"><?php echo __('Inherit Capabilities', AAM_KEY); ?></label>
|
148 |
+
<select class="form-control" id="inherit-role-list">
|
149 |
+
<option value=""><?php echo __('Select Role', AAM_KEY); ?></option>
|
150 |
+
</select>
|
151 |
+
</div>
|
152 |
+
</div>
|
153 |
+
<div class="modal-footer">
|
154 |
+
<button type="button" class="btn btn-success" id="add-role-btn"><?php echo __('Add Role', AAM_KEY); ?></button>
|
155 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Close', AAM_KEY); ?></button>
|
156 |
</div>
|
|
|
|
|
|
|
|
|
157 |
</div>
|
158 |
</div>
|
159 |
</div>
|
|
|
160 |
|
161 |
+
<div class="modal fade" id="edit-role-modal" tabindex="-1" role="dialog">
|
162 |
+
<div class="modal-dialog modal-sm" role="document">
|
163 |
+
<div class="modal-content">
|
164 |
+
<div class="modal-header">
|
165 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
166 |
+
<h4 class="modal-title"><?php echo __('Edit Role', AAM_KEY); ?></h4>
|
167 |
+
</div>
|
168 |
+
<div class="modal-body">
|
169 |
+
<div class="form-group">
|
170 |
+
<label for="new-role-name"><?php echo __('Role Name', AAM_KEY); ?></label>
|
171 |
+
<input type="text" class="form-control" id="edit-role-name" placeholder="<?php echo __('Enter Role Name', AAM_KEY); ?>" />
|
172 |
+
</div>
|
173 |
+
</div>
|
174 |
+
<div class="modal-footer">
|
175 |
+
<button type="button" class="btn btn-success" id="edit-role-btn"><?php echo __('Update Role', AAM_KEY); ?></button>
|
176 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Close', AAM_KEY); ?></button>
|
177 |
</div>
|
|
|
|
|
|
|
|
|
178 |
</div>
|
179 |
</div>
|
180 |
</div>
|
|
|
181 |
|
182 |
+
<div class="modal fade" id="delete-role-modal" tabindex="-1" role="dialog">
|
183 |
+
<div class="modal-dialog modal-sm" role="document">
|
184 |
+
<div class="modal-content">
|
185 |
+
<div class="modal-header">
|
186 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
187 |
+
<h4 class="modal-title"><?php echo __('Delete Role', AAM_KEY); ?></h4>
|
188 |
+
</div>
|
189 |
+
<div class="modal-body">
|
190 |
+
<p class="text-center aam-confirm-message" data-message="<?php echo __('Are you sure that you want to delete %s role?', AAM_KEY); ?>"></p>
|
191 |
+
</div>
|
192 |
+
<div class="modal-footer">
|
193 |
+
<button type="button" class="btn btn-danger" id="delete-role-btn"><?php echo __('Delete Role', AAM_KEY); ?></button>
|
194 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Close', AAM_KEY); ?></button>
|
195 |
+
</div>
|
196 |
</div>
|
197 |
</div>
|
198 |
</div>
|
|
|
199 |
|
200 |
+
<div class="modal fade" id="role-notification-modal" tabindex="-1" role="dialog">
|
201 |
+
<div class="modal-dialog" role="document">
|
202 |
+
<div class="modal-content">
|
203 |
+
<div class="modal-header">
|
204 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
205 |
+
<h4 class="modal-title"><?php echo __('Notification', AAM_KEY); ?></h4>
|
206 |
+
</div>
|
207 |
+
<div class="modal-body">
|
208 |
+
<p class="text-center aam-notification-message"><?php echo __('You are not allowed to delete this role because either you do not have a capability to "Delete Users" or there is at least one user assigned to it.', AAM_KEY); ?></p>
|
209 |
+
</div>
|
210 |
+
<div class="modal-footer">
|
211 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('OK', AAM_KEY); ?></button>
|
212 |
+
</div>
|
213 |
</div>
|
214 |
</div>
|
215 |
</div>
|
|
|
216 |
|
217 |
+
</div>
|
218 |
+
<div role="tabpanel" class="tab-pane" id="users">
|
219 |
+
<table id="user-list" class="table table-striped table-bordered">
|
220 |
+
<thead>
|
221 |
+
<tr>
|
222 |
+
<th>ID</th>
|
223 |
+
<th>Roles</th>
|
224 |
+
<th width="65%"><?php echo __('Username', AAM_KEY); ?></th>
|
225 |
+
<th><?php echo __('Action', AAM_KEY); ?></th>
|
226 |
+
</tr>
|
227 |
+
</thead>
|
228 |
+
<tbody></tbody>
|
229 |
+
</table>
|
230 |
|
231 |
+
<div class="modal fade" id="user-notification-modal" tabindex="-1" role="dialog">
|
232 |
+
<div class="modal-dialog modal-sm" role="document">
|
233 |
+
<div class="modal-content">
|
234 |
+
<div class="modal-header">
|
235 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
236 |
+
<h4 class="modal-title"><?php echo __('Notification', AAM_KEY); ?></h4>
|
237 |
+
</div>
|
238 |
+
<div class="modal-body">
|
239 |
+
<p class="text-center aam-notification-message"><?php echo __('You are not allowed to perform this action.', AAM_KEY); ?></p>
|
240 |
+
</div>
|
241 |
+
<div class="modal-footer">
|
242 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('OK', AAM_KEY); ?></button>
|
243 |
+
</div>
|
244 |
</div>
|
245 |
</div>
|
246 |
</div>
|
|
|
247 |
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
</div>
|
249 |
+
<?php if (current_user_can('edit_users')) { ?>
|
250 |
+
<div role="tabpanel" class="tab-pane" id="visitor">
|
251 |
+
<div class="visitor-message">
|
252 |
+
<span><?php echo __('Manage access to your website for visitors (any user that is not authenticated)', AAM_KEY); ?>.</span>
|
253 |
+
<button class="btn btn-primary btn-block" id="manage-visitor"><i class="icon-cog"></i> <?php echo __('Manage Visitor', AAM_KEY); ?></button>
|
254 |
+
</div>
|
255 |
+
</div>
|
256 |
+
<?php } ?>
|
257 |
</div>
|
|
|
258 |
</div>
|
259 |
+
<div class="aam-help-context">
|
260 |
+
<p class="aam-info aam-hint">
|
261 |
+
<?php echo AAM_Backend_Helper::preparePhrase('Manage access for your users, roles and visitors. Please be careful with Administrator role as well as your admin user. [Database backup is strongly recommended]', 'b'); ?>
|
262 |
+
</p>
|
|
|
263 |
|
264 |
+
<p class="text-justify">
|
265 |
+
<strong><?php echo __('Role Manager', AAM_KEY); ?></strong><br/>
|
266 |
+
<?php echo __('With role manager you can manage access for any defined role, edit role\'s name, create new role or even delete existing (but only when there is no users assigned to it). You are not allowed to delete Administrator role.', AAM_KEY); ?>
|
267 |
+
</p>
|
268 |
|
269 |
+
<p class="text-justify">
|
270 |
+
<strong><?php echo __('User Manager', AAM_KEY); ?></strong><br/>
|
271 |
+
<?php echo __('Manage access for any user. As a bonus feature, you can block user. It means that user will be not able to login to your website anymore. Create or edit user actions link to the native WordPress create/edit user interface.', AAM_KEY); ?>
|
272 |
+
</p>
|
273 |
|
274 |
+
<p class="text-justify">
|
275 |
+
<strong><?php echo __('Visitor Manager', AAM_KEY); ?></strong><br/>
|
276 |
+
<?php echo __('Visitor is any user that is not authenticated to your website. Considering the fact that visitors do not have any access to backend, any features that ara backend related are disabled.', AAM_KEY); ?>
|
277 |
+
</p>
|
278 |
+
|
279 |
+
<div class="aam-info aam-social">
|
280 |
+
<a href="http://vasyltech.com" target="_blank"><i class="icon-home"></i></a>
|
281 |
+
<a href="http://twitter.com/vasyltech" target="_blank"><i class="icon-twitter"></i></a>
|
282 |
+
<a href="https://github.com/VasylTech/advanced-access-manager" target="_blank"><i class="icon-github"></i></a>
|
283 |
+
</div>
|
284 |
</div>
|
285 |
</div>
|
286 |
</div>
|
287 |
+
<?php do_action('aam-sidebar-ui-action', 'bottom'); ?>
|
288 |
+
|
289 |
+
<!-- Error Fix Promotion: begin -->
|
290 |
+
<div class="postbox hidden" id="errorfix-promotion">
|
291 |
+
<h3 class="hndle">
|
292 |
+
<span>Website Error Fix</span>
|
293 |
+
<a href="http://phperrorfix.com" target="_blank" class="aam-help-menu"><i class="icon-help-circled"></i></a>
|
294 |
+
</h3>
|
295 |
+
<div class="inside">
|
296 |
+
<p class="aam-info">Keep your website error free with our patent pending <b>WP Error Fix</b>.</p>
|
297 |
+
<a href="#" class="btn btn-warning btn-lg btn-block" id="errorfix-install-btn">Install WP Error Fix</a>
|
298 |
+
</div>
|
299 |
+
</div>
|
300 |
+
<!-- Error Fix Promotion: end -->
|
|
|
|
|
301 |
</div>
|
302 |
</div>
|
303 |
</div>
|
304 |
</div>
|
305 |
+
<?php
|
306 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Application/Backend/view/main-panel.phtml
CHANGED
@@ -1,21 +1,24 @@
|
|
1 |
-
|
2 |
-
<div class="
|
3 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
<?php
|
5 |
-
foreach (AAM_Backend_Feature::retriveList() as $
|
6 |
-
echo
|
7 |
-
echo $feature->title;
|
8 |
-
echo (empty($feature->notification) ? '' : ' <span class="badge">' . $feature->notification . '</span>');
|
9 |
-
echo '</li>';
|
10 |
}
|
11 |
?>
|
12 |
-
</
|
13 |
</div>
|
14 |
-
|
15 |
-
|
16 |
-
foreach (AAM_Backend_Feature::retriveList() as $feature) {
|
17 |
-
echo $feature->view->getContent();
|
18 |
-
}
|
19 |
-
?>
|
20 |
-
</div>
|
21 |
-
</div>
|
1 |
+
<?php if (defined('AAM_KEY')) { ?>
|
2 |
+
<div class="row">
|
3 |
+
<div class="col-xs-12 col-md-4">
|
4 |
+
<ul class="list-group" id="feature-list">
|
5 |
+
<?php
|
6 |
+
foreach (AAM_Backend_Feature::retriveList() as $i => $feature) {
|
7 |
+
echo '<li class="list-group-item" data-feature="' . $feature->uid . '">';
|
8 |
+
echo $feature->title;
|
9 |
+
echo (empty($feature->notification) ? '' : ' <span class="badge">' . $feature->notification . '</span>');
|
10 |
+
echo '</li>';
|
11 |
+
}
|
12 |
+
?>
|
13 |
+
</ul>
|
14 |
+
</div>
|
15 |
+
<div class="col-xs-12 col-md-8">
|
16 |
<?php
|
17 |
+
foreach (AAM_Backend_Feature::retriveList() as $feature) {
|
18 |
+
echo $feature->view->getContent();
|
|
|
|
|
|
|
19 |
}
|
20 |
?>
|
21 |
+
</div>
|
22 |
</div>
|
23 |
+
<?php
|
24 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
Application/Backend/view/object/capability.phtml
CHANGED
@@ -1,57 +1,60 @@
|
|
1 |
-
|
2 |
-
<div class="
|
3 |
-
<div class="
|
4 |
-
<
|
5 |
-
|
6 |
-
|
|
|
|
|
7 |
</div>
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
</
|
|
|
21 |
</div>
|
22 |
-
<a href="#" class="btn btn-xs btn-primary" id="add-capability"><i class="icon-plus"></i> <?php echo __('Create', AAM_KEY); ?></a>
|
23 |
-
</div>
|
24 |
|
25 |
-
|