Version Description
(2017-09-19) =
-
Improvement
- Improved the sensor for custom post types so posts with NULL value or other temp custom posts are not reported. This was reported in several support tickets; here, here and here.
-
Bug Fix
- Add a new check to ensure the object is of WP_Post class Support Ticket
Download this release
Release Info
Developer | WPWhiteSecurity |
Plugin | WP Security Audit Log |
Version | 2.6.8 |
Comparing to | |
See all releases |
Code changes from version 2.6.7 to 2.6.8
- classes/AlertManager.php +465 -428
- classes/Sensors/Content.php +991 -992
- classes/Sensors/PluginsThemes.php +366 -361
- classes/Settings.php +978 -948
- classes/Views/Settings.php +98 -42
- css/settings.css +21 -16
- js/settings.js +26 -18
- languages/wp-security-audit-log.pot +1798 -851
- readme.txt +9 -1
- wp-security-audit-log.php +2 -2
classes/AlertManager.php
CHANGED
@@ -7,432 +7,469 @@
|
|
7 |
*/
|
8 |
final class WSAL_AlertManager
|
9 |
{
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
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 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
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 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
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 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
}
|
7 |
*/
|
8 |
final class WSAL_AlertManager
|
9 |
{
|
10 |
+
/**
|
11 |
+
* @var WSAL_Alert[]
|
12 |
+
*/
|
13 |
+
protected $_alerts = array();
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @var WSAL_AbstractLogger[]
|
17 |
+
*/
|
18 |
+
protected $_loggers = array();
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @var WpSecurityAuditLog
|
22 |
+
*/
|
23 |
+
protected $plugin;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Contains a list of alerts to trigger.
|
27 |
+
* @var array
|
28 |
+
*/
|
29 |
+
protected $_pipeline = array();
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Contains an array of alerts that have been triggered for this request.
|
33 |
+
* @var int[]
|
34 |
+
*/
|
35 |
+
protected $_triggered_types = array();
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Create new AlertManager instance.
|
39 |
+
* @param WpSecurityAuditLog $plugin
|
40 |
+
*/
|
41 |
+
public function __construct(WpSecurityAuditLog $plugin)
|
42 |
+
{
|
43 |
+
$this->plugin = $plugin;
|
44 |
+
foreach (glob(dirname(__FILE__) . '/Loggers/*.php') as $file) {
|
45 |
+
$this->AddFromFile($file);
|
46 |
+
}
|
47 |
+
|
48 |
+
add_action('shutdown', array($this, '_CommitPipeline'));
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Add new logger from file inside autoloader path.
|
53 |
+
* @param string $file Path to file.
|
54 |
+
*/
|
55 |
+
public function AddFromFile($file)
|
56 |
+
{
|
57 |
+
$this->AddFromClass($this->plugin->GetClassFileClassName($file));
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Add new logger given class name.
|
62 |
+
* @param string $class Class name.
|
63 |
+
*/
|
64 |
+
public function AddFromClass($class)
|
65 |
+
{
|
66 |
+
$this->AddInstance(new $class($this->plugin));
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Add newly created logger to list.
|
71 |
+
* @param WSAL_AbstractLogger $logger The new logger.
|
72 |
+
*/
|
73 |
+
public function AddInstance(WSAL_AbstractLogger $logger)
|
74 |
+
{
|
75 |
+
$this->_loggers[] = $logger;
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Remove logger by class name.
|
80 |
+
* @param string $class The class name.
|
81 |
+
*/
|
82 |
+
public function RemoveByClass($class)
|
83 |
+
{
|
84 |
+
foreach ($this->_loggers as $i => $inst) {
|
85 |
+
if (get_class($inst) == $class) {
|
86 |
+
unset($this->_loggers[$i]);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Trigger an alert.
|
93 |
+
*
|
94 |
+
* @param integer $type Alert type.
|
95 |
+
* @param array $data Alert data.
|
96 |
+
* @param bool $delayed - False if delayed, true if not.
|
97 |
+
*/
|
98 |
+
public function Trigger( $type, $data = array(), $delayed = false ) {
|
99 |
+
|
100 |
+
// Get username.
|
101 |
+
$username = wp_get_current_user()->user_login;
|
102 |
+
if ( empty( $username ) && ! empty( $data['Username'] ) ) {
|
103 |
+
$username = $data['Username'];
|
104 |
+
}
|
105 |
+
|
106 |
+
// Get current user roles.
|
107 |
+
$roles = $this->plugin->settings->GetCurrentUserRoles();
|
108 |
+
if ( empty( $roles ) && ! empty( $data['CurrentUserRoles'] ) ) {
|
109 |
+
$roles = $data['CurrentUserRoles'];
|
110 |
+
}
|
111 |
+
|
112 |
+
// Check if IP is disabled.
|
113 |
+
if ( $this->IsDisabledIP() ) {
|
114 |
+
return;
|
115 |
+
}
|
116 |
+
|
117 |
+
// Check if PostType index is set in data array.
|
118 |
+
if ( isset( $data['PostType'] ) && ! empty( $data['PostType'] ) ) {
|
119 |
+
// If the post type is disabled then return.
|
120 |
+
if ( $this->is_disabled_post_type( $data['PostType'] ) ) {
|
121 |
+
return;
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
// If user or user role is enable then go ahead.
|
126 |
+
if ( $this->CheckEnableUserRoles( $username, $roles ) ) {
|
127 |
+
if ( $delayed ) {
|
128 |
+
$this->TriggerIf( $type, $data, null );
|
129 |
+
} else {
|
130 |
+
$this->_CommitItem( $type, $data, null );
|
131 |
+
}
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Check enable user and roles.
|
137 |
+
* @param string user
|
138 |
+
* @param array roles
|
139 |
+
* @return boolean True if enable false otherwise.
|
140 |
+
*/
|
141 |
+
public function CheckEnableUserRoles($user, $roles)
|
142 |
+
{
|
143 |
+
$is_enable = true;
|
144 |
+
if ($user != "" && $this->IsDisabledUser($user)) {
|
145 |
+
$is_enable = false;
|
146 |
+
}
|
147 |
+
if ($roles != "" && $this->IsDisabledRole($roles)) {
|
148 |
+
$is_enable = false;
|
149 |
+
}
|
150 |
+
return $is_enable;
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Trigger only if a condition is met at the end of request.
|
155 |
+
*
|
156 |
+
* @param integer $type Alert type ID.
|
157 |
+
* @param array $data Alert data.
|
158 |
+
* @param callable $cond A future condition callback (receives an object of type WSAL_AlertManager as parameter).
|
159 |
+
*/
|
160 |
+
public function TriggerIf( $type, $data, $cond = null ) {
|
161 |
+
$username = wp_get_current_user()->user_login;
|
162 |
+
$roles = $this->plugin->settings->GetCurrentUserRoles();
|
163 |
+
|
164 |
+
if ( $this->CheckEnableUserRoles( $username, $roles ) ) {
|
165 |
+
$this->_pipeline[] = array(
|
166 |
+
'type' => $type,
|
167 |
+
'data' => $data,
|
168 |
+
'cond' => $cond,
|
169 |
+
);
|
170 |
+
}
|
171 |
+
}
|
172 |
+
|
173 |
+
/**
|
174 |
+
* @internal Commit an alert now.
|
175 |
+
*/
|
176 |
+
protected function _CommitItem($type, $data, $cond, $_retry = true)
|
177 |
+
{
|
178 |
+
if (!$cond || !!call_user_func($cond, $this)) {
|
179 |
+
if ($this->IsEnabled($type)) {
|
180 |
+
if (isset($this->_alerts[$type])) {
|
181 |
+
// ok, convert alert to a log entry
|
182 |
+
$this->_triggered_types[] = $type;
|
183 |
+
$this->Log($type, $data);
|
184 |
+
} elseif ($_retry) {
|
185 |
+
// this is the last attempt at loading alerts from default file
|
186 |
+
$this->plugin->LoadDefaults();
|
187 |
+
return $this->_CommitItem($type, $data, $cond, false);
|
188 |
+
} else {
|
189 |
+
// in general this shouldn't happen, but it could, so we handle it here :)
|
190 |
+
throw new Exception('Alert with code "' . $type . '" has not be registered.');
|
191 |
+
}
|
192 |
+
}
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* @internal Runs over triggered alerts in pipeline and passes them to loggers.
|
198 |
+
*/
|
199 |
+
public function _CommitPipeline()
|
200 |
+
{
|
201 |
+
foreach ($this->_pipeline as $item) {
|
202 |
+
$this->_CommitItem($item['type'], $item['data'], $item['cond']);
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* @param integer $type Alert type ID.
|
208 |
+
* @return boolean True if at the end of request an alert of this type will be triggered.
|
209 |
+
*/
|
210 |
+
public function WillTrigger($type)
|
211 |
+
{
|
212 |
+
foreach ($this->_pipeline as $item) {
|
213 |
+
if ($item['type'] == $type) {
|
214 |
+
return true;
|
215 |
+
}
|
216 |
+
}
|
217 |
+
return false;
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* @param int $type Alert type ID.
|
222 |
+
* @return boolean True if an alert has been or will be triggered in this request, false otherwise.
|
223 |
+
*/
|
224 |
+
public function WillOrHasTriggered($type)
|
225 |
+
{
|
226 |
+
return in_array($type, $this->_triggered_types)
|
227 |
+
|| $this->WillTrigger($type);
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* Register an alert type.
|
232 |
+
* @param array $info Array of [type, code, category, description, message] respectively.
|
233 |
+
*/
|
234 |
+
public function Register($info)
|
235 |
+
{
|
236 |
+
if (func_num_args() == 1) {
|
237 |
+
// handle single item
|
238 |
+
list($type, $code, $catg, $subcatg, $desc, $mesg) = $info;
|
239 |
+
if (isset($this->_alerts[$type])) {
|
240 |
+
throw new Exception("Alert $type already registered with Alert Manager.");
|
241 |
+
}
|
242 |
+
$this->_alerts[$type] = new WSAL_Alert($type, $code, $catg, $subcatg, $desc, $mesg);
|
243 |
+
} else {
|
244 |
+
// handle multiple items
|
245 |
+
foreach (func_get_args() as $arg) {
|
246 |
+
$this->Register($arg);
|
247 |
+
}
|
248 |
+
}
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
* Register a whole group of items.
|
253 |
+
* @param array $groups An array with group name as the index and an array of group items as the value.
|
254 |
+
* Item values is an array of [type, code, description, message] respectively.
|
255 |
+
*/
|
256 |
+
public function RegisterGroup($groups)
|
257 |
+
{
|
258 |
+
foreach ($groups as $name => $group) {
|
259 |
+
foreach ($group as $subname => $subgroup) {
|
260 |
+
foreach ($subgroup as $item) {
|
261 |
+
list($type, $code, $desc, $mesg) = $item;
|
262 |
+
$this->Register(array($type, $code, $name, $subname, $desc, $mesg));
|
263 |
+
}
|
264 |
+
}
|
265 |
+
}
|
266 |
+
}
|
267 |
+
|
268 |
+
/**
|
269 |
+
* Returns whether alert of type $type is enabled or not.
|
270 |
+
* @param integer $type Alert type.
|
271 |
+
* @return boolean True if enabled, false otherwise.
|
272 |
+
*/
|
273 |
+
public function IsEnabled($type)
|
274 |
+
{
|
275 |
+
return !in_array($type, $this->GetDisabledAlerts());
|
276 |
+
}
|
277 |
+
|
278 |
+
/**
|
279 |
+
* Disables a set of alerts by type.
|
280 |
+
* @param int[] $types Alert type codes to be disabled.
|
281 |
+
*/
|
282 |
+
public function SetDisabledAlerts($types)
|
283 |
+
{
|
284 |
+
$this->plugin->settings->SetDisabledAlerts($types);
|
285 |
+
}
|
286 |
+
|
287 |
+
/**
|
288 |
+
* @return int[] Returns an array of disabled alerts' type code.
|
289 |
+
*/
|
290 |
+
public function GetDisabledAlerts()
|
291 |
+
{
|
292 |
+
return $this->plugin->settings->GetDisabledAlerts();
|
293 |
+
}
|
294 |
+
|
295 |
+
/**
|
296 |
+
* @return WSAL_AbstractLogger[] Returns an array of loaded loggers.
|
297 |
+
*/
|
298 |
+
public function GetLoggers()
|
299 |
+
{
|
300 |
+
return $this->_loggers;
|
301 |
+
}
|
302 |
+
|
303 |
+
/**
|
304 |
+
* Converts an Alert into a Log entry (by invoking loggers).
|
305 |
+
* You should not call this method directly.
|
306 |
+
* @param integer $type Alert type.
|
307 |
+
* @param array $data Misc alert data.
|
308 |
+
*/
|
309 |
+
protected function Log($type, $data = array())
|
310 |
+
{
|
311 |
+
if (!isset($data['ClientIP'])) {
|
312 |
+
$clientIP = $this->plugin->settings->GetMainClientIP();
|
313 |
+
if (!empty($clientIP)) {
|
314 |
+
$data['ClientIP'] = $clientIP;
|
315 |
+
}
|
316 |
+
}
|
317 |
+
if (!isset($data['OtherIPs']) && $this->plugin->settings->IsMainIPFromProxy()) {
|
318 |
+
$otherIPs = $this->plugin->settings->GetClientIPs();
|
319 |
+
if (!empty($otherIPs)) {
|
320 |
+
$data['OtherIPs'] = $otherIPs;
|
321 |
+
}
|
322 |
+
}
|
323 |
+
if (!isset($data['UserAgent'])) {
|
324 |
+
if (isset($_SERVER['HTTP_USER_AGENT'])) {
|
325 |
+
$data['UserAgent'] = $_SERVER['HTTP_USER_AGENT'];
|
326 |
+
}
|
327 |
+
}
|
328 |
+
if (!isset($data['Username']) && !isset($data['CurrentUserID'])) {
|
329 |
+
if (function_exists('get_current_user_id')) {
|
330 |
+
$data['CurrentUserID'] = get_current_user_id();
|
331 |
+
}
|
332 |
+
}
|
333 |
+
if (!isset($data['CurrentUserRoles']) && function_exists('is_user_logged_in') && is_user_logged_in()) {
|
334 |
+
$currentUserRoles = $this->plugin->settings->GetCurrentUserRoles();
|
335 |
+
if (!empty($currentUserRoles)) {
|
336 |
+
$data['CurrentUserRoles'] = $currentUserRoles;
|
337 |
+
}
|
338 |
+
}
|
339 |
+
// Check if the user management plugin is loaded and adds the SessionID
|
340 |
+
if ( class_exists( 'WSAL_User_Management_Plugin' ) ) {
|
341 |
+
if ( function_exists( 'get_current_user_id' ) ) {
|
342 |
+
$session_tokens = get_user_meta( get_current_user_id(), 'session_tokens', true );
|
343 |
+
if ( ! empty( $session_tokens ) ) {
|
344 |
+
end( $session_tokens );
|
345 |
+
$data['SessionID'] = key( $session_tokens );
|
346 |
+
}
|
347 |
+
}
|
348 |
+
}
|
349 |
+
//if(isset($_SERVER['REMOTE_HOST']) && $_SERVER['REMOTE_HOST'] != $data['ClientIP'])
|
350 |
+
// $data['ClientHost'] = $_SERVER['REMOTE_HOST'];
|
351 |
+
//$data['OtherIPs'] = $_SERVER['REMOTE_HOST'];
|
352 |
+
|
353 |
+
foreach ($this->_loggers as $logger) {
|
354 |
+
$logger->Log($type, $data);
|
355 |
+
}
|
356 |
+
}
|
357 |
+
|
358 |
+
/**
|
359 |
+
* Return alert given alert type.
|
360 |
+
* @param integer $type Alert type.
|
361 |
+
* @param mixed $default Returned if alert is not found.
|
362 |
+
* @return WSAL_Alert
|
363 |
+
*/
|
364 |
+
public function GetAlert($type, $default = null)
|
365 |
+
{
|
366 |
+
foreach ($this->_alerts as $alert) {
|
367 |
+
if ($alert->type == $type) {
|
368 |
+
return $alert;
|
369 |
+
}
|
370 |
+
}
|
371 |
+
return $default;
|
372 |
+
}
|
373 |
+
|
374 |
+
/**
|
375 |
+
* Returns all supported alerts.
|
376 |
+
* @return WSAL_Alert[]
|
377 |
+
*/
|
378 |
+
public function GetAlerts()
|
379 |
+
{
|
380 |
+
return $this->_alerts;
|
381 |
+
}
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Returns all supported alerts.
|
385 |
+
* @return array
|
386 |
+
*/
|
387 |
+
public function GetCategorizedAlerts()
|
388 |
+
{
|
389 |
+
$result = array();
|
390 |
+
foreach ($this->_alerts as $alert) {
|
391 |
+
if (!isset($result[$alert->catg])) {
|
392 |
+
$result[$alert->catg] = array();
|
393 |
+
}
|
394 |
+
if (!isset($result[$alert->catg][$alert->subcatg])) {
|
395 |
+
$result[$alert->catg][$alert->subcatg] = array();
|
396 |
+
}
|
397 |
+
$result[$alert->catg][$alert->subcatg][] = $alert;
|
398 |
+
}
|
399 |
+
ksort($result);
|
400 |
+
return $result;
|
401 |
+
}
|
402 |
+
|
403 |
+
/**
|
404 |
+
* Returns whether user is enabled or not.
|
405 |
+
*
|
406 |
+
* @param string $user - Username.
|
407 |
+
* @return boolean True if disabled, false otherwise.
|
408 |
+
*/
|
409 |
+
public function IsDisabledUser( $user ) {
|
410 |
+
return ( in_array( $user, $this->GetDisabledUsers() ) ) ? true : false;
|
411 |
+
}
|
412 |
+
|
413 |
+
/**
|
414 |
+
* @return Returns an array of disabled users.
|
415 |
+
*/
|
416 |
+
public function GetDisabledUsers() {
|
417 |
+
return $this->plugin->settings->GetExcludedMonitoringUsers();
|
418 |
+
}
|
419 |
+
|
420 |
+
/**
|
421 |
+
* Returns whether user is enabled or not.
|
422 |
+
*
|
423 |
+
* @param array $roles - User roles.
|
424 |
+
* @return boolean True if disabled, false otherwise.
|
425 |
+
*/
|
426 |
+
public function IsDisabledRole( $roles ) {
|
427 |
+
$is_disabled = false;
|
428 |
+
foreach ( $roles as $role ) {
|
429 |
+
if ( in_array( $role, $this->GetDisabledRoles() ) ) {
|
430 |
+
$is_disabled = true;
|
431 |
+
}
|
432 |
+
}
|
433 |
+
return $is_disabled;
|
434 |
+
}
|
435 |
+
|
436 |
+
/**
|
437 |
+
* Returns an array of disabled users.
|
438 |
+
*
|
439 |
+
* @return array
|
440 |
+
*/
|
441 |
+
public function GetDisabledRoles() {
|
442 |
+
return $this->plugin->settings->GetExcludedMonitoringRoles();
|
443 |
+
}
|
444 |
+
|
445 |
+
/**
|
446 |
+
* Method: Check whether post type is disabled or not.
|
447 |
+
*
|
448 |
+
* @param string $post_type - Post type.
|
449 |
+
* @return bool - True if disabled, False if otherwise.
|
450 |
+
* @since 2.6.7
|
451 |
+
*/
|
452 |
+
public function is_disabled_post_type( $post_type ) {
|
453 |
+
return ( in_array( $post_type, $this->get_disabled_post_types() ) ) ? true : false;
|
454 |
+
}
|
455 |
+
|
456 |
+
/**
|
457 |
+
* Method: Return array of disabled post types.
|
458 |
+
*
|
459 |
+
* @return array
|
460 |
+
* @since 2.6.7
|
461 |
+
*/
|
462 |
+
public function get_disabled_post_types() {
|
463 |
+
return $this->plugin->settings->get_excluded_post_types();
|
464 |
+
}
|
465 |
+
|
466 |
+
private function IsDisabledIP() {
|
467 |
+
$is_disabled = false;
|
468 |
+
$ip = $this->plugin->settings->GetMainClientIP();
|
469 |
+
$excluded_ips = $this->plugin->settings->GetExcludedMonitoringIP();
|
470 |
+
if ( in_array( $ip, $excluded_ips ) ) {
|
471 |
+
$is_disabled = true;
|
472 |
+
}
|
473 |
+
return $is_disabled;
|
474 |
+
}
|
475 |
}
|
classes/Sensors/Content.php
CHANGED
@@ -77,1059 +77,1058 @@
|
|
77 |
* 2088 User changed title of a custom post type
|
78 |
* 2104 User opened a custom post type in the editor
|
79 |
* 2105 User viewed a custom post type
|
80 |
-
*/
|
81 |
-
class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
protected $_OldPost = null;
|
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 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
|
191 |
-
|
192 |
-
|
193 |
-
|
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 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
|
235 |
-
|
236 |
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
|
623 |
-
|
624 |
-
|
625 |
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
|
785 |
-
|
786 |
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
}
|
77 |
* 2088 User changed title of a custom post type
|
78 |
* 2104 User opened a custom post type in the editor
|
79 |
* 2105 User viewed a custom post type
|
80 |
+
*/
|
81 |
+
class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
82 |
+
/**
|
83 |
+
* @var stdClass old post
|
84 |
+
*/
|
85 |
+
protected $_OldPost = null;
|
|
|
86 |
|
87 |
+
/**
|
88 |
+
* @var string old permalink
|
89 |
+
*/
|
90 |
+
protected $_OldLink = null;
|
91 |
|
92 |
+
/**
|
93 |
+
* @var array old categories
|
94 |
+
*/
|
95 |
+
protected $_OldCats = null;
|
96 |
|
97 |
+
/**
|
98 |
+
* @var string old path to file
|
99 |
+
*/
|
100 |
+
protected $_OldTmpl = null;
|
101 |
|
102 |
+
/**
|
103 |
+
* @var boolean old post is marked as sticky
|
104 |
+
*/
|
105 |
+
protected $_OldStky = null;
|
106 |
|
107 |
+
/**
|
108 |
+
* Listening to events using WP hooks.
|
109 |
+
*/
|
110 |
+
public function HookEvents()
|
111 |
+
{
|
112 |
+
if (current_user_can("edit_posts")) {
|
113 |
+
add_action('admin_init', array($this, 'EventWordpressInit'));
|
114 |
+
}
|
115 |
+
add_action('transition_post_status', array($this, 'EventPostChanged'), 10, 3);
|
116 |
+
add_action('delete_post', array($this, 'EventPostDeleted'), 10, 1);
|
117 |
+
add_action('wp_trash_post', array($this, 'EventPostTrashed'), 10, 1);
|
118 |
+
add_action('untrash_post', array($this, 'EventPostUntrashed'));
|
119 |
+
add_action('edit_category', array($this, 'EventChangedCategoryParent'));
|
120 |
+
add_action('save_post', array($this, 'SetRevisionLink'), 10, 3);
|
121 |
+
add_action('publish_future_post', array($this, 'EventPublishFuture'), 10, 1);
|
122 |
+
// to do change with 'create_term' instead 'create_category' for trigger Tags
|
123 |
+
add_action('create_category', array($this, 'EventCategoryCreation'), 10, 1);
|
124 |
|
125 |
+
add_action( 'wp_head', array( $this, 'ViewingPost' ), 10 );
|
126 |
+
add_filter('post_edit_form_tag', array($this, 'EditingPost'), 10, 1);
|
127 |
+
}
|
128 |
|
129 |
+
/**
|
130 |
+
* Gets the alert code based on the type of post.
|
131 |
+
* @param stdClass $post the post
|
132 |
+
* @param integer $typePost alert code type post
|
133 |
+
* @param integer $typePage alert code type page
|
134 |
+
* @param integer $typeCustom alert code type custom
|
135 |
+
* @return integer alert code
|
136 |
+
*/
|
137 |
+
protected function GetEventTypeForPostType($post, $typePost, $typePage, $typeCustom)
|
138 |
+
{
|
139 |
+
switch ($post->post_type) {
|
140 |
+
case 'page':
|
141 |
+
return $typePage;
|
142 |
+
case 'post':
|
143 |
+
return $typePost;
|
144 |
+
default:
|
145 |
+
return $typeCustom;
|
146 |
+
}
|
147 |
+
}
|
148 |
|
149 |
+
/**
|
150 |
+
* Triggered when a user accesses the admin area.
|
151 |
+
*/
|
152 |
+
public function EventWordpressInit()
|
153 |
+
{
|
154 |
+
// load old data, if applicable
|
155 |
+
$this->RetrieveOldData();
|
156 |
+
// check for category changes
|
157 |
+
$this->CheckCategoryDeletion();
|
158 |
+
}
|
159 |
|
160 |
+
/**
|
161 |
+
* Retrieve Old data.
|
162 |
+
* @global mixed $_POST post data
|
163 |
+
*/
|
164 |
+
protected function RetrieveOldData()
|
165 |
+
{
|
166 |
+
if (isset($_POST) && isset($_POST['post_ID'])
|
167 |
+
&& !(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
|
168 |
+
&& !(isset($_POST['action']) && $_POST['action'] == 'autosave')
|
169 |
+
) {
|
170 |
+
$postID = intval($_POST['post_ID']);
|
171 |
+
$this->_OldPost = get_post($postID);
|
172 |
+
$this->_OldLink = get_permalink($postID);
|
173 |
+
$this->_OldTmpl = $this->GetPostTemplate($this->_OldPost);
|
174 |
+
$this->_OldCats = $this->GetPostCategories($this->_OldPost);
|
175 |
+
$this->_OldStky = in_array($postID, get_option('sticky_posts'));
|
176 |
+
}
|
177 |
+
}
|
178 |
|
179 |
+
/**
|
180 |
+
* Get the template path.
|
181 |
+
* @param stdClass $post the post
|
182 |
+
* @return string full path to file
|
183 |
+
*/
|
184 |
+
protected function GetPostTemplate($post)
|
185 |
+
{
|
186 |
+
$id = $post->ID;
|
187 |
+
$template = get_page_template_slug($id);
|
188 |
+
$pagename = $post->post_name;
|
189 |
|
190 |
+
$templates = array();
|
191 |
+
if ($template && 0 === validate_file($template)) {
|
192 |
+
$templates[] = $template;
|
193 |
+
}
|
194 |
+
if ($pagename) {
|
195 |
+
$templates[] = "page-$pagename.php";
|
196 |
+
}
|
197 |
+
if ($id) {
|
198 |
+
$templates[] = "page-$id.php";
|
199 |
+
}
|
200 |
+
$templates[] = 'page.php';
|
201 |
|
202 |
+
return get_query_template('page', $templates);
|
203 |
+
}
|
204 |
|
205 |
+
/**
|
206 |
+
* Get post categories (array of category names).
|
207 |
+
* @param stdClass $post the post
|
208 |
+
* @return array list of categories
|
209 |
+
*/
|
210 |
+
protected function GetPostCategories($post)
|
211 |
+
{
|
212 |
+
return wp_get_post_categories($post->ID, array('fields' => 'names'));
|
213 |
+
}
|
214 |
|
215 |
+
/**
|
216 |
+
* Check all the post changes.
|
217 |
+
* @param string $newStatus new status
|
218 |
+
* @param string $oldStatus old status
|
219 |
+
* @param stdClass $post the post
|
220 |
+
*/
|
221 |
+
public function EventPostChanged($newStatus, $oldStatus, $post)
|
222 |
+
{
|
223 |
+
// ignorable states
|
224 |
+
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
|
225 |
+
return;
|
226 |
+
}
|
227 |
+
if (empty($post->post_type)) {
|
228 |
+
return;
|
229 |
+
}
|
230 |
+
if ($post->post_type == 'revision') {
|
231 |
+
return;
|
232 |
+
}
|
233 |
|
234 |
+
$original = isset($_POST['original_post_status']) ? $_POST['original_post_status'] : '';
|
235 |
|
236 |
+
WSAL_Sensors_Request::SetVars(array(
|
237 |
+
'$newStatus' => $newStatus,
|
238 |
+
'$oldStatus' => $oldStatus,
|
239 |
+
'$original' => $original,
|
240 |
+
));
|
241 |
+
// run checks
|
242 |
+
if ($this->_OldPost) {
|
243 |
+
if ($this->CheckOtherSensors($this->_OldPost)) {
|
244 |
+
return;
|
245 |
+
}
|
246 |
+
if ($oldStatus == 'auto-draft' || $original == 'auto-draft') {
|
247 |
+
// Handle create post events
|
248 |
+
$this->CheckPostCreation($this->_OldPost, $post);
|
249 |
+
} else {
|
250 |
+
// Handle update post events
|
251 |
+
$changes = 0
|
252 |
+
+ $this->CheckAuthorChange($this->_OldPost, $post)
|
253 |
+
+ $this->CheckStatusChange($this->_OldPost, $post)
|
254 |
+
+ $this->CheckParentChange($this->_OldPost, $post)
|
255 |
+
+ $this->CheckStickyChange($this->_OldStky, isset($_REQUEST['sticky']), $post)
|
256 |
+
+ $this->CheckVisibilityChange($this->_OldPost, $post, $oldStatus, $newStatus)
|
257 |
+
+ $this->CheckTemplateChange($this->_OldTmpl, $this->GetPostTemplate($post), $post)
|
258 |
+
+ $this->CheckCategoriesChange($this->_OldCats, $this->GetPostCategories($post), $post)
|
259 |
+
;
|
260 |
|
261 |
+
if (!$changes) {
|
262 |
+
$changes = $this->CheckDateChange($this->_OldPost, $post);
|
263 |
+
if (!$changes) {
|
264 |
+
$changes = $this->CheckPermalinkChange($this->_OldLink, get_permalink($post->ID), $post);
|
265 |
+
// Comments/Trackbacks and Pingbacks
|
266 |
+
if (!$changes) {
|
267 |
+
$changes = $this->CheckCommentsPings($this->_OldPost, $post);
|
268 |
+
if (!$changes) {
|
269 |
+
$changes = $this->CheckModificationChange($post->ID, $this->_OldPost, $post);
|
270 |
+
}
|
271 |
+
}
|
272 |
+
}
|
273 |
+
}
|
274 |
+
}
|
275 |
+
}
|
276 |
+
}
|
277 |
|
278 |
+
/**
|
279 |
+
* Check post creation.
|
280 |
+
* @global array $_POST
|
281 |
+
* @param stdClass $oldPost old post
|
282 |
+
* @param stdClass $newPost new post
|
283 |
+
*/
|
284 |
+
protected function CheckPostCreation($oldPost, $newPost)
|
285 |
+
{
|
286 |
+
$WPActions = array('editpost', 'heartbeat');
|
287 |
+
if (isset($_POST['action']) && in_array($_POST['action'], $WPActions)) {
|
288 |
+
if (!in_array($newPost->post_type, array('attachment', 'revision', 'nav_menu_item'))) {
|
289 |
+
$event = 0;
|
290 |
+
$is_scheduled = false;
|
291 |
+
switch ($newPost->post_status) {
|
292 |
+
case 'publish':
|
293 |
+
$event = $this->GetEventTypeForPostType($newPost, 2001, 2005, 2030);
|
294 |
+
break;
|
295 |
+
case 'draft':
|
296 |
+
$event = $this->GetEventTypeForPostType($newPost, 2000, 2004, 2029);
|
297 |
+
break;
|
298 |
+
case 'future':
|
299 |
+
$event = $this->GetEventTypeForPostType($newPost, 2074, 2075, 2076);
|
300 |
+
$is_scheduled = true;
|
301 |
+
break;
|
302 |
+
case 'pending':
|
303 |
+
$event = 2073;
|
304 |
+
break;
|
305 |
+
}
|
306 |
+
if ($event) {
|
307 |
+
$editorLink = $this->GetEditorLink($newPost);
|
308 |
+
if ($is_scheduled) {
|
309 |
+
$this->plugin->alerts->Trigger($event, array(
|
310 |
+
'PostType' => $newPost->post_type,
|
311 |
+
'PostTitle' => $newPost->post_title,
|
312 |
+
'PublishingDate' => $newPost->post_date,
|
313 |
+
$editorLink['name'] => $editorLink['value']
|
314 |
+
));
|
315 |
+
} else {
|
316 |
+
$this->plugin->alerts->Trigger($event, array(
|
317 |
+
'PostID' => $newPost->ID,
|
318 |
+
'PostType' => $newPost->post_type,
|
319 |
+
'PostTitle' => $newPost->post_title,
|
320 |
+
'PostUrl' => get_permalink($newPost->ID),
|
321 |
+
$editorLink['name'] => $editorLink['value']
|
322 |
+
));
|
323 |
+
}
|
324 |
+
}
|
325 |
+
}
|
326 |
+
}
|
327 |
+
}
|
328 |
|
329 |
+
/**
|
330 |
+
* Post future publishing.
|
331 |
+
* @param integer $post_id post ID
|
332 |
+
*/
|
333 |
+
public function EventPublishFuture($post_id)
|
334 |
+
{
|
335 |
+
$post = get_post($post_id);
|
336 |
+
$event = $this->GetEventTypeForPostType($post, 2001, 2005, 2030);
|
337 |
|
338 |
+
if ($event) {
|
339 |
+
$editorLink = $this->GetEditorLink($newPost);
|
340 |
+
$this->plugin->alerts->Trigger($event, array(
|
341 |
+
'PostID' => $post->ID,
|
342 |
+
'PostType' => $post->post_type,
|
343 |
+
'PostTitle' => $post->post_title,
|
344 |
+
'PostUrl' => get_permalink($post->ID),
|
345 |
+
$editorLink['name'] => $editorLink['value']
|
346 |
+
));
|
347 |
+
}
|
348 |
+
}
|
349 |
|
350 |
+
/**
|
351 |
+
* Post permanently deleted.
|
352 |
+
* @param integer $post_id post ID
|
353 |
+
*/
|
354 |
+
public function EventPostDeleted($post_id)
|
355 |
+
{
|
356 |
+
$post = get_post($post_id);
|
357 |
+
if ($this->CheckOtherSensors($post)) {
|
358 |
+
return;
|
359 |
+
}
|
360 |
+
$WPActions = array('delete');
|
361 |
+
if (isset($_REQUEST['action']) && in_array($_REQUEST['action'], $WPActions)) {
|
362 |
+
if (!in_array($post->post_type, array('attachment', 'revision', 'nav_menu_item'))) { // ignore attachments, revisions and menu items
|
363 |
+
$event = $this->GetEventTypeForPostType($post, 2008, 2009, 2033);
|
364 |
+
// check WordPress backend operations
|
365 |
+
if ($this->CheckAutoDraft($event, $post->post_title)) {
|
366 |
+
return;
|
367 |
+
}
|
368 |
+
$editorLink = $this->GetEditorLink($post);
|
369 |
+
$this->plugin->alerts->Trigger($event, array(
|
370 |
+
'PostID' => $post->ID,
|
371 |
+
'PostType' => $post->post_type,
|
372 |
+
'PostTitle' => $post->post_title,
|
373 |
+
));
|
374 |
+
}
|
375 |
+
}
|
376 |
+
}
|
377 |
|
378 |
+
/**
|
379 |
+
* Post moved to the trash.
|
380 |
+
* @param integer $post_id post ID
|
381 |
+
*/
|
382 |
+
public function EventPostTrashed($post_id)
|
383 |
+
{
|
384 |
+
$post = get_post($post_id);
|
385 |
+
if ($this->CheckOtherSensors($post)) {
|
386 |
+
return;
|
387 |
+
}
|
388 |
+
$event = $this->GetEventTypeForPostType($post, 2012, 2013, 2034);
|
389 |
+
$editorLink = $this->GetEditorLink($post);
|
390 |
+
$this->plugin->alerts->Trigger($event, array(
|
391 |
+
'PostID' => $post->ID,
|
392 |
+
'PostType' => $post->post_type,
|
393 |
+
'PostTitle' => $post->post_title,
|
394 |
+
'PostUrl' => get_permalink($post->ID),
|
395 |
+
$editorLink['name'] => $editorLink['value']
|
396 |
+
));
|
397 |
+
}
|
398 |
|
399 |
+
/**
|
400 |
+
* Post restored from trash.
|
401 |
+
* @param integer $post_id post ID
|
402 |
+
*/
|
403 |
+
public function EventPostUntrashed($post_id)
|
404 |
+
{
|
405 |
+
$post = get_post($post_id);
|
406 |
+
if ($this->CheckOtherSensors($post)) {
|
407 |
+
return;
|
408 |
+
}
|
409 |
+
$event = $this->GetEventTypeForPostType($post, 2014, 2015, 2035);
|
410 |
+
$editorLink = $this->GetEditorLink($post);
|
411 |
+
$this->plugin->alerts->Trigger($event, array(
|
412 |
+
'PostID' => $post->ID,
|
413 |
+
'PostType' => $post->post_type,
|
414 |
+
'PostTitle' => $post->post_title,
|
415 |
+
$editorLink['name'] => $editorLink['value']
|
416 |
+
));
|
417 |
+
}
|
418 |
|
419 |
+
/**
|
420 |
+
* Post date changed.
|
421 |
+
* @param stdClass $oldPost old post
|
422 |
+
* @param stdClass $newPost new post
|
423 |
+
*/
|
424 |
+
protected function CheckDateChange($oldpost, $newpost)
|
425 |
+
{
|
426 |
+
$from = strtotime($oldpost->post_date);
|
427 |
+
$to = strtotime($newpost->post_date);
|
428 |
+
if ($oldpost->post_status == 'draft') {
|
429 |
+
return 0;
|
430 |
+
}
|
431 |
+
$pending = $this->CheckReviewPendingChange($oldpost, $newpost);
|
432 |
+
if ($pending) {
|
433 |
+
return 0;
|
434 |
+
}
|
435 |
+
if ($from != $to) {
|
436 |
+
$event = $this->GetEventTypeForPostType($oldpost, 2027, 2028, 2041);
|
437 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
438 |
+
$this->plugin->alerts->Trigger($event, array(
|
439 |
+
'PostID' => $oldpost->ID,
|
440 |
+
'PostType' => $oldpost->post_type,
|
441 |
+
'PostTitle' => $oldpost->post_title,
|
442 |
+
'OldDate' => $oldpost->post_date,
|
443 |
+
'NewDate' => $newpost->post_date,
|
444 |
+
$editorLink['name'] => $editorLink['value']
|
445 |
+
));
|
446 |
+
return 1;
|
447 |
+
}
|
448 |
+
return 0;
|
449 |
+
}
|
450 |
|
451 |
+
/**
|
452 |
+
* Revision used.
|
453 |
+
* @param stdClass $oldPost old post
|
454 |
+
* @param stdClass $newPost new post
|
455 |
+
*/
|
456 |
+
protected function CheckReviewPendingChange($oldpost, $newpost)
|
457 |
+
{
|
458 |
+
if ($oldpost->post_status == 'pending') {
|
459 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
460 |
+
$this->plugin->alerts->Trigger(2072, array(
|
461 |
+
'PostID' => $oldpost->ID,
|
462 |
+
'PostType' => $oldpost->post_type,
|
463 |
+
'PostTitle' => $oldpost->post_title,
|
464 |
+
$editorLink['name'] => $editorLink['value']
|
465 |
+
));
|
466 |
+
return 1;
|
467 |
+
}
|
468 |
+
return 0;
|
469 |
+
}
|
470 |
|
471 |
+
/**
|
472 |
+
* Categories changed.
|
473 |
+
* @param array $oldCats old categories
|
474 |
+
* @param array $newCats new categories
|
475 |
+
* @param stdClass $post the post
|
476 |
+
*/
|
477 |
+
protected function CheckCategoriesChange($oldCats, $newCats, $post)
|
478 |
+
{
|
479 |
+
$oldCats = implode(', ', $oldCats);
|
480 |
+
$newCats = implode(', ', $newCats);
|
481 |
+
if ($oldCats != $newCats) {
|
482 |
+
$event = $this->GetEventTypeForPostType($post, 2016, 0, 2036);
|
483 |
+
if ($event) {
|
484 |
+
$editorLink = $this->GetEditorLink($post);
|
485 |
+
$this->plugin->alerts->Trigger($event, array(
|
486 |
+
'PostID' => $post->ID,
|
487 |
+
'PostType' => $post->post_type,
|
488 |
+
'PostTitle' => $post->post_title,
|
489 |
+
'OldCategories' => $oldCats ? $oldCats : 'no categories',
|
490 |
+
'NewCategories' => $newCats ? $newCats : 'no categories',
|
491 |
+
$editorLink['name'] => $editorLink['value']
|
492 |
+
));
|
493 |
+
return 1;
|
494 |
+
}
|
495 |
+
}
|
496 |
+
}
|
497 |
|
498 |
+
/**
|
499 |
+
* Author changed.
|
500 |
+
* @param stdClass $oldPost old post
|
501 |
+
* @param stdClass $newPost new post
|
502 |
+
*/
|
503 |
+
protected function CheckAuthorChange($oldpost, $newpost)
|
504 |
+
{
|
505 |
+
if ($oldpost->post_author != $newpost->post_author) {
|
506 |
+
$event = $this->GetEventTypeForPostType($oldpost, 2019, 2020, 2038);
|
507 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
508 |
+
$oldAuthor = get_userdata($oldpost->post_author);
|
509 |
+
$oldAuthor = (is_object($oldAuthor)) ? $oldAuthor->user_login : 'N/A';
|
510 |
+
$newAuthor = get_userdata($newpost->post_author);
|
511 |
+
$newAuthor = (is_object($newAuthor)) ? $newAuthor->user_login : 'N/A';
|
512 |
+
$this->plugin->alerts->Trigger($event, array(
|
513 |
+
'PostID' => $oldpost->ID,
|
514 |
+
'PostType' => $oldpost->post_type,
|
515 |
+
'PostTitle' => $oldpost->post_title,
|
516 |
+
'OldAuthor' => $oldAuthor,
|
517 |
+
'NewAuthor' => $newAuthor,
|
518 |
+
$editorLink['name'] => $editorLink['value']
|
519 |
+
));
|
520 |
+
return 1;
|
521 |
+
}
|
522 |
+
}
|
523 |
|
524 |
+
/**
|
525 |
+
* Status changed.
|
526 |
+
* @param stdClass $oldPost old post
|
527 |
+
* @param stdClass $newPost new post
|
528 |
+
*/
|
529 |
+
protected function CheckStatusChange($oldpost, $newpost)
|
530 |
+
{
|
531 |
+
if ($oldpost->post_status != $newpost->post_status) {
|
532 |
+
if (isset($_REQUEST['publish'])) {
|
533 |
+
// special case (publishing a post)
|
534 |
+
$event = $this->GetEventTypeForPostType($oldpost, 2001, 2005, 2030);
|
535 |
+
$editorLink = $this->GetEditorLink($newpost);
|
536 |
+
$this->plugin->alerts->Trigger($event, array(
|
537 |
+
'PostID' => $newpost->ID,
|
538 |
+
'PostType' => $newpost->post_type,
|
539 |
+
'PostTitle' => $newpost->post_title,
|
540 |
+
'PostUrl' => get_permalink($newpost->ID),
|
541 |
+
$editorLink['name'] => $editorLink['value']
|
542 |
+
));
|
543 |
+
} else {
|
544 |
+
$event = $this->GetEventTypeForPostType($oldpost, 2021, 2022, 2039);
|
545 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
546 |
+
$this->plugin->alerts->Trigger($event, array(
|
547 |
+
'PostID' => $oldpost->ID,
|
548 |
+
'PostType' => $oldpost->post_type,
|
549 |
+
'PostTitle' => $oldpost->post_title,
|
550 |
+
'OldStatus' => $oldpost->post_status,
|
551 |
+
'NewStatus' => $newpost->post_status,
|
552 |
+
$editorLink['name'] => $editorLink['value']
|
553 |
+
));
|
554 |
+
}
|
555 |
+
return 1;
|
556 |
+
}
|
557 |
+
}
|
558 |
|
559 |
+
/**
|
560 |
+
* Post parent changed.
|
561 |
+
* @param stdClass $oldPost old post
|
562 |
+
* @param stdClass $newPost new post
|
563 |
+
*/
|
564 |
+
protected function CheckParentChange($oldpost, $newpost)
|
565 |
+
{
|
566 |
+
if ($oldpost->post_parent != $newpost->post_parent) {
|
567 |
+
$event = $this->GetEventTypeForPostType($oldpost, 0, 2047, 0);
|
568 |
+
if ($event) {
|
569 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
570 |
+
$this->plugin->alerts->Trigger($event, array(
|
571 |
+
'PostID' => $oldpost->ID,
|
572 |
+
'PostType' => $oldpost->post_type,
|
573 |
+
'PostTitle' => $oldpost->post_title,
|
574 |
+
'OldParent' => $oldpost->post_parent,
|
575 |
+
'NewParent' => $newpost->post_parent,
|
576 |
+
'OldParentName' => $oldpost->post_parent ? get_the_title($oldpost->post_parent) : 'no parent',
|
577 |
+
'NewParentName' => $newpost->post_parent ? get_the_title($newpost->post_parent) : 'no parent',
|
578 |
+
$editorLink['name'] => $editorLink['value']
|
579 |
+
));
|
580 |
+
return 1;
|
581 |
+
}
|
582 |
+
}
|
583 |
+
}
|
584 |
|
585 |
+
/**
|
586 |
+
* Permalink changed.
|
587 |
+
* @param string $oldLink old permalink
|
588 |
+
* @param string $newLink new permalink
|
589 |
+
* @param stdClass $post the post
|
590 |
+
*/
|
591 |
+
protected function CheckPermalinkChange($oldLink, $newLink, $post)
|
592 |
+
{
|
593 |
+
if ($oldLink != $newLink) {
|
594 |
+
$event = $this->GetEventTypeForPostType($post, 2017, 2018, 2037);
|
595 |
+
$editorLink = $this->GetEditorLink($post);
|
596 |
+
$this->plugin->alerts->Trigger($event, array(
|
597 |
+
'PostID' => $post->ID,
|
598 |
+
'PostType' => $post->post_type,
|
599 |
+
'PostTitle' => $post->post_title,
|
600 |
+
'OldUrl' => $oldLink,
|
601 |
+
'NewUrl' => $newLink,
|
602 |
+
$editorLink['name'] => $editorLink['value']
|
603 |
+
));
|
604 |
+
return 1;
|
605 |
+
}
|
606 |
+
return 0;
|
607 |
+
}
|
608 |
|
609 |
+
/**
|
610 |
+
* Post visibility changed.
|
611 |
+
* @param stdClass $oldPost old post
|
612 |
+
* @param stdClass $newPost new post
|
613 |
+
* @param string $oldStatus old status
|
614 |
+
* @param string $newStatus new status
|
615 |
+
*/
|
616 |
+
protected function CheckVisibilityChange($oldpost, $newpost, $oldStatus, $newStatus)
|
617 |
+
{
|
618 |
+
if ($oldStatus == 'draft' || $newStatus == 'draft') {
|
619 |
+
return;
|
620 |
+
}
|
621 |
|
622 |
+
$oldVisibility = '';
|
623 |
+
$newVisibility = '';
|
624 |
|
625 |
+
if ($oldpost->post_password) {
|
626 |
+
$oldVisibility = __('Password Protected', 'wp-security-audit-log');
|
627 |
+
} elseif ($oldStatus == 'publish') {
|
628 |
+
$oldVisibility = __('Public', 'wp-security-audit-log');
|
629 |
+
} elseif ($oldStatus == 'private') {
|
630 |
+
$oldVisibility = __('Private', 'wp-security-audit-log');
|
631 |
+
}
|
632 |
|
633 |
+
if ($newpost->post_password) {
|
634 |
+
$newVisibility = __('Password Protected', 'wp-security-audit-log');
|
635 |
+
} elseif ($newStatus == 'publish') {
|
636 |
+
$newVisibility = __('Public', 'wp-security-audit-log');
|
637 |
+
} elseif ($newStatus == 'private') {
|
638 |
+
$newVisibility = __('Private', 'wp-security-audit-log');
|
639 |
+
}
|
640 |
|
641 |
+
if ($oldVisibility && $newVisibility && ($oldVisibility != $newVisibility)) {
|
642 |
+
$event = $this->GetEventTypeForPostType($oldpost, 2025, 2026, 2040);
|
643 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
644 |
+
$this->plugin->alerts->Trigger($event, array(
|
645 |
+
'PostID' => $oldpost->ID,
|
646 |
+
'PostType' => $oldpost->post_type,
|
647 |
+
'PostTitle' => $oldpost->post_title,
|
648 |
+
'OldVisibility' => $oldVisibility,
|
649 |
+
'NewVisibility' => $newVisibility,
|
650 |
+
$editorLink['name'] => $editorLink['value']
|
651 |
+
));
|
652 |
+
return 1;
|
653 |
+
}
|
654 |
+
}
|
655 |
|
656 |
+
/**
|
657 |
+
* Post template changed.
|
658 |
+
* @param string $oldTmpl old template path
|
659 |
+
* @param string $newTmpl new template path
|
660 |
+
* @param stdClass $post the post
|
661 |
+
*/
|
662 |
+
protected function CheckTemplateChange($oldTmpl, $newTmpl, $post)
|
663 |
+
{
|
664 |
+
if ($oldTmpl != $newTmpl) {
|
665 |
+
$event = $this->GetEventTypeForPostType($post, 0, 2048, 0);
|
666 |
+
if ($event) {
|
667 |
+
$editorLink = $this->GetEditorLink($post);
|
668 |
+
$this->plugin->alerts->Trigger($event, array(
|
669 |
+
'PostID' => $post->ID,
|
670 |
+
'PostType' => $post->post_type,
|
671 |
+
'PostTitle' => $post->post_title,
|
672 |
+
'OldTemplate' => ucwords(str_replace(array('-' , '_'), ' ', basename($oldTmpl, '.php'))),
|
673 |
+
'NewTemplate' => ucwords(str_replace(array('-' , '_'), ' ', basename($newTmpl, '.php'))),
|
674 |
+
'OldTemplatePath' => $oldTmpl,
|
675 |
+
'NewTemplatePath' => $newTmpl,
|
676 |
+
$editorLink['name'] => $editorLink['value']
|
677 |
+
));
|
678 |
+
return 1;
|
679 |
+
}
|
680 |
+
}
|
681 |
+
}
|
682 |
|
683 |
+
/**
|
684 |
+
* Post sets as sticky changes.
|
685 |
+
* @param string $oldTmpl old template path
|
686 |
+
* @param string $newTmpl new template path
|
687 |
+
* @param stdClass $post the post
|
688 |
+
*/
|
689 |
+
protected function CheckStickyChange($oldStky, $newStky, $post)
|
690 |
+
{
|
691 |
+
if ($oldStky != $newStky) {
|
692 |
+
$event = $newStky ? 2049 : 2050;
|
693 |
+
$editorLink = $this->GetEditorLink($post);
|
694 |
+
$this->plugin->alerts->Trigger($event, array(
|
695 |
+
'PostID' => $post->ID,
|
696 |
+
'PostType' => $post->post_type,
|
697 |
+
'PostTitle' => $post->post_title,
|
698 |
+
'PostUrl' => get_permalink($post->ID),
|
699 |
+
$editorLink['name'] => $editorLink['value']
|
700 |
+
));
|
701 |
+
return 1;
|
702 |
+
}
|
703 |
+
}
|
704 |
|
705 |
+
/**
|
706 |
+
* Post modified content.
|
707 |
+
* @param integer $post_ID post ID
|
708 |
+
* @param stdClass $oldPost old post
|
709 |
+
* @param stdClass $newPost new post
|
710 |
+
*/
|
711 |
+
public function CheckModificationChange($post_ID, $oldpost, $newpost)
|
712 |
+
{
|
713 |
+
if ($this->CheckOtherSensors($oldpost)) {
|
714 |
+
return;
|
715 |
+
}
|
716 |
+
$changes = $this->CheckTitleChange($oldpost, $newpost);
|
717 |
+
if (!$changes) {
|
718 |
+
$contentChanged = $oldpost->post_content != $newpost->post_content; // TODO what about excerpts?
|
719 |
|
720 |
+
if ($oldpost->post_modified != $newpost->post_modified) {
|
721 |
+
$event = 0;
|
722 |
+
// @see http://codex.wordpress.org/Class_Reference/WP_Query#Status_Parameters
|
723 |
+
switch ($oldpost->post_status) { // TODO or should this be $newpost?
|
724 |
+
case 'draft':
|
725 |
+
if ($contentChanged) {
|
726 |
+
$event = $this->GetEventTypeForPostType($newpost, 2068, 2069, 2070);
|
727 |
+
} else {
|
728 |
+
$event = $this->GetEventTypeForPostType($newpost, 2003, 2007, 2032);
|
729 |
+
}
|
730 |
+
break;
|
731 |
+
case 'publish':
|
732 |
+
if ($contentChanged) {
|
733 |
+
$event = $this->GetEventTypeForPostType($newpost, 2065, 2066, 2067);
|
734 |
+
} else {
|
735 |
+
$event = $this->GetEventTypeForPostType($newpost, 2002, 2006, 2031);
|
736 |
+
}
|
737 |
+
break;
|
738 |
+
}
|
739 |
+
if ($event) {
|
740 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
741 |
+
$this->plugin->alerts->Trigger($event, array(
|
742 |
+
'PostID' => $post_ID,
|
743 |
+
'PostType' => $oldpost->post_type,
|
744 |
+
'PostTitle' => $oldpost->post_title,
|
745 |
+
'PostUrl' => get_permalink($post_ID),
|
746 |
+
$editorLink['name'] => $editorLink['value']
|
747 |
+
));
|
748 |
+
return 1;
|
749 |
+
}
|
750 |
+
}
|
751 |
+
}
|
752 |
+
}
|
753 |
|
754 |
+
/**
|
755 |
+
* New category created.
|
756 |
+
* @param integer $category_id category ID
|
757 |
+
*/
|
758 |
+
public function EventCategoryCreation($category_id)
|
759 |
+
{
|
760 |
+
$category = get_category($category_id);
|
761 |
+
$category_link = $this->getCategoryLink($category_id);
|
762 |
+
$this->plugin->alerts->Trigger(2023, array(
|
763 |
+
'CategoryName' => $category->name,
|
764 |
+
'Slug' => $category->slug,
|
765 |
+
'CategoryLink' => $category_link
|
766 |
+
));
|
767 |
+
}
|
768 |
|
769 |
+
/**
|
770 |
+
* Category deleted.
|
771 |
+
* @global array $_POST post data
|
772 |
+
*/
|
773 |
+
protected function CheckCategoryDeletion()
|
774 |
+
{
|
775 |
+
if (empty($_POST)) {
|
776 |
+
return;
|
777 |
+
}
|
778 |
+
$action = !empty($_POST['action']) ? $_POST['action']
|
779 |
+
: (!empty($_POST['action2']) ? $_POST['action2'] : '');
|
780 |
+
if (!$action) {
|
781 |
+
return;
|
782 |
+
}
|
783 |
|
784 |
+
$categoryIds = array();
|
785 |
|
786 |
+
if (isset($_POST['taxonomy'])) {
|
787 |
+
if ($action == 'delete' && $_POST['taxonomy'] == 'category' && !empty($_POST['delete_tags'])) {
|
788 |
+
// bulk delete
|
789 |
+
$categoryIds[] = $_POST['delete_tags'];
|
790 |
+
} elseif ($action == 'delete-tag' && $_POST['taxonomy'] == 'category' && !empty($_POST['tag_ID'])) {
|
791 |
+
// single delete
|
792 |
+
$categoryIds[] = $_POST['tag_ID'];
|
793 |
+
}
|
794 |
+
}
|
795 |
|
796 |
+
foreach ($categoryIds as $categoryID) {
|
797 |
+
$category = get_category($categoryID);
|
798 |
+
$this->plugin->alerts->Trigger(2024, array(
|
799 |
+
'CategoryID' => $categoryID,
|
800 |
+
'CategoryName' => $category->cat_name,
|
801 |
+
'Slug' => $category->slug
|
802 |
+
));
|
803 |
+
}
|
804 |
+
}
|
805 |
|
806 |
+
/**
|
807 |
+
* Changed the parent of the category.
|
808 |
+
* @global array $_POST post data
|
809 |
+
*/
|
810 |
+
public function EventChangedCategoryParent()
|
811 |
+
{
|
812 |
+
if (empty($_POST)) {
|
813 |
+
return;
|
814 |
+
}
|
815 |
+
if (!current_user_can("manage_categories")) {
|
816 |
+
return;
|
817 |
+
}
|
818 |
+
if (isset($_POST['name']) && isset($_POST['tag_ID'])) {
|
819 |
+
$category = get_category($_POST['tag_ID']);
|
820 |
+
$category_link = $this->getCategoryLink($_POST['tag_ID']);
|
821 |
+
if ($category->parent != 0) {
|
822 |
+
$oldParent = get_category($category->parent);
|
823 |
+
$oldParentName = (empty($oldParent))? 'no parent' : $oldParent->name;
|
824 |
+
} else {
|
825 |
+
$oldParentName = 'no parent';
|
826 |
+
}
|
827 |
+
if (isset($_POST['parent'])) {
|
828 |
+
$newParent = get_category($_POST['parent']);
|
829 |
+
$newParentName = (empty($newParent))? 'no parent' : $newParent->name;
|
830 |
+
}
|
831 |
+
$this->plugin->alerts->Trigger(2052, array(
|
832 |
+
'CategoryName' => $category->name,
|
833 |
+
'OldParent' => $oldParentName,
|
834 |
+
'NewParent' => $newParentName,
|
835 |
+
'CategoryLink' => $category_link
|
836 |
+
));
|
837 |
+
}
|
838 |
+
}
|
839 |
|
840 |
+
/**
|
841 |
+
* Check auto draft and the setting: Hide Plugin in Plugins Page
|
842 |
+
* @param integer $code alert code
|
843 |
+
* @param string $title title
|
844 |
+
* @return boolean
|
845 |
+
*/
|
846 |
+
private function CheckAutoDraft($code, $title)
|
847 |
+
{
|
848 |
+
if ($code == 2008 && $title == "auto-draft") {
|
849 |
+
// to do check setting else return false
|
850 |
+
if ($this->plugin->settings->IsWPBackend() == 1) {
|
851 |
+
return true;
|
852 |
+
} else {
|
853 |
+
return false;
|
854 |
+
}
|
855 |
+
} else {
|
856 |
+
return false;
|
857 |
+
}
|
858 |
+
}
|
859 |
|
860 |
+
/**
|
861 |
+
* Builds revision link.
|
862 |
+
* @param integer $revision_id revision ID
|
863 |
+
* @return string|null link
|
864 |
+
*/
|
865 |
+
private function getRevisionLink($revision_id)
|
866 |
+
{
|
867 |
+
if (!empty($revision_id)) {
|
868 |
+
return admin_url('revision.php?revision='.$revision_id);
|
869 |
+
} else {
|
870 |
+
return null;
|
871 |
+
}
|
872 |
+
}
|
873 |
|
874 |
+
/**
|
875 |
+
* Builds category link.
|
876 |
+
* @param integer $category_id category ID
|
877 |
+
* @return string|null link
|
878 |
+
*/
|
879 |
+
private function getCategoryLink($category_id)
|
880 |
+
{
|
881 |
+
if (!empty($category_id)) {
|
882 |
+
return admin_url('term.php?taxnomy=category&tag_ID='.$category_id);
|
883 |
+
} else {
|
884 |
+
return null;
|
885 |
+
}
|
886 |
+
}
|
887 |
|
888 |
+
/**
|
889 |
+
* Ignore post from BBPress, WooCommerce Plugin
|
890 |
+
* Triggered on the Sensors
|
891 |
+
*
|
892 |
+
* @param stdClass $post the post.
|
893 |
+
*/
|
894 |
+
private function CheckOtherSensors( $post ) {
|
895 |
+
if ( empty( $post ) || ! isset( $post->post_type ) ) {
|
896 |
+
return false;
|
897 |
+
}
|
898 |
+
switch ( $post->post_type ) {
|
899 |
+
case 'forum':
|
900 |
+
case 'topic':
|
901 |
+
case 'reply':
|
902 |
+
case 'product':
|
903 |
+
return true;
|
904 |
+
default:
|
905 |
+
return false;
|
906 |
+
}
|
907 |
+
}
|
908 |
|
909 |
+
/**
|
910 |
+
* Triggered after save post for add revision link.
|
911 |
+
* @param integer $post_id post ID
|
912 |
+
* @param stdClass $post post
|
913 |
+
*/
|
914 |
+
public function SetRevisionLink($post_id, $post, $update)
|
915 |
+
{
|
916 |
+
$revisions = wp_get_post_revisions($post_id);
|
917 |
+
if (!empty($revisions)) {
|
918 |
+
$revision = array_shift($revisions);
|
919 |
|
920 |
+
$objOcc = new WSAL_Models_Occurrence();
|
921 |
+
$occ = $objOcc->GetByPostID($post_id);
|
922 |
+
$occ = count($occ) ? $occ[0] : null;
|
923 |
+
if (!empty($occ)) {
|
924 |
+
$revisionLink = $this->getRevisionLink($revision->ID);
|
925 |
+
if (!empty($revisionLink)) {
|
926 |
+
$occ->SetMetaValue('RevisionLink', $revisionLink);
|
927 |
+
}
|
928 |
+
}
|
929 |
+
}
|
930 |
+
}
|
931 |
|
932 |
+
/**
|
933 |
+
* Alerts for Viewing of Posts, Pages and Custom Posts.
|
934 |
+
*/
|
935 |
+
public function ViewingPost() {
|
936 |
+
// Retrieve the current post object.
|
937 |
+
$post = get_queried_object();
|
938 |
+
if ( is_user_logged_in() ) {
|
939 |
+
if ( ! is_admin() ) {
|
940 |
+
if ( $this->CheckOtherSensors( $post ) ) {
|
941 |
+
return $post->post_title;
|
942 |
+
}
|
943 |
|
944 |
+
$currentPath = $_SERVER['REQUEST_URI'];
|
945 |
+
if ( ! empty( $_SERVER['HTTP_REFERER'] )
|
946 |
+
&& strpos( $_SERVER['HTTP_REFERER'], $currentPath ) !== false ) {
|
947 |
+
// Ignore this if we were on the same page so we avoid double audit entries.
|
948 |
+
return;
|
949 |
+
}
|
950 |
+
if ( ! empty( $post->post_title ) ) {
|
951 |
+
$event = $this->GetEventTypeForPostType( $post, 2101, 2103, 2105 );
|
952 |
+
$this->plugin->alerts->Trigger( $event, array(
|
953 |
+
'PostType' => $post->post_type,
|
954 |
+
'PostTitle' => $post->post_title,
|
955 |
+
'PostUrl' => get_permalink( $post->ID ),
|
956 |
+
) );
|
957 |
+
}
|
958 |
+
}
|
959 |
+
}
|
960 |
+
}
|
961 |
|
962 |
+
/**
|
963 |
+
* Alerts for Editing of Posts, Pages and Custom Posts.
|
964 |
+
* @param stdClass $post post
|
965 |
+
*/
|
966 |
+
public function EditingPost($post)
|
967 |
+
{
|
968 |
+
if (is_user_logged_in()) {
|
969 |
+
if (is_admin()) {
|
970 |
+
if ($this->CheckOtherSensors($post)) {
|
971 |
+
return $post;
|
972 |
+
}
|
973 |
+
$currentPath = $_SERVER["SCRIPT_NAME"] . "?post=" . $post->ID;
|
974 |
+
if (!empty($_SERVER["HTTP_REFERER"])
|
975 |
+
&& strpos($_SERVER["HTTP_REFERER"], $currentPath) !== false) {
|
976 |
+
//Ignore this if we were on the same page so we avoid double audit entries
|
977 |
+
return $post;
|
978 |
+
}
|
979 |
+
if (!empty($post->post_title)) {
|
980 |
+
$event = $this->GetEventTypeForPostType($post, 2100, 2102, 2104);
|
981 |
+
if (!$this->WasTriggered($event)) {
|
982 |
+
$editorLink = $this->GetEditorLink($post);
|
983 |
+
$this->plugin->alerts->Trigger($event, array(
|
984 |
+
'PostType' => $post->post_type,
|
985 |
+
'PostTitle' => $post->post_title,
|
986 |
+
$editorLink['name'] => $editorLink['value']
|
987 |
+
));
|
988 |
+
}
|
989 |
+
}
|
990 |
+
}
|
991 |
+
}
|
992 |
+
return $post;
|
993 |
+
}
|
994 |
|
995 |
+
/**
|
996 |
+
* Check if the alert was triggered.
|
997 |
+
* @param integer $alert_id alert code
|
998 |
+
* @return boolean
|
999 |
+
*/
|
1000 |
+
private function WasTriggered($alert_id)
|
1001 |
+
{
|
1002 |
+
$query = new WSAL_Models_OccurrenceQuery();
|
1003 |
+
$query->addOrderBy("created_on", true);
|
1004 |
+
$query->setLimit(1);
|
1005 |
+
$lastOccurence = $query->getAdapter()->Execute($query);
|
1006 |
+
if (!empty($lastOccurence)) {
|
1007 |
+
if ($lastOccurence[0]->alert_id == $alert_id) {
|
1008 |
+
return true;
|
1009 |
+
}
|
1010 |
+
}
|
1011 |
+
return false;
|
1012 |
+
}
|
1013 |
|
1014 |
+
/**
|
1015 |
+
* Changed title of a post.
|
1016 |
+
* @param stdClass $oldPost old post
|
1017 |
+
* @param stdClass $newPost new post
|
1018 |
+
*/
|
1019 |
+
private function CheckTitleChange($oldpost, $newpost)
|
1020 |
+
{
|
1021 |
+
if ($oldpost->post_title != $newpost->post_title) {
|
1022 |
+
$event = $this->GetEventTypeForPostType($newpost, 2086, 2087, 2088);
|
1023 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
1024 |
+
$this->plugin->alerts->Trigger($event, array(
|
1025 |
+
'OldTitle' => $oldpost->post_title,
|
1026 |
+
'NewTitle' => $newpost->post_title,
|
1027 |
+
$editorLink['name'] => $editorLink['value']
|
1028 |
+
));
|
1029 |
+
return 1;
|
1030 |
+
}
|
1031 |
+
return 0;
|
1032 |
+
}
|
1033 |
|
1034 |
+
/**
|
1035 |
+
* Comments/Trackbacks and Pingbacks check.
|
1036 |
+
* @param stdClass $oldPost old post
|
1037 |
+
* @param stdClass $newPost new post
|
1038 |
+
*/
|
1039 |
+
private function CheckCommentsPings($oldpost, $newpost)
|
1040 |
+
{
|
1041 |
+
$result = 0;
|
1042 |
+
// Comments
|
1043 |
+
if ($oldpost->comment_status != $newpost->comment_status) {
|
1044 |
+
$type = 'Comments';
|
1045 |
|
1046 |
+
if ($newpost->comment_status == 'open') {
|
1047 |
+
$event = $this->GetCommentsPingsEvent($newpost, 'enable');
|
1048 |
+
} else {
|
1049 |
+
$event = $this->GetCommentsPingsEvent($newpost, 'disable');
|
1050 |
+
}
|
1051 |
|
1052 |
+
$this->plugin->alerts->Trigger($event, array(
|
1053 |
+
'Type' => $type,
|
1054 |
+
'PostTitle' => $newpost->post_title,
|
1055 |
+
'PostUrl' => get_permalink($newpost->ID)
|
1056 |
+
));
|
1057 |
+
$result = 1;
|
1058 |
+
}
|
1059 |
+
// Trackbacks and Pingbacks
|
1060 |
+
if ($oldpost->ping_status != $newpost->ping_status) {
|
1061 |
+
$type = 'Trackbacks and Pingbacks';
|
1062 |
|
1063 |
+
if ($newpost->ping_status == 'open') {
|
1064 |
+
$event = $this->GetCommentsPingsEvent($newpost, 'enable');
|
1065 |
+
} else {
|
1066 |
+
$event = $this->GetCommentsPingsEvent($newpost, 'disable');
|
1067 |
+
}
|
1068 |
|
1069 |
+
$this->plugin->alerts->Trigger($event, array(
|
1070 |
+
'Type' => $type,
|
1071 |
+
'PostTitle' => $newpost->post_title,
|
1072 |
+
'PostUrl' => get_permalink($newpost->ID)
|
1073 |
+
));
|
1074 |
+
$result = 1;
|
1075 |
+
}
|
1076 |
+
return $result;
|
1077 |
+
}
|
1078 |
|
1079 |
+
/**
|
1080 |
+
* Comments/Trackbacks and Pingbacks event code.
|
1081 |
+
* @param stdClass $post the post
|
1082 |
+
* @param string $status the status
|
1083 |
+
*/
|
1084 |
+
private function GetCommentsPingsEvent($post, $status)
|
1085 |
+
{
|
1086 |
+
if ($post->post_type == 'post') {
|
1087 |
+
if ($post->post_status == 'publish') {
|
1088 |
+
if ($status == 'disable') {
|
1089 |
+
$event = 2111;
|
1090 |
+
} else {
|
1091 |
+
$event = 2112;
|
1092 |
+
}
|
1093 |
+
} else {
|
1094 |
+
if ($status == 'disable') {
|
1095 |
+
$event = 2113;
|
1096 |
+
} else {
|
1097 |
+
$event = 2114;
|
1098 |
+
}
|
1099 |
+
}
|
1100 |
+
} else {
|
1101 |
+
if ($post->post_status == 'publish') {
|
1102 |
+
if ($status == 'disable') {
|
1103 |
+
$event = 2115;
|
1104 |
+
} else {
|
1105 |
+
$event = 2116;
|
1106 |
+
}
|
1107 |
+
} else {
|
1108 |
+
if ($status == 'disable') {
|
1109 |
+
$event = 2117;
|
1110 |
+
} else {
|
1111 |
+
$event = 2118;
|
1112 |
+
}
|
1113 |
+
}
|
1114 |
+
}
|
1115 |
+
return $event;
|
1116 |
+
}
|
1117 |
|
1118 |
+
/**
|
1119 |
+
* Get editor link.
|
1120 |
+
* @param stdClass $post the post
|
1121 |
+
* @return array $aLink name and value link
|
1122 |
+
*/
|
1123 |
+
private function GetEditorLink($post)
|
1124 |
+
{
|
1125 |
+
$name = 'EditorLink';
|
1126 |
+
$name .= ($post->post_type == 'page') ? 'Page' : 'Post' ;
|
1127 |
+
$value = get_edit_post_link($post->ID);
|
1128 |
+
$aLink = array(
|
1129 |
+
'name' => $name,
|
1130 |
+
'value' => $value,
|
1131 |
+
);
|
1132 |
+
return $aLink;
|
1133 |
+
}
|
1134 |
}
|
classes/Sensors/PluginsThemes.php
CHANGED
@@ -23,373 +23,378 @@
|
|
23 |
* 2107 A plugin modified a page
|
24 |
* 2108 A plugin modified a custom post
|
25 |
*/
|
26 |
-
class WSAL_Sensors_PluginsThemes extends WSAL_AbstractSensor
|
27 |
-
{
|
28 |
-
protected $old_themes = array();
|
29 |
-
protected $old_plugins = array();
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
*/
|
34 |
-
public function HookEvents()
|
35 |
-
{
|
36 |
-
$hasPermission = (current_user_can("install_plugins") || current_user_can("activate_plugins") ||
|
37 |
-
current_user_can("delete_plugins") || current_user_can("update_plugins") || current_user_can("install_themes"));
|
38 |
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
add_action('wp_insert_post', array($this, 'EventPluginPostCreate'), 10, 2);
|
46 |
-
add_action('delete_post', array($this, 'EventPluginPostDelete'), 10, 1);
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Triggered when a user accesses the admin area.
|
51 |
-
*/
|
52 |
-
public function EventAdminInit()
|
53 |
-
{
|
54 |
-
$this->old_themes = wp_get_themes();
|
55 |
-
$this->old_plugins = get_plugins();
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Install, uninstall, activate, deactivate, upgrade and update.
|
60 |
-
*/
|
61 |
-
public function EventAdminShutdown()
|
62 |
-
{
|
63 |
-
$action = (isset($_REQUEST['action']) && $_REQUEST['action'] != "-1") ? $_REQUEST['action'] : '';
|
64 |
-
$action = (isset($_REQUEST['action2']) && $_REQUEST['action2'] != "-1") ? $_REQUEST['action2'] : $action;
|
65 |
-
$actype = basename($_SERVER['SCRIPT_NAME'], '.php');
|
66 |
-
$is_themes = $actype == 'themes';
|
67 |
-
$is_plugins = $actype == 'plugins';
|
68 |
-
|
69 |
-
// install plugin
|
70 |
-
if (in_array($action, array('install-plugin', 'upload-plugin')) && current_user_can("install_plugins")) {
|
71 |
-
$plugin = array_values(array_diff(array_keys(get_plugins()), array_keys($this->old_plugins)));
|
72 |
-
if (count($plugin) != 1) {
|
73 |
-
return $this->LogError(
|
74 |
-
'Expected exactly one new plugin but found ' . count($plugin),
|
75 |
-
array('NewPlugin' => $plugin, 'OldPlugins' => $this->old_plugins, 'NewPlugins' => get_plugins())
|
76 |
-
);
|
77 |
-
}
|
78 |
-
$pluginPath = $plugin[0];
|
79 |
-
$plugin = get_plugins();
|
80 |
-
$plugin = $plugin[$pluginPath];
|
81 |
-
$pluginPath = plugin_dir_path(WP_PLUGIN_DIR . '/' . $pluginPath[0]);
|
82 |
-
$this->plugin->alerts->Trigger(5000, array(
|
83 |
-
'Plugin' => (object)array(
|
84 |
-
'Name' => $plugin['Name'],
|
85 |
-
'PluginURI' => $plugin['PluginURI'],
|
86 |
-
'Version' => $plugin['Version'],
|
87 |
-
'Author' => $plugin['Author'],
|
88 |
-
'Network' => $plugin['Network'] ? 'True' : 'False',
|
89 |
-
'plugin_dir_path' => $pluginPath,
|
90 |
-
),
|
91 |
-
));
|
92 |
-
}
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
}
|
100 |
-
$_REQUEST['checked'][] = $_REQUEST['plugin'];
|
101 |
-
}
|
102 |
-
foreach ($_REQUEST['checked'] as $pluginFile) {
|
103 |
-
$pluginFile = WP_PLUGIN_DIR . '/' . $pluginFile;
|
104 |
-
$pluginData = get_plugin_data($pluginFile, false, true);
|
105 |
-
$this->plugin->alerts->Trigger(5001, array(
|
106 |
-
'PluginFile' => $pluginFile,
|
107 |
-
'PluginData' => (object)array(
|
108 |
-
'Name' => $pluginData['Name'],
|
109 |
-
'PluginURI' => $pluginData['PluginURI'],
|
110 |
-
'Version' => $pluginData['Version'],
|
111 |
-
'Author' => $pluginData['Author'],
|
112 |
-
'Network' => $pluginData['Network'] ? 'True' : 'False',
|
113 |
-
),
|
114 |
-
));
|
115 |
-
}
|
116 |
-
}
|
117 |
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
$_REQUEST['checked'] = array();
|
123 |
-
}
|
124 |
-
$_REQUEST['checked'][] = $_REQUEST['plugin'];
|
125 |
-
}
|
126 |
-
foreach ($_REQUEST['checked'] as $pluginFile) {
|
127 |
-
$pluginFile = WP_PLUGIN_DIR . '/' . $pluginFile;
|
128 |
-
$pluginData = get_plugin_data($pluginFile, false, true);
|
129 |
-
$this->plugin->alerts->Trigger(5002, array(
|
130 |
-
'PluginFile' => $pluginFile,
|
131 |
-
'PluginData' => (object)array(
|
132 |
-
'Name' => $pluginData['Name'],
|
133 |
-
'PluginURI' => $pluginData['PluginURI'],
|
134 |
-
'Version' => $pluginData['Version'],
|
135 |
-
'Author' => $pluginData['Author'],
|
136 |
-
'Network' => $pluginData['Network'] ? 'True' : 'False',
|
137 |
-
),
|
138 |
-
));
|
139 |
-
}
|
140 |
-
}
|
141 |
-
|
142 |
-
// uninstall plugin
|
143 |
-
if ($is_plugins && in_array($action, array('delete-selected')) && current_user_can("delete_plugins")) {
|
144 |
-
if (!isset($_REQUEST['verify-delete'])) {
|
145 |
-
// first step, before user approves deletion
|
146 |
-
// TODO store plugin data in session here
|
147 |
-
} else {
|
148 |
-
// second step, after deletion approval
|
149 |
-
// TODO use plugin data from session
|
150 |
-
foreach ($_REQUEST['checked'] as $pluginFile) {
|
151 |
-
$pluginName = basename($pluginFile, '.php');
|
152 |
-
$pluginName = str_replace(array('_', '-', ' '), ' ', $pluginName);
|
153 |
-
$pluginName = ucwords($pluginName);
|
154 |
-
$pluginFile = WP_PLUGIN_DIR . '/' . $pluginFile;
|
155 |
-
$this->plugin->alerts->Trigger(5003, array(
|
156 |
-
'PluginFile' => $pluginFile,
|
157 |
-
'PluginData' => (object)array(
|
158 |
-
'Name' => $pluginName,
|
159 |
-
),
|
160 |
-
));
|
161 |
-
}
|
162 |
-
}
|
163 |
-
}
|
164 |
-
|
165 |
-
// uninstall plugin for Wordpress version 4.6
|
166 |
-
if (in_array($action, array('delete-plugin')) && current_user_can("delete_plugins")) {
|
167 |
-
if (isset($_REQUEST['plugin'])) {
|
168 |
-
$pluginFile = WP_PLUGIN_DIR . '/' . $_REQUEST['plugin'];
|
169 |
-
$pluginName = basename($pluginFile, '.php');
|
170 |
-
$pluginName = str_replace(array('_', '-', ' '), ' ', $pluginName);
|
171 |
-
$pluginName = ucwords($pluginName);
|
172 |
-
$this->plugin->alerts->Trigger(5003, array(
|
173 |
-
'PluginFile' => $pluginFile,
|
174 |
-
'PluginData' => (object)array(
|
175 |
-
'Name' => $pluginName,
|
176 |
-
),
|
177 |
-
));
|
178 |
-
}
|
179 |
-
}
|
180 |
-
|
181 |
-
// upgrade plugin
|
182 |
-
if (in_array($action, array('upgrade-plugin', 'update-plugin', 'update-selected')) && current_user_can("update_plugins")) {
|
183 |
-
$plugins = array();
|
184 |
-
if (isset($_REQUEST['plugins'])) {
|
185 |
-
$plugins = explode(",", $_REQUEST['plugins']);
|
186 |
-
} else if (isset($_REQUEST['plugin'])) {
|
187 |
-
$plugins[] = $_REQUEST['plugin'];
|
188 |
-
}
|
189 |
-
if (isset($plugins)) {
|
190 |
-
foreach ($plugins as $pluginFile) {
|
191 |
-
$pluginFile = WP_PLUGIN_DIR . '/' . $pluginFile;
|
192 |
-
$pluginData = get_plugin_data($pluginFile, false, true);
|
193 |
-
$this->plugin->alerts->Trigger(5004, array(
|
194 |
-
'PluginFile' => $pluginFile,
|
195 |
-
'PluginData' => (object)array(
|
196 |
-
'Name' => $pluginData['Name'],
|
197 |
-
'PluginURI' => $pluginData['PluginURI'],
|
198 |
-
'Version' => $pluginData['Version'],
|
199 |
-
'Author' => $pluginData['Author'],
|
200 |
-
'Network' => $pluginData['Network'] ? 'True' : 'False',
|
201 |
-
),
|
202 |
-
));
|
203 |
-
}
|
204 |
-
}
|
205 |
-
}
|
206 |
-
|
207 |
-
// update theme
|
208 |
-
if (in_array($action, array('upgrade-theme', 'update-theme', 'update-selected-themes')) && current_user_can("install_themes")) {
|
209 |
-
$themes = array();
|
210 |
-
if (isset($_REQUEST['slug']) || isset($_REQUEST['theme'])) {
|
211 |
-
$themes[] = isset($_REQUEST['slug']) ? $_REQUEST['slug'] : $_REQUEST['theme'];
|
212 |
-
} elseif (isset($_REQUEST['themes'])) {
|
213 |
-
$themes = explode(",", $_REQUEST['themes']);
|
214 |
-
}
|
215 |
-
if (isset($themes)) {
|
216 |
-
foreach ($themes as $theme_name) {
|
217 |
-
$theme = wp_get_theme($theme_name);
|
218 |
-
$this->plugin->alerts->Trigger(5031, array(
|
219 |
-
'Theme' => (object)array(
|
220 |
-
'Name' => $theme->Name,
|
221 |
-
'ThemeURI' => $theme->ThemeURI,
|
222 |
-
'Description' => $theme->Description,
|
223 |
-
'Author' => $theme->Author,
|
224 |
-
'Version' => $theme->Version,
|
225 |
-
'get_template_directory' => $theme->get_template_directory(),
|
226 |
-
),
|
227 |
-
));
|
228 |
-
}
|
229 |
-
}
|
230 |
-
}
|
231 |
-
|
232 |
-
// install theme
|
233 |
-
if (in_array($action, array('install-theme', 'upload-theme')) && current_user_can("install_themes")) {
|
234 |
-
$themes = array_diff(wp_get_themes(), $this->old_themes);
|
235 |
-
foreach ($themes as $theme) {
|
236 |
-
$this->plugin->alerts->Trigger(5005, array(
|
237 |
-
'Theme' => (object)array(
|
238 |
-
'Name' => $theme->Name,
|
239 |
-
'ThemeURI' => $theme->ThemeURI,
|
240 |
-
'Description' => $theme->Description,
|
241 |
-
'Author' => $theme->Author,
|
242 |
-
'Version' => $theme->Version,
|
243 |
-
'get_template_directory' => $theme->get_template_directory(),
|
244 |
-
),
|
245 |
-
));
|
246 |
-
}
|
247 |
-
}
|
248 |
-
|
249 |
-
// uninstall theme
|
250 |
-
if (in_array($action, array('delete-theme')) && current_user_can("install_themes")) {
|
251 |
-
foreach ($this->GetRemovedThemes() as $theme) {
|
252 |
-
$this->plugin->alerts->Trigger(5007, array(
|
253 |
-
'Theme' => (object)array(
|
254 |
-
'Name' => $theme->Name,
|
255 |
-
'ThemeURI' => $theme->ThemeURI,
|
256 |
-
'Description' => $theme->Description,
|
257 |
-
'Author' => $theme->Author,
|
258 |
-
'Version' => $theme->Version,
|
259 |
-
'get_template_directory' => $theme->get_template_directory(),
|
260 |
-
),
|
261 |
-
));
|
262 |
-
}
|
263 |
-
}
|
264 |
-
}
|
265 |
-
|
266 |
-
/**
|
267 |
-
* Activated a theme.
|
268 |
-
* @param string $themeName name
|
269 |
-
*/
|
270 |
-
public function EventThemeActivated($themeName)
|
271 |
-
{
|
272 |
-
$theme = null;
|
273 |
-
foreach (wp_get_themes() as $item) {
|
274 |
-
if ($item->Name == $themeName) {
|
275 |
-
$theme = $item;
|
276 |
-
break;
|
277 |
-
}
|
278 |
-
}
|
279 |
-
if ($theme == null) {
|
280 |
-
return $this->LogError(
|
281 |
-
'Could not locate theme named "' . $theme . '".',
|
282 |
-
array('ThemeName' => $themeName, 'Themes' => wp_get_themes())
|
283 |
-
);
|
284 |
-
}
|
285 |
-
$this->plugin->alerts->Trigger(5006, array(
|
286 |
-
'Theme' => (object)array(
|
287 |
-
'Name' => $theme->Name,
|
288 |
-
'ThemeURI' => $theme->ThemeURI,
|
289 |
-
'Description' => $theme->Description,
|
290 |
-
'Author' => $theme->Author,
|
291 |
-
'Version' => $theme->Version,
|
292 |
-
'get_template_directory' => $theme->get_template_directory(),
|
293 |
-
),
|
294 |
-
));
|
295 |
-
}
|
296 |
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
if (isset($_REQUEST['action']) && !in_array($_REQUEST['action'], $WPActions)) {
|
305 |
-
if (!in_array($post->post_type, array('attachment', 'revision', 'nav_menu_item'))) {
|
306 |
-
// if the plugin modify the post
|
307 |
-
if (strpos($_REQUEST['action'], 'edit') !== false) {
|
308 |
-
$event = $this->GetEventTypeForPostType($post, 2106, 2107, 2108);
|
309 |
-
$editorLink = $this->GetEditorLink($post);
|
310 |
-
$this->plugin->alerts->Trigger($event, array(
|
311 |
-
'PostID' => $post->ID,
|
312 |
-
'PostType' => $post->post_type,
|
313 |
-
'PostTitle' => $post->post_title,
|
314 |
-
$editorLink['name'] => $editorLink['value']
|
315 |
-
));
|
316 |
-
} else {
|
317 |
-
$event = $this->GetEventTypeForPostType($post, 5019, 5020, 5021);
|
318 |
-
$this->plugin->alerts->Trigger($event, array(
|
319 |
-
'PostID' => $post->ID,
|
320 |
-
'PostType' => $post->post_type,
|
321 |
-
'PostTitle' => $post->post_title,
|
322 |
-
'Username' => 'Plugins'
|
323 |
-
));
|
324 |
-
}
|
325 |
-
}
|
326 |
-
}
|
327 |
-
}
|
328 |
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
$this->plugin->alerts->Trigger($event, array(
|
340 |
-
'PostID' => $post->ID,
|
341 |
-
'PostType' => $post->post_type,
|
342 |
-
'PostTitle' => $post->post_title,
|
343 |
-
'Username' => 'Plugins'
|
344 |
-
));
|
345 |
-
}
|
346 |
-
}
|
347 |
-
}
|
348 |
-
|
349 |
-
/**
|
350 |
-
* Get removed themes.
|
351 |
-
* @return array of WP_Theme objects
|
352 |
-
*/
|
353 |
-
protected function GetRemovedThemes()
|
354 |
-
{
|
355 |
-
$result = $this->old_themes;
|
356 |
-
foreach ($result as $i => $theme) {
|
357 |
-
if (file_exists($theme->get_template_directory())) {
|
358 |
-
unset($result[$i]);
|
359 |
-
}
|
360 |
-
}
|
361 |
-
return array_values($result);
|
362 |
-
}
|
363 |
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
378 |
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
395 |
}
|
23 |
* 2107 A plugin modified a page
|
24 |
* 2108 A plugin modified a custom post
|
25 |
*/
|
26 |
+
class WSAL_Sensors_PluginsThemes extends WSAL_AbstractSensor {
|
|
|
|
|
|
|
27 |
|
28 |
+
protected $old_themes = array();
|
29 |
+
protected $old_plugins = array();
|
|
|
|
|
|
|
|
|
|
|
30 |
|
31 |
+
/**
|
32 |
+
* Listening to events using WP hooks.
|
33 |
+
*/
|
34 |
+
public function HookEvents() {
|
35 |
+
$has_permission = ( current_user_can( 'install_plugins' ) || current_user_can( 'activate_plugins' ) ||
|
36 |
+
current_user_can( 'delete_plugins' ) || current_user_can( 'update_plugins' ) || current_user_can( 'install_themes' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
+
add_action( 'admin_init', array( $this, 'EventAdminInit' ) );
|
39 |
+
if ( $has_permission ) {
|
40 |
+
add_action( 'shutdown', array( $this, 'EventAdminShutdown' ) );
|
41 |
+
}
|
42 |
+
add_action( 'switch_theme', array( $this, 'EventThemeActivated' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
+
// TO DO.
|
45 |
+
add_action( 'wp_insert_post', array( $this, 'EventPluginPostCreate' ), 10, 2 );
|
46 |
+
add_action( 'delete_post', array( $this, 'EventPluginPostDelete' ), 10, 1 );
|
47 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
|
49 |
+
/**
|
50 |
+
* Triggered when a user accesses the admin area.
|
51 |
+
*/
|
52 |
+
public function EventAdminInit() {
|
53 |
+
$this->old_themes = wp_get_themes();
|
54 |
+
$this->old_plugins = get_plugins();
|
55 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
+
/**
|
58 |
+
* Install, uninstall, activate, deactivate, upgrade and update.
|
59 |
+
*/
|
60 |
+
public function EventAdminShutdown()
|
61 |
+
{
|
62 |
+
$action = (isset($_REQUEST['action']) && $_REQUEST['action'] != "-1") ? $_REQUEST['action'] : '';
|
63 |
+
$action = (isset($_REQUEST['action2']) && $_REQUEST['action2'] != "-1") ? $_REQUEST['action2'] : $action;
|
64 |
+
$actype = basename($_SERVER['SCRIPT_NAME'], '.php');
|
65 |
+
$is_themes = $actype == 'themes';
|
66 |
+
$is_plugins = $actype == 'plugins';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
+
// install plugin
|
69 |
+
if (in_array($action, array('install-plugin', 'upload-plugin')) && current_user_can("install_plugins")) {
|
70 |
+
$plugin = array_values(array_diff(array_keys(get_plugins()), array_keys($this->old_plugins)));
|
71 |
+
if (count($plugin) != 1) {
|
72 |
+
return $this->LogError(
|
73 |
+
'Expected exactly one new plugin but found ' . count($plugin),
|
74 |
+
array('NewPlugin' => $plugin, 'OldPlugins' => $this->old_plugins, 'NewPlugins' => get_plugins())
|
75 |
+
);
|
76 |
+
}
|
77 |
+
$pluginPath = $plugin[0];
|
78 |
+
$plugin = get_plugins();
|
79 |
+
$plugin = $plugin[$pluginPath];
|
80 |
+
$pluginPath = plugin_dir_path(WP_PLUGIN_DIR . '/' . $pluginPath[0]);
|
81 |
+
$this->plugin->alerts->Trigger(5000, array(
|
82 |
+
'Plugin' => (object)array(
|
83 |
+
'Name' => $plugin['Name'],
|
84 |
+
'PluginURI' => $plugin['PluginURI'],
|
85 |
+
'Version' => $plugin['Version'],
|
86 |
+
'Author' => $plugin['Author'],
|
87 |
+
'Network' => $plugin['Network'] ? 'True' : 'False',
|
88 |
+
'plugin_dir_path' => $pluginPath,
|
89 |
+
),
|
90 |
+
));
|
91 |
+
}
|
92 |
|
93 |
+
// activate plugin
|
94 |
+
if ($is_plugins && in_array($action, array('activate', 'activate-selected')) && current_user_can("activate_plugins")) {
|
95 |
+
if (isset($_REQUEST['plugin'])) {
|
96 |
+
if (!isset($_REQUEST['checked'])) {
|
97 |
+
$_REQUEST['checked'] = array();
|
98 |
+
}
|
99 |
+
$_REQUEST['checked'][] = $_REQUEST['plugin'];
|
100 |
+
}
|
101 |
+
foreach ($_REQUEST['checked'] as $pluginFile) {
|
102 |
+
$pluginFile = WP_PLUGIN_DIR . '/' . $pluginFile;
|
103 |
+
$pluginData = get_plugin_data($pluginFile, false, true);
|
104 |
+
$this->plugin->alerts->Trigger(5001, array(
|
105 |
+
'PluginFile' => $pluginFile,
|
106 |
+
'PluginData' => (object)array(
|
107 |
+
'Name' => $pluginData['Name'],
|
108 |
+
'PluginURI' => $pluginData['PluginURI'],
|
109 |
+
'Version' => $pluginData['Version'],
|
110 |
+
'Author' => $pluginData['Author'],
|
111 |
+
'Network' => $pluginData['Network'] ? 'True' : 'False',
|
112 |
+
),
|
113 |
+
));
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
// deactivate plugin
|
118 |
+
if ($is_plugins && in_array($action, array('deactivate', 'deactivate-selected')) && current_user_can("activate_plugins")) {
|
119 |
+
if (isset($_REQUEST['plugin'])) {
|
120 |
+
if (!isset($_REQUEST['checked'])) {
|
121 |
+
$_REQUEST['checked'] = array();
|
122 |
+
}
|
123 |
+
$_REQUEST['checked'][] = $_REQUEST['plugin'];
|
124 |
+
}
|
125 |
+
foreach ($_REQUEST['checked'] as $pluginFile) {
|
126 |
+
$pluginFile = WP_PLUGIN_DIR . '/' . $pluginFile;
|
127 |
+
$pluginData = get_plugin_data($pluginFile, false, true);
|
128 |
+
$this->plugin->alerts->Trigger(5002, array(
|
129 |
+
'PluginFile' => $pluginFile,
|
130 |
+
'PluginData' => (object)array(
|
131 |
+
'Name' => $pluginData['Name'],
|
132 |
+
'PluginURI' => $pluginData['PluginURI'],
|
133 |
+
'Version' => $pluginData['Version'],
|
134 |
+
'Author' => $pluginData['Author'],
|
135 |
+
'Network' => $pluginData['Network'] ? 'True' : 'False',
|
136 |
+
),
|
137 |
+
));
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
// uninstall plugin
|
142 |
+
if ($is_plugins && in_array($action, array('delete-selected')) && current_user_can("delete_plugins")) {
|
143 |
+
if (!isset($_REQUEST['verify-delete'])) {
|
144 |
+
// first step, before user approves deletion
|
145 |
+
// TODO store plugin data in session here
|
146 |
+
} else {
|
147 |
+
// second step, after deletion approval
|
148 |
+
// TODO use plugin data from session
|
149 |
+
foreach ($_REQUEST['checked'] as $pluginFile) {
|
150 |
+
$pluginName = basename($pluginFile, '.php');
|
151 |
+
$pluginName = str_replace(array('_', '-', ' '), ' ', $pluginName);
|
152 |
+
$pluginName = ucwords($pluginName);
|
153 |
+
$pluginFile = WP_PLUGIN_DIR . '/' . $pluginFile;
|
154 |
+
$this->plugin->alerts->Trigger(5003, array(
|
155 |
+
'PluginFile' => $pluginFile,
|
156 |
+
'PluginData' => (object)array(
|
157 |
+
'Name' => $pluginName,
|
158 |
+
),
|
159 |
+
));
|
160 |
+
}
|
161 |
+
}
|
162 |
+
}
|
163 |
+
|
164 |
+
// uninstall plugin for Wordpress version 4.6
|
165 |
+
if (in_array($action, array('delete-plugin')) && current_user_can("delete_plugins")) {
|
166 |
+
if (isset($_REQUEST['plugin'])) {
|
167 |
+
$pluginFile = WP_PLUGIN_DIR . '/' . $_REQUEST['plugin'];
|
168 |
+
$pluginName = basename($pluginFile, '.php');
|
169 |
+
$pluginName = str_replace(array('_', '-', ' '), ' ', $pluginName);
|
170 |
+
$pluginName = ucwords($pluginName);
|
171 |
+
$this->plugin->alerts->Trigger(5003, array(
|
172 |
+
'PluginFile' => $pluginFile,
|
173 |
+
'PluginData' => (object)array(
|
174 |
+
'Name' => $pluginName,
|
175 |
+
),
|
176 |
+
));
|
177 |
+
}
|
178 |
+
}
|
179 |
+
|
180 |
+
// upgrade plugin
|
181 |
+
if (in_array($action, array('upgrade-plugin', 'update-plugin', 'update-selected')) && current_user_can("update_plugins")) {
|
182 |
+
$plugins = array();
|
183 |
+
if (isset($_REQUEST['plugins'])) {
|
184 |
+
$plugins = explode(",", $_REQUEST['plugins']);
|
185 |
+
} else if (isset($_REQUEST['plugin'])) {
|
186 |
+
$plugins[] = $_REQUEST['plugin'];
|
187 |
+
}
|
188 |
+
if (isset($plugins)) {
|
189 |
+
foreach ($plugins as $pluginFile) {
|
190 |
+
$pluginFile = WP_PLUGIN_DIR . '/' . $pluginFile;
|
191 |
+
$pluginData = get_plugin_data($pluginFile, false, true);
|
192 |
+
$this->plugin->alerts->Trigger(5004, array(
|
193 |
+
'PluginFile' => $pluginFile,
|
194 |
+
'PluginData' => (object)array(
|
195 |
+
'Name' => $pluginData['Name'],
|
196 |
+
'PluginURI' => $pluginData['PluginURI'],
|
197 |
+
'Version' => $pluginData['Version'],
|
198 |
+
'Author' => $pluginData['Author'],
|
199 |
+
'Network' => $pluginData['Network'] ? 'True' : 'False',
|
200 |
+
),
|
201 |
+
));
|
202 |
+
}
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
// update theme
|
207 |
+
if (in_array($action, array('upgrade-theme', 'update-theme', 'update-selected-themes')) && current_user_can("install_themes")) {
|
208 |
+
$themes = array();
|
209 |
+
if (isset($_REQUEST['slug']) || isset($_REQUEST['theme'])) {
|
210 |
+
$themes[] = isset($_REQUEST['slug']) ? $_REQUEST['slug'] : $_REQUEST['theme'];
|
211 |
+
} elseif (isset($_REQUEST['themes'])) {
|
212 |
+
$themes = explode(",", $_REQUEST['themes']);
|
213 |
+
}
|
214 |
+
if (isset($themes)) {
|
215 |
+
foreach ($themes as $theme_name) {
|
216 |
+
$theme = wp_get_theme($theme_name);
|
217 |
+
$this->plugin->alerts->Trigger(5031, array(
|
218 |
+
'Theme' => (object)array(
|
219 |
+
'Name' => $theme->Name,
|
220 |
+
'ThemeURI' => $theme->ThemeURI,
|
221 |
+
'Description' => $theme->Description,
|
222 |
+
'Author' => $theme->Author,
|
223 |
+
'Version' => $theme->Version,
|
224 |
+
'get_template_directory' => $theme->get_template_directory(),
|
225 |
+
),
|
226 |
+
));
|
227 |
+
}
|
228 |
+
}
|
229 |
+
}
|
230 |
+
|
231 |
+
// install theme
|
232 |
+
if (in_array($action, array('install-theme', 'upload-theme')) && current_user_can("install_themes")) {
|
233 |
+
$themes = array_diff(wp_get_themes(), $this->old_themes);
|
234 |
+
foreach ($themes as $theme) {
|
235 |
+
$this->plugin->alerts->Trigger(5005, array(
|
236 |
+
'Theme' => (object)array(
|
237 |
+
'Name' => $theme->Name,
|
238 |
+
'ThemeURI' => $theme->ThemeURI,
|
239 |
+
'Description' => $theme->Description,
|
240 |
+
'Author' => $theme->Author,
|
241 |
+
'Version' => $theme->Version,
|
242 |
+
'get_template_directory' => $theme->get_template_directory(),
|
243 |
+
),
|
244 |
+
));
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
// uninstall theme
|
249 |
+
if (in_array($action, array('delete-theme')) && current_user_can("install_themes")) {
|
250 |
+
foreach ($this->GetRemovedThemes() as $theme) {
|
251 |
+
$this->plugin->alerts->Trigger(5007, array(
|
252 |
+
'Theme' => (object)array(
|
253 |
+
'Name' => $theme->Name,
|
254 |
+
'ThemeURI' => $theme->ThemeURI,
|
255 |
+
'Description' => $theme->Description,
|
256 |
+
'Author' => $theme->Author,
|
257 |
+
'Version' => $theme->Version,
|
258 |
+
'get_template_directory' => $theme->get_template_directory(),
|
259 |
+
),
|
260 |
+
));
|
261 |
+
}
|
262 |
+
}
|
263 |
+
}
|
264 |
+
|
265 |
+
/**
|
266 |
+
* Activated a theme.
|
267 |
+
* @param string $themeName name
|
268 |
+
*/
|
269 |
+
public function EventThemeActivated($themeName)
|
270 |
+
{
|
271 |
+
$theme = null;
|
272 |
+
foreach (wp_get_themes() as $item) {
|
273 |
+
if ($item->Name == $themeName) {
|
274 |
+
$theme = $item;
|
275 |
+
break;
|
276 |
+
}
|
277 |
+
}
|
278 |
+
if ($theme == null) {
|
279 |
+
return $this->LogError(
|
280 |
+
'Could not locate theme named "' . $theme . '".',
|
281 |
+
array('ThemeName' => $themeName, 'Themes' => wp_get_themes())
|
282 |
+
);
|
283 |
+
}
|
284 |
+
$this->plugin->alerts->Trigger(5006, array(
|
285 |
+
'Theme' => (object)array(
|
286 |
+
'Name' => $theme->Name,
|
287 |
+
'ThemeURI' => $theme->ThemeURI,
|
288 |
+
'Description' => $theme->Description,
|
289 |
+
'Author' => $theme->Author,
|
290 |
+
'Version' => $theme->Version,
|
291 |
+
'get_template_directory' => $theme->get_template_directory(),
|
292 |
+
),
|
293 |
+
));
|
294 |
+
}
|
295 |
+
|
296 |
+
/**
|
297 |
+
* Plugin creates/modifies posts.
|
298 |
+
*
|
299 |
+
* @param int $post_id - Post ID.
|
300 |
+
* @param object $post - Post object.
|
301 |
+
*/
|
302 |
+
public function EventPluginPostCreate( $post_id, $post ) {
|
303 |
+
$WPActions = array( 'editpost', 'heartbeat', 'inline-save', 'trash', 'untrash' );
|
304 |
+
if ( isset( $_REQUEST['action'] ) && ! in_array( $_REQUEST['action'], $WPActions ) ) {
|
305 |
+
if ( ! in_array( $post->post_type, array( 'attachment', 'revision', 'nav_menu_item', 'customize_changeset', 'custom_css' ) )
|
306 |
+
|| ! empty( $post->post_title ) ) {
|
307 |
+
// If the plugin modify the post.
|
308 |
+
if ( false !== strpos( $_REQUEST['action'], 'edit' ) ) {
|
309 |
+
$event = $this->GetEventTypeForPostType( $post, 2106, 2107, 2108 );
|
310 |
+
$editorLink = $this->GetEditorLink( $post );
|
311 |
+
$this->plugin->alerts->Trigger( $event, array(
|
312 |
+
'PostID' => $post->ID,
|
313 |
+
'PostType' => $post->post_type,
|
314 |
+
'PostTitle' => $post->post_title,
|
315 |
+
$editorLink['name'] => $editorLink['value'],
|
316 |
+
) );
|
317 |
+
} else {
|
318 |
+
$event = $this->GetEventTypeForPostType( $post, 5019, 5020, 5021 );
|
319 |
+
$this->plugin->alerts->Trigger( $event, array(
|
320 |
+
'PostID' => $post->ID,
|
321 |
+
'PostType' => $post->post_type,
|
322 |
+
'PostTitle' => $post->post_title,
|
323 |
+
'Username' => 'Plugins',
|
324 |
+
) );
|
325 |
+
}
|
326 |
+
}
|
327 |
+
}
|
328 |
+
}
|
329 |
+
|
330 |
+
/**
|
331 |
+
* Plugin deletes posts.
|
332 |
+
*
|
333 |
+
* @param integer $post_id - Post ID.
|
334 |
+
*/
|
335 |
+
public function EventPluginPostDelete( $post_id ) {
|
336 |
+
if ( empty( $_REQUEST['action'] ) && isset( $_REQUEST['page'] ) ) {
|
337 |
+
$post = get_post( $post_id );
|
338 |
+
if ( ! in_array( $post->post_type, array( 'attachment', 'revision', 'nav_menu_item', 'customize_changeset', 'custom_css' ) )
|
339 |
+
|| ! empty( $post->post_title ) ) {
|
340 |
+
$event = $this->GetEventTypeForPostType( $post, 5025, 5026, 5027 );
|
341 |
+
$this->plugin->alerts->Trigger($event, array(
|
342 |
+
'PostID' => $post->ID,
|
343 |
+
'PostType' => $post->post_type,
|
344 |
+
'PostTitle' => $post->post_title,
|
345 |
+
'Username' => 'Plugins',
|
346 |
+
) );
|
347 |
+
}
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
+
/**
|
352 |
+
* Get removed themes.
|
353 |
+
* @return array of WP_Theme objects
|
354 |
+
*/
|
355 |
+
protected function GetRemovedThemes()
|
356 |
+
{
|
357 |
+
$result = $this->old_themes;
|
358 |
+
foreach ($result as $i => $theme) {
|
359 |
+
if (file_exists($theme->get_template_directory())) {
|
360 |
+
unset($result[$i]);
|
361 |
+
}
|
362 |
+
}
|
363 |
+
return array_values($result);
|
364 |
+
}
|
365 |
+
|
366 |
+
/**
|
367 |
+
* Get event code by post type.
|
368 |
+
*/
|
369 |
+
protected function GetEventTypeForPostType( $post, $typePost, $typePage, $typeCustom ) {
|
370 |
+
if ( empty( $post ) || ! isset( $post->post_type ) ) {
|
371 |
+
return false;
|
372 |
+
}
|
373 |
+
|
374 |
+
switch ( $post->post_type ) {
|
375 |
+
case 'page':
|
376 |
+
return $typePage;
|
377 |
+
case 'post':
|
378 |
+
return $typePost;
|
379 |
+
default:
|
380 |
+
return $typeCustom;
|
381 |
+
}
|
382 |
+
}
|
383 |
+
|
384 |
+
/**
|
385 |
+
* Get editor link.
|
386 |
+
*
|
387 |
+
* @param object $post - The post object.
|
388 |
+
* @return array $aLink name and value link.
|
389 |
+
*/
|
390 |
+
private function GetEditorLink( $post ) {
|
391 |
+
$name = 'EditorLink';
|
392 |
+
$name .= ( $post->post_type == 'page' ) ? 'Page' : 'Post' ;
|
393 |
+
$value = get_edit_post_link( $post->ID );
|
394 |
+
$aLink = array(
|
395 |
+
'name' => $name,
|
396 |
+
'value' => $value,
|
397 |
+
);
|
398 |
+
return $aLink;
|
399 |
+
}
|
400 |
}
|
classes/Settings.php
CHANGED
@@ -6,955 +6,985 @@
|
|
6 |
*/
|
7 |
class WSAL_Settings
|
8 |
{
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
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 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
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 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
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 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
935 |
|
936 |
/*============================== Support Archive Database ==============================*/
|
937 |
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
}
|
6 |
*/
|
7 |
class WSAL_Settings
|
8 |
{
|
9 |
+
/**
|
10 |
+
* @var WpSecurityAuditLog
|
11 |
+
*/
|
12 |
+
protected $_plugin;
|
13 |
+
|
14 |
+
// <editor-fold desc="Developer Options">
|
15 |
+
const OPT_DEV_DATA_INSPECTOR = 'd';
|
16 |
+
const OPT_DEV_PHP_ERRORS = 'p';
|
17 |
+
const OPT_DEV_REQUEST_LOG = 'r';
|
18 |
+
const OPT_DEV_BACKTRACE_LOG = 'b';
|
19 |
+
|
20 |
+
const ERROR_CODE_INVALID_IP = 901;
|
21 |
+
|
22 |
+
protected $_devoption = null;
|
23 |
+
|
24 |
+
protected $_pruning = 0;
|
25 |
+
|
26 |
+
protected $_disabled = null;
|
27 |
+
|
28 |
+
protected $_viewers = null;
|
29 |
+
|
30 |
+
protected $_editors = null;
|
31 |
+
|
32 |
+
protected $_perpage = null;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Users excluded from monitoring
|
36 |
+
*/
|
37 |
+
protected $_excluded_users = array();
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Roles excluded from monitoring
|
41 |
+
*/
|
42 |
+
protected $_excluded_roles = array();
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Custom fields excluded from monitoring
|
46 |
+
*/
|
47 |
+
protected $_excluded_custom = array();
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Custom Post Types excluded from monitoring.
|
51 |
+
*
|
52 |
+
* @var array
|
53 |
+
*/
|
54 |
+
protected $_post_types = array();
|
55 |
+
|
56 |
+
/**
|
57 |
+
* IP excluded from monitoring
|
58 |
+
*/
|
59 |
+
protected $_excluded_ip = array();
|
60 |
+
|
61 |
+
public function __construct(WpSecurityAuditLog $plugin)
|
62 |
+
{
|
63 |
+
$this->_plugin = $plugin;
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* @return array Array of developer options to be enabled by default.
|
68 |
+
*/
|
69 |
+
public function GetDefaultDevOptions()
|
70 |
+
{
|
71 |
+
return array();
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Returns whether a developer option is enabled or not.
|
76 |
+
* @param string $option See self::OPT_DEV_* constants.
|
77 |
+
* @return boolean If option is enabled or not.
|
78 |
+
*/
|
79 |
+
public function IsDevOptionEnabled($option)
|
80 |
+
{
|
81 |
+
if (is_null($this->_devoption)) {
|
82 |
+
$this->_devoption = $this->_plugin->GetGlobalOption(
|
83 |
+
'dev-options',
|
84 |
+
implode(',', $this->GetDefaultDevOptions())
|
85 |
+
);
|
86 |
+
$this->_devoption = explode(',', $this->_devoption);
|
87 |
+
}
|
88 |
+
return in_array($option, $this->_devoption);
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* @return boolean Whether any developer option has been enabled or not.
|
93 |
+
*/
|
94 |
+
public function IsAnyDevOptionEnabled()
|
95 |
+
{
|
96 |
+
return !!$this->_plugin->GetGlobalOption('dev-options', null);
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Sets whether a developer option is enabled or not.
|
101 |
+
* @param string $option See self::OPT_DEV_* constants.
|
102 |
+
* @param boolean $enabled If option should be enabled or not.
|
103 |
+
*/
|
104 |
+
public function SetDevOptionEnabled($option, $enabled)
|
105 |
+
{
|
106 |
+
// make sure options have been loaded
|
107 |
+
$this->IsDevOptionEnabled('');
|
108 |
+
// remove option if it exists
|
109 |
+
while (($p = array_search($option, $this->_devoption)) !== false) {
|
110 |
+
unset($this->_devoption[$p]);
|
111 |
+
}
|
112 |
+
// add option if callee wants it enabled
|
113 |
+
if ($enabled) {
|
114 |
+
$this->_devoption[] = $option;
|
115 |
+
}
|
116 |
+
// commit option
|
117 |
+
$this->_plugin->SetGlobalOption(
|
118 |
+
'dev-options',
|
119 |
+
implode(',', $this->_devoption)
|
120 |
+
);
|
121 |
+
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
* Remove all enabled developer options.
|
125 |
+
*/
|
126 |
+
public function ClearDevOptions()
|
127 |
+
{
|
128 |
+
$this->_devoption = array();
|
129 |
+
$this->_plugin->SetGlobalOption('dev-options', '');
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* @return boolean Whether to enable data inspector or not.
|
134 |
+
*/
|
135 |
+
public function IsDataInspectorEnabled()
|
136 |
+
{
|
137 |
+
return $this->IsDevOptionEnabled(self::OPT_DEV_DATA_INSPECTOR);
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* @return boolean Whether to PHP error logging or not.
|
142 |
+
*/
|
143 |
+
public function IsPhpErrorLoggingEnabled()
|
144 |
+
{
|
145 |
+
return $this->IsDevOptionEnabled(self::OPT_DEV_PHP_ERRORS);
|
146 |
+
}
|
147 |
+
|
148 |
+
/**
|
149 |
+
* @return boolean Whether to log requests to file or not.
|
150 |
+
*/
|
151 |
+
public function IsRequestLoggingEnabled()
|
152 |
+
{
|
153 |
+
return $this->IsDevOptionEnabled(self::OPT_DEV_REQUEST_LOG);
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* @return boolean Whether to store debug backtrace for PHP alerts or not.
|
158 |
+
*/
|
159 |
+
public function IsBacktraceLoggingEnabled()
|
160 |
+
{
|
161 |
+
return $this->IsDevOptionEnabled(self::OPT_DEV_BACKTRACE_LOG);
|
162 |
+
}
|
163 |
+
|
164 |
+
// </editor-fold>
|
165 |
+
|
166 |
+
/**
|
167 |
+
* @return boolean Whether dashboard widgets are enabled or not.
|
168 |
+
*/
|
169 |
+
public function IsWidgetsEnabled()
|
170 |
+
{
|
171 |
+
return !$this->_plugin->GetGlobalOption('disable-widgets');
|
172 |
+
}
|
173 |
+
|
174 |
+
/**
|
175 |
+
* @param boolean $newvalue Whether dashboard widgets are enabled or not.
|
176 |
+
*/
|
177 |
+
public function SetWidgetsEnabled($newvalue)
|
178 |
+
{
|
179 |
+
$this->_plugin->SetGlobalOption('disable-widgets', !$newvalue);
|
180 |
+
}
|
181 |
+
|
182 |
+
/**
|
183 |
+
* @return boolean Whether alerts in audit log view refresh automatically or not.
|
184 |
+
*/
|
185 |
+
public function IsRefreshAlertsEnabled()
|
186 |
+
{
|
187 |
+
return !$this->_plugin->GetGlobalOption('disable-refresh');
|
188 |
+
}
|
189 |
+
|
190 |
+
/**
|
191 |
+
* @param boolean $newvalue Whether alerts in audit log view refresh automatically or not.
|
192 |
+
*/
|
193 |
+
public function SetRefreshAlertsEnabled($newvalue)
|
194 |
+
{
|
195 |
+
$this->_plugin->SetGlobalOption('disable-refresh', !$newvalue);
|
196 |
+
}
|
197 |
+
|
198 |
+
/**
|
199 |
+
* @return int Maximum number of alerts to show in dashboard widget.
|
200 |
+
*/
|
201 |
+
public function GetDashboardWidgetMaxAlerts()
|
202 |
+
{
|
203 |
+
return 5;
|
204 |
+
}
|
205 |
+
|
206 |
+
// <editor-fold desc="Pruning Settings">
|
207 |
+
/**
|
208 |
+
* @return int The maximum number of alerts allowable.
|
209 |
+
*/
|
210 |
+
public function GetMaxAllowedAlerts()
|
211 |
+
{
|
212 |
+
return 5000;
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* @return string The default pruning date.
|
217 |
+
*/
|
218 |
+
public function GetDefaultPruningDate()
|
219 |
+
{
|
220 |
+
return '1 month';
|
221 |
+
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* @return string The current pruning date.
|
225 |
+
*/
|
226 |
+
public function GetPruningDate()
|
227 |
+
{
|
228 |
+
if (!$this->_pruning) {
|
229 |
+
$this->_pruning = $this->_plugin->GetGlobalOption('pruning-date');
|
230 |
+
if (!strtotime($this->_pruning)) {
|
231 |
+
$this->_pruning = $this->GetDefaultPruningDate();
|
232 |
+
}
|
233 |
+
}
|
234 |
+
return $this->_pruning;
|
235 |
+
}
|
236 |
+
|
237 |
+
/**
|
238 |
+
* @param string $newvalue The new pruning date.
|
239 |
+
*/
|
240 |
+
public function SetPruningDate($newvalue)
|
241 |
+
{
|
242 |
+
if (strtotime($newvalue)) {
|
243 |
+
$this->_plugin->SetGlobalOption('pruning-date', $newvalue);
|
244 |
+
$this->_pruning = $newvalue;
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* @return integer Maximum number of alerts to keep.
|
250 |
+
*/
|
251 |
+
public function GetPruningLimit()
|
252 |
+
{
|
253 |
+
$val = (int)$this->_plugin->GetGlobalOption('pruning-limit');
|
254 |
+
return $val ? $val : $this->GetMaxAllowedAlerts();
|
255 |
+
}
|
256 |
+
|
257 |
+
/**
|
258 |
+
* @param integer $newvalue The new maximum number of alerts.
|
259 |
+
*/
|
260 |
+
public function SetPruningLimit($newvalue)
|
261 |
+
{
|
262 |
+
$newvalue = max(/*min(*/(int)$newvalue/*, $this->GetMaxAllowedAlerts())*/, 1);
|
263 |
+
$this->_plugin->SetGlobalOption('pruning-limit', $newvalue);
|
264 |
+
}
|
265 |
+
|
266 |
+
public function SetPruningDateEnabled($enabled)
|
267 |
+
{
|
268 |
+
$this->_plugin->SetGlobalOption('pruning-date-e', $enabled);
|
269 |
+
}
|
270 |
+
|
271 |
+
public function SetPruningLimitEnabled($enabled)
|
272 |
+
{
|
273 |
+
$this->_plugin->SetGlobalOption('pruning-limit-e', $enabled);
|
274 |
+
}
|
275 |
+
|
276 |
+
public function IsPruningDateEnabled(){
|
277 |
+
return $this->_plugin->GetGlobalOption('pruning-date-e');
|
278 |
+
}
|
279 |
+
|
280 |
+
public function IsPruningLimitEnabled()
|
281 |
+
{
|
282 |
+
return $this->_plugin->GetGlobalOption('pruning-limit-e');
|
283 |
+
}
|
284 |
+
|
285 |
+
public function IsRestrictAdmins()
|
286 |
+
{
|
287 |
+
return $this->_plugin->GetGlobalOption('restrict-admins', false);
|
288 |
+
}
|
289 |
+
|
290 |
+
/**
|
291 |
+
* @deprecated Sandbox functionality is now in an external plugin.
|
292 |
+
*/
|
293 |
+
public function IsSandboxPageEnabled()
|
294 |
+
{
|
295 |
+
$plugins = $this->_plugin->licensing->plugins();
|
296 |
+
return isset($plugins['wsal-sandbox-extensionphp']);
|
297 |
+
}
|
298 |
+
|
299 |
+
public function SetRestrictAdmins($enable)
|
300 |
+
{
|
301 |
+
$this->_plugin->SetGlobalOption('restrict-admins', (bool)$enable);
|
302 |
+
}
|
303 |
+
|
304 |
+
// </editor-fold>
|
305 |
+
public function GetDefaultDisabledAlerts()
|
306 |
+
{
|
307 |
+
return array(0000, 0001, 0002, 0003, 0004, 0005);
|
308 |
+
}
|
309 |
+
|
310 |
+
/**
|
311 |
+
* @return array IDs of disabled alerts.
|
312 |
+
*/
|
313 |
+
public function GetDisabledAlerts()
|
314 |
+
{
|
315 |
+
if (!$this->_disabled) {
|
316 |
+
$this->_disabled = implode(',', $this->GetDefaultDisabledAlerts());
|
317 |
+
$this->_disabled = $this->_plugin->GetGlobalOption('disabled-alerts', $this->_disabled);
|
318 |
+
$this->_disabled = ($this->_disabled == '') ? array() : explode(',', $this->_disabled);
|
319 |
+
$this->_disabled = array_map('intval', $this->_disabled);
|
320 |
+
}
|
321 |
+
return $this->_disabled;
|
322 |
+
}
|
323 |
+
|
324 |
+
/**
|
325 |
+
* @param array $types IDs alerts to disable.
|
326 |
+
*/
|
327 |
+
public function SetDisabledAlerts($types)
|
328 |
+
{
|
329 |
+
$this->_disabled = array_unique(array_map('intval', $types));
|
330 |
+
$this->_plugin->SetGlobalOption('disabled-alerts', implode(',', $this->_disabled));
|
331 |
+
}
|
332 |
+
|
333 |
+
public function IsIncognito()
|
334 |
+
{
|
335 |
+
return $this->_plugin->GetGlobalOption('hide-plugin');
|
336 |
+
}
|
337 |
+
|
338 |
+
public function SetIncognito($enabled)
|
339 |
+
{
|
340 |
+
return $this->_plugin->SetGlobalOption('hide-plugin', $enabled);
|
341 |
+
}
|
342 |
+
|
343 |
+
/**
|
344 |
+
* Checking if Logging is enabled.
|
345 |
+
*/
|
346 |
+
public function IsLoggingDisabled()
|
347 |
+
{
|
348 |
+
return $this->_plugin->GetGlobalOption('disable-logging');
|
349 |
+
}
|
350 |
+
|
351 |
+
public function SetLoggingDisabled($disabled)
|
352 |
+
{
|
353 |
+
return $this->_plugin->SetGlobalOption('disable-logging', $disabled);
|
354 |
+
}
|
355 |
+
|
356 |
+
/**
|
357 |
+
* Checking if the data will be removed.
|
358 |
+
*/
|
359 |
+
public function IsDeleteData()
|
360 |
+
{
|
361 |
+
return $this->_plugin->GetGlobalOption('delete-data');
|
362 |
+
}
|
363 |
+
|
364 |
+
public function SetDeleteData($enabled)
|
365 |
+
{
|
366 |
+
return $this->_plugin->SetGlobalOption('delete-data', $enabled);
|
367 |
+
}
|
368 |
+
|
369 |
+
// <editor-fold desc="Access Control">
|
370 |
+
|
371 |
+
public function SetAllowedPluginViewers($usersOrRoles)
|
372 |
+
{
|
373 |
+
$this->_viewers = $usersOrRoles;
|
374 |
+
$this->_plugin->SetGlobalOption('plugin-viewers', implode(',', $this->_viewers));
|
375 |
+
}
|
376 |
+
|
377 |
+
public function GetAllowedPluginViewers()
|
378 |
+
{
|
379 |
+
if (is_null($this->_viewers)) {
|
380 |
+
$this->_viewers = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('plugin-viewers'))));
|
381 |
+
}
|
382 |
+
return $this->_viewers;
|
383 |
+
}
|
384 |
+
|
385 |
+
public function SetAllowedPluginEditors($usersOrRoles)
|
386 |
+
{
|
387 |
+
$this->_editors = $usersOrRoles;
|
388 |
+
$this->_plugin->SetGlobalOption('plugin-editors', implode(',', $this->_editors));
|
389 |
+
}
|
390 |
+
|
391 |
+
public function GetAllowedPluginEditors()
|
392 |
+
{
|
393 |
+
if (is_null($this->_editors)) {
|
394 |
+
$this->_editors = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('plugin-editors'))));
|
395 |
+
}
|
396 |
+
return $this->_editors;
|
397 |
+
}
|
398 |
+
|
399 |
+
public function SetViewPerPage($newvalue)
|
400 |
+
{
|
401 |
+
$this->_perpage = max($newvalue, 1);
|
402 |
+
$this->_plugin->SetGlobalOption('items-per-page', $this->_perpage);
|
403 |
+
}
|
404 |
+
|
405 |
+
public function GetViewPerPage()
|
406 |
+
{
|
407 |
+
if (is_null($this->_perpage)) {
|
408 |
+
$this->_perpage = (int)$this->_plugin->GetGlobalOption('items-per-page', 10);
|
409 |
+
}
|
410 |
+
return $this->_perpage;
|
411 |
+
}
|
412 |
+
|
413 |
+
/**
|
414 |
+
* @param string $action Type of action, either 'view' or 'edit'.
|
415 |
+
* @return boolean If user has access or not.
|
416 |
+
*/
|
417 |
+
public function CurrentUserCan($action)
|
418 |
+
{
|
419 |
+
return $this->UserCan(wp_get_current_user(), $action);
|
420 |
+
}
|
421 |
+
|
422 |
+
/**
|
423 |
+
* @return string[] List of superadmin usernames.
|
424 |
+
*/
|
425 |
+
protected function GetSuperAdmins()
|
426 |
+
{
|
427 |
+
return $this->_plugin->IsMultisite() ? get_super_admins() : array();
|
428 |
+
}
|
429 |
+
|
430 |
+
/**
|
431 |
+
* @return string[] List of admin usernames.
|
432 |
+
*/
|
433 |
+
protected function GetAdmins()
|
434 |
+
{
|
435 |
+
if ($this->_plugin->IsMultisite()) {
|
436 |
+
// see: https://gist.github.com/1508426/65785a15b8638d43a9905effb59e4d97319ef8f8
|
437 |
+
global $wpdb;
|
438 |
+
$cap = $wpdb->prefix."capabilities";
|
439 |
+
$sql = "SELECT DISTINCT $wpdb->users.user_login"
|
440 |
+
. " FROM $wpdb->users"
|
441 |
+
. " INNER JOIN $wpdb->usermeta ON ($wpdb->users.ID = $wpdb->usermeta.user_id )"
|
442 |
+
. " WHERE $wpdb->usermeta.meta_key = '$cap'"
|
443 |
+
. " AND CAST($wpdb->usermeta.meta_value AS CHAR) LIKE '%\"administrator\"%'";
|
444 |
+
return $wpdb->get_col($sql);
|
445 |
+
} else {
|
446 |
+
$result = array();
|
447 |
+
$query = 'role=administrator&fields[]=user_login';
|
448 |
+
foreach (get_users($query) as $user) {
|
449 |
+
$result[] = $user->user_login;
|
450 |
+
}
|
451 |
+
return $result;
|
452 |
+
}
|
453 |
+
}
|
454 |
+
|
455 |
+
/**
|
456 |
+
* Returns access tokens for a particular action.
|
457 |
+
* @param string $action Type of action.
|
458 |
+
* @return string[] List of tokens (usernames, roles etc).
|
459 |
+
*/
|
460 |
+
public function GetAccessTokens($action)
|
461 |
+
{
|
462 |
+
$allowed = array();
|
463 |
+
switch ($action) {
|
464 |
+
case 'view':
|
465 |
+
$allowed = $this->GetAllowedPluginViewers();
|
466 |
+
$allowed = array_merge($allowed, $this->GetAllowedPluginEditors());
|
467 |
+
if (!$this->IsRestrictAdmins()) {
|
468 |
+
$allowed = array_merge($allowed, $this->GetSuperAdmins());
|
469 |
+
$allowed = array_merge($allowed, $this->GetAdmins());
|
470 |
+
}
|
471 |
+
break;
|
472 |
+
case 'edit':
|
473 |
+
$allowed = $this->GetAllowedPluginEditors();
|
474 |
+
if (!$this->IsRestrictAdmins()) {
|
475 |
+
$allowed = array_merge($allowed, $this->_plugin->IsMultisite() ? $this->GetSuperAdmins() : $this->GetAdmins());
|
476 |
+
}
|
477 |
+
break;
|
478 |
+
default:
|
479 |
+
throw new Exception('Unknown action "'.$action.'".');
|
480 |
+
}
|
481 |
+
if (!$this->IsRestrictAdmins()) {
|
482 |
+
if (is_multisite()) {
|
483 |
+
$allowed = array_merge($allowed, get_super_admins());
|
484 |
+
} else {
|
485 |
+
$allowed[] = 'administrator';
|
486 |
+
}
|
487 |
+
}
|
488 |
+
return array_unique($allowed);
|
489 |
+
}
|
490 |
+
|
491 |
+
/**
|
492 |
+
* @param integer|WP_user $user User object to check.
|
493 |
+
* @param string $action Type of action, either 'view' or 'edit'.
|
494 |
+
* @return boolean If user has access or not.
|
495 |
+
*/
|
496 |
+
public function UserCan($user, $action)
|
497 |
+
{
|
498 |
+
if (is_int($user)) {
|
499 |
+
$user = get_userdata($user);
|
500 |
+
}
|
501 |
+
$allowed = $this->GetAccessTokens($action);
|
502 |
+
$check = array_merge($user->roles, array($user->user_login));
|
503 |
+
foreach ($check as $item) {
|
504 |
+
if (in_array($item, $allowed)) {
|
505 |
+
return true;
|
506 |
+
}
|
507 |
+
}
|
508 |
+
return false;
|
509 |
+
}
|
510 |
+
|
511 |
+
public function GetCurrentUserRoles($baseRoles = null)
|
512 |
+
{
|
513 |
+
if ($baseRoles == null) {
|
514 |
+
$baseRoles = wp_get_current_user()->roles;
|
515 |
+
}
|
516 |
+
if (function_exists('is_super_admin') && is_super_admin()) {
|
517 |
+
$baseRoles[] = 'superadmin';
|
518 |
+
}
|
519 |
+
return $baseRoles;
|
520 |
+
}
|
521 |
+
|
522 |
+
public function IsLoginSuperAdmin($username)
|
523 |
+
{
|
524 |
+
$userId = username_exists($username);
|
525 |
+
if (function_exists('is_super_admin') && is_super_admin($userId)) {
|
526 |
+
return true;
|
527 |
+
} else {
|
528 |
+
return false;
|
529 |
+
}
|
530 |
+
}
|
531 |
+
|
532 |
+
// </editor-fold>
|
533 |
+
|
534 |
+
// <editor-fold desc="Licensing">
|
535 |
+
public function GetLicenses()
|
536 |
+
{
|
537 |
+
return $this->_plugin->GetGlobalOption('licenses');
|
538 |
+
}
|
539 |
+
|
540 |
+
public function GetLicense($name)
|
541 |
+
{
|
542 |
+
$data = $this->GetLicenses();
|
543 |
+
$name = sanitize_key(basename($name));
|
544 |
+
return isset($data[$name]) ? $data[$name] : array();
|
545 |
+
}
|
546 |
+
|
547 |
+
public function SetLicenses($data)
|
548 |
+
{
|
549 |
+
$this->_plugin->SetGlobalOption('licenses', $data);
|
550 |
+
}
|
551 |
+
|
552 |
+
public function GetLicenseKey($name)
|
553 |
+
{
|
554 |
+
$data = $this->GetLicense($name);
|
555 |
+
return isset($data['key']) ? $data['key'] : '';
|
556 |
+
}
|
557 |
+
|
558 |
+
public function GetLicenseStatus($name){
|
559 |
+
$data = $this->GetLicense($name);
|
560 |
+
return isset($data['sts']) ? $data['sts'] : '';
|
561 |
+
}
|
562 |
+
|
563 |
+
public function GetLicenseErrors($name)
|
564 |
+
{
|
565 |
+
$data = $this->GetLicense($name);
|
566 |
+
return isset($data['err']) ? $data['err'] : '';
|
567 |
+
}
|
568 |
+
|
569 |
+
public function SetLicenseKey($name, $key)
|
570 |
+
{
|
571 |
+
$data = $this->GetLicenses();
|
572 |
+
if (!isset($data[$name])) {
|
573 |
+
$data[$name] = array();
|
574 |
+
}
|
575 |
+
$data[$name]['key'] = $key;
|
576 |
+
$this->SetLicenses($data);
|
577 |
+
}
|
578 |
+
|
579 |
+
public function SetLicenseStatus($name, $status)
|
580 |
+
{
|
581 |
+
$data = $this->GetLicenses();
|
582 |
+
if (!isset($data[$name])) {
|
583 |
+
$data[$name] = array();
|
584 |
+
}
|
585 |
+
$data[$name]['sts'] = $status;
|
586 |
+
$this->SetLicenses($data);
|
587 |
+
}
|
588 |
+
|
589 |
+
public function SetLicenseErrors($name, $errors)
|
590 |
+
{
|
591 |
+
$data = $this->GetLicenses();
|
592 |
+
if (!isset($data[$name])) {
|
593 |
+
$data[$name] = array();
|
594 |
+
}
|
595 |
+
$data[$name]['err'] = $errors;
|
596 |
+
$this->SetLicenses($data);
|
597 |
+
}
|
598 |
+
|
599 |
+
public function ClearLicenses()
|
600 |
+
{
|
601 |
+
$this->SetLicenses(array());
|
602 |
+
}
|
603 |
+
|
604 |
+
// </editor-fold>
|
605 |
+
// <editor-fold desc="Client IP Retrieval">
|
606 |
+
|
607 |
+
public function IsMainIPFromProxy()
|
608 |
+
{
|
609 |
+
return $this->_plugin->GetGlobalOption('use-proxy-ip');
|
610 |
+
}
|
611 |
+
|
612 |
+
public function SetMainIPFromProxy($enabled)
|
613 |
+
{
|
614 |
+
return $this->_plugin->SetGlobalOption('use-proxy-ip', $enabled);
|
615 |
+
}
|
616 |
+
|
617 |
+
public function IsInternalIPsFiltered()
|
618 |
+
{
|
619 |
+
return $this->_plugin->GetGlobalOption('filter-internal-ip');
|
620 |
+
}
|
621 |
+
|
622 |
+
public function SetInternalIPsFiltering($enabled)
|
623 |
+
{
|
624 |
+
return $this->_plugin->SetGlobalOption('filter-internal-ip', $enabled);
|
625 |
+
}
|
626 |
+
|
627 |
+
public function GetMainClientIP()
|
628 |
+
{
|
629 |
+
$result = null;
|
630 |
+
if ($this->IsMainIPFromProxy()) {
|
631 |
+
// TODO the algorithm below just gets the first IP in the list...we might want to make this more intelligent somehow
|
632 |
+
$result = $this->GetClientIPs();
|
633 |
+
$result = reset($result);
|
634 |
+
$result = isset($result[0]) ? $result[0] : null;
|
635 |
+
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
|
636 |
+
$result = $this->NormalizeIP($_SERVER['REMOTE_ADDR']);
|
637 |
+
if (!$this->ValidateIP($result)) {
|
638 |
+
$result = "Error " . self::ERROR_CODE_INVALID_IP . ": Invalid IP Address";
|
639 |
+
}
|
640 |
+
}
|
641 |
+
return $result;
|
642 |
+
}
|
643 |
+
|
644 |
+
public function GetClientIPs()
|
645 |
+
{
|
646 |
+
$ips = array();
|
647 |
+
foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) {
|
648 |
+
if (isset($_SERVER[$key])) {
|
649 |
+
$ips[$key] = array();
|
650 |
+
foreach (explode(',', $_SERVER[$key]) as $ip) {
|
651 |
+
if ($this->ValidateIP($ip = $this->NormalizeIP($ip))) {
|
652 |
+
$ips[$key][] = $ip;
|
653 |
+
}
|
654 |
+
}
|
655 |
+
}
|
656 |
+
}
|
657 |
+
return $ips;
|
658 |
+
}
|
659 |
+
|
660 |
+
protected function NormalizeIP($ip)
|
661 |
+
{
|
662 |
+
$ip = trim($ip);
|
663 |
+
if (strpos($ip, ':') !== false && substr_count($ip, '.') == 3 && strpos($ip, '[') === false) {
|
664 |
+
// IPv4 with a port (eg: 11.22.33.44:80)
|
665 |
+
$ip = explode(':', $ip);
|
666 |
+
$ip = $ip[0];
|
667 |
+
} else {
|
668 |
+
// IPv6 with a port (eg: [::1]:80)
|
669 |
+
$ip = explode(']', $ip);
|
670 |
+
$ip = ltrim($ip[0], '[');
|
671 |
+
}
|
672 |
+
return $ip;
|
673 |
+
}
|
674 |
+
|
675 |
+
protected function ValidateIP($ip)
|
676 |
+
{
|
677 |
+
$opts = FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6;
|
678 |
+
if ($this->IsInternalIPsFiltered()) {
|
679 |
+
$opts = $opts | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
|
680 |
+
}
|
681 |
+
$filteredIP = filter_var($ip, FILTER_VALIDATE_IP, $opts);
|
682 |
+
if (!$filteredIP || empty($filteredIP)) {
|
683 |
+
//Regex IPV4
|
684 |
+
if (preg_match("/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/", $ip)) {
|
685 |
+
return $ip;
|
686 |
+
}
|
687 |
+
//Regex IPV6
|
688 |
+
elseif (preg_match("/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/", $ip)) {
|
689 |
+
return $ip;
|
690 |
+
}
|
691 |
+
if (!$this->IsLoggingDisabled) {
|
692 |
+
error_log("Invalid IP in ValidateIP function: ".$ip);
|
693 |
+
}
|
694 |
+
return false;
|
695 |
+
} else {
|
696 |
+
return $filteredIP;
|
697 |
+
}
|
698 |
+
}
|
699 |
+
|
700 |
+
/**
|
701 |
+
* Users excluded from monitoring
|
702 |
+
*/
|
703 |
+
public function SetExcludedMonitoringUsers($users)
|
704 |
+
{
|
705 |
+
$this->_excluded_users = $users;
|
706 |
+
$this->_plugin->SetGlobalOption('excluded-users', esc_html(implode(',', $this->_excluded_users)));
|
707 |
+
}
|
708 |
+
|
709 |
+
public function GetExcludedMonitoringUsers()
|
710 |
+
{
|
711 |
+
if (empty($this->_excluded_users)) {
|
712 |
+
$this->_excluded_users = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('excluded-users'))));
|
713 |
+
}
|
714 |
+
return $this->_excluded_users;
|
715 |
+
}
|
716 |
+
|
717 |
+
/**
|
718 |
+
* Set Custom Post Types excluded from monitoring.
|
719 |
+
*
|
720 |
+
* @param array $post_types - Array of post types to exclude.
|
721 |
+
* @since 2.6.7
|
722 |
+
*/
|
723 |
+
public function set_excluded_post_types( $post_types ) {
|
724 |
+
$this->_post_types = $post_types;
|
725 |
+
$this->_plugin->SetGlobalOption( 'custom-post-types', esc_html( implode( ',', $this->_post_types ) ) );
|
726 |
+
}
|
727 |
+
|
728 |
+
/**
|
729 |
+
* Get Custom Post Types excluded from monitoring.
|
730 |
+
*
|
731 |
+
* @since 2.6.7
|
732 |
+
*/
|
733 |
+
public function get_excluded_post_types() {
|
734 |
+
if ( empty( $this->_post_types ) ) {
|
735 |
+
$this->_post_types = array_unique( array_filter( explode( ',', $this->_plugin->GetGlobalOption( 'custom-post-types' ) ) ) );
|
736 |
+
}
|
737 |
+
return $this->_post_types;
|
738 |
+
}
|
739 |
+
|
740 |
+
/**
|
741 |
+
* Roles excluded from monitoring
|
742 |
+
*/
|
743 |
+
public function SetExcludedMonitoringRoles($roles)
|
744 |
+
{
|
745 |
+
$this->_excluded_roles = $roles;
|
746 |
+
$this->_plugin->SetGlobalOption('excluded-roles', esc_html(implode(',', $this->_excluded_roles)));
|
747 |
+
}
|
748 |
+
|
749 |
+
public function GetExcludedMonitoringRoles()
|
750 |
+
{
|
751 |
+
if (empty($this->_excluded_roles)) {
|
752 |
+
$this->_excluded_roles = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('excluded-roles'))));
|
753 |
+
}
|
754 |
+
return $this->_excluded_roles;
|
755 |
+
}
|
756 |
+
|
757 |
+
/**
|
758 |
+
* Custom fields excluded from monitoring
|
759 |
+
*/
|
760 |
+
public function SetExcludedMonitoringCustom($custom)
|
761 |
+
{
|
762 |
+
$this->_excluded_custom = $custom;
|
763 |
+
$this->_plugin->SetGlobalOption('excluded-custom', esc_html(implode(',', $this->_excluded_custom)));
|
764 |
+
}
|
765 |
+
|
766 |
+
public function GetExcludedMonitoringCustom()
|
767 |
+
{
|
768 |
+
if (empty($this->_excluded_custom)) {
|
769 |
+
$this->_excluded_custom = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('excluded-custom'))));
|
770 |
+
asort($this->_excluded_custom);
|
771 |
+
}
|
772 |
+
return $this->_excluded_custom;
|
773 |
+
}
|
774 |
+
|
775 |
+
/**
|
776 |
+
* IP excluded from monitoring
|
777 |
+
*/
|
778 |
+
public function SetExcludedMonitoringIP($ip)
|
779 |
+
{
|
780 |
+
$this->_excluded_ip = $ip;
|
781 |
+
$this->_plugin->SetGlobalOption('excluded-ip', esc_html(implode(',', $this->_excluded_ip)));
|
782 |
+
}
|
783 |
+
|
784 |
+
public function GetExcludedMonitoringIP()
|
785 |
+
{
|
786 |
+
if (empty($this->_excluded_ip)) {
|
787 |
+
$this->_excluded_ip = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('excluded-ip'))));
|
788 |
+
}
|
789 |
+
return $this->_excluded_ip;
|
790 |
+
}
|
791 |
+
|
792 |
+
/**
|
793 |
+
* Datetime used in the Alerts.
|
794 |
+
*/
|
795 |
+
public function GetDatetimeFormat($lineBreak = true)
|
796 |
+
{
|
797 |
+
if ($lineBreak) {
|
798 |
+
$date_time_format = $this->GetDateFormat() . '<\b\r>' . $this->GetTimeFormat();
|
799 |
+
} else {
|
800 |
+
$date_time_format = $this->GetDateFormat() . ' ' . $this->GetTimeFormat();
|
801 |
+
}
|
802 |
+
|
803 |
+
$wp_time_format = get_option('time_format');
|
804 |
+
if (stripos($wp_time_format, 'A') !== false) {
|
805 |
+
$date_time_format .= '.$$$&\n\b\s\p;A';
|
806 |
+
} else {
|
807 |
+
$date_time_format .= '.$$$';
|
808 |
+
}
|
809 |
+
return $date_time_format;
|
810 |
+
}
|
811 |
+
|
812 |
+
/**
|
813 |
+
* Date Format from WordPress General Settings.
|
814 |
+
*/
|
815 |
+
public function GetDateFormat()
|
816 |
+
{
|
817 |
+
$wp_date_format = get_option('date_format');
|
818 |
+
$search = array('F', 'M', 'n', 'j', ' ', '/', 'y', 'S', ',', 'l', 'D');
|
819 |
+
$replace = array('m', 'm', 'm', 'd', '-', '-', 'Y', '', '', '', '');
|
820 |
+
$date_format = str_replace($search, $replace, $wp_date_format);
|
821 |
+
return $date_format;
|
822 |
+
}
|
823 |
+
|
824 |
+
/**
|
825 |
+
* Time Format from WordPress General Settings.
|
826 |
+
*/
|
827 |
+
public function GetTimeFormat()
|
828 |
+
{
|
829 |
+
$wp_time_format = get_option('time_format');
|
830 |
+
$search = array('a', 'A', 'T', ' ');
|
831 |
+
$replace = array('', '', '', '');
|
832 |
+
$time_format = str_replace($search, $replace, $wp_time_format);
|
833 |
+
return $time_format;
|
834 |
+
}
|
835 |
+
|
836 |
+
/**
|
837 |
+
* Alerts Timestamp
|
838 |
+
* Server's timezone or WordPress' timezone
|
839 |
+
*/
|
840 |
+
public function GetTimezone()
|
841 |
+
{
|
842 |
+
return $this->_plugin->GetGlobalOption('timezone', 0);
|
843 |
+
}
|
844 |
+
|
845 |
+
public function SetTimezone($newvalue)
|
846 |
+
{
|
847 |
+
return $this->_plugin->SetGlobalOption('timezone', $newvalue);
|
848 |
+
}
|
849 |
+
|
850 |
+
/**
|
851 |
+
* Get type of username to display
|
852 |
+
*/
|
853 |
+
public function get_type_username() {
|
854 |
+
return $this->_plugin->GetGlobalOption( 'type_username', 'display_name' );
|
855 |
+
}
|
856 |
+
|
857 |
+
/**
|
858 |
+
* Set type of username to display
|
859 |
+
*
|
860 |
+
* @param string $newvalue - New value variable.
|
861 |
+
* @since 2.6.5
|
862 |
+
*/
|
863 |
+
public function set_type_username( $newvalue ) {
|
864 |
+
return $this->_plugin->SetGlobalOption( 'type_username', $newvalue );
|
865 |
+
}
|
866 |
+
|
867 |
+
public function GetAdapterConfig($name_field)
|
868 |
+
{
|
869 |
+
return $this->_plugin->GetGlobalOption($name_field);
|
870 |
+
}
|
871 |
+
|
872 |
+
public function SetAdapterConfig($name_field, $newvalue)
|
873 |
+
{
|
874 |
+
return $this->_plugin->SetGlobalOption($name_field, trim($newvalue));
|
875 |
+
}
|
876 |
+
|
877 |
+
public function GetColumns()
|
878 |
+
{
|
879 |
+
$columns = array('alert_code' => '1', 'type' => '1', 'date' => '1', 'username' => '1', 'source_ip' => '1', 'message' => '1');
|
880 |
+
if ($this->_plugin->IsMultisite()) {
|
881 |
+
$columns = array_slice($columns, 0, 5, true) + array('site' => '1') + array_slice($columns, 5, null, true);
|
882 |
+
}
|
883 |
+
$selected = $this->GetColumnsSelected();
|
884 |
+
if (!empty($selected)) {
|
885 |
+
$columns = array('alert_code' => '0', 'type' => '0', 'date' => '0', 'username' => '0', 'source_ip' => '0', 'message' => '0');
|
886 |
+
if ($this->_plugin->IsMultisite()) {
|
887 |
+
$columns = array_slice($columns, 0, 5, true) + array('site' => '0') + array_slice($columns, 5, null, true);
|
888 |
+
}
|
889 |
+
$selected = (array)json_decode($selected);
|
890 |
+
$columns = array_merge($columns, $selected);
|
891 |
+
return $columns;
|
892 |
+
} else {
|
893 |
+
return $columns;
|
894 |
+
}
|
895 |
+
}
|
896 |
+
|
897 |
+
public function GetColumnsSelected()
|
898 |
+
{
|
899 |
+
return $this->_plugin->GetGlobalOption('columns');
|
900 |
+
}
|
901 |
+
|
902 |
+
public function SetColumns($columns)
|
903 |
+
{
|
904 |
+
return $this->_plugin->SetGlobalOption('columns', json_encode($columns));
|
905 |
+
}
|
906 |
+
|
907 |
+
public function IsWPBackend()
|
908 |
+
{
|
909 |
+
return $this->_plugin->GetGlobalOption('wp-backend');
|
910 |
+
}
|
911 |
+
|
912 |
+
public function SetWPBackend($enabled)
|
913 |
+
{
|
914 |
+
return $this->_plugin->SetGlobalOption('wp-backend', $enabled);
|
915 |
+
}
|
916 |
+
|
917 |
+
public function SetFromEmail($email_address)
|
918 |
+
{
|
919 |
+
return $this->_plugin->SetGlobalOption('from-email', trim($email_address));
|
920 |
+
}
|
921 |
+
|
922 |
+
public function GetFromEmail()
|
923 |
+
{
|
924 |
+
return $this->_plugin->GetGlobalOption('from-email');
|
925 |
+
}
|
926 |
+
|
927 |
+
public function SetDisplayName($display_name)
|
928 |
+
{
|
929 |
+
return $this->_plugin->SetGlobalOption('display-name', trim($display_name));
|
930 |
+
}
|
931 |
+
|
932 |
+
public function GetDisplayName()
|
933 |
+
{
|
934 |
+
return $this->_plugin->GetGlobalOption('display-name');
|
935 |
+
}
|
936 |
+
|
937 |
+
public function Set404LogLimit($value)
|
938 |
+
{
|
939 |
+
return $this->_plugin->SetGlobalOption('log-404-limit', abs($value));
|
940 |
+
}
|
941 |
+
|
942 |
+
public function Get404LogLimit()
|
943 |
+
{
|
944 |
+
return $this->_plugin->GetGlobalOption('log-404-limit', 99);
|
945 |
+
}
|
946 |
+
|
947 |
+
/**
|
948 |
+
* Sets the 404 log limit for visitor.
|
949 |
+
*
|
950 |
+
* @param int $value - 404 log limit.
|
951 |
+
* @since 2.6.3
|
952 |
+
*/
|
953 |
+
public function SetVisitor404LogLimit( $value ) {
|
954 |
+
return $this->_plugin->SetGlobalOption( 'log-visitor-404-limit', abs( $value ) );
|
955 |
+
}
|
956 |
+
|
957 |
+
/**
|
958 |
+
* Get the 404 log limit for visitor.
|
959 |
+
*
|
960 |
+
* @since 2.6.3
|
961 |
+
*/
|
962 |
+
public function GetVisitor404LogLimit() {
|
963 |
+
return $this->_plugin->GetGlobalOption( 'log-visitor-404-limit', 99 );
|
964 |
+
}
|
965 |
|
966 |
/*============================== Support Archive Database ==============================*/
|
967 |
|
968 |
+
public function IsArchivingEnabled()
|
969 |
+
{
|
970 |
+
return $this->_plugin->GetGlobalOption('archiving-e');
|
971 |
+
}
|
972 |
+
|
973 |
+
/**
|
974 |
+
* Switch to Archive DB if is enabled
|
975 |
+
*/
|
976 |
+
public function SwitchToArchiveDB()
|
977 |
+
{
|
978 |
+
if ($this->IsArchivingEnabled()) {
|
979 |
+
$archiveType = $this->_plugin->GetGlobalOption('archive-type');
|
980 |
+
$archiveUser = $this->_plugin->GetGlobalOption('archive-user');
|
981 |
+
$password = $this->_plugin->GetGlobalOption('archive-password');
|
982 |
+
$archiveName = $this->_plugin->GetGlobalOption('archive-name');
|
983 |
+
$archiveHostname = $this->_plugin->GetGlobalOption('archive-hostname');
|
984 |
+
$archiveBasePrefix = $this->_plugin->GetGlobalOption('archive-base-prefix');
|
985 |
+
$config = WSAL_Connector_ConnectorFactory::GetConfigArray($archiveType, $archiveUser, $password, $archiveName, $archiveHostname, $archiveBasePrefix);
|
986 |
+
$this->_plugin->getConnector($config)->getAdapter('Occurrence');
|
987 |
+
}
|
988 |
+
}
|
989 |
+
// </editor-fold>
|
990 |
}
|
classes/Views/Settings.php
CHANGED
@@ -16,16 +16,16 @@
|
|
16 |
* @since 1.0.0
|
17 |
*/
|
18 |
class WSAL_Views_Settings extends WSAL_AbstractView {
|
19 |
-
public $adapterMsg = '';
|
20 |
|
21 |
-
public
|
22 |
-
{
|
23 |
-
parent::__construct($plugin);
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
add_action('
|
28 |
-
add_action('
|
|
|
|
|
|
|
29 |
}
|
30 |
|
31 |
public function HasPluginShortcutLink()
|
@@ -53,20 +53,29 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
53 |
return 3;
|
54 |
}
|
55 |
|
56 |
-
protected function GetTokenType($token)
|
57 |
-
|
|
|
58 |
$users = array();
|
59 |
-
foreach (get_users('blog_id=0&fields[]=user_login') as $obj) {
|
60 |
$users[] = $obj->user_login;
|
61 |
}
|
62 |
-
$roles = array_keys(get_editable_roles());
|
63 |
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
return 'user';
|
66 |
}
|
67 |
-
if (in_array($token, $roles)) {
|
68 |
return 'role';
|
69 |
}
|
|
|
|
|
|
|
70 |
return 'other';
|
71 |
}
|
72 |
|
@@ -93,6 +102,7 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
93 |
$this->_plugin->settings->SetExcludedMonitoringRoles( isset( $_REQUEST['ExRoles'] ) ? $_REQUEST['ExRoles'] : array() );
|
94 |
$this->_plugin->settings->SetExcludedMonitoringCustom( isset( $_REQUEST['Customs'] ) ? $_REQUEST['Customs'] : array() );
|
95 |
$this->_plugin->settings->SetExcludedMonitoringIP( isset( $_REQUEST['IpAddrs'] ) ? $_REQUEST['IpAddrs'] : array() );
|
|
|
96 |
|
97 |
$this->_plugin->settings->SetRestrictAdmins( isset( $_REQUEST['RestrictAdmins'] ) );
|
98 |
$this->_plugin->settings->SetRefreshAlertsEnabled( $_REQUEST['EnableAuditViewRefresh'] );
|
@@ -116,15 +126,14 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
116 |
}
|
117 |
}
|
118 |
|
119 |
-
public function AjaxCheckSecurityToken()
|
120 |
-
|
121 |
-
|
122 |
-
die('Access Denied.');
|
123 |
}
|
124 |
-
if (!isset($_REQUEST['token'])) {
|
125 |
-
die('Token parameter expected.');
|
126 |
}
|
127 |
-
die($this->GetTokenType($_REQUEST['token']));
|
128 |
}
|
129 |
|
130 |
public function AjaxRunCleanup()
|
@@ -542,8 +551,7 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
542 |
</label>
|
543 |
<br/>
|
544 |
<?php } ?>
|
545 |
-
<span class="description"><?php _e('When you disable any of the above such details won’t be shown in the Audit Log
|
546 |
-
viewer though the plugin will still record such information in the database.', 'wp-security-audit-log'); ?></span>
|
547 |
</fieldset>
|
548 |
</td>
|
549 |
</tr>
|
@@ -570,7 +578,7 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
570 |
<table class="form-table wsal-tab widefat" id="tab-exclude">
|
571 |
<tbody>
|
572 |
<tr>
|
573 |
-
<th><h2
|
574 |
</tr>
|
575 |
<tr>
|
576 |
<td colspan="2">Any of the users and roles listed in the below options will be excluded from monitoring. This means that any change they do will not be logged.</td>
|
@@ -616,7 +624,7 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
616 |
</td>
|
617 |
</tr>
|
618 |
<tr>
|
619 |
-
<th><h2
|
620 |
</tr>
|
621 |
<tr>
|
622 |
<td colspan="2">All of the custom fields listed below will be excluded from monitoring. This means that if they are changed or updated the plugin will not log such activity.<br>
|
@@ -643,7 +651,7 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
643 |
</td>
|
644 |
</tr>
|
645 |
<tr>
|
646 |
-
<th><h2
|
647 |
</tr>
|
648 |
<tr>
|
649 |
<td colspan="2">Any of the IP addresses listed below will be excluded from monitoring. This means that all activity from such IP address will not be recorded.</td>
|
@@ -668,6 +676,32 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
668 |
</fieldset>
|
669 |
</td>
|
670 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
671 |
</tbody>
|
672 |
</table>
|
673 |
</div>
|
@@ -768,33 +802,55 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
768 |
</script><?php
|
769 |
}
|
770 |
|
771 |
-
public function AjaxGetAllUsers()
|
772 |
-
|
773 |
-
|
774 |
-
die('Access Denied.');
|
775 |
}
|
776 |
$users = array();
|
777 |
-
foreach (get_users() as $user) {
|
778 |
-
if (strpos($user->user_login, $_GET['term']) !== false) {
|
779 |
-
array_push($users, $user->user_login);
|
780 |
}
|
781 |
}
|
782 |
-
echo json_encode($users);
|
783 |
exit;
|
784 |
}
|
785 |
|
786 |
-
public function AjaxGetAllRoles()
|
787 |
-
|
788 |
-
|
789 |
-
die('Access Denied.');
|
790 |
}
|
791 |
$roles = array();
|
792 |
-
foreach (get_editable_roles() as $role_name => $role_info) {
|
793 |
-
if (strpos($role_name, $_GET['term']) !== false) {
|
794 |
-
array_push($roles, $role_name);
|
795 |
}
|
796 |
}
|
797 |
-
echo json_encode($roles);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
798 |
exit;
|
799 |
}
|
800 |
}
|
16 |
* @since 1.0.0
|
17 |
*/
|
18 |
class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
|
19 |
|
20 |
+
public $adapterMsg = '';
|
|
|
|
|
21 |
|
22 |
+
public function __construct( WpSecurityAuditLog $plugin ) {
|
23 |
+
parent::__construct( $plugin );
|
24 |
+
add_action( 'wp_ajax_AjaxCheckSecurityToken', array( $this, 'AjaxCheckSecurityToken' ) );
|
25 |
+
add_action( 'wp_ajax_AjaxRunCleanup', array( $this, 'AjaxRunCleanup' ) );
|
26 |
+
add_action( 'wp_ajax_AjaxGetAllUsers', array( $this, 'AjaxGetAllUsers' ) );
|
27 |
+
add_action( 'wp_ajax_AjaxGetAllRoles', array( $this, 'AjaxGetAllRoles' ) );
|
28 |
+
add_action( 'wp_ajax_AjaxGetAllCPT', array( $this, 'AjaxGetAllCPT' ) );
|
29 |
}
|
30 |
|
31 |
public function HasPluginShortcutLink()
|
53 |
return 3;
|
54 |
}
|
55 |
|
56 |
+
protected function GetTokenType( $token ) {
|
57 |
+
|
58 |
+
// Get users.
|
59 |
$users = array();
|
60 |
+
foreach ( get_users( 'blog_id=0&fields[]=user_login' ) as $obj ) {
|
61 |
$users[] = $obj->user_login;
|
62 |
}
|
|
|
63 |
|
64 |
+
// Get user roles.
|
65 |
+
$roles = array_keys( get_editable_roles() );
|
66 |
+
|
67 |
+
// Get custom post types.
|
68 |
+
$post_types = get_post_types( array(), 'names', 'and' );
|
69 |
+
|
70 |
+
if ( in_array( $token, $users ) ) {
|
71 |
return 'user';
|
72 |
}
|
73 |
+
if ( in_array( $token, $roles ) ) {
|
74 |
return 'role';
|
75 |
}
|
76 |
+
if ( in_array( $token, $post_types ) ) {
|
77 |
+
return 'cpts';
|
78 |
+
}
|
79 |
return 'other';
|
80 |
}
|
81 |
|
102 |
$this->_plugin->settings->SetExcludedMonitoringRoles( isset( $_REQUEST['ExRoles'] ) ? $_REQUEST['ExRoles'] : array() );
|
103 |
$this->_plugin->settings->SetExcludedMonitoringCustom( isset( $_REQUEST['Customs'] ) ? $_REQUEST['Customs'] : array() );
|
104 |
$this->_plugin->settings->SetExcludedMonitoringIP( isset( $_REQUEST['IpAddrs'] ) ? $_REQUEST['IpAddrs'] : array() );
|
105 |
+
$this->_plugin->settings->set_excluded_post_types( isset( $_REQUEST['ExCPTss'] ) ? $_REQUEST['ExCPTss'] : array() );
|
106 |
|
107 |
$this->_plugin->settings->SetRestrictAdmins( isset( $_REQUEST['RestrictAdmins'] ) );
|
108 |
$this->_plugin->settings->SetRefreshAlertsEnabled( $_REQUEST['EnableAuditViewRefresh'] );
|
126 |
}
|
127 |
}
|
128 |
|
129 |
+
public function AjaxCheckSecurityToken() {
|
130 |
+
if ( ! $this->_plugin->settings->CurrentUserCan( 'view' ) ) {
|
131 |
+
die( 'Access Denied.' );
|
|
|
132 |
}
|
133 |
+
if ( ! isset( $_REQUEST['token'] ) ) {
|
134 |
+
die( 'Token parameter expected.' );
|
135 |
}
|
136 |
+
die( $this->GetTokenType( $_REQUEST['token'] ) );
|
137 |
}
|
138 |
|
139 |
public function AjaxRunCleanup()
|
551 |
</label>
|
552 |
<br/>
|
553 |
<?php } ?>
|
554 |
+
<span class="description"><?php _e( 'When you disable any of the above such details won’t be shown in the Audit Log viewer though the plugin will still record such information in the database.', 'wp-security-audit-log' ); ?></span>
|
|
|
555 |
</fieldset>
|
556 |
</td>
|
557 |
</tr>
|
578 |
<table class="form-table wsal-tab widefat" id="tab-exclude">
|
579 |
<tbody>
|
580 |
<tr>
|
581 |
+
<th><h2><?php esc_html_e( 'Users & Roles', 'wp-security-audit-log' ); ?></h2></th>
|
582 |
</tr>
|
583 |
<tr>
|
584 |
<td colspan="2">Any of the users and roles listed in the below options will be excluded from monitoring. This means that any change they do will not be logged.</td>
|
624 |
</td>
|
625 |
</tr>
|
626 |
<tr>
|
627 |
+
<th><h2><?php esc_html_e( 'Custom Fields', 'wp-security-audit-log' ); ?></h2></th>
|
628 |
</tr>
|
629 |
<tr>
|
630 |
<td colspan="2">All of the custom fields listed below will be excluded from monitoring. This means that if they are changed or updated the plugin will not log such activity.<br>
|
651 |
</td>
|
652 |
</tr>
|
653 |
<tr>
|
654 |
+
<th><h2><?php esc_html_e( 'IP Addresses', 'wp-security-audit-log' ); ?></h2></th>
|
655 |
</tr>
|
656 |
<tr>
|
657 |
<td colspan="2">Any of the IP addresses listed below will be excluded from monitoring. This means that all activity from such IP address will not be recorded.</td>
|
676 |
</fieldset>
|
677 |
</td>
|
678 |
</tr>
|
679 |
+
<tr>
|
680 |
+
<th><h2><?php esc_html_e( 'Custom Post Types', 'wp-security-audit-log' ); ?></h2></th>
|
681 |
+
</tr>
|
682 |
+
<tr>
|
683 |
+
<td colspan="2"><?php esc_html_e( 'The below list of Custom Post Types are excluded from monitoring. This means that all activity related to these Custom Post Types will not be recorded.', 'wp-security-audit-log' ); ?></td>
|
684 |
+
</tr>
|
685 |
+
<tr>
|
686 |
+
<th><label for="ExCPTsQueryBox"><?php esc_html_e( 'Exclude Custom Post Type from monitoring', 'wp-security-audit-log' ); ?></label></th>
|
687 |
+
<td>
|
688 |
+
<fieldset>
|
689 |
+
<input type="text" id="ExCPTsQueryBox" style="float: left; display: block; width: 250px;">
|
690 |
+
<input type="button" id="ExCPTsQueryAdd" style="float: left; display: block;" class="button-primary" value="Add">
|
691 |
+
<br style="clear: both;"/>
|
692 |
+
<div id="ExCPTsList">
|
693 |
+
<?php foreach ( $this->_plugin->settings->get_excluded_post_types() as $item ) : ?>
|
694 |
+
<span class="sectoken-<?php echo esc_attr( $this->GetTokenType( $item ) ); ?>">
|
695 |
+
<input type="hidden" name="ExCPTss[]" value="<?php echo esc_attr( $item ); ?>"/>
|
696 |
+
<?php echo esc_html( $item ); ?>
|
697 |
+
<a href="javascript:;" title="Remove">×</a>
|
698 |
+
</span>
|
699 |
+
<?php endforeach; ?>
|
700 |
+
</div>
|
701 |
+
</fieldset>
|
702 |
+
</td>
|
703 |
+
</tr>
|
704 |
+
<!-- Excluded Custom Post Types -->
|
705 |
</tbody>
|
706 |
</table>
|
707 |
</div>
|
802 |
</script><?php
|
803 |
}
|
804 |
|
805 |
+
public function AjaxGetAllUsers() {
|
806 |
+
if ( ! $this->_plugin->settings->CurrentUserCan( 'view' ) ) {
|
807 |
+
die( 'Access Denied.' );
|
|
|
808 |
}
|
809 |
$users = array();
|
810 |
+
foreach ( get_users() as $user ) {
|
811 |
+
if ( strpos( $user->user_login, $_GET['term'] ) !== false ) {
|
812 |
+
array_push( $users, $user->user_login );
|
813 |
}
|
814 |
}
|
815 |
+
echo json_encode( $users );
|
816 |
exit;
|
817 |
}
|
818 |
|
819 |
+
public function AjaxGetAllRoles() {
|
820 |
+
if ( ! $this->_plugin->settings->CurrentUserCan( 'view' ) ) {
|
821 |
+
die( 'Access Denied.' );
|
|
|
822 |
}
|
823 |
$roles = array();
|
824 |
+
foreach ( get_editable_roles() as $role_name => $role_info ) {
|
825 |
+
if ( strpos( $role_name, $_GET['term'] ) !== false ) {
|
826 |
+
array_push( $roles, $role_name );
|
827 |
}
|
828 |
}
|
829 |
+
echo json_encode( $roles );
|
830 |
+
exit;
|
831 |
+
}
|
832 |
+
|
833 |
+
/**
|
834 |
+
* Method: Get CPTs ajax handle.
|
835 |
+
*
|
836 |
+
* @since 2.6.7
|
837 |
+
*/
|
838 |
+
public function AjaxGetAllCPT() {
|
839 |
+
if ( ! $this->_plugin->settings->CurrentUserCan( 'view' ) ) {
|
840 |
+
die( 'Access Denied.' );
|
841 |
+
}
|
842 |
+
|
843 |
+
$custom_post_types = array();
|
844 |
+
$output = 'names'; // names or objects, note names is the default
|
845 |
+
$operator = 'and'; // Conditions: and, or.
|
846 |
+
$post_types = get_post_types( array(), $output, $operator );
|
847 |
+
$post_types = array_diff( $post_types, array( 'attachment', 'revision', 'nav_menu_item', 'customize_changeset', 'custom_css' ) );
|
848 |
+
foreach ( $post_types as $post_type ) {
|
849 |
+
if ( strpos( $post_type, $_GET['term'] ) !== false ) {
|
850 |
+
array_push( $custom_post_types, $post_type );
|
851 |
+
}
|
852 |
+
}
|
853 |
+
echo json_encode( $custom_post_types );
|
854 |
exit;
|
855 |
}
|
856 |
}
|
css/settings.css
CHANGED
@@ -18,6 +18,7 @@
|
|
18 |
|
19 |
.sectoken-user,
|
20 |
.sectoken-role,
|
|
|
21 |
.sectoken-other {
|
22 |
display: inline-block;
|
23 |
border-width: 1px;
|
@@ -34,6 +35,7 @@
|
|
34 |
|
35 |
.sectoken-user a,
|
36 |
.sectoken-role a,
|
|
|
37 |
.sectoken-other a {
|
38 |
text-decoration: none;
|
39 |
font-size: 12px;
|
@@ -44,6 +46,7 @@
|
|
44 |
border-radius: 25px;
|
45 |
height: 14px;
|
46 |
display: inline-block;
|
|
|
47 |
width: 14px;
|
48 |
text-align: center;
|
49 |
line-height: 12px;
|
@@ -51,12 +54,14 @@
|
|
51 |
|
52 |
.sectoken-user a:hover,
|
53 |
.sectoken-role a:hover,
|
|
|
54 |
.sectoken-other a:hover {
|
55 |
background: #FB9;
|
56 |
}
|
57 |
|
58 |
.sectoken-user { background: #EFF; border-color: #5BE; }
|
59 |
.sectoken-role { background: #EFE; border-color: #5B5; }
|
|
|
60 |
.sectoken-other { background: #FFE; border-color: #ED5; }
|
61 |
.sectoken-del { background: #FEE; border-color: #EBB; }
|
62 |
|
@@ -73,26 +78,26 @@
|
|
73 |
/*
|
74 |
* IOS button
|
75 |
*/
|
76 |
-
.f-container {
|
77 |
-
overflow: hidden;
|
78 |
-
min-height: 1px;
|
79 |
margin-top: 0;
|
80 |
}
|
81 |
-
.f-left {
|
82 |
float: left;
|
83 |
}
|
84 |
-
.f-right {
|
85 |
float: right;
|
86 |
}
|
87 |
-
.f-text {
|
88 |
margin-top: 3px;
|
89 |
margin-left: 8px;
|
90 |
}
|
91 |
-
input.switch[type="checkbox"],
|
92 |
-
input.switch[type="radio"] {
|
93 |
display: none;
|
94 |
}
|
95 |
-
input.switch[type="checkbox"] + label,
|
96 |
input.switch[type="radio"] + label {
|
97 |
background-color: white;
|
98 |
border: 1px solid #b4b9be;;
|
@@ -106,7 +111,7 @@ input.switch[type="radio"] + label {
|
|
106 |
vertical-align: middle;
|
107 |
width: 38px;
|
108 |
}
|
109 |
-
input.switch[type="checkbox"] + label:after,
|
110 |
input.switch[type="radio"] + label:after {
|
111 |
background: none repeat scroll 0 0 white;
|
112 |
border-radius: 100%;
|
@@ -119,20 +124,20 @@ input.switch[type="radio"] + label:after {
|
|
119 |
transition: left 0.2s ease-in-out 0s;
|
120 |
width: 16px;
|
121 |
}
|
122 |
-
input.switch[type="checkbox"]:checked + label,
|
123 |
input.switch[type="radio"]:checked + label {
|
124 |
background-color: #2ecc71;
|
125 |
border-color: #2ecc71;
|
126 |
box-shadow: 0 0 0 15.999px #2ecc71 inset;
|
127 |
transition: background-color 1.2s ease 0s, border 0.4s ease 0s, box-shadow 0.4s ease 0s;
|
128 |
}
|
129 |
-
input.switch[type="checkbox"]:checked + label:after,
|
130 |
input.switch[type="radio"]:checked + label:after {
|
131 |
left: 20px;
|
132 |
}
|
133 |
-
input.switch[type="checkbox"]:disabled + label,
|
134 |
-
input.switch[type="checkbox"]:disabled:checked + label,
|
135 |
-
input.switch[type="radio"]:disabled + label,
|
136 |
input.switch[type="radio"]:disabled:checked + label {
|
137 |
background-color: #ecf0f1;
|
138 |
border-color: #ecf0f1;
|
@@ -143,4 +148,4 @@ a.disabled {
|
|
143 |
pointer-events: none;
|
144 |
cursor: default;
|
145 |
opacity: 0.6;
|
146 |
-
}
|
18 |
|
19 |
.sectoken-user,
|
20 |
.sectoken-role,
|
21 |
+
.sectoken-cpts,
|
22 |
.sectoken-other {
|
23 |
display: inline-block;
|
24 |
border-width: 1px;
|
35 |
|
36 |
.sectoken-user a,
|
37 |
.sectoken-role a,
|
38 |
+
.sectoken-cpts a,
|
39 |
.sectoken-other a {
|
40 |
text-decoration: none;
|
41 |
font-size: 12px;
|
46 |
border-radius: 25px;
|
47 |
height: 14px;
|
48 |
display: inline-block;
|
49 |
+
vertical-align: middle;
|
50 |
width: 14px;
|
51 |
text-align: center;
|
52 |
line-height: 12px;
|
54 |
|
55 |
.sectoken-user a:hover,
|
56 |
.sectoken-role a:hover,
|
57 |
+
.sectoken-cpts a:hover,
|
58 |
.sectoken-other a:hover {
|
59 |
background: #FB9;
|
60 |
}
|
61 |
|
62 |
.sectoken-user { background: #EFF; border-color: #5BE; }
|
63 |
.sectoken-role { background: #EFE; border-color: #5B5; }
|
64 |
+
.sectoken-cpts { background: #EFF; border-color: #5BE; }
|
65 |
.sectoken-other { background: #FFE; border-color: #ED5; }
|
66 |
.sectoken-del { background: #FEE; border-color: #EBB; }
|
67 |
|
78 |
/*
|
79 |
* IOS button
|
80 |
*/
|
81 |
+
.f-container {
|
82 |
+
overflow: hidden;
|
83 |
+
min-height: 1px;
|
84 |
margin-top: 0;
|
85 |
}
|
86 |
+
.f-left {
|
87 |
float: left;
|
88 |
}
|
89 |
+
.f-right {
|
90 |
float: right;
|
91 |
}
|
92 |
+
.f-text {
|
93 |
margin-top: 3px;
|
94 |
margin-left: 8px;
|
95 |
}
|
96 |
+
input.switch[type="checkbox"],
|
97 |
+
input.switch[type="radio"] {
|
98 |
display: none;
|
99 |
}
|
100 |
+
input.switch[type="checkbox"] + label,
|
101 |
input.switch[type="radio"] + label {
|
102 |
background-color: white;
|
103 |
border: 1px solid #b4b9be;;
|
111 |
vertical-align: middle;
|
112 |
width: 38px;
|
113 |
}
|
114 |
+
input.switch[type="checkbox"] + label:after,
|
115 |
input.switch[type="radio"] + label:after {
|
116 |
background: none repeat scroll 0 0 white;
|
117 |
border-radius: 100%;
|
124 |
transition: left 0.2s ease-in-out 0s;
|
125 |
width: 16px;
|
126 |
}
|
127 |
+
input.switch[type="checkbox"]:checked + label,
|
128 |
input.switch[type="radio"]:checked + label {
|
129 |
background-color: #2ecc71;
|
130 |
border-color: #2ecc71;
|
131 |
box-shadow: 0 0 0 15.999px #2ecc71 inset;
|
132 |
transition: background-color 1.2s ease 0s, border 0.4s ease 0s, box-shadow 0.4s ease 0s;
|
133 |
}
|
134 |
+
input.switch[type="checkbox"]:checked + label:after,
|
135 |
input.switch[type="radio"]:checked + label:after {
|
136 |
left: 20px;
|
137 |
}
|
138 |
+
input.switch[type="checkbox"]:disabled + label,
|
139 |
+
input.switch[type="checkbox"]:disabled:checked + label,
|
140 |
+
input.switch[type="radio"]:disabled + label,
|
141 |
input.switch[type="radio"]:disabled:checked + label {
|
142 |
background-color: #ecf0f1;
|
143 |
border-color: #ecf0f1;
|
148 |
pointer-events: none;
|
149 |
cursor: default;
|
150 |
opacity: 0.6;
|
151 |
+
}
|
js/settings.js
CHANGED
@@ -5,22 +5,23 @@ jQuery(document).ready(function(){
|
|
5 |
$this.remove();
|
6 |
});
|
7 |
};
|
8 |
-
|
9 |
-
jQuery('#ViewerQueryBox, #EditorQueryBox, #ExRoleQueryBox, #ExUserQueryBox, #CustomQueryBox, #IpAddrQueryBox').keydown(function(event){
|
10 |
-
if(event.keyCode === 13) {
|
11 |
var type = jQuery(this).attr('id').substr(0, 6);
|
|
|
12 |
jQuery('#'+type+'QueryAdd').click();
|
13 |
return false;
|
14 |
}
|
15 |
-
});
|
16 |
-
|
17 |
-
jQuery('#ViewerQueryAdd, #EditorQueryAdd, #ExRoleQueryAdd, #ExUserQueryAdd, #CustomQueryAdd, #IpAddrQueryAdd').click(function(){
|
18 |
-
var type
|
19 |
-
var value
|
20 |
var existing = jQuery('#'+type+'List input').filter(function() { return this.value === value; });
|
21 |
-
|
22 |
-
if(!value || existing.length)return; // if value is empty or already used, stop here
|
23 |
-
|
24 |
jQuery('#'+type+'QueryBox, #'+type+'QueryAdd').attr('disabled', true);
|
25 |
jQuery.post(jQuery('#ajaxurl').val(), {action: 'AjaxCheckSecurityToken', token: value}, function(data){
|
26 |
jQuery('#'+type+'QueryBox, #'+type+'QueryAdd').attr('disabled', false);
|
@@ -29,7 +30,7 @@ jQuery(document).ready(function(){
|
|
29 |
alert('The specified token is not a user nor a role!');
|
30 |
jQuery('#'+type+'QueryBox').val('');
|
31 |
return;
|
32 |
-
}
|
33 |
}
|
34 |
jQuery('#'+type+'QueryBox').val('');
|
35 |
jQuery('#'+type+'List').append(jQuery('<span class="sectoken-'+data+'"/>').text(value).append(
|
@@ -38,9 +39,9 @@ jQuery(document).ready(function(){
|
|
38 |
));
|
39 |
});
|
40 |
});
|
41 |
-
|
42 |
-
jQuery('#ViewerList>span>a, #EditorList>span>a, #ExRoleList>span>a, #ExUserList>span>a, #CustomList>span>a, #IpAddrList>span>a').click(RemoveSecToken);
|
43 |
-
|
44 |
jQuery('#RestrictAdmins').change(function(){
|
45 |
var user = jQuery('#RestrictAdminsDefaultUser').val();
|
46 |
var fltr = function() { return this.value === user; };
|
@@ -49,7 +50,7 @@ jQuery(document).ready(function(){
|
|
49 |
jQuery('#EditorList .sectoken-user').each(function(){
|
50 |
if (jQuery(this).find('input[type=hidden]').val() === user) {
|
51 |
jQuery(this).remove();
|
52 |
-
}
|
53 |
});
|
54 |
}
|
55 |
jQuery('#EditorList').append(jQuery('<span class="sectoken-user"/>').text(user).prepend(jQuery('<input type="hidden" name="Editors[]"/>').val(user)));
|
@@ -57,7 +58,7 @@ jQuery(document).ready(function(){
|
|
57 |
jQuery('#EditorList .sectoken-user').each(function(){
|
58 |
if (jQuery(this).find('input[type=hidden]').val() === user) {
|
59 |
jQuery(this).remove();
|
60 |
-
}
|
61 |
});
|
62 |
}
|
63 |
});
|
@@ -72,5 +73,12 @@ jQuery(document).ready(function(){
|
|
72 |
jQuery("#ExRoleQueryBox").autocomplete({
|
73 |
source: rolesUrl,
|
74 |
minLength:1
|
75 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
});
|
5 |
$this.remove();
|
6 |
});
|
7 |
};
|
8 |
+
|
9 |
+
jQuery( '#ViewerQueryBox, #EditorQueryBox, #ExRoleQueryBox, #ExUserQueryBox, #CustomQueryBox, #IpAddrQueryBox, #ExCPTsQueryBox' ).keydown( function( event ) {
|
10 |
+
if ( event.keyCode === 13 ) {
|
11 |
var type = jQuery(this).attr('id').substr(0, 6);
|
12 |
+
console.log( type );
|
13 |
jQuery('#'+type+'QueryAdd').click();
|
14 |
return false;
|
15 |
}
|
16 |
+
} );
|
17 |
+
|
18 |
+
jQuery( '#ViewerQueryAdd, #EditorQueryAdd, #ExRoleQueryAdd, #ExUserQueryAdd, #CustomQueryAdd, #IpAddrQueryAdd, #ExCPTsQueryAdd' ).click(function(){
|
19 |
+
var type = jQuery(this).attr('id').substr(0, 6);
|
20 |
+
var value = jQuery.trim(jQuery('#'+type+'QueryBox').val());
|
21 |
var existing = jQuery('#'+type+'List input').filter(function() { return this.value === value; });
|
22 |
+
|
23 |
+
if( ! value || existing.length ) return; // if value is empty or already used, stop here
|
24 |
+
|
25 |
jQuery('#'+type+'QueryBox, #'+type+'QueryAdd').attr('disabled', true);
|
26 |
jQuery.post(jQuery('#ajaxurl').val(), {action: 'AjaxCheckSecurityToken', token: value}, function(data){
|
27 |
jQuery('#'+type+'QueryBox, #'+type+'QueryAdd').attr('disabled', false);
|
30 |
alert('The specified token is not a user nor a role!');
|
31 |
jQuery('#'+type+'QueryBox').val('');
|
32 |
return;
|
33 |
+
}
|
34 |
}
|
35 |
jQuery('#'+type+'QueryBox').val('');
|
36 |
jQuery('#'+type+'List').append(jQuery('<span class="sectoken-'+data+'"/>').text(value).append(
|
39 |
));
|
40 |
});
|
41 |
});
|
42 |
+
|
43 |
+
jQuery( '#ViewerList>span>a, #EditorList>span>a, #ExRoleList>span>a, #ExUserList>span>a, #CustomList>span>a, #IpAddrList>span>a, #ExCPTsList>span>a' ).click( RemoveSecToken );
|
44 |
+
|
45 |
jQuery('#RestrictAdmins').change(function(){
|
46 |
var user = jQuery('#RestrictAdminsDefaultUser').val();
|
47 |
var fltr = function() { return this.value === user; };
|
50 |
jQuery('#EditorList .sectoken-user').each(function(){
|
51 |
if (jQuery(this).find('input[type=hidden]').val() === user) {
|
52 |
jQuery(this).remove();
|
53 |
+
}
|
54 |
});
|
55 |
}
|
56 |
jQuery('#EditorList').append(jQuery('<span class="sectoken-user"/>').text(user).prepend(jQuery('<input type="hidden" name="Editors[]"/>').val(user)));
|
58 |
jQuery('#EditorList .sectoken-user').each(function(){
|
59 |
if (jQuery(this).find('input[type=hidden]').val() === user) {
|
60 |
jQuery(this).remove();
|
61 |
+
}
|
62 |
});
|
63 |
}
|
64 |
});
|
73 |
jQuery("#ExRoleQueryBox").autocomplete({
|
74 |
source: rolesUrl,
|
75 |
minLength:1
|
76 |
+
});
|
77 |
+
|
78 |
+
var cptsUrl = ajaxurl + "?action=AjaxGetAllCPT";
|
79 |
+
console.log( cptsUrl );
|
80 |
+
jQuery( '#ExCPTsQueryBox' ).autocomplete( {
|
81 |
+
source: cptsUrl,
|
82 |
+
minLength: 1,
|
83 |
+
} );
|
84 |
});
|
languages/wp-security-audit-log.pot
CHANGED
@@ -1,121 +1,163 @@
|
|
1 |
-
|
2 |
-
# This file is distributed under the same license as the WP Security Audit Log package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"
|
6 |
-
"
|
7 |
-
"
|
8 |
-
"
|
|
|
|
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"
|
13 |
-
"
|
14 |
-
"
|
15 |
-
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
msgid "No events so far."
|
18 |
msgstr ""
|
19 |
|
20 |
-
#: classes/AuditLogListView.php:
|
21 |
msgid "Other"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: classes/AuditLogListView.php:
|
25 |
msgid "Show "
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: classes/AuditLogListView.php:
|
29 |
msgid " Items"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: classes/AuditLogListView.php:
|
|
|
33 |
msgid "All Sites"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: classes/AuditLogListView.php:
|
37 |
-
|
38 |
-
msgid "Code"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: classes/AuditLogListView.php:
|
42 |
-
|
43 |
-
msgid "Type"
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: classes/AuditLogListView.php:
|
47 |
-
msgid "
|
48 |
msgstr ""
|
49 |
|
50 |
-
#: classes/AuditLogListView.php:
|
51 |
msgid "Username"
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: classes/AuditLogListView.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
msgid "Source IP"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: classes/AuditLogListView.php:
|
59 |
msgid "Site"
|
60 |
msgstr ""
|
61 |
|
62 |
-
#: classes/AuditLogListView.php:
|
63 |
msgid "Message"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: classes/AuditLogListView.php:
|
67 |
msgid "Click to toggle."
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: classes/AuditLogListView.php:
|
|
|
|
|
|
|
|
|
71 |
msgid "Unknown error code."
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: classes/AuditLogListView.php:
|
|
|
|
|
|
|
|
|
75 |
msgid "Unknown"
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: classes/AuditLogListView.php:
|
79 |
msgid "Plugin"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: classes/AuditLogListView.php:
|
83 |
msgid "Plugins"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: classes/AuditLogListView.php:
|
87 |
msgid "Website Visitor"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: classes/AuditLogListView.php:
|
91 |
msgid "System"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: classes/AuditLogListView.php:
|
|
|
|
|
|
|
|
|
95 |
msgid "Alert Data Inspector"
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: classes/Sensors/Content.php:
|
|
|
99 |
msgid "Password Protected"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: classes/Sensors/Content.php:
|
103 |
msgid "Public"
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: classes/Sensors/Content.php:
|
107 |
msgid "Private"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: classes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
msgid "About WP Security Audit Log"
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: classes/Views/About.php:
|
115 |
msgid "About"
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: classes/Views/About.php:
|
119 |
msgid ""
|
120 |
"WP Security Audit Log enables WordPress administrators and owners to "
|
121 |
"identify WordPress security issues before they become a security problem by "
|
@@ -123,12 +165,12 @@ msgid ""
|
|
123 |
"WordPress security professionals WP White Security."
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: classes/Views/About.php:
|
127 |
msgid ""
|
128 |
"Keep A WordPress Security Audit Log & Identify WordPress Security Issues"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: classes/Views/About.php:
|
132 |
msgid ""
|
133 |
"WP Security Audit Log logs everything happening on your WordPress blog or "
|
134 |
"website and WordPress multisite network. By using WP Security Audit Log "
|
@@ -137,155 +179,157 @@ msgid ""
|
|
137 |
"generated by the plugin when:"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: classes/Views/About.php:
|
141 |
msgid "User creates a new user or a new user is registered"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: classes/Views/About.php:
|
145 |
msgid ""
|
146 |
"Existing user changes the role, password or other properties of another user"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: classes/Views/About.php:
|
150 |
msgid "Existing user on a WordPress multisite network is added to a site"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: classes/Views/About.php:
|
154 |
msgid "User uploads or deletes a file, changes a password or email address"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: classes/Views/About.php:
|
158 |
msgid "User installs, activates, deactivates, upgrades or uninstalls a plugin"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: classes/Views/About.php:
|
162 |
msgid ""
|
163 |
"User creates, modifies or deletes a new post, page, category or a custom "
|
164 |
"post type"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: classes/Views/About.php:
|
168 |
msgid "User installs or activates a WordPress theme"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: classes/Views/About.php:
|
172 |
msgid "User adds, modifies or deletes a widget"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: classes/Views/About.php:
|
176 |
msgid "User uses the dashboard file editor"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: classes/Views/About.php:
|
180 |
msgid "WordPress settings are changed"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: classes/Views/About.php:
|
184 |
msgid "Failed login attempts"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: classes/Views/About.php:
|
188 |
msgid "and much more…"
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: classes/Views/About.php:
|
192 |
msgid "Extend the Functionality & Get More Value from WP Security Audit Log"
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: classes/Views/About.php:
|
196 |
msgid ""
|
197 |
"Get more value out of WP Security Audit Log by extending the functionality "
|
198 |
"of WP Security Audit Log with the premium Add-Ons."
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: classes/Views/About.php:
|
202 |
msgid "See Add-Ons"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: classes/Views/About.php:
|
206 |
msgid "WP Security Audit Log in your Language!"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: classes/Views/About.php:
|
210 |
msgid ""
|
211 |
"If you are interested in translating our plugin please drop us an email on"
|
212 |
msgstr ""
|
213 |
|
214 |
-
#: classes/Views/About.php:
|
215 |
msgid "WordPress Security Services"
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: classes/Views/About.php:
|
219 |
msgid "Professional WordPress security services provided by WP White Security"
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: classes/Views/AuditLog.php:
|
223 |
msgid "Upgrade to Premium"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: classes/Views/AuditLog.php:
|
227 |
msgid ""
|
228 |
"and add Email Alerts, Reports, Search and Users Login and Session Management."
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: classes/Views/AuditLog.php:
|
232 |
msgid "Upgrade Now!"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: classes/Views/AuditLog.php:
|
236 |
msgid "Audit Log Viewer"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: classes/Views/AuditLog.php:
|
240 |
-
#: classes/Views/Settings.php:
|
241 |
msgid "You do not have sufficient permissions to access this page."
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: classes/Views/AuditLog.php:
|
245 |
msgid "Please enter the number of alerts you would like to see on one page:"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: classes/Views/AuditLog.php:
|
249 |
msgid "No Results"
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: classes/Views/EmailNotifications.php:
|
253 |
msgid "Email Notifications Add-On"
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: classes/Views/EmailNotifications.php:
|
257 |
msgid "Notifications Email"
|
258 |
msgstr ""
|
259 |
|
260 |
-
#: classes/Views/EmailNotifications.php:
|
261 |
msgid "Email Notifications"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: classes/Views/EmailNotifications.php:
|
265 |
msgid ""
|
266 |
"This premium add-on allows you to configure email alerts so you are "
|
267 |
"<br>notified instantly when important changes happen on your WordPress."
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: classes/Views/EmailNotifications.php:
|
271 |
-
#: classes/Views/
|
|
|
272 |
msgid "Learn More"
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: classes/Views/EmailNotifications.php:
|
276 |
-
#: classes/Views/
|
|
|
277 |
msgid "Buy all Add-Ons Bundle"
|
278 |
msgstr ""
|
279 |
|
280 |
-
#: classes/Views/Extensions.php:
|
281 |
msgid "WP Security Audit Log Add-Ons"
|
282 |
msgstr ""
|
283 |
|
284 |
-
#: classes/Views/Extensions.php:
|
285 |
msgid " Add Functionality"
|
286 |
msgstr ""
|
287 |
|
288 |
-
#: classes/Views/Extensions.php:
|
289 |
msgid ""
|
290 |
"The below add-ons allow you to extend the functionality of WP Security Audit "
|
291 |
"Log plugin and enable you to get more benefits out of the WordPress security "
|
@@ -294,139 +338,155 @@ msgid ""
|
|
294 |
"regulatory compliance requirements."
|
295 |
msgstr ""
|
296 |
|
297 |
-
#: classes/Views/Extensions.php:
|
298 |
msgid "All Add-Ons Bundle"
|
299 |
msgstr ""
|
300 |
|
301 |
-
#: classes/Views/Extensions.php:
|
|
|
302 |
msgid ""
|
303 |
"Benefit from a 60% discount when you purchase all the add-ons as a single "
|
304 |
"bundle."
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: classes/Views/Extensions.php:
|
308 |
msgid "Get this Bundle"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: classes/Views/Extensions.php:
|
312 |
msgid "Users Logins and Management"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: classes/Views/Extensions.php:
|
316 |
msgid ""
|
317 |
"See who is logged in to your WordPress and manage user sessions and logins."
|
318 |
msgstr ""
|
319 |
|
320 |
-
#: classes/Views/Extensions.php:
|
321 |
-
#: classes/Views/Extensions.php:
|
322 |
-
#: classes/Views/Extensions.php:
|
323 |
msgid "Get this extension"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: classes/Views/Extensions.php:
|
327 |
msgid ""
|
328 |
"Get notified instantly via email when important changes are made on your "
|
329 |
"WordPress!"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: classes/Views/Extensions.php:
|
333 |
-
#: classes/Views/Reports.php:
|
334 |
msgid "Reports"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: classes/Views/Extensions.php:
|
338 |
msgid ""
|
339 |
"Generate any type of user,site and activity report to keep track of user "
|
340 |
"productivity and to meet regulatory compliance requirements."
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: classes/Views/Extensions.php:
|
344 |
-
#: classes/Views/Search.php:
|
345 |
msgid "Search"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: classes/Views/Extensions.php:
|
349 |
msgid ""
|
350 |
"Do free-text based searches for specific activity in the WordPress audit "
|
351 |
"trail. You can also use filters to fine-tune your searches."
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: classes/Views/Extensions.php:
|
355 |
msgid "External DB"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: classes/Views/Extensions.php:
|
359 |
msgid ""
|
360 |
"Store the WordPress audit trial in an external database for a more secure "
|
361 |
"and faster WordPress website."
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: classes/Views/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
msgid "Help"
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: classes/Views/Help.php:
|
369 |
msgid "Plugin Support"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: classes/Views/Help.php:
|
373 |
msgid ""
|
374 |
"Have you encountered or noticed any issues while using WP Security Audit Log "
|
375 |
"plugin?"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: classes/Views/Help.php:
|
379 |
msgid ""
|
380 |
"Or you want to report something to us? Click any of the options below to "
|
381 |
"post on the plugin's forum or contact our support directly."
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: classes/Views/Help.php:
|
385 |
msgid "Free Support Forum"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: classes/Views/Help.php:
|
389 |
msgid "Free Support Email"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: classes/Views/Help.php:
|
393 |
msgid "Plugin Documentation"
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: classes/Views/Help.php:
|
397 |
msgid ""
|
398 |
"For more detailed information about WP Security Audit Log you can visit the "
|
399 |
"plugin website."
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: classes/Views/Help.php:
|
403 |
msgid ""
|
404 |
"You can also visit the official list of WordPress Security Alerts for more "
|
405 |
"information about all of the WordPress activity and changes you can monitor "
|
406 |
"with WP Security Audit Log."
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: classes/Views/Help.php:
|
410 |
msgid "Plugin Website"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: classes/Views/Help.php:
|
414 |
msgid "Plugin Documenation"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: classes/Views/Help.php:
|
418 |
msgid "FAQs"
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: classes/Views/Help.php:
|
422 |
msgid "List of WordPress Security Alerts"
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: classes/Views/Help.php:
|
426 |
msgid "Keep Yourself Up-to-Date with WordPress Security"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: classes/Views/Help.php:
|
430 |
msgid ""
|
431 |
"Keep yourself informed with what is happening in the WordPress security "
|
432 |
"ecosystem, which are the new vulnerabilities, which plugins you need to "
|
@@ -434,1851 +494,1969 @@ msgid ""
|
|
434 |
"step ahead of the hackers."
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: classes/Views/Help.php:
|
438 |
msgid "Read the WP White Security Blog"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: classes/Views/Help.php:
|
442 |
msgid ""
|
443 |
"Subscribe to WP Security Bloggers (An Aggregate of WordPress Security Blogs)"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: classes/Views/Licensing.php:
|
447 |
msgid "Licensing"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: classes/Views/Licensing.php:
|
451 |
-
#: classes/Views/ToggleAlerts.php:
|
452 |
msgid "Settings have been saved."
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: classes/Views/Licensing.php:
|
456 |
-
#: classes/Views/ToggleAlerts.php:
|
457 |
msgid "Error: "
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: classes/Views/Licensing.php:
|
461 |
msgid "Version"
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: classes/Views/Licensing.php:
|
465 |
msgid "Active"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: classes/Views/Licensing.php:
|
469 |
msgid "Inactive"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: classes/Views/LogInUsers.php:
|
473 |
msgid "User Sessions Management Add-On"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: classes/Views/LogInUsers.php:
|
477 |
msgid "Logged In Users"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: classes/Views/LogInUsers.php:
|
481 |
msgid "Users login and Management"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: classes/Views/LogInUsers.php:
|
485 |
msgid ""
|
486 |
"This premium add-on allows you to see who is logged in to your WordPress,"
|
487 |
"<br> block multiple same-user WordPress sessions and more."
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: classes/Views/Reports.php:
|
491 |
msgid "Reports Add-On"
|
492 |
msgstr ""
|
493 |
|
494 |
-
#: classes/Views/Reports.php:
|
495 |
msgid ""
|
496 |
"Generate any type of user and site activity report to keep track of user "
|
497 |
"productivity<br> and meet regulatory compliance requirements. You can also "
|
498 |
"configure automated weekly or monthly email summary reports."
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: classes/Views/Search.php:
|
502 |
msgid "Search Add-On"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: classes/Views/Search.php:
|
506 |
msgid ""
|
507 |
"Do free-text based searches for specific activity in the WordPress audit "
|
508 |
"trail.<br> You can also use the built-in filters to fine-tune your searches."
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: classes/Views/Settings.php:
|
512 |
msgid "Settings"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: classes/Views/Settings.php:
|
516 |
-
msgid "
|
517 |
-
msgstr ""
|
518 |
-
|
519 |
-
#: classes/Views/Settings.php:165 classes/Views/Settings.php:173
|
520 |
-
msgid "(eg: 1 month)"
|
521 |
-
msgstr ""
|
522 |
-
|
523 |
-
#: classes/Views/Settings.php:169
|
524 |
-
msgid "None"
|
525 |
-
msgstr ""
|
526 |
-
|
527 |
-
#: classes/Views/Settings.php:177
|
528 |
-
msgid "Delete alerts older than"
|
529 |
-
msgstr ""
|
530 |
-
|
531 |
-
#: classes/Views/Settings.php:185
|
532 |
-
msgid "(eg: 80)"
|
533 |
-
msgstr ""
|
534 |
-
|
535 |
-
#: classes/Views/Settings.php:189
|
536 |
-
msgid "Keep up to"
|
537 |
-
msgstr ""
|
538 |
-
|
539 |
-
#: classes/Views/Settings.php:194
|
540 |
-
msgid "alerts"
|
541 |
-
msgstr ""
|
542 |
-
|
543 |
-
#: classes/Views/Settings.php:198
|
544 |
-
msgid "Next Scheduled Cleanup is in "
|
545 |
msgstr ""
|
546 |
|
547 |
-
#: classes/Views/Settings.php:
|
548 |
-
msgid "
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: classes/Views/Settings.php:
|
552 |
-
msgid "
|
553 |
msgstr ""
|
554 |
|
555 |
-
#: classes/Views/Settings.php:
|
556 |
msgid "From Email & Name"
|
557 |
msgstr ""
|
558 |
|
559 |
-
#: classes/Views/Settings.php:
|
560 |
msgid "Email Address"
|
561 |
msgstr ""
|
562 |
|
563 |
-
#: classes/Views/Settings.php:
|
564 |
msgid "Display Name"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: classes/Views/Settings.php:
|
|
|
568 |
msgid ""
|
569 |
"These email address and display name will be used as From details in the "
|
570 |
"emails sent by the %s . Please ensure the mail server can relay emails with "
|
571 |
"the domain of the specified email address."
|
572 |
msgstr ""
|
573 |
|
574 |
-
#: classes/Views/Settings.php:
|
575 |
msgid "(premium add-ons)"
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: classes/Views/Settings.php:
|
579 |
msgid "Alerts Dashboard Widget"
|
580 |
msgstr ""
|
581 |
|
582 |
-
#: classes/Views/Settings.php:
|
583 |
msgid "On"
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: classes/Views/Settings.php:
|
587 |
msgid "Off"
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: classes/Views/Settings.php:
|
|
|
591 |
msgid "Display a dashboard widget with the latest %d security alerts."
|
592 |
msgstr ""
|
593 |
|
594 |
-
#: classes/Views/Settings.php:
|
595 |
msgid "Reverse Proxy / Firewall Options"
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: classes/Views/Settings.php:
|
599 |
msgid "WordPress running behind firewall or proxy"
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: classes/Views/Settings.php:
|
603 |
msgid ""
|
604 |
"Enable this option if your WordPress is running behind a firewall or reverse "
|
605 |
"proxy. When this option is enabled the plugin will retrieve the user's IP "
|
606 |
"address from the proxy header."
|
607 |
msgstr ""
|
608 |
|
609 |
-
#: classes/Views/Settings.php:
|
610 |
msgid "Filter Internal IP Addresses"
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: classes/Views/Settings.php:
|
614 |
msgid ""
|
615 |
"Enable this option to filter internal IP addresses from the proxy headers."
|
616 |
msgstr ""
|
617 |
|
618 |
-
#: classes/Views/Settings.php:
|
619 |
-
msgid "Can View Alerts"
|
620 |
-
msgstr ""
|
621 |
-
|
622 |
-
#: classes/Views/Settings.php:280
|
623 |
-
msgid "Users and Roles in this list can view the security alerts"
|
624 |
-
msgstr ""
|
625 |
-
|
626 |
-
#: classes/Views/Settings.php:295
|
627 |
msgid "Can Manage Plugin"
|
628 |
msgstr ""
|
629 |
|
630 |
-
#: classes/Views/Settings.php:
|
631 |
msgid "Users and Roles in this list can manage the plugin settings"
|
632 |
msgstr ""
|
633 |
|
634 |
-
#: classes/Views/Settings.php:
|
635 |
msgid "Restrict Plugin Access"
|
636 |
msgstr ""
|
637 |
|
638 |
-
#: classes/Views/Settings.php:
|
639 |
msgid ""
|
640 |
-
"
|
641 |
-
"
|
642 |
-
"options above and your username will have access to view alerts and manage "
|
643 |
-
"this plugin."
|
644 |
msgstr ""
|
645 |
|
646 |
-
#: classes/Views/Settings.php:
|
647 |
-
msgid "
|
|
|
|
|
|
|
648 |
msgstr ""
|
649 |
|
650 |
-
#: classes/Views/Settings.php:
|
651 |
-
msgid "
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: classes/Views/Settings.php:
|
655 |
-
msgid "
|
|
|
|
|
|
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: classes/Views/Settings.php:
|
659 |
-
msgid "
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: classes/Views/Settings.php:
|
663 |
-
msgid "
|
664 |
msgstr ""
|
665 |
|
666 |
-
#: classes/Views/Settings.php:
|
667 |
-
msgid "
|
668 |
msgstr ""
|
669 |
|
670 |
-
#: classes/Views/Settings.php:
|
671 |
-
msgid "
|
672 |
msgstr ""
|
673 |
|
674 |
-
#: classes/Views/Settings.php:
|
675 |
-
msgid "
|
|
|
|
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: classes/Views/Settings.php:
|
679 |
-
msgid "
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: classes/Views/Settings.php:
|
683 |
-
msgid "
|
684 |
msgstr ""
|
685 |
|
686 |
-
#: classes/Views/Settings.php:
|
687 |
-
msgid "
|
|
|
|
|
688 |
msgstr ""
|
689 |
|
690 |
-
#: classes/Views/Settings.php:
|
691 |
-
msgid ""
|
692 |
-
"Select which timestamp should the alerts have in the Audit Log viewer. Note "
|
693 |
-
"that the WordPress' timezone might be different from that of the server."
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: classes/Views/Settings.php:
|
697 |
-
msgid "
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: classes/Views/Settings.php:
|
701 |
-
msgid ""
|
702 |
-
"When you disable any of the above such details won’t be shown in the Audit "
|
703 |
-
"Log\n"
|
704 |
-
"viewer though the plugin will still record such information in the database."
|
705 |
msgstr ""
|
706 |
|
707 |
#: classes/Views/Settings.php:406
|
708 |
-
msgid "
|
|
|
|
|
709 |
msgstr ""
|
710 |
|
711 |
-
#: classes/Views/Settings.php:
|
712 |
-
msgid ""
|
713 |
-
|
714 |
-
|
715 |
-
|
|
|
716 |
msgstr ""
|
717 |
|
718 |
#: classes/Views/Settings.php:418
|
719 |
-
msgid "
|
720 |
msgstr ""
|
721 |
|
722 |
-
#: classes/Views/Settings.php:
|
723 |
-
msgid "
|
|
|
|
|
|
|
|
|
724 |
msgstr ""
|
725 |
|
726 |
-
#: classes/Views/Settings.php:
|
727 |
-
msgid "
|
728 |
msgstr ""
|
729 |
|
730 |
-
#: classes/Views/Settings.php:
|
731 |
-
msgid "
|
732 |
msgstr ""
|
733 |
|
734 |
-
#: classes/Views/Settings.php:
|
735 |
-
msgid "
|
736 |
msgstr ""
|
737 |
|
738 |
-
#: classes/Views/Settings.php:
|
739 |
-
|
|
|
740 |
msgstr ""
|
741 |
|
742 |
-
#: classes/Views/Settings.php:
|
743 |
-
msgid "
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: classes/Views/Settings.php:
|
747 |
-
msgid "
|
748 |
msgstr ""
|
749 |
|
750 |
-
#: classes/Views/Settings.php:
|
751 |
-
msgid "
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: classes/Views/Settings.php:
|
755 |
-
msgid "
|
756 |
msgstr ""
|
757 |
|
758 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
759 |
msgid ""
|
760 |
-
"
|
761 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: classes/Views/Settings.php:
|
765 |
msgid "Disable Alerts for WordPress Background Activity"
|
766 |
msgstr ""
|
767 |
|
768 |
-
#: classes/Views/Settings.php:
|
769 |
msgid "Hide activity"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: classes/Views/Settings.php:
|
773 |
msgid ""
|
774 |
"For example do not raise an alert when WordPress deletes the auto drafts."
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: classes/Views/Settings.php:
|
778 |
-
msgid "
|
779 |
msgstr ""
|
780 |
|
781 |
-
#: classes/Views/Settings.php:
|
782 |
msgid "Excluded Users"
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: classes/Views/Settings.php:
|
786 |
msgid "Excluded Roles"
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
790 |
msgid "Excluded Custom Fields"
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
794 |
msgid "Excluded IP Addresses"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: classes/Views/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
798 |
msgid "Enable/Disable Alerts"
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: classes/Views/ToggleAlerts.php:
|
802 |
msgid "Description"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: classes/Views/ToggleAlerts.php:
|
806 |
msgid "Not Implemented"
|
807 |
msgstr ""
|
808 |
|
809 |
-
#: classes/Views/ToggleAlerts.php:
|
810 |
msgid "Not Available"
|
811 |
msgstr ""
|
812 |
|
813 |
-
#: classes/Views/ToggleAlerts.php:
|
814 |
msgid ""
|
815 |
"Capture 404 requests to file (the log file are created in the /wp-content/"
|
816 |
"uploads/wp-security-audit-log/404s/ directory)"
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: classes/Views/ToggleAlerts.php:
|
820 |
msgid "Purge log files older than one month"
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: classes/Views/ToggleAlerts.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
msgid "Save Changes"
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: classes/WidgetManager.php:
|
828 |
msgid "Latest Alerts"
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: classes/WidgetManager.php:
|
832 |
msgid "No alerts found."
|
833 |
msgstr ""
|
834 |
|
835 |
-
#:
|
836 |
-
msgid "User"
|
837 |
-
msgstr ""
|
838 |
-
|
839 |
-
#: defaults.php:17
|
840 |
msgid "Fatal run-time error."
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: defaults.php:
|
844 |
msgid "Run-time warning (non-fatal error)."
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: defaults.php:
|
848 |
msgid "Compile-time parse error."
|
849 |
msgstr ""
|
850 |
|
851 |
-
#: defaults.php:
|
852 |
msgid "Run-time notice."
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: defaults.php:
|
856 |
msgid "Fatal error that occurred during startup."
|
857 |
msgstr ""
|
858 |
|
859 |
-
#: defaults.php:
|
860 |
msgid "Warnings that occurred during startup."
|
861 |
msgstr ""
|
862 |
|
863 |
-
#: defaults.php:
|
864 |
msgid "Fatal compile-time error."
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: defaults.php:
|
868 |
msgid "Compile-time warning."
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: defaults.php:
|
872 |
msgid "User-generated error message."
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: defaults.php:
|
876 |
msgid "User-generated warning message."
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: defaults.php:
|
880 |
msgid "User-generated notice message."
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: defaults.php:
|
884 |
msgid "Non-standard/optimal code warning."
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: defaults.php:
|
888 |
msgid "Catchable fatal error."
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: defaults.php:
|
892 |
msgid "Run-time deprecation notices."
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: defaults.php:
|
896 |
msgid "Run-time user deprecation notices."
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: defaults.php:
|
900 |
msgid "Critical, high-impact messages."
|
901 |
msgstr ""
|
902 |
|
903 |
-
#: defaults.php:
|
904 |
msgid "Debug informational messages."
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: defaults.php:
|
908 |
-
msgid "
|
909 |
msgstr ""
|
910 |
|
911 |
-
#: defaults.php:
|
912 |
-
msgid "
|
913 |
msgstr ""
|
914 |
|
915 |
-
#: defaults.php:
|
916 |
-
msgid "
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: defaults.php:
|
920 |
-
msgid "
|
|
|
|
|
921 |
msgstr ""
|
922 |
|
923 |
-
#: defaults.php:
|
924 |
-
msgid "Successfully logged out."
|
925 |
-
msgstr ""
|
926 |
-
|
927 |
-
#: defaults.php:41
|
928 |
-
msgid "Login failed"
|
929 |
-
msgstr ""
|
930 |
-
|
931 |
-
#: defaults.php:41
|
932 |
-
msgid "%Attempts% failed login(s) detected."
|
933 |
-
msgstr ""
|
934 |
-
|
935 |
-
#: defaults.php:42
|
936 |
-
msgid "Login failed / non existing user"
|
937 |
-
msgstr ""
|
938 |
-
|
939 |
-
#: defaults.php:42
|
940 |
-
msgid "%Attempts% failed login(s) detected using non existing user."
|
941 |
-
msgstr ""
|
942 |
-
|
943 |
-
#: defaults.php:43
|
944 |
-
msgid "Login blocked"
|
945 |
-
msgstr ""
|
946 |
-
|
947 |
-
#: defaults.php:43
|
948 |
-
msgid ""
|
949 |
-
"Blocked from logging in because the same WordPress user is logged in from "
|
950 |
-
"%ClientIP%."
|
951 |
-
msgstr ""
|
952 |
-
|
953 |
-
#: defaults.php:44
|
954 |
-
msgid "User logged in with existing session(s)"
|
955 |
-
msgstr ""
|
956 |
-
|
957 |
-
#: defaults.php:44
|
958 |
-
msgid ""
|
959 |
-
"Successfully logged in. Another session from %IPAddress% for this user "
|
960 |
-
"already exist."
|
961 |
-
msgstr ""
|
962 |
-
|
963 |
-
#: defaults.php:45
|
964 |
-
msgid "User uploaded file from Uploads directory"
|
965 |
-
msgstr ""
|
966 |
-
|
967 |
-
#: defaults.php:45
|
968 |
-
msgid "Uploaded the file %FileName% in %FilePath%."
|
969 |
-
msgstr ""
|
970 |
-
|
971 |
-
#: defaults.php:46
|
972 |
-
msgid "User deleted file from Uploads directory"
|
973 |
-
msgstr ""
|
974 |
-
|
975 |
-
#: defaults.php:46
|
976 |
-
msgid "Deleted the file %FileName% from %FilePath%."
|
977 |
-
msgstr ""
|
978 |
-
|
979 |
-
#: defaults.php:48
|
980 |
-
msgid "Blog Posts"
|
981 |
-
msgstr ""
|
982 |
-
|
983 |
-
#: defaults.php:49
|
984 |
-
msgid "User created a new blog post and saved it as draft"
|
985 |
-
msgstr ""
|
986 |
-
|
987 |
-
#: defaults.php:49
|
988 |
-
msgid ""
|
989 |
-
"Created a new post called %PostTitle% and saved it as draft. %EditorLinkPost"
|
990 |
-
"%."
|
991 |
-
msgstr ""
|
992 |
-
|
993 |
-
#: defaults.php:50
|
994 |
msgid "User published a blog post"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: defaults.php:
|
998 |
msgid ""
|
999 |
"Published a post called %PostTitle%. Post URL is %PostUrl%. %EditorLinkPost%."
|
1000 |
msgstr ""
|
1001 |
|
1002 |
-
#: defaults.php:
|
1003 |
msgid "User modified a published blog post"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
-
#: defaults.php:
|
1007 |
msgid ""
|
1008 |
"Modified the published post %PostTitle%. Post URL is %PostUrl%. "
|
1009 |
"%EditorLinkPost%."
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: defaults.php:
|
1013 |
msgid "User modified a draft blog post"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: defaults.php:
|
1017 |
msgid "Modified the draft post with the %PostTitle%. %EditorLinkPost%."
|
1018 |
msgstr ""
|
1019 |
|
1020 |
-
#: defaults.php:
|
1021 |
msgid "User permanently deleted a blog post from the trash"
|
1022 |
msgstr ""
|
1023 |
|
1024 |
-
#: defaults.php:
|
1025 |
-
msgid ""
|
1026 |
-
"Permanently deleted the post %PostTitle%. Post URL was %PostUrl%. "
|
1027 |
-
"%EditorLinkPost%."
|
1028 |
msgstr ""
|
1029 |
|
1030 |
-
#: defaults.php:
|
1031 |
msgid "User moved a blog post to the trash"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
-
#: defaults.php:
|
1035 |
msgid "Moved the post %PostTitle% to trash. Post URL is %PostUrl%."
|
1036 |
msgstr ""
|
1037 |
|
1038 |
-
#: defaults.php:
|
1039 |
msgid "User restored a blog post from trash"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
-
#: defaults.php:
|
1043 |
msgid "Post %PostTitle% has been restored from trash. %EditorLinkPost%."
|
1044 |
msgstr ""
|
1045 |
|
1046 |
-
#: defaults.php:
|
1047 |
msgid "User changed blog post category"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
-
#: defaults.php:
|
1051 |
msgid ""
|
1052 |
"Changed the category of the post %PostTitle% from %OldCategories% to "
|
1053 |
"%NewCategories%. %EditorLinkPost%."
|
1054 |
msgstr ""
|
1055 |
|
1056 |
-
#: defaults.php:
|
1057 |
msgid "User changed blog post URL"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: defaults.php:
|
1061 |
msgid ""
|
1062 |
"Changed the URL of the post %PostTitle% from %OldUrl% to %NewUrl%. "
|
1063 |
"%EditorLinkPost%."
|
1064 |
msgstr ""
|
1065 |
|
1066 |
-
#: defaults.php:
|
1067 |
msgid "User changed blog post author"
|
1068 |
msgstr ""
|
1069 |
|
1070 |
-
#: defaults.php:
|
1071 |
msgid ""
|
1072 |
"Changed the author of %PostTitle% post from %OldAuthor% to %NewAuthor%. "
|
1073 |
"%EditorLinkPost%."
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: defaults.php:
|
1077 |
msgid "User changed blog post status"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: defaults.php:
|
1081 |
msgid ""
|
1082 |
"Changed the status of %PostTitle% post from %OldStatus% to %NewStatus%. "
|
1083 |
"%EditorLinkPost%."
|
1084 |
msgstr ""
|
1085 |
|
1086 |
-
#: defaults.php:
|
1087 |
msgid "User created new category"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
-
#: defaults.php:
|
1091 |
msgid ""
|
1092 |
"Created a new category called %CategoryName% .Category slug is %Slug%. "
|
1093 |
"%CategoryLink%."
|
1094 |
msgstr ""
|
1095 |
|
1096 |
-
#: defaults.php:
|
1097 |
msgid "User deleted category"
|
1098 |
msgstr ""
|
1099 |
|
1100 |
-
#: defaults.php:
|
1101 |
msgid "Deleted the category %CategoryName%. Category slug was %Slug%."
|
1102 |
msgstr ""
|
1103 |
|
1104 |
-
#: defaults.php:
|
1105 |
msgid "User changed the visibility of a blog post"
|
1106 |
msgstr ""
|
1107 |
|
1108 |
-
#: defaults.php:
|
1109 |
msgid ""
|
1110 |
"Changed the visibility of the post %PostTitle% from %OldVisibility% to "
|
1111 |
"%NewVisibility%. %EditorLinkPost%."
|
1112 |
msgstr ""
|
1113 |
|
1114 |
-
#: defaults.php:
|
1115 |
msgid "User changed the date of a blog post"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
-
#: defaults.php:
|
1119 |
msgid ""
|
1120 |
"Changed the date of the post %PostTitle% from %OldDate% to %NewDate%. "
|
1121 |
"%EditorLinkPost%."
|
1122 |
msgstr ""
|
1123 |
|
1124 |
-
#: defaults.php:
|
1125 |
msgid "User set a post as sticky"
|
1126 |
msgstr ""
|
1127 |
|
1128 |
-
#: defaults.php:
|
1129 |
msgid ""
|
1130 |
"Set the post %PostTitle% as Sticky. Post URL is %PostUrl%. %EditorLinkPost%."
|
1131 |
msgstr ""
|
1132 |
|
1133 |
-
#: defaults.php:
|
1134 |
msgid "User removed post from sticky"
|
1135 |
msgstr ""
|
1136 |
|
1137 |
-
#: defaults.php:
|
1138 |
msgid "Removed the post %PostTitle% from Sticky. %EditorLinkPost%."
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: defaults.php:
|
1142 |
msgid "User changed generic tables"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
-
#: defaults.php:
|
1146 |
msgid ""
|
1147 |
"Changed the parent of the category %CategoryName% from %OldParent% to "
|
1148 |
"%NewParent%. %CategoryLink%."
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: defaults.php:
|
1152 |
msgid "User created a custom field for a post"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
-
#: defaults.php:
|
1156 |
-
msgid "User updated a custom field value for a post"
|
1157 |
-
msgstr ""
|
1158 |
-
|
1159 |
-
#: defaults.php:69
|
1160 |
-
msgid "User deleted a custom field from a post"
|
1161 |
-
msgstr ""
|
1162 |
-
|
1163 |
-
#: defaults.php:70
|
1164 |
-
msgid "User updated a custom field name for a post"
|
1165 |
-
msgstr ""
|
1166 |
-
|
1167 |
-
#: defaults.php:71
|
1168 |
-
msgid "User modified content for a published post"
|
1169 |
-
msgstr ""
|
1170 |
-
|
1171 |
-
#: defaults.php:72
|
1172 |
-
msgid "User modified content for a draft post"
|
1173 |
-
msgstr ""
|
1174 |
-
|
1175 |
-
#: defaults.php:73
|
1176 |
-
msgid "User modified content of a post"
|
1177 |
-
msgstr ""
|
1178 |
-
|
1179 |
-
#: defaults.php:74
|
1180 |
-
msgid "User submitted a post for review"
|
1181 |
-
msgstr ""
|
1182 |
-
|
1183 |
-
#: defaults.php:74
|
1184 |
-
msgid "Submitted the post %PostTitle% for review. %EditorLinkPost%."
|
1185 |
-
msgstr ""
|
1186 |
-
|
1187 |
-
#: defaults.php:75
|
1188 |
-
msgid "User scheduled a post"
|
1189 |
-
msgstr ""
|
1190 |
-
|
1191 |
-
#: defaults.php:75
|
1192 |
msgid ""
|
1193 |
-
"
|
1194 |
-
"%EditorLinkPost%."
|
1195 |
-
msgstr ""
|
1196 |
-
|
1197 |
-
#: defaults.php:76
|
1198 |
-
msgid "User changed title of a post"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
-
#: defaults.php:
|
1202 |
-
msgid ""
|
1203 |
-
"Changed the title of the post %OldTitle% to %NewTitle%. %EditorLinkPost%."
|
1204 |
msgstr ""
|
1205 |
|
1206 |
#: defaults.php:78
|
1207 |
-
msgid "
|
|
|
|
|
1208 |
msgstr ""
|
1209 |
|
1210 |
#: defaults.php:79
|
1211 |
-
msgid "User
|
1212 |
msgstr ""
|
1213 |
|
1214 |
#: defaults.php:79
|
1215 |
msgid ""
|
1216 |
-
"
|
1217 |
-
"%."
|
1218 |
msgstr ""
|
1219 |
|
1220 |
#: defaults.php:80
|
1221 |
-
msgid "User
|
1222 |
msgstr ""
|
1223 |
|
1224 |
#: defaults.php:80
|
1225 |
msgid ""
|
1226 |
-
"
|
|
|
1227 |
msgstr ""
|
1228 |
|
1229 |
#: defaults.php:81
|
1230 |
-
msgid "User modified a published
|
1231 |
msgstr ""
|
1232 |
|
1233 |
#: defaults.php:81
|
1234 |
msgid ""
|
1235 |
-
"Modified the
|
1236 |
-
"%
|
1237 |
msgstr ""
|
1238 |
|
1239 |
#: defaults.php:82
|
1240 |
-
msgid "User modified a draft
|
1241 |
msgstr ""
|
1242 |
|
1243 |
#: defaults.php:82
|
1244 |
msgid ""
|
1245 |
-
"Modified the
|
|
|
1246 |
msgstr ""
|
1247 |
|
1248 |
#: defaults.php:83
|
1249 |
-
msgid "User
|
1250 |
msgstr ""
|
1251 |
|
1252 |
#: defaults.php:83
|
1253 |
msgid ""
|
1254 |
-
"
|
1255 |
-
"%
|
1256 |
msgstr ""
|
1257 |
|
1258 |
#: defaults.php:84
|
1259 |
-
msgid "User
|
1260 |
msgstr ""
|
1261 |
|
1262 |
#: defaults.php:84
|
1263 |
-
msgid "
|
1264 |
msgstr ""
|
1265 |
|
1266 |
#: defaults.php:85
|
1267 |
-
msgid "User
|
1268 |
msgstr ""
|
1269 |
|
1270 |
#: defaults.php:85
|
1271 |
-
msgid "
|
|
|
|
|
1272 |
msgstr ""
|
1273 |
|
1274 |
#: defaults.php:86
|
1275 |
-
msgid "User changed
|
1276 |
msgstr ""
|
1277 |
|
1278 |
#: defaults.php:86
|
1279 |
msgid ""
|
1280 |
-
"Changed the
|
1281 |
-
"%EditorLinkPage%."
|
1282 |
msgstr ""
|
1283 |
|
1284 |
#: defaults.php:87
|
1285 |
-
msgid "User
|
1286 |
msgstr ""
|
1287 |
|
1288 |
#: defaults.php:87
|
1289 |
msgid ""
|
1290 |
-
"
|
1291 |
-
"%EditorLinkPage%."
|
1292 |
msgstr ""
|
1293 |
|
1294 |
#: defaults.php:88
|
1295 |
-
msgid "User
|
1296 |
msgstr ""
|
1297 |
|
1298 |
#: defaults.php:88
|
1299 |
-
msgid ""
|
1300 |
-
"Changed the status of the page %PostTitle% from %OldStatus% to %NewStatus%. "
|
1301 |
-
"%EditorLinkPage%."
|
1302 |
msgstr ""
|
1303 |
|
1304 |
#: defaults.php:89
|
1305 |
-
msgid "User
|
1306 |
msgstr ""
|
1307 |
|
1308 |
#: defaults.php:89
|
1309 |
msgid ""
|
1310 |
-
"
|
1311 |
-
"%NewVisibility%. %EditorLinkPage%."
|
1312 |
msgstr ""
|
1313 |
|
1314 |
#: defaults.php:90
|
1315 |
-
msgid "User
|
1316 |
msgstr ""
|
1317 |
|
1318 |
#: defaults.php:90
|
1319 |
msgid ""
|
1320 |
-
"
|
1321 |
-
"%EditorLinkPage%."
|
1322 |
msgstr ""
|
1323 |
|
1324 |
#: defaults.php:91
|
1325 |
-
msgid "User
|
1326 |
msgstr ""
|
1327 |
|
1328 |
#: defaults.php:91
|
1329 |
msgid ""
|
1330 |
-
"
|
1331 |
-
"%NewParentName%. %EditorLinkPage%."
|
1332 |
msgstr ""
|
1333 |
|
1334 |
#: defaults.php:92
|
1335 |
-
msgid "User
|
1336 |
msgstr ""
|
1337 |
|
1338 |
#: defaults.php:92
|
1339 |
-
msgid ""
|
1340 |
-
"Changed the template of the page %PostTitle% from %OldTemplate% to "
|
1341 |
-
"%NewTemplate%. %EditorLinkPage%."
|
1342 |
msgstr ""
|
1343 |
|
1344 |
-
#: defaults.php:
|
1345 |
-
msgid "
|
1346 |
msgstr ""
|
1347 |
|
1348 |
-
#: defaults.php:
|
1349 |
-
msgid "User
|
1350 |
msgstr ""
|
1351 |
|
1352 |
#: defaults.php:95
|
1353 |
-
msgid "
|
|
|
|
|
1354 |
msgstr ""
|
1355 |
|
1356 |
#: defaults.php:96
|
1357 |
-
msgid "User
|
|
|
|
|
|
|
|
|
|
|
|
|
1358 |
msgstr ""
|
1359 |
|
1360 |
#: defaults.php:97
|
1361 |
-
msgid "User
|
1362 |
msgstr ""
|
1363 |
|
1364 |
-
#: defaults.php:
|
1365 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1366 |
msgstr ""
|
1367 |
|
1368 |
#: defaults.php:99
|
1369 |
-
msgid "User
|
|
|
|
|
|
|
|
|
|
|
|
|
1370 |
msgstr ""
|
1371 |
|
1372 |
#: defaults.php:100
|
1373 |
-
msgid "User
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1374 |
msgstr ""
|
1375 |
|
1376 |
#: defaults.php:102
|
1377 |
-
msgid "
|
|
|
|
|
1378 |
msgstr ""
|
1379 |
|
1380 |
#: defaults.php:103
|
1381 |
-
msgid "User
|
1382 |
msgstr ""
|
1383 |
|
1384 |
#: defaults.php:103
|
1385 |
msgid ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1386 |
"Created a new custom post called %PostTitle% of type %PostType%. "
|
1387 |
"%EditorLinkPost%."
|
1388 |
msgstr ""
|
1389 |
|
1390 |
-
#: defaults.php:
|
1391 |
msgid "User published a post with custom post type"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: defaults.php:
|
1395 |
msgid ""
|
1396 |
"Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl"
|
1397 |
"%. %EditorLinkPost%."
|
1398 |
msgstr ""
|
1399 |
|
1400 |
-
#: defaults.php:
|
1401 |
msgid "User modified a post with custom post type"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
-
#: defaults.php:
|
1405 |
msgid ""
|
1406 |
"Modified the custom post %PostTitle% of type %PostType%. Post URL is %PostUrl"
|
1407 |
"%. %EditorLinkPost%."
|
1408 |
msgstr ""
|
1409 |
|
1410 |
-
#: defaults.php:
|
1411 |
msgid "User modified a draft post with custom post type"
|
1412 |
msgstr ""
|
1413 |
|
1414 |
-
#: defaults.php:
|
1415 |
msgid ""
|
1416 |
"Modified the draft custom post %PostTitle% of type is %PostType%. "
|
1417 |
"%EditorLinkPost%."
|
1418 |
msgstr ""
|
1419 |
|
1420 |
-
#: defaults.php:
|
1421 |
msgid "User permanently deleted post with custom post type"
|
1422 |
msgstr ""
|
1423 |
|
1424 |
-
#: defaults.php:
|
1425 |
-
msgid ""
|
1426 |
-
"Permanently Deleted the custom post %PostTitle% of type %PostType%. The post "
|
1427 |
-
"URL was %PostUrl%. %EditorLinkPost%."
|
1428 |
msgstr ""
|
1429 |
|
1430 |
-
#: defaults.php:
|
1431 |
msgid "User moved post with custom post type to trash"
|
1432 |
msgstr ""
|
1433 |
|
1434 |
-
#: defaults.php:
|
1435 |
msgid ""
|
1436 |
"Moved the custom post %PostTitle% of type %PostType% to trash. Post URL was "
|
1437 |
"%PostUrl%."
|
1438 |
msgstr ""
|
1439 |
|
1440 |
-
#: defaults.php:
|
1441 |
msgid "User restored post with custom post type from trash"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
-
#: defaults.php:
|
1445 |
msgid ""
|
1446 |
"The custom post %PostTitle% of type %PostType% has been restored from trash. "
|
1447 |
"%EditorLinkPost%."
|
1448 |
msgstr ""
|
1449 |
|
1450 |
-
#: defaults.php:
|
1451 |
msgid "User changed the category of a post with custom post type"
|
1452 |
msgstr ""
|
1453 |
|
1454 |
-
#: defaults.php:
|
1455 |
msgid ""
|
1456 |
"Changed the category(ies) of the custom post %PostTitle% of type %PostType% "
|
1457 |
"from %OldCategories% to %NewCategories%. %EditorLinkPost%."
|
1458 |
msgstr ""
|
1459 |
|
1460 |
-
#: defaults.php:
|
1461 |
msgid "User changed the URL of a post with custom post type"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
-
#: defaults.php:
|
1465 |
msgid ""
|
1466 |
"Changed the URL of the custom post %PostTitle% of type %PostType% from "
|
1467 |
"%OldUrl% to %NewUrl%. %EditorLinkPost%."
|
1468 |
msgstr ""
|
1469 |
|
1470 |
-
#: defaults.php:
|
1471 |
msgid "User changed the author or post with custom post type"
|
1472 |
msgstr ""
|
1473 |
|
1474 |
-
#: defaults.php:
|
1475 |
msgid ""
|
1476 |
"Changed the author of custom post %PostTitle% of type %PostType% from "
|
1477 |
"%OldAuthor% to %NewAuthor%. %EditorLinkPost%."
|
1478 |
msgstr ""
|
1479 |
|
1480 |
-
#: defaults.php:
|
1481 |
msgid "User changed the status of post with custom post type"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
-
#: defaults.php:
|
1485 |
msgid ""
|
1486 |
"Changed the status of custom post %PostTitle% of type %PostType% from "
|
1487 |
"%OldStatus% to %NewStatus%. %EditorLinkPost%."
|
1488 |
msgstr ""
|
1489 |
|
1490 |
-
#: defaults.php:
|
1491 |
msgid "User changed the visibility of a post with custom post type"
|
1492 |
msgstr ""
|
1493 |
|
1494 |
-
#: defaults.php:
|
1495 |
msgid ""
|
1496 |
"Changed the visibility of the custom post %PostTitle% of type %PostType% "
|
1497 |
"from %OldVisibility% to %NewVisibility%. %EditorLinkPost%."
|
1498 |
msgstr ""
|
1499 |
|
1500 |
-
#: defaults.php:
|
1501 |
msgid "User changed the date of post with custom post type"
|
1502 |
msgstr ""
|
1503 |
|
1504 |
-
#: defaults.php:
|
1505 |
msgid ""
|
1506 |
"Changed the date of the custom post %PostTitle% of type %PostType% from "
|
1507 |
"%OldDate% to %NewDate%. %EditorLinkPost%."
|
1508 |
msgstr ""
|
1509 |
|
1510 |
-
#: defaults.php:
|
1511 |
msgid "User created a custom field for a custom post type"
|
1512 |
msgstr ""
|
1513 |
|
1514 |
-
#: defaults.php:
|
1515 |
-
msgid "
|
1516 |
-
|
1517 |
-
|
1518 |
-
#: defaults.php:118
|
1519 |
-
msgid "User deleted a custom field from a custom post type"
|
1520 |
-
msgstr ""
|
1521 |
-
|
1522 |
-
#: defaults.php:119
|
1523 |
-
msgid "User updated a custom field name for a custom post type"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
-
#: defaults.php:
|
1527 |
-
msgid "User
|
1528 |
msgstr ""
|
1529 |
|
1530 |
#: defaults.php:121
|
1531 |
-
msgid "
|
|
|
|
|
|
|
1532 |
msgstr ""
|
1533 |
|
1534 |
#: defaults.php:122
|
1535 |
-
msgid "User
|
1536 |
msgstr ""
|
1537 |
|
1538 |
#: defaults.php:122
|
1539 |
msgid ""
|
1540 |
-
"
|
1541 |
-
"%EditorLinkPost%."
|
1542 |
msgstr ""
|
1543 |
|
1544 |
#: defaults.php:123
|
1545 |
-
msgid "User
|
1546 |
msgstr ""
|
1547 |
|
1548 |
#: defaults.php:123
|
1549 |
msgid ""
|
1550 |
-
"Changed the
|
1551 |
-
"%EditorLinkPost%."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1552 |
msgstr ""
|
1553 |
|
1554 |
#: defaults.php:125
|
1555 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
1556 |
msgstr ""
|
1557 |
|
1558 |
#: defaults.php:126
|
1559 |
-
msgid "User
|
1560 |
msgstr ""
|
1561 |
|
1562 |
#: defaults.php:126
|
1563 |
-
msgid "
|
|
|
|
|
1564 |
msgstr ""
|
1565 |
|
1566 |
#: defaults.php:127
|
1567 |
-
msgid "User
|
1568 |
msgstr ""
|
1569 |
|
1570 |
#: defaults.php:127
|
1571 |
-
msgid "
|
|
|
|
|
1572 |
msgstr ""
|
1573 |
|
1574 |
#: defaults.php:128
|
1575 |
-
msgid "User
|
1576 |
msgstr ""
|
1577 |
|
1578 |
#: defaults.php:128
|
1579 |
-
msgid "
|
|
|
|
|
1580 |
msgstr ""
|
1581 |
|
1582 |
#: defaults.php:129
|
1583 |
-
msgid "User
|
1584 |
msgstr ""
|
1585 |
|
1586 |
#: defaults.php:129
|
1587 |
-
msgid "
|
|
|
|
|
1588 |
msgstr ""
|
1589 |
|
1590 |
-
#: defaults.php:
|
1591 |
-
msgid "
|
1592 |
msgstr ""
|
1593 |
|
1594 |
-
#: defaults.php:
|
1595 |
-
msgid "
|
1596 |
msgstr ""
|
1597 |
|
1598 |
#: defaults.php:132
|
1599 |
-
msgid "
|
|
|
|
|
1600 |
msgstr ""
|
1601 |
|
1602 |
#: defaults.php:133
|
1603 |
-
msgid "
|
1604 |
msgstr ""
|
1605 |
|
1606 |
#: defaults.php:133
|
1607 |
msgid ""
|
1608 |
-
"
|
1609 |
-
">Roles%."
|
1610 |
msgstr ""
|
1611 |
|
1612 |
#: defaults.php:134
|
1613 |
-
msgid "User
|
1614 |
msgstr ""
|
1615 |
|
1616 |
#: defaults.php:134
|
1617 |
msgid ""
|
1618 |
-
"
|
1619 |
-
"%
|
1620 |
msgstr ""
|
1621 |
|
1622 |
#: defaults.php:135
|
1623 |
-
msgid "
|
1624 |
msgstr ""
|
1625 |
|
1626 |
#: defaults.php:135
|
1627 |
msgid ""
|
1628 |
-
"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
#: defaults.php:136
|
1632 |
-
msgid "User
|
1633 |
msgstr ""
|
1634 |
|
1635 |
#: defaults.php:136
|
1636 |
-
msgid "
|
1637 |
msgstr ""
|
1638 |
|
1639 |
#: defaults.php:137
|
1640 |
-
msgid "User
|
1641 |
msgstr ""
|
1642 |
|
1643 |
#: defaults.php:137
|
1644 |
-
msgid ""
|
1645 |
-
"Changed the password for the user %TargetUserData->Username% with the role "
|
1646 |
-
"of %TargetUserData->Roles%."
|
1647 |
msgstr ""
|
1648 |
|
1649 |
#: defaults.php:138
|
1650 |
-
msgid "User
|
1651 |
msgstr ""
|
1652 |
|
1653 |
#: defaults.php:138
|
1654 |
-
msgid "
|
1655 |
msgstr ""
|
1656 |
|
1657 |
#: defaults.php:139
|
1658 |
-
msgid "User changed
|
1659 |
msgstr ""
|
1660 |
|
1661 |
#: defaults.php:139
|
1662 |
msgid ""
|
1663 |
-
"Changed the
|
1664 |
-
"%
|
1665 |
msgstr ""
|
1666 |
|
1667 |
#: defaults.php:140
|
1668 |
-
msgid "User
|
1669 |
msgstr ""
|
1670 |
|
1671 |
#: defaults.php:140
|
1672 |
msgid ""
|
1673 |
-
"
|
1674 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1675 |
msgstr ""
|
1676 |
|
1677 |
#: defaults.php:142
|
1678 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
1679 |
msgstr ""
|
1680 |
|
1681 |
#: defaults.php:143
|
1682 |
-
msgid "User
|
1683 |
msgstr ""
|
1684 |
|
1685 |
#: defaults.php:143
|
1686 |
-
msgid "
|
|
|
|
|
1687 |
msgstr ""
|
1688 |
|
1689 |
#: defaults.php:144
|
1690 |
-
msgid "User
|
1691 |
msgstr ""
|
1692 |
|
1693 |
#: defaults.php:144
|
1694 |
-
msgid "
|
|
|
|
|
1695 |
msgstr ""
|
1696 |
|
1697 |
#: defaults.php:145
|
1698 |
-
msgid "User
|
1699 |
msgstr ""
|
1700 |
|
1701 |
#: defaults.php:145
|
1702 |
-
msgid "
|
|
|
|
|
1703 |
msgstr ""
|
1704 |
|
1705 |
#: defaults.php:146
|
1706 |
-
msgid "User
|
1707 |
msgstr ""
|
1708 |
|
1709 |
#: defaults.php:146
|
1710 |
msgid ""
|
1711 |
-
"
|
1712 |
-
"%."
|
1713 |
msgstr ""
|
1714 |
|
1715 |
#: defaults.php:147
|
1716 |
-
msgid "User
|
1717 |
msgstr ""
|
1718 |
|
1719 |
#: defaults.php:147
|
1720 |
-
msgid "
|
|
|
|
|
1721 |
msgstr ""
|
1722 |
|
1723 |
#: defaults.php:148
|
1724 |
-
msgid "User
|
1725 |
msgstr ""
|
1726 |
|
1727 |
#: defaults.php:148
|
1728 |
msgid ""
|
1729 |
-
"
|
|
|
1730 |
msgstr ""
|
1731 |
|
1732 |
#: defaults.php:149
|
1733 |
-
msgid "User
|
1734 |
msgstr ""
|
1735 |
|
1736 |
#: defaults.php:149
|
1737 |
msgid ""
|
1738 |
-
"
|
1739 |
-
"
|
1740 |
msgstr ""
|
1741 |
|
1742 |
#: defaults.php:150
|
1743 |
-
msgid "User
|
1744 |
msgstr ""
|
1745 |
|
1746 |
#: defaults.php:150
|
1747 |
msgid ""
|
1748 |
-
"
|
1749 |
-
"
|
1750 |
msgstr ""
|
1751 |
|
1752 |
#: defaults.php:151
|
1753 |
-
msgid "
|
1754 |
msgstr ""
|
1755 |
|
1756 |
#: defaults.php:151
|
1757 |
-
msgid "
|
|
|
|
|
1758 |
msgstr ""
|
1759 |
|
1760 |
#: defaults.php:152
|
1761 |
-
msgid "
|
1762 |
msgstr ""
|
1763 |
|
1764 |
#: defaults.php:152
|
1765 |
-
msgid "
|
|
|
|
|
1766 |
msgstr ""
|
1767 |
|
1768 |
#: defaults.php:153
|
1769 |
-
msgid "
|
1770 |
msgstr ""
|
1771 |
|
1772 |
#: defaults.php:153
|
1773 |
-
msgid "
|
|
|
1774 |
msgstr ""
|
1775 |
|
1776 |
#: defaults.php:154
|
1777 |
-
msgid "
|
1778 |
msgstr ""
|
1779 |
|
1780 |
#: defaults.php:154
|
1781 |
-
msgid "
|
|
|
1782 |
msgstr ""
|
1783 |
|
1784 |
#: defaults.php:155
|
1785 |
-
msgid "
|
1786 |
msgstr ""
|
1787 |
|
1788 |
#: defaults.php:155
|
1789 |
-
msgid "
|
1790 |
msgstr ""
|
1791 |
|
1792 |
#: defaults.php:156
|
1793 |
-
msgid "
|
1794 |
msgstr ""
|
1795 |
|
1796 |
#: defaults.php:156
|
1797 |
-
msgid "
|
|
|
1798 |
msgstr ""
|
1799 |
|
1800 |
#: defaults.php:157
|
1801 |
-
msgid "User
|
1802 |
msgstr ""
|
1803 |
|
1804 |
#: defaults.php:157
|
1805 |
msgid ""
|
1806 |
-
"
|
1807 |
-
">get_template_directory%."
|
1808 |
msgstr ""
|
1809 |
|
1810 |
#: defaults.php:158
|
1811 |
-
msgid "User
|
1812 |
msgstr ""
|
1813 |
|
1814 |
#: defaults.php:158
|
1815 |
-
msgid "
|
|
|
1816 |
msgstr ""
|
1817 |
|
1818 |
#: defaults.php:159
|
1819 |
-
msgid "User
|
1820 |
msgstr ""
|
1821 |
|
1822 |
#: defaults.php:159
|
1823 |
-
msgid "
|
1824 |
-
msgstr ""
|
1825 |
-
|
1826 |
-
#: defaults.php:161
|
1827 |
-
msgid "System Activity"
|
1828 |
-
msgstr ""
|
1829 |
-
|
1830 |
-
#: defaults.php:162
|
1831 |
-
msgid "Unknown Error"
|
1832 |
msgstr ""
|
1833 |
|
1834 |
#: defaults.php:162
|
1835 |
-
msgid "
|
1836 |
msgstr ""
|
1837 |
|
1838 |
#: defaults.php:163
|
1839 |
-
msgid "
|
1840 |
msgstr ""
|
1841 |
|
1842 |
-
#: defaults.php:
|
1843 |
-
|
1844 |
-
msgid "%Message%."
|
1845 |
msgstr ""
|
1846 |
|
1847 |
#: defaults.php:164
|
1848 |
-
msgid "
|
|
|
1849 |
msgstr ""
|
1850 |
|
1851 |
#: defaults.php:165
|
1852 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
1853 |
msgstr ""
|
1854 |
|
1855 |
#: defaults.php:166
|
1856 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
1857 |
msgstr ""
|
1858 |
|
1859 |
#: defaults.php:167
|
1860 |
-
msgid "
|
|
|
|
|
|
|
|
|
1861 |
msgstr ""
|
1862 |
|
1863 |
#: defaults.php:168
|
1864 |
-
msgid "
|
1865 |
msgstr ""
|
1866 |
|
1867 |
#: defaults.php:168
|
1868 |
-
msgid "
|
|
|
|
|
1869 |
msgstr ""
|
1870 |
|
1871 |
#: defaults.php:169
|
1872 |
-
msgid "
|
1873 |
msgstr ""
|
1874 |
|
1875 |
#: defaults.php:169
|
1876 |
-
msgid "
|
|
|
|
|
1877 |
msgstr ""
|
1878 |
|
1879 |
#: defaults.php:170
|
1880 |
-
msgid "
|
1881 |
msgstr ""
|
1882 |
|
1883 |
#: defaults.php:170
|
1884 |
-
msgid "
|
|
|
1885 |
msgstr ""
|
1886 |
|
1887 |
#: defaults.php:171
|
1888 |
-
msgid "
|
1889 |
msgstr ""
|
1890 |
|
1891 |
#: defaults.php:171
|
1892 |
msgid ""
|
1893 |
-
"
|
1894 |
-
"%
|
1895 |
msgstr ""
|
1896 |
|
1897 |
#: defaults.php:172
|
1898 |
-
msgid "
|
1899 |
msgstr ""
|
1900 |
|
1901 |
#: defaults.php:172
|
1902 |
-
msgid "Updated WordPress from version %OldVersion% to %NewVersion%."
|
1903 |
-
msgstr ""
|
1904 |
-
|
1905 |
-
#: defaults.php:173
|
1906 |
-
msgid "User changes the WordPress Permalinks"
|
1907 |
-
msgstr ""
|
1908 |
-
|
1909 |
-
#: defaults.php:173
|
1910 |
-
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%."
|
1911 |
-
msgstr ""
|
1912 |
-
|
1913 |
-
#: defaults.php:174
|
1914 |
-
msgid "User requests non-existing pages (404 Error Pages)"
|
1915 |
-
msgstr ""
|
1916 |
-
|
1917 |
-
#: defaults.php:174
|
1918 |
msgid ""
|
1919 |
-
"
|
1920 |
-
"
|
1921 |
-
"log/404s/ directory."
|
1922 |
-
msgstr ""
|
1923 |
-
|
1924 |
-
#: defaults.php:175
|
1925 |
-
msgid "Advertising Add-ons."
|
1926 |
-
msgstr ""
|
1927 |
-
|
1928 |
-
#: defaults.php:175
|
1929 |
-
msgid "%PromoName% %PromoMessage%"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
-
#: defaults.php:
|
1933 |
msgid "MultiSite"
|
1934 |
msgstr ""
|
1935 |
|
1936 |
-
#: defaults.php:
|
1937 |
msgid "User granted Super Admin privileges"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
-
#: defaults.php:
|
1941 |
msgid "Granted Super Admin privileges to %TargetUsername%."
|
1942 |
msgstr ""
|
1943 |
|
1944 |
-
#: defaults.php:
|
1945 |
msgid "User revoked from Super Admin privileges"
|
1946 |
msgstr ""
|
1947 |
|
1948 |
-
#: defaults.php:
|
1949 |
msgid "Revoked Super Admin privileges from %TargetUsername%."
|
1950 |
msgstr ""
|
1951 |
|
1952 |
-
#: defaults.php:
|
1953 |
msgid "Existing user added to a site"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
-
#: defaults.php:
|
1957 |
msgid ""
|
1958 |
"Added the existing user %TargetUsername% with %TargetUserRole% role to site "
|
1959 |
"%SiteName%."
|
1960 |
msgstr ""
|
1961 |
|
1962 |
-
#: defaults.php:
|
1963 |
msgid "User removed from site"
|
1964 |
msgstr ""
|
1965 |
|
1966 |
-
#: defaults.php:
|
1967 |
msgid ""
|
1968 |
"Removed the user %TargetUsername% with role %TargetUserRole% from %SiteName% "
|
1969 |
"site."
|
1970 |
msgstr ""
|
1971 |
|
1972 |
-
#: defaults.php:
|
1973 |
msgid "New network user created"
|
1974 |
msgstr ""
|
1975 |
|
1976 |
-
#: defaults.php:
|
1977 |
msgid "Created a new network user %NewUserData->Username%."
|
1978 |
msgstr ""
|
1979 |
|
1980 |
-
#: defaults.php:
|
1981 |
msgid "The forum role of a user was changed by another WordPress user"
|
1982 |
msgstr ""
|
1983 |
|
1984 |
-
#: defaults.php:
|
1985 |
msgid ""
|
1986 |
"Change the forum role of the user %TargetUsername% from %OldRole% to %NewRole"
|
1987 |
"% by %UserChanger%."
|
1988 |
msgstr ""
|
1989 |
|
1990 |
-
#: defaults.php:
|
1991 |
msgid "New site added on the network"
|
1992 |
msgstr ""
|
1993 |
|
1994 |
-
#: defaults.php:
|
1995 |
msgid "Added the site %SiteName% to the network."
|
1996 |
msgstr ""
|
1997 |
|
1998 |
-
#: defaults.php:
|
1999 |
msgid "Existing site archived"
|
2000 |
msgstr ""
|
2001 |
|
2002 |
-
#: defaults.php:
|
2003 |
msgid "Archived the site %SiteName%."
|
2004 |
msgstr ""
|
2005 |
|
2006 |
-
#: defaults.php:
|
2007 |
msgid "Archived site has been unarchived"
|
2008 |
msgstr ""
|
2009 |
|
2010 |
-
#: defaults.php:
|
2011 |
msgid "Unarchived the site %SiteName%."
|
2012 |
msgstr ""
|
2013 |
|
2014 |
-
#: defaults.php:
|
2015 |
msgid "Deactivated site has been activated"
|
2016 |
msgstr ""
|
2017 |
|
2018 |
-
#: defaults.php:
|
2019 |
msgid "Activated the site %SiteName%."
|
2020 |
msgstr ""
|
2021 |
|
2022 |
-
#: defaults.php:
|
2023 |
msgid "Site has been deactivated"
|
2024 |
msgstr ""
|
2025 |
|
2026 |
-
#: defaults.php:
|
2027 |
msgid "Deactivated the site %SiteName%."
|
2028 |
msgstr ""
|
2029 |
|
2030 |
-
#: defaults.php:
|
2031 |
msgid "Existing site deleted from network"
|
2032 |
msgstr ""
|
2033 |
|
2034 |
-
#: defaults.php:
|
2035 |
msgid "Deleted the site %SiteName%."
|
2036 |
msgstr ""
|
2037 |
|
2038 |
-
#: defaults.php:
|
2039 |
msgid "Activated theme on network"
|
2040 |
msgstr ""
|
2041 |
|
2042 |
-
#: defaults.php:
|
2043 |
msgid ""
|
2044 |
"Network activated the theme %Theme->Name% installed in %Theme-"
|
2045 |
">get_template_directory%."
|
2046 |
msgstr ""
|
2047 |
|
2048 |
-
#: defaults.php:
|
2049 |
msgid "Deactivated theme from network"
|
2050 |
msgstr ""
|
2051 |
|
2052 |
-
#: defaults.php:
|
2053 |
msgid ""
|
2054 |
"Network deactivated the theme %Theme->Name% installed in %Theme-"
|
2055 |
">get_template_directory%."
|
2056 |
msgstr ""
|
2057 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2058 |
#: defaults.php:193
|
2059 |
-
msgid "
|
|
|
|
|
|
|
|
|
2060 |
msgstr ""
|
2061 |
|
2062 |
#: defaults.php:194
|
2063 |
-
msgid "
|
2064 |
msgstr ""
|
2065 |
|
2066 |
#: defaults.php:194
|
2067 |
msgid ""
|
2068 |
-
"
|
|
|
2069 |
msgstr ""
|
2070 |
|
2071 |
#: defaults.php:195
|
2072 |
-
msgid "
|
2073 |
msgstr ""
|
2074 |
|
2075 |
#: defaults.php:195
|
2076 |
-
msgid ""
|
2077 |
-
"Plugin %Plugin->Name% modified the structure of these database tables: "
|
2078 |
-
"%TableNames%."
|
2079 |
msgstr ""
|
2080 |
|
2081 |
#: defaults.php:196
|
2082 |
-
msgid "
|
2083 |
msgstr ""
|
2084 |
|
2085 |
#: defaults.php:196
|
2086 |
msgid ""
|
2087 |
-
"
|
2088 |
-
"%TableNames%."
|
2089 |
msgstr ""
|
2090 |
|
2091 |
#: defaults.php:197
|
2092 |
-
msgid "
|
2093 |
msgstr ""
|
2094 |
|
2095 |
#: defaults.php:197
|
2096 |
-
msgid "
|
|
|
|
|
2097 |
msgstr ""
|
2098 |
|
2099 |
#: defaults.php:198
|
2100 |
-
msgid "
|
2101 |
msgstr ""
|
2102 |
|
2103 |
#: defaults.php:198
|
2104 |
msgid ""
|
2105 |
-
"
|
2106 |
-
"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
#: defaults.php:199
|
2110 |
-
msgid "
|
2111 |
msgstr ""
|
2112 |
|
2113 |
#: defaults.php:199
|
2114 |
-
msgid ""
|
2115 |
-
"Theme %Theme->Name% deleted the following tables from the database: "
|
2116 |
-
"%TableNames%."
|
2117 |
msgstr ""
|
2118 |
|
2119 |
#: defaults.php:200
|
2120 |
-
msgid "
|
2121 |
msgstr ""
|
2122 |
|
2123 |
#: defaults.php:200
|
2124 |
-
msgid ""
|
2125 |
-
"An unknown component created these tables in the database: %TableNames%."
|
2126 |
msgstr ""
|
2127 |
|
2128 |
#: defaults.php:201
|
2129 |
-
msgid "
|
2130 |
msgstr ""
|
2131 |
|
2132 |
#: defaults.php:201
|
2133 |
-
msgid ""
|
2134 |
-
"An unknown component modified the structure of these database tables: "
|
2135 |
-
"%TableNames%."
|
2136 |
msgstr ""
|
2137 |
|
2138 |
#: defaults.php:202
|
2139 |
-
msgid "
|
2140 |
msgstr ""
|
2141 |
|
2142 |
#: defaults.php:202
|
2143 |
-
msgid ""
|
2144 |
-
|
2145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2146 |
msgstr ""
|
2147 |
|
2148 |
#: defaults.php:204
|
2149 |
-
msgid "
|
|
|
|
|
|
|
|
|
2150 |
msgstr ""
|
2151 |
|
2152 |
#: defaults.php:205
|
2153 |
-
msgid "User
|
|
|
|
|
|
|
|
|
|
|
|
|
2154 |
msgstr ""
|
2155 |
|
2156 |
#: defaults.php:206
|
2157 |
-
msgid "User changed
|
|
|
|
|
|
|
|
|
2158 |
msgstr ""
|
2159 |
|
2160 |
#: defaults.php:207
|
2161 |
-
msgid "User changed
|
|
|
|
|
|
|
|
|
2162 |
msgstr ""
|
2163 |
|
2164 |
#: defaults.php:208
|
2165 |
-
msgid "
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: defaults.php:
|
2169 |
-
msgid "
|
2170 |
msgstr ""
|
2171 |
|
2172 |
-
#: defaults.php:
|
2173 |
-
msgid "
|
2174 |
msgstr ""
|
2175 |
|
2176 |
-
#: defaults.php:
|
2177 |
-
msgid "
|
2178 |
msgstr ""
|
2179 |
|
2180 |
-
#: defaults.php:
|
2181 |
-
msgid "
|
2182 |
msgstr ""
|
2183 |
|
2184 |
-
#: defaults.php:
|
2185 |
-
msgid "
|
|
|
2186 |
msgstr ""
|
2187 |
|
2188 |
#: defaults.php:212
|
2189 |
-
msgid "
|
2190 |
msgstr ""
|
2191 |
|
2192 |
#: defaults.php:213
|
2193 |
-
msgid "
|
2194 |
msgstr ""
|
2195 |
|
2196 |
-
#: defaults.php:
|
2197 |
-
msgid "
|
2198 |
msgstr ""
|
2199 |
|
2200 |
#: defaults.php:214
|
2201 |
-
msgid "
|
2202 |
msgstr ""
|
2203 |
|
2204 |
-
#: defaults.php:215
|
2205 |
-
|
|
|
2206 |
msgstr ""
|
2207 |
|
2208 |
#: defaults.php:215
|
2209 |
-
msgid "
|
2210 |
msgstr ""
|
2211 |
|
2212 |
#: defaults.php:216
|
2213 |
-
msgid "
|
2214 |
-
msgstr ""
|
2215 |
-
|
2216 |
-
#: defaults.php:217
|
2217 |
-
msgid "User changed time to disallow post editing"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
#: defaults.php:217
|
2221 |
-
msgid ""
|
2222 |
-
"Changed the time to disallow post editing from %OldTime% to %NewTime% "
|
2223 |
-
"minutes in the forums."
|
2224 |
msgstr ""
|
2225 |
|
2226 |
#: defaults.php:218
|
2227 |
-
msgid "
|
2228 |
msgstr ""
|
2229 |
|
2230 |
-
#: defaults.php:
|
2231 |
-
msgid ""
|
2232 |
-
"Changed the posting throttle time from %OldTime% to %NewTime% seconds in the "
|
2233 |
-
"forums."
|
2234 |
msgstr ""
|
2235 |
|
2236 |
#: defaults.php:219
|
2237 |
-
msgid "
|
2238 |
msgstr ""
|
2239 |
|
2240 |
#: defaults.php:220
|
2241 |
-
msgid "
|
|
|
|
|
|
|
|
|
2242 |
msgstr ""
|
2243 |
|
2244 |
#: defaults.php:221
|
2245 |
-
msgid "User
|
|
|
|
|
|
|
|
|
2246 |
msgstr ""
|
2247 |
|
2248 |
#: defaults.php:222
|
2249 |
-
msgid "
|
2250 |
msgstr ""
|
2251 |
|
2252 |
#: defaults.php:222
|
2253 |
-
msgid "
|
|
|
|
|
2254 |
msgstr ""
|
2255 |
|
2256 |
#: defaults.php:223
|
2257 |
-
msgid "
|
|
|
|
|
|
|
|
|
2258 |
msgstr ""
|
2259 |
|
2260 |
#: defaults.php:224
|
2261 |
-
msgid "User
|
2262 |
msgstr ""
|
2263 |
|
2264 |
#: defaults.php:224
|
2265 |
-
msgid "
|
2266 |
msgstr ""
|
2267 |
|
2268 |
#: defaults.php:225
|
2269 |
-
msgid "User
|
2270 |
msgstr ""
|
2271 |
|
2272 |
#: defaults.php:225
|
2273 |
-
msgid "
|
|
|
|
|
2274 |
msgstr ""
|
2275 |
|
2276 |
#: defaults.php:226
|
2277 |
-
msgid "User
|
|
|
|
|
|
|
|
|
|
|
|
|
2278 |
msgstr ""
|
2279 |
|
2280 |
#: defaults.php:227
|
2281 |
-
msgid "
|
|
|
|
|
|
|
|
|
2282 |
msgstr ""
|
2283 |
|
2284 |
#: defaults.php:229
|
@@ -2359,128 +2537,899 @@ msgid "Moved %ItemName% as a sub-item of %ParentName% in menu %MenuName%."
|
|
2359 |
msgstr ""
|
2360 |
|
2361 |
#: defaults.php:240
|
2362 |
-
msgid "
|
2363 |
msgstr ""
|
2364 |
|
2365 |
#: defaults.php:241
|
2366 |
-
msgid "User
|
2367 |
msgstr ""
|
2368 |
|
2369 |
#: defaults.php:241
|
2370 |
-
msgid ""
|
2371 |
-
"Approved the comment posted in response to the post %PostTitle% by %Author% "
|
2372 |
-
"on %CommentLink%."
|
2373 |
msgstr ""
|
2374 |
|
2375 |
#: defaults.php:242
|
2376 |
-
msgid "User
|
2377 |
msgstr ""
|
2378 |
|
2379 |
#: defaults.php:242
|
2380 |
-
msgid ""
|
2381 |
-
"Unapproved the comment posted in response to the post %PostTitle% by %Author"
|
2382 |
-
"% on %CommentLink%."
|
2383 |
msgstr ""
|
2384 |
|
2385 |
#: defaults.php:243
|
2386 |
-
msgid "User
|
2387 |
msgstr ""
|
2388 |
|
2389 |
#: defaults.php:243
|
2390 |
-
msgid ""
|
2391 |
-
"Replied to the comment posted in response to the post %PostTitle% by %Author"
|
2392 |
-
"% on %CommentLink%."
|
2393 |
msgstr ""
|
2394 |
|
2395 |
#: defaults.php:244
|
2396 |
-
msgid "User
|
2397 |
msgstr ""
|
2398 |
|
2399 |
#: defaults.php:244
|
2400 |
-
msgid ""
|
2401 |
-
"Edited a comment posted in response to the post %PostTitle% by %Author% on "
|
2402 |
-
"%CommentLink%."
|
2403 |
msgstr ""
|
2404 |
|
2405 |
#: defaults.php:245
|
2406 |
-
msgid "User
|
2407 |
msgstr ""
|
2408 |
|
2409 |
#: defaults.php:245
|
2410 |
-
msgid ""
|
2411 |
-
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
2412 |
-
"%CommentLink% as Spam."
|
2413 |
msgstr ""
|
2414 |
|
2415 |
-
#: defaults.php:
|
2416 |
-
msgid "
|
2417 |
msgstr ""
|
2418 |
|
2419 |
-
#: defaults.php:
|
2420 |
msgid ""
|
2421 |
-
"
|
2422 |
-
"%CommentLink% as Not Spam."
|
2423 |
msgstr ""
|
2424 |
|
2425 |
-
#: defaults.php:
|
2426 |
-
msgid "
|
2427 |
msgstr ""
|
2428 |
|
2429 |
-
#: defaults.php:
|
2430 |
-
msgid ""
|
2431 |
-
"Moved the comment posted in response to the post %PostTitle% by %Author% on "
|
2432 |
-
"%Date% to trash."
|
2433 |
msgstr ""
|
2434 |
|
2435 |
-
#: defaults.php:
|
2436 |
-
msgid "
|
2437 |
msgstr ""
|
2438 |
|
2439 |
-
#: defaults.php:
|
2440 |
-
msgid ""
|
2441 |
-
"Restored the comment posted in response to the post %PostTitle% by %Author% "
|
2442 |
-
"on %CommentLink% from the trash."
|
2443 |
msgstr ""
|
2444 |
|
2445 |
-
#: defaults.php:
|
2446 |
-
msgid "
|
2447 |
msgstr ""
|
2448 |
|
2449 |
-
#: defaults.php:
|
2450 |
msgid ""
|
2451 |
-
"
|
2452 |
-
"by %Author% on %Date%."
|
2453 |
msgstr ""
|
2454 |
|
2455 |
-
#: defaults.php:
|
2456 |
-
msgid "
|
2457 |
msgstr ""
|
2458 |
|
2459 |
-
#: defaults.php:
|
2460 |
-
msgid "
|
2461 |
msgstr ""
|
2462 |
|
2463 |
#: defaults.php:252
|
2464 |
-
msgid "
|
|
|
|
|
|
|
|
|
2465 |
msgstr ""
|
2466 |
|
2467 |
#: defaults.php:253
|
2468 |
-
msgid "
|
|
|
|
|
2469 |
msgstr ""
|
2470 |
|
2471 |
-
#: defaults.php:
|
2472 |
-
msgid "
|
2473 |
msgstr ""
|
2474 |
|
2475 |
#: defaults.php:254
|
2476 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
2477 |
msgstr ""
|
2478 |
|
2479 |
#: defaults.php:255
|
2480 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2481 |
msgstr ""
|
2482 |
|
2483 |
-
#: wp-security-audit-log.php:
|
|
|
2484 |
msgid ""
|
2485 |
"You are using a version of PHP that is older than %s, which is no longer "
|
2486 |
"supported.<br/>Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com"
|
@@ -2492,9 +3441,7 @@ msgstr ""
|
|
2492 |
msgid "WP Security Audit Log"
|
2493 |
msgstr ""
|
2494 |
|
2495 |
-
#. #-#-#-#-# plugin.pot (WP Security Audit Log 2.5.3) #-#-#-#-#
|
2496 |
#. Plugin URI of the plugin/theme
|
2497 |
-
#. #-#-#-#-# plugin.pot (WP Security Audit Log 2.5.3) #-#-#-#-#
|
2498 |
#. Author URI of the plugin/theme
|
2499 |
msgid "http://www.wpsecurityauditlog.com/"
|
2500 |
msgstr ""
|
1 |
+
#, fuzzy
|
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
5 |
+
"Project-Id-Version: WP Security Audit Log\n"
|
6 |
+
"POT-Creation-Date: 2017-09-19 15:19+0100\n"
|
7 |
+
"PO-Revision-Date: 2017-09-19 15:19+0100\n"
|
8 |
+
"Last-Translator: \n"
|
9 |
+
"Language-Team: \n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Generator: Poedit 2.0.3\n"
|
14 |
+
"X-Poedit-Basepath: ..\n"
|
15 |
+
"X-Poedit-Flags-xgettext: --add-comments=translators:\n"
|
16 |
+
"X-Poedit-WPHeader: wp-security-audit-log.php\n"
|
17 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
19 |
+
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
20 |
+
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
21 |
+
"X-Poedit-SearchPath-0: .\n"
|
22 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
+
|
24 |
+
#: classes/AuditLogListView.php:40
|
25 |
msgid "No events so far."
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: classes/AuditLogListView.php:46
|
29 |
msgid "Other"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: classes/AuditLogListView.php:53
|
33 |
msgid "Show "
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: classes/AuditLogListView.php:63
|
37 |
msgid " Items"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: classes/AuditLogListView.php:76 classes/Views/AuditLog.php:150
|
41 |
+
#: classes/Views/AuditLog.php:170
|
42 |
msgid "All Sites"
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: classes/AuditLogListView.php:97
|
46 |
+
msgid "Live Database"
|
|
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: classes/AuditLogListView.php:98
|
50 |
+
msgid "Archive Database"
|
|
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: classes/AuditLogListView.php:137 classes/WidgetManager.php:51
|
54 |
+
msgid "User"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: classes/AuditLogListView.php:139 classes/Views/Settings.php:529
|
58 |
msgid "Username"
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: classes/AuditLogListView.php:144 classes/AuditLogListView.php:161
|
62 |
+
#: classes/Views/ToggleAlerts.php:109
|
63 |
+
msgid "Code"
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: classes/AuditLogListView.php:145 classes/AuditLogListView.php:164
|
67 |
+
#: classes/Views/ToggleAlerts.php:110
|
68 |
+
msgid "Type"
|
69 |
+
msgstr ""
|
70 |
+
|
71 |
+
#: classes/AuditLogListView.php:146 classes/AuditLogListView.php:167
|
72 |
+
msgid "Date"
|
73 |
+
msgstr ""
|
74 |
+
|
75 |
+
#: classes/AuditLogListView.php:148 classes/AuditLogListView.php:173
|
76 |
msgid "Source IP"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: classes/AuditLogListView.php:151 classes/AuditLogListView.php:176
|
80 |
msgid "Site"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: classes/AuditLogListView.php:153 classes/AuditLogListView.php:179
|
84 |
msgid "Message"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: classes/AuditLogListView.php:217
|
88 |
msgid "Click to toggle."
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: classes/AuditLogListView.php:220
|
92 |
+
msgid "Disable this type of alerts."
|
93 |
+
msgstr ""
|
94 |
+
|
95 |
+
#: classes/AuditLogListView.php:225
|
96 |
msgid "Unknown error code."
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: classes/AuditLogListView.php:256
|
100 |
+
msgid "Show me all activity by this User"
|
101 |
+
msgstr ""
|
102 |
+
|
103 |
+
#: classes/AuditLogListView.php:271
|
104 |
msgid "Unknown"
|
105 |
msgstr ""
|
106 |
|
107 |
+
#: classes/AuditLogListView.php:275
|
108 |
msgid "Plugin"
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: classes/AuditLogListView.php:279
|
112 |
msgid "Plugins"
|
113 |
msgstr ""
|
114 |
|
115 |
+
#: classes/AuditLogListView.php:283
|
116 |
msgid "Website Visitor"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: classes/AuditLogListView.php:287
|
120 |
msgid "System"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: classes/AuditLogListView.php:307 classes/AuditLogListView.php:320
|
124 |
+
msgid "Show me all activity originating from this IP Address"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: classes/AuditLogListView.php:341
|
128 |
msgid "Alert Data Inspector"
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: classes/Sensors/Content.php:626 classes/Sensors/Content.php:634
|
132 |
+
#: classes/Sensors/WooCommerce.php:331 classes/Sensors/WooCommerce.php:337
|
133 |
msgid "Password Protected"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: classes/Sensors/Content.php:628 classes/Sensors/Content.php:636
|
137 |
msgid "Public"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: classes/Sensors/Content.php:630 classes/Sensors/Content.php:638
|
141 |
msgid "Private"
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: classes/Sensors/WooCommerce.php:807
|
145 |
+
msgid "In stock"
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: classes/Sensors/WooCommerce.php:809
|
149 |
+
msgid "Out of stock"
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: classes/Views/About.php:11
|
153 |
msgid "About WP Security Audit Log"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: classes/Views/About.php:21
|
157 |
msgid "About"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: classes/Views/About.php:37
|
161 |
msgid ""
|
162 |
"WP Security Audit Log enables WordPress administrators and owners to "
|
163 |
"identify WordPress security issues before they become a security problem by "
|
165 |
"WordPress security professionals WP White Security."
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: classes/Views/About.php:39
|
169 |
msgid ""
|
170 |
"Keep A WordPress Security Audit Log & Identify WordPress Security Issues"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: classes/Views/About.php:41
|
174 |
msgid ""
|
175 |
"WP Security Audit Log logs everything happening on your WordPress blog or "
|
176 |
"website and WordPress multisite network. By using WP Security Audit Log "
|
179 |
"generated by the plugin when:"
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: classes/Views/About.php:44
|
183 |
msgid "User creates a new user or a new user is registered"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: classes/Views/About.php:45
|
187 |
msgid ""
|
188 |
"Existing user changes the role, password or other properties of another user"
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: classes/Views/About.php:46
|
192 |
msgid "Existing user on a WordPress multisite network is added to a site"
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: classes/Views/About.php:47
|
196 |
msgid "User uploads or deletes a file, changes a password or email address"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: classes/Views/About.php:48
|
200 |
msgid "User installs, activates, deactivates, upgrades or uninstalls a plugin"
|
201 |
msgstr ""
|
202 |
|
203 |
+
#: classes/Views/About.php:49
|
204 |
msgid ""
|
205 |
"User creates, modifies or deletes a new post, page, category or a custom "
|
206 |
"post type"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: classes/Views/About.php:50
|
210 |
msgid "User installs or activates a WordPress theme"
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: classes/Views/About.php:51
|
214 |
msgid "User adds, modifies or deletes a widget"
|
215 |
msgstr ""
|
216 |
|
217 |
+
#: classes/Views/About.php:52
|
218 |
msgid "User uses the dashboard file editor"
|
219 |
msgstr ""
|
220 |
|
221 |
+
#: classes/Views/About.php:53
|
222 |
msgid "WordPress settings are changed"
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: classes/Views/About.php:54
|
226 |
msgid "Failed login attempts"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: classes/Views/About.php:55
|
230 |
msgid "and much more…"
|
231 |
msgstr ""
|
232 |
|
233 |
+
#: classes/Views/About.php:65
|
234 |
msgid "Extend the Functionality & Get More Value from WP Security Audit Log"
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: classes/Views/About.php:68
|
238 |
msgid ""
|
239 |
"Get more value out of WP Security Audit Log by extending the functionality "
|
240 |
"of WP Security Audit Log with the premium Add-Ons."
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: classes/Views/About.php:70
|
244 |
msgid "See Add-Ons"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: classes/Views/About.php:74 classes/Views/Help.php:79
|
248 |
msgid "WP Security Audit Log in your Language!"
|
249 |
msgstr ""
|
250 |
|
251 |
+
#: classes/Views/About.php:76 classes/Views/Help.php:81
|
252 |
msgid ""
|
253 |
"If you are interested in translating our plugin please drop us an email on"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: classes/Views/About.php:81
|
257 |
msgid "WordPress Security Services"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: classes/Views/About.php:83
|
261 |
msgid "Professional WordPress security services provided by WP White Security"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: classes/Views/AuditLog.php:72
|
265 |
msgid "Upgrade to Premium"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: classes/Views/AuditLog.php:73
|
269 |
msgid ""
|
270 |
"and add Email Alerts, Reports, Search and Users Login and Session Management."
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: classes/Views/AuditLog.php:74
|
274 |
msgid "Upgrade Now!"
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: classes/Views/AuditLog.php:90 classes/Views/AuditLog.php:102
|
278 |
msgid "Audit Log Viewer"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: classes/Views/AuditLog.php:125 classes/Views/Licensing.php:47
|
282 |
+
#: classes/Views/Settings.php:152 classes/Views/ToggleAlerts.php:39
|
283 |
msgid "You do not have sufficient permissions to access this page."
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: classes/Views/AuditLog.php:149 classes/Views/AuditLog.php:169
|
287 |
msgid "Please enter the number of alerts you would like to see on one page:"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: classes/Views/AuditLog.php:151 classes/Views/AuditLog.php:171
|
291 |
msgid "No Results"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: classes/Views/EmailNotifications.php:13
|
295 |
msgid "Email Notifications Add-On"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: classes/Views/EmailNotifications.php:23
|
299 |
msgid "Notifications Email"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: classes/Views/EmailNotifications.php:46 classes/Views/Extensions.php:78
|
303 |
msgid "Email Notifications"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: classes/Views/EmailNotifications.php:48
|
307 |
msgid ""
|
308 |
"This premium add-on allows you to configure email alerts so you are "
|
309 |
"<br>notified instantly when important changes happen on your WordPress."
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: classes/Views/EmailNotifications.php:52 classes/Views/ExternalDB.php:52
|
313 |
+
#: classes/Views/LogInUsers.php:51 classes/Views/Reports.php:51
|
314 |
+
#: classes/Views/Search.php:51
|
315 |
msgid "Learn More"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: classes/Views/EmailNotifications.php:61 classes/Views/ExternalDB.php:61
|
319 |
+
#: classes/Views/LogInUsers.php:60 classes/Views/Reports.php:60
|
320 |
+
#: classes/Views/Search.php:60
|
321 |
msgid "Buy all Add-Ons Bundle"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: classes/Views/Extensions.php:13
|
325 |
msgid "WP Security Audit Log Add-Ons"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: classes/Views/Extensions.php:23
|
329 |
msgid " Add Functionality"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: classes/Views/Extensions.php:44
|
333 |
msgid ""
|
334 |
"The below add-ons allow you to extend the functionality of WP Security Audit "
|
335 |
"Log plugin and enable you to get more benefits out of the WordPress security "
|
338 |
"regulatory compliance requirements."
|
339 |
msgstr ""
|
340 |
|
341 |
+
#: classes/Views/Extensions.php:50
|
342 |
msgid "All Add-Ons Bundle"
|
343 |
msgstr ""
|
344 |
|
345 |
+
#: classes/Views/Extensions.php:52
|
346 |
+
#, php-format
|
347 |
msgid ""
|
348 |
"Benefit from a 60% discount when you purchase all the add-ons as a single "
|
349 |
"bundle."
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: classes/Views/Extensions.php:55
|
353 |
msgid "Get this Bundle"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: classes/Views/Extensions.php:63
|
357 |
msgid "Users Logins and Management"
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: classes/Views/Extensions.php:65
|
361 |
msgid ""
|
362 |
"See who is logged in to your WordPress and manage user sessions and logins."
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: classes/Views/Extensions.php:69 classes/Views/Extensions.php:84
|
366 |
+
#: classes/Views/Extensions.php:99 classes/Views/Extensions.php:114
|
367 |
+
#: classes/Views/Extensions.php:129
|
368 |
msgid "Get this extension"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: classes/Views/Extensions.php:80
|
372 |
msgid ""
|
373 |
"Get notified instantly via email when important changes are made on your "
|
374 |
"WordPress!"
|
375 |
msgstr ""
|
376 |
|
377 |
+
#: classes/Views/Extensions.php:93 classes/Views/Reports.php:22
|
378 |
+
#: classes/Views/Reports.php:45
|
379 |
msgid "Reports"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: classes/Views/Extensions.php:95
|
383 |
msgid ""
|
384 |
"Generate any type of user,site and activity report to keep track of user "
|
385 |
"productivity and to meet regulatory compliance requirements."
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: classes/Views/Extensions.php:108 classes/Views/Search.php:22
|
389 |
+
#: classes/Views/Search.php:45
|
390 |
msgid "Search"
|
391 |
msgstr ""
|
392 |
|
393 |
+
#: classes/Views/Extensions.php:110
|
394 |
msgid ""
|
395 |
"Do free-text based searches for specific activity in the WordPress audit "
|
396 |
"trail. You can also use filters to fine-tune your searches."
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: classes/Views/Extensions.php:123 classes/Views/ExternalDB.php:46
|
400 |
msgid "External DB"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: classes/Views/Extensions.php:125
|
404 |
msgid ""
|
405 |
"Store the WordPress audit trial in an external database for a more secure "
|
406 |
"and faster WordPress website."
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: classes/Views/ExternalDB.php:13
|
410 |
+
msgid "External DB Add-On"
|
411 |
+
msgstr ""
|
412 |
+
|
413 |
+
#: classes/Views/ExternalDB.php:23
|
414 |
+
msgid "External DB "
|
415 |
+
msgstr ""
|
416 |
+
|
417 |
+
#: classes/Views/ExternalDB.php:48
|
418 |
+
msgid ""
|
419 |
+
"Meet Legal and Regulatory Compliance Requirements, Improve the Security of "
|
420 |
+
"Your WordPress and Boost its Performance by storing the WordPress Audit "
|
421 |
+
"Trail in an external database."
|
422 |
+
msgstr ""
|
423 |
+
|
424 |
+
#: classes/Views/Help.php:13 classes/Views/Help.php:23
|
425 |
msgid "Help"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: classes/Views/Help.php:38
|
429 |
msgid "Plugin Support"
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: classes/Views/Help.php:40
|
433 |
msgid ""
|
434 |
"Have you encountered or noticed any issues while using WP Security Audit Log "
|
435 |
"plugin?"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: classes/Views/Help.php:41
|
439 |
msgid ""
|
440 |
"Or you want to report something to us? Click any of the options below to "
|
441 |
"post on the plugin's forum or contact our support directly."
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: classes/Views/Help.php:43
|
445 |
msgid "Free Support Forum"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: classes/Views/Help.php:45
|
449 |
msgid "Free Support Email"
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: classes/Views/Help.php:50
|
453 |
msgid "Plugin Documentation"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: classes/Views/Help.php:52
|
457 |
msgid ""
|
458 |
"For more detailed information about WP Security Audit Log you can visit the "
|
459 |
"plugin website."
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: classes/Views/Help.php:53
|
463 |
msgid ""
|
464 |
"You can also visit the official list of WordPress Security Alerts for more "
|
465 |
"information about all of the WordPress activity and changes you can monitor "
|
466 |
"with WP Security Audit Log."
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: classes/Views/Help.php:55
|
470 |
msgid "Plugin Website"
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: classes/Views/Help.php:57
|
474 |
msgid "Plugin Documenation"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: classes/Views/Help.php:59
|
478 |
msgid "FAQs"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: classes/Views/Help.php:61
|
482 |
msgid "List of WordPress Security Alerts"
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: classes/Views/Help.php:66
|
486 |
msgid "Keep Yourself Up-to-Date with WordPress Security"
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: classes/Views/Help.php:68
|
490 |
msgid ""
|
491 |
"Keep yourself informed with what is happening in the WordPress security "
|
492 |
"ecosystem, which are the new vulnerabilities, which plugins you need to "
|
494 |
"step ahead of the hackers."
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: classes/Views/Help.php:70
|
498 |
msgid "Read the WP White Security Blog"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: classes/Views/Help.php:72
|
502 |
msgid ""
|
503 |
"Subscribe to WP Security Bloggers (An Aggregate of WordPress Security Blogs)"
|
504 |
msgstr ""
|
505 |
|
506 |
+
#: classes/Views/Licensing.php:11 classes/Views/Licensing.php:21
|
507 |
msgid "Licensing"
|
508 |
msgstr ""
|
509 |
|
510 |
+
#: classes/Views/Licensing.php:52 classes/Views/Settings.php:158
|
511 |
+
#: classes/Views/ToggleAlerts.php:56
|
512 |
msgid "Settings have been saved."
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: classes/Views/Licensing.php:54 classes/Views/Settings.php:161
|
516 |
+
#: classes/Views/ToggleAlerts.php:58
|
517 |
msgid "Error: "
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: classes/Views/Licensing.php:74
|
521 |
msgid "Version"
|
522 |
msgstr ""
|
523 |
|
524 |
+
#: classes/Views/Licensing.php:84
|
525 |
msgid "Active"
|
526 |
msgstr ""
|
527 |
|
528 |
+
#: classes/Views/Licensing.php:86
|
529 |
msgid "Inactive"
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: classes/Views/LogInUsers.php:12
|
533 |
msgid "User Sessions Management Add-On"
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: classes/Views/LogInUsers.php:22
|
537 |
msgid "Logged In Users"
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: classes/Views/LogInUsers.php:45
|
541 |
msgid "Users login and Management"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: classes/Views/LogInUsers.php:47
|
545 |
msgid ""
|
546 |
"This premium add-on allows you to see who is logged in to your WordPress,"
|
547 |
"<br> block multiple same-user WordPress sessions and more."
|
548 |
msgstr ""
|
549 |
|
550 |
+
#: classes/Views/Reports.php:12
|
551 |
msgid "Reports Add-On"
|
552 |
msgstr ""
|
553 |
|
554 |
+
#: classes/Views/Reports.php:47
|
555 |
msgid ""
|
556 |
"Generate any type of user and site activity report to keep track of user "
|
557 |
"productivity<br> and meet regulatory compliance requirements. You can also "
|
558 |
"configure automated weekly or monthly email summary reports."
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: classes/Views/Search.php:12
|
562 |
msgid "Search Add-On"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: classes/Views/Search.php:47
|
566 |
msgid ""
|
567 |
"Do free-text based searches for specific activity in the WordPress audit "
|
568 |
"trail.<br> You can also use the built-in filters to fine-tune your searches."
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: classes/Views/Settings.php:38 classes/Views/Settings.php:48
|
572 |
msgid "Settings"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: classes/Views/Settings.php:166
|
576 |
+
msgid "General"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: classes/Views/Settings.php:167
|
580 |
+
msgid "Audit Log"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: classes/Views/Settings.php:168
|
584 |
+
msgid "Exclude Objects"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: classes/Views/Settings.php:184
|
588 |
msgid "From Email & Name"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: classes/Views/Settings.php:187
|
592 |
msgid "Email Address"
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: classes/Views/Settings.php:190
|
596 |
msgid "Display Name"
|
597 |
msgstr ""
|
598 |
|
599 |
+
#: classes/Views/Settings.php:196
|
600 |
+
#, php-format
|
601 |
msgid ""
|
602 |
"These email address and display name will be used as From details in the "
|
603 |
"emails sent by the %s . Please ensure the mail server can relay emails with "
|
604 |
"the domain of the specified email address."
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: classes/Views/Settings.php:197
|
608 |
msgid "(premium add-ons)"
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: classes/Views/Settings.php:205
|
612 |
msgid "Alerts Dashboard Widget"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: classes/Views/Settings.php:211
|
616 |
msgid "On"
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: classes/Views/Settings.php:216
|
620 |
msgid "Off"
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: classes/Views/Settings.php:221
|
624 |
+
#, php-format
|
625 |
msgid "Display a dashboard widget with the latest %d security alerts."
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: classes/Views/Settings.php:230
|
629 |
msgid "Reverse Proxy / Firewall Options"
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: classes/Views/Settings.php:236
|
633 |
msgid "WordPress running behind firewall or proxy"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: classes/Views/Settings.php:239
|
637 |
msgid ""
|
638 |
"Enable this option if your WordPress is running behind a firewall or reverse "
|
639 |
"proxy. When this option is enabled the plugin will retrieve the user's IP "
|
640 |
"address from the proxy header."
|
641 |
msgstr ""
|
642 |
|
643 |
+
#: classes/Views/Settings.php:244
|
644 |
msgid "Filter Internal IP Addresses"
|
645 |
msgstr ""
|
646 |
|
647 |
+
#: classes/Views/Settings.php:247
|
648 |
msgid ""
|
649 |
"Enable this option to filter internal IP addresses from the proxy headers."
|
650 |
msgstr ""
|
651 |
|
652 |
+
#: classes/Views/Settings.php:253
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
653 |
msgid "Can Manage Plugin"
|
654 |
msgstr ""
|
655 |
|
656 |
+
#: classes/Views/Settings.php:260
|
657 |
msgid "Users and Roles in this list can manage the plugin settings"
|
658 |
msgstr ""
|
659 |
|
660 |
+
#: classes/Views/Settings.php:278
|
661 |
msgid "Restrict Plugin Access"
|
662 |
msgstr ""
|
663 |
|
664 |
+
#: classes/Views/Settings.php:288
|
665 |
msgid ""
|
666 |
+
"If this option is disabled all the administrators on this WordPress have "
|
667 |
+
"access to manage this plugin."
|
|
|
|
|
668 |
msgstr ""
|
669 |
|
670 |
+
#: classes/Views/Settings.php:289
|
671 |
+
msgid ""
|
672 |
+
"By enabling this option only <strong>You</strong> and the users specified in "
|
673 |
+
"the <strong>Can Manage Plugin</strong> and <strong>Can View Alerts</strong> "
|
674 |
+
"can configure this plugin or view the alerts in the WordPress audit trail."
|
675 |
msgstr ""
|
676 |
|
677 |
+
#: classes/Views/Settings.php:296
|
678 |
+
msgid "Developer Options"
|
679 |
msgstr ""
|
680 |
|
681 |
+
#: classes/Views/Settings.php:304
|
682 |
+
msgid ""
|
683 |
+
"Only enable these options on testing, staging and development websites. "
|
684 |
+
"Enabling any of the settings below on LIVE websites may cause unintended "
|
685 |
+
"side-effects including degraded performance."
|
686 |
msgstr ""
|
687 |
|
688 |
+
#: classes/Views/Settings.php:309
|
689 |
+
msgid "Data Inspector"
|
690 |
msgstr ""
|
691 |
|
692 |
+
#: classes/Views/Settings.php:310
|
693 |
+
msgid "View data logged for each triggered alert."
|
694 |
msgstr ""
|
695 |
|
696 |
+
#: classes/Views/Settings.php:317
|
697 |
+
msgid "Request Log"
|
698 |
msgstr ""
|
699 |
|
700 |
+
#: classes/Views/Settings.php:318
|
701 |
+
msgid "Enables logging request to file."
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: classes/Views/Settings.php:336
|
705 |
+
msgid ""
|
706 |
+
"The request log file is saved in the /wp-content/uploads/wp-security-audit-"
|
707 |
+
"log/ directory."
|
708 |
msgstr ""
|
709 |
|
710 |
+
#: classes/Views/Settings.php:344
|
711 |
+
msgid "Hide Plugin in Plugins Page"
|
712 |
msgstr ""
|
713 |
|
714 |
+
#: classes/Views/Settings.php:350
|
715 |
+
msgid "Hide"
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: classes/Views/Settings.php:354
|
719 |
+
msgid ""
|
720 |
+
"To manually revert this setting set the value of option wsal-hide-plugin to "
|
721 |
+
"0 in the wp_wsal_options table."
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: classes/Views/Settings.php:361
|
725 |
+
msgid "Logging"
|
|
|
|
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: classes/Views/Settings.php:375
|
729 |
+
msgid "Disable all plugin logging."
|
730 |
msgstr ""
|
731 |
|
732 |
+
#: classes/Views/Settings.php:382
|
733 |
+
msgid "Remove Data on Uninstall"
|
|
|
|
|
|
|
734 |
msgstr ""
|
735 |
|
736 |
#: classes/Views/Settings.php:406
|
737 |
+
msgid ""
|
738 |
+
"The options below are disabled because you enabled archiving of alerts to "
|
739 |
+
"the archiving table from"
|
740 |
msgstr ""
|
741 |
|
742 |
+
#: classes/Views/Settings.php:411
|
743 |
+
msgid "Security Alerts Pruning"
|
744 |
+
msgstr ""
|
745 |
+
|
746 |
+
#: classes/Views/Settings.php:414 classes/Views/Settings.php:422
|
747 |
+
msgid "(eg: 1 month)"
|
748 |
msgstr ""
|
749 |
|
750 |
#: classes/Views/Settings.php:418
|
751 |
+
msgid "None"
|
752 |
msgstr ""
|
753 |
|
754 |
+
#: classes/Views/Settings.php:426
|
755 |
+
msgid "Delete alerts older than"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: classes/Views/Settings.php:434
|
759 |
+
msgid "(eg: 80)"
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: classes/Views/Settings.php:438
|
763 |
+
msgid "Keep up to"
|
764 |
msgstr ""
|
765 |
|
766 |
+
#: classes/Views/Settings.php:443
|
767 |
+
msgid "alerts"
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: classes/Views/Settings.php:447
|
771 |
+
msgid "Next Scheduled Cleanup is in "
|
772 |
msgstr ""
|
773 |
|
774 |
+
#: classes/Views/Settings.php:451
|
775 |
+
#, php-format
|
776 |
+
msgid "(or %s)"
|
777 |
msgstr ""
|
778 |
|
779 |
+
#: classes/Views/Settings.php:452
|
780 |
+
msgid "Run Manually"
|
781 |
msgstr ""
|
782 |
|
783 |
+
#: classes/Views/Settings.php:459
|
784 |
+
msgid "Can View Alerts"
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: classes/Views/Settings.php:466
|
788 |
+
msgid "Users and Roles in this list can view the security alerts"
|
789 |
msgstr ""
|
790 |
|
791 |
+
#: classes/Views/Settings.php:482
|
792 |
+
msgid "Refresh Audit Log Viewer"
|
793 |
msgstr ""
|
794 |
|
795 |
+
#: classes/Views/Settings.php:488
|
796 |
+
msgid "Automatic"
|
797 |
+
msgstr ""
|
798 |
+
|
799 |
+
#: classes/Views/Settings.php:490
|
800 |
+
msgid "Refresh Audit Log Viewer as soon as there are new alerts."
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: classes/Views/Settings.php:494
|
804 |
+
msgid "Manual"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: classes/Views/Settings.php:496
|
808 |
+
msgid "Refresh Audit Log Viewer only when the page is reloaded."
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: classes/Views/Settings.php:503
|
812 |
+
msgid "Alerts Timestamp"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: classes/Views/Settings.php:509
|
816 |
+
msgid "UTC"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: classes/Views/Settings.php:514
|
820 |
+
msgid "WordPress' timezone"
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: classes/Views/Settings.php:517
|
824 |
msgid ""
|
825 |
+
"Select which timestamp the alerts should have in the Audit Log viewer. Note "
|
826 |
+
"that the WordPress' timezone might be different from that of the server."
|
827 |
+
msgstr ""
|
828 |
+
|
829 |
+
#: classes/Views/Settings.php:523
|
830 |
+
msgid "User Information in Audit Log"
|
831 |
+
msgstr ""
|
832 |
+
|
833 |
+
#: classes/Views/Settings.php:534
|
834 |
+
msgid "First Name & Last Name"
|
835 |
+
msgstr ""
|
836 |
+
|
837 |
+
#: classes/Views/Settings.php:537
|
838 |
+
msgid ""
|
839 |
+
"Select the type of user information that should be displayed in the audit "
|
840 |
+
"log."
|
841 |
+
msgstr ""
|
842 |
+
|
843 |
+
#: classes/Views/Settings.php:543
|
844 |
+
msgid "Audit Log Columns Selection"
|
845 |
+
msgstr ""
|
846 |
+
|
847 |
+
#: classes/Views/Settings.php:554
|
848 |
+
msgid ""
|
849 |
+
"When you disable any of the above such details won’t be shown in the Audit "
|
850 |
+
"Log viewer though the plugin will still record such information in the "
|
851 |
+
"database."
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: classes/Views/Settings.php:560
|
855 |
msgid "Disable Alerts for WordPress Background Activity"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: classes/Views/Settings.php:566
|
859 |
msgid "Hide activity"
|
860 |
msgstr ""
|
861 |
|
862 |
+
#: classes/Views/Settings.php:570
|
863 |
msgid ""
|
864 |
"For example do not raise an alert when WordPress deletes the auto drafts."
|
865 |
msgstr ""
|
866 |
|
867 |
+
#: classes/Views/Settings.php:581
|
868 |
+
msgid "Users & Roles"
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: classes/Views/Settings.php:588
|
872 |
msgid "Excluded Users"
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: classes/Views/Settings.php:608
|
876 |
msgid "Excluded Roles"
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: classes/Views/Settings.php:627
|
880 |
+
msgid "Custom Fields"
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: classes/Views/Settings.php:635
|
884 |
msgid "Excluded Custom Fields"
|
885 |
msgstr ""
|
886 |
|
887 |
+
#: classes/Views/Settings.php:654
|
888 |
+
msgid "IP Addresses"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: classes/Views/Settings.php:661
|
892 |
msgid "Excluded IP Addresses"
|
893 |
msgstr ""
|
894 |
|
895 |
+
#: classes/Views/Settings.php:680 defaults.php:106
|
896 |
+
msgid "Custom Post Types"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: classes/Views/Settings.php:683
|
900 |
+
msgid ""
|
901 |
+
"The below list of Custom Post Types are excluded from monitoring. This means "
|
902 |
+
"that all activity related to these Custom Post Types will not be recorded."
|
903 |
+
msgstr ""
|
904 |
+
|
905 |
+
#: classes/Views/Settings.php:686
|
906 |
+
msgid "Exclude Custom Post Type from monitoring"
|
907 |
+
msgstr ""
|
908 |
+
|
909 |
+
#: classes/Views/ToggleAlerts.php:11 classes/Views/ToggleAlerts.php:21
|
910 |
msgid "Enable/Disable Alerts"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: classes/Views/ToggleAlerts.php:111 classes/WidgetManager.php:52
|
914 |
msgid "Description"
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: classes/Views/ToggleAlerts.php:125
|
918 |
msgid "Not Implemented"
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: classes/Views/ToggleAlerts.php:128
|
922 |
msgid "Not Available"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: classes/Views/ToggleAlerts.php:143 classes/Views/ToggleAlerts.php:170
|
926 |
msgid ""
|
927 |
"Capture 404 requests to file (the log file are created in the /wp-content/"
|
928 |
"uploads/wp-security-audit-log/404s/ directory)"
|
929 |
msgstr ""
|
930 |
|
931 |
+
#: classes/Views/ToggleAlerts.php:148 classes/Views/ToggleAlerts.php:175
|
932 |
msgid "Purge log files older than one month"
|
933 |
msgstr ""
|
934 |
|
935 |
+
#: classes/Views/ToggleAlerts.php:153 classes/Views/ToggleAlerts.php:180
|
936 |
+
msgid "Number of 404 Requests to Log"
|
937 |
+
msgstr ""
|
938 |
+
|
939 |
+
#: classes/Views/ToggleAlerts.php:159 classes/Views/ToggleAlerts.php:186
|
940 |
+
msgid ""
|
941 |
+
"By default the plugin keeps up to 99 requests to non-existing pages from the "
|
942 |
+
"same IP address. Increase the value in this setting to the desired amount to "
|
943 |
+
"keep a log of more or less requests."
|
944 |
+
msgstr ""
|
945 |
+
|
946 |
+
#: classes/Views/ToggleAlerts.php:160 classes/Views/ToggleAlerts.php:187
|
947 |
+
msgid ""
|
948 |
+
"Note that by increasing this value to a high number, should your website be "
|
949 |
+
"scanned the plugin will consume more resources to log all the requests."
|
950 |
+
msgstr ""
|
951 |
+
|
952 |
+
#: classes/Views/ToggleAlerts.php:200
|
953 |
msgid "Save Changes"
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: classes/WidgetManager.php:26
|
957 |
msgid "Latest Alerts"
|
958 |
msgstr ""
|
959 |
|
960 |
+
#: classes/WidgetManager.php:46
|
961 |
msgid "No alerts found."
|
962 |
msgstr ""
|
963 |
|
964 |
+
#: defaults.php:36
|
|
|
|
|
|
|
|
|
965 |
msgid "Fatal run-time error."
|
966 |
msgstr ""
|
967 |
|
968 |
+
#: defaults.php:37
|
969 |
msgid "Run-time warning (non-fatal error)."
|
970 |
msgstr ""
|
971 |
|
972 |
+
#: defaults.php:38
|
973 |
msgid "Compile-time parse error."
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: defaults.php:39
|
977 |
msgid "Run-time notice."
|
978 |
msgstr ""
|
979 |
|
980 |
+
#: defaults.php:40
|
981 |
msgid "Fatal error that occurred during startup."
|
982 |
msgstr ""
|
983 |
|
984 |
+
#: defaults.php:41
|
985 |
msgid "Warnings that occurred during startup."
|
986 |
msgstr ""
|
987 |
|
988 |
+
#: defaults.php:42
|
989 |
msgid "Fatal compile-time error."
|
990 |
msgstr ""
|
991 |
|
992 |
+
#: defaults.php:43
|
993 |
msgid "Compile-time warning."
|
994 |
msgstr ""
|
995 |
|
996 |
+
#: defaults.php:44
|
997 |
msgid "User-generated error message."
|
998 |
msgstr ""
|
999 |
|
1000 |
+
#: defaults.php:45
|
1001 |
msgid "User-generated warning message."
|
1002 |
msgstr ""
|
1003 |
|
1004 |
+
#: defaults.php:46
|
1005 |
msgid "User-generated notice message."
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: defaults.php:47
|
1009 |
msgid "Non-standard/optimal code warning."
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
#: defaults.php:48
|
1013 |
msgid "Catchable fatal error."
|
1014 |
msgstr ""
|
1015 |
|
1016 |
+
#: defaults.php:49
|
1017 |
msgid "Run-time deprecation notices."
|
1018 |
msgstr ""
|
1019 |
|
1020 |
+
#: defaults.php:50
|
1021 |
msgid "Run-time user deprecation notices."
|
1022 |
msgstr ""
|
1023 |
|
1024 |
+
#: defaults.php:52
|
1025 |
msgid "Critical, high-impact messages."
|
1026 |
msgstr ""
|
1027 |
|
1028 |
+
#: defaults.php:53
|
1029 |
msgid "Debug informational messages."
|
1030 |
msgstr ""
|
1031 |
|
1032 |
+
#: defaults.php:57
|
1033 |
+
msgid "Content & Comments"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
+
#: defaults.php:58
|
1037 |
+
msgid "Blog Posts"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
+
#: defaults.php:59
|
1041 |
+
msgid "User created a new blog post and saved it as draft"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
+
#: defaults.php:59
|
1045 |
+
msgid ""
|
1046 |
+
"Created a new post called %PostTitle% and saved it as draft. %EditorLinkPost"
|
1047 |
+
"%."
|
1048 |
msgstr ""
|
1049 |
|
1050 |
+
#: defaults.php:60
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1051 |
msgid "User published a blog post"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
+
#: defaults.php:60
|
1055 |
msgid ""
|
1056 |
"Published a post called %PostTitle%. Post URL is %PostUrl%. %EditorLinkPost%."
|
1057 |
msgstr ""
|
1058 |
|
1059 |
+
#: defaults.php:61
|
1060 |
msgid "User modified a published blog post"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
+
#: defaults.php:61
|
1064 |
msgid ""
|
1065 |
"Modified the published post %PostTitle%. Post URL is %PostUrl%. "
|
1066 |
"%EditorLinkPost%."
|
1067 |
msgstr ""
|
1068 |
|
1069 |
+
#: defaults.php:62
|
1070 |
msgid "User modified a draft blog post"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: defaults.php:62
|
1074 |
msgid "Modified the draft post with the %PostTitle%. %EditorLinkPost%."
|
1075 |
msgstr ""
|
1076 |
|
1077 |
+
#: defaults.php:63
|
1078 |
msgid "User permanently deleted a blog post from the trash"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: defaults.php:63
|
1082 |
+
msgid "Permanently deleted the post %PostTitle%."
|
|
|
|
|
1083 |
msgstr ""
|
1084 |
|
1085 |
+
#: defaults.php:64
|
1086 |
msgid "User moved a blog post to the trash"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
+
#: defaults.php:64
|
1090 |
msgid "Moved the post %PostTitle% to trash. Post URL is %PostUrl%."
|
1091 |
msgstr ""
|
1092 |
|
1093 |
+
#: defaults.php:65
|
1094 |
msgid "User restored a blog post from trash"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
+
#: defaults.php:65
|
1098 |
msgid "Post %PostTitle% has been restored from trash. %EditorLinkPost%."
|
1099 |
msgstr ""
|
1100 |
|
1101 |
+
#: defaults.php:66
|
1102 |
msgid "User changed blog post category"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: defaults.php:66
|
1106 |
msgid ""
|
1107 |
"Changed the category of the post %PostTitle% from %OldCategories% to "
|
1108 |
"%NewCategories%. %EditorLinkPost%."
|
1109 |
msgstr ""
|
1110 |
|
1111 |
+
#: defaults.php:67
|
1112 |
msgid "User changed blog post URL"
|
1113 |
msgstr ""
|
1114 |
|
1115 |
+
#: defaults.php:67
|
1116 |
msgid ""
|
1117 |
"Changed the URL of the post %PostTitle% from %OldUrl% to %NewUrl%. "
|
1118 |
"%EditorLinkPost%."
|
1119 |
msgstr ""
|
1120 |
|
1121 |
+
#: defaults.php:68
|
1122 |
msgid "User changed blog post author"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
+
#: defaults.php:68
|
1126 |
msgid ""
|
1127 |
"Changed the author of %PostTitle% post from %OldAuthor% to %NewAuthor%. "
|
1128 |
"%EditorLinkPost%."
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: defaults.php:69
|
1132 |
msgid "User changed blog post status"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
+
#: defaults.php:69
|
1136 |
msgid ""
|
1137 |
"Changed the status of %PostTitle% post from %OldStatus% to %NewStatus%. "
|
1138 |
"%EditorLinkPost%."
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: defaults.php:70
|
1142 |
msgid "User created new category"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
+
#: defaults.php:70
|
1146 |
msgid ""
|
1147 |
"Created a new category called %CategoryName% .Category slug is %Slug%. "
|
1148 |
"%CategoryLink%."
|
1149 |
msgstr ""
|
1150 |
|
1151 |
+
#: defaults.php:71
|
1152 |
msgid "User deleted category"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
+
#: defaults.php:71
|
1156 |
msgid "Deleted the category %CategoryName%. Category slug was %Slug%."
|
1157 |
msgstr ""
|
1158 |
|
1159 |
+
#: defaults.php:72
|
1160 |
msgid "User changed the visibility of a blog post"
|
1161 |
msgstr ""
|
1162 |
|
1163 |
+
#: defaults.php:72
|
1164 |
msgid ""
|
1165 |
"Changed the visibility of the post %PostTitle% from %OldVisibility% to "
|
1166 |
"%NewVisibility%. %EditorLinkPost%."
|
1167 |
msgstr ""
|
1168 |
|
1169 |
+
#: defaults.php:73
|
1170 |
msgid "User changed the date of a blog post"
|
1171 |
msgstr ""
|
1172 |
|
1173 |
+
#: defaults.php:73
|
1174 |
msgid ""
|
1175 |
"Changed the date of the post %PostTitle% from %OldDate% to %NewDate%. "
|
1176 |
"%EditorLinkPost%."
|
1177 |
msgstr ""
|
1178 |
|
1179 |
+
#: defaults.php:74
|
1180 |
msgid "User set a post as sticky"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
+
#: defaults.php:74
|
1184 |
msgid ""
|
1185 |
"Set the post %PostTitle% as Sticky. Post URL is %PostUrl%. %EditorLinkPost%."
|
1186 |
msgstr ""
|
1187 |
|
1188 |
+
#: defaults.php:75
|
1189 |
msgid "User removed post from sticky"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
+
#: defaults.php:75
|
1193 |
msgid "Removed the post %PostTitle% from Sticky. %EditorLinkPost%."
|
1194 |
msgstr ""
|
1195 |
|
1196 |
+
#: defaults.php:76
|
1197 |
msgid "User changed generic tables"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
+
#: defaults.php:76
|
1201 |
msgid ""
|
1202 |
"Changed the parent of the category %CategoryName% from %OldParent% to "
|
1203 |
"%NewParent%. %CategoryLink%."
|
1204 |
msgstr ""
|
1205 |
|
1206 |
+
#: defaults.php:77
|
1207 |
msgid "User created a custom field for a post"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: defaults.php:77
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1211 |
msgid ""
|
1212 |
+
"Created a new custom field %MetaKey% with value %MetaValue% in the post "
|
1213 |
+
"%PostTitle% %EditorLinkPost%.<br>%MetaLink%."
|
|
|
|
|
|
|
|
|
1214 |
msgstr ""
|
1215 |
|
1216 |
+
#: defaults.php:78
|
1217 |
+
msgid "User updated a custom field value for a post"
|
|
|
1218 |
msgstr ""
|
1219 |
|
1220 |
#: defaults.php:78
|
1221 |
+
msgid ""
|
1222 |
+
"Modified the value of the custom field %MetaKey% from %MetaValueOld% to "
|
1223 |
+
"%MetaValueNew% in the post %PostTitle% %EditorLinkPost%.<br>%MetaLink%."
|
1224 |
msgstr ""
|
1225 |
|
1226 |
#: defaults.php:79
|
1227 |
+
msgid "User deleted a custom field from a post"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
#: defaults.php:79
|
1231 |
msgid ""
|
1232 |
+
"Deleted the custom field %MetaKey% with id %MetaID% from the post %PostTitle"
|
1233 |
+
"% %EditorLinkPost%.<br>%MetaLink%."
|
1234 |
msgstr ""
|
1235 |
|
1236 |
#: defaults.php:80
|
1237 |
+
msgid "User updated a custom field name for a post"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
#: defaults.php:80
|
1241 |
msgid ""
|
1242 |
+
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in the post "
|
1243 |
+
"%PostTitle% %EditorLinkPost%.<br>%MetaLink%."
|
1244 |
msgstr ""
|
1245 |
|
1246 |
#: defaults.php:81
|
1247 |
+
msgid "User modified content for a published post"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
#: defaults.php:81
|
1251 |
msgid ""
|
1252 |
+
"Modified the content of the published post %PostTitle%.%RevisionLink% "
|
1253 |
+
"%EditorLinkPost%."
|
1254 |
msgstr ""
|
1255 |
|
1256 |
#: defaults.php:82
|
1257 |
+
msgid "User modified content for a draft post"
|
1258 |
msgstr ""
|
1259 |
|
1260 |
#: defaults.php:82
|
1261 |
msgid ""
|
1262 |
+
"Modified the content of the draft post %PostTitle%.%RevisionLink% "
|
1263 |
+
"%EditorLinkPost%."
|
1264 |
msgstr ""
|
1265 |
|
1266 |
#: defaults.php:83
|
1267 |
+
msgid "User modified content of a post"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
#: defaults.php:83
|
1271 |
msgid ""
|
1272 |
+
"Modified the content of post %PostTitle% which is submitted for review."
|
1273 |
+
"%RevisionLink% %EditorLinkPost%."
|
1274 |
msgstr ""
|
1275 |
|
1276 |
#: defaults.php:84
|
1277 |
+
msgid "User submitted a post for review"
|
1278 |
msgstr ""
|
1279 |
|
1280 |
#: defaults.php:84
|
1281 |
+
msgid "Submitted the post %PostTitle% for review. %EditorLinkPost%."
|
1282 |
msgstr ""
|
1283 |
|
1284 |
#: defaults.php:85
|
1285 |
+
msgid "User scheduled a post"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
#: defaults.php:85
|
1289 |
+
msgid ""
|
1290 |
+
"Scheduled the post %PostTitle% to be published %PublishingDate%. "
|
1291 |
+
"%EditorLinkPost%."
|
1292 |
msgstr ""
|
1293 |
|
1294 |
#: defaults.php:86
|
1295 |
+
msgid "User changed title of a post"
|
1296 |
msgstr ""
|
1297 |
|
1298 |
#: defaults.php:86
|
1299 |
msgid ""
|
1300 |
+
"Changed the title of the post %OldTitle% to %NewTitle%. %EditorLinkPost%."
|
|
|
1301 |
msgstr ""
|
1302 |
|
1303 |
#: defaults.php:87
|
1304 |
+
msgid "User opened a post in the editor"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
#: defaults.php:87
|
1308 |
msgid ""
|
1309 |
+
"Opened the post %PostTitle% in the editor. View the post: %EditorLinkPost%."
|
|
|
1310 |
msgstr ""
|
1311 |
|
1312 |
#: defaults.php:88
|
1313 |
+
msgid "User viewed a post"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
#: defaults.php:88
|
1317 |
+
msgid "Viewed the post %PostTitle%. View the post: %PostUrl%."
|
|
|
|
|
1318 |
msgstr ""
|
1319 |
|
1320 |
#: defaults.php:89
|
1321 |
+
msgid "User disabled Comments/Trackbacks and Pingbacks on a published post"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
#: defaults.php:89
|
1325 |
msgid ""
|
1326 |
+
"Disabled %Type% on the published post %PostTitle%. View the post: %PostUrl%."
|
|
|
1327 |
msgstr ""
|
1328 |
|
1329 |
#: defaults.php:90
|
1330 |
+
msgid "User enabled Comments/Trackbacks and Pingbacks on a published post"
|
1331 |
msgstr ""
|
1332 |
|
1333 |
#: defaults.php:90
|
1334 |
msgid ""
|
1335 |
+
"Enabled %Type% on the published post %PostTitle%. View the post: %PostUrl%."
|
|
|
1336 |
msgstr ""
|
1337 |
|
1338 |
#: defaults.php:91
|
1339 |
+
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft post"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
#: defaults.php:91
|
1343 |
msgid ""
|
1344 |
+
"Disabled %Type% on the draft post %PostTitle%. View the post: %PostUrl%."
|
|
|
1345 |
msgstr ""
|
1346 |
|
1347 |
#: defaults.php:92
|
1348 |
+
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft post"
|
1349 |
msgstr ""
|
1350 |
|
1351 |
#: defaults.php:92
|
1352 |
+
msgid "Enabled %Type% on the draft post %PostTitle%. View the post: %PostUrl%."
|
|
|
|
|
1353 |
msgstr ""
|
1354 |
|
1355 |
+
#: defaults.php:94
|
1356 |
+
msgid "Comments"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
+
#: defaults.php:95
|
1360 |
+
msgid "User approved a comment"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
#: defaults.php:95
|
1364 |
+
msgid ""
|
1365 |
+
"Approved the comment posted in response to the post %PostTitle% by %Author% "
|
1366 |
+
"on %CommentLink%."
|
1367 |
msgstr ""
|
1368 |
|
1369 |
#: defaults.php:96
|
1370 |
+
msgid "User unapproved a comment"
|
1371 |
+
msgstr ""
|
1372 |
+
|
1373 |
+
#: defaults.php:96
|
1374 |
+
msgid ""
|
1375 |
+
"Unapproved the comment posted in response to the post %PostTitle% by %Author"
|
1376 |
+
"% on %CommentLink%."
|
1377 |
msgstr ""
|
1378 |
|
1379 |
#: defaults.php:97
|
1380 |
+
msgid "User replied to a comment"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
+
#: defaults.php:97
|
1384 |
+
msgid ""
|
1385 |
+
"Replied to the comment posted in response to the post %PostTitle% by %Author"
|
1386 |
+
"% on %CommentLink%."
|
1387 |
+
msgstr ""
|
1388 |
+
|
1389 |
+
#: defaults.php:98
|
1390 |
+
msgid "User edited a comment"
|
1391 |
+
msgstr ""
|
1392 |
+
|
1393 |
+
#: defaults.php:98
|
1394 |
+
msgid ""
|
1395 |
+
"Edited a comment posted in response to the post %PostTitle% by %Author% on "
|
1396 |
+
"%CommentLink%."
|
1397 |
msgstr ""
|
1398 |
|
1399 |
#: defaults.php:99
|
1400 |
+
msgid "User marked a comment as Spam"
|
1401 |
+
msgstr ""
|
1402 |
+
|
1403 |
+
#: defaults.php:99
|
1404 |
+
msgid ""
|
1405 |
+
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
1406 |
+
"%CommentLink% as Spam."
|
1407 |
msgstr ""
|
1408 |
|
1409 |
#: defaults.php:100
|
1410 |
+
msgid "User marked a comment as Not Spam"
|
1411 |
+
msgstr ""
|
1412 |
+
|
1413 |
+
#: defaults.php:100
|
1414 |
+
msgid ""
|
1415 |
+
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
1416 |
+
"%CommentLink% as Not Spam."
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: defaults.php:101
|
1420 |
+
msgid "User moved a comment to trash"
|
1421 |
+
msgstr ""
|
1422 |
+
|
1423 |
+
#: defaults.php:101
|
1424 |
+
msgid ""
|
1425 |
+
"Moved the comment posted in response to the post %PostTitle% by %Author% on "
|
1426 |
+
"%Date% to trash."
|
1427 |
+
msgstr ""
|
1428 |
+
|
1429 |
+
#: defaults.php:102
|
1430 |
+
msgid "User restored a comment from the trash"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
#: defaults.php:102
|
1434 |
+
msgid ""
|
1435 |
+
"Restored the comment posted in response to the post %PostTitle% by %Author% "
|
1436 |
+
"on %CommentLink% from the trash."
|
1437 |
msgstr ""
|
1438 |
|
1439 |
#: defaults.php:103
|
1440 |
+
msgid "User permanently deleted a comment"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
#: defaults.php:103
|
1444 |
msgid ""
|
1445 |
+
"Permanently deleted the comment posted in response to the post %PostTitle% "
|
1446 |
+
"by %Author% on %Date%."
|
1447 |
+
msgstr ""
|
1448 |
+
|
1449 |
+
#: defaults.php:104
|
1450 |
+
msgid "User posted a comment"
|
1451 |
+
msgstr ""
|
1452 |
+
|
1453 |
+
#: defaults.php:104
|
1454 |
+
msgid "%CommentMsg% on %CommentLink%."
|
1455 |
+
msgstr ""
|
1456 |
+
|
1457 |
+
#: defaults.php:107
|
1458 |
+
msgid "User created a new post with custom post type and saved it as draft"
|
1459 |
+
msgstr ""
|
1460 |
+
|
1461 |
+
#: defaults.php:107
|
1462 |
+
msgid ""
|
1463 |
"Created a new custom post called %PostTitle% of type %PostType%. "
|
1464 |
"%EditorLinkPost%."
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
#: defaults.php:108
|
1468 |
msgid "User published a post with custom post type"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
+
#: defaults.php:108
|
1472 |
msgid ""
|
1473 |
"Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl"
|
1474 |
"%. %EditorLinkPost%."
|
1475 |
msgstr ""
|
1476 |
|
1477 |
+
#: defaults.php:109
|
1478 |
msgid "User modified a post with custom post type"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
+
#: defaults.php:109
|
1482 |
msgid ""
|
1483 |
"Modified the custom post %PostTitle% of type %PostType%. Post URL is %PostUrl"
|
1484 |
"%. %EditorLinkPost%."
|
1485 |
msgstr ""
|
1486 |
|
1487 |
+
#: defaults.php:110
|
1488 |
msgid "User modified a draft post with custom post type"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
+
#: defaults.php:110
|
1492 |
msgid ""
|
1493 |
"Modified the draft custom post %PostTitle% of type is %PostType%. "
|
1494 |
"%EditorLinkPost%."
|
1495 |
msgstr ""
|
1496 |
|
1497 |
+
#: defaults.php:111
|
1498 |
msgid "User permanently deleted post with custom post type"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
+
#: defaults.php:111
|
1502 |
+
msgid "Permanently Deleted the custom post %PostTitle% of type %PostType%."
|
|
|
|
|
1503 |
msgstr ""
|
1504 |
|
1505 |
+
#: defaults.php:112
|
1506 |
msgid "User moved post with custom post type to trash"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
+
#: defaults.php:112
|
1510 |
msgid ""
|
1511 |
"Moved the custom post %PostTitle% of type %PostType% to trash. Post URL was "
|
1512 |
"%PostUrl%."
|
1513 |
msgstr ""
|
1514 |
|
1515 |
+
#: defaults.php:113
|
1516 |
msgid "User restored post with custom post type from trash"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
+
#: defaults.php:113
|
1520 |
msgid ""
|
1521 |
"The custom post %PostTitle% of type %PostType% has been restored from trash. "
|
1522 |
"%EditorLinkPost%."
|
1523 |
msgstr ""
|
1524 |
|
1525 |
+
#: defaults.php:114
|
1526 |
msgid "User changed the category of a post with custom post type"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: defaults.php:114
|
1530 |
msgid ""
|
1531 |
"Changed the category(ies) of the custom post %PostTitle% of type %PostType% "
|
1532 |
"from %OldCategories% to %NewCategories%. %EditorLinkPost%."
|
1533 |
msgstr ""
|
1534 |
|
1535 |
+
#: defaults.php:115
|
1536 |
msgid "User changed the URL of a post with custom post type"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
+
#: defaults.php:115
|
1540 |
msgid ""
|
1541 |
"Changed the URL of the custom post %PostTitle% of type %PostType% from "
|
1542 |
"%OldUrl% to %NewUrl%. %EditorLinkPost%."
|
1543 |
msgstr ""
|
1544 |
|
1545 |
+
#: defaults.php:116
|
1546 |
msgid "User changed the author or post with custom post type"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
+
#: defaults.php:116
|
1550 |
msgid ""
|
1551 |
"Changed the author of custom post %PostTitle% of type %PostType% from "
|
1552 |
"%OldAuthor% to %NewAuthor%. %EditorLinkPost%."
|
1553 |
msgstr ""
|
1554 |
|
1555 |
+
#: defaults.php:117
|
1556 |
msgid "User changed the status of post with custom post type"
|
1557 |
msgstr ""
|
1558 |
|
1559 |
+
#: defaults.php:117
|
1560 |
msgid ""
|
1561 |
"Changed the status of custom post %PostTitle% of type %PostType% from "
|
1562 |
"%OldStatus% to %NewStatus%. %EditorLinkPost%."
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: defaults.php:118
|
1566 |
msgid "User changed the visibility of a post with custom post type"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: defaults.php:118
|
1570 |
msgid ""
|
1571 |
"Changed the visibility of the custom post %PostTitle% of type %PostType% "
|
1572 |
"from %OldVisibility% to %NewVisibility%. %EditorLinkPost%."
|
1573 |
msgstr ""
|
1574 |
|
1575 |
+
#: defaults.php:119
|
1576 |
msgid "User changed the date of post with custom post type"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
+
#: defaults.php:119
|
1580 |
msgid ""
|
1581 |
"Changed the date of the custom post %PostTitle% of type %PostType% from "
|
1582 |
"%OldDate% to %NewDate%. %EditorLinkPost%."
|
1583 |
msgstr ""
|
1584 |
|
1585 |
+
#: defaults.php:120
|
1586 |
msgid "User created a custom field for a custom post type"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
+
#: defaults.php:120
|
1590 |
+
msgid ""
|
1591 |
+
"Created a new custom field %MetaKey% with value %MetaValue% in custom post "
|
1592 |
+
"%PostTitle% of type %PostType%. %EditorLinkPost%.<br>%MetaLink%."
|
|
|
|
|
|
|
|
|
|
|
|
|
1593 |
msgstr ""
|
1594 |
|
1595 |
+
#: defaults.php:121
|
1596 |
+
msgid "User updated a custom field for a custom post type"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
#: defaults.php:121
|
1600 |
+
msgid ""
|
1601 |
+
"Modified the value of the custom field %MetaKey% from %MetaValueOld% to "
|
1602 |
+
"%MetaValueNew% in custom post %PostTitle% of type %PostType% %EditorLinkPost"
|
1603 |
+
"%.<br>%MetaLink%."
|
1604 |
msgstr ""
|
1605 |
|
1606 |
#: defaults.php:122
|
1607 |
+
msgid "User deleted a custom field from a custom post type"
|
1608 |
msgstr ""
|
1609 |
|
1610 |
#: defaults.php:122
|
1611 |
msgid ""
|
1612 |
+
"Deleted the custom field %MetaKey% with id %MetaID% from custom post "
|
1613 |
+
"%PostTitle% of type %PostType% %EditorLinkPost%.<br>%MetaLink%."
|
1614 |
msgstr ""
|
1615 |
|
1616 |
#: defaults.php:123
|
1617 |
+
msgid "User updated a custom field name for a custom post type"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
#: defaults.php:123
|
1621 |
msgid ""
|
1622 |
+
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in custom "
|
1623 |
+
"post %PostTitle% of type %PostType% %EditorLinkPost%.<br>%MetaLink%."
|
1624 |
+
msgstr ""
|
1625 |
+
|
1626 |
+
#: defaults.php:124
|
1627 |
+
msgid "User modified content for a published custom post type"
|
1628 |
+
msgstr ""
|
1629 |
+
|
1630 |
+
#: defaults.php:124
|
1631 |
+
msgid ""
|
1632 |
+
"Modified the content of the published custom post type %PostTitle%. Post URL "
|
1633 |
+
"is %PostUrl%.%EditorLinkPost%."
|
1634 |
msgstr ""
|
1635 |
|
1636 |
#: defaults.php:125
|
1637 |
+
msgid "User modified content for a draft custom post type"
|
1638 |
+
msgstr ""
|
1639 |
+
|
1640 |
+
#: defaults.php:125
|
1641 |
+
msgid ""
|
1642 |
+
"Modified the content of the draft custom post type %PostTitle%."
|
1643 |
+
"%EditorLinkPost%."
|
1644 |
msgstr ""
|
1645 |
|
1646 |
#: defaults.php:126
|
1647 |
+
msgid "User scheduled a custom post type"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
#: defaults.php:126
|
1651 |
+
msgid ""
|
1652 |
+
"Scheduled the custom post type %PostTitle% to be published %PublishingDate%. "
|
1653 |
+
"%EditorLinkPost%."
|
1654 |
msgstr ""
|
1655 |
|
1656 |
#: defaults.php:127
|
1657 |
+
msgid "User changed title of a custom post type"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
#: defaults.php:127
|
1661 |
+
msgid ""
|
1662 |
+
"Changed the title of the custom post %OldTitle% to %NewTitle%. "
|
1663 |
+
"%EditorLinkPost%."
|
1664 |
msgstr ""
|
1665 |
|
1666 |
#: defaults.php:128
|
1667 |
+
msgid "User opened a custom post type in the editor"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
#: defaults.php:128
|
1671 |
+
msgid ""
|
1672 |
+
"Opened the custom post %PostTitle% of type %PostType% in the editor. View "
|
1673 |
+
"the post: %EditorLinkPost%."
|
1674 |
msgstr ""
|
1675 |
|
1676 |
#: defaults.php:129
|
1677 |
+
msgid "User viewed a custom post type"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
#: defaults.php:129
|
1681 |
+
msgid ""
|
1682 |
+
"Viewed the custom post %PostTitle% of type %PostType%. View the post: "
|
1683 |
+
"%PostUrl%."
|
1684 |
msgstr ""
|
1685 |
|
1686 |
+
#: defaults.php:131
|
1687 |
+
msgid "Pages"
|
1688 |
msgstr ""
|
1689 |
|
1690 |
+
#: defaults.php:132
|
1691 |
+
msgid "User created a new WordPress page and saved it as draft"
|
1692 |
msgstr ""
|
1693 |
|
1694 |
#: defaults.php:132
|
1695 |
+
msgid ""
|
1696 |
+
"Created a new page called %PostTitle% and saved it as draft. %EditorLinkPage"
|
1697 |
+
"%."
|
1698 |
msgstr ""
|
1699 |
|
1700 |
#: defaults.php:133
|
1701 |
+
msgid "User published a WordPress page"
|
1702 |
msgstr ""
|
1703 |
|
1704 |
#: defaults.php:133
|
1705 |
msgid ""
|
1706 |
+
"Published a page called %PostTitle%. Page URL is %PostUrl%. %EditorLinkPage%."
|
|
|
1707 |
msgstr ""
|
1708 |
|
1709 |
#: defaults.php:134
|
1710 |
+
msgid "User modified a published WordPress page"
|
1711 |
msgstr ""
|
1712 |
|
1713 |
#: defaults.php:134
|
1714 |
msgid ""
|
1715 |
+
"Modified the published page %PostTitle%. Page URL is %PostUrl%. "
|
1716 |
+
"%EditorLinkPage%."
|
1717 |
msgstr ""
|
1718 |
|
1719 |
#: defaults.php:135
|
1720 |
+
msgid "User modified a draft WordPress page"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
#: defaults.php:135
|
1724 |
msgid ""
|
1725 |
+
"Modified the draft page %PostTitle%. Page ID is %PostID%. %EditorLinkPage%."
|
1726 |
msgstr ""
|
1727 |
|
1728 |
#: defaults.php:136
|
1729 |
+
msgid "User permanently deleted a page from the trash"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
#: defaults.php:136
|
1733 |
+
msgid "Permanently deleted the page %PostTitle%."
|
1734 |
msgstr ""
|
1735 |
|
1736 |
#: defaults.php:137
|
1737 |
+
msgid "User moved WordPress page to the trash"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
#: defaults.php:137
|
1741 |
+
msgid "Moved the page %PostTitle% to trash. Page URL was %PostUrl%."
|
|
|
|
|
1742 |
msgstr ""
|
1743 |
|
1744 |
#: defaults.php:138
|
1745 |
+
msgid "User restored a WordPress page from trash"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
#: defaults.php:138
|
1749 |
+
msgid "Page %PostTitle% has been restored from trash. %EditorLinkPage%."
|
1750 |
msgstr ""
|
1751 |
|
1752 |
#: defaults.php:139
|
1753 |
+
msgid "User changed page URL"
|
1754 |
msgstr ""
|
1755 |
|
1756 |
#: defaults.php:139
|
1757 |
msgid ""
|
1758 |
+
"Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%. "
|
1759 |
+
"%EditorLinkPage%."
|
1760 |
msgstr ""
|
1761 |
|
1762 |
#: defaults.php:140
|
1763 |
+
msgid "User changed page author"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
#: defaults.php:140
|
1767 |
msgid ""
|
1768 |
+
"Changed the author of the page %PostTitle% from %OldAuthor% to %NewAuthor%. "
|
1769 |
+
"%EditorLinkPage%."
|
1770 |
+
msgstr ""
|
1771 |
+
|
1772 |
+
#: defaults.php:141
|
1773 |
+
msgid "User changed page status"
|
1774 |
+
msgstr ""
|
1775 |
+
|
1776 |
+
#: defaults.php:141
|
1777 |
+
msgid ""
|
1778 |
+
"Changed the status of the page %PostTitle% from %OldStatus% to %NewStatus%. "
|
1779 |
+
"%EditorLinkPage%."
|
1780 |
msgstr ""
|
1781 |
|
1782 |
#: defaults.php:142
|
1783 |
+
msgid "User changed the visibility of a page post"
|
1784 |
+
msgstr ""
|
1785 |
+
|
1786 |
+
#: defaults.php:142
|
1787 |
+
msgid ""
|
1788 |
+
"Changed the visibility of the page %PostTitle% from %OldVisibility% to "
|
1789 |
+
"%NewVisibility%. %EditorLinkPage%."
|
1790 |
msgstr ""
|
1791 |
|
1792 |
#: defaults.php:143
|
1793 |
+
msgid "User changed the date of a page post"
|
1794 |
msgstr ""
|
1795 |
|
1796 |
#: defaults.php:143
|
1797 |
+
msgid ""
|
1798 |
+
"Changed the date of the page %PostTitle% from %OldDate% to %NewDate%. "
|
1799 |
+
"%EditorLinkPage%."
|
1800 |
msgstr ""
|
1801 |
|
1802 |
#: defaults.php:144
|
1803 |
+
msgid "User changed the parent of a page"
|
1804 |
msgstr ""
|
1805 |
|
1806 |
#: defaults.php:144
|
1807 |
+
msgid ""
|
1808 |
+
"Changed the parent of the page %PostTitle% from %OldParentName% to "
|
1809 |
+
"%NewParentName%. %EditorLinkPage%."
|
1810 |
msgstr ""
|
1811 |
|
1812 |
#: defaults.php:145
|
1813 |
+
msgid "User changed the template of a page"
|
1814 |
msgstr ""
|
1815 |
|
1816 |
#: defaults.php:145
|
1817 |
+
msgid ""
|
1818 |
+
"Changed the template of the page %PostTitle% from %OldTemplate% to "
|
1819 |
+
"%NewTemplate%. %EditorLinkPage%."
|
1820 |
msgstr ""
|
1821 |
|
1822 |
#: defaults.php:146
|
1823 |
+
msgid "User created a custom field for a page"
|
1824 |
msgstr ""
|
1825 |
|
1826 |
#: defaults.php:146
|
1827 |
msgid ""
|
1828 |
+
"Created a new custom field called %MetaKey% with value %MetaValue% in the "
|
1829 |
+
"page %PostTitle% %EditorLinkPage%.<br>%MetaLink%."
|
1830 |
msgstr ""
|
1831 |
|
1832 |
#: defaults.php:147
|
1833 |
+
msgid "User updated a custom field value for a page"
|
1834 |
msgstr ""
|
1835 |
|
1836 |
#: defaults.php:147
|
1837 |
+
msgid ""
|
1838 |
+
"Modified the value of the custom field %MetaKey% from %MetaValueOld% to "
|
1839 |
+
"%MetaValueNew% in the page %PostTitle% %EditorLinkPage%.<br>%MetaLink%."
|
1840 |
msgstr ""
|
1841 |
|
1842 |
#: defaults.php:148
|
1843 |
+
msgid "User deleted a custom field from a page"
|
1844 |
msgstr ""
|
1845 |
|
1846 |
#: defaults.php:148
|
1847 |
msgid ""
|
1848 |
+
"Deleted the custom field %MetaKey% with id %MetaID% from page %PostTitle% "
|
1849 |
+
"%EditorLinkPage%.<br>%MetaLink%."
|
1850 |
msgstr ""
|
1851 |
|
1852 |
#: defaults.php:149
|
1853 |
+
msgid "User updated a custom field name for a page"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
#: defaults.php:149
|
1857 |
msgid ""
|
1858 |
+
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in the page "
|
1859 |
+
"%PostTitle% %EditorLinkPage%.<br>%MetaLink%."
|
1860 |
msgstr ""
|
1861 |
|
1862 |
#: defaults.php:150
|
1863 |
+
msgid "User modified content for a published page"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
#: defaults.php:150
|
1867 |
msgid ""
|
1868 |
+
"Modified the content of the published page %PostTitle%. Page URL is %PostUrl"
|
1869 |
+
"%.%RevisionLink% %EditorLinkPage%."
|
1870 |
msgstr ""
|
1871 |
|
1872 |
#: defaults.php:151
|
1873 |
+
msgid "User modified content for a draft page"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
#: defaults.php:151
|
1877 |
+
msgid ""
|
1878 |
+
"Modified the content of draft page %PostTitle%.%RevisionLink% %EditorLinkPage"
|
1879 |
+
"%."
|
1880 |
msgstr ""
|
1881 |
|
1882 |
#: defaults.php:152
|
1883 |
+
msgid "User scheduled a page"
|
1884 |
msgstr ""
|
1885 |
|
1886 |
#: defaults.php:152
|
1887 |
+
msgid ""
|
1888 |
+
"Scheduled the page %PostTitle% to be published %PublishingDate%. "
|
1889 |
+
"%EditorLinkPage%."
|
1890 |
msgstr ""
|
1891 |
|
1892 |
#: defaults.php:153
|
1893 |
+
msgid "User changed title of a page"
|
1894 |
msgstr ""
|
1895 |
|
1896 |
#: defaults.php:153
|
1897 |
+
msgid ""
|
1898 |
+
"Changed the title of the page %OldTitle% to %NewTitle%. %EditorLinkPage%."
|
1899 |
msgstr ""
|
1900 |
|
1901 |
#: defaults.php:154
|
1902 |
+
msgid "User opened a page in the editor"
|
1903 |
msgstr ""
|
1904 |
|
1905 |
#: defaults.php:154
|
1906 |
+
msgid ""
|
1907 |
+
"Opened the page %PostTitle% in the editor. View the page: %EditorLinkPage%."
|
1908 |
msgstr ""
|
1909 |
|
1910 |
#: defaults.php:155
|
1911 |
+
msgid "User viewed a page"
|
1912 |
msgstr ""
|
1913 |
|
1914 |
#: defaults.php:155
|
1915 |
+
msgid "Viewed the page %PostTitle%. View the page: %PostUrl%."
|
1916 |
msgstr ""
|
1917 |
|
1918 |
#: defaults.php:156
|
1919 |
+
msgid "User disabled Comments/Trackbacks and Pingbacks on a published page"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
#: defaults.php:156
|
1923 |
+
msgid ""
|
1924 |
+
"Disabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
1925 |
msgstr ""
|
1926 |
|
1927 |
#: defaults.php:157
|
1928 |
+
msgid "User enabled Comments/Trackbacks and Pingbacks on a published page"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
#: defaults.php:157
|
1932 |
msgid ""
|
1933 |
+
"Enabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
|
|
1934 |
msgstr ""
|
1935 |
|
1936 |
#: defaults.php:158
|
1937 |
+
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft page"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
#: defaults.php:158
|
1941 |
+
msgid ""
|
1942 |
+
"Disabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
1943 |
msgstr ""
|
1944 |
|
1945 |
#: defaults.php:159
|
1946 |
+
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft page"
|
1947 |
msgstr ""
|
1948 |
|
1949 |
#: defaults.php:159
|
1950 |
+
msgid "Enabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1951 |
msgstr ""
|
1952 |
|
1953 |
#: defaults.php:162
|
1954 |
+
msgid "WordPress & Multisite Management"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
#: defaults.php:163
|
1958 |
+
msgid "Database"
|
1959 |
msgstr ""
|
1960 |
|
1961 |
+
#: defaults.php:164
|
1962 |
+
msgid "Plugin created tables"
|
|
|
1963 |
msgstr ""
|
1964 |
|
1965 |
#: defaults.php:164
|
1966 |
+
msgid ""
|
1967 |
+
"Plugin %Plugin->Name% created these tables in the database: %TableNames%."
|
1968 |
msgstr ""
|
1969 |
|
1970 |
#: defaults.php:165
|
1971 |
+
msgid "Plugin modified tables structure"
|
1972 |
+
msgstr ""
|
1973 |
+
|
1974 |
+
#: defaults.php:165
|
1975 |
+
msgid ""
|
1976 |
+
"Plugin %Plugin->Name% modified the structure of these database tables: "
|
1977 |
+
"%TableNames%."
|
1978 |
msgstr ""
|
1979 |
|
1980 |
#: defaults.php:166
|
1981 |
+
msgid "Plugin deleted tables"
|
1982 |
+
msgstr ""
|
1983 |
+
|
1984 |
+
#: defaults.php:166
|
1985 |
+
msgid ""
|
1986 |
+
"Plugin %Plugin->Name% deleted the following tables from the database: "
|
1987 |
+
"%TableNames%."
|
1988 |
msgstr ""
|
1989 |
|
1990 |
#: defaults.php:167
|
1991 |
+
msgid "Theme created tables"
|
1992 |
+
msgstr ""
|
1993 |
+
|
1994 |
+
#: defaults.php:167
|
1995 |
+
msgid "Theme %Theme->Name% created these tables in the database: %TableNames%."
|
1996 |
msgstr ""
|
1997 |
|
1998 |
#: defaults.php:168
|
1999 |
+
msgid "Theme modified tables structure"
|
2000 |
msgstr ""
|
2001 |
|
2002 |
#: defaults.php:168
|
2003 |
+
msgid ""
|
2004 |
+
"Theme %Theme->Name% modified the structure of these database tables: "
|
2005 |
+
"%TableNames%."
|
2006 |
msgstr ""
|
2007 |
|
2008 |
#: defaults.php:169
|
2009 |
+
msgid "Theme deleted tables"
|
2010 |
msgstr ""
|
2011 |
|
2012 |
#: defaults.php:169
|
2013 |
+
msgid ""
|
2014 |
+
"Theme %Theme->Name% deleted the following tables from the database: "
|
2015 |
+
"%TableNames%."
|
2016 |
msgstr ""
|
2017 |
|
2018 |
#: defaults.php:170
|
2019 |
+
msgid "Unknown component created tables"
|
2020 |
msgstr ""
|
2021 |
|
2022 |
#: defaults.php:170
|
2023 |
+
msgid ""
|
2024 |
+
"An unknown component created these tables in the database: %TableNames%."
|
2025 |
msgstr ""
|
2026 |
|
2027 |
#: defaults.php:171
|
2028 |
+
msgid "Unknown component modified tables structure"
|
2029 |
msgstr ""
|
2030 |
|
2031 |
#: defaults.php:171
|
2032 |
msgid ""
|
2033 |
+
"An unknown component modified the structure of these database tables: "
|
2034 |
+
"%TableNames%."
|
2035 |
msgstr ""
|
2036 |
|
2037 |
#: defaults.php:172
|
2038 |
+
msgid "Unknown component deleted tables"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
#: defaults.php:172
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2042 |
msgid ""
|
2043 |
+
"An unknown component deleted the following tables from the database: "
|
2044 |
+
"%TableNames%."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2045 |
msgstr ""
|
2046 |
|
2047 |
+
#: defaults.php:174
|
2048 |
msgid "MultiSite"
|
2049 |
msgstr ""
|
2050 |
|
2051 |
+
#: defaults.php:175
|
2052 |
msgid "User granted Super Admin privileges"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
+
#: defaults.php:175
|
2056 |
msgid "Granted Super Admin privileges to %TargetUsername%."
|
2057 |
msgstr ""
|
2058 |
|
2059 |
+
#: defaults.php:176
|
2060 |
msgid "User revoked from Super Admin privileges"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
+
#: defaults.php:176
|
2064 |
msgid "Revoked Super Admin privileges from %TargetUsername%."
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: defaults.php:177
|
2068 |
msgid "Existing user added to a site"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: defaults.php:177
|
2072 |
msgid ""
|
2073 |
"Added the existing user %TargetUsername% with %TargetUserRole% role to site "
|
2074 |
"%SiteName%."
|
2075 |
msgstr ""
|
2076 |
|
2077 |
+
#: defaults.php:178
|
2078 |
msgid "User removed from site"
|
2079 |
msgstr ""
|
2080 |
|
2081 |
+
#: defaults.php:178
|
2082 |
msgid ""
|
2083 |
"Removed the user %TargetUsername% with role %TargetUserRole% from %SiteName% "
|
2084 |
"site."
|
2085 |
msgstr ""
|
2086 |
|
2087 |
+
#: defaults.php:179
|
2088 |
msgid "New network user created"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
+
#: defaults.php:179
|
2092 |
msgid "Created a new network user %NewUserData->Username%."
|
2093 |
msgstr ""
|
2094 |
|
2095 |
+
#: defaults.php:180
|
2096 |
msgid "The forum role of a user was changed by another WordPress user"
|
2097 |
msgstr ""
|
2098 |
|
2099 |
+
#: defaults.php:180
|
2100 |
msgid ""
|
2101 |
"Change the forum role of the user %TargetUsername% from %OldRole% to %NewRole"
|
2102 |
"% by %UserChanger%."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: defaults.php:181
|
2106 |
msgid "New site added on the network"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
+
#: defaults.php:181
|
2110 |
msgid "Added the site %SiteName% to the network."
|
2111 |
msgstr ""
|
2112 |
|
2113 |
+
#: defaults.php:182
|
2114 |
msgid "Existing site archived"
|
2115 |
msgstr ""
|
2116 |
|
2117 |
+
#: defaults.php:182
|
2118 |
msgid "Archived the site %SiteName%."
|
2119 |
msgstr ""
|
2120 |
|
2121 |
+
#: defaults.php:183
|
2122 |
msgid "Archived site has been unarchived"
|
2123 |
msgstr ""
|
2124 |
|
2125 |
+
#: defaults.php:183
|
2126 |
msgid "Unarchived the site %SiteName%."
|
2127 |
msgstr ""
|
2128 |
|
2129 |
+
#: defaults.php:184
|
2130 |
msgid "Deactivated site has been activated"
|
2131 |
msgstr ""
|
2132 |
|
2133 |
+
#: defaults.php:184
|
2134 |
msgid "Activated the site %SiteName%."
|
2135 |
msgstr ""
|
2136 |
|
2137 |
+
#: defaults.php:185
|
2138 |
msgid "Site has been deactivated"
|
2139 |
msgstr ""
|
2140 |
|
2141 |
+
#: defaults.php:185
|
2142 |
msgid "Deactivated the site %SiteName%."
|
2143 |
msgstr ""
|
2144 |
|
2145 |
+
#: defaults.php:186
|
2146 |
msgid "Existing site deleted from network"
|
2147 |
msgstr ""
|
2148 |
|
2149 |
+
#: defaults.php:186
|
2150 |
msgid "Deleted the site %SiteName%."
|
2151 |
msgstr ""
|
2152 |
|
2153 |
+
#: defaults.php:187
|
2154 |
msgid "Activated theme on network"
|
2155 |
msgstr ""
|
2156 |
|
2157 |
+
#: defaults.php:187
|
2158 |
msgid ""
|
2159 |
"Network activated the theme %Theme->Name% installed in %Theme-"
|
2160 |
">get_template_directory%."
|
2161 |
msgstr ""
|
2162 |
|
2163 |
+
#: defaults.php:188
|
2164 |
msgid "Deactivated theme from network"
|
2165 |
msgstr ""
|
2166 |
|
2167 |
+
#: defaults.php:188
|
2168 |
msgid ""
|
2169 |
"Network deactivated the theme %Theme->Name% installed in %Theme-"
|
2170 |
">get_template_directory%."
|
2171 |
msgstr ""
|
2172 |
|
2173 |
+
#: defaults.php:190
|
2174 |
+
msgid "Plugins & Themes"
|
2175 |
+
msgstr ""
|
2176 |
+
|
2177 |
+
#: defaults.php:191
|
2178 |
+
msgid "User installed a plugin"
|
2179 |
+
msgstr ""
|
2180 |
+
|
2181 |
+
#: defaults.php:191
|
2182 |
+
msgid "Installed the plugin %Plugin->Name% in %Plugin->plugin_dir_path%."
|
2183 |
+
msgstr ""
|
2184 |
+
|
2185 |
+
#: defaults.php:192
|
2186 |
+
msgid "User activated a WordPress plugin"
|
2187 |
+
msgstr ""
|
2188 |
+
|
2189 |
+
#: defaults.php:192
|
2190 |
+
msgid "Activated the plugin %PluginData->Name% installed in %PluginFile%."
|
2191 |
+
msgstr ""
|
2192 |
+
|
2193 |
#: defaults.php:193
|
2194 |
+
msgid "User deactivated a WordPress plugin"
|
2195 |
+
msgstr ""
|
2196 |
+
|
2197 |
+
#: defaults.php:193
|
2198 |
+
msgid "Deactivated the plugin %PluginData->Name% installed in %PluginFile%."
|
2199 |
msgstr ""
|
2200 |
|
2201 |
#: defaults.php:194
|
2202 |
+
msgid "User uninstalled a plugin"
|
2203 |
msgstr ""
|
2204 |
|
2205 |
#: defaults.php:194
|
2206 |
msgid ""
|
2207 |
+
"Uninstalled the plugin %PluginData->Name% which was installed in %PluginFile"
|
2208 |
+
"%."
|
2209 |
msgstr ""
|
2210 |
|
2211 |
#: defaults.php:195
|
2212 |
+
msgid "User upgraded a plugin"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
#: defaults.php:195
|
2216 |
+
msgid "Upgraded the plugin %PluginData->Name% installed in %PluginFile%."
|
|
|
|
|
2217 |
msgstr ""
|
2218 |
|
2219 |
#: defaults.php:196
|
2220 |
+
msgid "User installed a theme"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
#: defaults.php:196
|
2224 |
msgid ""
|
2225 |
+
"Installed the theme \"%Theme->Name%\" in %Theme->get_template_directory%."
|
|
|
2226 |
msgstr ""
|
2227 |
|
2228 |
#: defaults.php:197
|
2229 |
+
msgid "User activated a theme"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
#: defaults.php:197
|
2233 |
+
msgid ""
|
2234 |
+
"Activated the theme \"%Theme->Name%\", installed in %Theme-"
|
2235 |
+
">get_template_directory%."
|
2236 |
msgstr ""
|
2237 |
|
2238 |
#: defaults.php:198
|
2239 |
+
msgid "User uninstalled a theme"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
#: defaults.php:198
|
2243 |
msgid ""
|
2244 |
+
"Deleted the theme \"%Theme->Name%\" installed in %Theme-"
|
2245 |
+
">get_template_directory%."
|
2246 |
msgstr ""
|
2247 |
|
2248 |
#: defaults.php:199
|
2249 |
+
msgid "A plugin created a post"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
#: defaults.php:199
|
2253 |
+
msgid "A plugin automatically created the following post: %PostTitle%."
|
|
|
|
|
2254 |
msgstr ""
|
2255 |
|
2256 |
#: defaults.php:200
|
2257 |
+
msgid "A plugin created a page"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
#: defaults.php:200
|
2261 |
+
msgid "A plugin automatically created the following page: %PostTitle%."
|
|
|
2262 |
msgstr ""
|
2263 |
|
2264 |
#: defaults.php:201
|
2265 |
+
msgid "A plugin created a custom post"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
#: defaults.php:201
|
2269 |
+
msgid "A plugin automatically created the following custom post: %PostTitle%."
|
|
|
|
|
2270 |
msgstr ""
|
2271 |
|
2272 |
#: defaults.php:202
|
2273 |
+
msgid "A plugin deleted a post"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
#: defaults.php:202
|
2277 |
+
msgid "A plugin automatically deleted the following post: %PostTitle%."
|
2278 |
+
msgstr ""
|
2279 |
+
|
2280 |
+
#: defaults.php:203
|
2281 |
+
msgid "A plugin deleted a page"
|
2282 |
+
msgstr ""
|
2283 |
+
|
2284 |
+
#: defaults.php:203
|
2285 |
+
msgid "A plugin automatically deleted the following page: %PostTitle%."
|
2286 |
msgstr ""
|
2287 |
|
2288 |
#: defaults.php:204
|
2289 |
+
msgid "A plugin deleted a custom post"
|
2290 |
+
msgstr ""
|
2291 |
+
|
2292 |
+
#: defaults.php:204
|
2293 |
+
msgid "A plugin automatically deleted the following custom post: %PostTitle%."
|
2294 |
msgstr ""
|
2295 |
|
2296 |
#: defaults.php:205
|
2297 |
+
msgid "User updated a theme"
|
2298 |
+
msgstr ""
|
2299 |
+
|
2300 |
+
#: defaults.php:205
|
2301 |
+
msgid ""
|
2302 |
+
"Updated the theme \"%Theme->Name%\" installed in %Theme-"
|
2303 |
+
">get_template_directory%."
|
2304 |
msgstr ""
|
2305 |
|
2306 |
#: defaults.php:206
|
2307 |
+
msgid "User changed a file using the theme editor"
|
2308 |
+
msgstr ""
|
2309 |
+
|
2310 |
+
#: defaults.php:206
|
2311 |
+
msgid "Modified %File% with the Theme Editor."
|
2312 |
msgstr ""
|
2313 |
|
2314 |
#: defaults.php:207
|
2315 |
+
msgid "User changed a file using the plugin editor"
|
2316 |
+
msgstr ""
|
2317 |
+
|
2318 |
+
#: defaults.php:207
|
2319 |
+
msgid "Modified %File% with the Plugin Editor."
|
2320 |
msgstr ""
|
2321 |
|
2322 |
#: defaults.php:208
|
2323 |
+
msgid "A plugin modified a post"
|
2324 |
msgstr ""
|
2325 |
|
2326 |
+
#: defaults.php:208
|
2327 |
+
msgid "Plugin modified the post %PostTitle%. View the post: %EditorLinkPost%."
|
2328 |
msgstr ""
|
2329 |
|
2330 |
+
#: defaults.php:209
|
2331 |
+
msgid "A plugin modified a page"
|
2332 |
msgstr ""
|
2333 |
|
2334 |
+
#: defaults.php:209
|
2335 |
+
msgid "Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%."
|
2336 |
msgstr ""
|
2337 |
|
2338 |
+
#: defaults.php:210
|
2339 |
+
msgid "A plugin modified a custom post"
|
2340 |
msgstr ""
|
2341 |
|
2342 |
+
#: defaults.php:210
|
2343 |
+
msgid ""
|
2344 |
+
"Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%."
|
2345 |
msgstr ""
|
2346 |
|
2347 |
#: defaults.php:212
|
2348 |
+
msgid "System Activity"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
#: defaults.php:213
|
2352 |
+
msgid "Unknown Error"
|
2353 |
msgstr ""
|
2354 |
|
2355 |
+
#: defaults.php:213
|
2356 |
+
msgid "An unexpected error has occurred ."
|
2357 |
msgstr ""
|
2358 |
|
2359 |
#: defaults.php:214
|
2360 |
+
msgid "PHP error"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
+
#: defaults.php:214 defaults.php:215 defaults.php:216 defaults.php:217
|
2364 |
+
#: defaults.php:218
|
2365 |
+
msgid "%Message%."
|
2366 |
msgstr ""
|
2367 |
|
2368 |
#: defaults.php:215
|
2369 |
+
msgid "PHP warning"
|
2370 |
msgstr ""
|
2371 |
|
2372 |
#: defaults.php:216
|
2373 |
+
msgid "PHP notice"
|
|
|
|
|
|
|
|
|
2374 |
msgstr ""
|
2375 |
|
2376 |
#: defaults.php:217
|
2377 |
+
msgid "PHP exception"
|
|
|
|
|
2378 |
msgstr ""
|
2379 |
|
2380 |
#: defaults.php:218
|
2381 |
+
msgid "PHP shutdown error"
|
2382 |
msgstr ""
|
2383 |
|
2384 |
+
#: defaults.php:219
|
2385 |
+
msgid "Events automatically pruned by system"
|
|
|
|
|
2386 |
msgstr ""
|
2387 |
|
2388 |
#: defaults.php:219
|
2389 |
+
msgid "System automatically deleted %EventCount% alert(s)."
|
2390 |
msgstr ""
|
2391 |
|
2392 |
#: defaults.php:220
|
2393 |
+
msgid "Option Anyone Can Register in WordPress settings changed"
|
2394 |
+
msgstr ""
|
2395 |
+
|
2396 |
+
#: defaults.php:220
|
2397 |
+
msgid "%NewValue% the option \"Anyone can register\"."
|
2398 |
msgstr ""
|
2399 |
|
2400 |
#: defaults.php:221
|
2401 |
+
msgid "New User Default Role changed"
|
2402 |
+
msgstr ""
|
2403 |
+
|
2404 |
+
#: defaults.php:221
|
2405 |
+
msgid "Changed the New User Default Role from %OldRole% to %NewRole%."
|
2406 |
msgstr ""
|
2407 |
|
2408 |
#: defaults.php:222
|
2409 |
+
msgid "WordPress Administrator Notification email changed"
|
2410 |
msgstr ""
|
2411 |
|
2412 |
#: defaults.php:222
|
2413 |
+
msgid ""
|
2414 |
+
"Changed the WordPress administrator notifications email address from "
|
2415 |
+
"%OldEmail% to %NewEmail%."
|
2416 |
msgstr ""
|
2417 |
|
2418 |
#: defaults.php:223
|
2419 |
+
msgid "WordPress was updated"
|
2420 |
+
msgstr ""
|
2421 |
+
|
2422 |
+
#: defaults.php:223
|
2423 |
+
msgid "Updated WordPress from version %OldVersion% to %NewVersion%."
|
2424 |
msgstr ""
|
2425 |
|
2426 |
#: defaults.php:224
|
2427 |
+
msgid "User changes the WordPress Permalinks"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
#: defaults.php:224
|
2431 |
+
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%."
|
2432 |
msgstr ""
|
2433 |
|
2434 |
#: defaults.php:225
|
2435 |
+
msgid "User requests non-existing pages (404 Error Pages)"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
#: defaults.php:225
|
2439 |
+
msgid ""
|
2440 |
+
"Has requested a non existing page (404 Error Pages) %Attempts% %Msg%. "
|
2441 |
+
"%LinkFile%."
|
2442 |
msgstr ""
|
2443 |
|
2444 |
#: defaults.php:226
|
2445 |
+
msgid "Website Visitor User requests non-existing pages (404 Error Pages)"
|
2446 |
+
msgstr ""
|
2447 |
+
|
2448 |
+
#: defaults.php:226
|
2449 |
+
msgid ""
|
2450 |
+
"Website Visitor Has requested a non existing page (404 Error Pages) %Attempts"
|
2451 |
+
"% %Msg%. %LinkFile%."
|
2452 |
msgstr ""
|
2453 |
|
2454 |
#: defaults.php:227
|
2455 |
+
msgid "Advertising Add-ons."
|
2456 |
+
msgstr ""
|
2457 |
+
|
2458 |
+
#: defaults.php:227
|
2459 |
+
msgid "%PromoName% %PromoMessage%"
|
2460 |
msgstr ""
|
2461 |
|
2462 |
#: defaults.php:229
|
2537 |
msgstr ""
|
2538 |
|
2539 |
#: defaults.php:240
|
2540 |
+
msgid "Widgets"
|
2541 |
msgstr ""
|
2542 |
|
2543 |
#: defaults.php:241
|
2544 |
+
msgid "User added a new widget"
|
2545 |
msgstr ""
|
2546 |
|
2547 |
#: defaults.php:241
|
2548 |
+
msgid "Added a new %WidgetName% widget in %Sidebar%."
|
|
|
|
|
2549 |
msgstr ""
|
2550 |
|
2551 |
#: defaults.php:242
|
2552 |
+
msgid "User modified a widget"
|
2553 |
msgstr ""
|
2554 |
|
2555 |
#: defaults.php:242
|
2556 |
+
msgid "Modified the %WidgetName% widget in %Sidebar%."
|
|
|
|
|
2557 |
msgstr ""
|
2558 |
|
2559 |
#: defaults.php:243
|
2560 |
+
msgid "User deleted widget"
|
2561 |
msgstr ""
|
2562 |
|
2563 |
#: defaults.php:243
|
2564 |
+
msgid "Deleted the %WidgetName% widget from %Sidebar%."
|
|
|
|
|
2565 |
msgstr ""
|
2566 |
|
2567 |
#: defaults.php:244
|
2568 |
+
msgid "User moved widget"
|
2569 |
msgstr ""
|
2570 |
|
2571 |
#: defaults.php:244
|
2572 |
+
msgid "Moved the %WidgetName% widget from %OldSidebar% to %NewSidebar%."
|
|
|
|
|
2573 |
msgstr ""
|
2574 |
|
2575 |
#: defaults.php:245
|
2576 |
+
msgid "User changed widget position"
|
2577 |
msgstr ""
|
2578 |
|
2579 |
#: defaults.php:245
|
2580 |
+
msgid "Changed the position of the widget %WidgetName% in sidebar %Sidebar%."
|
|
|
|
|
2581 |
msgstr ""
|
2582 |
|
2583 |
+
#: defaults.php:247
|
2584 |
+
msgid "Site Settings"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
+
#: defaults.php:248
|
2588 |
msgid ""
|
2589 |
+
"Enabled/Disabled the option Discourage search engines from indexing this site"
|
|
|
2590 |
msgstr ""
|
2591 |
|
2592 |
+
#: defaults.php:248
|
2593 |
+
msgid "%Status% the option Discourage search engines from indexing this site."
|
2594 |
msgstr ""
|
2595 |
|
2596 |
+
#: defaults.php:249
|
2597 |
+
msgid "Enabled/Disabled comments on all the website"
|
|
|
|
|
2598 |
msgstr ""
|
2599 |
|
2600 |
+
#: defaults.php:249
|
2601 |
+
msgid "%Status% comments on all the website."
|
2602 |
msgstr ""
|
2603 |
|
2604 |
+
#: defaults.php:250
|
2605 |
+
msgid "Enabled/Disabled the option Comment author must fill out name and email"
|
|
|
|
|
2606 |
msgstr ""
|
2607 |
|
2608 |
+
#: defaults.php:250
|
2609 |
+
msgid "%Status% the option Comment author must fill out name and email."
|
2610 |
msgstr ""
|
2611 |
|
2612 |
+
#: defaults.php:251
|
2613 |
msgid ""
|
2614 |
+
"Enabled/Disabled the option Users must be logged in and registered to comment"
|
|
|
2615 |
msgstr ""
|
2616 |
|
2617 |
+
#: defaults.php:251
|
2618 |
+
msgid "%Status% the option Users must be logged in and registered to comment."
|
2619 |
msgstr ""
|
2620 |
|
2621 |
+
#: defaults.php:252
|
2622 |
+
msgid "Enabled/Disabled the option to automatically close comments"
|
2623 |
msgstr ""
|
2624 |
|
2625 |
#: defaults.php:252
|
2626 |
+
msgid "%Status% the option to automatically close comments after %Value% days."
|
2627 |
+
msgstr ""
|
2628 |
+
|
2629 |
+
#: defaults.php:253
|
2630 |
+
msgid "Changed the value of the option Automatically close comments"
|
2631 |
msgstr ""
|
2632 |
|
2633 |
#: defaults.php:253
|
2634 |
+
msgid ""
|
2635 |
+
"Changed the value of the option Automatically close comments from %OldValue% "
|
2636 |
+
"to %NewValue% days."
|
2637 |
msgstr ""
|
2638 |
|
2639 |
+
#: defaults.php:254
|
2640 |
+
msgid "Enabled/Disabled the option for comments to be manually approved"
|
2641 |
msgstr ""
|
2642 |
|
2643 |
#: defaults.php:254
|
2644 |
+
msgid "%Status% the option for comments to be manually approved."
|
2645 |
+
msgstr ""
|
2646 |
+
|
2647 |
+
#: defaults.php:255
|
2648 |
+
msgid ""
|
2649 |
+
"Enabled/Disabled the option for an author to have previously approved "
|
2650 |
+
"comments for the comments to appear"
|
2651 |
msgstr ""
|
2652 |
|
2653 |
#: defaults.php:255
|
2654 |
+
msgid ""
|
2655 |
+
"%Status% the option for an author to have previously approved comments for "
|
2656 |
+
"the comments to appear."
|
2657 |
+
msgstr ""
|
2658 |
+
|
2659 |
+
#: defaults.php:256
|
2660 |
+
msgid ""
|
2661 |
+
"Changed the number of links that a comment must have to be held in the queue"
|
2662 |
+
msgstr ""
|
2663 |
+
|
2664 |
+
#: defaults.php:256
|
2665 |
+
msgid ""
|
2666 |
+
"Changed the number of links from %OldValue% to %NewValue% that a comment "
|
2667 |
+
"must have to be held in the queue."
|
2668 |
+
msgstr ""
|
2669 |
+
|
2670 |
+
#: defaults.php:257
|
2671 |
+
msgid "Modified the list of keywords for comments moderation"
|
2672 |
+
msgstr ""
|
2673 |
+
|
2674 |
+
#: defaults.php:257
|
2675 |
+
msgid "Modified the list of keywords for comments moderation."
|
2676 |
+
msgstr ""
|
2677 |
+
|
2678 |
+
#: defaults.php:258
|
2679 |
+
msgid "Modified the list of keywords for comments blacklisting"
|
2680 |
+
msgstr ""
|
2681 |
+
|
2682 |
+
#: defaults.php:258
|
2683 |
+
msgid "Modified the list of keywords for comments blacklisting."
|
2684 |
+
msgstr ""
|
2685 |
+
|
2686 |
+
#: defaults.php:261
|
2687 |
+
msgid "Users Profiles & Activity"
|
2688 |
+
msgstr ""
|
2689 |
+
|
2690 |
+
#: defaults.php:262
|
2691 |
+
msgid "Other User Activity"
|
2692 |
+
msgstr ""
|
2693 |
+
|
2694 |
+
#: defaults.php:263
|
2695 |
+
msgid "User logged in"
|
2696 |
+
msgstr ""
|
2697 |
+
|
2698 |
+
#: defaults.php:263
|
2699 |
+
msgid "Successfully logged in."
|
2700 |
+
msgstr ""
|
2701 |
+
|
2702 |
+
#: defaults.php:264
|
2703 |
+
msgid "User logged out"
|
2704 |
+
msgstr ""
|
2705 |
+
|
2706 |
+
#: defaults.php:264
|
2707 |
+
msgid "Successfully logged out."
|
2708 |
+
msgstr ""
|
2709 |
+
|
2710 |
+
#: defaults.php:265
|
2711 |
+
msgid "Login failed"
|
2712 |
+
msgstr ""
|
2713 |
+
|
2714 |
+
#: defaults.php:265
|
2715 |
+
msgid "%Attempts% failed login(s) detected."
|
2716 |
+
msgstr ""
|
2717 |
+
|
2718 |
+
#: defaults.php:266
|
2719 |
+
msgid "Login failed / non existing user"
|
2720 |
+
msgstr ""
|
2721 |
+
|
2722 |
+
#: defaults.php:266
|
2723 |
+
msgid "%Attempts% failed login(s) detected using non existing user."
|
2724 |
+
msgstr ""
|
2725 |
+
|
2726 |
+
#: defaults.php:267
|
2727 |
+
msgid "Login blocked"
|
2728 |
+
msgstr ""
|
2729 |
+
|
2730 |
+
#: defaults.php:267
|
2731 |
+
msgid ""
|
2732 |
+
"Blocked from logging in because the same WordPress user is logged in from "
|
2733 |
+
"%ClientIP%."
|
2734 |
+
msgstr ""
|
2735 |
+
|
2736 |
+
#: defaults.php:268
|
2737 |
+
msgid "User logged in with existing session(s)"
|
2738 |
+
msgstr ""
|
2739 |
+
|
2740 |
+
#: defaults.php:268
|
2741 |
+
msgid ""
|
2742 |
+
"Successfully logged in. Another session from %IPAddress% for this user "
|
2743 |
+
"already exist."
|
2744 |
+
msgstr ""
|
2745 |
+
|
2746 |
+
#: defaults.php:269
|
2747 |
+
msgid "User logged out all other sessions with the same username"
|
2748 |
+
msgstr ""
|
2749 |
+
|
2750 |
+
#: defaults.php:269
|
2751 |
+
msgid "Logged out all other sessions with the same username."
|
2752 |
+
msgstr ""
|
2753 |
+
|
2754 |
+
#: defaults.php:270
|
2755 |
+
msgid "User session destroyed and logged out."
|
2756 |
+
msgstr ""
|
2757 |
+
|
2758 |
+
#: defaults.php:270
|
2759 |
+
msgid "Logged out session %TargetSessionID% which belonged to %TargetUserName%"
|
2760 |
+
msgstr ""
|
2761 |
+
|
2762 |
+
#: defaults.php:271
|
2763 |
+
msgid "User uploaded file from Uploads directory"
|
2764 |
+
msgstr ""
|
2765 |
+
|
2766 |
+
#: defaults.php:271
|
2767 |
+
msgid "Uploaded the file %FileName% in %FilePath%."
|
2768 |
+
msgstr ""
|
2769 |
+
|
2770 |
+
#: defaults.php:272
|
2771 |
+
msgid "User deleted file from Uploads directory"
|
2772 |
+
msgstr ""
|
2773 |
+
|
2774 |
+
#: defaults.php:272
|
2775 |
+
msgid "Deleted the file %FileName% from %FilePath%."
|
2776 |
+
msgstr ""
|
2777 |
+
|
2778 |
+
#: defaults.php:274
|
2779 |
+
msgid "User Profiles"
|
2780 |
+
msgstr ""
|
2781 |
+
|
2782 |
+
#: defaults.php:275
|
2783 |
+
msgid "New user was created on WordPress"
|
2784 |
+
msgstr ""
|
2785 |
+
|
2786 |
+
#: defaults.php:275
|
2787 |
+
msgid ""
|
2788 |
+
"A new user %NewUserData->Username% was created with role of %NewUserData-"
|
2789 |
+
">Roles%."
|
2790 |
+
msgstr ""
|
2791 |
+
|
2792 |
+
#: defaults.php:276
|
2793 |
+
msgid "User created another WordPress user"
|
2794 |
+
msgstr ""
|
2795 |
+
|
2796 |
+
#: defaults.php:276
|
2797 |
+
msgid ""
|
2798 |
+
"%UserChanger% created a new user %NewUserData->Username% with the role of "
|
2799 |
+
"%NewUserData->Roles%."
|
2800 |
+
msgstr ""
|
2801 |
+
|
2802 |
+
#: defaults.php:277
|
2803 |
+
msgid "The role of a user was changed by another WordPress user"
|
2804 |
+
msgstr ""
|
2805 |
+
|
2806 |
+
#: defaults.php:277
|
2807 |
+
msgid ""
|
2808 |
+
"Changed the role of the user %TargetUsername% from %OldRole% to %NewRole%."
|
2809 |
+
msgstr ""
|
2810 |
+
|
2811 |
+
#: defaults.php:278
|
2812 |
+
msgid "User has changed his or her password"
|
2813 |
+
msgstr ""
|
2814 |
+
|
2815 |
+
#: defaults.php:278
|
2816 |
+
msgid "Changed the password."
|
2817 |
+
msgstr ""
|
2818 |
+
|
2819 |
+
#: defaults.php:279
|
2820 |
+
msgid "User changed another user's password"
|
2821 |
+
msgstr ""
|
2822 |
+
|
2823 |
+
#: defaults.php:279
|
2824 |
+
msgid ""
|
2825 |
+
"Changed the password for the user %TargetUserData->Username% with the role "
|
2826 |
+
"of %TargetUserData->Roles%."
|
2827 |
+
msgstr ""
|
2828 |
+
|
2829 |
+
#: defaults.php:280
|
2830 |
+
msgid "User changed his or her email address"
|
2831 |
+
msgstr ""
|
2832 |
+
|
2833 |
+
#: defaults.php:280
|
2834 |
+
msgid "Changed the email address from %OldEmail% to %NewEmail%."
|
2835 |
+
msgstr ""
|
2836 |
+
|
2837 |
+
#: defaults.php:281
|
2838 |
+
msgid "User changed another user's email address"
|
2839 |
+
msgstr ""
|
2840 |
+
|
2841 |
+
#: defaults.php:281
|
2842 |
+
msgid ""
|
2843 |
+
"Changed the email address of the user %TargetUsername% from %OldEmail% to "
|
2844 |
+
"%NewEmail%."
|
2845 |
+
msgstr ""
|
2846 |
+
|
2847 |
+
#: defaults.php:282
|
2848 |
+
msgid "User was deleted by another user"
|
2849 |
+
msgstr ""
|
2850 |
+
|
2851 |
+
#: defaults.php:282
|
2852 |
+
msgid ""
|
2853 |
+
"Deleted the user %TargetUserData->Username% with the role of %TargetUserData-"
|
2854 |
+
">Roles%."
|
2855 |
+
msgstr ""
|
2856 |
+
|
2857 |
+
#: defaults.php:283
|
2858 |
+
msgid "User opened the profile page of another user"
|
2859 |
+
msgstr ""
|
2860 |
+
|
2861 |
+
#: defaults.php:283
|
2862 |
+
msgid "%UserChanger% opened the profile page of the user %TargetUsername%."
|
2863 |
+
msgstr ""
|
2864 |
+
|
2865 |
+
#: defaults.php:284
|
2866 |
+
msgid "User updated a custom field value for a user"
|
2867 |
+
msgstr ""
|
2868 |
+
|
2869 |
+
#: defaults.php:284
|
2870 |
+
msgid ""
|
2871 |
+
"Changed the value of the custom field %custom_field_name% from %old_value% "
|
2872 |
+
"to %new_value% for the user %TargetUsername%."
|
2873 |
+
msgstr ""
|
2874 |
+
|
2875 |
+
#: defaults.php:285
|
2876 |
+
msgid "User created a custom field value for a user"
|
2877 |
+
msgstr ""
|
2878 |
+
|
2879 |
+
#: defaults.php:285
|
2880 |
+
msgid ""
|
2881 |
+
"Created the value of the custom field %custom_field_name% with %new_value% "
|
2882 |
+
"for the user %TargetUsername%."
|
2883 |
+
msgstr ""
|
2884 |
+
|
2885 |
+
#: defaults.php:288
|
2886 |
+
msgid "Third Party Support"
|
2887 |
+
msgstr ""
|
2888 |
+
|
2889 |
+
#: defaults.php:289
|
2890 |
+
msgid "BBPress Forum"
|
2891 |
+
msgstr ""
|
2892 |
+
|
2893 |
+
#: defaults.php:290
|
2894 |
+
msgid "User created new forum"
|
2895 |
+
msgstr ""
|
2896 |
+
|
2897 |
+
#: defaults.php:290
|
2898 |
+
msgid ""
|
2899 |
+
"Created new forum %ForumName%. Forum URL is %ForumURL%. %EditorLinkForum%."
|
2900 |
+
msgstr ""
|
2901 |
+
|
2902 |
+
#: defaults.php:291
|
2903 |
+
msgid "User changed status of a forum"
|
2904 |
+
msgstr ""
|
2905 |
+
|
2906 |
+
#: defaults.php:291
|
2907 |
+
msgid ""
|
2908 |
+
"Changed the status of the forum %ForumName% from %OldStatus% to %NewStatus%. "
|
2909 |
+
"%EditorLinkForum%."
|
2910 |
+
msgstr ""
|
2911 |
+
|
2912 |
+
#: defaults.php:292
|
2913 |
+
msgid "User changed visibility of a forum"
|
2914 |
+
msgstr ""
|
2915 |
+
|
2916 |
+
#: defaults.php:292
|
2917 |
+
msgid ""
|
2918 |
+
"Changed the visibility of the forum %ForumName% from %OldVisibility% to "
|
2919 |
+
"%NewVisibility%. %EditorLinkForum%."
|
2920 |
+
msgstr ""
|
2921 |
+
|
2922 |
+
#: defaults.php:293
|
2923 |
+
msgid "User changed the URL of a forum"
|
2924 |
+
msgstr ""
|
2925 |
+
|
2926 |
+
#: defaults.php:293
|
2927 |
+
msgid ""
|
2928 |
+
"Changed the URL of the forum %ForumName% from %OldUrl% to %NewUrl%. "
|
2929 |
+
"%EditorLinkForum%."
|
2930 |
+
msgstr ""
|
2931 |
+
|
2932 |
+
#: defaults.php:294
|
2933 |
+
msgid "User changed order of a forum"
|
2934 |
+
msgstr ""
|
2935 |
+
|
2936 |
+
#: defaults.php:294
|
2937 |
+
msgid ""
|
2938 |
+
"Changed the order of the forum %ForumName% from %OldOrder% to %NewOrder%. "
|
2939 |
+
"%EditorLinkForum%."
|
2940 |
+
msgstr ""
|
2941 |
+
|
2942 |
+
#: defaults.php:295
|
2943 |
+
msgid "User moved forum to trash"
|
2944 |
+
msgstr ""
|
2945 |
+
|
2946 |
+
#: defaults.php:295
|
2947 |
+
msgid "Moved the forum %ForumName% to trash."
|
2948 |
+
msgstr ""
|
2949 |
+
|
2950 |
+
#: defaults.php:296
|
2951 |
+
msgid "User permanently deleted forum"
|
2952 |
+
msgstr ""
|
2953 |
+
|
2954 |
+
#: defaults.php:296
|
2955 |
+
msgid "Permanently deleted the forum %ForumName%."
|
2956 |
+
msgstr ""
|
2957 |
+
|
2958 |
+
#: defaults.php:297
|
2959 |
+
msgid "User restored forum from trash"
|
2960 |
+
msgstr ""
|
2961 |
+
|
2962 |
+
#: defaults.php:297
|
2963 |
+
msgid "Restored the forum %ForumName% from trash. %EditorLinkForum%."
|
2964 |
+
msgstr ""
|
2965 |
+
|
2966 |
+
#: defaults.php:298
|
2967 |
+
msgid "User changed the parent of a forum"
|
2968 |
+
msgstr ""
|
2969 |
+
|
2970 |
+
#: defaults.php:298
|
2971 |
+
msgid ""
|
2972 |
+
"Changed the parent of the forum %ForumName% from %OldParent% to %NewParent%. "
|
2973 |
+
"%EditorLinkForum%."
|
2974 |
+
msgstr ""
|
2975 |
+
|
2976 |
+
#: defaults.php:299
|
2977 |
+
msgid "User changed forum's role"
|
2978 |
+
msgstr ""
|
2979 |
+
|
2980 |
+
#: defaults.php:299
|
2981 |
+
msgid "Changed the forum's auto role from %OldRole% to %NewRole%."
|
2982 |
+
msgstr ""
|
2983 |
+
|
2984 |
+
#: defaults.php:300
|
2985 |
+
msgid "User changed option of a forum"
|
2986 |
+
msgstr ""
|
2987 |
+
|
2988 |
+
#: defaults.php:300
|
2989 |
+
msgid "%Status% the option for anonymous posting on forum."
|
2990 |
+
msgstr ""
|
2991 |
+
|
2992 |
+
#: defaults.php:301
|
2993 |
+
msgid "User changed type of a forum"
|
2994 |
+
msgstr ""
|
2995 |
+
|
2996 |
+
#: defaults.php:301
|
2997 |
+
msgid ""
|
2998 |
+
"Changed the type of the forum %ForumName% from %OldType% to %NewType%. "
|
2999 |
+
"%EditorLinkForum%."
|
3000 |
+
msgstr ""
|
3001 |
+
|
3002 |
+
#: defaults.php:302
|
3003 |
+
msgid "User changed time to disallow post editing"
|
3004 |
+
msgstr ""
|
3005 |
+
|
3006 |
+
#: defaults.php:302
|
3007 |
+
msgid ""
|
3008 |
+
"Changed the time to disallow post editing from %OldTime% to %NewTime% "
|
3009 |
+
"minutes in the forums."
|
3010 |
+
msgstr ""
|
3011 |
+
|
3012 |
+
#: defaults.php:303
|
3013 |
+
msgid "User changed the forum setting posting throttle time"
|
3014 |
+
msgstr ""
|
3015 |
+
|
3016 |
+
#: defaults.php:303
|
3017 |
+
msgid ""
|
3018 |
+
"Changed the posting throttle time from %OldTime% to %NewTime% seconds in the "
|
3019 |
+
"forums."
|
3020 |
+
msgstr ""
|
3021 |
+
|
3022 |
+
#: defaults.php:304
|
3023 |
+
msgid "User created new topic"
|
3024 |
+
msgstr ""
|
3025 |
+
|
3026 |
+
#: defaults.php:304
|
3027 |
+
msgid "Created a new topic %TopicName%. %EditorLinkTopic%."
|
3028 |
+
msgstr ""
|
3029 |
+
|
3030 |
+
#: defaults.php:305
|
3031 |
+
msgid "User changed status of a topic"
|
3032 |
+
msgstr ""
|
3033 |
+
|
3034 |
+
#: defaults.php:305
|
3035 |
+
msgid ""
|
3036 |
+
"Changed the status of the topic %TopicName% from %OldStatus% to %NewStatus%. "
|
3037 |
+
"%EditorLinkTopic%."
|
3038 |
+
msgstr ""
|
3039 |
+
|
3040 |
+
#: defaults.php:306
|
3041 |
+
msgid "User changed type of a topic"
|
3042 |
+
msgstr ""
|
3043 |
+
|
3044 |
+
#: defaults.php:306
|
3045 |
+
msgid ""
|
3046 |
+
"Changed the type of the topic %TopicName% from %OldType% to %NewType%. "
|
3047 |
+
"%EditorLinkTopic%."
|
3048 |
+
msgstr ""
|
3049 |
+
|
3050 |
+
#: defaults.php:307
|
3051 |
+
msgid "User changed URL of a topic"
|
3052 |
+
msgstr ""
|
3053 |
+
|
3054 |
+
#: defaults.php:307
|
3055 |
+
msgid "Changed the URL of the topic %TopicName% from %OldUrl% to %NewUrl%."
|
3056 |
+
msgstr ""
|
3057 |
+
|
3058 |
+
#: defaults.php:308
|
3059 |
+
msgid "User changed the forum of a topic"
|
3060 |
+
msgstr ""
|
3061 |
+
|
3062 |
+
#: defaults.php:308
|
3063 |
+
msgid ""
|
3064 |
+
"Changed the forum of the topic %TopicName% from %OldForum% to %NewForum%. "
|
3065 |
+
"%EditorLinkTopic%."
|
3066 |
+
msgstr ""
|
3067 |
+
|
3068 |
+
#: defaults.php:309
|
3069 |
+
msgid "User moved topic to trash"
|
3070 |
+
msgstr ""
|
3071 |
+
|
3072 |
+
#: defaults.php:309
|
3073 |
+
msgid "Moved the topic %TopicName% to trash."
|
3074 |
+
msgstr ""
|
3075 |
+
|
3076 |
+
#: defaults.php:310
|
3077 |
+
msgid "User permanently deleted topic"
|
3078 |
+
msgstr ""
|
3079 |
+
|
3080 |
+
#: defaults.php:310
|
3081 |
+
msgid "Permanently deleted the topic %TopicName%."
|
3082 |
+
msgstr ""
|
3083 |
+
|
3084 |
+
#: defaults.php:311
|
3085 |
+
msgid "User restored topic from trash"
|
3086 |
+
msgstr ""
|
3087 |
+
|
3088 |
+
#: defaults.php:311
|
3089 |
+
msgid "Restored the topic %TopicName% from trash. %EditorLinkTopic%."
|
3090 |
+
msgstr ""
|
3091 |
+
|
3092 |
+
#: defaults.php:312
|
3093 |
+
msgid "User changed visibility of a topic"
|
3094 |
+
msgstr ""
|
3095 |
+
|
3096 |
+
#: defaults.php:312
|
3097 |
+
msgid ""
|
3098 |
+
"Changed the visibility of the topic %TopicName% from %OldVisibility% to "
|
3099 |
+
"%NewVisibility%. %EditorLinkTopic%."
|
3100 |
+
msgstr ""
|
3101 |
+
|
3102 |
+
#: defaults.php:314
|
3103 |
+
msgid "WooCommerce"
|
3104 |
+
msgstr ""
|
3105 |
+
|
3106 |
+
#: defaults.php:315
|
3107 |
+
msgid "User created a new product"
|
3108 |
+
msgstr ""
|
3109 |
+
|
3110 |
+
#: defaults.php:315
|
3111 |
+
msgid ""
|
3112 |
+
"Created a new product called %ProductTitle% and saved it as draft. View the "
|
3113 |
+
"product: %EditorLinkProduct%."
|
3114 |
+
msgstr ""
|
3115 |
+
|
3116 |
+
#: defaults.php:316
|
3117 |
+
msgid "User published a product"
|
3118 |
+
msgstr ""
|
3119 |
+
|
3120 |
+
#: defaults.php:316
|
3121 |
+
msgid ""
|
3122 |
+
"Published a product called %ProductTitle%. Product URL is %ProductUrl%. View "
|
3123 |
+
"the product: %EditorLinkProduct%."
|
3124 |
+
msgstr ""
|
3125 |
+
|
3126 |
+
#: defaults.php:317
|
3127 |
+
msgid "User created a new product category"
|
3128 |
+
msgstr ""
|
3129 |
+
|
3130 |
+
#: defaults.php:317
|
3131 |
+
msgid ""
|
3132 |
+
"Created a new product category called %CategoryName% in WooCommerce. Product "
|
3133 |
+
"category slug is %Slug%."
|
3134 |
+
msgstr ""
|
3135 |
+
|
3136 |
+
#: defaults.php:318
|
3137 |
+
msgid "User changed the category of a product"
|
3138 |
+
msgstr ""
|
3139 |
+
|
3140 |
+
#: defaults.php:318
|
3141 |
+
msgid ""
|
3142 |
+
"Changed the category of the product %ProductTitle% from %OldCategories% to "
|
3143 |
+
"%NewCategories%. View the product: %EditorLinkProduct%."
|
3144 |
+
msgstr ""
|
3145 |
+
|
3146 |
+
#: defaults.php:319
|
3147 |
+
msgid "User modified the short description of a product"
|
3148 |
+
msgstr ""
|
3149 |
+
|
3150 |
+
#: defaults.php:319
|
3151 |
+
msgid ""
|
3152 |
+
"Modified the short description of the product %ProductTitle%. View the "
|
3153 |
+
"product: %EditorLinkProduct%."
|
3154 |
+
msgstr ""
|
3155 |
+
|
3156 |
+
#: defaults.php:320
|
3157 |
+
msgid "User modified the text of a product"
|
3158 |
+
msgstr ""
|
3159 |
+
|
3160 |
+
#: defaults.php:320
|
3161 |
+
msgid ""
|
3162 |
+
"Modified the text of the product %ProductTitle%. View the product: "
|
3163 |
+
"%EditorLinkProduct%."
|
3164 |
+
msgstr ""
|
3165 |
+
|
3166 |
+
#: defaults.php:321
|
3167 |
+
msgid "User changed the URL of a product"
|
3168 |
+
msgstr ""
|
3169 |
+
|
3170 |
+
#: defaults.php:321
|
3171 |
+
msgid ""
|
3172 |
+
"Changed the URL of the product %ProductTitle% from %OldUrl% to %NewUrl%. "
|
3173 |
+
"View the product: %EditorLinkProduct%."
|
3174 |
+
msgstr ""
|
3175 |
+
|
3176 |
+
#: defaults.php:322
|
3177 |
+
msgid "User changed the Product Data of a product"
|
3178 |
+
msgstr ""
|
3179 |
+
|
3180 |
+
#: defaults.php:322
|
3181 |
+
msgid ""
|
3182 |
+
"Changed the Product Data of the product %ProductTitle%. View the product: "
|
3183 |
+
"%EditorLinkProduct%."
|
3184 |
+
msgstr ""
|
3185 |
+
|
3186 |
+
#: defaults.php:323
|
3187 |
+
msgid "User changed the date of a product"
|
3188 |
+
msgstr ""
|
3189 |
+
|
3190 |
+
#: defaults.php:323
|
3191 |
+
msgid ""
|
3192 |
+
"Changed the date of the product %ProductTitle% from %OldDate% to %NewDate%. "
|
3193 |
+
"View the product: %EditorLinkProduct%."
|
3194 |
+
msgstr ""
|
3195 |
+
|
3196 |
+
#: defaults.php:324
|
3197 |
+
msgid "User changed the visibility of a product"
|
3198 |
+
msgstr ""
|
3199 |
+
|
3200 |
+
#: defaults.php:324
|
3201 |
+
msgid ""
|
3202 |
+
"Changed the visibility of the product %ProductTitle% from %OldVisibility% to "
|
3203 |
+
"%NewVisibility%. View the product: %EditorLinkProduct%."
|
3204 |
+
msgstr ""
|
3205 |
+
|
3206 |
+
#: defaults.php:325
|
3207 |
+
msgid "User modified the published product"
|
3208 |
+
msgstr ""
|
3209 |
+
|
3210 |
+
#: defaults.php:325
|
3211 |
+
msgid ""
|
3212 |
+
"Modified the published product %ProductTitle%. Product URL is %ProductUrl%. "
|
3213 |
+
"View the product: %EditorLinkProduct%."
|
3214 |
+
msgstr ""
|
3215 |
+
|
3216 |
+
#: defaults.php:326
|
3217 |
+
msgid "User modified the draft product"
|
3218 |
+
msgstr ""
|
3219 |
+
|
3220 |
+
#: defaults.php:326
|
3221 |
+
msgid ""
|
3222 |
+
"Modified the draft product %ProductTitle%. View the product: "
|
3223 |
+
"%EditorLinkProduct%."
|
3224 |
+
msgstr ""
|
3225 |
+
|
3226 |
+
#: defaults.php:327
|
3227 |
+
msgid "User moved a product to trash"
|
3228 |
+
msgstr ""
|
3229 |
+
|
3230 |
+
#: defaults.php:327
|
3231 |
+
msgid ""
|
3232 |
+
"Moved the product %ProductTitle% to trash. Product URL was %ProductUrl%."
|
3233 |
+
msgstr ""
|
3234 |
+
|
3235 |
+
#: defaults.php:328
|
3236 |
+
msgid "User permanently deleted a product"
|
3237 |
+
msgstr ""
|
3238 |
+
|
3239 |
+
#: defaults.php:328
|
3240 |
+
msgid "Permanently deleted the product %ProductTitle%."
|
3241 |
+
msgstr ""
|
3242 |
+
|
3243 |
+
#: defaults.php:329
|
3244 |
+
msgid "User restored a product from the trash"
|
3245 |
+
msgstr ""
|
3246 |
+
|
3247 |
+
#: defaults.php:329
|
3248 |
+
msgid ""
|
3249 |
+
"Product %ProductTitle% has been restored from trash. View product: "
|
3250 |
+
"%EditorLinkProduct%."
|
3251 |
+
msgstr ""
|
3252 |
+
|
3253 |
+
#: defaults.php:330
|
3254 |
+
msgid "User changed status of a product"
|
3255 |
+
msgstr ""
|
3256 |
+
|
3257 |
+
#: defaults.php:330
|
3258 |
+
msgid ""
|
3259 |
+
"Changed the status of the product %ProductTitle% from %OldStatus% to "
|
3260 |
+
"%NewStatus%. View the product: %EditorLinkProduct%."
|
3261 |
+
msgstr ""
|
3262 |
+
|
3263 |
+
#: defaults.php:331
|
3264 |
+
msgid "User changed type of a price"
|
3265 |
+
msgstr ""
|
3266 |
+
|
3267 |
+
#: defaults.php:331
|
3268 |
+
msgid ""
|
3269 |
+
"Changed the %PriceType% of the product %ProductTitle% from %OldPrice% to "
|
3270 |
+
"%NewPrice%. View the product: %EditorLinkProduct%."
|
3271 |
+
msgstr ""
|
3272 |
+
|
3273 |
+
#: defaults.php:332
|
3274 |
+
msgid "User changed the SKU of a product"
|
3275 |
+
msgstr ""
|
3276 |
+
|
3277 |
+
#: defaults.php:332
|
3278 |
+
msgid ""
|
3279 |
+
"Changed the SKU of the product %ProductTitle% from %OldSku% to %NewSku%. "
|
3280 |
+
"View the product: %EditorLinkProduct%."
|
3281 |
+
msgstr ""
|
3282 |
+
|
3283 |
+
#: defaults.php:333
|
3284 |
+
msgid "User changed the stock status of a product"
|
3285 |
+
msgstr ""
|
3286 |
+
|
3287 |
+
#: defaults.php:333
|
3288 |
+
msgid ""
|
3289 |
+
"Changed the stock status of the product %ProductTitle% from %OldStatus% to "
|
3290 |
+
"%NewStatus%. View the product: %EditorLinkProduct%."
|
3291 |
+
msgstr ""
|
3292 |
+
|
3293 |
+
#: defaults.php:334
|
3294 |
+
msgid "User changed the stock quantity"
|
3295 |
+
msgstr ""
|
3296 |
+
|
3297 |
+
#: defaults.php:334
|
3298 |
+
msgid ""
|
3299 |
+
"Changed the stock quantity from %OldValue% to %NewValue%. View the product: "
|
3300 |
+
"%EditorLinkProduct%"
|
3301 |
+
msgstr ""
|
3302 |
+
|
3303 |
+
#: defaults.php:335
|
3304 |
+
msgid "User set a product type"
|
3305 |
+
msgstr ""
|
3306 |
+
|
3307 |
+
#: defaults.php:335
|
3308 |
+
msgid ""
|
3309 |
+
"Set the product %ProductTitle% as %Type%. View the product: "
|
3310 |
+
"%EditorLinkProduct%."
|
3311 |
+
msgstr ""
|
3312 |
+
|
3313 |
+
#: defaults.php:336
|
3314 |
+
msgid "User changed the weight of a product"
|
3315 |
+
msgstr ""
|
3316 |
+
|
3317 |
+
#: defaults.php:336
|
3318 |
+
msgid ""
|
3319 |
+
"Changed the weight of the product %ProductTitle% from %OldWeight% to "
|
3320 |
+
"%NewWeight%. View the product: %EditorLinkProduct%."
|
3321 |
+
msgstr ""
|
3322 |
+
|
3323 |
+
#: defaults.php:337
|
3324 |
+
msgid "User changed the dimensions of a product"
|
3325 |
+
msgstr ""
|
3326 |
+
|
3327 |
+
#: defaults.php:337
|
3328 |
+
msgid ""
|
3329 |
+
"Changed the %DimensionType% dimensions of the product %ProductTitle% from "
|
3330 |
+
"%OldDimension% to %NewDimension%. View the product: %EditorLinkProduct%."
|
3331 |
+
msgstr ""
|
3332 |
+
|
3333 |
+
#: defaults.php:338
|
3334 |
+
msgid "User added the Downloadable File to a product"
|
3335 |
+
msgstr ""
|
3336 |
+
|
3337 |
+
#: defaults.php:338
|
3338 |
+
msgid ""
|
3339 |
+
"Added the Downloadable File %FileName% with File URL %FileUrl% to the "
|
3340 |
+
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
3341 |
+
msgstr ""
|
3342 |
+
|
3343 |
+
#: defaults.php:339
|
3344 |
+
msgid "User Removed the Downloadable File from a product"
|
3345 |
+
msgstr ""
|
3346 |
+
|
3347 |
+
#: defaults.php:339
|
3348 |
+
msgid ""
|
3349 |
+
"Removed the Downloadable File %FileName% with File URL %FileUrl% from the "
|
3350 |
+
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
3351 |
+
msgstr ""
|
3352 |
+
|
3353 |
+
#: defaults.php:340
|
3354 |
+
msgid "User changed the name of a Downloadable File in a product"
|
3355 |
+
msgstr ""
|
3356 |
+
|
3357 |
+
#: defaults.php:340
|
3358 |
+
msgid ""
|
3359 |
+
"Changed the name of a Downloadable File from %OldName% to %NewName% in "
|
3360 |
+
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
3361 |
+
msgstr ""
|
3362 |
+
|
3363 |
+
#: defaults.php:341
|
3364 |
+
msgid "User changed the URL of the Downloadable File in a product"
|
3365 |
+
msgstr ""
|
3366 |
+
|
3367 |
+
#: defaults.php:341
|
3368 |
+
msgid ""
|
3369 |
+
"Changed the URL of the Downloadable File %FileName% from %OldUrl% to %NewUrl"
|
3370 |
+
"% in product %ProductTitle%. View the product: %EditorLinkProduct%."
|
3371 |
+
msgstr ""
|
3372 |
+
|
3373 |
+
#: defaults.php:342
|
3374 |
+
msgid "User changed the Weight Unit"
|
3375 |
+
msgstr ""
|
3376 |
+
|
3377 |
+
#: defaults.php:342
|
3378 |
+
msgid "Changed the Weight Unit from %OldUnit% to %NewUnit% in WooCommerce."
|
3379 |
+
msgstr ""
|
3380 |
+
|
3381 |
+
#: defaults.php:343
|
3382 |
+
msgid "User changed the Dimensions Unit"
|
3383 |
+
msgstr ""
|
3384 |
+
|
3385 |
+
#: defaults.php:343
|
3386 |
+
msgid "Changed the Dimensions Unit from %OldUnit% to %NewUnit% in WooCommerce."
|
3387 |
+
msgstr ""
|
3388 |
+
|
3389 |
+
#: defaults.php:344
|
3390 |
+
msgid "User changed the Base Location"
|
3391 |
+
msgstr ""
|
3392 |
+
|
3393 |
+
#: defaults.php:344
|
3394 |
+
msgid ""
|
3395 |
+
"Changed the Base Location from %OldLocation% to %NewLocation% in WooCommerce."
|
3396 |
+
msgstr ""
|
3397 |
+
|
3398 |
+
#: defaults.php:345
|
3399 |
+
msgid "User Enabled/Disabled taxes"
|
3400 |
+
msgstr ""
|
3401 |
+
|
3402 |
+
#: defaults.php:345
|
3403 |
+
msgid "%Status% taxes in the WooCommerce store."
|
3404 |
+
msgstr ""
|
3405 |
+
|
3406 |
+
#: defaults.php:346
|
3407 |
+
msgid "User changed the currency"
|
3408 |
+
msgstr ""
|
3409 |
+
|
3410 |
+
#: defaults.php:346
|
3411 |
+
msgid ""
|
3412 |
+
"Changed the currency from %OldCurrency% to %NewCurrency% in WooCommerce."
|
3413 |
+
msgstr ""
|
3414 |
+
|
3415 |
+
#: defaults.php:347
|
3416 |
+
msgid "User Enabled/Disabled the use of coupons during checkout"
|
3417 |
+
msgstr ""
|
3418 |
+
|
3419 |
+
#: defaults.php:347
|
3420 |
+
msgid "%Status% the use of coupons during checkout in WooCommerce."
|
3421 |
+
msgstr ""
|
3422 |
+
|
3423 |
+
#: defaults.php:348
|
3424 |
+
msgid "User Enabled/Disabled guest checkout"
|
3425 |
+
msgstr ""
|
3426 |
+
|
3427 |
+
#: defaults.php:348
|
3428 |
+
msgid "%Status% guest checkout in WooCommerce."
|
3429 |
msgstr ""
|
3430 |
|
3431 |
+
#: wp-security-audit-log.php:355
|
3432 |
+
#, php-format
|
3433 |
msgid ""
|
3434 |
"You are using a version of PHP that is older than %s, which is no longer "
|
3435 |
"supported.<br/>Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com"
|
3441 |
msgid "WP Security Audit Log"
|
3442 |
msgstr ""
|
3443 |
|
|
|
3444 |
#. Plugin URI of the plugin/theme
|
|
|
3445 |
#. Author URI of the plugin/theme
|
3446 |
msgid "http://www.wpsecurityauditlog.com/"
|
3447 |
msgstr ""
|
readme.txt
CHANGED
@@ -7,7 +7,7 @@ License URI: http://www.gnu.org/licenses/gpl.html
|
|
7 |
Tags: wordpress security plugin, wordpress security audit log, audit log, wordpress log, event log wordpress, wordpress user tracking, wordpress activity log, wordpress audit, security event log, audit trail, security audit trail, wordpress security alerts, wordpress monitor, wordpress security monitor, wordpress admin, wordpress admin monitoring, analytics, activity, admin, multisite, wordpress multisite, actions, dashboard, log, notification, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
|
8 |
Requires at least: 3.6
|
9 |
Tested up to: 4.8.1
|
10 |
-
Stable tag: 2.6.
|
11 |
|
12 |
Keep an audit trail of all changes and under the hood WordPress activity to ensure productivity and thwart possible WordPress hacker attacks.
|
13 |
|
@@ -188,6 +188,14 @@ Please refer to the [FAQs page](https://www.wpsecurityauditlog.com/documentation
|
|
188 |
|
189 |
== Changelog ==
|
190 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
= 2.6.7 (2017-09-09) =
|
192 |
|
193 |
* **Improvements**
|
7 |
Tags: wordpress security plugin, wordpress security audit log, audit log, wordpress log, event log wordpress, wordpress user tracking, wordpress activity log, wordpress audit, security event log, audit trail, security audit trail, wordpress security alerts, wordpress monitor, wordpress security monitor, wordpress admin, wordpress admin monitoring, analytics, activity, admin, multisite, wordpress multisite, actions, dashboard, log, notification, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
|
8 |
Requires at least: 3.6
|
9 |
Tested up to: 4.8.1
|
10 |
+
Stable tag: 2.6.8
|
11 |
|
12 |
Keep an audit trail of all changes and under the hood WordPress activity to ensure productivity and thwart possible WordPress hacker attacks.
|
13 |
|
188 |
|
189 |
== Changelog ==
|
190 |
|
191 |
+
= 2.6.8 (2017-09-19) =
|
192 |
+
|
193 |
+
* **Improvement**
|
194 |
+
* Improved the sensor for custom post types so posts with NULL value or other temp custom posts are not reported. This was reported in several support tickets; [here](https://wordpress.org/support/topic/a-plugin-automatically-created-the-following-custom-post-null/), [here](https://wordpress.org/support/topic/would-you-tell-me-about-meanings-of-2-message/) and [here](https://wordpress.org/support/topic/pinpointing-the-plugin/).
|
195 |
+
|
196 |
+
* **Bug Fix**
|
197 |
+
* Add a new check to ensure the object is of WP_Post class [Support Ticket](https://wordpress.org/support/topic/undefined-property-wp_post_typepost_type/)
|
198 |
+
|
199 |
= 2.6.7 (2017-09-09) =
|
200 |
|
201 |
* **Improvements**
|
wp-security-audit-log.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: WP Security Audit Log
|
|
4 |
Plugin URI: http://www.wpsecurityauditlog.com/
|
5 |
Description: Identify WordPress security issues before they become a problem. Keep track of everything happening on your WordPress including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Security Audit Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Audit Log Viewer included in the plugin to see all the security alerts.
|
6 |
Author: WP White Security
|
7 |
-
Version: 2.6.
|
8 |
Text Domain: wp-security-audit-log
|
9 |
Author URI: http://www.wpsecurityauditlog.com/
|
10 |
License: GPL2
|
@@ -36,7 +36,7 @@ class WpSecurityAuditLog {
|
|
36 |
*
|
37 |
* @var string
|
38 |
*/
|
39 |
-
public $version = '2.6.
|
40 |
|
41 |
// Plugin constants.
|
42 |
const PLG_CLS_PRFX = 'WSAL_';
|
4 |
Plugin URI: http://www.wpsecurityauditlog.com/
|
5 |
Description: Identify WordPress security issues before they become a problem. Keep track of everything happening on your WordPress including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Security Audit Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Audit Log Viewer included in the plugin to see all the security alerts.
|
6 |
Author: WP White Security
|
7 |
+
Version: 2.6.8
|
8 |
Text Domain: wp-security-audit-log
|
9 |
Author URI: http://www.wpsecurityauditlog.com/
|
10 |
License: GPL2
|
36 |
*
|
37 |
* @var string
|
38 |
*/
|
39 |
+
public $version = '2.6.8';
|
40 |
|
41 |
// Plugin constants.
|
42 |
const PLG_CLS_PRFX = 'WSAL_';
|