Version Description
Download this release
Release Info
Developer | WPWhiteSecurity |
Plugin | WP Security Audit Log |
Version | 3.1.7 |
Comparing to | |
See all releases |
Code changes from version 3.1.6 to 3.1.7
- classes/AlertManager.php +40 -0
- classes/AuditLogListView.php +30 -10
- classes/Loggers/Database.php +30 -4
- classes/Ref.php +3175 -0
- classes/Sensors/Content.php +2 -0
- classes/Sensors/LogInOut.php +45 -0
- classes/Sensors/MetaData.php +12 -6
- classes/Sensors/UserProfile.php +31 -1
- classes/Sensors/WooCommerce.php +44 -7
- classes/Sensors/YoastSEO.php +11 -2
- classes/Views/AuditLog.php +30 -13
- classes/Views/Settings.php +17 -5
- classes/Views/ToggleAlerts.php +13 -0
- css/wsal-ref.css +508 -0
- defaults.php +18 -18
- js/auditlog.js +106 -91
- js/wsal-ref.js +73 -0
- languages/wp-security-audit-log.pot +1704 -1041
- readme.txt +20 -5
- wp-security-audit-log.php +4 -5
classes/AlertManager.php
CHANGED
@@ -104,6 +104,8 @@ final class WSAL_AlertManager {
|
|
104 |
* @param bool $delayed - False if delayed, true if not.
|
105 |
*/
|
106 |
public function Trigger( $type, $data = array(), $delayed = false ) {
|
|
|
|
|
107 |
|
108 |
// Get username.
|
109 |
$username = wp_get_current_user()->user_login;
|
@@ -529,4 +531,42 @@ final class WSAL_AlertManager {
|
|
529 |
}
|
530 |
return $is_disabled;
|
531 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
532 |
}
|
104 |
* @param bool $delayed - False if delayed, true if not.
|
105 |
*/
|
106 |
public function Trigger( $type, $data = array(), $delayed = false ) {
|
107 |
+
// Log temporary alerts first.
|
108 |
+
$this->log_temp_alerts();
|
109 |
|
110 |
// Get username.
|
111 |
$username = wp_get_current_user()->user_login;
|
531 |
}
|
532 |
return $is_disabled;
|
533 |
}
|
534 |
+
|
535 |
+
/**
|
536 |
+
* Method: Log temporary stored alerts if DB connection
|
537 |
+
* is back.
|
538 |
+
*/
|
539 |
+
public function log_temp_alerts() {
|
540 |
+
// Get temporary alerts.
|
541 |
+
$temp_alerts = get_option( 'wsal_temp_alerts', array() );
|
542 |
+
|
543 |
+
if ( empty( $temp_alerts ) ) {
|
544 |
+
return;
|
545 |
+
}
|
546 |
+
|
547 |
+
// Get DB connector.
|
548 |
+
$db_config = WSAL_Connector_ConnectorFactory::GetConfig(); // Get DB connector configuration.
|
549 |
+
$connector = $this->plugin->getConnector( $db_config ); // Get connector for DB.
|
550 |
+
$wsal_db = $connector->getConnection(); // Get DB connection.
|
551 |
+
$connection = 0 !== (int) $wsal_db->dbh->errno ? false : true; // Database connection error check.
|
552 |
+
|
553 |
+
// Check DB connection.
|
554 |
+
if ( $connection ) { // If connected then log temporary alerts in DB.
|
555 |
+
// Log each alert.
|
556 |
+
foreach ( $temp_alerts as $timestamp => $alert ) {
|
557 |
+
$is_migrated = $alert['alert']['is_migrated'];
|
558 |
+
$created_on = $alert['alert']['created_on'];
|
559 |
+
$alert_id = $alert['alert']['alert_id'];
|
560 |
+
$site_id = $alert['alert']['site_id'];
|
561 |
+
|
562 |
+
// Loggers.
|
563 |
+
foreach ( $this->_loggers as $logger ) {
|
564 |
+
$logger->Log( $alert_id, $alert['alert_data'], $created_on, $site_id, $is_migrated );
|
565 |
+
}
|
566 |
+
}
|
567 |
+
|
568 |
+
// Delete temporary alerts.
|
569 |
+
delete_option( 'wsal_temp_alerts' );
|
570 |
+
}
|
571 |
+
}
|
572 |
}
|
classes/AuditLogListView.php
CHANGED
@@ -38,6 +38,16 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
38 |
*/
|
39 |
protected $_gmt_offset_sec = 0;
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
/**
|
42 |
* Method: Constructor.
|
43 |
*
|
@@ -235,9 +245,7 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
235 |
}
|
236 |
}
|
237 |
}
|
238 |
-
|
239 |
-
$cols['data'] = '';
|
240 |
-
}
|
241 |
return $cols;
|
242 |
}
|
243 |
|
@@ -277,6 +285,9 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
277 |
// Get date format.
|
278 |
$datetime_format = $this->_plugin->settings->GetDatetimeFormat();
|
279 |
|
|
|
|
|
|
|
280 |
switch ( $column_name ) {
|
281 |
case 'read':
|
282 |
return '<span class="log-read log-read-'
|
@@ -436,7 +447,8 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
436 |
return '<div id="Event' . $item->id . '">' . $item->GetMessage( array( $this, 'meta_formatter' ) ) . '</div>';
|
437 |
case 'data':
|
438 |
$url = admin_url( 'admin-ajax.php' ) . '?action=AjaxInspector&occurrence=' . $item->id;
|
439 |
-
|
|
|
440 |
. ' href="' . $url . '&TB_iframe=true&width=600&height=550">…</a>';
|
441 |
default:
|
442 |
return isset( $item->$column_name )
|
@@ -505,22 +517,22 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
505 |
}
|
506 |
|
507 |
case '%EditorLinkPost%' == $name:
|
508 |
-
return ' <a target="_blank" href="' . esc_url( $value ) . '">
|
509 |
|
510 |
case '%EditorLinkPage%' == $name:
|
511 |
-
return ' <a target="_blank" href="' . esc_url( $value ) . '">
|
512 |
|
513 |
case '%CategoryLink%' == $name:
|
514 |
-
return ' <a target="_blank" href="' . esc_url( $value ) . '">
|
515 |
|
516 |
case '%TagLink%' == $name:
|
517 |
-
return ' <a target="_blank" href="' . esc_url( $value ) . '">
|
518 |
|
519 |
case '%EditorLinkForum%' == $name:
|
520 |
-
return ' <a target="_blank" href="' . esc_url( $value ) . '">
|
521 |
|
522 |
case '%EditorLinkTopic%' == $name:
|
523 |
-
return ' <a target="_blank" href="' . esc_url( $value ) . '">
|
524 |
|
525 |
case in_array( $name, array( '%MetaValue%', '%MetaValueOld%', '%MetaValueNew%' ) ):
|
526 |
return '<strong>' . (
|
@@ -577,6 +589,14 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
577 |
}
|
578 |
return;
|
579 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
580 |
default:
|
581 |
return '<strong>' . esc_html( $value ) . '</strong>';
|
582 |
}
|
38 |
*/
|
39 |
protected $_gmt_offset_sec = 0;
|
40 |
|
41 |
+
/**
|
42 |
+
* Current Alert ID
|
43 |
+
*
|
44 |
+
* This class member is used to store the alert ID
|
45 |
+
* of the alert which is being rendered.
|
46 |
+
*
|
47 |
+
* @var integer
|
48 |
+
*/
|
49 |
+
private $current_alert_id = 0;
|
50 |
+
|
51 |
/**
|
52 |
* Method: Constructor.
|
53 |
*
|
245 |
}
|
246 |
}
|
247 |
}
|
248 |
+
$cols['data'] = '';
|
|
|
|
|
249 |
return $cols;
|
250 |
}
|
251 |
|
285 |
// Get date format.
|
286 |
$datetime_format = $this->_plugin->settings->GetDatetimeFormat();
|
287 |
|
288 |
+
// Store current alert id.
|
289 |
+
$this->current_alert_id = $item->id;
|
290 |
+
|
291 |
switch ( $column_name ) {
|
292 |
case 'read':
|
293 |
return '<span class="log-read log-read-'
|
447 |
return '<div id="Event' . $item->id . '">' . $item->GetMessage( array( $this, 'meta_formatter' ) ) . '</div>';
|
448 |
case 'data':
|
449 |
$url = admin_url( 'admin-ajax.php' ) . '?action=AjaxInspector&occurrence=' . $item->id;
|
450 |
+
$tooltip = esc_attr__( 'View all details of this change', 'wp-security-audit-log' );
|
451 |
+
return '<a class="more-info thickbox" data-tooltip="' . $tooltip . '" title="' . __( 'Alert Data Inspector', 'wp-security-audit-log' ) . '"'
|
452 |
. ' href="' . $url . '&TB_iframe=true&width=600&height=550">…</a>';
|
453 |
default:
|
454 |
return isset( $item->$column_name )
|
517 |
}
|
518 |
|
519 |
case '%EditorLinkPost%' == $name:
|
520 |
+
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">post</a>';
|
521 |
|
522 |
case '%EditorLinkPage%' == $name:
|
523 |
+
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">page</a>';
|
524 |
|
525 |
case '%CategoryLink%' == $name:
|
526 |
+
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">category</a>';
|
527 |
|
528 |
case '%TagLink%' == $name:
|
529 |
+
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">tag</a>';
|
530 |
|
531 |
case '%EditorLinkForum%' == $name:
|
532 |
+
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">forum</a>';
|
533 |
|
534 |
case '%EditorLinkTopic%' == $name:
|
535 |
+
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">topic</a>';
|
536 |
|
537 |
case in_array( $name, array( '%MetaValue%', '%MetaValueOld%', '%MetaValueNew%' ) ):
|
538 |
return '<strong>' . (
|
589 |
}
|
590 |
return;
|
591 |
|
592 |
+
case '%ReportText%' === $name:
|
593 |
+
return;
|
594 |
+
|
595 |
+
case '%ChangeText%' === $name:
|
596 |
+
$url = admin_url( 'admin-ajax.php' ) . '?action=AjaxInspector&occurrence=' . $this->current_alert_id;
|
597 |
+
return ' View the changes in <a class="thickbox" title="' . __( 'Alert Data Inspector', 'wp-security-audit-log' ) . '"'
|
598 |
+
. ' href="' . $url . '&TB_iframe=true&width=600&height=550">data inspector.</a>';
|
599 |
+
|
600 |
default:
|
601 |
return '<strong>' . esc_html( $value ) . '</strong>';
|
602 |
}
|
classes/Loggers/Database.php
CHANGED
@@ -49,17 +49,43 @@ class WSAL_Loggers_Database extends WSAL_AbstractLogger {
|
|
49 |
return;
|
50 |
}
|
51 |
|
|
|
|
|
|
|
52 |
// Create new occurrence.
|
53 |
$occ = new WSAL_Models_Occurrence();
|
54 |
$occ->is_migrated = $migrated;
|
55 |
-
$occ->created_on = $date;
|
56 |
$occ->alert_id = $type;
|
57 |
$occ->site_id = ! is_null( $siteid ) ? $siteid
|
58 |
: (function_exists( 'get_current_blog_id' ) ? get_current_blog_id() : 0);
|
59 |
-
$occ->Save();
|
60 |
|
61 |
-
//
|
62 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
// Inject for promoting the paid add-ons.
|
65 |
$type = (int) $type;
|
49 |
return;
|
50 |
}
|
51 |
|
52 |
+
// Get temporary stored alerts.
|
53 |
+
$temp_alerts = get_option( 'wsal_temp_alerts', array() );
|
54 |
+
|
55 |
// Create new occurrence.
|
56 |
$occ = new WSAL_Models_Occurrence();
|
57 |
$occ->is_migrated = $migrated;
|
58 |
+
$occ->created_on = is_null( $date ) ? microtime( true ) : $date;
|
59 |
$occ->alert_id = $type;
|
60 |
$occ->site_id = ! is_null( $siteid ) ? $siteid
|
61 |
: (function_exists( 'get_current_blog_id' ) ? get_current_blog_id() : 0);
|
|
|
62 |
|
63 |
+
// Get DB connector.
|
64 |
+
$db_config = WSAL_Connector_ConnectorFactory::GetConfig(); // Get DB connector configuration.
|
65 |
+
$connector = $this->plugin->getConnector( $db_config ); // Get connector for DB.
|
66 |
+
$wsal_db = $connector->getConnection(); // Get DB connection.
|
67 |
+
$connection = 0 !== (int) $wsal_db->dbh->errno ? false : true; // Database connection error check.
|
68 |
+
|
69 |
+
// Check DB connection.
|
70 |
+
if ( $connection ) { // If connected then save the alert in DB.
|
71 |
+
// Save the alert occurrence.
|
72 |
+
$occ->Save();
|
73 |
+
|
74 |
+
// Set up meta data of the alert.
|
75 |
+
$occ->SetMeta( $data );
|
76 |
+
} else { // Else store the alerts in temporary option.
|
77 |
+
// Store current alert in temporary option array.
|
78 |
+
$temp_alerts[ $occ->created_on ]['alert'] = array(
|
79 |
+
'is_migrated' => $occ->is_migrated,
|
80 |
+
'created_on' => $occ->created_on,
|
81 |
+
'alert_id' => $occ->alert_id,
|
82 |
+
'site_id' => $occ->site_id,
|
83 |
+
);
|
84 |
+
$temp_alerts[ $occ->created_on ]['alert_data'] = $data;
|
85 |
+
}
|
86 |
+
|
87 |
+
// Save temporary alerts to options.
|
88 |
+
update_option( 'wsal_temp_alerts', $temp_alerts );
|
89 |
|
90 |
// Inject for promoting the paid add-ons.
|
91 |
$type = (int) $type;
|
classes/Ref.php
ADDED
@@ -0,0 +1,3175 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Inspects and prints out PHP values as HTML in a nicer way than print_r().
|
4 |
+
*
|
5 |
+
* @author digitalnature
|
6 |
+
* @link https://github.com/digitalnature/php-ref GitHub Repository
|
7 |
+
* @version 1.2
|
8 |
+
* @since 3.1.6
|
9 |
+
* @package Wsal
|
10 |
+
*/
|
11 |
+
|
12 |
+
// Exit if accessed directly.
|
13 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
14 |
+
exit;
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Shortcut to ref, HTML mode.
|
19 |
+
*/
|
20 |
+
function wsal_r() {
|
21 |
+
|
22 |
+
// Arguments passed to this function.
|
23 |
+
$args = func_get_args();
|
24 |
+
|
25 |
+
// Options (operators) gathered by the expression parser;
|
26 |
+
// This variable gets passed as reference to getInputExpressions(), which will store the operators in it.
|
27 |
+
$options = array();
|
28 |
+
|
29 |
+
// Names of the arguments that were passed to this function.
|
30 |
+
$expressions = WSAL_Ref::getInputExpressions( $options );
|
31 |
+
$capture = in_array( '@', $options, true );
|
32 |
+
|
33 |
+
// Something went wrong while trying to parse the source expressions?.
|
34 |
+
// If so, silently ignore this part and leave out the expression info.
|
35 |
+
if ( func_num_args() !== count( $expressions ) ) {
|
36 |
+
$expressions = null;
|
37 |
+
}
|
38 |
+
|
39 |
+
// Use HTML formatter only if we're not in CLI mode, or if return was requested.
|
40 |
+
$format = (php_sapi_name() !== 'cli') || $capture ? 'html' : 'cliText';
|
41 |
+
|
42 |
+
// IE goes funky if there's no doctype.
|
43 |
+
if ( ! $capture && ($format === 'html') && ! headers_sent() && ( ! ob_get_level() || ini_get( 'output_buffering' )) ) {
|
44 |
+
print '<!DOCTYPE HTML><html><head><title>REF</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body>';
|
45 |
+
}
|
46 |
+
|
47 |
+
$ref = new WSAL_Ref( $format );
|
48 |
+
|
49 |
+
if ( $capture ) {
|
50 |
+
ob_start();
|
51 |
+
}
|
52 |
+
|
53 |
+
foreach ( $args as $index => $arg ) {
|
54 |
+
$ref->query( $arg, $expressions ? $expressions[ $index ] : null );
|
55 |
+
}
|
56 |
+
|
57 |
+
// Return the results if this function was called with the error suppression operator.
|
58 |
+
if ( $capture ) {
|
59 |
+
return ob_get_clean();
|
60 |
+
}
|
61 |
+
|
62 |
+
// Stop the script if this function was called with the bitwise not operator.
|
63 |
+
if ( in_array( '~', $options, true ) && ($format === 'html') ) {
|
64 |
+
print '</body></html>';
|
65 |
+
exit( 0 );
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Shortcut to ref, plain text mode.
|
73 |
+
*/
|
74 |
+
function wsal_rt() {
|
75 |
+
$args = func_get_args();
|
76 |
+
$options = array();
|
77 |
+
$output = '';
|
78 |
+
$expressions = WSAL_Ref::getInputExpressions( $options );
|
79 |
+
$capture = in_array( '@', $options, true );
|
80 |
+
$ref = new WSAL_Ref( (php_sapi_name() !== 'cli') || $capture ? 'text' : 'cliText' );
|
81 |
+
|
82 |
+
if ( func_num_args() !== count( $expressions ) ) {
|
83 |
+
$expressions = null;
|
84 |
+
}
|
85 |
+
|
86 |
+
if ( ! headers_sent() ) {
|
87 |
+
header( 'Content-Type: text/plain; charset=utf-8' );
|
88 |
+
}
|
89 |
+
|
90 |
+
if ( $capture ) {
|
91 |
+
ob_start();
|
92 |
+
}
|
93 |
+
|
94 |
+
foreach ( $args as $index => $arg ) {
|
95 |
+
$ref->query( $arg, $expressions ? $expressions[ $index ] : null );
|
96 |
+
}
|
97 |
+
|
98 |
+
if ( $capture ) {
|
99 |
+
return ob_get_clean();
|
100 |
+
}
|
101 |
+
|
102 |
+
if ( in_array( '~', $options, true ) ) {
|
103 |
+
exit( 0 );
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
|
108 |
+
|
109 |
+
/**
|
110 |
+
* REF is a nicer alternative to PHP's print_r() / var_dump().
|
111 |
+
*
|
112 |
+
* @version 1.0
|
113 |
+
* @author digitalnature - http://digitalnature.eu
|
114 |
+
*/
|
115 |
+
class WSAL_Ref {
|
116 |
+
|
117 |
+
const MARKER_KEY = '_phpRefArrayMarker_';
|
118 |
+
|
119 |
+
|
120 |
+
|
121 |
+
protected static
|
122 |
+
|
123 |
+
/**
|
124 |
+
* CPU time used for processing
|
125 |
+
*
|
126 |
+
* @var array
|
127 |
+
*/
|
128 |
+
$time = 0,
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Configuration (+ default values)
|
132 |
+
*
|
133 |
+
* @var array
|
134 |
+
*/
|
135 |
+
$config = array(
|
136 |
+
|
137 |
+
// initially expanded levels (for HTML mode only)
|
138 |
+
'expLvl' => 1,
|
139 |
+
|
140 |
+
// depth limit (0 = no limit);
|
141 |
+
// this is not related to recursion
|
142 |
+
'maxDepth' => 6,
|
143 |
+
|
144 |
+
// show the place where r() has been called from
|
145 |
+
'showBacktrace' => true,
|
146 |
+
|
147 |
+
// display iterator contents
|
148 |
+
'showIteratorContents' => false,
|
149 |
+
|
150 |
+
// display extra information about resources
|
151 |
+
'showResourceInfo' => true,
|
152 |
+
|
153 |
+
// display method and parameter list on objects
|
154 |
+
'showMethods' => true,
|
155 |
+
|
156 |
+
// display private properties / methods
|
157 |
+
'showPrivateMembers' => false,
|
158 |
+
|
159 |
+
// peform string matches (date, file, functions, classes, json, serialized data, regex etc.)
|
160 |
+
// note: seriously slows down queries on large amounts of data
|
161 |
+
'showStringMatches' => true,
|
162 |
+
|
163 |
+
// shortcut functions used to access the query method below;
|
164 |
+
// if they are namespaced, the namespace must be present as well (methods are not supported)
|
165 |
+
'shortcutFunc' => array( 'r', 'rt' ),
|
166 |
+
|
167 |
+
// custom/external formatters (as associative array: format => className)
|
168 |
+
'formatters' => array(),
|
169 |
+
|
170 |
+
// stylesheet path (for HTML only);
|
171 |
+
// 'false' means no styles
|
172 |
+
'stylePath' => '{:dir}/ref.css',
|
173 |
+
|
174 |
+
// javascript path (for HTML only);
|
175 |
+
// 'false' means no js
|
176 |
+
'scriptPath' => '{:dir}/ref.js',
|
177 |
+
|
178 |
+
// display url info via cURL
|
179 |
+
'showUrls' => false,
|
180 |
+
|
181 |
+
// stop evaluation after this amount of time (seconds)
|
182 |
+
'timeout' => 10,
|
183 |
+
|
184 |
+
// whether to produce W3c-valid HTML,
|
185 |
+
// or unintelligible, but optimized markup that takes less space
|
186 |
+
'validHtml' => false,
|
187 |
+
),
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Some environment variables
|
191 |
+
* used to determine feature support
|
192 |
+
*
|
193 |
+
* @var array
|
194 |
+
*/
|
195 |
+
$env = array(),
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Timeout point
|
199 |
+
*
|
200 |
+
* @var bool
|
201 |
+
*/
|
202 |
+
$timeout = -1,
|
203 |
+
|
204 |
+
$debug = array(
|
205 |
+
'cacheHits' => 0,
|
206 |
+
'objects' => 0,
|
207 |
+
'arrays' => 0,
|
208 |
+
'scalars' => 0,
|
209 |
+
);
|
210 |
+
|
211 |
+
|
212 |
+
protected
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Output formatter of this instance
|
216 |
+
*
|
217 |
+
* @var RFormatter
|
218 |
+
*/
|
219 |
+
$fmt = null,
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Start time of the current instance
|
223 |
+
*
|
224 |
+
* @var float
|
225 |
+
*/
|
226 |
+
$startTime = 0,
|
227 |
+
|
228 |
+
/**
|
229 |
+
* Internally created objects
|
230 |
+
*
|
231 |
+
* @var SplObjectStorage
|
232 |
+
*/
|
233 |
+
$intObjects = null;
|
234 |
+
|
235 |
+
|
236 |
+
|
237 |
+
/**
|
238 |
+
* Constructor
|
239 |
+
*
|
240 |
+
* @param string|RFormatter $format - Output format ID, or formatter instance defaults to 'html'.
|
241 |
+
* @throws Exception - On error.
|
242 |
+
*/
|
243 |
+
public function __construct( $format = 'html' ) {
|
244 |
+
|
245 |
+
static $didIni = false;
|
246 |
+
|
247 |
+
if ( ! $didIni ) {
|
248 |
+
$didIni = true;
|
249 |
+
foreach ( array_keys( static::$config ) as $key ) {
|
250 |
+
$iniVal = get_cfg_var( 'ref.' . $key );
|
251 |
+
if ( $iniVal !== false ) {
|
252 |
+
static::$config[ $key ] = $iniVal;
|
253 |
+
}
|
254 |
+
}
|
255 |
+
}
|
256 |
+
|
257 |
+
if ( $format instanceof RFormatter ) {
|
258 |
+
$this->fmt = $format;
|
259 |
+
|
260 |
+
} else {
|
261 |
+
$format = isset( static::$config['formatters'][ $format ] ) ? static::$config['formatters'][ $format ] : 'R' . ucfirst( $format ) . 'Formatter';
|
262 |
+
|
263 |
+
if ( ! class_exists( $format, false ) ) {
|
264 |
+
throw new \Exception( sprintf( '%s class not found', $format ) );
|
265 |
+
}
|
266 |
+
|
267 |
+
$this->fmt = new $format();
|
268 |
+
}
|
269 |
+
|
270 |
+
if ( static::$env ) {
|
271 |
+
return;
|
272 |
+
}
|
273 |
+
|
274 |
+
static::$env = array(
|
275 |
+
|
276 |
+
// php 5.4+ ?
|
277 |
+
'is54' => version_compare( PHP_VERSION, '5.4' ) >= 0,
|
278 |
+
|
279 |
+
// php 5.4.6+ ?
|
280 |
+
'is546' => version_compare( PHP_VERSION, '5.4.6' ) >= 0,
|
281 |
+
|
282 |
+
// php 5.6+
|
283 |
+
'is56' => version_compare( PHP_VERSION, '5.6' ) >= 0,
|
284 |
+
|
285 |
+
// php 7.0+ ?
|
286 |
+
'is7' => version_compare( PHP_VERSION, '7.0' ) >= 0,
|
287 |
+
|
288 |
+
// curl extension running?
|
289 |
+
'curlActive' => function_exists( 'curl_version' ),
|
290 |
+
|
291 |
+
// is the 'mbstring' extension active?
|
292 |
+
'mbStr' => function_exists( 'mb_detect_encoding' ),
|
293 |
+
|
294 |
+
// @see: https://bugs.php.net/bug.php?id=52469
|
295 |
+
'supportsDate' => (strncasecmp( PHP_OS, 'WIN', 3 ) !== 0) || (version_compare( PHP_VERSION, '5.3.10' ) >= 0),
|
296 |
+
);
|
297 |
+
}
|
298 |
+
|
299 |
+
|
300 |
+
|
301 |
+
/**
|
302 |
+
* Enforce proper use of this class
|
303 |
+
*
|
304 |
+
* @param string $name
|
305 |
+
*/
|
306 |
+
public function __get( $name ) {
|
307 |
+
throw new \Exception( sprintf( 'No such property: %s', $name ) );
|
308 |
+
}
|
309 |
+
|
310 |
+
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Enforce proper use of this class
|
314 |
+
*
|
315 |
+
* @param string $name
|
316 |
+
* @param mixed $value
|
317 |
+
*/
|
318 |
+
public function __set( $name, $value ) {
|
319 |
+
throw new \Exception( sprintf( 'Cannot set %s. Not allowed', $name ) );
|
320 |
+
}
|
321 |
+
|
322 |
+
|
323 |
+
|
324 |
+
/**
|
325 |
+
* Generate structured information about a variable/value/expression (subject)
|
326 |
+
*
|
327 |
+
* Output is flushed to the screen
|
328 |
+
*
|
329 |
+
* @param mixed $subject
|
330 |
+
* @param string $expression
|
331 |
+
*/
|
332 |
+
public function query( $subject, $expression = null ) {
|
333 |
+
|
334 |
+
if ( static::$timeout > 0 ) {
|
335 |
+
return;
|
336 |
+
}
|
337 |
+
|
338 |
+
$this->startTime = microtime( true );
|
339 |
+
|
340 |
+
$this->intObjects = new \SplObjectStorage();
|
341 |
+
|
342 |
+
$this->fmt->startRoot();
|
343 |
+
$this->fmt->startExp();
|
344 |
+
$this->evaluateExp( $expression );
|
345 |
+
$this->fmt->endExp();
|
346 |
+
$this->evaluate( $subject );
|
347 |
+
$this->fmt->endRoot();
|
348 |
+
$this->fmt->flush();
|
349 |
+
|
350 |
+
static::$time += microtime( true ) - $this->startTime;
|
351 |
+
}
|
352 |
+
|
353 |
+
|
354 |
+
|
355 |
+
|
356 |
+
/**
|
357 |
+
* Executes a function the given number of times and returns the elapsed time.
|
358 |
+
*
|
359 |
+
* Keep in mind that the returned time includes function call overhead (including
|
360 |
+
* microtime calls) x iteration count. This is why this is better suited for
|
361 |
+
* determining which of two or more functions is the fastest, rather than
|
362 |
+
* finding out how fast is a single function.
|
363 |
+
*
|
364 |
+
* @param int $iterations Number of times the function will be executed
|
365 |
+
* @param callable $function Function to execute
|
366 |
+
* @param mixed &$output If given, last return value will be available in this variable
|
367 |
+
* @return double Elapsed time
|
368 |
+
*/
|
369 |
+
public static function timeFunc( $iterations, $function, &$output = null ) {
|
370 |
+
|
371 |
+
$time = 0;
|
372 |
+
|
373 |
+
for ( $i = 0; $i < $iterations; $i++ ) {
|
374 |
+
$start = microtime( true );
|
375 |
+
$output = call_user_func( $function );
|
376 |
+
$time += microtime( true ) - $start;
|
377 |
+
}
|
378 |
+
|
379 |
+
return round( $time, 4 );
|
380 |
+
}
|
381 |
+
|
382 |
+
|
383 |
+
|
384 |
+
/**
|
385 |
+
* Timer utility
|
386 |
+
*
|
387 |
+
* First call of this function will start the timer.
|
388 |
+
* The second call will stop the timer and return the elapsed time
|
389 |
+
* since the timer started.
|
390 |
+
*
|
391 |
+
* Multiple timers can be controlled simultaneously by specifying a timer ID.
|
392 |
+
*
|
393 |
+
* @since 1.0
|
394 |
+
* @param int $id Timer ID, optional
|
395 |
+
* @param int $precision Precision of the result, optional
|
396 |
+
* @return void|double Elapsed time, or void if the timer was just started
|
397 |
+
*/
|
398 |
+
public static function timer( $id = 1, $precision = 4 ) {
|
399 |
+
|
400 |
+
static
|
401 |
+
$timers = array();
|
402 |
+
|
403 |
+
// check if this timer was started, and display the elapsed time if so
|
404 |
+
if ( isset( $timers[ $id ] ) ) {
|
405 |
+
$elapsed = round( microtime( true ) - $timers[ $id ], $precision );
|
406 |
+
unset( $timers[ $id ] );
|
407 |
+
return $elapsed;
|
408 |
+
}
|
409 |
+
|
410 |
+
// ID doesn't exist, start new timer
|
411 |
+
$timers[ $id ] = microtime( true );
|
412 |
+
}
|
413 |
+
|
414 |
+
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Parses a DocBlock comment into a data structure.
|
418 |
+
*
|
419 |
+
* @link http://pear.php.net/manual/en/standards.sample.php
|
420 |
+
* @param string $comment DocBlock comment (must start with /**)
|
421 |
+
* @param string|null $key Field to return (optional)
|
422 |
+
* @return array|string|null Array containing all fields, array/string with the contents of
|
423 |
+
* the requested field, or null if the comment is empty/invalid
|
424 |
+
*/
|
425 |
+
public static function parseComment( $comment, $key = null ) {
|
426 |
+
|
427 |
+
$description = '';
|
428 |
+
$tags = array();
|
429 |
+
$tag = null;
|
430 |
+
$pointer = '';
|
431 |
+
$padding = 0;
|
432 |
+
$comment = preg_split( '/\r\n|\r|\n/', '* ' . trim( $comment, "/* \t\n\r\0\x0B" ) );
|
433 |
+
|
434 |
+
// analyze each line
|
435 |
+
foreach ( $comment as $line ) {
|
436 |
+
|
437 |
+
// drop any wrapping spaces
|
438 |
+
$line = trim( $line );
|
439 |
+
|
440 |
+
// drop "* "
|
441 |
+
if ( $line !== '' ) {
|
442 |
+
$line = substr( $line, 2 );
|
443 |
+
}
|
444 |
+
|
445 |
+
if ( strpos( $line, '@' ) !== 0 ) {
|
446 |
+
|
447 |
+
// preserve formatting of tag descriptions,
|
448 |
+
// because they may span across multiple lines
|
449 |
+
if ( $tag !== null ) {
|
450 |
+
$trimmed = trim( $line );
|
451 |
+
|
452 |
+
if ( $padding !== 0 ) {
|
453 |
+
$trimmed = static::strPad( $trimmed, static::strLen( $line ) - $padding, ' ', STR_PAD_LEFT );
|
454 |
+
} else {
|
455 |
+
$padding = static::strLen( $line ) - static::strLen( $trimmed );
|
456 |
+
}
|
457 |
+
|
458 |
+
$pointer .= "\n{$trimmed}";
|
459 |
+
continue;
|
460 |
+
}
|
461 |
+
|
462 |
+
// tag definitions have not started yet; assume this is part of the description text
|
463 |
+
$description .= "\n{$line}";
|
464 |
+
continue;
|
465 |
+
}
|
466 |
+
|
467 |
+
$padding = 0;
|
468 |
+
$parts = explode( ' ', $line, 2 );
|
469 |
+
|
470 |
+
// invalid tag? (should we include it as an empty array?)
|
471 |
+
if ( ! isset( $parts[1] ) ) {
|
472 |
+
continue;
|
473 |
+
}
|
474 |
+
|
475 |
+
$tag = substr( $parts[0], 1 );
|
476 |
+
$line = ltrim( $parts[1] );
|
477 |
+
|
478 |
+
// tags that have a single component (eg. link, license, author, throws...);
|
479 |
+
// note that @throws may have 2 components, however most people use it like "@throws ExceptionClass if whatever...",
|
480 |
+
// which, if broken into two values, leads to an inconsistent description sentence
|
481 |
+
if ( ! in_array( $tag, array( 'global', 'param', 'return', 'var' ) ) ) {
|
482 |
+
$tags[ $tag ][] = $line;
|
483 |
+
end( $tags[ $tag ] );
|
484 |
+
$pointer = &$tags[ $tag ][ key( $tags[ $tag ] ) ];
|
485 |
+
continue;
|
486 |
+
}
|
487 |
+
|
488 |
+
// tags with 2 or 3 components (var, param, return);
|
489 |
+
$parts = explode( ' ', $line, 2 );
|
490 |
+
$parts[1] = isset( $parts[1] ) ? ltrim( $parts[1] ) : null;
|
491 |
+
$lastIdx = 1;
|
492 |
+
|
493 |
+
// expecting 3 components on the 'param' tag: type varName varDescription
|
494 |
+
if ( $tag === 'param' ) {
|
495 |
+
$lastIdx = 2;
|
496 |
+
if ( in_array( $parts[1][0], array( '&', '$' ), true ) ) {
|
497 |
+
$line = ltrim( array_pop( $parts ) );
|
498 |
+
$parts = array_merge( $parts, explode( ' ', $line, 2 ) );
|
499 |
+
$parts[2] = isset( $parts[2] ) ? ltrim( $parts[2] ) : null;
|
500 |
+
} else {
|
501 |
+
$parts[2] = $parts[1];
|
502 |
+
$parts[1] = null;
|
503 |
+
}
|
504 |
+
}
|
505 |
+
|
506 |
+
$tags[ $tag ][] = $parts;
|
507 |
+
end( $tags[ $tag ] );
|
508 |
+
$pointer = &$tags[ $tag ][ key( $tags[ $tag ] ) ][ $lastIdx ];
|
509 |
+
}
|
510 |
+
|
511 |
+
// split title from the description texts at the nearest 2x new-line combination
|
512 |
+
// (note: loose check because 0 isn't valid as well)
|
513 |
+
if ( strpos( $description, "\n\n" ) ) {
|
514 |
+
list($title, $description) = explode( "\n\n", $description, 2 );
|
515 |
+
|
516 |
+
// if we don't have 2 new lines, try to extract first sentence
|
517 |
+
} else {
|
518 |
+
// in order for a sentence to be considered valid,
|
519 |
+
// the next one must start with an uppercase letter
|
520 |
+
$sentences = preg_split( '/(?<=[.?!])\s+(?=[A-Z])/', $description, 2, PREG_SPLIT_NO_EMPTY );
|
521 |
+
|
522 |
+
// failed to detect a second sentence? then assume there's only title and no description text
|
523 |
+
$title = isset( $sentences[0] ) ? $sentences[0] : $description;
|
524 |
+
$description = isset( $sentences[1] ) ? $sentences[1] : '';
|
525 |
+
}
|
526 |
+
|
527 |
+
$title = ltrim( $title );
|
528 |
+
$description = ltrim( $description );
|
529 |
+
|
530 |
+
$data = compact( 'title', 'description', 'tags' );
|
531 |
+
|
532 |
+
if ( ! array_filter( $data ) ) {
|
533 |
+
return null;
|
534 |
+
}
|
535 |
+
|
536 |
+
if ( $key !== null ) {
|
537 |
+
return isset( $data[ $key ] ) ? $data[ $key ] : null;
|
538 |
+
}
|
539 |
+
|
540 |
+
return $data;
|
541 |
+
}
|
542 |
+
|
543 |
+
|
544 |
+
|
545 |
+
/**
|
546 |
+
* Split a regex into its components
|
547 |
+
*
|
548 |
+
* Based on "Regex Colorizer" by Steven Levithan (this is a translation from javascript)
|
549 |
+
*
|
550 |
+
* @link https://github.com/slevithan/regex-colorizer
|
551 |
+
* @link https://github.com/symfony/Finder/blob/master/Expression/Regex.php#L64-74
|
552 |
+
* @param string $pattern
|
553 |
+
* @return array
|
554 |
+
*/
|
555 |
+
public static function splitRegex( $pattern ) {
|
556 |
+
|
557 |
+
// detection attempt code from the Symfony Finder component
|
558 |
+
$maybeValid = false;
|
559 |
+
if ( preg_match( '/^(.{3,}?)([imsxuADU]*)$/', $pattern, $m ) ) {
|
560 |
+
$start = substr( $m[1], 0, 1 );
|
561 |
+
$end = substr( $m[1], -1 );
|
562 |
+
|
563 |
+
if ( ($start === $end && ! preg_match( '/[*?[:alnum:] \\\\]/', $start )) || ($start === '{' && $end === '}') ) {
|
564 |
+
$maybeValid = true;
|
565 |
+
}
|
566 |
+
}
|
567 |
+
|
568 |
+
if ( ! $maybeValid ) {
|
569 |
+
throw new \Exception( 'Pattern does not appear to be a valid PHP regex' );
|
570 |
+
}
|
571 |
+
|
572 |
+
$output = array();
|
573 |
+
$capturingGroupCount = 0;
|
574 |
+
$groupStyleDepth = 0;
|
575 |
+
$openGroups = array();
|
576 |
+
$lastIsQuant = false;
|
577 |
+
$lastType = 1; // 1 = none; 2 = alternator
|
578 |
+
$lastStyle = null;
|
579 |
+
|
580 |
+
preg_match_all( '/\[\^?]?(?:[^\\\\\]]+|\\\\[\S\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\\\]+|./', $pattern, $matches );
|
581 |
+
|
582 |
+
$matches = $matches[0];
|
583 |
+
|
584 |
+
$getTokenCharCode = function( $token ) {
|
585 |
+
if ( strlen( $token ) > 1 && $token[0] === '\\' ) {
|
586 |
+
$t1 = substr( $token, 1 );
|
587 |
+
|
588 |
+
if ( preg_match( '/^c[A-Za-z]$/', $t1 ) ) {
|
589 |
+
return strpos( 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', strtoupper( $t1[1] ) ) + 1;
|
590 |
+
}
|
591 |
+
|
592 |
+
if ( preg_match( '/^(?:x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})$/', $t1 ) ) {
|
593 |
+
return intval( substr( $t1, 1 ), 16 );
|
594 |
+
}
|
595 |
+
|
596 |
+
if ( preg_match( '/^(?:[0-3][0-7]{0,2}|[4-7][0-7]?)$/', $t1 ) ) {
|
597 |
+
return intval( $t1, 8 );
|
598 |
+
}
|
599 |
+
|
600 |
+
$len = strlen( $t1 );
|
601 |
+
|
602 |
+
if ( $len === 1 && strpos( 'cuxDdSsWw', $t1 ) !== false ) {
|
603 |
+
return null;
|
604 |
+
}
|
605 |
+
|
606 |
+
if ( $len === 1 ) {
|
607 |
+
switch ( $t1 ) {
|
608 |
+
case 'b':
|
609 |
+
return 8;
|
610 |
+
case 'f':
|
611 |
+
return 12;
|
612 |
+
case 'n':
|
613 |
+
return 10;
|
614 |
+
case 'r':
|
615 |
+
return 13;
|
616 |
+
case 't':
|
617 |
+
return 9;
|
618 |
+
case 'v':
|
619 |
+
return 11;
|
620 |
+
default:
|
621 |
+
return $t1[0];
|
622 |
+
}
|
623 |
+
}
|
624 |
+
}
|
625 |
+
|
626 |
+
return ($token !== '\\') ? $token[0] : null;
|
627 |
+
};
|
628 |
+
|
629 |
+
foreach ( $matches as $m ) {
|
630 |
+
|
631 |
+
if ( $m[0] === '[' ) {
|
632 |
+
$lastCC = null;
|
633 |
+
$cLastRangeable = false;
|
634 |
+
$cLastType = 0; // 0 = none; 1 = range hyphen; 2 = short class
|
635 |
+
|
636 |
+
preg_match( '/^(\[\^?)(]?(?:[^\\\\\]]+|\\\\[\S\s]?)*)(]?)$/', $m, $parts );
|
637 |
+
|
638 |
+
array_shift( $parts );
|
639 |
+
list($opening, $content, $closing) = $parts;
|
640 |
+
|
641 |
+
if ( ! $closing ) {
|
642 |
+
throw new \Exception( 'Unclosed character class' );
|
643 |
+
}
|
644 |
+
|
645 |
+
preg_match_all( '/[^\\\\-]+|-|\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/', $content, $ccTokens );
|
646 |
+
$ccTokens = $ccTokens[0];
|
647 |
+
$ccTokenCount = count( $ccTokens );
|
648 |
+
$output[] = array(
|
649 |
+
'chr' => $opening,
|
650 |
+
);
|
651 |
+
|
652 |
+
foreach ( $ccTokens as $i => $cm ) {
|
653 |
+
|
654 |
+
if ( $cm[0] === '\\' ) {
|
655 |
+
if ( preg_match( '/^\\\\[cux]$/', $cm ) ) {
|
656 |
+
throw new \Exception( 'Incomplete regex token' );
|
657 |
+
}
|
658 |
+
|
659 |
+
if ( preg_match( '/^\\\\[dsw]$/i', $cm ) ) {
|
660 |
+
$output[] = array(
|
661 |
+
'chr-meta' => $cm,
|
662 |
+
);
|
663 |
+
$cLastRangeable = ($cLastType !== 1);
|
664 |
+
$cLastType = 2;
|
665 |
+
|
666 |
+
} elseif ( $cm === '\\' ) {
|
667 |
+
throw new \Exception( 'Incomplete regex token' );
|
668 |
+
|
669 |
+
} else {
|
670 |
+
$output[] = array(
|
671 |
+
'chr-meta' => $cm,
|
672 |
+
);
|
673 |
+
$cLastRangeable = $cLastType !== 1;
|
674 |
+
$lastCC = $getTokenCharCode( $cm );
|
675 |
+
}
|
676 |
+
} elseif ( $cm === '-' ) {
|
677 |
+
if ( $cLastRangeable ) {
|
678 |
+
$nextToken = ($i + 1 < $ccTokenCount) ? $ccTokens[ $i + 1 ] : false;
|
679 |
+
|
680 |
+
if ( $nextToken ) {
|
681 |
+
$nextTokenCharCode = $getTokenCharCode( $nextToken[0] );
|
682 |
+
|
683 |
+
if ( ( ! is_null( $nextTokenCharCode ) && $lastCC > $nextTokenCharCode) || $cLastType === 2 || preg_match( '/^\\\\[dsw]$/i', $nextToken[0] ) ) {
|
684 |
+
throw new \Exception( 'Reversed or invalid range' );
|
685 |
+
}
|
686 |
+
|
687 |
+
$output[] = array(
|
688 |
+
'chr-range' => '-',
|
689 |
+
);
|
690 |
+
$cLastRangeable = false;
|
691 |
+
$cLastType = 1;
|
692 |
+
|
693 |
+
} else {
|
694 |
+
$output[] = $closing ? array(
|
695 |
+
'chr' => '-',
|
696 |
+
) : array(
|
697 |
+
'chr-range' => '-',
|
698 |
+
);
|
699 |
+
}
|
700 |
+
} else {
|
701 |
+
$output[] = array(
|
702 |
+
'chr' => '-',
|
703 |
+
);
|
704 |
+
$cLastRangeable = ($cLastType !== 1);
|
705 |
+
}
|
706 |
+
} else {
|
707 |
+
$output[] = array(
|
708 |
+
'chr' => $cm,
|
709 |
+
);
|
710 |
+
$cLastRangeable = strlen( $cm ) > 1 || ($cLastType !== 1);
|
711 |
+
$lastCC = $cm[ strlen( $cm ) - 1 ];
|
712 |
+
}
|
713 |
+
}
|
714 |
+
|
715 |
+
$output[] = array(
|
716 |
+
'chr' => $closing,
|
717 |
+
);
|
718 |
+
$lastIsQuant = true;
|
719 |
+
|
720 |
+
} elseif ( $m[0] === '(' ) {
|
721 |
+
if ( strlen( $m ) === 2 ) {
|
722 |
+
throw new \Exception( 'Invalid or unsupported group type' );
|
723 |
+
}
|
724 |
+
|
725 |
+
if ( strlen( $m ) === 1 ) {
|
726 |
+
$capturingGroupCount++;
|
727 |
+
}
|
728 |
+
|
729 |
+
$groupStyleDepth = ($groupStyleDepth !== 5) ? $groupStyleDepth + 1 : 1;
|
730 |
+
$openGroups[] = $m; // opening
|
731 |
+
$lastIsQuant = false;
|
732 |
+
$output[] = array(
|
733 |
+
"g{$groupStyleDepth}" => $m,
|
734 |
+
);
|
735 |
+
|
736 |
+
} elseif ( $m[0] === ')' ) {
|
737 |
+
if ( ! count( $openGroups ) ) {
|
738 |
+
throw new \Exception( 'No matching opening parenthesis' );
|
739 |
+
}
|
740 |
+
|
741 |
+
$output[] = array(
|
742 |
+
'g' . $groupStyleDepth => ')',
|
743 |
+
);
|
744 |
+
$prevGroup = $openGroups[ count( $openGroups ) - 1 ];
|
745 |
+
$prevGroup = isset( $prevGroup[2] ) ? $prevGroup[2] : '';
|
746 |
+
$lastIsQuant = ! preg_match( '/^[=!]/', $prevGroup );
|
747 |
+
$lastStyle = "g{$groupStyleDepth}";
|
748 |
+
$lastType = 0;
|
749 |
+
$groupStyleDepth = ($groupStyleDepth !== 1) ? $groupStyleDepth - 1 : 5;
|
750 |
+
|
751 |
+
array_pop( $openGroups );
|
752 |
+
continue;
|
753 |
+
|
754 |
+
} elseif ( $m[0] === '\\' ) {
|
755 |
+
if ( isset( $m[1] ) && preg_match( '/^[1-9]/', $m[1] ) ) {
|
756 |
+
$nonBackrefDigits = '';
|
757 |
+
$num = substr( +$m, 1 );
|
758 |
+
|
759 |
+
while ( $num > $capturingGroupCount ) {
|
760 |
+
preg_match( '/[0-9]$/', $num, $digits );
|
761 |
+
$nonBackrefDigits = $digits[0] . $nonBackrefDigits;
|
762 |
+
$num = floor( $num / 10 );
|
763 |
+
}
|
764 |
+
|
765 |
+
if ( $num > 0 ) {
|
766 |
+
$output[] = array(
|
767 |
+
'meta' => "\\{$num}",
|
768 |
+
'text' => $nonBackrefDigits,
|
769 |
+
);
|
770 |
+
|
771 |
+
} else {
|
772 |
+
preg_match( '/^\\\\([0-3][0-7]{0,2}|[4-7][0-7]?|[89])([0-9]*)/', $m, $pts );
|
773 |
+
$output[] = array(
|
774 |
+
'meta' => '\\' . $pts[1],
|
775 |
+
'text' => $pts[2],
|
776 |
+
);
|
777 |
+
}
|
778 |
+
|
779 |
+
$lastIsQuant = true;
|
780 |
+
|
781 |
+
} elseif ( isset( $m[1] ) && preg_match( '/^[0bBcdDfnrsStuvwWx]/', $m[1] ) ) {
|
782 |
+
|
783 |
+
if ( preg_match( '/^\\\\[cux]$/', $m ) ) {
|
784 |
+
throw new \Exception( 'Incomplete regex token' );
|
785 |
+
}
|
786 |
+
|
787 |
+
$output[] = array(
|
788 |
+
'meta' => $m,
|
789 |
+
);
|
790 |
+
$lastIsQuant = (strpos( 'bB', $m[1] ) === false);
|
791 |
+
|
792 |
+
} elseif ( $m === '\\' ) {
|
793 |
+
throw new \Exception( 'Incomplete regex token' );
|
794 |
+
|
795 |
+
} else {
|
796 |
+
$output[] = array(
|
797 |
+
'text' => $m,
|
798 |
+
);
|
799 |
+
$lastIsQuant = true;
|
800 |
+
}
|
801 |
+
} elseif ( preg_match( '/^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/', $m ) ) {
|
802 |
+
if ( ! $lastIsQuant ) {
|
803 |
+
throw new \Exception( 'Quantifiers must be preceded by a token that can be repeated' );
|
804 |
+
}
|
805 |
+
|
806 |
+
preg_match( '/^\{([0-9]+)(?:,([0-9]*))?/', $m, $interval );
|
807 |
+
|
808 |
+
if ( $interval && (+$interval[1] > 65535 || (isset( $interval[2] ) && (+$interval[2] > 65535))) ) {
|
809 |
+
throw new \Exception( 'Interval quantifier cannot use value over 65,535' );
|
810 |
+
}
|
811 |
+
|
812 |
+
if ( $interval && isset( $interval[2] ) && (+$interval[1] > +$interval[2]) ) {
|
813 |
+
throw new \Exception( 'Interval quantifier range is reversed' );
|
814 |
+
}
|
815 |
+
|
816 |
+
$output[] = array(
|
817 |
+
$lastStyle ? $lastStyle : 'meta' => $m,
|
818 |
+
);
|
819 |
+
$lastIsQuant = false;
|
820 |
+
|
821 |
+
} elseif ( $m === '|' ) {
|
822 |
+
if ( $lastType === 1 || ($lastType === 2 && ! count( $openGroups )) ) {
|
823 |
+
throw new \Exception( 'Empty alternative effectively truncates the regex here' );
|
824 |
+
}
|
825 |
+
|
826 |
+
$output[] = count( $openGroups ) ? array(
|
827 |
+
"g{$groupStyleDepth}" => '|',
|
828 |
+
) : array(
|
829 |
+
'meta' => '|',
|
830 |
+
);
|
831 |
+
$lastIsQuant = false;
|
832 |
+
$lastType = 2;
|
833 |
+
$lastStyle = '';
|
834 |
+
continue;
|
835 |
+
|
836 |
+
} elseif ( $m === '^' || $m === '$' ) {
|
837 |
+
$output[] = array(
|
838 |
+
'meta' => $m,
|
839 |
+
);
|
840 |
+
$lastIsQuant = false;
|
841 |
+
|
842 |
+
} elseif ( $m === '.' ) {
|
843 |
+
$output[] = array(
|
844 |
+
'meta' => '.',
|
845 |
+
);
|
846 |
+
$lastIsQuant = true;
|
847 |
+
|
848 |
+
} else {
|
849 |
+
$output[] = array(
|
850 |
+
'text' => $m,
|
851 |
+
);
|
852 |
+
$lastIsQuant = true;
|
853 |
+
}
|
854 |
+
|
855 |
+
$lastType = 0;
|
856 |
+
$lastStyle = '';
|
857 |
+
}
|
858 |
+
|
859 |
+
if ( $openGroups ) {
|
860 |
+
throw new \Exception( 'Unclosed grouping' );
|
861 |
+
}
|
862 |
+
|
863 |
+
return $output;
|
864 |
+
}
|
865 |
+
|
866 |
+
|
867 |
+
|
868 |
+
/**
|
869 |
+
* Set or get configuration options
|
870 |
+
*
|
871 |
+
* @param string $key
|
872 |
+
* @param mixed|null $value
|
873 |
+
* @return mixed
|
874 |
+
*/
|
875 |
+
public static function config( $key, $value = null ) {
|
876 |
+
|
877 |
+
if ( ! array_key_exists( $key, static::$config ) ) {
|
878 |
+
throw new \Exception( sprintf( 'Unrecognized option: "%s". Valid options are: %s', $key, implode( ', ', array_keys( static::$config ) ) ) );
|
879 |
+
}
|
880 |
+
|
881 |
+
if ( $value === null ) {
|
882 |
+
return static::$config[ $key ];
|
883 |
+
}
|
884 |
+
|
885 |
+
if ( is_array( static::$config[ $key ] ) ) {
|
886 |
+
return static::$config[ $key ] = (array) $value;
|
887 |
+
}
|
888 |
+
|
889 |
+
return static::$config[ $key ] = $value;
|
890 |
+
}
|
891 |
+
|
892 |
+
|
893 |
+
|
894 |
+
/**
|
895 |
+
* Total CPU time used by the class
|
896 |
+
*
|
897 |
+
* @param int precision
|
898 |
+
* @return double
|
899 |
+
*/
|
900 |
+
public static function getTime( $precision = 4 ) {
|
901 |
+
return round( static::$time, $precision );
|
902 |
+
}
|
903 |
+
|
904 |
+
|
905 |
+
|
906 |
+
/**
|
907 |
+
* Get relevant backtrace info for last ref call
|
908 |
+
*
|
909 |
+
* @return array|false
|
910 |
+
*/
|
911 |
+
public static function getBacktrace() {
|
912 |
+
|
913 |
+
// pull only basic info with php 5.3.6+ to save some memory
|
914 |
+
$trace = defined( 'DEBUG_BACKTRACE_IGNORE_ARGS' ) ? debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ) : debug_backtrace();
|
915 |
+
|
916 |
+
while ( $callee = array_pop( $trace ) ) {
|
917 |
+
|
918 |
+
// extract only the information we neeed
|
919 |
+
$callee = array_intersect_key( $callee, array_fill_keys( array( 'file', 'function', 'line' ), false ) );
|
920 |
+
extract( $callee, EXTR_OVERWRITE );
|
921 |
+
|
922 |
+
// skip, if the called function doesn't match the shortcut function name
|
923 |
+
if ( ! $function || ! in_array( mb_strtolower( (string) $function ), static::$config['shortcutFunc'] ) ) {
|
924 |
+
continue;
|
925 |
+
}
|
926 |
+
|
927 |
+
return compact( 'file', 'function', 'line' );
|
928 |
+
}
|
929 |
+
|
930 |
+
return false;
|
931 |
+
}
|
932 |
+
|
933 |
+
|
934 |
+
|
935 |
+
/**
|
936 |
+
* Determines the input expression(s) passed to the shortcut function
|
937 |
+
*
|
938 |
+
* @param array &$options Optional, options to gather (from operators)
|
939 |
+
* @return array Array of string expressions
|
940 |
+
*/
|
941 |
+
public static function getInputExpressions( array &$options = null ) {
|
942 |
+
|
943 |
+
// used to determine the position of the current call,
|
944 |
+
// if more queries calls were made on the same line
|
945 |
+
static $lineInst = array();
|
946 |
+
|
947 |
+
$trace = static::getBacktrace();
|
948 |
+
|
949 |
+
if ( ! $trace ) {
|
950 |
+
return array();
|
951 |
+
}
|
952 |
+
|
953 |
+
extract( $trace );
|
954 |
+
|
955 |
+
$code = file( $file );
|
956 |
+
$code = $code[ $line - 1 ]; // multiline expressions not supported!
|
957 |
+
$instIndx = 0;
|
958 |
+
$tokens = token_get_all( "<?php {$code}" );
|
959 |
+
|
960 |
+
// locate the caller position in the line, and isolate argument tokens
|
961 |
+
foreach ( $tokens as $i => $token ) {
|
962 |
+
|
963 |
+
// match token with our shortcut function name
|
964 |
+
if ( is_string( $token ) || ($token[0] !== T_STRING) || (strcasecmp( $token[1], $function ) !== 0) ) {
|
965 |
+
continue;
|
966 |
+
}
|
967 |
+
|
968 |
+
// is this some method that happens to have the same name as the shortcut function?
|
969 |
+
if ( isset( $tokens[ $i - 1 ] ) && is_array( $tokens[ $i - 1 ] ) && in_array( $tokens[ $i - 1 ][0], array( T_DOUBLE_COLON, T_OBJECT_OPERATOR ), true ) ) {
|
970 |
+
continue;
|
971 |
+
}
|
972 |
+
|
973 |
+
// find argument definition start, just after '('
|
974 |
+
if ( isset( $tokens[ $i + 1 ] ) && ($tokens[ $i + 1 ][0] === '(') ) {
|
975 |
+
$instIndx++;
|
976 |
+
|
977 |
+
if ( ! isset( $lineInst[ $line ] ) ) {
|
978 |
+
$lineInst[ $line ] = 0;
|
979 |
+
}
|
980 |
+
|
981 |
+
if ( $instIndx <= $lineInst[ $line ] ) {
|
982 |
+
continue;
|
983 |
+
}
|
984 |
+
|
985 |
+
$lineInst[ $line ]++;
|
986 |
+
|
987 |
+
// gather options
|
988 |
+
if ( $options !== null ) {
|
989 |
+
$j = $i - 1;
|
990 |
+
while ( isset( $tokens[ $j ] ) && is_string( $tokens[ $j ] ) && in_array( $tokens[ $j ], array( '@', '+', '-', '!', '~' ) ) ) {
|
991 |
+
$options[] = $tokens[ $j-- ];
|
992 |
+
}
|
993 |
+
}
|
994 |
+
|
995 |
+
$lvl = $index = $curlies = 0;
|
996 |
+
$expressions = array();
|
997 |
+
|
998 |
+
// get the expressions
|
999 |
+
foreach ( array_slice( $tokens, $i + 2 ) as $token ) {
|
1000 |
+
|
1001 |
+
if ( is_array( $token ) ) {
|
1002 |
+
if ( $token[0] !== T_COMMENT ) {
|
1003 |
+
$expressions[ $index ][] = ($token[0] !== T_WHITESPACE) ? $token[1] : ' ';
|
1004 |
+
}
|
1005 |
+
|
1006 |
+
continue;
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
if ( $token === '{' ) {
|
1010 |
+
$curlies++;
|
1011 |
+
}
|
1012 |
+
|
1013 |
+
if ( $token === '}' ) {
|
1014 |
+
$curlies--;
|
1015 |
+
}
|
1016 |
+
|
1017 |
+
if ( $token === '(' ) {
|
1018 |
+
$lvl++;
|
1019 |
+
}
|
1020 |
+
|
1021 |
+
if ( $token === ')' ) {
|
1022 |
+
$lvl--;
|
1023 |
+
}
|
1024 |
+
|
1025 |
+
// assume next argument if a comma was encountered,
|
1026 |
+
// and we're not insde a curly bracket or inner parentheses
|
1027 |
+
if ( ($curlies < 1) && ($lvl === 0) && ($token === ',') ) {
|
1028 |
+
$index++;
|
1029 |
+
continue;
|
1030 |
+
}
|
1031 |
+
|
1032 |
+
// negative parentheses count means we reached the end of argument definitions
|
1033 |
+
if ( $lvl < 0 ) {
|
1034 |
+
foreach ( $expressions as &$expression ) {
|
1035 |
+
$expression = trim( implode( '', $expression ) );
|
1036 |
+
}
|
1037 |
+
|
1038 |
+
return $expressions;
|
1039 |
+
}
|
1040 |
+
|
1041 |
+
$expressions[ $index ][] = $token;
|
1042 |
+
}
|
1043 |
+
|
1044 |
+
break;
|
1045 |
+
}
|
1046 |
+
}
|
1047 |
+
|
1048 |
+
}
|
1049 |
+
|
1050 |
+
|
1051 |
+
|
1052 |
+
/**
|
1053 |
+
* Get all parent classes of a class
|
1054 |
+
*
|
1055 |
+
* @param Reflector $class Reflection object
|
1056 |
+
* @return array Array of ReflectionClass objects (starts with the ancestor, ends with the given class)
|
1057 |
+
*/
|
1058 |
+
protected static function getParentClasses( \Reflector $class ) {
|
1059 |
+
|
1060 |
+
$parents = array( $class );
|
1061 |
+
while ( ($class = $class->getParentClass()) !== false ) {
|
1062 |
+
$parents[] = $class;
|
1063 |
+
}
|
1064 |
+
|
1065 |
+
return array_reverse( $parents );
|
1066 |
+
}
|
1067 |
+
|
1068 |
+
|
1069 |
+
|
1070 |
+
/**
|
1071 |
+
* Generate class / function info
|
1072 |
+
*
|
1073 |
+
* @param Reflector $reflector Class name or reflection object
|
1074 |
+
* @param string $single Skip parent classes
|
1075 |
+
* @param Reflector|null $context Object context (for methods)
|
1076 |
+
* @return string
|
1077 |
+
*/
|
1078 |
+
protected function fromReflector( \Reflector $reflector, $single = '', \Reflector $context = null ) {
|
1079 |
+
|
1080 |
+
// @todo: test this
|
1081 |
+
$hash = var_export( func_get_args(), true );
|
1082 |
+
// $hash = $reflector->getName() . ';' . $single . ';' . ($context ? $context->getName() : '');
|
1083 |
+
if ( $this->fmt->didCache( $hash ) ) {
|
1084 |
+
static::$debug['cacheHits']++;
|
1085 |
+
return;
|
1086 |
+
}
|
1087 |
+
|
1088 |
+
$items = array( $reflector );
|
1089 |
+
|
1090 |
+
if ( ($single === '') && ($reflector instanceof \ReflectionClass) ) {
|
1091 |
+
$items = static::getParentClasses( $reflector );
|
1092 |
+
}
|
1093 |
+
|
1094 |
+
$first = true;
|
1095 |
+
foreach ( $items as $item ) {
|
1096 |
+
|
1097 |
+
if ( ! $first ) {
|
1098 |
+
$this->fmt->sep( ' :: ' );
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
$first = false;
|
1102 |
+
$name = ($single !== '') ? $single : $item->getName();
|
1103 |
+
$comments = $item->isInternal() ? array() : static::parseComment( $item->getDocComment() );
|
1104 |
+
$meta = array(
|
1105 |
+
'sub' => array(),
|
1106 |
+
);
|
1107 |
+
$bubbles = array();
|
1108 |
+
|
1109 |
+
if ( $item->isInternal() ) {
|
1110 |
+
$extension = $item->getExtension();
|
1111 |
+
$meta['title'] = ($extension instanceof \ReflectionExtension) ? sprintf( 'Internal - part of %s (%s)', $extension->getName(), $extension->getVersion() ) : 'Internal';
|
1112 |
+
|
1113 |
+
} else {
|
1114 |
+
$comments = static::parseComment( $item->getDocComment() );
|
1115 |
+
|
1116 |
+
if ( $comments ) {
|
1117 |
+
$meta += $comments;
|
1118 |
+
}
|
1119 |
+
|
1120 |
+
$meta['sub'][] = array( 'Defined in', basename( $item->getFileName() ) . ':' . $item->getStartLine() );
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
if ( ($item instanceof \ReflectionFunction) || ($item instanceof \ReflectionMethod) ) {
|
1124 |
+
if ( ($context !== null) && ($context->getShortName() !== $item->getDeclaringClass()->getShortName()) ) {
|
1125 |
+
$meta['sub'][] = array( 'Inherited from', $item->getDeclaringClass()->getShortName() );
|
1126 |
+
}
|
1127 |
+
|
1128 |
+
// @note: PHP 7 seems to crash when calling getPrototype on Closure::__invoke()
|
1129 |
+
if ( ($item instanceof \ReflectionMethod) && ! $item->isInternal() ) {
|
1130 |
+
try {
|
1131 |
+
$proto = $item->getPrototype();
|
1132 |
+
$meta['sub'][] = array( 'Prototype defined by', $proto->class );
|
1133 |
+
} catch ( \Exception $e ) {
|
1134 |
+
}
|
1135 |
+
}
|
1136 |
+
|
1137 |
+
$this->fmt->text( 'name', $name, $meta, $this->linkify( $item ) );
|
1138 |
+
continue;
|
1139 |
+
}
|
1140 |
+
|
1141 |
+
// @todo: maybe - list interface methods
|
1142 |
+
if ( ! ($item->isInterface() || (static::$env['is54'] && $item->isTrait())) ) {
|
1143 |
+
|
1144 |
+
if ( $item->isAbstract() ) {
|
1145 |
+
$bubbles[] = array( 'A', 'Abstract' );
|
1146 |
+
}
|
1147 |
+
|
1148 |
+
if ( static::$env['is7'] && $item->isAnonymous() ) {
|
1149 |
+
$bubbles[] = array( '?', 'Anonymous' );
|
1150 |
+
}
|
1151 |
+
|
1152 |
+
if ( $item->isFinal() ) {
|
1153 |
+
$bubbles[] = array( 'F', 'Final' );
|
1154 |
+
}
|
1155 |
+
|
1156 |
+
// php 5.4+ only
|
1157 |
+
if ( static::$env['is54'] && $item->isCloneable() ) {
|
1158 |
+
$bubbles[] = array( 'C', 'Cloneable' );
|
1159 |
+
}
|
1160 |
+
|
1161 |
+
if ( $item->isIterateable() ) {
|
1162 |
+
$bubbles[] = array( 'X', 'Iterateable' );
|
1163 |
+
}
|
1164 |
+
}
|
1165 |
+
|
1166 |
+
if ( $item->isInterface() && $single !== '' ) {
|
1167 |
+
$bubbles[] = array( 'I', 'Interface' );
|
1168 |
+
}
|
1169 |
+
|
1170 |
+
if ( $bubbles ) {
|
1171 |
+
$this->fmt->bubbles( $bubbles );
|
1172 |
+
}
|
1173 |
+
|
1174 |
+
if ( $item->isInterface() && $single === '' ) {
|
1175 |
+
$name .= sprintf( ' (%d)', count( $item->getMethods() ) );
|
1176 |
+
}
|
1177 |
+
|
1178 |
+
$this->fmt->text( 'name', $name, $meta, $this->linkify( $item ) );
|
1179 |
+
}
|
1180 |
+
|
1181 |
+
$this->fmt->cacheLock( $hash );
|
1182 |
+
}
|
1183 |
+
|
1184 |
+
|
1185 |
+
|
1186 |
+
/**
|
1187 |
+
* Generates an URL that points to the documentation page relevant for the requested context
|
1188 |
+
*
|
1189 |
+
* For internal functions and classes, the URI will point to the local PHP manual
|
1190 |
+
* if installed and configured, otherwise to php.net/manual (the english one)
|
1191 |
+
*
|
1192 |
+
* @param Reflector $reflector Reflector object (used to determine the URL scheme for internal stuff)
|
1193 |
+
* @param string|null $constant Constant name, if this is a request to linkify a constant
|
1194 |
+
* @return string|null URL
|
1195 |
+
*/
|
1196 |
+
protected function linkify( \Reflector $reflector, $constant = null ) {
|
1197 |
+
|
1198 |
+
static $docRefRoot = null, $docRefExt = null;
|
1199 |
+
|
1200 |
+
// most people don't have this set
|
1201 |
+
if ( ! $docRefRoot ) {
|
1202 |
+
$docRefRoot = ($docRefRoot = rtrim( ini_get( 'docref_root' ), '/' )) ? $docRefRoot : 'http://php.net/manual/en';
|
1203 |
+
}
|
1204 |
+
|
1205 |
+
if ( ! $docRefExt ) {
|
1206 |
+
$docRefExt = ($docRefExt = ini_get( 'docref_ext' )) ? $docRefExt : '.php';
|
1207 |
+
}
|
1208 |
+
|
1209 |
+
$phpNetSchemes = array(
|
1210 |
+
'class' => $docRefRoot . '/class.%s' . $docRefExt,
|
1211 |
+
'function' => $docRefRoot . '/function.%s' . $docRefExt,
|
1212 |
+
'method' => $docRefRoot . '/%2$s.%1$s' . $docRefExt,
|
1213 |
+
'property' => $docRefRoot . '/class.%2$s' . $docRefExt . '#%2$s.props.%1$s',
|
1214 |
+
'constant' => $docRefRoot . '/class.%2$s' . $docRefExt . '#%2$s.constants.%1$s',
|
1215 |
+
);
|
1216 |
+
|
1217 |
+
$url = null;
|
1218 |
+
$args = array();
|
1219 |
+
|
1220 |
+
// determine scheme
|
1221 |
+
if ( $constant !== null ) {
|
1222 |
+
$type = 'constant';
|
1223 |
+
$args[] = $constant;
|
1224 |
+
|
1225 |
+
} else {
|
1226 |
+
$type = explode( '\\', get_class( $reflector ) );
|
1227 |
+
$type = strtolower( ltrim( end( $type ), 'Reflection' ) );
|
1228 |
+
|
1229 |
+
if ( $type === 'object' ) {
|
1230 |
+
$type = 'class';
|
1231 |
+
}
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
// properties don't have the internal flag;
|
1235 |
+
// also note that many internal classes use some kind of magic as properties (eg. DateTime);
|
1236 |
+
// these will only get linkifed if the declared class is internal one, and not an extension :(
|
1237 |
+
$parent = ($type !== 'property') ? $reflector : $reflector->getDeclaringClass();
|
1238 |
+
|
1239 |
+
// internal function/method/class/property/constant
|
1240 |
+
if ( $parent->isInternal() ) {
|
1241 |
+
$args[] = $reflector->name;
|
1242 |
+
|
1243 |
+
if ( in_array( $type, array( 'method', 'property' ), true ) ) {
|
1244 |
+
$args[] = $reflector->getDeclaringClass()->getName();
|
1245 |
+
}
|
1246 |
+
|
1247 |
+
$args = array_map(
|
1248 |
+
function( $text ) {
|
1249 |
+
return str_replace( '_', '-', ltrim( strtolower( $text ), '\\_' ) );
|
1250 |
+
}, $args
|
1251 |
+
);
|
1252 |
+
|
1253 |
+
// check for some special cases that have no links
|
1254 |
+
$valid = (($type === 'method') || (strcasecmp( $parent->name, 'stdClass' ) !== 0))
|
1255 |
+
&& (($type !== 'method') || (($reflector->name === '__construct') || strpos( $reflector->name, '__' ) !== 0));
|
1256 |
+
|
1257 |
+
if ( $valid ) {
|
1258 |
+
$url = vsprintf( $phpNetSchemes[ $type ], $args );
|
1259 |
+
}
|
1260 |
+
|
1261 |
+
// custom
|
1262 |
+
} else {
|
1263 |
+
switch ( true ) {
|
1264 |
+
|
1265 |
+
// WordPress function;
|
1266 |
+
// like pretty much everything else in WordPress, API links are inconsistent as well;
|
1267 |
+
// so we're using queryposts.com as doc source for API
|
1268 |
+
case ($type === 'function') && class_exists( 'WP', false ) && defined( 'ABSPATH' ) && defined( 'WPINC' ):
|
1269 |
+
if ( strpos( $reflector->getFileName(), realpath( ABSPATH . WPINC ) ) === 0 ) {
|
1270 |
+
$url = sprintf( 'http://queryposts.com/function/%s', urlencode( strtolower( $reflector->getName() ) ) );
|
1271 |
+
break;
|
1272 |
+
}
|
1273 |
+
|
1274 |
+
// @todo: handle more apps
|
1275 |
+
}
|
1276 |
+
}
|
1277 |
+
|
1278 |
+
return $url;
|
1279 |
+
}
|
1280 |
+
|
1281 |
+
|
1282 |
+
public static function getTimeoutPoint() {
|
1283 |
+
return static::$timeout;
|
1284 |
+
}
|
1285 |
+
|
1286 |
+
|
1287 |
+
public static function getDebugInfo() {
|
1288 |
+
return static::$debug;
|
1289 |
+
}
|
1290 |
+
|
1291 |
+
|
1292 |
+
|
1293 |
+
protected function hasInstanceTimedOut() {
|
1294 |
+
|
1295 |
+
if ( static::$timeout > 0 ) {
|
1296 |
+
return true;
|
1297 |
+
}
|
1298 |
+
|
1299 |
+
$timeout = static::$config['timeout'];
|
1300 |
+
|
1301 |
+
if ( ($timeout > 0) && ((microtime( true ) - $this->startTime) > $timeout) ) {
|
1302 |
+
return (static::$timeout = (microtime( true ) - $this->startTime));
|
1303 |
+
}
|
1304 |
+
|
1305 |
+
return false;
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
|
1309 |
+
|
1310 |
+
/**
|
1311 |
+
* Evaluates the given variable
|
1312 |
+
*
|
1313 |
+
* @param mixed &$subject Variable to query
|
1314 |
+
* @param bool $specialStr Should this be interpreted as a special string?
|
1315 |
+
* @return mixed Result (both HTML and text modes generate strings)
|
1316 |
+
*/
|
1317 |
+
protected function evaluate( &$subject, $specialStr = false ) {
|
1318 |
+
|
1319 |
+
switch ( $type = gettype( $subject ) ) {
|
1320 |
+
|
1321 |
+
// https://github.com/digitalnature/php-ref/issues/13
|
1322 |
+
case 'unknown type':
|
1323 |
+
return $this->fmt->text( 'unknown' );
|
1324 |
+
|
1325 |
+
// null value
|
1326 |
+
case 'NULL':
|
1327 |
+
return $this->fmt->text( 'null' );
|
1328 |
+
|
1329 |
+
// integer/double/float
|
1330 |
+
case 'integer':
|
1331 |
+
case 'double':
|
1332 |
+
return $this->fmt->text( $type, $subject, $type );
|
1333 |
+
|
1334 |
+
// boolean
|
1335 |
+
case 'boolean':
|
1336 |
+
$text = $subject ? 'true' : 'false';
|
1337 |
+
return $this->fmt->text( $text, $text, $type );
|
1338 |
+
|
1339 |
+
// arrays
|
1340 |
+
case 'array':
|
1341 |
+
// empty array?
|
1342 |
+
if ( empty( $subject ) ) {
|
1343 |
+
$this->fmt->text( 'array' );
|
1344 |
+
return $this->fmt->emptyGroup();
|
1345 |
+
}
|
1346 |
+
|
1347 |
+
if ( isset( $subject[ static::MARKER_KEY ] ) ) {
|
1348 |
+
unset( $subject[ static::MARKER_KEY ] );
|
1349 |
+
$this->fmt->text( 'array' );
|
1350 |
+
$this->fmt->emptyGroup( 'recursion' );
|
1351 |
+
return;
|
1352 |
+
}
|
1353 |
+
|
1354 |
+
// first recursion level detection;
|
1355 |
+
// this is optional (used to print consistent recursion info)
|
1356 |
+
foreach ( $subject as $key => &$value ) {
|
1357 |
+
|
1358 |
+
if ( ! is_array( $value ) ) {
|
1359 |
+
continue;
|
1360 |
+
}
|
1361 |
+
|
1362 |
+
// save current value in a temporary variable
|
1363 |
+
$buffer = $value;
|
1364 |
+
|
1365 |
+
// assign new value
|
1366 |
+
$value = ($value !== 1) ? 1 : 2;
|
1367 |
+
|
1368 |
+
// if they're still equal, then we have a reference
|
1369 |
+
if ( $value === $subject ) {
|
1370 |
+
$value = $buffer;
|
1371 |
+
$value[ static::MARKER_KEY ] = true;
|
1372 |
+
$this->evaluate( $value );
|
1373 |
+
return;
|
1374 |
+
}
|
1375 |
+
|
1376 |
+
// restoring original value
|
1377 |
+
$value = $buffer;
|
1378 |
+
}
|
1379 |
+
|
1380 |
+
$this->fmt->text( 'array' );
|
1381 |
+
$count = count( $subject );
|
1382 |
+
if ( ! $this->fmt->startGroup( $count ) ) {
|
1383 |
+
return;
|
1384 |
+
}
|
1385 |
+
|
1386 |
+
$max = max( array_map( 'static::strLen', array_keys( $subject ) ) );
|
1387 |
+
$subject[ static::MARKER_KEY ] = true;
|
1388 |
+
|
1389 |
+
foreach ( $subject as $key => &$value ) {
|
1390 |
+
|
1391 |
+
// ignore our temporary marker
|
1392 |
+
if ( $key === static::MARKER_KEY ) {
|
1393 |
+
continue;
|
1394 |
+
}
|
1395 |
+
|
1396 |
+
if ( $this->hasInstanceTimedOut() ) {
|
1397 |
+
break;
|
1398 |
+
}
|
1399 |
+
|
1400 |
+
$keyInfo = gettype( $key );
|
1401 |
+
|
1402 |
+
if ( $keyInfo === 'string' ) {
|
1403 |
+
$encoding = static::$env['mbStr'] ? mb_detect_encoding( $key ) : '';
|
1404 |
+
$keyLen = $encoding && ($encoding !== 'ASCII') ? static::strLen( $key ) . '; ' . $encoding : static::strLen( $key );
|
1405 |
+
$keyInfo = "{$keyInfo}({$keyLen})";
|
1406 |
+
} else {
|
1407 |
+
$keyLen = strlen( $key );
|
1408 |
+
}
|
1409 |
+
|
1410 |
+
$this->fmt->startRow();
|
1411 |
+
$this->fmt->text( 'key', $key, "Key: {$keyInfo}" );
|
1412 |
+
$this->fmt->colDiv( $max - $keyLen );
|
1413 |
+
$this->fmt->sep( '=>' );
|
1414 |
+
$this->fmt->colDiv();
|
1415 |
+
$this->evaluate( $value, $specialStr );
|
1416 |
+
$this->fmt->endRow();
|
1417 |
+
}
|
1418 |
+
|
1419 |
+
unset( $subject[ static::MARKER_KEY ] );
|
1420 |
+
|
1421 |
+
$this->fmt->endGroup();
|
1422 |
+
return;
|
1423 |
+
|
1424 |
+
// resource
|
1425 |
+
case 'resource':
|
1426 |
+
$meta = array();
|
1427 |
+
$resType = get_resource_type( $subject );
|
1428 |
+
|
1429 |
+
$this->fmt->text( 'resource', strval( $subject ) );
|
1430 |
+
|
1431 |
+
if ( ! static::$config['showResourceInfo'] ) {
|
1432 |
+
return $this->fmt->emptyGroup( $resType );
|
1433 |
+
}
|
1434 |
+
|
1435 |
+
// @see: http://php.net/manual/en/resource.php
|
1436 |
+
// need to add more...
|
1437 |
+
switch ( $resType ) {
|
1438 |
+
|
1439 |
+
// curl extension resource
|
1440 |
+
case 'curl':
|
1441 |
+
$meta = curl_getinfo( $subject );
|
1442 |
+
break;
|
1443 |
+
|
1444 |
+
case 'FTP Buffer':
|
1445 |
+
$meta = array(
|
1446 |
+
'time_out' => ftp_get_option( $subject, FTP_TIMEOUT_SEC ),
|
1447 |
+
'auto_seek' => ftp_get_option( $subject, FTP_AUTOSEEK ),
|
1448 |
+
);
|
1449 |
+
|
1450 |
+
break;
|
1451 |
+
|
1452 |
+
// gd image extension resource
|
1453 |
+
case 'gd':
|
1454 |
+
$meta = array(
|
1455 |
+
'size' => sprintf( '%d x %d', imagesx( $subject ), imagesy( $subject ) ),
|
1456 |
+
'true_color' => imageistruecolor( $subject ),
|
1457 |
+
);
|
1458 |
+
|
1459 |
+
break;
|
1460 |
+
|
1461 |
+
case 'ldap link':
|
1462 |
+
$constants = get_defined_constants();
|
1463 |
+
|
1464 |
+
array_walk(
|
1465 |
+
$constants, function( $value, $key ) use ( &$constants ) {
|
1466 |
+
if ( strpos( $key, 'LDAP_OPT_' ) !== 0 ) {
|
1467 |
+
unset( $constants[ $key ] );
|
1468 |
+
}
|
1469 |
+
}
|
1470 |
+
);
|
1471 |
+
|
1472 |
+
// this seems to fail on my setup :(
|
1473 |
+
unset( $constants['LDAP_OPT_NETWORK_TIMEOUT'] );
|
1474 |
+
|
1475 |
+
foreach ( array_slice( $constants, 3 ) as $key => $value ) {
|
1476 |
+
if ( ldap_get_option( $subject, (int) $value, $ret ) ) {
|
1477 |
+
$meta[ strtolower( substr( $key, 9 ) ) ] = $ret;
|
1478 |
+
}
|
1479 |
+
}
|
1480 |
+
|
1481 |
+
break;
|
1482 |
+
|
1483 |
+
// mysql connection (mysql extension is deprecated from php 5.4/5.5)
|
1484 |
+
case 'mysql link':
|
1485 |
+
case 'mysql link persistent':
|
1486 |
+
$dbs = array();
|
1487 |
+
$query = @mysql_list_dbs( $subject );
|
1488 |
+
while ( $row = @mysql_fetch_array( $query ) ) {
|
1489 |
+
$dbs[] = $row['Database'];
|
1490 |
+
}
|
1491 |
+
|
1492 |
+
$meta = array(
|
1493 |
+
'host' => ltrim( @mysql_get_host_info( $subject ), 'MySQL host info: ' ),
|
1494 |
+
'server_version' => @mysql_get_server_info( $subject ),
|
1495 |
+
'protocol_version' => @mysql_get_proto_info( $subject ),
|
1496 |
+
'databases' => $dbs,
|
1497 |
+
);
|
1498 |
+
|
1499 |
+
break;
|
1500 |
+
|
1501 |
+
// mysql result
|
1502 |
+
case 'mysql result':
|
1503 |
+
while ( $row = @mysql_fetch_object( $subject ) ) {
|
1504 |
+
$meta[] = (array) $row;
|
1505 |
+
|
1506 |
+
if ( $this->hasInstanceTimedOut() ) {
|
1507 |
+
break;
|
1508 |
+
}
|
1509 |
+
}
|
1510 |
+
|
1511 |
+
break;
|
1512 |
+
|
1513 |
+
// stream resource (fopen, fsockopen, popen, opendir etc)
|
1514 |
+
case 'stream':
|
1515 |
+
$meta = stream_get_meta_data( $subject );
|
1516 |
+
break;
|
1517 |
+
|
1518 |
+
}
|
1519 |
+
|
1520 |
+
if ( ! $meta ) {
|
1521 |
+
return $this->fmt->emptyGroup( $resType );
|
1522 |
+
}
|
1523 |
+
|
1524 |
+
if ( ! $this->fmt->startGroup( $resType ) ) {
|
1525 |
+
return;
|
1526 |
+
}
|
1527 |
+
|
1528 |
+
$max = max( array_map( 'static::strLen', array_keys( $meta ) ) );
|
1529 |
+
foreach ( $meta as $key => $value ) {
|
1530 |
+
$this->fmt->startRow();
|
1531 |
+
$this->fmt->text( 'resourceProp', ucwords( str_replace( '_', ' ', $key ) ) );
|
1532 |
+
$this->fmt->colDiv( $max - static::strLen( $key ) );
|
1533 |
+
$this->fmt->sep( ':' );
|
1534 |
+
$this->fmt->colDiv();
|
1535 |
+
$this->evaluate( $value );
|
1536 |
+
$this->fmt->endRow();
|
1537 |
+
}
|
1538 |
+
$this->fmt->endGroup();
|
1539 |
+
return;
|
1540 |
+
|
1541 |
+
// string
|
1542 |
+
case 'string':
|
1543 |
+
$length = static::strLen( $subject );
|
1544 |
+
$encoding = static::$env['mbStr'] ? mb_detect_encoding( $subject ) : false;
|
1545 |
+
$info = $encoding && ($encoding !== 'ASCII') ? $length . '; ' . $encoding : $length;
|
1546 |
+
|
1547 |
+
if ( $specialStr ) {
|
1548 |
+
$this->fmt->sep( '"' );
|
1549 |
+
$this->fmt->text( array( 'string', 'special' ), $subject, "string({$info})" );
|
1550 |
+
$this->fmt->sep( '"' );
|
1551 |
+
return;
|
1552 |
+
}
|
1553 |
+
|
1554 |
+
$this->fmt->text( 'string', $subject, "string({$info})" );
|
1555 |
+
|
1556 |
+
// advanced checks only if there are 3 characteres or more
|
1557 |
+
if ( static::$config['showStringMatches'] && ($length > 2) && (trim( $subject ) !== '') ) {
|
1558 |
+
|
1559 |
+
$isNumeric = is_numeric( $subject );
|
1560 |
+
|
1561 |
+
// very simple check to determine if the string could match a file path
|
1562 |
+
// @note: this part of the code is very expensive
|
1563 |
+
$isFile = ($length < 2048)
|
1564 |
+
&& (max( array_map( 'strlen', explode( '/', str_replace( '\\', '/', $subject ) ) ) ) < 128)
|
1565 |
+
&& ! preg_match( '/[^\w\.\-\/\\\\:]|\..*\.|\.$|:(?!(?<=^[a-zA-Z]:)[\/\\\\])/', $subject );
|
1566 |
+
|
1567 |
+
if ( $isFile ) {
|
1568 |
+
try {
|
1569 |
+
$file = new \SplFileInfo( $subject );
|
1570 |
+
$flags = array();
|
1571 |
+
$perms = $file->getPerms();
|
1572 |
+
|
1573 |
+
if ( ($perms & 0xC000) === 0xC000 ) { // socket
|
1574 |
+
$flags[] = 's';
|
1575 |
+
} elseif ( ($perms & 0xA000) === 0xA000 ) { // symlink
|
1576 |
+
$flags[] = 'l';
|
1577 |
+
} elseif ( ($perms & 0x8000) === 0x8000 ) { // regular
|
1578 |
+
$flags[] = '-';
|
1579 |
+
} elseif ( ($perms & 0x6000) === 0x6000 ) { // block special
|
1580 |
+
$flags[] = 'b';
|
1581 |
+
} elseif ( ($perms & 0x4000) === 0x4000 ) { // directory
|
1582 |
+
$flags[] = 'd';
|
1583 |
+
} elseif ( ($perms & 0x2000) === 0x2000 ) { // character special
|
1584 |
+
$flags[] = 'c';
|
1585 |
+
} elseif ( ($perms & 0x1000) === 0x1000 ) { // FIFO pipe
|
1586 |
+
$flags[] = 'p';
|
1587 |
+
} else { // unknown
|
1588 |
+
$flags[] = 'u';
|
1589 |
+
}
|
1590 |
+
|
1591 |
+
// owner
|
1592 |
+
$flags[] = (($perms & 0x0100) ? 'r' : '-');
|
1593 |
+
$flags[] = (($perms & 0x0080) ? 'w' : '-');
|
1594 |
+
$flags[] = (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-'));
|
1595 |
+
|
1596 |
+
// group
|
1597 |
+
$flags[] = (($perms & 0x0020) ? 'r' : '-');
|
1598 |
+
$flags[] = (($perms & 0x0010) ? 'w' : '-');
|
1599 |
+
$flags[] = (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-'));
|
1600 |
+
|
1601 |
+
// world
|
1602 |
+
$flags[] = (($perms & 0x0004) ? 'r' : '-');
|
1603 |
+
$flags[] = (($perms & 0x0002) ? 'w' : '-');
|
1604 |
+
$flags[] = (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-'));
|
1605 |
+
|
1606 |
+
$size = is_dir( $subject ) ? '' : sprintf( ' %.2fK', $file->getSize() / 1024 );
|
1607 |
+
|
1608 |
+
$this->fmt->startContain( 'file', true );
|
1609 |
+
$this->fmt->text( 'file', implode( '', $flags ) . $size );
|
1610 |
+
$this->fmt->endContain();
|
1611 |
+
|
1612 |
+
} catch ( \Exception $e ) {
|
1613 |
+
$isFile = false;
|
1614 |
+
}
|
1615 |
+
}
|
1616 |
+
|
1617 |
+
// class/interface/function
|
1618 |
+
if ( ! preg_match( '/[^\w+\\\\]/', $subject ) && ($length < 96) ) {
|
1619 |
+
$isClass = class_exists( $subject, false );
|
1620 |
+
if ( $isClass ) {
|
1621 |
+
$this->fmt->startContain( 'class', true );
|
1622 |
+
$this->fromReflector( new \ReflectionClass( $subject ) );
|
1623 |
+
$this->fmt->endContain();
|
1624 |
+
}
|
1625 |
+
|
1626 |
+
if ( ! $isClass && interface_exists( $subject, false ) ) {
|
1627 |
+
$this->fmt->startContain( 'interface', true );
|
1628 |
+
$this->fromReflector( new \ReflectionClass( $subject ) );
|
1629 |
+
$this->fmt->endContain( 'interface' );
|
1630 |
+
}
|
1631 |
+
|
1632 |
+
if ( function_exists( $subject ) ) {
|
1633 |
+
$this->fmt->startContain( 'function', true );
|
1634 |
+
$this->fromReflector( new \ReflectionFunction( $subject ) );
|
1635 |
+
$this->fmt->endContain( 'function' );
|
1636 |
+
}
|
1637 |
+
}
|
1638 |
+
|
1639 |
+
// skip serialization/json/date checks if the string appears to be numeric,
|
1640 |
+
// or if it's shorter than 5 characters
|
1641 |
+
if ( ! $isNumeric && ($length > 4) ) {
|
1642 |
+
|
1643 |
+
// url
|
1644 |
+
if ( static::$config['showUrls'] && static::$env['curlActive'] && filter_var( $subject, FILTER_VALIDATE_URL ) ) {
|
1645 |
+
$ch = curl_init( $subject );
|
1646 |
+
curl_setopt( $ch, CURLOPT_NOBODY, true );
|
1647 |
+
curl_exec( $ch );
|
1648 |
+
$nfo = curl_getinfo( $ch );
|
1649 |
+
curl_close( $ch );
|
1650 |
+
|
1651 |
+
if ( $nfo['http_code'] ) {
|
1652 |
+
$this->fmt->startContain( 'url', true );
|
1653 |
+
$contentType = explode( ';', $nfo['content_type'] );
|
1654 |
+
$this->fmt->text( 'url', sprintf( '%s:%d %s %.2fms (%d)', ! empty( $nfo['primary_ip'] ) ? $nfo['primary_ip'] : null, ! empty( $nfo['primary_port'] ) ? $nfo['primary_port'] : null, $contentType[0], $nfo['total_time'], $nfo['http_code'] ) );
|
1655 |
+
$this->fmt->endContain();
|
1656 |
+
}
|
1657 |
+
}
|
1658 |
+
|
1659 |
+
// date
|
1660 |
+
if ( ($length < 128) && static::$env['supportsDate'] && ! preg_match( '/[^A-Za-z0-9.:+\s\-\/]/', $subject ) ) {
|
1661 |
+
try {
|
1662 |
+
$date = new \DateTime( $subject );
|
1663 |
+
$errors = \DateTime::getLastErrors();
|
1664 |
+
|
1665 |
+
if ( ($errors['warning_count'] < 1) && ($errors['error_count'] < 1) ) {
|
1666 |
+
$now = new \Datetime( 'now' );
|
1667 |
+
$nowUtc = new \Datetime( 'now', new \DateTimeZone( 'UTC' ) );
|
1668 |
+
$diff = $now->diff( $date );
|
1669 |
+
|
1670 |
+
$map = array(
|
1671 |
+
'y' => 'yr',
|
1672 |
+
'm' => 'mo',
|
1673 |
+
'd' => 'da',
|
1674 |
+
'h' => 'hr',
|
1675 |
+
'i' => 'min',
|
1676 |
+
's' => 'sec',
|
1677 |
+
);
|
1678 |
+
|
1679 |
+
$timeAgo = 'now';
|
1680 |
+
foreach ( $map as $k => $label ) {
|
1681 |
+
if ( $diff->{$k} > 0 ) {
|
1682 |
+
$timeAgo = $diff->format( "%R%{$k}{$label}" );
|
1683 |
+
break;
|
1684 |
+
}
|
1685 |
+
}
|
1686 |
+
|
1687 |
+
$tz = $date->getTimezone();
|
1688 |
+
$offs = round( $tz->getOffset( $nowUtc ) / 3600 );
|
1689 |
+
|
1690 |
+
if ( $offs > 0 ) {
|
1691 |
+
$offs = "+{$offs}";
|
1692 |
+
}
|
1693 |
+
|
1694 |
+
$timeAgo .= ( (int) $offs !== 0) ? ' ' . sprintf( '%s (UTC%s)', $tz->getName(), $offs ) : ' UTC';
|
1695 |
+
$this->fmt->startContain( 'date', true );
|
1696 |
+
$this->fmt->text( 'date', $timeAgo );
|
1697 |
+
$this->fmt->endContain();
|
1698 |
+
|
1699 |
+
}
|
1700 |
+
} catch ( \Exception $e ) {
|
1701 |
+
// not a date
|
1702 |
+
}
|
1703 |
+
}
|
1704 |
+
|
1705 |
+
// attempt to detect if this is a serialized string
|
1706 |
+
static $unserializing = 0;
|
1707 |
+
$isSerialized = ($unserializing < 3)
|
1708 |
+
&& (($subject[ $length - 1 ] === ';') || ($subject[ $length - 1 ] === '}'))
|
1709 |
+
&& in_array( $subject[0], array( 's', 'a', 'O' ), true )
|
1710 |
+
&& ((($subject[0] === 's') && ($subject[ $length - 2 ] !== '"')) || preg_match( "/^{$subject[0]}:[0-9]+:/s", $subject ))
|
1711 |
+
&& (($unserialized = @unserialize( $subject )) !== false);
|
1712 |
+
|
1713 |
+
if ( $isSerialized ) {
|
1714 |
+
$unserializing++;
|
1715 |
+
$this->fmt->startContain( 'serialized', true );
|
1716 |
+
$this->evaluate( $unserialized );
|
1717 |
+
$this->fmt->endContain();
|
1718 |
+
$unserializing--;
|
1719 |
+
}
|
1720 |
+
|
1721 |
+
// try to find out if it's a json-encoded string;
|
1722 |
+
// only do this for json-encoded arrays or objects, because other types have too generic formats
|
1723 |
+
static $decodingJson = 0;
|
1724 |
+
$isJson = ! $isSerialized && ($decodingJson < 3) && in_array( $subject[0], array( '{', '[' ), true );
|
1725 |
+
|
1726 |
+
if ( $isJson ) {
|
1727 |
+
$decodingJson++;
|
1728 |
+
$data = json_decode( $subject );
|
1729 |
+
|
1730 |
+
// ensure created objects live enough for PHP to provide a unique hash
|
1731 |
+
if ( is_object( $data ) ) {
|
1732 |
+
$this->intObjects->attach( $data );
|
1733 |
+
}
|
1734 |
+
|
1735 |
+
if ( $isJson = (json_last_error() === JSON_ERROR_NONE) ) {
|
1736 |
+
$this->fmt->startContain( 'json', true );
|
1737 |
+
$this->evaluate( $data );
|
1738 |
+
$this->fmt->endContain();
|
1739 |
+
}
|
1740 |
+
|
1741 |
+
$decodingJson--;
|
1742 |
+
}
|
1743 |
+
|
1744 |
+
// attempt to match a regex
|
1745 |
+
if ( ! $isSerialized && ! $isJson && $length < 768 ) {
|
1746 |
+
try {
|
1747 |
+
$components = $this->splitRegex( $subject );
|
1748 |
+
if ( $components ) {
|
1749 |
+
$regex = '';
|
1750 |
+
|
1751 |
+
$this->fmt->startContain( 'regex', true );
|
1752 |
+
foreach ( $components as $component ) {
|
1753 |
+
$this->fmt->text( 'regex-' . key( $component ), reset( $component ) );
|
1754 |
+
}
|
1755 |
+
$this->fmt->endContain();
|
1756 |
+
}
|
1757 |
+
} catch ( \Exception $e ) {
|
1758 |
+
// not a regex
|
1759 |
+
}
|
1760 |
+
}
|
1761 |
+
}
|
1762 |
+
}
|
1763 |
+
|
1764 |
+
return;
|
1765 |
+
}
|
1766 |
+
|
1767 |
+
// if we reached this point, $subject must be an object
|
1768 |
+
// track objects to detect recursion
|
1769 |
+
static $hashes = array();
|
1770 |
+
|
1771 |
+
// hash ID of this object
|
1772 |
+
$hash = spl_object_hash( $subject );
|
1773 |
+
$recursion = isset( $hashes[ $hash ] );
|
1774 |
+
|
1775 |
+
// sometimes incomplete objects may be created from string unserialization,
|
1776 |
+
// if the class to which the object belongs wasn't included until the unserialization stage...
|
1777 |
+
if ( $subject instanceof \__PHP_Incomplete_Class ) {
|
1778 |
+
$this->fmt->text( 'object' );
|
1779 |
+
$this->fmt->emptyGroup( 'incomplete' );
|
1780 |
+
return;
|
1781 |
+
}
|
1782 |
+
|
1783 |
+
// check cache at this point
|
1784 |
+
if ( ! $recursion && $this->fmt->didCache( $hash ) ) {
|
1785 |
+
static::$debug['cacheHits']++;
|
1786 |
+
return;
|
1787 |
+
}
|
1788 |
+
|
1789 |
+
$reflector = new \ReflectionObject( $subject );
|
1790 |
+
$this->fmt->startContain( 'class' );
|
1791 |
+
$this->fromReflector( $reflector );
|
1792 |
+
$this->fmt->text( 'object', ' object' );
|
1793 |
+
$this->fmt->endContain();
|
1794 |
+
|
1795 |
+
// already been here?
|
1796 |
+
if ( $recursion ) {
|
1797 |
+
return $this->fmt->emptyGroup( 'recursion' );
|
1798 |
+
}
|
1799 |
+
|
1800 |
+
$hashes[ $hash ] = 1;
|
1801 |
+
|
1802 |
+
$flags = \ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED;
|
1803 |
+
|
1804 |
+
if ( static::$config['showPrivateMembers'] ) {
|
1805 |
+
$flags |= \ReflectionProperty::IS_PRIVATE;
|
1806 |
+
}
|
1807 |
+
|
1808 |
+
$props = $magicProps = $methods = array();
|
1809 |
+
|
1810 |
+
if ( $reflector->hasMethod( '__debugInfo' ) ) {
|
1811 |
+
$magicProps = $subject->__debugInfo();
|
1812 |
+
} else {
|
1813 |
+
$props = $reflector->getProperties( $flags );
|
1814 |
+
}
|
1815 |
+
|
1816 |
+
if ( static::$config['showMethods'] ) {
|
1817 |
+
$flags = \ReflectionMethod::IS_PUBLIC | \ReflectionMethod::IS_PROTECTED;
|
1818 |
+
|
1819 |
+
if ( static::$config['showPrivateMembers'] ) {
|
1820 |
+
$flags |= \ReflectionMethod::IS_PRIVATE;
|
1821 |
+
}
|
1822 |
+
|
1823 |
+
$methods = $reflector->getMethods( $flags );
|
1824 |
+
}
|
1825 |
+
|
1826 |
+
$constants = $reflector->getConstants();
|
1827 |
+
$interfaces = $reflector->getInterfaces();
|
1828 |
+
$traits = static::$env['is54'] ? $reflector->getTraits() : array();
|
1829 |
+
$parents = static::getParentClasses( $reflector );
|
1830 |
+
|
1831 |
+
// work-around for https://bugs.php.net/bug.php?id=49154
|
1832 |
+
// @see http://stackoverflow.com/questions/15672287/strange-behavior-of-reflectiongetproperties-with-numeric-keys
|
1833 |
+
if ( ! static::$env['is54'] ) {
|
1834 |
+
$props = array_values(
|
1835 |
+
array_filter(
|
1836 |
+
$props, function( $prop ) use ( $subject ) {
|
1837 |
+
return ! $prop->isPublic() || property_exists( $subject, $prop->name );
|
1838 |
+
}
|
1839 |
+
)
|
1840 |
+
);
|
1841 |
+
}
|
1842 |
+
|
1843 |
+
// no data to display?
|
1844 |
+
if ( ! $props && ! $methods && ! $constants && ! $interfaces && ! $traits ) {
|
1845 |
+
unset( $hashes[ $hash ] );
|
1846 |
+
return $this->fmt->emptyGroup();
|
1847 |
+
}
|
1848 |
+
|
1849 |
+
if ( ! $this->fmt->startGroup() ) {
|
1850 |
+
return;
|
1851 |
+
}
|
1852 |
+
|
1853 |
+
// show contents for iterators
|
1854 |
+
if ( static::$config['showIteratorContents'] && $reflector->isIterateable() ) {
|
1855 |
+
|
1856 |
+
$itContents = iterator_to_array( $subject );
|
1857 |
+
$this->fmt->sectionTitle( sprintf( 'Contents (%d)', count( $itContents ) ) );
|
1858 |
+
|
1859 |
+
foreach ( $itContents as $key => $value ) {
|
1860 |
+
$keyInfo = gettype( $key );
|
1861 |
+
if ( $keyInfo === 'string' ) {
|
1862 |
+
$encoding = static::$env['mbStr'] ? mb_detect_encoding( $key ) : '';
|
1863 |
+
$length = $encoding && ($encoding !== 'ASCII') ? static::strLen( $key ) . '; ' . $encoding : static::strLen( $key );
|
1864 |
+
$keyInfo = sprintf( '%s(%s)', $keyInfo, $length );
|
1865 |
+
}
|
1866 |
+
|
1867 |
+
$this->fmt->startRow();
|
1868 |
+
$this->fmt->text( array( 'key', 'iterator' ), $key, sprintf( 'Iterator key: %s', $keyInfo ) );
|
1869 |
+
$this->fmt->colDiv();
|
1870 |
+
$this->fmt->sep( '=>' );
|
1871 |
+
$this->fmt->colDiv();
|
1872 |
+
$this->evaluate( $value );
|
1873 |
+
// $this->evaluate($value instanceof \Traversable ? ((count($value) > 0) ? $value : (string)$value) : $value);
|
1874 |
+
$this->fmt->endRow();
|
1875 |
+
}
|
1876 |
+
}
|
1877 |
+
|
1878 |
+
// display the interfaces this objects' class implements
|
1879 |
+
if ( $interfaces ) {
|
1880 |
+
$items = array();
|
1881 |
+
$this->fmt->sectionTitle( 'Implements' );
|
1882 |
+
$this->fmt->startRow();
|
1883 |
+
$this->fmt->startContain( 'interfaces' );
|
1884 |
+
|
1885 |
+
$i = 0;
|
1886 |
+
$count = count( $interfaces );
|
1887 |
+
|
1888 |
+
foreach ( $interfaces as $name => $interface ) {
|
1889 |
+
$this->fromReflector( $interface );
|
1890 |
+
|
1891 |
+
if ( ++$i < $count ) {
|
1892 |
+
$this->fmt->sep( ', ' );
|
1893 |
+
}
|
1894 |
+
}
|
1895 |
+
|
1896 |
+
$this->fmt->endContain();
|
1897 |
+
$this->fmt->endRow();
|
1898 |
+
}
|
1899 |
+
|
1900 |
+
// traits this objects' class uses
|
1901 |
+
if ( $traits ) {
|
1902 |
+
$items = array();
|
1903 |
+
$this->fmt->sectionTitle( 'Uses' );
|
1904 |
+
$this->fmt->startRow();
|
1905 |
+
$this->fmt->startContain( 'traits' );
|
1906 |
+
|
1907 |
+
$i = 0;
|
1908 |
+
$count = count( $traits );
|
1909 |
+
|
1910 |
+
foreach ( $traits as $name => $trait ) {
|
1911 |
+
$this->fromReflector( $trait );
|
1912 |
+
|
1913 |
+
if ( ++$i < $count ) {
|
1914 |
+
$this->fmt->sep( ', ' );
|
1915 |
+
}
|
1916 |
+
}
|
1917 |
+
|
1918 |
+
$this->fmt->endContain();
|
1919 |
+
$this->fmt->endRow();
|
1920 |
+
}
|
1921 |
+
|
1922 |
+
// class constants
|
1923 |
+
if ( $constants ) {
|
1924 |
+
$this->fmt->sectionTitle( 'Constants' );
|
1925 |
+
$max = max( array_map( 'static::strLen', array_keys( $constants ) ) );
|
1926 |
+
foreach ( $constants as $name => $value ) {
|
1927 |
+
$meta = null;
|
1928 |
+
$type = array( 'const' );
|
1929 |
+
foreach ( $parents as $parent ) {
|
1930 |
+
if ( $parent->hasConstant( $name ) ) {
|
1931 |
+
if ( $parent !== $reflector ) {
|
1932 |
+
$type[] = 'inherited';
|
1933 |
+
$meta = array(
|
1934 |
+
'sub' => array( array( 'Prototype defined by', $parent->name ) ),
|
1935 |
+
);
|
1936 |
+
}
|
1937 |
+
break;
|
1938 |
+
}
|
1939 |
+
}
|
1940 |
+
|
1941 |
+
$this->fmt->startRow();
|
1942 |
+
$this->fmt->sep( '::' );
|
1943 |
+
$this->fmt->colDiv();
|
1944 |
+
$this->fmt->startContain( $type );
|
1945 |
+
$this->fmt->text( 'name', $name, $meta, $this->linkify( $parent, $name ) );
|
1946 |
+
$this->fmt->endContain();
|
1947 |
+
$this->fmt->colDiv( $max - static::strLen( $name ) );
|
1948 |
+
$this->fmt->sep( '=' );
|
1949 |
+
$this->fmt->colDiv();
|
1950 |
+
$this->evaluate( $value );
|
1951 |
+
$this->fmt->endRow();
|
1952 |
+
}
|
1953 |
+
}
|
1954 |
+
|
1955 |
+
// object/class properties
|
1956 |
+
if ( $props ) {
|
1957 |
+
$this->fmt->sectionTitle( 'Properties' );
|
1958 |
+
|
1959 |
+
$max = 0;
|
1960 |
+
foreach ( $props as $idx => $prop ) {
|
1961 |
+
if ( ($propNameLen = static::strLen( $prop->name )) > $max ) {
|
1962 |
+
$max = $propNameLen;
|
1963 |
+
}
|
1964 |
+
}
|
1965 |
+
|
1966 |
+
foreach ( $props as $idx => $prop ) {
|
1967 |
+
|
1968 |
+
if ( $this->hasInstanceTimedOut() ) {
|
1969 |
+
break;
|
1970 |
+
}
|
1971 |
+
|
1972 |
+
$bubbles = array();
|
1973 |
+
$sourceClass = $prop->getDeclaringClass();
|
1974 |
+
$inherited = $reflector->getShortName() !== $sourceClass->getShortName();
|
1975 |
+
$meta = $sourceClass->isInternal() ? null : static::parseComment( $prop->getDocComment() );
|
1976 |
+
|
1977 |
+
if ( $meta ) {
|
1978 |
+
if ( $inherited ) {
|
1979 |
+
$meta['sub'] = array( array( 'Declared in', $sourceClass->getShortName() ) );
|
1980 |
+
}
|
1981 |
+
|
1982 |
+
if ( isset( $meta['tags']['var'][0] ) ) {
|
1983 |
+
$meta['left'] = $meta['tags']['var'][0][0];
|
1984 |
+
}
|
1985 |
+
|
1986 |
+
unset( $meta['tags'] );
|
1987 |
+
}
|
1988 |
+
|
1989 |
+
if ( $prop->isProtected() || $prop->isPrivate() ) {
|
1990 |
+
$prop->setAccessible( true );
|
1991 |
+
}
|
1992 |
+
|
1993 |
+
$value = $prop->getValue( $subject );
|
1994 |
+
|
1995 |
+
$this->fmt->startRow();
|
1996 |
+
$this->fmt->sep( $prop->isStatic() ? '::' : '->' );
|
1997 |
+
$this->fmt->colDiv();
|
1998 |
+
|
1999 |
+
$bubbles = array();
|
2000 |
+
if ( $prop->isProtected() ) {
|
2001 |
+
$bubbles[] = array( 'P', 'Protected' );
|
2002 |
+
}
|
2003 |
+
|
2004 |
+
if ( $prop->isPrivate() ) {
|
2005 |
+
$bubbles[] = array( '!', 'Private' );
|
2006 |
+
}
|
2007 |
+
|
2008 |
+
$this->fmt->bubbles( $bubbles );
|
2009 |
+
|
2010 |
+
$type = array( 'prop' );
|
2011 |
+
|
2012 |
+
if ( $inherited ) {
|
2013 |
+
$type[] = 'inherited';
|
2014 |
+
}
|
2015 |
+
|
2016 |
+
if ( $prop->isPrivate() ) {
|
2017 |
+
$type[] = 'private';
|
2018 |
+
}
|
2019 |
+
|
2020 |
+
$this->fmt->colDiv( 2 - count( $bubbles ) );
|
2021 |
+
$this->fmt->startContain( $type );
|
2022 |
+
$this->fmt->text( 'name', $prop->name, $meta, $this->linkify( $prop ) );
|
2023 |
+
$this->fmt->endContain();
|
2024 |
+
$this->fmt->colDiv( $max - static::strLen( $prop->name ) );
|
2025 |
+
$this->fmt->sep( '=' );
|
2026 |
+
$this->fmt->colDiv();
|
2027 |
+
$this->evaluate( $value );
|
2028 |
+
$this->fmt->endRow();
|
2029 |
+
}
|
2030 |
+
}
|
2031 |
+
|
2032 |
+
// __debugInfo()
|
2033 |
+
if ( $magicProps ) {
|
2034 |
+
$this->fmt->sectionTitle( 'Properties (magic)' );
|
2035 |
+
|
2036 |
+
$max = 0;
|
2037 |
+
foreach ( $magicProps as $name => $value ) {
|
2038 |
+
if ( ($propNameLen = static::strLen( $name )) > $max ) {
|
2039 |
+
$max = $propNameLen;
|
2040 |
+
}
|
2041 |
+
}
|
2042 |
+
|
2043 |
+
foreach ( $magicProps as $name => $value ) {
|
2044 |
+
|
2045 |
+
if ( $this->hasInstanceTimedOut() ) {
|
2046 |
+
break;
|
2047 |
+
}
|
2048 |
+
|
2049 |
+
// attempt to pull out doc comment from the "regular" property definition
|
2050 |
+
try {
|
2051 |
+
$prop = $reflector->getProperty( $name );
|
2052 |
+
$meta = static::parseComment( $prop->getDocComment() );
|
2053 |
+
|
2054 |
+
} catch ( \Exception $e ) {
|
2055 |
+
$meta = null;
|
2056 |
+
}
|
2057 |
+
|
2058 |
+
$this->fmt->startRow();
|
2059 |
+
$this->fmt->sep( '->' );
|
2060 |
+
$this->fmt->colDiv();
|
2061 |
+
|
2062 |
+
$type = array( 'prop' );
|
2063 |
+
|
2064 |
+
$this->fmt->startContain( $type );
|
2065 |
+
$this->fmt->text( 'name', $name, $meta );
|
2066 |
+
$this->fmt->endContain();
|
2067 |
+
$this->fmt->colDiv( $max - static::strLen( $name ) );
|
2068 |
+
$this->fmt->sep( '=' );
|
2069 |
+
$this->fmt->colDiv();
|
2070 |
+
$this->evaluate( $value );
|
2071 |
+
$this->fmt->endRow();
|
2072 |
+
}
|
2073 |
+
}
|
2074 |
+
|
2075 |
+
// class methods
|
2076 |
+
if ( $methods && ! $this->hasInstanceTimedOut() ) {
|
2077 |
+
|
2078 |
+
$this->fmt->sectionTitle( 'Methods' );
|
2079 |
+
foreach ( $methods as $idx => $method ) {
|
2080 |
+
|
2081 |
+
$this->fmt->startRow();
|
2082 |
+
$this->fmt->sep( $method->isStatic() ? '::' : '->' );
|
2083 |
+
$this->fmt->colDiv();
|
2084 |
+
|
2085 |
+
$bubbles = array();
|
2086 |
+
if ( $method->isAbstract() ) {
|
2087 |
+
$bubbles[] = array( 'A', 'Abstract' );
|
2088 |
+
}
|
2089 |
+
|
2090 |
+
if ( $method->isFinal() ) {
|
2091 |
+
$bubbles[] = array( 'F', 'Final' );
|
2092 |
+
}
|
2093 |
+
|
2094 |
+
if ( $method->isProtected() ) {
|
2095 |
+
$bubbles[] = array( 'P', 'Protected' );
|
2096 |
+
}
|
2097 |
+
|
2098 |
+
if ( $method->isPrivate() ) {
|
2099 |
+
$bubbles[] = array( '!', 'Private' );
|
2100 |
+
}
|
2101 |
+
|
2102 |
+
$this->fmt->bubbles( $bubbles );
|
2103 |
+
|
2104 |
+
$this->fmt->colDiv( 4 - count( $bubbles ) );
|
2105 |
+
|
2106 |
+
// is this method inherited?
|
2107 |
+
$inherited = $reflector->getShortName() !== $method->getDeclaringClass()->getShortName();
|
2108 |
+
|
2109 |
+
$type = array( 'method' );
|
2110 |
+
|
2111 |
+
if ( $inherited ) {
|
2112 |
+
$type[] = 'inherited';
|
2113 |
+
}
|
2114 |
+
|
2115 |
+
if ( $method->isPrivate() ) {
|
2116 |
+
$type[] = 'private';
|
2117 |
+
}
|
2118 |
+
|
2119 |
+
$this->fmt->startContain( $type );
|
2120 |
+
|
2121 |
+
$name = $method->name;
|
2122 |
+
if ( $method->returnsReference() ) {
|
2123 |
+
$name = "&{$name}";
|
2124 |
+
}
|
2125 |
+
|
2126 |
+
$this->fromReflector( $method, $name, $reflector );
|
2127 |
+
|
2128 |
+
$paramCom = $method->isInternal() ? array() : static::parseComment( $method->getDocComment(), 'tags' );
|
2129 |
+
$paramCom = empty( $paramCom['param'] ) ? array() : $paramCom['param'];
|
2130 |
+
$paramCount = $method->getNumberOfParameters();
|
2131 |
+
|
2132 |
+
$this->fmt->sep( '(' );
|
2133 |
+
|
2134 |
+
// process arguments
|
2135 |
+
foreach ( $method->getParameters() as $idx => $parameter ) {
|
2136 |
+
$meta = null;
|
2137 |
+
$paramName = "\${$parameter->name}";
|
2138 |
+
$optional = $parameter->isOptional();
|
2139 |
+
$variadic = static::$env['is56'] && $parameter->isVariadic();
|
2140 |
+
|
2141 |
+
if ( $parameter->isPassedByReference() ) {
|
2142 |
+
$paramName = "&{$paramName}";
|
2143 |
+
}
|
2144 |
+
|
2145 |
+
if ( $variadic ) {
|
2146 |
+
$paramName = "...{$paramName}";
|
2147 |
+
}
|
2148 |
+
|
2149 |
+
$type = array( 'param' );
|
2150 |
+
|
2151 |
+
if ( $optional ) {
|
2152 |
+
$type[] = 'optional';
|
2153 |
+
}
|
2154 |
+
|
2155 |
+
$this->fmt->startContain( $type );
|
2156 |
+
|
2157 |
+
// attempt to build meta
|
2158 |
+
foreach ( $paramCom as $tag ) {
|
2159 |
+
list($pcTypes, $pcName, $pcDescription) = $tag;
|
2160 |
+
if ( $pcName !== $paramName ) {
|
2161 |
+
continue;
|
2162 |
+
}
|
2163 |
+
|
2164 |
+
$meta = array(
|
2165 |
+
'title' => $pcDescription,
|
2166 |
+
);
|
2167 |
+
|
2168 |
+
if ( $pcTypes ) {
|
2169 |
+
$meta['left'] = $pcTypes;
|
2170 |
+
}
|
2171 |
+
|
2172 |
+
break;
|
2173 |
+
}
|
2174 |
+
|
2175 |
+
try {
|
2176 |
+
$paramClass = $parameter->getClass();
|
2177 |
+
} catch ( \Exception $e ) {
|
2178 |
+
// @see https://bugs.php.net/bug.php?id=32177&edit=1
|
2179 |
+
}
|
2180 |
+
|
2181 |
+
if ( ! empty( $paramClass ) ) {
|
2182 |
+
$this->fmt->startContain( 'hint' );
|
2183 |
+
$this->fromReflector( $paramClass, $paramClass->name );
|
2184 |
+
$this->fmt->endContain();
|
2185 |
+
$this->fmt->sep( ' ' );
|
2186 |
+
|
2187 |
+
} elseif ( $parameter->isArray() ) {
|
2188 |
+
$this->fmt->text( 'hint', 'array' );
|
2189 |
+
$this->fmt->sep( ' ' );
|
2190 |
+
|
2191 |
+
} else {
|
2192 |
+
$hasType = static::$env['is7'] && $parameter->hasType();
|
2193 |
+
if ( $hasType ) {
|
2194 |
+
$type = $parameter->getType();
|
2195 |
+
$this->fmt->text( 'hint', (string) $type );
|
2196 |
+
$this->fmt->sep( ' ' );
|
2197 |
+
}
|
2198 |
+
}
|
2199 |
+
|
2200 |
+
$this->fmt->text( 'name', $paramName, $meta );
|
2201 |
+
|
2202 |
+
if ( $optional ) {
|
2203 |
+
$paramValue = $parameter->isDefaultValueAvailable() ? $parameter->getDefaultValue() : null;
|
2204 |
+
if ( $paramValue !== null ) {
|
2205 |
+
$this->fmt->sep( ' = ' );
|
2206 |
+
|
2207 |
+
if ( static::$env['is546'] && ! $parameter->getDeclaringFunction()->isInternal() && $parameter->isDefaultValueConstant() ) {
|
2208 |
+
$this->fmt->text( 'constant', $parameter->getDefaultValueConstantName(), 'Constant' );
|
2209 |
+
|
2210 |
+
} else {
|
2211 |
+
$this->evaluate( $paramValue, true );
|
2212 |
+
}
|
2213 |
+
}
|
2214 |
+
}
|
2215 |
+
|
2216 |
+
$this->fmt->endContain();
|
2217 |
+
|
2218 |
+
if ( $idx < $paramCount - 1 ) {
|
2219 |
+
$this->fmt->sep( ', ' );
|
2220 |
+
}
|
2221 |
+
}
|
2222 |
+
$this->fmt->sep( ')' );
|
2223 |
+
$this->fmt->endContain();
|
2224 |
+
|
2225 |
+
$hasReturnType = static::$env['is7'] && $method->hasReturnType();
|
2226 |
+
if ( $hasReturnType ) {
|
2227 |
+
$type = $method->getReturnType();
|
2228 |
+
$this->fmt->startContain( 'ret' );
|
2229 |
+
$this->fmt->sep( ':' );
|
2230 |
+
$this->fmt->text( 'hint', (string) $type );
|
2231 |
+
$this->fmt->endContain();
|
2232 |
+
}
|
2233 |
+
|
2234 |
+
$this->fmt->endRow();
|
2235 |
+
}
|
2236 |
+
}
|
2237 |
+
|
2238 |
+
unset( $hashes[ $hash ] );
|
2239 |
+
$this->fmt->endGroup();
|
2240 |
+
|
2241 |
+
$this->fmt->cacheLock( $hash );
|
2242 |
+
}
|
2243 |
+
|
2244 |
+
|
2245 |
+
|
2246 |
+
/**
|
2247 |
+
* Scans for known classes and functions inside the provided expression,
|
2248 |
+
* and linkifies them when possible
|
2249 |
+
*
|
2250 |
+
* @param string $expression Expression to format
|
2251 |
+
* @return string Formatted output
|
2252 |
+
*/
|
2253 |
+
protected function evaluateExp( $expression = null ) {
|
2254 |
+
|
2255 |
+
if ( $expression === null ) {
|
2256 |
+
return;
|
2257 |
+
}
|
2258 |
+
|
2259 |
+
if ( static::strLen( $expression ) > 120 ) {
|
2260 |
+
$expression = substr( $expression, 0, 120 ) . '...';
|
2261 |
+
}
|
2262 |
+
|
2263 |
+
$this->fmt->sep( '> ' );
|
2264 |
+
|
2265 |
+
if ( strpos( $expression, '(' ) === false ) {
|
2266 |
+
return $this->fmt->text( 'expTxt', $expression );
|
2267 |
+
}
|
2268 |
+
|
2269 |
+
$keywords = array_map( 'trim', explode( '(', $expression, 2 ) );
|
2270 |
+
$parts = array();
|
2271 |
+
|
2272 |
+
// try to find out if this is a function
|
2273 |
+
try {
|
2274 |
+
$reflector = new \ReflectionFunction( $keywords[0] );
|
2275 |
+
$parts[] = array( $keywords[0], $reflector, '' );
|
2276 |
+
|
2277 |
+
} catch ( \Exception $e ) {
|
2278 |
+
|
2279 |
+
if ( stripos( $keywords[0], 'new ' ) === 0 ) {
|
2280 |
+
$cn = explode( ' ' , $keywords[0], 2 );
|
2281 |
+
|
2282 |
+
// linkify 'new keyword' (as constructor)
|
2283 |
+
try {
|
2284 |
+
$reflector = new \ReflectionMethod( $cn[1], '__construct' );
|
2285 |
+
$parts[] = array( $cn[0], $reflector, '' );
|
2286 |
+
|
2287 |
+
} catch ( \Exception $e ) {
|
2288 |
+
$reflector = null;
|
2289 |
+
$parts[] = $cn[0];
|
2290 |
+
}
|
2291 |
+
|
2292 |
+
// class name...
|
2293 |
+
try {
|
2294 |
+
$reflector = new \ReflectionClass( $cn[1] );
|
2295 |
+
$parts[] = array( $cn[1], $reflector, ' ' );
|
2296 |
+
|
2297 |
+
} catch ( \Exception $e ) {
|
2298 |
+
$reflector = null;
|
2299 |
+
$parts[] = $cn[1];
|
2300 |
+
}
|
2301 |
+
} else {
|
2302 |
+
|
2303 |
+
// we can only linkify methods called statically
|
2304 |
+
if ( strpos( $keywords[0], '::' ) === false ) {
|
2305 |
+
return $this->fmt->text( 'expTxt', $expression );
|
2306 |
+
}
|
2307 |
+
|
2308 |
+
$cn = explode( '::', $keywords[0], 2 );
|
2309 |
+
|
2310 |
+
// attempt to linkify class name
|
2311 |
+
try {
|
2312 |
+
$reflector = new \ReflectionClass( $cn[0] );
|
2313 |
+
$parts[] = array( $cn[0], $reflector, '' );
|
2314 |
+
|
2315 |
+
} catch ( \Exception $e ) {
|
2316 |
+
$reflector = null;
|
2317 |
+
$parts[] = $cn[0];
|
2318 |
+
}
|
2319 |
+
|
2320 |
+
// perhaps it's a static class method; try to linkify method
|
2321 |
+
try {
|
2322 |
+
$reflector = new \ReflectionMethod( $cn[0], $cn[1] );
|
2323 |
+
$parts[] = array( $cn[1], $reflector, '::' );
|
2324 |
+
|
2325 |
+
} catch ( \Exception $e ) {
|
2326 |
+
$reflector = null;
|
2327 |
+
$parts[] = $cn[1];
|
2328 |
+
}
|
2329 |
+
}
|
2330 |
+
}
|
2331 |
+
|
2332 |
+
$parts[] = "({$keywords[1]}";
|
2333 |
+
|
2334 |
+
foreach ( $parts as $element ) {
|
2335 |
+
if ( ! is_array( $element ) ) {
|
2336 |
+
$this->fmt->text( 'expTxt', $element );
|
2337 |
+
continue;
|
2338 |
+
}
|
2339 |
+
|
2340 |
+
list($text, $reflector, $prefix) = $element;
|
2341 |
+
|
2342 |
+
if ( $prefix !== '' ) {
|
2343 |
+
$this->fmt->text( 'expTxt', $prefix );
|
2344 |
+
}
|
2345 |
+
|
2346 |
+
$this->fromReflector( $reflector, $text );
|
2347 |
+
}
|
2348 |
+
|
2349 |
+
}
|
2350 |
+
|
2351 |
+
|
2352 |
+
|
2353 |
+
/**
|
2354 |
+
* Calculates real string length
|
2355 |
+
*
|
2356 |
+
* @param string $string
|
2357 |
+
* @return int
|
2358 |
+
*/
|
2359 |
+
protected static function strLen( $string ) {
|
2360 |
+
$encoding = function_exists( 'mb_detect_encoding' ) ? mb_detect_encoding( $string ) : false;
|
2361 |
+
return $encoding ? mb_strlen( $string, $encoding ) : strlen( $string );
|
2362 |
+
}
|
2363 |
+
|
2364 |
+
|
2365 |
+
|
2366 |
+
/**
|
2367 |
+
* Safe str_pad alternative
|
2368 |
+
*
|
2369 |
+
* @param string $string
|
2370 |
+
* @param int $padLen
|
2371 |
+
* @param string $padStr
|
2372 |
+
* @param int $padType
|
2373 |
+
* @return string
|
2374 |
+
*/
|
2375 |
+
protected static function strPad( $input, $padLen, $padStr = ' ', $padType = STR_PAD_RIGHT ) {
|
2376 |
+
$diff = strlen( $input ) - static::strLen( $input );
|
2377 |
+
return str_pad( $input, $padLen + $diff, $padStr, $padType );
|
2378 |
+
}
|
2379 |
+
|
2380 |
+
}
|
2381 |
+
|
2382 |
+
|
2383 |
+
|
2384 |
+
/**
|
2385 |
+
* Formatter abstraction
|
2386 |
+
*/
|
2387 |
+
abstract class RFormatter {
|
2388 |
+
|
2389 |
+
/**
|
2390 |
+
* Flush output and send contents to the output device
|
2391 |
+
*/
|
2392 |
+
abstract public function flush();
|
2393 |
+
|
2394 |
+
/**
|
2395 |
+
* Generate a base entity
|
2396 |
+
*
|
2397 |
+
* @param string|array $type
|
2398 |
+
* @param string|null $text
|
2399 |
+
* @param string|array|null $meta
|
2400 |
+
* @param string|null $uri
|
2401 |
+
*/
|
2402 |
+
abstract public function text( $type, $text = null, $meta = null, $uri = null);
|
2403 |
+
|
2404 |
+
/**
|
2405 |
+
* Generate container start token
|
2406 |
+
*
|
2407 |
+
* @param string|array $type
|
2408 |
+
* @param string|bool $label
|
2409 |
+
*/
|
2410 |
+
public function startContain( $type, $label = false ) {}
|
2411 |
+
|
2412 |
+
/**
|
2413 |
+
* Generate container ending token
|
2414 |
+
*/
|
2415 |
+
public function endContain(){}
|
2416 |
+
|
2417 |
+
/**
|
2418 |
+
* Generate empty group token
|
2419 |
+
*
|
2420 |
+
* @param string $prefix
|
2421 |
+
*/
|
2422 |
+
public function emptyGroup( $prefix = '' ) {}
|
2423 |
+
|
2424 |
+
/**
|
2425 |
+
* Generate group start token
|
2426 |
+
*
|
2427 |
+
* This method must return boolean TRUE on success, false otherwise (eg. max depth reached).
|
2428 |
+
* The evaluator will skip this group on FALSE
|
2429 |
+
*
|
2430 |
+
* @param string $prefix
|
2431 |
+
* @return bool
|
2432 |
+
*/
|
2433 |
+
public function startGroup( $prefix = '' ) {}
|
2434 |
+
|
2435 |
+
/**
|
2436 |
+
* Generate group ending token
|
2437 |
+
*/
|
2438 |
+
public function endGroup(){}
|
2439 |
+
|
2440 |
+
/**
|
2441 |
+
* Generate section title
|
2442 |
+
*
|
2443 |
+
* @param string $title
|
2444 |
+
*/
|
2445 |
+
public function sectionTitle( $title ) {}
|
2446 |
+
|
2447 |
+
/**
|
2448 |
+
* Generate row start token
|
2449 |
+
*/
|
2450 |
+
public function startRow(){}
|
2451 |
+
|
2452 |
+
/**
|
2453 |
+
* Generate row ending token
|
2454 |
+
*/
|
2455 |
+
public function endRow(){}
|
2456 |
+
|
2457 |
+
/**
|
2458 |
+
* Column divider (cell delimiter)
|
2459 |
+
*
|
2460 |
+
* @param int $padLen
|
2461 |
+
*/
|
2462 |
+
public function colDiv( $padLen = null ) {}
|
2463 |
+
|
2464 |
+
/**
|
2465 |
+
* Generate modifier tokens
|
2466 |
+
*
|
2467 |
+
* @param array $items
|
2468 |
+
*/
|
2469 |
+
public function bubbles( array $items ) {}
|
2470 |
+
|
2471 |
+
/**
|
2472 |
+
* Input expression start
|
2473 |
+
*/
|
2474 |
+
public function startExp(){}
|
2475 |
+
|
2476 |
+
/**
|
2477 |
+
* Input expression end
|
2478 |
+
*/
|
2479 |
+
public function endExp(){}
|
2480 |
+
|
2481 |
+
/**
|
2482 |
+
* Root starting token
|
2483 |
+
*/
|
2484 |
+
public function startRoot(){}
|
2485 |
+
|
2486 |
+
/**
|
2487 |
+
* Root ending token
|
2488 |
+
*/
|
2489 |
+
public function endRoot(){}
|
2490 |
+
|
2491 |
+
/**
|
2492 |
+
* Separator token
|
2493 |
+
*
|
2494 |
+
* @param string $label
|
2495 |
+
*/
|
2496 |
+
public function sep( $label = ' ' ) {}
|
2497 |
+
|
2498 |
+
/**
|
2499 |
+
* Resolve cache request
|
2500 |
+
*
|
2501 |
+
* If the ID is not present in the cache, then a new cache entry is created
|
2502 |
+
* for the given ID, and string offsets are captured until cacheLock is called
|
2503 |
+
*
|
2504 |
+
* This method must return TRUE if the ID exists in the cache, and append the cached item
|
2505 |
+
* to the output, FALSE otherwise.
|
2506 |
+
*
|
2507 |
+
* @param string $id
|
2508 |
+
* @return bool
|
2509 |
+
*/
|
2510 |
+
public function didCache( $id ) {
|
2511 |
+
return false;
|
2512 |
+
}
|
2513 |
+
|
2514 |
+
/**
|
2515 |
+
* Ends cache capturing for the given ID
|
2516 |
+
*
|
2517 |
+
* @param string $id
|
2518 |
+
*/
|
2519 |
+
public function cacheLock( $id ) {}
|
2520 |
+
|
2521 |
+
}
|
2522 |
+
|
2523 |
+
|
2524 |
+
|
2525 |
+
|
2526 |
+
/**
|
2527 |
+
* Generates the output in HTML5 format
|
2528 |
+
*/
|
2529 |
+
class RHtmlFormatter extends RFormatter {
|
2530 |
+
|
2531 |
+
protected
|
2532 |
+
|
2533 |
+
/**
|
2534 |
+
* Actual output
|
2535 |
+
*
|
2536 |
+
* @var string
|
2537 |
+
*/
|
2538 |
+
$out = '',
|
2539 |
+
|
2540 |
+
/**
|
2541 |
+
* Tracks current nesting level
|
2542 |
+
*
|
2543 |
+
* @var int
|
2544 |
+
*/
|
2545 |
+
$level = 0,
|
2546 |
+
|
2547 |
+
/**
|
2548 |
+
* Stores tooltip content for all entries
|
2549 |
+
*
|
2550 |
+
* To avoid having duplicate tooltip data in the HTML, we generate them once,
|
2551 |
+
* and use references (the Q index) to pull data when required;
|
2552 |
+
* this improves performance significantly
|
2553 |
+
*
|
2554 |
+
* @var array
|
2555 |
+
*/
|
2556 |
+
$tips = array(),
|
2557 |
+
|
2558 |
+
/**
|
2559 |
+
* Used to cache output to speed up processing.
|
2560 |
+
*
|
2561 |
+
* Contains hashes as keys and string offsets as values.
|
2562 |
+
* Cached objects will not be processed again in the same query
|
2563 |
+
*
|
2564 |
+
* @var array
|
2565 |
+
*/
|
2566 |
+
$cache = array(),
|
2567 |
+
|
2568 |
+
/**
|
2569 |
+
* Map of used HTML tag and attributes
|
2570 |
+
*
|
2571 |
+
* @var string
|
2572 |
+
*/
|
2573 |
+
$def = array();
|
2574 |
+
|
2575 |
+
|
2576 |
+
|
2577 |
+
protected static
|
2578 |
+
|
2579 |
+
/**
|
2580 |
+
* Instance counter
|
2581 |
+
*
|
2582 |
+
* @var int
|
2583 |
+
*/
|
2584 |
+
$counter = 0,
|
2585 |
+
|
2586 |
+
/**
|
2587 |
+
* Tracks style/jscript inclusion state
|
2588 |
+
*
|
2589 |
+
* @var bool
|
2590 |
+
*/
|
2591 |
+
$didAssets = false;
|
2592 |
+
|
2593 |
+
|
2594 |
+
public function __construct() {
|
2595 |
+
|
2596 |
+
if ( WSAL_Ref::config( 'validHtml' ) ) {
|
2597 |
+
|
2598 |
+
$this->def = array(
|
2599 |
+
'base' => 'span',
|
2600 |
+
'tip' => 'div',
|
2601 |
+
'cell' => 'data-cell',
|
2602 |
+
'table' => 'data-table',
|
2603 |
+
'row' => 'data-row',
|
2604 |
+
'group' => 'data-group',
|
2605 |
+
'gLabel' => 'data-gLabel',
|
2606 |
+
'match' => 'data-match',
|
2607 |
+
'tipRef' => 'data-tip',
|
2608 |
+
);
|
2609 |
+
|
2610 |
+
} else {
|
2611 |
+
|
2612 |
+
$this->def = array(
|
2613 |
+
'base' => 'r',
|
2614 |
+
'tip' => 't',
|
2615 |
+
'cell' => 'c',
|
2616 |
+
'table' => 't',
|
2617 |
+
'row' => 'r',
|
2618 |
+
'group' => 'g',
|
2619 |
+
'gLabel' => 'gl',
|
2620 |
+
'match' => 'm',
|
2621 |
+
'tipRef' => 'h',
|
2622 |
+
);
|
2623 |
+
|
2624 |
+
}
|
2625 |
+
|
2626 |
+
}
|
2627 |
+
|
2628 |
+
|
2629 |
+
|
2630 |
+
public function flush() {
|
2631 |
+
print $this->out;
|
2632 |
+
$this->out = '';
|
2633 |
+
$this->cache = array();
|
2634 |
+
$this->tips = array();
|
2635 |
+
}
|
2636 |
+
|
2637 |
+
|
2638 |
+
public function didCache( $id ) {
|
2639 |
+
|
2640 |
+
if ( ! isset( $this->cache[ $id ] ) ) {
|
2641 |
+
$this->cache[ $id ] = array();
|
2642 |
+
$this->cache[ $id ][] = strlen( $this->out );
|
2643 |
+
return false;
|
2644 |
+
}
|
2645 |
+
|
2646 |
+
if ( ! isset( $this->cache[ $id ][1] ) ) {
|
2647 |
+
$this->cache[ $id ][0] = strlen( $this->out );
|
2648 |
+
return false;
|
2649 |
+
}
|
2650 |
+
|
2651 |
+
$this->out .= substr( $this->out, $this->cache[ $id ][0], $this->cache[ $id ][1] );
|
2652 |
+
return true;
|
2653 |
+
}
|
2654 |
+
|
2655 |
+
public function cacheLock( $id ) {
|
2656 |
+
$this->cache[ $id ][] = strlen( $this->out ) - $this->cache[ $id ][0];
|
2657 |
+
}
|
2658 |
+
|
2659 |
+
|
2660 |
+
public function sep( $label = ' ' ) {
|
2661 |
+
$this->out .= $label !== ' ' ? '<i>' . static::escape( $label ) . '</i>' : $label;
|
2662 |
+
}
|
2663 |
+
|
2664 |
+
public function text( $type, $text = null, $meta = null, $uri = null ) {
|
2665 |
+
|
2666 |
+
if ( ! is_array( $type ) ) {
|
2667 |
+
$type = (array) $type;
|
2668 |
+
}
|
2669 |
+
|
2670 |
+
$tip = '';
|
2671 |
+
$text = ($text !== null) ? static::escape( $text ) : static::escape( $type[0] );
|
2672 |
+
|
2673 |
+
if ( in_array( 'special', $type ) ) {
|
2674 |
+
$text = strtr(
|
2675 |
+
$text, array(
|
2676 |
+
"\r" => '<i>\r</i>', // carriage return
|
2677 |
+
"\t" => '<i>\t</i>', // horizontal tab
|
2678 |
+
"\n" => '<i>\n</i>', // linefeed (new line)
|
2679 |
+
"\v" => '<i>\v</i>', // vertical tab
|
2680 |
+
"\e" => '<i>\e</i>', // escape
|
2681 |
+
"\f" => '<i>\f</i>', // form feed
|
2682 |
+
"\0" => '<i>\0</i>',
|
2683 |
+
)
|
2684 |
+
);
|
2685 |
+
}
|
2686 |
+
|
2687 |
+
// generate tooltip reference (probably the slowest part of the code ;)
|
2688 |
+
if ( $meta !== null ) {
|
2689 |
+
$tipIdx = array_search( $meta, $this->tips, true );
|
2690 |
+
|
2691 |
+
if ( $tipIdx === false ) {
|
2692 |
+
$tipIdx = array_push( $this->tips, $meta ) - 1;
|
2693 |
+
}
|
2694 |
+
|
2695 |
+
$tip = " {$this->def['tipRef']}=\"{$tipIdx}\"";
|
2696 |
+
// $tip = sprintf('%s="%d"', $this->def['tipRef'], $tipIdx);
|
2697 |
+
}
|
2698 |
+
|
2699 |
+
// wrap text in a link?
|
2700 |
+
if ( $uri !== null ) {
|
2701 |
+
$text = '<a href="' . $uri . '" target="_blank">' . $text . '</a>';
|
2702 |
+
}
|
2703 |
+
|
2704 |
+
$typeStr = '';
|
2705 |
+
foreach ( $type as $part ) {
|
2706 |
+
$typeStr .= " data-{$part}";
|
2707 |
+
}
|
2708 |
+
|
2709 |
+
$this->out .= "<{$this->def['base']}{$typeStr}{$tip}>{$text}</{$this->def['base']}>";
|
2710 |
+
// $this->out .= sprintf('<%1$s%2$s %3$s>%4$s</%1$s>', $this->def['base'], $typeStr, $tip, $text);
|
2711 |
+
}
|
2712 |
+
|
2713 |
+
public function startContain( $type, $label = false ) {
|
2714 |
+
|
2715 |
+
if ( ! is_array( $type ) ) {
|
2716 |
+
$type = (array) $type;
|
2717 |
+
}
|
2718 |
+
|
2719 |
+
if ( $label ) {
|
2720 |
+
$this->out .= '<br>';
|
2721 |
+
}
|
2722 |
+
|
2723 |
+
$typeStr = '';
|
2724 |
+
foreach ( $type as $part ) {
|
2725 |
+
$typeStr .= " data-{$part}";
|
2726 |
+
}
|
2727 |
+
|
2728 |
+
$this->out .= "<{$this->def['base']}{$typeStr}>";
|
2729 |
+
|
2730 |
+
if ( $label ) {
|
2731 |
+
$this->out .= "<{$this->def['base']} {$this->def['match']}>{$type[0]}</{$this->def['base']}>";
|
2732 |
+
}
|
2733 |
+
}
|
2734 |
+
|
2735 |
+
public function endContain() {
|
2736 |
+
$this->out .= "</{$this->def['base']}>";
|
2737 |
+
}
|
2738 |
+
|
2739 |
+
public function emptyGroup( $prefix = '' ) {
|
2740 |
+
|
2741 |
+
if ( $prefix !== '' ) {
|
2742 |
+
$prefix = "<{$this->def['base']} {$this->def['gLabel']}>" . static::escape( $prefix ) . "</{$this->def['base']}>";
|
2743 |
+
}
|
2744 |
+
|
2745 |
+
$this->out .= "<i>(</i>{$prefix}<i>)</i>";
|
2746 |
+
}
|
2747 |
+
|
2748 |
+
|
2749 |
+
public function startGroup( $prefix = '' ) {
|
2750 |
+
|
2751 |
+
$maxDepth = WSAL_Ref::config( 'maxDepth' );
|
2752 |
+
|
2753 |
+
if ( ($maxDepth > 0) && (($this->level + 1) > $maxDepth) ) {
|
2754 |
+
$this->emptyGroup( '...' );
|
2755 |
+
return false;
|
2756 |
+
}
|
2757 |
+
|
2758 |
+
$this->level++;
|
2759 |
+
|
2760 |
+
$expLvl = WSAL_Ref::config( 'expLvl' );
|
2761 |
+
$exp = ($expLvl < 0) || (($expLvl > 0) && ($this->level <= $expLvl)) ? ' data-exp' : '';
|
2762 |
+
|
2763 |
+
if ( $prefix !== '' ) {
|
2764 |
+
$prefix = "<{$this->def['base']} {$this->def['gLabel']}>" . static::escape( $prefix ) . "</{$this->def['base']}>";
|
2765 |
+
}
|
2766 |
+
|
2767 |
+
$this->out .= "<i>(</i>{$prefix}<{$this->def['base']} data-toggle{$exp}></{$this->def['base']}><{$this->def['base']} {$this->def['group']}><{$this->def['base']} {$this->def['table']}>";
|
2768 |
+
|
2769 |
+
return true;
|
2770 |
+
}
|
2771 |
+
|
2772 |
+
public function endGroup() {
|
2773 |
+
$this->out .= "</{$this->def['base']}></{$this->def['base']}><i>)</i>";
|
2774 |
+
$this->level--;
|
2775 |
+
}
|
2776 |
+
|
2777 |
+
public function sectionTitle( $title ) {
|
2778 |
+
$this->out .= "</{$this->def['base']}><{$this->def['base']} data-tHead>{$title}</{$this->def['base']}><{$this->def['base']} {$this->def['table']}>";
|
2779 |
+
}
|
2780 |
+
|
2781 |
+
public function startRow() {
|
2782 |
+
$this->out .= "<{$this->def['base']} {$this->def['row']}><{$this->def['base']} {$this->def['cell']}>";
|
2783 |
+
}
|
2784 |
+
|
2785 |
+
public function endRow() {
|
2786 |
+
$this->out .= "</{$this->def['base']}></{$this->def['base']}>";
|
2787 |
+
}
|
2788 |
+
|
2789 |
+
public function colDiv( $padLen = null ) {
|
2790 |
+
$this->out .= "</{$this->def['base']}><{$this->def['base']} {$this->def['cell']}>";
|
2791 |
+
}
|
2792 |
+
|
2793 |
+
public function bubbles( array $items ) {
|
2794 |
+
|
2795 |
+
if ( ! $items ) {
|
2796 |
+
return;
|
2797 |
+
}
|
2798 |
+
|
2799 |
+
$this->out .= "<{$this->def['base']} data-mod>";
|
2800 |
+
|
2801 |
+
foreach ( $items as $info ) {
|
2802 |
+
$this->out .= $this->text( 'mod-' . strtolower( $info[1] ), $info[0], $info[1] );
|
2803 |
+
}
|
2804 |
+
|
2805 |
+
$this->out .= "</{$this->def['base']}>";
|
2806 |
+
}
|
2807 |
+
|
2808 |
+
public function startExp() {
|
2809 |
+
$this->out .= "<{$this->def['base']} data-input>";
|
2810 |
+
}
|
2811 |
+
|
2812 |
+
public function endExp() {
|
2813 |
+
if ( WSAL_Ref::config( 'showBacktrace' ) && ($trace = WSAL_Ref::getBacktrace()) ) {
|
2814 |
+
$docRoot = isset( $_SERVER['DOCUMENT_ROOT'] ) ? $_SERVER['DOCUMENT_ROOT'] : '';
|
2815 |
+
$path = strpos( $trace['file'], $docRoot ) !== 0 ? $trace['file'] : ltrim( str_replace( $docRoot, '', $trace['file'] ), '/' );
|
2816 |
+
// $this->out .= "<{$this->def['base']} data-backtrace>{$path}:{$trace['line']}</{$this->def['base']}>";
|
2817 |
+
}
|
2818 |
+
|
2819 |
+
$this->out .= "</{$this->def['base']}><{$this->def['base']} data-output>";
|
2820 |
+
}
|
2821 |
+
|
2822 |
+
public function startRoot() {
|
2823 |
+
$this->out .= '<!-- ref#' . ++static::$counter . ' --><div>' . static::getAssets() . '<div class="ref">';
|
2824 |
+
}
|
2825 |
+
|
2826 |
+
public function endRoot() {
|
2827 |
+
$this->out .= "</{$this->def['base']}>";
|
2828 |
+
|
2829 |
+
// process tooltips
|
2830 |
+
$tipHtml = '';
|
2831 |
+
foreach ( $this->tips as $idx => $meta ) {
|
2832 |
+
|
2833 |
+
$tip = '';
|
2834 |
+
if ( ! is_array( $meta ) ) {
|
2835 |
+
$meta = array(
|
2836 |
+
'title' => $meta,
|
2837 |
+
);
|
2838 |
+
}
|
2839 |
+
|
2840 |
+
$meta += array(
|
2841 |
+
'title' => '',
|
2842 |
+
'left' => '',
|
2843 |
+
'description' => '',
|
2844 |
+
'tags' => array(),
|
2845 |
+
'sub' => array(),
|
2846 |
+
);
|
2847 |
+
|
2848 |
+
$meta = static::escape( $meta );
|
2849 |
+
$cols = array();
|
2850 |
+
|
2851 |
+
if ( $meta['left'] ) {
|
2852 |
+
$cols[] = "<{$this->def['base']} {$this->def['cell']} data-varType>{$meta['left']}</{$this->def['base']}>";
|
2853 |
+
}
|
2854 |
+
|
2855 |
+
$title = $meta['title'] ? "<{$this->def['base']} data-title>{$meta['title']}</{$this->def['base']}>" : '';
|
2856 |
+
$desc = $meta['description'] ? "<{$this->def['base']} data-desc>{$meta['description']}</{$this->def['base']}>" : '';
|
2857 |
+
$tags = '';
|
2858 |
+
|
2859 |
+
foreach ( $meta['tags'] as $tag => $values ) {
|
2860 |
+
foreach ( $values as $value ) {
|
2861 |
+
if ( $tag === 'param' ) {
|
2862 |
+
$value[0] = "{$value[0]} {$value[1]}";
|
2863 |
+
unset( $value[1] );
|
2864 |
+
}
|
2865 |
+
|
2866 |
+
$value = is_array( $value ) ? implode( "</{$this->def['base']}><{$this->def['base']} {$this->def['cell']}>", $value ) : $value;
|
2867 |
+
$tags .= "<{$this->def['base']} {$this->def['row']}><{$this->def['base']} {$this->def['cell']}>@{$tag}</{$this->def['base']}><{$this->def['base']} {$this->def['cell']}>{$value}</{$this->def['base']}></{$this->def['base']}>";
|
2868 |
+
}
|
2869 |
+
}
|
2870 |
+
|
2871 |
+
if ( $tags ) {
|
2872 |
+
$tags = "<{$this->def['base']} {$this->def['table']}>{$tags}</{$this->def['base']}>";
|
2873 |
+
}
|
2874 |
+
|
2875 |
+
if ( $title || $desc || $tags ) {
|
2876 |
+
$cols[] = "<{$this->def['base']} {$this->def['cell']}>{$title}{$desc}{$tags}</{$this->def['base']}>";
|
2877 |
+
}
|
2878 |
+
|
2879 |
+
if ( $cols ) {
|
2880 |
+
$tip = "<{$this->def['base']} {$this->def['row']}>" . implode( '', $cols ) . "</{$this->def['base']}>";
|
2881 |
+
}
|
2882 |
+
|
2883 |
+
$sub = '';
|
2884 |
+
foreach ( $meta['sub'] as $line ) {
|
2885 |
+
$sub .= "<{$this->def['base']} {$this->def['row']}><{$this->def['base']} {$this->def['cell']}>" . implode( "</{$this->def['base']}><{$this->def['base']} {$this->def['cell']}>", $line ) . "</{$this->def['base']}></{$this->def['base']}>";
|
2886 |
+
}
|
2887 |
+
|
2888 |
+
if ( $sub ) {
|
2889 |
+
$tip .= "<{$this->def['base']} {$this->def['row']}><{$this->def['base']} {$this->def['cell']} data-sub><{$this->def['base']} {$this->def['table']}>{$sub}</{$this->def['base']}></{$this->def['base']}></{$this->def['base']}>";
|
2890 |
+
}
|
2891 |
+
|
2892 |
+
if ( $tip ) {
|
2893 |
+
$this->out .= "<{$this->def['tip']}>{$tip}</{$this->def['tip']}>";
|
2894 |
+
}
|
2895 |
+
}
|
2896 |
+
|
2897 |
+
if ( ($timeout = WSAL_Ref::getTimeoutPoint()) > 0 ) {
|
2898 |
+
$this->out .= sprintf( "<{$this->def['base']} data-error>Listing incomplete. Timed-out after %4.2fs</{$this->def['base']}>", $timeout );
|
2899 |
+
}
|
2900 |
+
|
2901 |
+
$this->out .= '</div></div><!-- /ref#' . static::$counter . ' -->';
|
2902 |
+
}
|
2903 |
+
|
2904 |
+
|
2905 |
+
|
2906 |
+
/**
|
2907 |
+
* Get styles and javascript (only generated for the 1st call)
|
2908 |
+
*
|
2909 |
+
* @return string
|
2910 |
+
*/
|
2911 |
+
public static function getAssets() {
|
2912 |
+
|
2913 |
+
// first call? include styles and javascript
|
2914 |
+
if ( static::$didAssets ) {
|
2915 |
+
return '';
|
2916 |
+
}
|
2917 |
+
|
2918 |
+
ob_start();
|
2919 |
+
|
2920 |
+
if ( WSAL_Ref::config( 'stylePath' ) !== false ) {
|
2921 |
+
?>
|
2922 |
+
<style>
|
2923 |
+
<?php readfile( str_replace( '{:dir}', __DIR__, WSAL_Ref::config( 'stylePath' ) ) ); ?>
|
2924 |
+
</style>
|
2925 |
+
<?php
|
2926 |
+
}
|
2927 |
+
|
2928 |
+
if ( WSAL_Ref::config( 'scriptPath' ) !== false ) {
|
2929 |
+
?>
|
2930 |
+
<script>
|
2931 |
+
<?php readfile( str_replace( '{:dir}', __DIR__, WSAL_Ref::config( 'scriptPath' ) ) ); ?>
|
2932 |
+
</script>
|
2933 |
+
<?php
|
2934 |
+
}
|
2935 |
+
|
2936 |
+
// normalize space and remove comments
|
2937 |
+
$output = preg_replace( '/\s+/', ' ', trim( ob_get_clean() ) );
|
2938 |
+
$output = preg_replace( '!/\*.*?\*/!s', '', $output );
|
2939 |
+
$output = preg_replace( '/\n\s*\n/', "\n", $output );
|
2940 |
+
|
2941 |
+
static::$didAssets = true;
|
2942 |
+
return $output;
|
2943 |
+
}
|
2944 |
+
|
2945 |
+
|
2946 |
+
/**
|
2947 |
+
* Escapes variable for HTML output
|
2948 |
+
*
|
2949 |
+
* @param string|array $var
|
2950 |
+
* @return string|array
|
2951 |
+
*/
|
2952 |
+
protected static function escape( $var ) {
|
2953 |
+
return is_array( $var ) ? array_map( 'static::escape', $var ) : htmlspecialchars( $var, ENT_QUOTES );
|
2954 |
+
}
|
2955 |
+
|
2956 |
+
}
|
2957 |
+
|
2958 |
+
|
2959 |
+
|
2960 |
+
/**
|
2961 |
+
* Generates the output in plain text format
|
2962 |
+
*/
|
2963 |
+
class RTextFormatter extends RFormatter {
|
2964 |
+
|
2965 |
+
protected
|
2966 |
+
|
2967 |
+
/**
|
2968 |
+
* Actual output
|
2969 |
+
*
|
2970 |
+
* @var string
|
2971 |
+
*/
|
2972 |
+
$out = '',
|
2973 |
+
|
2974 |
+
/**
|
2975 |
+
* Tracks current nesting level
|
2976 |
+
*
|
2977 |
+
* @var int
|
2978 |
+
*/
|
2979 |
+
$level = 0,
|
2980 |
+
|
2981 |
+
/**
|
2982 |
+
* Current indenting level
|
2983 |
+
*
|
2984 |
+
* @var int
|
2985 |
+
*/
|
2986 |
+
$indent = 0,
|
2987 |
+
|
2988 |
+
$lastIdx = 0,
|
2989 |
+
$lastLineSt = 0,
|
2990 |
+
$levelPad = array( 0 );
|
2991 |
+
|
2992 |
+
|
2993 |
+
|
2994 |
+
public function flush() {
|
2995 |
+
print $this->out;
|
2996 |
+
$this->out = '';
|
2997 |
+
$this->cache = array();
|
2998 |
+
}
|
2999 |
+
|
3000 |
+
public function sep( $label = ' ' ) {
|
3001 |
+
$this->out .= $label;
|
3002 |
+
}
|
3003 |
+
|
3004 |
+
public function text( $type, $text = null, $meta = null, $uri = null ) {
|
3005 |
+
|
3006 |
+
if ( ! is_array( $type ) ) {
|
3007 |
+
$type = (array) $type;
|
3008 |
+
}
|
3009 |
+
|
3010 |
+
if ( $text === null ) {
|
3011 |
+
$text = $type[0];
|
3012 |
+
}
|
3013 |
+
|
3014 |
+
if ( in_array( 'special', $type, true ) ) {
|
3015 |
+
$text = strtr(
|
3016 |
+
$text, array(
|
3017 |
+
"\r" => '\r', // carriage return
|
3018 |
+
"\t" => '\t', // horizontal tab
|
3019 |
+
"\n" => '\n', // linefeed (new line)
|
3020 |
+
"\v" => '\v', // vertical tab
|
3021 |
+
"\e" => '\e', // escape
|
3022 |
+
"\f" => '\f', // form feed
|
3023 |
+
"\0" => '\0',
|
3024 |
+
)
|
3025 |
+
);
|
3026 |
+
|
3027 |
+
$this->out .= $text;
|
3028 |
+
return;
|
3029 |
+
}
|
3030 |
+
|
3031 |
+
$formatMap = array(
|
3032 |
+
'string' => '%3$s "%2$s"',
|
3033 |
+
'integer' => 'int(%2$s)',
|
3034 |
+
'double' => 'double(%2$s)',
|
3035 |
+
'true' => 'bool(%2$s)',
|
3036 |
+
'false' => 'bool(%2$s)',
|
3037 |
+
'key' => '[%2$s]',
|
3038 |
+
);
|
3039 |
+
|
3040 |
+
if ( ! is_string( $meta ) ) {
|
3041 |
+
$meta = '';
|
3042 |
+
}
|
3043 |
+
|
3044 |
+
$this->out .= isset( $formatMap[ $type[0] ] ) ? sprintf( $formatMap[ $type[0] ], $type[0], $text, $meta ) : $text;
|
3045 |
+
}
|
3046 |
+
|
3047 |
+
public function startContain( $type, $label = false ) {
|
3048 |
+
|
3049 |
+
if ( ! is_array( $type ) ) {
|
3050 |
+
$type = (array) $type;
|
3051 |
+
}
|
3052 |
+
|
3053 |
+
if ( $label ) {
|
3054 |
+
$this->out .= "\n" . str_repeat( ' ', $this->indent + $this->levelPad[ $this->level ] ) . "┗ {$type[0]} ~ ";
|
3055 |
+
}
|
3056 |
+
}
|
3057 |
+
|
3058 |
+
public function emptyGroup( $prefix = '' ) {
|
3059 |
+
$this->out .= "({$prefix})";
|
3060 |
+
}
|
3061 |
+
|
3062 |
+
public function startGroup( $prefix = '' ) {
|
3063 |
+
|
3064 |
+
$maxDepth = WSAL_Ref::config( 'maxDepth' );
|
3065 |
+
|
3066 |
+
if ( ($maxDepth > 0) && (($this->level + 1) > $maxDepth) ) {
|
3067 |
+
$this->emptyGroup( '...' );
|
3068 |
+
return false;
|
3069 |
+
}
|
3070 |
+
|
3071 |
+
$this->level++;
|
3072 |
+
$this->out .= '(';
|
3073 |
+
|
3074 |
+
$this->indent += $this->levelPad[ $this->level - 1 ];
|
3075 |
+
return true;
|
3076 |
+
}
|
3077 |
+
|
3078 |
+
public function endGroup() {
|
3079 |
+
$this->out .= "\n" . str_repeat( ' ', $this->indent ) . ')';
|
3080 |
+
$this->indent -= $this->levelPad[ $this->level - 1 ];
|
3081 |
+
$this->level--;
|
3082 |
+
}
|
3083 |
+
|
3084 |
+
public function sectionTitle( $title ) {
|
3085 |
+
$pad = str_repeat( ' ', $this->indent + 2 );
|
3086 |
+
$this->out .= sprintf( "\n\n%s%s\n%s%s", $pad, $title, $pad, str_repeat( '-', strlen( $title ) ) );
|
3087 |
+
}
|
3088 |
+
|
3089 |
+
public function startRow() {
|
3090 |
+
$this->out .= "\n " . str_repeat( ' ', $this->indent );
|
3091 |
+
$this->lastLineSt = strlen( $this->out );
|
3092 |
+
}
|
3093 |
+
|
3094 |
+
public function endRow() {
|
3095 |
+
}
|
3096 |
+
|
3097 |
+
public function colDiv( $padLen = null ) {
|
3098 |
+
$padLen = ($padLen !== null) ? $padLen + 1 : 1;
|
3099 |
+
$this->out .= str_repeat( ' ', $padLen );
|
3100 |
+
|
3101 |
+
$this->lastIdx = strlen( $this->out );
|
3102 |
+
$this->levelPad[ $this->level ] = $this->lastIdx - $this->lastLineSt + 2;
|
3103 |
+
}
|
3104 |
+
|
3105 |
+
public function bubbles( array $items ) {
|
3106 |
+
|
3107 |
+
if ( ! $items ) {
|
3108 |
+
$this->out .= ' ';
|
3109 |
+
return;
|
3110 |
+
}
|
3111 |
+
|
3112 |
+
$this->out .= '<';
|
3113 |
+
|
3114 |
+
foreach ( $items as $item ) {
|
3115 |
+
$this->out .= $item[0];
|
3116 |
+
}
|
3117 |
+
|
3118 |
+
$this->out .= '>';
|
3119 |
+
}
|
3120 |
+
|
3121 |
+
public function endExp() {
|
3122 |
+
|
3123 |
+
if ( WSAL_Ref::config( 'showBacktrace' ) && ($trace = WSAL_Ref::getBacktrace()) ) {
|
3124 |
+
$this->out .= ' - ' . $trace['file'] . ':' . $trace['line'];
|
3125 |
+
}
|
3126 |
+
|
3127 |
+
$this->out .= "\n" . str_repeat( '=', strlen( $this->out ) ) . "\n";
|
3128 |
+
}
|
3129 |
+
|
3130 |
+
public function startRoot() {
|
3131 |
+
$this->out .= "\n\n";
|
3132 |
+
|
3133 |
+
}
|
3134 |
+
|
3135 |
+
public function endRoot() {
|
3136 |
+
$this->out .= "\n";
|
3137 |
+
if ( ($timeout = WSAL_Ref::getTimeoutPoint()) > 0 ) {
|
3138 |
+
$this->out .= sprintf( "\n-- Listing incomplete. Timed-out after %4.2fs -- \n", $timeout );
|
3139 |
+
}
|
3140 |
+
}
|
3141 |
+
|
3142 |
+
}
|
3143 |
+
|
3144 |
+
|
3145 |
+
|
3146 |
+
/**
|
3147 |
+
* Text formatter with color support for CLI -- unfinished
|
3148 |
+
*/
|
3149 |
+
class RCliTextFormatter extends RTextFormatter {
|
3150 |
+
|
3151 |
+
public function sectionTitle( $title ) {
|
3152 |
+
$pad = str_repeat( ' ', $this->indent + 2 );
|
3153 |
+
$this->out .= sprintf( "\n\n%s\x1b[4;97m%s\x1b[0m", $pad, $title );
|
3154 |
+
}
|
3155 |
+
|
3156 |
+
public function startExp() {
|
3157 |
+
$this->out .= "\x1b[1;44;96m ";
|
3158 |
+
}
|
3159 |
+
|
3160 |
+
public function endExp() {
|
3161 |
+
if ( WSAL_Ref::config( 'showBacktrace' ) && ($trace = WSAL_Ref::getBacktrace()) ) {
|
3162 |
+
$this->out .= "\x1b[0m\x1b[44;36m " . $trace['file'] . ':' . $trace['line'];
|
3163 |
+
}
|
3164 |
+
|
3165 |
+
$this->out .= " \x1b[0m\n";
|
3166 |
+
}
|
3167 |
+
|
3168 |
+
public function endRoot() {
|
3169 |
+
$this->out .= "\n";
|
3170 |
+
if ( ($timeout = WSAL_Ref::getTimeoutPoint()) > 0 ) {
|
3171 |
+
$this->out .= sprintf( "\n\x1b[3;91m-- Listing incomplete. Timed-out after %4.2fs --\x1b[0m\n", $timeout );
|
3172 |
+
}
|
3173 |
+
}
|
3174 |
+
|
3175 |
+
}
|
classes/Sensors/Content.php
CHANGED
@@ -226,6 +226,7 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
226 |
'TagLink' => $term_link,
|
227 |
'old_desc' => $old_desc,
|
228 |
'new_desc' => $new_desc,
|
|
|
229 |
)
|
230 |
);
|
231 |
}
|
@@ -912,6 +913,7 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
912 |
'OldUrl' => $old_link,
|
913 |
'NewUrl' => $new_link,
|
914 |
$editor_link['name'] => $editor_link['value'],
|
|
|
915 |
)
|
916 |
);
|
917 |
return 1;
|
226 |
'TagLink' => $term_link,
|
227 |
'old_desc' => $old_desc,
|
228 |
'new_desc' => $new_desc,
|
229 |
+
'ReportText' => $old_desc . '|' . $new_desc,
|
230 |
)
|
231 |
);
|
232 |
}
|
913 |
'OldUrl' => $old_link,
|
914 |
'NewUrl' => $new_link,
|
915 |
$editor_link['name'] => $editor_link['value'],
|
916 |
+
'ReportText' => '"' . $old_link . '"|"' . $new_link . '"',
|
917 |
)
|
918 |
);
|
919 |
return 1;
|
classes/Sensors/LogInOut.php
CHANGED
@@ -97,6 +97,51 @@ class WSAL_Sensors_LogInOut extends WSAL_AbstractSensor {
|
|
97 |
* @param object $user - WP_User object.
|
98 |
*/
|
99 |
public function EventLogin( $user_login, $user = null ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
if ( empty( $user ) ) {
|
101 |
$user = get_user_by( 'login', $user_login );
|
102 |
}
|
97 |
* @param object $user - WP_User object.
|
98 |
*/
|
99 |
public function EventLogin( $user_login, $user = null ) {
|
100 |
+
// Get global POST array.
|
101 |
+
$post_array = filter_input_array( INPUT_POST );
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Check for Ultimate Member plugin.
|
105 |
+
*
|
106 |
+
* @since 3.1.6
|
107 |
+
*/
|
108 |
+
if ( isset( $post_array['_um_account'] )
|
109 |
+
&& isset( $post_array['_um_account_tab'] )
|
110 |
+
&& 'password' === $post_array['_um_account_tab'] ) {
|
111 |
+
/**
|
112 |
+
* If the data is coming from UM plugin account change
|
113 |
+
* password page, check for change in password.
|
114 |
+
*
|
115 |
+
* 1. Check previous password.
|
116 |
+
* 2. Check new password.
|
117 |
+
* 3. Check confirm new password.
|
118 |
+
* 4. If current & new password don't match.
|
119 |
+
* 5. And new & confirm password are same then log change password alert.
|
120 |
+
*/
|
121 |
+
if ( isset( $post_array['current_user_password'] ) // Previous password.
|
122 |
+
&& isset( $post_array['user_password'] ) // New password.
|
123 |
+
&& isset( $post_array['confirm_user_password'] ) // Confirm new password.
|
124 |
+
&& $post_array['current_user_password'] !== $post_array['user_password'] // If current & new password don't match.
|
125 |
+
&& $post_array['user_password'] === $post_array['confirm_user_password'] ) { // And new & confirm password are same then.
|
126 |
+
// Get user.
|
127 |
+
if ( empty( $user ) ) {
|
128 |
+
$user = get_user_by( 'login', $user_login );
|
129 |
+
}
|
130 |
+
|
131 |
+
// Log user changed password alert.
|
132 |
+
if ( ! empty( $user ) ) {
|
133 |
+
$user_roles = $this->plugin->settings->GetCurrentUserRoles( $user->roles );
|
134 |
+
$this->plugin->alerts->Trigger(
|
135 |
+
4003, array(
|
136 |
+
'Username' => $user->user_login,
|
137 |
+
'CurrentUserRoles' => $user_roles,
|
138 |
+
), true
|
139 |
+
);
|
140 |
+
}
|
141 |
+
}
|
142 |
+
return; // Return.
|
143 |
+
}
|
144 |
+
|
145 |
if ( empty( $user ) ) {
|
146 |
$user = get_user_by( 'login', $user_login );
|
147 |
}
|
classes/Sensors/MetaData.php
CHANGED
@@ -259,6 +259,7 @@ class WSAL_Sensors_MetaData extends WSAL_AbstractSensor {
|
|
259 |
'MetaValueOld' => $this->old_meta[ $meta_id ]->val,
|
260 |
'MetaLink' => $meta_key,
|
261 |
$editor_link['name'] => $editor_link['value'],
|
|
|
262 |
)
|
263 |
);
|
264 |
}
|
@@ -429,13 +430,17 @@ class WSAL_Sensors_MetaData extends WSAL_AbstractSensor {
|
|
429 |
// Filter $_POST global array for security.
|
430 |
$post_array = filter_input_array( INPUT_POST );
|
431 |
|
432 |
-
// Check nonce.
|
433 |
-
if ( isset( $post_array['_wpnonce'] ) && ! wp_verify_nonce( $post_array['_wpnonce'], 'update-user_' . $user->ID ) ) {
|
434 |
-
return false;
|
435 |
-
}
|
436 |
-
|
437 |
// If update action is set then trigger the alert.
|
438 |
-
if ( isset( $post_array['
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
439 |
if ( isset( $this->old_meta[ $meta_id ] ) && ! in_array( $meta_key, $username_meta, true ) ) {
|
440 |
// Check change in meta value.
|
441 |
if ( $this->old_meta[ $meta_id ]->val != $meta_value ) {
|
@@ -445,6 +450,7 @@ class WSAL_Sensors_MetaData extends WSAL_AbstractSensor {
|
|
445 |
'custom_field_name' => $meta_key,
|
446 |
'new_value' => $meta_value,
|
447 |
'old_value' => $this->old_meta[ $meta_id ]->val,
|
|
|
448 |
)
|
449 |
);
|
450 |
}
|
259 |
'MetaValueOld' => $this->old_meta[ $meta_id ]->val,
|
260 |
'MetaLink' => $meta_key,
|
261 |
$editor_link['name'] => $editor_link['value'],
|
262 |
+
'ReportText' => $this->old_meta[ $meta_id ]->val . '|' . $meta_value,
|
263 |
)
|
264 |
);
|
265 |
}
|
430 |
// Filter $_POST global array for security.
|
431 |
$post_array = filter_input_array( INPUT_POST );
|
432 |
|
|
|
|
|
|
|
|
|
|
|
433 |
// If update action is set then trigger the alert.
|
434 |
+
if ( ( isset( $post_array['_wpnonce'] ) // WP Dashboard Support.
|
435 |
+
&& wp_verify_nonce( $post_array['_wpnonce'], 'update-user_' . $user->ID )
|
436 |
+
&& isset( $post_array['action'] )
|
437 |
+
&& 'update' == $post_array['action'] )
|
438 |
+
||
|
439 |
+
( isset( $post_array['_um_account'] ) // Ultimate Member Plugin support.
|
440 |
+
&& '1' === $post_array['_um_account']
|
441 |
+
&& isset( $post_array['_um_account_tab'] )
|
442 |
+
&& 'general' === $post_array['_um_account_tab'] )
|
443 |
+
) {
|
444 |
if ( isset( $this->old_meta[ $meta_id ] ) && ! in_array( $meta_key, $username_meta, true ) ) {
|
445 |
// Check change in meta value.
|
446 |
if ( $this->old_meta[ $meta_id ]->val != $meta_value ) {
|
450 |
'custom_field_name' => $meta_key,
|
451 |
'new_value' => $meta_value,
|
452 |
'old_value' => $this->old_meta[ $meta_id ]->val,
|
453 |
+
'ReportText' => $this->old_meta[ $meta_id ]->val . '|' . $meta_value,
|
454 |
)
|
455 |
);
|
456 |
}
|
classes/Sensors/UserProfile.php
CHANGED
@@ -45,8 +45,8 @@ class WSAL_Sensors_UserProfile extends WSAL_AbstractSensor {
|
|
45 |
add_action( 'delete_user', array( $this, 'EventUserDeleted' ) );
|
46 |
add_action( 'wpmu_delete_user', array( $this, 'EventUserDeleted' ) );
|
47 |
add_action( 'set_user_role', array( $this, 'EventUserRoleChanged' ), 10, 3 );
|
48 |
-
|
49 |
add_action( 'edit_user_profile', array( $this, 'EventOpenProfile' ), 10, 1 );
|
|
|
50 |
}
|
51 |
|
52 |
/**
|
@@ -300,4 +300,34 @@ class WSAL_Sensors_UserProfile extends WSAL_AbstractSensor {
|
|
300 |
|| $mgr->WillOrHasTriggered( 4001 )
|
301 |
);
|
302 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
}
|
45 |
add_action( 'delete_user', array( $this, 'EventUserDeleted' ) );
|
46 |
add_action( 'wpmu_delete_user', array( $this, 'EventUserDeleted' ) );
|
47 |
add_action( 'set_user_role', array( $this, 'EventUserRoleChanged' ), 10, 3 );
|
|
|
48 |
add_action( 'edit_user_profile', array( $this, 'EventOpenProfile' ), 10, 1 );
|
49 |
+
add_action( 'profile_update', array( $this, 'event_email_changed' ), 10, 2 );
|
50 |
}
|
51 |
|
52 |
/**
|
300 |
|| $mgr->WillOrHasTriggered( 4001 )
|
301 |
);
|
302 |
}
|
303 |
+
|
304 |
+
/**
|
305 |
+
* Method: Support for Ultimate Member email change
|
306 |
+
* alert.
|
307 |
+
*
|
308 |
+
* @param int $user_id - User ID.
|
309 |
+
* @param WP_User $old_userdata - Old WP_User object.
|
310 |
+
*/
|
311 |
+
public function event_email_changed( $user_id, $old_userdata ) {
|
312 |
+
// Get $_POST global array.
|
313 |
+
$post_array = filter_input_array( INPUT_POST );
|
314 |
+
|
315 |
+
if ( isset( $post_array['_um_account_tab'] ) // Check for UM tab.
|
316 |
+
&& 'general' === $post_array['_um_account_tab'] // Verify `General` UM tab.
|
317 |
+
&& ! empty( $post_array['user_email'] ) ) { // Check if user email is set.
|
318 |
+
$old_email = $old_userdata->user_email; // Old email.
|
319 |
+
$new_email = trim( $post_array['user_email'] ); // New email.
|
320 |
+
if ( $old_email !== $new_email ) { // If both emails don't match then log alert.
|
321 |
+
$event = get_current_user_id() === $user_id ? 4005 : 4006;
|
322 |
+
$this->plugin->alerts->Trigger(
|
323 |
+
$event, array(
|
324 |
+
'TargetUserID' => $user_id,
|
325 |
+
'TargetUsername' => $old_userdata->user_login,
|
326 |
+
'OldEmail' => $old_email,
|
327 |
+
'NewEmail' => $new_email,
|
328 |
+
)
|
329 |
+
);
|
330 |
+
}
|
331 |
+
}
|
332 |
+
}
|
333 |
}
|
classes/Sensors/WooCommerce.php
CHANGED
@@ -163,16 +163,47 @@ class WSAL_Sensors_WooCommerce extends WSAL_AbstractSensor {
|
|
163 |
* @param WC_Product $product - WooCommerce product object.
|
164 |
*/
|
165 |
public function product_stock_changed( $product ) {
|
166 |
-
//
|
167 |
-
|
|
|
|
|
|
|
|
|
168 |
return;
|
169 |
}
|
170 |
|
171 |
-
|
172 |
-
$
|
173 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
$new_stock_status = $product->get_stock_status(); // Get new stock status.
|
175 |
-
$product_id = $product->get_id(); // Get product id.
|
176 |
$product_title = $product->get_title(); // Get product title.
|
177 |
|
178 |
// Set post object.
|
@@ -270,7 +301,10 @@ class WSAL_Sensors_WooCommerce extends WSAL_AbstractSensor {
|
|
270 |
* @param stdClass $oldpost - The old post.
|
271 |
*/
|
272 |
public function EventChanged( $post_id, $newpost, $oldpost ) {
|
273 |
-
|
|
|
|
|
|
|
274 |
$changes = 0 + $this->EventCreation( $oldpost, $newpost );
|
275 |
if ( ! $changes ) {
|
276 |
// Change Categories.
|
@@ -430,6 +464,8 @@ class WSAL_Sensors_WooCommerce extends WSAL_AbstractSensor {
|
|
430 |
$this->plugin->alerts->Trigger(
|
431 |
9004, array(
|
432 |
'ProductTitle' => $oldpost->post_title,
|
|
|
|
|
433 |
$editor_link['name'] => $editor_link['value'],
|
434 |
)
|
435 |
);
|
@@ -479,6 +515,7 @@ class WSAL_Sensors_WooCommerce extends WSAL_AbstractSensor {
|
|
479 |
'OldUrl' => $old_link,
|
480 |
'NewUrl' => $new_link,
|
481 |
$editor_link['name'] => $editor_link['value'],
|
|
|
482 |
)
|
483 |
);
|
484 |
return 1;
|
163 |
* @param WC_Product $product - WooCommerce product object.
|
164 |
*/
|
165 |
public function product_stock_changed( $product ) {
|
166 |
+
// Get product id.
|
167 |
+
$product_id = $product->get_id();
|
168 |
+
|
169 |
+
// Return if current screen is edit post page.
|
170 |
+
global $pagenow;
|
171 |
+
if ( is_admin() && 'post.php' === $pagenow ) {
|
172 |
return;
|
173 |
}
|
174 |
|
175 |
+
// Get global $_POST array.
|
176 |
+
$post_array = filter_input_array( INPUT_POST );
|
177 |
+
|
178 |
+
// Special conditions for WooCommerce Bulk Stock Management.
|
179 |
+
if ( 'edit.php' === $pagenow
|
180 |
+
&& isset( $post_array['page'] )
|
181 |
+
&& 'woocommerce-bulk-stock-management' === $post_array['page'] ) {
|
182 |
+
$old_acc_stock = isset( $post_array['current_stock_quantity'] ) ? $post_array['current_stock_quantity'] : false;
|
183 |
+
$new_acc_stock = isset( $post_array['stock_quantity'] ) ? $post_array['stock_quantity'] : false;
|
184 |
+
|
185 |
+
// Get old stock quantity.
|
186 |
+
$old_stock = ! empty( $this->_old_stock ) ? $this->_old_stock : $old_acc_stock[ $product_id ];
|
187 |
+
|
188 |
+
// Following cases handle the stock status.
|
189 |
+
if ( '0' === $old_acc_stock[ $product_id ] && '0' !== $new_acc_stock[ $product_id ] ) {
|
190 |
+
$old_stock_status = 'outofstock';
|
191 |
+
} elseif ( '0' !== $old_acc_stock[ $product_id ] && '0' === $new_acc_stock[ $product_id ] ) {
|
192 |
+
$old_stock_status = 'instock';
|
193 |
+
} elseif ( '0' === $old_acc_stock[ $product_id ] && '0' === $new_acc_stock[ $product_id ] ) {
|
194 |
+
$old_stock_status = 'outofstock';
|
195 |
+
} elseif ( '0' !== $old_acc_stock[ $product_id ] && '0' !== $new_acc_stock[ $product_id ] ) {
|
196 |
+
$old_stock_status = 'instock';
|
197 |
+
} else {
|
198 |
+
$old_stock_status = '';
|
199 |
+
}
|
200 |
+
} else {
|
201 |
+
$old_stock = $this->_old_stock; // Get old stock quantity.
|
202 |
+
$old_stock_status = $this->_old_stock_status; // Get old stock status.
|
203 |
+
}
|
204 |
+
|
205 |
+
$new_stock = $product->get_stock_quantity(); // Get new stock quantity.
|
206 |
$new_stock_status = $product->get_stock_status(); // Get new stock status.
|
|
|
207 |
$product_title = $product->get_title(); // Get product title.
|
208 |
|
209 |
// Set post object.
|
301 |
* @param stdClass $oldpost - The old post.
|
302 |
*/
|
303 |
public function EventChanged( $post_id, $newpost, $oldpost ) {
|
304 |
+
// Global variable which returns current page.
|
305 |
+
global $pagenow;
|
306 |
+
|
307 |
+
if ( 'post.php' === $pagenow && $this->CheckWooCommerce( $oldpost ) && is_admin() ) {
|
308 |
$changes = 0 + $this->EventCreation( $oldpost, $newpost );
|
309 |
if ( ! $changes ) {
|
310 |
// Change Categories.
|
464 |
$this->plugin->alerts->Trigger(
|
465 |
9004, array(
|
466 |
'ProductTitle' => $oldpost->post_title,
|
467 |
+
'OldDescription' => $oldpost->post_excerpt,
|
468 |
+
'NewDescription' => $newpost->post_excerpt,
|
469 |
$editor_link['name'] => $editor_link['value'],
|
470 |
)
|
471 |
);
|
515 |
'OldUrl' => $old_link,
|
516 |
'NewUrl' => $new_link,
|
517 |
$editor_link['name'] => $editor_link['value'],
|
518 |
+
'ReportText' => '"' . $old_link . '"|"' . $new_link . '"',
|
519 |
)
|
520 |
);
|
521 |
return 1;
|
classes/Sensors/YoastSEO.php
CHANGED
@@ -235,6 +235,7 @@ class WSAL_Sensors_YoastSEO extends WSAL_AbstractSensor {
|
|
235 |
'OldSEOTitle' => $old_title,
|
236 |
'NewSEOTitle' => $title,
|
237 |
$editor_link['name'] => $editor_link['value'],
|
|
|
238 |
)
|
239 |
);
|
240 |
}
|
@@ -268,6 +269,7 @@ class WSAL_Sensors_YoastSEO extends WSAL_AbstractSensor {
|
|
268 |
'old_desc' => $old_desc,
|
269 |
'new_desc' => $desc,
|
270 |
$editor_link['name'] => $editor_link['value'],
|
|
|
271 |
)
|
272 |
);
|
273 |
}
|
@@ -367,7 +369,7 @@ class WSAL_Sensors_YoastSEO extends WSAL_AbstractSensor {
|
|
367 |
$old_adv = $this->get_post_seo_data( 'meta-robots-adv' );
|
368 |
|
369 |
// If old and new values are empty then don't log the alert.
|
370 |
-
if ( empty( $
|
371 |
return;
|
372 |
}
|
373 |
|
@@ -398,6 +400,11 @@ class WSAL_Sensors_YoastSEO extends WSAL_AbstractSensor {
|
|
398 |
// Get old title value.
|
399 |
$old_url = $this->get_post_seo_data( 'canonical' );
|
400 |
|
|
|
|
|
|
|
|
|
|
|
401 |
// If title is changed then log alert.
|
402 |
if ( $old_url !== $canonical_url ) {
|
403 |
$editor_link = $this->get_editor_link( $this->post_id );
|
@@ -412,6 +419,7 @@ class WSAL_Sensors_YoastSEO extends WSAL_AbstractSensor {
|
|
412 |
'OldCanonicalUrl' => $old_url,
|
413 |
'NewCanonicalUrl' => $canonical_url,
|
414 |
$editor_link['name'] => $editor_link['value'],
|
|
|
415 |
)
|
416 |
);
|
417 |
}
|
@@ -650,10 +658,12 @@ class WSAL_Sensors_YoastSEO extends WSAL_AbstractSensor {
|
|
650 |
|
651 |
case 'title-home-wpseo':
|
652 |
$alert_code = 8810;
|
|
|
653 |
break;
|
654 |
|
655 |
case 'metadesc-home-wpseo':
|
656 |
$alert_code = 8811;
|
|
|
657 |
break;
|
658 |
|
659 |
case 'company_or_person':
|
@@ -789,4 +799,3 @@ class WSAL_Sensors_YoastSEO extends WSAL_AbstractSensor {
|
|
789 |
}
|
790 |
}
|
791 |
}
|
792 |
-
|
235 |
'OldSEOTitle' => $old_title,
|
236 |
'NewSEOTitle' => $title,
|
237 |
$editor_link['name'] => $editor_link['value'],
|
238 |
+
'ReportText' => $old_title . '|' . $title,
|
239 |
)
|
240 |
);
|
241 |
}
|
269 |
'old_desc' => $old_desc,
|
270 |
'new_desc' => $desc,
|
271 |
$editor_link['name'] => $editor_link['value'],
|
272 |
+
'ReportText' => $old_desc . '|' . $desc,
|
273 |
)
|
274 |
);
|
275 |
}
|
369 |
$old_adv = $this->get_post_seo_data( 'meta-robots-adv' );
|
370 |
|
371 |
// If old and new values are empty then don't log the alert.
|
372 |
+
if ( empty( $old_adv ) && ( empty( $advanced ) || '-' === $advanced ) ) {
|
373 |
return;
|
374 |
}
|
375 |
|
400 |
// Get old title value.
|
401 |
$old_url = $this->get_post_seo_data( 'canonical' );
|
402 |
|
403 |
+
// Check to see if both change value are empty.
|
404 |
+
if ( empty( $old_url ) && empty( $canonical_url ) ) {
|
405 |
+
return; // Return if both are empty.
|
406 |
+
}
|
407 |
+
|
408 |
// If title is changed then log alert.
|
409 |
if ( $old_url !== $canonical_url ) {
|
410 |
$editor_link = $this->get_editor_link( $this->post_id );
|
419 |
'OldCanonicalUrl' => $old_url,
|
420 |
'NewCanonicalUrl' => $canonical_url,
|
421 |
$editor_link['name'] => $editor_link['value'],
|
422 |
+
'ReportText' => '"' . $old_url . '"|"' . $canonical_url . '"',
|
423 |
)
|
424 |
);
|
425 |
}
|
658 |
|
659 |
case 'title-home-wpseo':
|
660 |
$alert_code = 8810;
|
661 |
+
$alert_args['ReportText'] = $old_value . '|' . $new_value;
|
662 |
break;
|
663 |
|
664 |
case 'metadesc-home-wpseo':
|
665 |
$alert_code = 8811;
|
666 |
+
$alert_args['ReportText'] = $old_value . '|' . $new_value;
|
667 |
break;
|
668 |
|
669 |
case 'company_or_person':
|
799 |
}
|
800 |
}
|
801 |
}
|
|
classes/Views/AuditLog.php
CHANGED
@@ -110,6 +110,20 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
110 |
<?php
|
111 |
}
|
112 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
}
|
114 |
|
115 |
/**
|
@@ -260,18 +274,19 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
260 |
}
|
261 |
$occ = new WSAL_Models_Occurrence();
|
262 |
$occ->Load( 'id = %d', array( (int) $get_array['occurrence'] ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
263 |
|
264 |
echo '<!DOCTYPE html><html><head>';
|
265 |
-
echo '<link rel="stylesheet" id="open-sans-css" href="' . esc_url( $this->_plugin->GetBaseUrl() ) . '/css/nice_r.css" type="text/css" media="all">';
|
266 |
-
echo '<script type="text/javascript" src="' . esc_url( $this->_plugin->GetBaseUrl() ) . '/js/nice_r.js"></script>';
|
267 |
echo '<style type="text/css">';
|
268 |
echo 'html, body { margin: 0; padding: 0; }';
|
269 |
-
echo '.nice_r { position: absolute; padding: 8px; }';
|
270 |
-
echo '.nice_r a { overflow: visible; }';
|
271 |
echo '</style>';
|
272 |
echo '</head><body>';
|
273 |
-
|
274 |
-
$nicer->render();
|
275 |
echo '</body></html>';
|
276 |
die;
|
277 |
}
|
@@ -287,13 +302,15 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
287 |
// Filter $_POST array for security.
|
288 |
$post_array = filter_input_array( INPUT_POST );
|
289 |
|
|
|
290 |
if ( ! isset( $post_array['logcount'] ) ) {
|
291 |
die( 'Log count parameter expected.' );
|
292 |
}
|
293 |
|
|
|
294 |
$old = (int) $post_array['logcount'];
|
295 |
-
$max = 40; // 40*500msec = 20sec
|
296 |
|
|
|
297 |
$is_archive = false;
|
298 |
if ( $this->_plugin->settings->IsArchivingEnabled() ) {
|
299 |
$selected_db = get_transient( 'wsal_wp_selected_db' );
|
@@ -302,16 +319,16 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
302 |
}
|
303 |
}
|
304 |
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
usleep( 500000 ); // 500msec
|
309 |
-
} while ( ($old == $new) && (--$max > 0) );
|
310 |
|
|
|
311 |
if ( $is_archive ) {
|
312 |
echo 'false';
|
313 |
} else {
|
314 |
-
|
|
|
315 |
}
|
316 |
die;
|
317 |
}
|
110 |
<?php
|
111 |
}
|
112 |
}
|
113 |
+
|
114 |
+
// Get DB connector.
|
115 |
+
$db_config = WSAL_Connector_ConnectorFactory::GetConfig(); // Get DB connector configuration.
|
116 |
+
$wsal_db = $this->_plugin->getConnector( $db_config )->getConnection(); // Get DB connection.
|
117 |
+
$connection = 0 !== (int) $wsal_db->dbh->errno ? false : true; // Database connection error check.
|
118 |
+
|
119 |
+
// Add connectivity notice.
|
120 |
+
if ( ! $connection ) {
|
121 |
+
?>
|
122 |
+
<div class="notice notice-error">
|
123 |
+
<p><?php esc_html_e( 'There are connectivity issues with the database where the WordPress activity log is stored. The logs will be temporary buffered in the WordPress database until the connection is fully restored.', 'wp-security-audit-log' ); ?></p>
|
124 |
+
</div>
|
125 |
+
<?php
|
126 |
+
}
|
127 |
}
|
128 |
|
129 |
/**
|
274 |
}
|
275 |
$occ = new WSAL_Models_Occurrence();
|
276 |
$occ->Load( 'id = %d', array( (int) $get_array['occurrence'] ) );
|
277 |
+
$alert_meta = $occ->GetMetaArray();
|
278 |
+
unset( $alert_meta['ReportText'] );
|
279 |
+
|
280 |
+
// Set WSAL_Ref class scripts and styles.
|
281 |
+
WSAL_Ref::config( 'stylePath', esc_url( $this->_plugin->GetBaseDir() ) . '/css/wsal-ref.css' );
|
282 |
+
WSAL_Ref::config( 'scriptPath', esc_url( $this->_plugin->GetBaseDir() ) . '/js/wsal-ref.js' );
|
283 |
|
284 |
echo '<!DOCTYPE html><html><head>';
|
|
|
|
|
285 |
echo '<style type="text/css">';
|
286 |
echo 'html, body { margin: 0; padding: 0; }';
|
|
|
|
|
287 |
echo '</style>';
|
288 |
echo '</head><body>';
|
289 |
+
wsal_r( $alert_meta );
|
|
|
290 |
echo '</body></html>';
|
291 |
die;
|
292 |
}
|
302 |
// Filter $_POST array for security.
|
303 |
$post_array = filter_input_array( INPUT_POST );
|
304 |
|
305 |
+
// If log count is not set then return error.
|
306 |
if ( ! isset( $post_array['logcount'] ) ) {
|
307 |
die( 'Log count parameter expected.' );
|
308 |
}
|
309 |
|
310 |
+
// Total number of alerts.
|
311 |
$old = (int) $post_array['logcount'];
|
|
|
312 |
|
313 |
+
// Check if the user is viewing archived db.
|
314 |
$is_archive = false;
|
315 |
if ( $this->_plugin->settings->IsArchivingEnabled() ) {
|
316 |
$selected_db = get_transient( 'wsal_wp_selected_db' );
|
319 |
}
|
320 |
}
|
321 |
|
322 |
+
// Check for new total number of alerts.
|
323 |
+
$occ = new WSAL_Models_Occurrence();
|
324 |
+
$new = (int) $occ->Count();
|
|
|
|
|
325 |
|
326 |
+
// If the current view is archive then don't refresh.
|
327 |
if ( $is_archive ) {
|
328 |
echo 'false';
|
329 |
} else {
|
330 |
+
// If the count is changed, then return the new count.
|
331 |
+
echo $old === $new ? 'false' : esc_html( $new );
|
332 |
}
|
333 |
die;
|
334 |
}
|
classes/Views/Settings.php
CHANGED
@@ -371,7 +371,7 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
371 |
$wsal_lpn = false;
|
372 |
} elseif ( ! $wsal_lpn ) {
|
373 |
// Default option value.
|
374 |
-
$wsal_lpn =
|
375 |
}
|
376 |
?>
|
377 |
<input type="checkbox" name="login_page_notification" id="login_page_notification" <?php checked( $wsal_lpn ); ?> />
|
@@ -380,15 +380,27 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
380 |
<?php
|
381 |
// Get login page notification text.
|
382 |
$wsal_lpn_text = $this->_plugin->settings->get_login_page_notification_text();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
?>
|
384 |
<textarea name="login_page_notification_text"
|
385 |
id="login_page_notification_text"
|
386 |
-
cols="
|
387 |
<?php echo ( $wsal_lpn ) ? false : 'disabled'; ?>
|
388 |
-
><?php echo ( $wsal_lpn_text ) ? wp_kses( $wsal_lpn_text, $
|
389 |
<br/>
|
390 |
<span class="description">
|
391 |
-
<?php esc_html_e( 'Many compliance regulations (such as the GDRP) require
|
|
|
|
|
392 |
</span>
|
393 |
</fieldset>
|
394 |
</td>
|
@@ -409,11 +421,11 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
409 |
</p>
|
410 |
<?php
|
411 |
foreach ( array(
|
|
|
412 |
WSAL_Settings::OPT_DEV_DATA_INSPECTOR => array(
|
413 |
__( 'Data Inspector', 'wp-security-audit-log' ),
|
414 |
__( 'View data logged for each triggered alert.', 'wp-security-audit-log' ),
|
415 |
),
|
416 |
-
/**
|
417 |
WSAL_Settings::OPT_DEV_PHP_ERRORS => array(
|
418 |
__('PHP Errors', 'wp-security-audit-log'),
|
419 |
__('Enables sensor for alerts generated from PHP.', 'wp-security-audit-log')
|
371 |
$wsal_lpn = false;
|
372 |
} elseif ( ! $wsal_lpn ) {
|
373 |
// Default option value.
|
374 |
+
$wsal_lpn = false;
|
375 |
}
|
376 |
?>
|
377 |
<input type="checkbox" name="login_page_notification" id="login_page_notification" <?php checked( $wsal_lpn ); ?> />
|
380 |
<?php
|
381 |
// Get login page notification text.
|
382 |
$wsal_lpn_text = $this->_plugin->settings->get_login_page_notification_text();
|
383 |
+
$wsal_lpn_text_default = __( 'For security and auditing purposes, a record of all of your logged-in actions and changes within the WordPress dashboard will be recorded in an audit log with the <a href="https://www.wpsecurityauditlog.com/" target="_blank">WP Security Audit Log plugin</a>. The audit log also includes the IP address where you accessed this site from.', 'wp-security-audit-log' );
|
384 |
+
|
385 |
+
// Allowed HTML tags for this setting.
|
386 |
+
$allowed_tags = array(
|
387 |
+
'a' => array(
|
388 |
+
'href' => array(),
|
389 |
+
'title' => array(),
|
390 |
+
'target' => array(),
|
391 |
+
),
|
392 |
+
);
|
393 |
?>
|
394 |
<textarea name="login_page_notification_text"
|
395 |
id="login_page_notification_text"
|
396 |
+
cols="60" rows="6"
|
397 |
<?php echo ( $wsal_lpn ) ? false : 'disabled'; ?>
|
398 |
+
><?php echo ( $wsal_lpn_text ) ? wp_kses( $wsal_lpn_text, $allowed_tags ) : wp_kses( $wsal_lpn_text_default, $allowed_tags ); ?></textarea>
|
399 |
<br/>
|
400 |
<span class="description">
|
401 |
+
<?php esc_html_e( 'Many compliance regulations (such as the GDRP) require website administrators to tell the users of this website that a log is kept of all the changes they do when logged in.', 'wp-security-audit-log' ); ?>
|
402 |
+
<br />
|
403 |
+
<?php echo wp_kses( __( '<strong>Note: </strong>', 'wp-security-audit-log' ), $this->_plugin->allowed_html_tags ) . esc_html__( 'The only HTML code allowed in the login page notification is for links ( < a href >...< /a > ).', 'wp-security-audit-log' ); ?>
|
404 |
</span>
|
405 |
</fieldset>
|
406 |
</td>
|
421 |
</p>
|
422 |
<?php
|
423 |
foreach ( array(
|
424 |
+
/**
|
425 |
WSAL_Settings::OPT_DEV_DATA_INSPECTOR => array(
|
426 |
__( 'Data Inspector', 'wp-security-audit-log' ),
|
427 |
__( 'View data logged for each triggered alert.', 'wp-security-audit-log' ),
|
428 |
),
|
|
|
429 |
WSAL_Settings::OPT_DEV_PHP_ERRORS => array(
|
430 |
__('PHP Errors', 'wp-security-audit-log'),
|
431 |
__('Enables sensor for alerts generated from PHP.', 'wp-security-audit-log')
|
classes/Views/ToggleAlerts.php
CHANGED
@@ -160,6 +160,7 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
160 |
}
|
161 |
}
|
162 |
|
|
|
163 |
$tab_id = $this->GetSafeCatgName( $subname );
|
164 |
|
165 |
// Skip Pages and CPTs section.
|
@@ -178,6 +179,15 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
178 |
</thead>
|
179 |
<tbody>
|
180 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
foreach ( $alerts as $alert ) {
|
182 |
if ( $alert->type <= 0006 ) {
|
183 |
continue; // <- Ignore php alerts.
|
@@ -338,6 +348,9 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
338 |
.wsal-tab td input[type=number] {
|
339 |
width: 100%;
|
340 |
}
|
|
|
|
|
|
|
341 |
</style>
|
342 |
<?php
|
343 |
}
|
160 |
}
|
161 |
}
|
162 |
|
163 |
+
// Get tab id.
|
164 |
$tab_id = $this->GetSafeCatgName( $subname );
|
165 |
|
166 |
// Skip Pages and CPTs section.
|
179 |
</thead>
|
180 |
<tbody>
|
181 |
<?php
|
182 |
+
if ( 'content' === $tab_id ) :
|
183 |
+
?>
|
184 |
+
<tr>
|
185 |
+
<td colspan="4">
|
186 |
+
<p class="wsal-tab-help description"><?php echo wp_kses( __( '<strong>Note:</strong> Post refers to any type of content, i.e. blog post, page or a post with a custom post type.', 'wp-security-audit-log' ), $this->_plugin->allowed_html_tags ); ?></p>
|
187 |
+
</td>
|
188 |
+
</tr>
|
189 |
+
<?php
|
190 |
+
endif;
|
191 |
foreach ( $alerts as $alert ) {
|
192 |
if ( $alert->type <= 0006 ) {
|
193 |
continue; // <- Ignore php alerts.
|
348 |
.wsal-tab td input[type=number] {
|
349 |
width: 100%;
|
350 |
}
|
351 |
+
.widefat td .wsal-tab-help {
|
352 |
+
margin: 0 8px;
|
353 |
+
}
|
354 |
</style>
|
355 |
<?php
|
356 |
}
|
css/wsal-ref.css
ADDED
@@ -0,0 +1,508 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.ref{
|
2 |
+
font: normal normal 12px/18px Consolas, "Liberation Mono", Menlo, "Courier New", Courier, monospace;
|
3 |
+
color: #333;
|
4 |
+
}
|
5 |
+
|
6 |
+
/* reset default styles for these elements */
|
7 |
+
.ref i,
|
8 |
+
.ref span,
|
9 |
+
.ref r,
|
10 |
+
.ref a{
|
11 |
+
font-style: inherit;
|
12 |
+
font-weight: inherit;
|
13 |
+
margin: 0;
|
14 |
+
padding: 0;
|
15 |
+
text-align: left;
|
16 |
+
display: inline;
|
17 |
+
text-decoration: inherit;
|
18 |
+
white-space: normal;
|
19 |
+
background: none;
|
20 |
+
}
|
21 |
+
|
22 |
+
/* meta content (used to generate tooltips) */
|
23 |
+
.ref > div,
|
24 |
+
.ref > t{
|
25 |
+
display: none;
|
26 |
+
}
|
27 |
+
|
28 |
+
/* show help cursor when mouse is over an entity with a tooltip */
|
29 |
+
.ref [data-tip],
|
30 |
+
.ref [h]{
|
31 |
+
cursor: help;
|
32 |
+
}
|
33 |
+
|
34 |
+
/* pointer if inside a link */
|
35 |
+
.ref a > [data-tip],
|
36 |
+
.ref a > [h]{
|
37 |
+
cursor: pointer;
|
38 |
+
}
|
39 |
+
|
40 |
+
/* links */
|
41 |
+
.ref a{
|
42 |
+
color: inherit;
|
43 |
+
border-bottom: 1px dotted transparent;
|
44 |
+
border-color: inherit;
|
45 |
+
}
|
46 |
+
|
47 |
+
/* tooltip; note that the js overrides top/left properties, this is why we use margin */
|
48 |
+
#rTip{
|
49 |
+
display: none;
|
50 |
+
position: absolute;
|
51 |
+
z-index: 99999;
|
52 |
+
font-size: 12px;
|
53 |
+
white-space: pre;
|
54 |
+
text-align: left;
|
55 |
+
text-shadow: 0 -1px 0 #191919;
|
56 |
+
line-height: 16px;
|
57 |
+
background: #222;
|
58 |
+
color: #888;
|
59 |
+
border: 0;
|
60 |
+
border-radius: 4px;
|
61 |
+
opacity: 0.90;
|
62 |
+
box-shadow:0 0 4px rgba(0,0,0, 0.25);
|
63 |
+
-webkit-transition: opacity .25s, margin .25s;
|
64 |
+
transition: opacity .25s, margin .25s;
|
65 |
+
}
|
66 |
+
|
67 |
+
#rTip.visible{
|
68 |
+
display: table;
|
69 |
+
margin: 10px 0 0 15px;
|
70 |
+
}
|
71 |
+
|
72 |
+
#rTip.visible.fadingOut{
|
73 |
+
opacity: 0;
|
74 |
+
margin: 20px 0 0 25px;
|
75 |
+
}
|
76 |
+
|
77 |
+
#rTip [data-cell],
|
78 |
+
#rTip [c]{
|
79 |
+
padding: 2px 7px;
|
80 |
+
}
|
81 |
+
|
82 |
+
#rTip [data-title], #rTip [data-desc]{
|
83 |
+
padding: 8px;
|
84 |
+
display: block;
|
85 |
+
color: #ccc;
|
86 |
+
}
|
87 |
+
|
88 |
+
#rTip [data-desc]{
|
89 |
+
padding-top: 0px;
|
90 |
+
color: #777;
|
91 |
+
}
|
92 |
+
|
93 |
+
#rTip [data-cell][data-varType],
|
94 |
+
#rTip [c][data-varType]{
|
95 |
+
padding: 10px;
|
96 |
+
background: #333;
|
97 |
+
box-shadow: inset -1px 0 0 #444;
|
98 |
+
border-right:1px solid #111;
|
99 |
+
border-top-left-radius: 4px;
|
100 |
+
border-bottom-left-radius: 4px;
|
101 |
+
}
|
102 |
+
|
103 |
+
#rTip [data-cell][data-sub],
|
104 |
+
#rTip [c][data-sub]{
|
105 |
+
padding: 8px 10px 10px 10px;
|
106 |
+
background: #333;
|
107 |
+
box-shadow: inset 0 1px 0 #444;
|
108 |
+
border-top:1px solid #111;
|
109 |
+
border-bottom-right-radius: 4px;
|
110 |
+
border-bottom-left-radius: 4px;
|
111 |
+
}
|
112 |
+
|
113 |
+
#rTip [data-table] [data-cell]:first-child,
|
114 |
+
#rTip [t] [c]:first-child{
|
115 |
+
font: bold 11px Helvetica, Arial;
|
116 |
+
color: #888;
|
117 |
+
}
|
118 |
+
|
119 |
+
#rTip [data-table] [data-cell]:nth-child(2),
|
120 |
+
#rTip [t] [c]:nth-child(2){
|
121 |
+
color: #edd078;
|
122 |
+
}
|
123 |
+
|
124 |
+
|
125 |
+
|
126 |
+
|
127 |
+
/* base entity - can be nested */
|
128 |
+
.ref span, .ref r{
|
129 |
+
white-space: pre;
|
130 |
+
display: inline;
|
131 |
+
}
|
132 |
+
|
133 |
+
/* key-value dividers, property & method modifiers etc. */
|
134 |
+
.ref i{
|
135 |
+
white-space: pre;
|
136 |
+
color: #aaa;
|
137 |
+
}
|
138 |
+
|
139 |
+
/* source expression (input) */
|
140 |
+
.ref [data-input]{
|
141 |
+
margin: 2px 0 0;
|
142 |
+
padding: 10px 7px;
|
143 |
+
display: block;
|
144 |
+
color: #ccc;
|
145 |
+
background-color: #333;
|
146 |
+
border-bottom: 1px solid #fff;
|
147 |
+
}
|
148 |
+
|
149 |
+
.ref [data-backtrace]{
|
150 |
+
float: right;
|
151 |
+
}
|
152 |
+
|
153 |
+
.ref [data-output]{
|
154 |
+
background: #f9f9f9;
|
155 |
+
border: 1px solid #eee;
|
156 |
+
border-top: 0;
|
157 |
+
border-radius: 0 0 4px 4px;
|
158 |
+
box-shadow: inset 0px 4px 4px #f3f3f3, inset 0px -8px 8px #fff;
|
159 |
+
padding: 2px 5px;
|
160 |
+
margin: 0 0 4px;
|
161 |
+
text-shadow: 0 1px 0 #fff;
|
162 |
+
display: block;
|
163 |
+
}
|
164 |
+
|
165 |
+
/* expand/collapse toggle link for groups */
|
166 |
+
.ref [data-toggle]{
|
167 |
+
display: inline-block;
|
168 |
+
vertical-align: -3px;
|
169 |
+
margin-left: 2px;
|
170 |
+
width: 0px;
|
171 |
+
height: 0px;
|
172 |
+
border-style: solid;
|
173 |
+
border-width: 7px 0 7px 10px;
|
174 |
+
border-color: transparent transparent transparent #CC0033;
|
175 |
+
cursor: pointer;
|
176 |
+
-webkit-transition: all ease-in .15s;
|
177 |
+
transition: all ease-in .15s;
|
178 |
+
}
|
179 |
+
|
180 |
+
/* collapse graphic */
|
181 |
+
.ref [data-toggle][data-exp]{
|
182 |
+
-webkit-transform: rotate(90deg);
|
183 |
+
-ms-transform: rotate(90deg);
|
184 |
+
transform: rotate(90deg);
|
185 |
+
}
|
186 |
+
|
187 |
+
.ref [data-group],
|
188 |
+
.ref [g]{
|
189 |
+
display: none;
|
190 |
+
}
|
191 |
+
|
192 |
+
.ref [data-toggle][data-exp] ~ [data-group],
|
193 |
+
.ref [data-toggle][data-exp] ~ [g]{
|
194 |
+
display: block;
|
195 |
+
}
|
196 |
+
|
197 |
+
/* group sections */
|
198 |
+
.ref [data-table],
|
199 |
+
.ref [t]{
|
200 |
+
display: table;
|
201 |
+
}
|
202 |
+
|
203 |
+
/* section titles */
|
204 |
+
.ref [data-tHead]{
|
205 |
+
font: bold 11px Helvetica, Arial;
|
206 |
+
color: #bcbcbc;
|
207 |
+
text-transform: lowercase;
|
208 |
+
margin: 12px 0 2px 10px;
|
209 |
+
display: block;
|
210 |
+
}
|
211 |
+
|
212 |
+
/* emulate a table for displaying array & object members */
|
213 |
+
/* section row */
|
214 |
+
.ref [data-row],
|
215 |
+
.ref [r]{
|
216 |
+
display: table-row;
|
217 |
+
}
|
218 |
+
|
219 |
+
/* zebra-like rows */
|
220 |
+
.ref [data-output] [data-row]:nth-child(odd){background: #f4f4f4;}
|
221 |
+
.ref [data-output] [data-row]:nth-child(even){background: #f9f9f9;}
|
222 |
+
.ref [data-output] [r]:nth-child(odd){background: #f4f4f4;}
|
223 |
+
.ref [data-output] [r]:nth-child(even){background: #f9f9f9;}
|
224 |
+
|
225 |
+
/* section cells */
|
226 |
+
.ref [data-cell],
|
227 |
+
.ref [c]{
|
228 |
+
display: table-cell;
|
229 |
+
width: auto;
|
230 |
+
vertical-align: top;
|
231 |
+
padding: 1px 0 1px 10px;
|
232 |
+
}
|
233 |
+
|
234 |
+
/* last cell of a row (forces table to adjust width like we want to) */
|
235 |
+
.ref [data-output] [data-table],
|
236 |
+
.ref [data-output] [t],
|
237 |
+
.ref [data-output] [data-cell]:last-child,
|
238 |
+
.ref [data-output] [c]:last-child{
|
239 |
+
width: 100%;
|
240 |
+
}
|
241 |
+
|
242 |
+
|
243 |
+
|
244 |
+
/* tag-like appearance for boolean, null and resource types */
|
245 |
+
.ref [data-true],
|
246 |
+
.ref [data-false],
|
247 |
+
.ref [data-null],
|
248 |
+
.ref [data-unknown],
|
249 |
+
.ref [data-resource],
|
250 |
+
.ref [data-match],
|
251 |
+
.ref [m]{
|
252 |
+
font: bold 11px Helvetica, Arial;
|
253 |
+
color: #fff;
|
254 |
+
padding: 1px 3px;
|
255 |
+
text-transform: lowercase;
|
256 |
+
text-shadow: none;
|
257 |
+
border-radius: 2px;
|
258 |
+
margin-right: 5px;
|
259 |
+
background-color: #eee;
|
260 |
+
background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.1) 40%,rgba(0,0,0,0.1) 100%);
|
261 |
+
background-image: linear-gradient(to bottom, rgba(255,255,255,0.1) 40%,rgba(0,0,0,0.1) 100%);
|
262 |
+
}
|
263 |
+
|
264 |
+
/* string matches */
|
265 |
+
.ref [data-match],
|
266 |
+
.ref [m]{
|
267 |
+
background-color: #d78035;
|
268 |
+
}
|
269 |
+
|
270 |
+
/* boolean true */
|
271 |
+
.ref [data-true]{
|
272 |
+
background-color: #339900;
|
273 |
+
}
|
274 |
+
|
275 |
+
/* boolean false */
|
276 |
+
.ref [data-false]{
|
277 |
+
background-color: #CC0033;
|
278 |
+
color: #fff;
|
279 |
+
}
|
280 |
+
|
281 |
+
/* null value */
|
282 |
+
.ref [data-null],
|
283 |
+
.ref [data-unknown]{
|
284 |
+
background-color: #eee;
|
285 |
+
color: #999;
|
286 |
+
text-shadow: inherit;
|
287 |
+
}
|
288 |
+
|
289 |
+
/* resources */
|
290 |
+
.ref [data-resource]{
|
291 |
+
background-color: #0057ae;
|
292 |
+
}
|
293 |
+
|
294 |
+
.ref [data-resourceProp]{
|
295 |
+
font: bold 11px Helvetica, Arial;
|
296 |
+
color: #999;
|
297 |
+
}
|
298 |
+
|
299 |
+
/* integer or double values */
|
300 |
+
.ref [data-integer],
|
301 |
+
.ref [data-double]{
|
302 |
+
color: #0099CC;
|
303 |
+
}
|
304 |
+
|
305 |
+
/* string values */
|
306 |
+
.ref [data-string]{
|
307 |
+
background: #e8f0e1;
|
308 |
+
color: #669933;
|
309 |
+
padding: 3px 1px;
|
310 |
+
|
311 |
+
/* prevent long strings from breaking the page layout */
|
312 |
+
white-space: -moz-pre-wrap; /* Mozilla */
|
313 |
+
white-space: -hp-pre-wrap; /* HP printers */
|
314 |
+
white-space: -o-pre-wrap; /* Opera 7 */
|
315 |
+
white-space: -pre-wrap; /* Opera 4-6 */
|
316 |
+
white-space: pre-wrap; /* CSS 2.1 */
|
317 |
+
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
|
318 |
+
word-wrap: break-word; /* IE */
|
319 |
+
word-break: break-all;
|
320 |
+
}
|
321 |
+
|
322 |
+
.ref [data-string][data-special]{
|
323 |
+
background: none;
|
324 |
+
padding: 0;
|
325 |
+
}
|
326 |
+
|
327 |
+
.ref [data-string][data-special] i{
|
328 |
+
background: #faf3dc;
|
329 |
+
color: #d78035;
|
330 |
+
}
|
331 |
+
|
332 |
+
/* arrays & objects */
|
333 |
+
.ref [data-array],
|
334 |
+
.ref [data-array] ~ i,
|
335 |
+
.ref [data-object],
|
336 |
+
.ref [data-object] ~ i,
|
337 |
+
.ref [data-resource] ~ i{
|
338 |
+
color:#CC0033;
|
339 |
+
}
|
340 |
+
|
341 |
+
.ref [data-method]{
|
342 |
+
font-weight: bold;
|
343 |
+
color: #0057ae;
|
344 |
+
}
|
345 |
+
|
346 |
+
.ref [data-const][data-inherited],
|
347 |
+
.ref [data-prop][data-inherited]{
|
348 |
+
color: #999;
|
349 |
+
}
|
350 |
+
|
351 |
+
.ref [data-prop][data-private],
|
352 |
+
.ref [data-method][data-private]{
|
353 |
+
color: #CC0033;
|
354 |
+
}
|
355 |
+
|
356 |
+
/* inherited methods */
|
357 |
+
.ref [data-method][data-inherited]{
|
358 |
+
font-weight: bold;
|
359 |
+
color: #6da5de;
|
360 |
+
}
|
361 |
+
|
362 |
+
/* method arguments */
|
363 |
+
.ref [data-param]{
|
364 |
+
font-weight: normal;
|
365 |
+
color: #333;
|
366 |
+
}
|
367 |
+
|
368 |
+
/* optional method arguments */
|
369 |
+
.ref [data-param][data-optional]{
|
370 |
+
font-style: italic;
|
371 |
+
font-weight: normal;
|
372 |
+
color: #aaa;
|
373 |
+
}
|
374 |
+
|
375 |
+
/* group info prefix */
|
376 |
+
.ref [data-gLabel],
|
377 |
+
.ref [gl]{
|
378 |
+
font: bold 11px Helvetica, Arial;
|
379 |
+
padding: 0 3px;
|
380 |
+
color: #333;
|
381 |
+
}
|
382 |
+
|
383 |
+
/* tiny bubbles that indicate visibility info or class features */
|
384 |
+
.ref [data-mod]{
|
385 |
+
font: bold 11px Helvetica, Arial;
|
386 |
+
text-shadow: none;
|
387 |
+
color: #fff;
|
388 |
+
}
|
389 |
+
|
390 |
+
.ref [data-input] [data-mod]{
|
391 |
+
color: #444;
|
392 |
+
}
|
393 |
+
|
394 |
+
.ref [data-mod] span,
|
395 |
+
.ref [data-mod] r{
|
396 |
+
display: inline-block;
|
397 |
+
margin: 0 2px;
|
398 |
+
width: 14px;
|
399 |
+
height: 14px;
|
400 |
+
text-align: center;
|
401 |
+
border-radius: 30px;
|
402 |
+
line-height: 15px;
|
403 |
+
}
|
404 |
+
|
405 |
+
.ref [data-mod-interface],
|
406 |
+
.ref [data-mod-abstract]{
|
407 |
+
background: #baed78;
|
408 |
+
}
|
409 |
+
|
410 |
+
.ref [data-mod-anonymous]{
|
411 |
+
background: #444;
|
412 |
+
}
|
413 |
+
|
414 |
+
.ref [data-mod-protected]{
|
415 |
+
background: #edd078;
|
416 |
+
}
|
417 |
+
|
418 |
+
.ref [data-mod-private]{
|
419 |
+
background: #eea8b9;
|
420 |
+
}
|
421 |
+
|
422 |
+
.ref [data-mod-iterateable]{
|
423 |
+
background: #d5dea5;
|
424 |
+
}
|
425 |
+
|
426 |
+
.ref [data-mod-cloneable]{
|
427 |
+
background: #bdd7d1;
|
428 |
+
}
|
429 |
+
|
430 |
+
.ref [data-mod-final]{
|
431 |
+
background: #78bded;
|
432 |
+
}
|
433 |
+
|
434 |
+
/* regular expression (colors partially match RegexBuddy and RegexPal) */
|
435 |
+
.ref [data-regex]{
|
436 |
+
font-weight: bold;
|
437 |
+
text-shadow: none;
|
438 |
+
padding: 1px 0;
|
439 |
+
background: #e6e6e6;
|
440 |
+
word-wrap: break-word;
|
441 |
+
}
|
442 |
+
|
443 |
+
/* char class */
|
444 |
+
.ref [data-regex-chr]{
|
445 |
+
background: #ffc080;
|
446 |
+
color: #694c07;
|
447 |
+
}
|
448 |
+
|
449 |
+
.ref [data-regex-chr-meta]{background: #e0a060;} /* char class: metasequence */
|
450 |
+
.ref [data-regex-chr-range]{background: #ffcf9b;} /* char class: range-hyphen */
|
451 |
+
|
452 |
+
/* metasequence */
|
453 |
+
.ref [data-regex-meta]{
|
454 |
+
background: #80c0ff;
|
455 |
+
color: #105f8c;
|
456 |
+
}
|
457 |
+
|
458 |
+
/* group: depth 1 */
|
459 |
+
.ref [data-regex-g1]{
|
460 |
+
background: #00c000;
|
461 |
+
color: #fff;
|
462 |
+
}
|
463 |
+
|
464 |
+
/* group: depth 2 */
|
465 |
+
.ref [data-regex-g2]{
|
466 |
+
background: #c3e86c;
|
467 |
+
color: #648c1c;
|
468 |
+
}
|
469 |
+
|
470 |
+
/* group: depth 3 */
|
471 |
+
.ref [data-regex-g3]{
|
472 |
+
background: #008000;
|
473 |
+
color: #fff;
|
474 |
+
}
|
475 |
+
|
476 |
+
/* group: depth 4 */
|
477 |
+
.ref [data-regex-g4]{
|
478 |
+
background: #6dcb99;
|
479 |
+
color: #fff;
|
480 |
+
}
|
481 |
+
|
482 |
+
/* group: depth 5 */
|
483 |
+
.ref [data-regex-g5]{
|
484 |
+
background: #00ff00;
|
485 |
+
color: #2c8e24;
|
486 |
+
}
|
487 |
+
|
488 |
+
.ref [data-error]{
|
489 |
+
background: #CC0033;
|
490 |
+
color: #fff;
|
491 |
+
border-radius: 0 0 4px 4px;
|
492 |
+
padding: 2px 5px;
|
493 |
+
margin: 0 0 4px;
|
494 |
+
display: block;
|
495 |
+
}
|
496 |
+
|
497 |
+
/* make labels and less-relevant text non-selectable */
|
498 |
+
.ref [data-match],
|
499 |
+
.ref [m],
|
500 |
+
.ref [data-tHead],
|
501 |
+
.ref [data-gLabel],
|
502 |
+
.ref [gl],
|
503 |
+
.ref [data-mod]{
|
504 |
+
-webkit-user-select: none;
|
505 |
+
-moz-user-select: none;
|
506 |
+
-ms-user-select: none;
|
507 |
+
user-select: none;
|
508 |
+
}
|
defaults.php
CHANGED
@@ -144,7 +144,7 @@ function wsaldefaults_wsal_init( WpSecurityAuditLog $wsal ) {
|
|
144 |
array( 2012, E_WARNING, __( 'User moved a post to the trash', 'wp-security-audit-log' ), __( 'Moved the %PostStatus% %PostType% titled %PostTitle% to trash. URL is %PostUrl%.', 'wp-security-audit-log' ) ),
|
145 |
array( 2014, E_CRITICAL, __( 'User restored a post from trash', 'wp-security-audit-log' ), __( 'The %PostStatus% %PostType% titled %PostTitle% has been restored from trash. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
146 |
array( 2016, E_NOTICE, __( 'User changed post category', 'wp-security-audit-log' ), __( 'Changed the category of the %PostStatus% %PostType% titled %PostTitle% from %OldCategories% to %NewCategories%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
147 |
-
array( 2017, E_NOTICE, __( 'User changed post URL', 'wp-security-audit-log' ), __( 'Changed the URL of the %PostStatus% %PostType% titled %PostTitle%
|
148 |
array( 2019, E_NOTICE, __( 'User changed post author', 'wp-security-audit-log' ), __( 'Changed the author of the %PostStatus% %PostType% titled %PostTitle% from %OldAuthor% to %NewAuthor%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
149 |
array( 2021, E_NOTICE, __( 'User changed post status', 'wp-security-audit-log' ), __( 'Changed the status of the %PostType% titled %PostTitle% from %OldStatus% to %NewStatus%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
150 |
array( 2023, E_NOTICE, __( 'User created new category', 'wp-security-audit-log' ), __( 'Created a new category called %CategoryName%. Category slug is %Slug%. %CategoryLink%.', 'wp-security-audit-log' ) ),
|
@@ -157,25 +157,25 @@ function wsaldefaults_wsal_init( WpSecurityAuditLog $wsal ) {
|
|
157 |
array( 2050, E_NOTICE, __( 'User removed post from sticky', 'wp-security-audit-log' ), __( 'Removed the post %PostTitle% from Sticky. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
158 |
array( 2052, E_NOTICE, __( 'Changed the parent of a category.', 'wp-security-audit-log' ), __( 'Changed the parent of the category %CategoryName% from %OldParent% to %NewParent%. %CategoryLink%.', 'wp-security-audit-log' ) ),
|
159 |
array( 2053, E_CRITICAL, __( 'User created a custom field for a post', 'wp-security-audit-log' ), __( 'Created a new custom field called %MetaKey% with value %MetaValue% in the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.<br>%MetaLink%.', 'wp-security-audit-log' ) ),
|
160 |
-
array( 2054, E_CRITICAL, __( 'User updated a custom field value for a post', 'wp-security-audit-log' ), __( 'Modified the value of the custom field %MetaKey%
|
161 |
array( 2055, E_CRITICAL, __( 'User deleted a custom field from a post', 'wp-security-audit-log' ), __( 'Deleted the custom field %MetaKey% with value %MetaValue% from %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
162 |
array( 2062, E_CRITICAL, __( 'User updated a custom field name for a post', 'wp-security-audit-log' ), __( 'Changed the custom field\'s name from %MetaKeyOld% to %MetaKeyNew% in the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.<br>%MetaLink%.', 'wp-security-audit-log' ) ),
|
163 |
array( 2065, E_WARNING, __( 'User modified the content of a post.', 'wp-security-audit-log' ), __( 'Modified the content of the %PostStatus% %PostType% titled %PostTitle%. Post URL is %PostUrl%. %RevisionLink% %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
164 |
array( 2073, E_NOTICE, __( 'User submitted a post for review', 'wp-security-audit-log' ), __( 'Submitted the %PostType% titled %PostTitle% for review. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
165 |
array( 2074, E_NOTICE, __( 'User scheduled a post', 'wp-security-audit-log' ), __( 'Scheduled the %PostType% titled %PostTitle% to be published on %PublishingDate%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
166 |
array( 2086, E_NOTICE, __( 'User changed title of a post', 'wp-security-audit-log' ), __( 'Changed the title of the %PostStatus% %PostType% from %OldTitle% to %NewTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
167 |
-
array( 2100, E_NOTICE, __( 'User opened a post in the editor', 'wp-security-audit-log' ), __( 'Opened the %PostStatus% %PostType% titled %PostTitle% in the editor. URL is: %PostUrl%.
|
168 |
-
array( 2101, E_NOTICE, __( 'User viewed a post', 'wp-security-audit-log' ), __( 'Viewed the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%.
|
169 |
-
array( 2106, E_NOTICE, __( 'A plugin modified a post', 'wp-security-audit-log' ), __( 'Plugin modified the %PostStatus% %PostType% titled %PostTitle% of type %PostType%. URL is: %PostUrl%.
|
170 |
-
array( 2111, E_NOTICE, __( 'User disabled Comments/Trackbacks and Pingbacks in a post.', 'wp-security-audit-log' ), __( 'Disabled %Type% on the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%.
|
171 |
-
array( 2112, E_NOTICE, __( 'User enabled Comments/Trackbacks and Pingbacks in a post.', 'wp-security-audit-log' ), __( 'Enabled %Type% on the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%.
|
172 |
-
array( 2119, E_NOTICE, __( 'User added post tag', 'wp-security-audit-log' ), __( 'Added the tag %tag% to the %PostStatus% post titled %PostTitle%. URL is: %PostUrl%.
|
173 |
-
array( 2120, E_NOTICE, __( 'User removed post tag', 'wp-security-audit-log' ), __( 'Removed the tag %tag% from the %PostStatus% post titled %PostTitle%. URL is: %PostUrl%.
|
174 |
array( 2121, E_NOTICE, __( 'User created new tag', 'wp-security-audit-log' ), __( 'Added a new tag called %TagName%. View the tag: %TagLink%.', 'wp-security-audit-log' ) ),
|
175 |
array( 2122, E_NOTICE, __( 'User deleted tag', 'wp-security-audit-log' ), __( 'Deleted the tag %TagName%.', 'wp-security-audit-log' ) ),
|
176 |
array( 2123, E_NOTICE, __( 'User renamed tag', 'wp-security-audit-log' ), __( 'Renamed a tag from %old_name% to %new_name%. View the tag: %TagLink%.', 'wp-security-audit-log' ) ),
|
177 |
array( 2124, E_NOTICE, __( 'User changed tag slug', 'wp-security-audit-log' ), __( 'Changed the slug of tag %tag% from %old_slug% to %new_slug%. View the tag: %TagLink%.', 'wp-security-audit-log' ) ),
|
178 |
-
array( 2125, E_NOTICE, __( 'User changed tag description', 'wp-security-audit-log' ), __( 'Changed the description of the tag %tag%
|
179 |
),
|
180 |
|
181 |
/**
|
@@ -440,7 +440,7 @@ function wsaldefaults_wsal_init( WpSecurityAuditLog $wsal ) {
|
|
440 |
array( 4006, E_NOTICE, __( 'User changed another user\'s email address', 'wp-security-audit-log' ), __( 'Changed the email address of the user %TargetUsername% from %OldEmail% to %NewEmail%.', 'wp-security-audit-log' ) ),
|
441 |
array( 4007, E_CRITICAL, __( 'User was deleted by another user', 'wp-security-audit-log' ), __( 'Deleted the user %TargetUserData->Username% with the role of %TargetUserData->Roles%.', 'wp-security-audit-log' ) ),
|
442 |
array( 4014, E_NOTICE, __( 'User opened the profile page of another user', 'wp-security-audit-log' ), __( '%UserChanger% opened the profile page of the user %TargetUsername%.', 'wp-security-audit-log' ) ),
|
443 |
-
array( 4015, E_NOTICE, __( 'User updated a custom field value for a user', 'wp-security-audit-log' ), __( 'Changed the value of the custom field %custom_field_name%
|
444 |
array( 4016, E_NOTICE, __( 'User created a custom field value for a user', 'wp-security-audit-log' ), __( 'Created the value of the custom field %custom_field_name% with %new_value% for the user %TargetUsername%.', 'wp-security-audit-log' ) ),
|
445 |
array( 4017, E_NOTICE, __( 'User changed first name for a user', 'wp-security-audit-log' ), __( 'Changed the first name of the user %TargetUsername% from %old_firstname% to %new_firstname%', 'wp-security-audit-log' ) ),
|
446 |
array( 4018, E_NOTICE, __( 'User changed last name for a user', 'wp-security-audit-log' ), __( 'Changed the last name of the user %TargetUsername% from %old_lastname% to %new_lastname%', 'wp-security-audit-log' ) ),
|
@@ -490,9 +490,9 @@ function wsaldefaults_wsal_init( WpSecurityAuditLog $wsal ) {
|
|
490 |
array( 9001, E_NOTICE, __( 'User published a product', 'wp-security-audit-log' ), __( 'Published a product called %ProductTitle%. Product URL is %ProductUrl%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
491 |
array( 9002, E_NOTICE, __( 'User created a new product category', 'wp-security-audit-log' ), __( 'Created a new product category called %CategoryName% in WooCommerce. Product category slug is %Slug%.', 'wp-security-audit-log' ) ),
|
492 |
array( 9003, E_NOTICE, __( 'User changed the category of a product', 'wp-security-audit-log' ), __( 'Changed the category of the product %ProductTitle% from %OldCategories% to %NewCategories%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
493 |
-
array( 9004, E_NOTICE, __( 'User modified the short description of a product', 'wp-security-audit-log' ), __( 'Modified the short description of the product %ProductTitle
|
494 |
array( 9005, E_NOTICE, __( 'User modified the text of a product', 'wp-security-audit-log' ), __( 'Modified the text of the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
495 |
-
array( 9006, E_NOTICE, __( 'User changed the URL of a product', 'wp-security-audit-log' ), __( 'Changed the URL of the product %ProductTitle%
|
496 |
array( 9007, E_NOTICE, __( 'User changed the Product Data of a product', 'wp-security-audit-log' ), __( 'Changed the Product Data of the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
497 |
array( 9008, E_NOTICE, __( 'User changed the date of a product', 'wp-security-audit-log' ), __( 'Changed the date of the product %ProductTitle% from %OldDate% to %NewDate%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
498 |
array( 9009, E_NOTICE, __( 'User changed the visibility of a product', 'wp-security-audit-log' ), __( 'Changed the visibility of the product %ProductTitle% from %OldVisibility% to %NewVisibility%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
@@ -523,17 +523,17 @@ function wsaldefaults_wsal_init( WpSecurityAuditLog $wsal ) {
|
|
523 |
array( 9034, E_CRITICAL, __( 'User Enabled/Disabled cash on delivery', 'wp-security-audit-log' ), __( '%Status% the option Enable cash on delivery in WooCommerce.', 'wp-security-audit-log' ) ),
|
524 |
),
|
525 |
__( 'Yoast SEO', 'wp-security-audit-log' ) => array(
|
526 |
-
array( 8801, E_NOTICE, __( 'User changed title of a SEO post', 'wp-security-audit-log' ), __( 'Changed the SEO title of the %PostStatus% %PostType%
|
527 |
-
array( 8802, E_NOTICE, __( 'User changed the meta description of a SEO post', 'wp-security-audit-log' ), __( 'Changed the Meta description of the %PostStatus% %PostType% titled %PostTitle%
|
528 |
array( 8803, E_NOTICE, __( 'User changed setting to allow search engines to show post in search results of a SEO post', 'wp-security-audit-log' ), __( 'Changed the setting to allow search engines to show post in search results from %OldStatus% to %NewStatus% in the %PostStatus% %PostType% titled %PostTitle%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
529 |
array( 8804, E_NOTICE, __( 'User Enabled/Disabled the option for search engine to follow links of a SEO post', 'wp-security-audit-log' ), __( '%NewStatus% the option for search engine to follow links in the %PostType% titled %PostTitle%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
530 |
array( 8805, E_NOTICE, __( 'User set the meta robots advanced setting of a SEO post', 'wp-security-audit-log' ), __( 'Set the Meta Robots Advanced setting to %NewStatus% in the %PostStatus% %PostType% titled %PostTitle%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
531 |
-
array( 8806, E_NOTICE, __( 'User changed the canonical URL of a SEO post', 'wp-security-audit-log' ), __( 'Changed the Canonical URL of the %PostStatus% %PostType% titled %PostTitle%
|
532 |
array( 8807, E_NOTICE, __( 'User changed the focus keyword of a SEO post', 'wp-security-audit-log' ), __( 'Changed the focus keyword of the %PostStatus% %PostType% titled %PostTitle% from %old_keywords% to %new_keywords%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
533 |
array( 8808, E_NOTICE, __( 'User Enabled/Disabled the option Cornerston Content of a SEO post', 'wp-security-audit-log' ), __( '%Status% the option Cornerston Content on the %PostStatus% %PostType% titled %PostTitle%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
534 |
array( 8809, E_WARNING, __( 'User changed the Title Separator setting', 'wp-security-audit-log' ), __( 'Changed the Title Separator from %old% to %new% in the Yoast SEO plugin settings.', 'wp-security-audit-log' ) ),
|
535 |
-
array( 8810, E_WARNING, __( 'User changed the Homepage Title setting', 'wp-security-audit-log' ), __( 'Changed the Homepage Title
|
536 |
-
array( 8811, E_WARNING, __( 'User changed the Homepage Meta description setting', 'wp-security-audit-log' ), __( 'Changed the Homepage Meta description
|
537 |
array( 8812, E_WARNING, __( 'User changed the Company or Person setting', 'wp-security-audit-log' ), __( 'Changed the Company or Person setting from %old% to %new% in the YOAST SEO plugin settings.', 'wp-security-audit-log' ) ),
|
538 |
array( 8813, E_WARNING, __( 'User Enabled/Disabled the option Show Posts/Pages in Search Results in the Yoast SEO plugin settings', 'wp-security-audit-log' ), __( '%Status% the option Show %SEOPostType% in Search Results in the Yoast SEO plugin settings.', 'wp-security-audit-log' ) ),
|
539 |
array( 8814, E_WARNING, __( 'User changed the Posts/Pages title template in the Yoast SEO plugin settings', 'wp-security-audit-log' ), __( 'Changed the %SEOPostType% title template from %old% to %new% in the Yoast SEO plugin settings.', 'wp-security-audit-log' ) ),
|
144 |
array( 2012, E_WARNING, __( 'User moved a post to the trash', 'wp-security-audit-log' ), __( 'Moved the %PostStatus% %PostType% titled %PostTitle% to trash. URL is %PostUrl%.', 'wp-security-audit-log' ) ),
|
145 |
array( 2014, E_CRITICAL, __( 'User restored a post from trash', 'wp-security-audit-log' ), __( 'The %PostStatus% %PostType% titled %PostTitle% has been restored from trash. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
146 |
array( 2016, E_NOTICE, __( 'User changed post category', 'wp-security-audit-log' ), __( 'Changed the category of the %PostStatus% %PostType% titled %PostTitle% from %OldCategories% to %NewCategories%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
147 |
+
array( 2017, E_NOTICE, __( 'User changed post URL', 'wp-security-audit-log' ), __( 'Changed the URL of the %PostStatus% %PostType% titled %PostTitle%%ReportText%.%ChangeText% %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
148 |
array( 2019, E_NOTICE, __( 'User changed post author', 'wp-security-audit-log' ), __( 'Changed the author of the %PostStatus% %PostType% titled %PostTitle% from %OldAuthor% to %NewAuthor%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
149 |
array( 2021, E_NOTICE, __( 'User changed post status', 'wp-security-audit-log' ), __( 'Changed the status of the %PostType% titled %PostTitle% from %OldStatus% to %NewStatus%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
150 |
array( 2023, E_NOTICE, __( 'User created new category', 'wp-security-audit-log' ), __( 'Created a new category called %CategoryName%. Category slug is %Slug%. %CategoryLink%.', 'wp-security-audit-log' ) ),
|
157 |
array( 2050, E_NOTICE, __( 'User removed post from sticky', 'wp-security-audit-log' ), __( 'Removed the post %PostTitle% from Sticky. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
158 |
array( 2052, E_NOTICE, __( 'Changed the parent of a category.', 'wp-security-audit-log' ), __( 'Changed the parent of the category %CategoryName% from %OldParent% to %NewParent%. %CategoryLink%.', 'wp-security-audit-log' ) ),
|
159 |
array( 2053, E_CRITICAL, __( 'User created a custom field for a post', 'wp-security-audit-log' ), __( 'Created a new custom field called %MetaKey% with value %MetaValue% in the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.<br>%MetaLink%.', 'wp-security-audit-log' ) ),
|
160 |
+
array( 2054, E_CRITICAL, __( 'User updated a custom field value for a post', 'wp-security-audit-log' ), __( 'Modified the value of the custom field %MetaKey%%ReportText% in the %PostStatus% %PostType% titled %PostTitle%.%ChangeText% URL is: %PostUrl%. %EditorLinkPost%.<br>%MetaLink%.', 'wp-security-audit-log' ) ),
|
161 |
array( 2055, E_CRITICAL, __( 'User deleted a custom field from a post', 'wp-security-audit-log' ), __( 'Deleted the custom field %MetaKey% with value %MetaValue% from %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
162 |
array( 2062, E_CRITICAL, __( 'User updated a custom field name for a post', 'wp-security-audit-log' ), __( 'Changed the custom field\'s name from %MetaKeyOld% to %MetaKeyNew% in the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.<br>%MetaLink%.', 'wp-security-audit-log' ) ),
|
163 |
array( 2065, E_WARNING, __( 'User modified the content of a post.', 'wp-security-audit-log' ), __( 'Modified the content of the %PostStatus% %PostType% titled %PostTitle%. Post URL is %PostUrl%. %RevisionLink% %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
164 |
array( 2073, E_NOTICE, __( 'User submitted a post for review', 'wp-security-audit-log' ), __( 'Submitted the %PostType% titled %PostTitle% for review. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
165 |
array( 2074, E_NOTICE, __( 'User scheduled a post', 'wp-security-audit-log' ), __( 'Scheduled the %PostType% titled %PostTitle% to be published on %PublishingDate%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
166 |
array( 2086, E_NOTICE, __( 'User changed title of a post', 'wp-security-audit-log' ), __( 'Changed the title of the %PostStatus% %PostType% from %OldTitle% to %NewTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
167 |
+
array( 2100, E_NOTICE, __( 'User opened a post in the editor', 'wp-security-audit-log' ), __( 'Opened the %PostStatus% %PostType% titled %PostTitle% in the editor. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
168 |
+
array( 2101, E_NOTICE, __( 'User viewed a post', 'wp-security-audit-log' ), __( 'Viewed the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
169 |
+
array( 2106, E_NOTICE, __( 'A plugin modified a post', 'wp-security-audit-log' ), __( 'Plugin modified the %PostStatus% %PostType% titled %PostTitle% of type %PostType%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
170 |
+
array( 2111, E_NOTICE, __( 'User disabled Comments/Trackbacks and Pingbacks in a post.', 'wp-security-audit-log' ), __( 'Disabled %Type% on the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
171 |
+
array( 2112, E_NOTICE, __( 'User enabled Comments/Trackbacks and Pingbacks in a post.', 'wp-security-audit-log' ), __( 'Enabled %Type% on the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
172 |
+
array( 2119, E_NOTICE, __( 'User added post tag', 'wp-security-audit-log' ), __( 'Added the tag %tag% to the %PostStatus% post titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
173 |
+
array( 2120, E_NOTICE, __( 'User removed post tag', 'wp-security-audit-log' ), __( 'Removed the tag %tag% from the %PostStatus% post titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
174 |
array( 2121, E_NOTICE, __( 'User created new tag', 'wp-security-audit-log' ), __( 'Added a new tag called %TagName%. View the tag: %TagLink%.', 'wp-security-audit-log' ) ),
|
175 |
array( 2122, E_NOTICE, __( 'User deleted tag', 'wp-security-audit-log' ), __( 'Deleted the tag %TagName%.', 'wp-security-audit-log' ) ),
|
176 |
array( 2123, E_NOTICE, __( 'User renamed tag', 'wp-security-audit-log' ), __( 'Renamed a tag from %old_name% to %new_name%. View the tag: %TagLink%.', 'wp-security-audit-log' ) ),
|
177 |
array( 2124, E_NOTICE, __( 'User changed tag slug', 'wp-security-audit-log' ), __( 'Changed the slug of tag %tag% from %old_slug% to %new_slug%. View the tag: %TagLink%.', 'wp-security-audit-log' ) ),
|
178 |
+
array( 2125, E_NOTICE, __( 'User changed tag description', 'wp-security-audit-log' ), __( 'Changed the description of the tag %tag%%ReportText%.%ChangeText% View the tag: %TagLink%.', 'wp-security-audit-log' ) ),
|
179 |
),
|
180 |
|
181 |
/**
|
440 |
array( 4006, E_NOTICE, __( 'User changed another user\'s email address', 'wp-security-audit-log' ), __( 'Changed the email address of the user %TargetUsername% from %OldEmail% to %NewEmail%.', 'wp-security-audit-log' ) ),
|
441 |
array( 4007, E_CRITICAL, __( 'User was deleted by another user', 'wp-security-audit-log' ), __( 'Deleted the user %TargetUserData->Username% with the role of %TargetUserData->Roles%.', 'wp-security-audit-log' ) ),
|
442 |
array( 4014, E_NOTICE, __( 'User opened the profile page of another user', 'wp-security-audit-log' ), __( '%UserChanger% opened the profile page of the user %TargetUsername%.', 'wp-security-audit-log' ) ),
|
443 |
+
array( 4015, E_NOTICE, __( 'User updated a custom field value for a user', 'wp-security-audit-log' ), __( 'Changed the value of the custom field %custom_field_name%%ReportText% for the user %TargetUsername%.%ChangeText%', 'wp-security-audit-log' ) ),
|
444 |
array( 4016, E_NOTICE, __( 'User created a custom field value for a user', 'wp-security-audit-log' ), __( 'Created the value of the custom field %custom_field_name% with %new_value% for the user %TargetUsername%.', 'wp-security-audit-log' ) ),
|
445 |
array( 4017, E_NOTICE, __( 'User changed first name for a user', 'wp-security-audit-log' ), __( 'Changed the first name of the user %TargetUsername% from %old_firstname% to %new_firstname%', 'wp-security-audit-log' ) ),
|
446 |
array( 4018, E_NOTICE, __( 'User changed last name for a user', 'wp-security-audit-log' ), __( 'Changed the last name of the user %TargetUsername% from %old_lastname% to %new_lastname%', 'wp-security-audit-log' ) ),
|
490 |
array( 9001, E_NOTICE, __( 'User published a product', 'wp-security-audit-log' ), __( 'Published a product called %ProductTitle%. Product URL is %ProductUrl%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
491 |
array( 9002, E_NOTICE, __( 'User created a new product category', 'wp-security-audit-log' ), __( 'Created a new product category called %CategoryName% in WooCommerce. Product category slug is %Slug%.', 'wp-security-audit-log' ) ),
|
492 |
array( 9003, E_NOTICE, __( 'User changed the category of a product', 'wp-security-audit-log' ), __( 'Changed the category of the product %ProductTitle% from %OldCategories% to %NewCategories%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
493 |
+
array( 9004, E_NOTICE, __( 'User modified the short description of a product', 'wp-security-audit-log' ), __( 'Modified the short description of the product %ProductTitle%.%ChangeText% View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
494 |
array( 9005, E_NOTICE, __( 'User modified the text of a product', 'wp-security-audit-log' ), __( 'Modified the text of the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
495 |
+
array( 9006, E_NOTICE, __( 'User changed the URL of a product', 'wp-security-audit-log' ), __( 'Changed the URL of the product %ProductTitle%%ReportText%.%ChangeText% View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
496 |
array( 9007, E_NOTICE, __( 'User changed the Product Data of a product', 'wp-security-audit-log' ), __( 'Changed the Product Data of the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
497 |
array( 9008, E_NOTICE, __( 'User changed the date of a product', 'wp-security-audit-log' ), __( 'Changed the date of the product %ProductTitle% from %OldDate% to %NewDate%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
498 |
array( 9009, E_NOTICE, __( 'User changed the visibility of a product', 'wp-security-audit-log' ), __( 'Changed the visibility of the product %ProductTitle% from %OldVisibility% to %NewVisibility%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log' ) ),
|
523 |
array( 9034, E_CRITICAL, __( 'User Enabled/Disabled cash on delivery', 'wp-security-audit-log' ), __( '%Status% the option Enable cash on delivery in WooCommerce.', 'wp-security-audit-log' ) ),
|
524 |
),
|
525 |
__( 'Yoast SEO', 'wp-security-audit-log' ) => array(
|
526 |
+
array( 8801, E_NOTICE, __( 'User changed title of a SEO post', 'wp-security-audit-log' ), __( 'Changed the SEO title of the %PostStatus% %PostType%%ReportText%.%ChangeText% %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
527 |
+
array( 8802, E_NOTICE, __( 'User changed the meta description of a SEO post', 'wp-security-audit-log' ), __( 'Changed the Meta description of the %PostStatus% %PostType% titled %PostTitle%%ReportText%.%ChangeText% %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
528 |
array( 8803, E_NOTICE, __( 'User changed setting to allow search engines to show post in search results of a SEO post', 'wp-security-audit-log' ), __( 'Changed the setting to allow search engines to show post in search results from %OldStatus% to %NewStatus% in the %PostStatus% %PostType% titled %PostTitle%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
529 |
array( 8804, E_NOTICE, __( 'User Enabled/Disabled the option for search engine to follow links of a SEO post', 'wp-security-audit-log' ), __( '%NewStatus% the option for search engine to follow links in the %PostType% titled %PostTitle%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
530 |
array( 8805, E_NOTICE, __( 'User set the meta robots advanced setting of a SEO post', 'wp-security-audit-log' ), __( 'Set the Meta Robots Advanced setting to %NewStatus% in the %PostStatus% %PostType% titled %PostTitle%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
531 |
+
array( 8806, E_NOTICE, __( 'User changed the canonical URL of a SEO post', 'wp-security-audit-log' ), __( 'Changed the Canonical URL of the %PostStatus% %PostType% titled %PostTitle%%ReportText%.%ChangeText% %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
532 |
array( 8807, E_NOTICE, __( 'User changed the focus keyword of a SEO post', 'wp-security-audit-log' ), __( 'Changed the focus keyword of the %PostStatus% %PostType% titled %PostTitle% from %old_keywords% to %new_keywords%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
533 |
array( 8808, E_NOTICE, __( 'User Enabled/Disabled the option Cornerston Content of a SEO post', 'wp-security-audit-log' ), __( '%Status% the option Cornerston Content on the %PostStatus% %PostType% titled %PostTitle%. %EditorLinkPost%.', 'wp-security-audit-log' ) ),
|
534 |
array( 8809, E_WARNING, __( 'User changed the Title Separator setting', 'wp-security-audit-log' ), __( 'Changed the Title Separator from %old% to %new% in the Yoast SEO plugin settings.', 'wp-security-audit-log' ) ),
|
535 |
+
array( 8810, E_WARNING, __( 'User changed the Homepage Title setting', 'wp-security-audit-log' ), __( 'Changed the Homepage Title%ReportText% in the Yoast SEO plugin settings.%ChangeText%', 'wp-security-audit-log' ) ),
|
536 |
+
array( 8811, E_WARNING, __( 'User changed the Homepage Meta description setting', 'wp-security-audit-log' ), __( 'Changed the Homepage Meta description%ReportText% in the Yoast SEO plugin settings.%ChangeText%', 'wp-security-audit-log' ) ),
|
537 |
array( 8812, E_WARNING, __( 'User changed the Company or Person setting', 'wp-security-audit-log' ), __( 'Changed the Company or Person setting from %old% to %new% in the YOAST SEO plugin settings.', 'wp-security-audit-log' ) ),
|
538 |
array( 8813, E_WARNING, __( 'User Enabled/Disabled the option Show Posts/Pages in Search Results in the Yoast SEO plugin settings', 'wp-security-audit-log' ), __( '%Status% the option Show %SEOPostType% in Search Results in the Yoast SEO plugin settings.', 'wp-security-audit-log' ) ),
|
539 |
array( 8814, E_WARNING, __( 'User changed the Posts/Pages title template in the Yoast SEO plugin settings', 'wp-security-audit-log' ), __( 'Changed the %SEOPostType% title template from %old% to %new% in the Yoast SEO plugin settings.', 'wp-security-audit-log' ) ),
|
js/auditlog.js
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
var WsalData;
|
2 |
|
3 |
-
window['WsalAuditLogRefreshed'] = function(){
|
4 |
// fix pagination links causing form params to get lost
|
5 |
-
jQuery('span.pagination-links a').click(function(ev){
|
6 |
ev.preventDefault();
|
7 |
-
var deparam = function(url){
|
8 |
var obj = {};
|
9 |
var pairs = url.split('&');
|
10 |
-
for(var i in pairs){
|
11 |
var split = pairs[i].split('=');
|
12 |
obj[decodeURIComponent(split[0])] = decodeURIComponent(split[1]);
|
13 |
}
|
@@ -20,74 +20,89 @@ window['WsalAuditLogRefreshed'] = function(){
|
|
20 |
).submit();
|
21 |
});
|
22 |
|
23 |
-
var modification_alerts = [
|
24 |
|
25 |
-
jQuery(
|
26 |
-
if (
|
27 |
// Tooltip Confirm disable alert.
|
28 |
-
jQuery(
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
WsalDisableByCode(
|
37 |
}
|
38 |
-
|
39 |
} else {
|
40 |
// Tooltip Confirm disable alert.
|
41 |
-
jQuery(
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
WsalDisableByCode(
|
50 |
},
|
51 |
-
onNo: function(
|
52 |
-
window.location.href = elem.attr(
|
53 |
}
|
54 |
-
|
55 |
}
|
56 |
-
}
|
57 |
|
58 |
// tooltip severity type
|
59 |
jQuery('.tooltip').darkTooltip({
|
60 |
animation: 'fadeIn',
|
61 |
-
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
});
|
64 |
};
|
65 |
|
66 |
-
function WsalAuditLogInit(_WsalData){
|
67 |
WsalData = _WsalData;
|
68 |
var WsalTkn = WsalData.autorefresh.token;
|
69 |
|
70 |
-
//
|
71 |
var WsalAjx = null;
|
72 |
-
|
73 |
-
|
|
|
|
|
|
|
|
|
74 |
WsalAjx = jQuery.post(WsalData.ajaxurl, {
|
75 |
action: 'AjaxRefresh',
|
76 |
logcount: WsalTkn
|
77 |
-
}, function(data){
|
78 |
WsalAjx = null;
|
79 |
-
if(data && data !== 'false'){
|
80 |
WsalTkn = data;
|
81 |
jQuery('#audit-log-viewer').load(
|
82 |
location.href + ' #audit-log-viewer-content',
|
83 |
window['WsalAuditLogRefreshed']
|
84 |
);
|
85 |
}
|
86 |
-
WsalChk();
|
87 |
});
|
88 |
};
|
89 |
-
|
90 |
-
|
|
|
|
|
|
|
|
|
|
|
91 |
WsalChk();
|
92 |
}
|
93 |
|
@@ -96,55 +111,55 @@ function WsalAuditLogInit(_WsalData){
|
|
96 |
|
97 |
var WsalIppsPrev;
|
98 |
|
99 |
-
function WsalIppsFocus(value){
|
100 |
WsalIppsPrev = value;
|
101 |
}
|
102 |
|
103 |
-
function WsalIppsChange(value){
|
104 |
jQuery('select.wsal-ipps').attr('disabled', true);
|
105 |
jQuery.post(WsalData.ajaxurl, {
|
106 |
action: 'AjaxSetIpp',
|
107 |
count: value
|
108 |
-
}, function(){
|
109 |
location.reload();
|
110 |
});
|
111 |
}
|
112 |
|
113 |
-
function WsalSsasInit(){
|
114 |
var SsasAjx = null;
|
115 |
var SsasInps = jQuery("input.wsal-ssas");
|
116 |
SsasInps.after('<div class="wsal-ssas-dd" style="display: none;"/>');
|
117 |
-
SsasInps.click(function(){
|
118 |
jQuery(this).select();
|
119 |
});
|
120 |
window['WsalAuditLogRefreshed']();
|
121 |
-
SsasInps.keyup(function(){
|
122 |
var SsasInp = jQuery(this);
|
123 |
var SsasDiv = SsasInp.next();
|
124 |
var SsasVal = SsasInp.val();
|
125 |
-
if(SsasAjx)SsasAjx.abort();
|
126 |
SsasInp.removeClass('loading');
|
127 |
|
128 |
// do a new search
|
129 |
-
if(SsasInp.attr('data-oldvalue') !== SsasVal && SsasVal.length > 2){
|
130 |
SsasInp.addClass('loading');
|
131 |
SsasAjx = jQuery.post(WsalData.ajaxurl, {
|
132 |
action: 'AjaxSearchSite',
|
133 |
search: SsasVal
|
134 |
-
}, function(data){
|
135 |
-
if(SsasAjx)SsasAjx = null;
|
136 |
SsasInp.removeClass('loading');
|
137 |
SsasDiv.hide();
|
138 |
SsasDiv.html('');
|
139 |
-
if(data && data.length){
|
140 |
var SsasReg = new RegExp(SsasVal.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'), 'gi');
|
141 |
-
for (var i = 0; i < data.length; i++){
|
142 |
var link = jQuery('<a href="javascript:;" onclick="WsalSsasChange(' + data[i].blog_id + ')"/>')
|
143 |
.text(data[i].blogname + ' (' + data[i].domain + ')');
|
144 |
link.html(link.text().replace(SsasReg, '<u>$&</u>'));
|
145 |
SsasDiv.append(link);
|
146 |
}
|
147 |
-
}else{
|
148 |
SsasDiv.append(jQuery('<span/>').text(WsalData.tr8n.searchnone));
|
149 |
}
|
150 |
SsasDiv.prepend(jQuery('<a href="javascript:;" onclick="WsalSsasChange(0)" class="allsites"/>').text(WsalData.tr8n.searchback));
|
@@ -155,8 +170,8 @@ function WsalSsasInit(){
|
|
155 |
|
156 |
// handle keys
|
157 |
});
|
158 |
-
SsasInps.blur(function(){
|
159 |
-
setTimeout(function(){
|
160 |
var SsasInp = jQuery(this);
|
161 |
var SsasDiv = SsasInp.next();
|
162 |
SsasInp.attr('data-oldvalue', '');
|
@@ -165,30 +180,30 @@ function WsalSsasInit(){
|
|
165 |
});
|
166 |
}
|
167 |
|
168 |
-
function WsalSsasChange(value){
|
169 |
jQuery('div.wsal-ssas-dd').hide();
|
170 |
jQuery('input.wsal-ssas').attr('disabled', true);
|
171 |
jQuery('#wsal-cbid').val(value);
|
172 |
jQuery('#audit-log-viewer').submit();
|
173 |
}
|
174 |
|
175 |
-
function WsalDisableCustom(link, meta_key){
|
176 |
var nfe = jQuery(this).parents('div:first');
|
177 |
-
var nonce = jQuery(
|
178 |
jQuery(link).hide();
|
179 |
jQuery.ajax({
|
180 |
type: 'POST',
|
181 |
url: ajaxurl,
|
182 |
async: false,
|
183 |
data: { action: 'AjaxDisableCustomField', notice: meta_key, disable_nonce: nonce },
|
184 |
-
success: function(data) {
|
185 |
var notice = jQuery('<div class="updated" data-notice-name="notifications-extension"></div>').html(data);
|
186 |
jQuery("h2:first").after(notice);
|
187 |
}
|
188 |
});
|
189 |
}
|
190 |
|
191 |
-
function WsalDBChange(value){
|
192 |
jQuery.ajax({
|
193 |
type: 'POST',
|
194 |
url: ajaxurl,
|
@@ -197,23 +212,23 @@ function WsalDBChange(value){
|
|
197 |
action: 'AjaxSwitchDB',
|
198 |
selected_db: value
|
199 |
},
|
200 |
-
success: function() {
|
201 |
location.reload();
|
202 |
}
|
203 |
});
|
204 |
}
|
205 |
|
206 |
-
function WsalDisableByCode(
|
207 |
-
jQuery.ajax(
|
208 |
type: 'POST',
|
209 |
url: ajaxurl,
|
210 |
async: true,
|
211 |
data: { action: 'AjaxDisableByCode', code: code, disable_nonce: nonce },
|
212 |
-
success: function(
|
213 |
var notice = jQuery('<div class="updated" data-notice-name="disabled"></div>').html(data);
|
214 |
jQuery("h2:first").after(notice);
|
215 |
}
|
216 |
-
}
|
217 |
}
|
218 |
|
219 |
/**
|
@@ -222,21 +237,21 @@ function WsalDisableByCode( code, nonce ) {
|
|
222 |
* @param {string} filename - File name.
|
223 |
* @param {string} text - File content.
|
224 |
*/
|
225 |
-
function download(
|
226 |
// Create temporary element.
|
227 |
var element = document.createElement('a');
|
228 |
-
element.setAttribute(
|
229 |
-
element.setAttribute(
|
230 |
|
231 |
// Set the element to not display.
|
232 |
element.style.display = 'none';
|
233 |
-
document.body.appendChild(
|
234 |
|
235 |
// Simlate click on the element.
|
236 |
element.click();
|
237 |
|
238 |
// Remove temporary element.
|
239 |
-
document.body.removeChild(
|
240 |
}
|
241 |
|
242 |
/**
|
@@ -244,16 +259,16 @@ function download( filename, text ) {
|
|
244 |
*
|
245 |
* @param {object} element - Current element.
|
246 |
*/
|
247 |
-
function download_404_log(
|
248 |
-
download_nonce = jQuery(
|
249 |
-
log_file = jQuery(
|
250 |
-
site_id = jQuery(
|
251 |
|
252 |
-
if (
|
253 |
-
console.log(
|
254 |
}
|
255 |
|
256 |
-
jQuery.ajax(
|
257 |
type: 'POST',
|
258 |
url: ajaxurl,
|
259 |
async: true,
|
@@ -264,14 +279,14 @@ function download_404_log( element ) {
|
|
264 |
log_file: log_file,
|
265 |
site_id: site_id
|
266 |
},
|
267 |
-
success: function(
|
268 |
-
if (
|
269 |
-
download(
|
270 |
} else {
|
271 |
-
console.log(
|
272 |
}
|
273 |
}
|
274 |
-
}
|
275 |
}
|
276 |
|
277 |
/**
|
@@ -279,11 +294,11 @@ function download_404_log( element ) {
|
|
279 |
*
|
280 |
* @param {object} element - Current element.
|
281 |
*/
|
282 |
-
function download_failed_login_log(
|
283 |
-
nonce = jQuery(
|
284 |
-
alert = jQuery(
|
285 |
|
286 |
-
jQuery.ajax(
|
287 |
type: 'POST',
|
288 |
url: ajaxurl,
|
289 |
async: true,
|
@@ -292,10 +307,10 @@ function download_failed_login_log( element ) {
|
|
292 |
download_nonce: nonce,
|
293 |
alert_id: alert
|
294 |
},
|
295 |
-
success: function(
|
296 |
-
data = data.replace(
|
297 |
// Start file download.
|
298 |
-
download(
|
299 |
}
|
300 |
-
}
|
301 |
}
|
1 |
var WsalData;
|
2 |
|
3 |
+
window['WsalAuditLogRefreshed'] = function () {
|
4 |
// fix pagination links causing form params to get lost
|
5 |
+
jQuery('span.pagination-links a').click(function (ev) {
|
6 |
ev.preventDefault();
|
7 |
+
var deparam = function (url) {
|
8 |
var obj = {};
|
9 |
var pairs = url.split('&');
|
10 |
+
for (var i in pairs) {
|
11 |
var split = pairs[i].split('=');
|
12 |
obj[decodeURIComponent(split[0])] = decodeURIComponent(split[1]);
|
13 |
}
|
20 |
).submit();
|
21 |
});
|
22 |
|
23 |
+
var modification_alerts = ['1002', '1003', '6007', '6023'];
|
24 |
|
25 |
+
jQuery('.log-disable').each(function () {
|
26 |
+
if (-1 == modification_alerts.indexOf(this.innerText)) {
|
27 |
// Tooltip Confirm disable alert.
|
28 |
+
jQuery(this).darkTooltip({
|
29 |
+
animation: 'fadeIn',
|
30 |
+
size: 'small',
|
31 |
+
gravity: 'west',
|
32 |
+
confirm: true,
|
33 |
+
yes: 'Disable',
|
34 |
+
no: '',
|
35 |
+
onYes: function (elem) {
|
36 |
+
WsalDisableByCode(elem.attr('data-alert-id'), elem.data('disable-alert-nonce'))
|
37 |
}
|
38 |
+
});
|
39 |
} else {
|
40 |
// Tooltip Confirm disable alert.
|
41 |
+
jQuery(this).darkTooltip({
|
42 |
+
animation: 'fadeIn',
|
43 |
+
size: 'small',
|
44 |
+
gravity: 'west',
|
45 |
+
confirm: true,
|
46 |
+
yes: 'Disable',
|
47 |
+
no: '<span>Modify</span>',
|
48 |
+
onYes: function (elem) {
|
49 |
+
WsalDisableByCode(elem.attr('data-alert-id'), elem.data('disable-alert-nonce'));
|
50 |
},
|
51 |
+
onNo: function (elem) {
|
52 |
+
window.location.href = elem.attr('data-link');
|
53 |
}
|
54 |
+
});
|
55 |
}
|
56 |
+
});
|
57 |
|
58 |
// tooltip severity type
|
59 |
jQuery('.tooltip').darkTooltip({
|
60 |
animation: 'fadeIn',
|
61 |
+
gravity: 'west',
|
62 |
+
size: 'medium'
|
63 |
+
});
|
64 |
+
|
65 |
+
// Data inspector tooltip.
|
66 |
+
jQuery('.more-info').darkTooltip({
|
67 |
+
animation: 'fadeIn',
|
68 |
+
gravity: 'east',
|
69 |
+
size: 'medium'
|
70 |
});
|
71 |
};
|
72 |
|
73 |
+
function WsalAuditLogInit(_WsalData) {
|
74 |
WsalData = _WsalData;
|
75 |
var WsalTkn = WsalData.autorefresh.token;
|
76 |
|
77 |
+
// List refresher.
|
78 |
var WsalAjx = null;
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Check & Load New Alerts.
|
82 |
+
*/
|
83 |
+
var WsalChk = function () {
|
84 |
+
if (WsalAjx) WsalAjx.abort();
|
85 |
WsalAjx = jQuery.post(WsalData.ajaxurl, {
|
86 |
action: 'AjaxRefresh',
|
87 |
logcount: WsalTkn
|
88 |
+
}, function (data) {
|
89 |
WsalAjx = null;
|
90 |
+
if (data && data !== 'false') {
|
91 |
WsalTkn = data;
|
92 |
jQuery('#audit-log-viewer').load(
|
93 |
location.href + ' #audit-log-viewer-content',
|
94 |
window['WsalAuditLogRefreshed']
|
95 |
);
|
96 |
}
|
|
|
97 |
});
|
98 |
};
|
99 |
+
|
100 |
+
// If audit log auto refresh is enabled.
|
101 |
+
if (WsalData.autorefresh.enabled) {
|
102 |
+
// Check for new alerts every 30 secs.
|
103 |
+
setInterval(WsalChk, 30000);
|
104 |
+
|
105 |
+
// Make the first call on page load.
|
106 |
WsalChk();
|
107 |
}
|
108 |
|
111 |
|
112 |
var WsalIppsPrev;
|
113 |
|
114 |
+
function WsalIppsFocus(value) {
|
115 |
WsalIppsPrev = value;
|
116 |
}
|
117 |
|
118 |
+
function WsalIppsChange(value) {
|
119 |
jQuery('select.wsal-ipps').attr('disabled', true);
|
120 |
jQuery.post(WsalData.ajaxurl, {
|
121 |
action: 'AjaxSetIpp',
|
122 |
count: value
|
123 |
+
}, function () {
|
124 |
location.reload();
|
125 |
});
|
126 |
}
|
127 |
|
128 |
+
function WsalSsasInit() {
|
129 |
var SsasAjx = null;
|
130 |
var SsasInps = jQuery("input.wsal-ssas");
|
131 |
SsasInps.after('<div class="wsal-ssas-dd" style="display: none;"/>');
|
132 |
+
SsasInps.click(function () {
|
133 |
jQuery(this).select();
|
134 |
});
|
135 |
window['WsalAuditLogRefreshed']();
|
136 |
+
SsasInps.keyup(function () {
|
137 |
var SsasInp = jQuery(this);
|
138 |
var SsasDiv = SsasInp.next();
|
139 |
var SsasVal = SsasInp.val();
|
140 |
+
if (SsasAjx) SsasAjx.abort();
|
141 |
SsasInp.removeClass('loading');
|
142 |
|
143 |
// do a new search
|
144 |
+
if (SsasInp.attr('data-oldvalue') !== SsasVal && SsasVal.length > 2) {
|
145 |
SsasInp.addClass('loading');
|
146 |
SsasAjx = jQuery.post(WsalData.ajaxurl, {
|
147 |
action: 'AjaxSearchSite',
|
148 |
search: SsasVal
|
149 |
+
}, function (data) {
|
150 |
+
if (SsasAjx) SsasAjx = null;
|
151 |
SsasInp.removeClass('loading');
|
152 |
SsasDiv.hide();
|
153 |
SsasDiv.html('');
|
154 |
+
if (data && data.length) {
|
155 |
var SsasReg = new RegExp(SsasVal.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'), 'gi');
|
156 |
+
for (var i = 0; i < data.length; i++) {
|
157 |
var link = jQuery('<a href="javascript:;" onclick="WsalSsasChange(' + data[i].blog_id + ')"/>')
|
158 |
.text(data[i].blogname + ' (' + data[i].domain + ')');
|
159 |
link.html(link.text().replace(SsasReg, '<u>$&</u>'));
|
160 |
SsasDiv.append(link);
|
161 |
}
|
162 |
+
} else {
|
163 |
SsasDiv.append(jQuery('<span/>').text(WsalData.tr8n.searchnone));
|
164 |
}
|
165 |
SsasDiv.prepend(jQuery('<a href="javascript:;" onclick="WsalSsasChange(0)" class="allsites"/>').text(WsalData.tr8n.searchback));
|
170 |
|
171 |
// handle keys
|
172 |
});
|
173 |
+
SsasInps.blur(function () {
|
174 |
+
setTimeout(function () {
|
175 |
var SsasInp = jQuery(this);
|
176 |
var SsasDiv = SsasInp.next();
|
177 |
SsasInp.attr('data-oldvalue', '');
|
180 |
});
|
181 |
}
|
182 |
|
183 |
+
function WsalSsasChange(value) {
|
184 |
jQuery('div.wsal-ssas-dd').hide();
|
185 |
jQuery('input.wsal-ssas').attr('disabled', true);
|
186 |
jQuery('#wsal-cbid').val(value);
|
187 |
jQuery('#audit-log-viewer').submit();
|
188 |
}
|
189 |
|
190 |
+
function WsalDisableCustom(link, meta_key) {
|
191 |
var nfe = jQuery(this).parents('div:first');
|
192 |
+
var nonce = jQuery(this).data('disable-custom-nonce');
|
193 |
jQuery(link).hide();
|
194 |
jQuery.ajax({
|
195 |
type: 'POST',
|
196 |
url: ajaxurl,
|
197 |
async: false,
|
198 |
data: { action: 'AjaxDisableCustomField', notice: meta_key, disable_nonce: nonce },
|
199 |
+
success: function (data) {
|
200 |
var notice = jQuery('<div class="updated" data-notice-name="notifications-extension"></div>').html(data);
|
201 |
jQuery("h2:first").after(notice);
|
202 |
}
|
203 |
});
|
204 |
}
|
205 |
|
206 |
+
function WsalDBChange(value) {
|
207 |
jQuery.ajax({
|
208 |
type: 'POST',
|
209 |
url: ajaxurl,
|
212 |
action: 'AjaxSwitchDB',
|
213 |
selected_db: value
|
214 |
},
|
215 |
+
success: function () {
|
216 |
location.reload();
|
217 |
}
|
218 |
});
|
219 |
}
|
220 |
|
221 |
+
function WsalDisableByCode(code, nonce) {
|
222 |
+
jQuery.ajax({
|
223 |
type: 'POST',
|
224 |
url: ajaxurl,
|
225 |
async: true,
|
226 |
data: { action: 'AjaxDisableByCode', code: code, disable_nonce: nonce },
|
227 |
+
success: function (data) {
|
228 |
var notice = jQuery('<div class="updated" data-notice-name="disabled"></div>').html(data);
|
229 |
jQuery("h2:first").after(notice);
|
230 |
}
|
231 |
+
});
|
232 |
}
|
233 |
|
234 |
/**
|
237 |
* @param {string} filename - File name.
|
238 |
* @param {string} text - File content.
|
239 |
*/
|
240 |
+
function download(filename, text) {
|
241 |
// Create temporary element.
|
242 |
var element = document.createElement('a');
|
243 |
+
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
|
244 |
+
element.setAttribute('download', filename);
|
245 |
|
246 |
// Set the element to not display.
|
247 |
element.style.display = 'none';
|
248 |
+
document.body.appendChild(element);
|
249 |
|
250 |
// Simlate click on the element.
|
251 |
element.click();
|
252 |
|
253 |
// Remove temporary element.
|
254 |
+
document.body.removeChild(element);
|
255 |
}
|
256 |
|
257 |
/**
|
259 |
*
|
260 |
* @param {object} element - Current element.
|
261 |
*/
|
262 |
+
function download_404_log(element) {
|
263 |
+
download_nonce = jQuery(element).data('nonce-404'); // Nonce.
|
264 |
+
log_file = jQuery(element).data('log-file'); // Log file URL.
|
265 |
+
site_id = jQuery(element).data('site-id'); // Site ID.
|
266 |
|
267 |
+
if (!download_nonce || !log_file) {
|
268 |
+
console.log('Something went wrong!');
|
269 |
}
|
270 |
|
271 |
+
jQuery.ajax({
|
272 |
type: 'POST',
|
273 |
url: ajaxurl,
|
274 |
async: true,
|
279 |
log_file: log_file,
|
280 |
site_id: site_id
|
281 |
},
|
282 |
+
success: function (data) {
|
283 |
+
if (data.success) {
|
284 |
+
download(data.filename, data.file_content);
|
285 |
} else {
|
286 |
+
console.log(data.message);
|
287 |
}
|
288 |
}
|
289 |
+
});
|
290 |
}
|
291 |
|
292 |
/**
|
294 |
*
|
295 |
* @param {object} element - Current element.
|
296 |
*/
|
297 |
+
function download_failed_login_log(element) {
|
298 |
+
nonce = jQuery(element).data('download-nonce'); // Nonce.
|
299 |
+
alert = jQuery(element).parent().attr('id').substring(5);
|
300 |
|
301 |
+
jQuery.ajax({
|
302 |
type: 'POST',
|
303 |
url: ajaxurl,
|
304 |
async: true,
|
307 |
download_nonce: nonce,
|
308 |
alert_id: alert
|
309 |
},
|
310 |
+
success: function (data) {
|
311 |
+
data = data.replace(/,/g, '\n');
|
312 |
// Start file download.
|
313 |
+
download('failed_logins.log', data);
|
314 |
}
|
315 |
+
});
|
316 |
}
|
js/wsal-ref.js
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
window.addEventListener('load', function(){
|
2 |
+
|
3 |
+
var tip = document.createElement('div'),
|
4 |
+
refs = document.querySelectorAll('.ref');
|
5 |
+
|
6 |
+
for(var i = 0, m = refs.length; i < m; i++){
|
7 |
+
var kbds = refs[i].querySelectorAll('[data-toggle]'),
|
8 |
+
tippable = refs[i].querySelectorAll('[data-tip],[h]'),
|
9 |
+
tips = refs[i].querySelectorAll('div, t');
|
10 |
+
|
11 |
+
for(var j = 0, n = kbds.length; j < n; j++){
|
12 |
+
if(kbds[j].parentNode !== refs[i])
|
13 |
+
kbds[j].onclick = function(e){
|
14 |
+
('exp' in this.dataset) ? delete this.dataset.exp : this.dataset.exp = 1;
|
15 |
+
}
|
16 |
+
}
|
17 |
+
|
18 |
+
[].filter.call(tips, function(node){
|
19 |
+
return node.parentNode == refs[i];
|
20 |
+
});
|
21 |
+
|
22 |
+
for(var j = 0, n = tippable.length; j < n; j++){
|
23 |
+
tippable[j].tipRef = tips[tippable[j].dataset.tip] || tips[tippable[j].getAttribute('h')];
|
24 |
+
tippable[j].onmouseover = function(){
|
25 |
+
tip.className = 'ref visible';
|
26 |
+
tip.innerHTML = this.tipRef.innerHTML;
|
27 |
+
window.clearTimeout(tip.fadeOut);
|
28 |
+
};
|
29 |
+
tippable[j].onmouseout = function(){
|
30 |
+
tip.className = 'ref visible fadingOut';
|
31 |
+
tip.fadeOut = window.setTimeout(function(){
|
32 |
+
tip.innerHTML = '';
|
33 |
+
tip.className = '';
|
34 |
+
}, 250);
|
35 |
+
};
|
36 |
+
}
|
37 |
+
|
38 |
+
refs[i].onmousemove = function(e){
|
39 |
+
if(tip.className.indexOf('visible') < 0)
|
40 |
+
return;
|
41 |
+
tip.style.top = ((document.documentElement.clientHeight - e.clientY) < tip.offsetHeight + 20 ? Math.max(e.pageY - tip.offsetHeight, 0) : e.pageY) + 'px';
|
42 |
+
tip.style.left = ((document.documentElement.clientWidth - e.clientX) < tip.offsetWidth + 20 ? Math.max(e.pageX - tip.offsetWidth, 0) : e.pageX) + 'px';
|
43 |
+
};
|
44 |
+
}
|
45 |
+
|
46 |
+
tip.id = 'rTip';
|
47 |
+
document.body.appendChild(tip);
|
48 |
+
|
49 |
+
window.addEventListener('keydown', function(e){
|
50 |
+
if((e.keyCode != 88) || (['input', 'textarea', 'select'].indexOf(e.target.tagName.toLowerCase()) > -1))
|
51 |
+
return;
|
52 |
+
|
53 |
+
e.preventDefault();
|
54 |
+
|
55 |
+
if(e.ctrlKey && e.keyCode == 88){
|
56 |
+
var d = refs[0].style.display !== 'none' ? 'none' : 'block';
|
57 |
+
for(var i = 0, n = refs.length; i < n; i++)
|
58 |
+
refs[i].style.display = d;
|
59 |
+
|
60 |
+
return;
|
61 |
+
}
|
62 |
+
|
63 |
+
var kbds = document.querySelectorAll('.ref [data-toggle]'),
|
64 |
+
m = kbds.length,
|
65 |
+
partlyExp = document.querySelectorAll('.ref [data-toggle][data-exp]').length !== m;
|
66 |
+
|
67 |
+
for(var i = 0; i < m; i++)
|
68 |
+
partlyExp ? (kbds[i].dataset.exp = 1) : (delete kbds[i].dataset.exp);
|
69 |
+
|
70 |
+
});
|
71 |
+
|
72 |
+
});
|
73 |
+
|
languages/wp-security-audit-log.pot
CHANGED
@@ -3,14 +3,14 @@ msgid ""
|
|
3 |
msgstr ""
|
4 |
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
5 |
"Project-Id-Version: WP Security Audit Log\n"
|
6 |
-
"POT-Creation-Date:
|
7 |
-
"PO-Revision-Date:
|
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.
|
14 |
"X-Poedit-Basepath: ..\n"
|
15 |
"X-Poedit-Flags-xgettext: --add-comments=translators:\n"
|
16 |
"X-Poedit-WPHeader: wp-security-audit-log.php\n"
|
@@ -21,582 +21,674 @@ msgstr ""
|
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
|
24 |
-
#: classes/AuditLogListView.php:
|
25 |
msgid "No events so far."
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: classes/AuditLogListView.php:
|
29 |
-
msgid "Other"
|
30 |
-
msgstr ""
|
31 |
-
|
32 |
-
#: classes/AuditLogListView.php:53
|
33 |
msgid "Show "
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: classes/AuditLogListView.php:
|
37 |
msgid " Items"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: classes/AuditLogListView.php:
|
41 |
-
#: classes/Views/AuditLog.php:
|
42 |
msgid "All Sites"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: classes/AuditLogListView.php:
|
46 |
msgid "Live Database"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: classes/AuditLogListView.php:
|
50 |
msgid "Archive Database"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: classes/AuditLogListView.php:
|
54 |
msgid "User"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: classes/AuditLogListView.php:
|
58 |
msgid "Username"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: classes/AuditLogListView.php:
|
62 |
-
|
63 |
-
msgid "Code"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: classes/AuditLogListView.php:
|
67 |
-
|
68 |
-
msgid "Type"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: classes/AuditLogListView.php:
|
72 |
msgid "Date"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: classes/AuditLogListView.php:
|
76 |
msgid "Source IP"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: classes/AuditLogListView.php:
|
80 |
msgid "Site"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: classes/AuditLogListView.php:
|
84 |
msgid "Message"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: classes/AuditLogListView.php:
|
88 |
msgid "Click to toggle."
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: classes/AuditLogListView.php:
|
92 |
msgid "Disable this type of alerts."
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: classes/AuditLogListView.php:
|
96 |
msgid "Unknown error code."
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: classes/AuditLogListView.php:
|
100 |
msgid "Show me all activity by this User"
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: classes/AuditLogListView.php:
|
104 |
msgid "Unknown"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: classes/AuditLogListView.php:
|
|
|
108 |
msgid "Plugin"
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: classes/AuditLogListView.php:
|
112 |
msgid "Plugins"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: classes/AuditLogListView.php:
|
116 |
msgid "Website Visitor"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: classes/AuditLogListView.php:
|
120 |
msgid "System"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: classes/AuditLogListView.php:
|
124 |
msgid "Show me all activity originating from this IP Address"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: classes/AuditLogListView.php:
|
|
|
|
|
|
|
|
|
128 |
msgid "Alert Data Inspector"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: classes/
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
msgid "Password Protected"
|
134 |
msgstr ""
|
135 |
|
136 |
-
#: classes/Sensors/Content.php:
|
137 |
msgid "Public"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: classes/Sensors/Content.php:
|
141 |
msgid "Private"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: classes/Sensors/WooCommerce.php:
|
145 |
msgid "In stock"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: classes/Sensors/WooCommerce.php:
|
149 |
msgid "Out of stock"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: classes/
|
153 |
-
msgid "
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: classes/Views/
|
157 |
-
msgid "
|
|
|
|
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: classes/Views/
|
161 |
msgid ""
|
162 |
-
"
|
163 |
-
"
|
164 |
-
"keeping a security audit log. WP Security Audit Log is developed by "
|
165 |
-
"WordPress security professionals WP White Security."
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: classes/Views/
|
169 |
-
msgid ""
|
170 |
-
"Keep A WordPress Security Audit Log & Identify WordPress Security Issues"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: classes/Views/
|
174 |
msgid ""
|
175 |
-
"
|
176 |
-
"
|
177 |
-
"
|
178 |
-
"becomes a problem or a security issue. A WordPress security alert is "
|
179 |
-
"generated by the plugin when:"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: classes/Views/
|
183 |
-
msgid "
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: classes/Views/
|
187 |
-
|
188 |
-
"
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: classes/Views/
|
192 |
-
|
|
|
|
|
|
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: classes/Views/
|
196 |
-
msgid "
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: classes/Views/
|
200 |
-
msgid "
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: classes/Views/
|
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/
|
210 |
-
msgid "
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: classes/Views/
|
214 |
-
msgid "
|
215 |
msgstr ""
|
216 |
|
217 |
-
#: classes/Views/
|
218 |
-
msgid "
|
219 |
msgstr ""
|
220 |
|
221 |
-
#: classes/Views/
|
222 |
-
msgid "
|
223 |
msgstr ""
|
224 |
|
225 |
-
#: classes/Views/
|
226 |
-
msgid "
|
227 |
msgstr ""
|
228 |
|
229 |
-
#: classes/Views/
|
230 |
-
msgid "
|
231 |
msgstr ""
|
232 |
|
233 |
-
#: classes/Views/
|
234 |
-
|
|
|
|
|
235 |
msgstr ""
|
236 |
|
237 |
-
#: classes/Views/
|
238 |
msgid ""
|
239 |
-
"
|
240 |
-
"of WP Security Audit Log with the premium Add-Ons."
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: classes/Views/
|
244 |
-
msgid "
|
|
|
|
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: classes/Views/
|
248 |
-
msgid "
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: classes/Views/
|
252 |
-
msgid ""
|
253 |
-
"If you are interested in translating our plugin please drop us an email on"
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: classes/Views/
|
257 |
-
msgid "
|
258 |
msgstr ""
|
259 |
|
260 |
-
#: classes/Views/
|
261 |
-
|
|
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: classes/Views/
|
265 |
-
|
|
|
|
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: classes/Views/
|
|
|
269 |
msgid ""
|
270 |
-
"
|
|
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: classes/Views/
|
274 |
-
|
|
|
|
|
|
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: classes/Views/
|
278 |
-
msgid "
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: classes/Views/
|
282 |
-
|
283 |
-
msgid "You do not have sufficient permissions to access this page."
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: classes/Views/
|
287 |
-
msgid "
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: classes/Views/
|
291 |
-
msgid "
|
|
|
|
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: classes/Views/
|
295 |
-
msgid "
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: classes/Views/
|
299 |
-
msgid "
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: classes/Views/
|
303 |
-
msgid "
|
|
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: classes/Views/
|
307 |
msgid ""
|
308 |
-
"
|
309 |
-
"
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: classes/Views/
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: classes/Views/
|
319 |
-
|
320 |
-
#: classes/Views/Search.php:60
|
321 |
-
msgid "Buy all Add-Ons Bundle"
|
322 |
msgstr ""
|
323 |
|
324 |
-
#: classes/Views/
|
325 |
-
msgid "
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: classes/Views/
|
329 |
-
msgid "
|
|
|
|
|
|
|
|
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: classes/Views/
|
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 "
|
336 |
-
"audit, such as configurable email alerts, ability to search using free text "
|
337 |
-
"based searches & filters, and generate user activity reports to meet "
|
338 |
-
"regulatory compliance requirements."
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: classes/Views/
|
342 |
-
msgid "
|
|
|
|
|
343 |
msgstr ""
|
344 |
|
345 |
-
#: classes/Views/
|
346 |
-
#, php-format
|
347 |
msgid ""
|
348 |
-
"
|
349 |
-
"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: classes/Views/
|
353 |
-
msgid "
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: classes/Views/
|
357 |
-
msgid "
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: classes/Views/
|
361 |
-
msgid ""
|
362 |
-
"See who is logged in to your WordPress and manage user sessions and logins."
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: classes/Views/
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: classes/Views/
|
372 |
msgid ""
|
373 |
-
"
|
374 |
-
"
|
|
|
375 |
msgstr ""
|
376 |
|
377 |
-
#: classes/Views/
|
378 |
-
|
379 |
-
msgid "Reports"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: classes/Views/
|
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/
|
389 |
-
|
390 |
-
|
|
|
|
|
|
|
391 |
msgstr ""
|
392 |
|
393 |
-
#: classes/Views/
|
394 |
msgid ""
|
395 |
-
"
|
396 |
-
"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: classes/Views/
|
400 |
-
msgid "
|
|
|
|
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: classes/Views/
|
404 |
msgid ""
|
405 |
-
"
|
406 |
-
"
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: classes/Views/
|
410 |
-
msgid "
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: classes/Views/
|
414 |
-
msgid "
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: classes/Views/
|
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:
|
425 |
-
msgid "
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: classes/Views/Help.php:
|
429 |
-
msgid "
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: classes/Views/Help.php:
|
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:
|
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:
|
445 |
-
msgid "
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: classes/Views/Help.php:
|
449 |
-
msgid "
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: classes/Views/Help.php:
|
453 |
-
msgid "
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: classes/Views/Help.php:
|
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:
|
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/
|
470 |
-
msgid "
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: classes/Views/
|
474 |
-
|
|
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: classes/Views/
|
478 |
-
|
|
|
479 |
msgstr ""
|
480 |
|
481 |
-
#: classes/Views/
|
482 |
-
msgid "
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: classes/Views/
|
486 |
-
msgid "
|
487 |
msgstr ""
|
488 |
|
489 |
-
#: classes/Views/
|
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 "
|
493 |
-
"update and what are the latest WordPress security hacks so you can stay one "
|
494 |
-
"step ahead of the hackers."
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: classes/Views/
|
498 |
-
msgid "
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: classes/Views/
|
502 |
-
msgid ""
|
503 |
-
"Subscribe to WP Security Bloggers (An Aggregate of WordPress Security Blogs)"
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: classes/Views/
|
507 |
-
msgid "
|
508 |
msgstr ""
|
509 |
|
510 |
-
#: classes/Views/
|
511 |
-
|
512 |
-
msgid "Settings have been saved."
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: classes/Views/
|
516 |
-
|
517 |
-
msgid "Error: "
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: classes/Views/
|
521 |
-
msgid "
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: classes/Views/
|
525 |
-
msgid "
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: classes/Views/
|
529 |
-
msgid "
|
530 |
msgstr ""
|
531 |
|
532 |
-
#: classes/Views/LogInUsers.php:
|
533 |
-
msgid "
|
534 |
msgstr ""
|
535 |
|
536 |
-
#: classes/Views/LogInUsers.php:
|
537 |
-
msgid "
|
538 |
msgstr ""
|
539 |
|
540 |
-
#: classes/Views/LogInUsers.php:
|
541 |
-
msgid "
|
|
|
|
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: classes/Views/LogInUsers.php:
|
545 |
msgid ""
|
546 |
-
"
|
547 |
-
"
|
548 |
msgstr ""
|
549 |
|
550 |
-
#: classes/Views/Reports.php:
|
551 |
msgid "Reports Add-On"
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: classes/Views/Reports.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
555 |
msgid ""
|
556 |
-
"Generate
|
557 |
-
"
|
558 |
-
"configure automated weekly or monthly email summary reports."
|
559 |
msgstr ""
|
560 |
|
561 |
-
#: classes/Views/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
562 |
msgid "Search Add-On"
|
563 |
msgstr ""
|
564 |
|
565 |
-
#: classes/Views/Search.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
566 |
msgid ""
|
567 |
-
"
|
568 |
-
"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: classes/Views/Settings.php:
|
572 |
msgid "Settings"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: classes/Views/Settings.php:
|
576 |
msgid "General"
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: classes/Views/Settings.php:
|
580 |
msgid "Audit Log"
|
581 |
msgstr ""
|
582 |
|
583 |
-
#: classes/Views/Settings.php:
|
584 |
msgid "Exclude Objects"
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: classes/Views/Settings.php:
|
588 |
msgid "From Email & Name"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: classes/Views/Settings.php:
|
592 |
msgid "Email Address"
|
593 |
msgstr ""
|
594 |
|
595 |
-
#: classes/Views/Settings.php:
|
596 |
msgid "Display Name"
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: classes/Views/Settings.php:
|
600 |
#, php-format
|
601 |
msgid ""
|
602 |
"These email address and display name will be used as From details in the "
|
@@ -604,2835 +696,3406 @@ msgid ""
|
|
604 |
"the domain of the specified email address."
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: classes/Views/Settings.php:
|
608 |
msgid "(premium add-ons)"
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: classes/Views/Settings.php:
|
612 |
msgid "Alerts Dashboard Widget"
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: classes/Views/Settings.php:
|
616 |
msgid "On"
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: classes/Views/Settings.php:
|
620 |
msgid "Off"
|
621 |
msgstr ""
|
622 |
|
623 |
-
#: classes/Views/Settings.php:
|
624 |
#, php-format
|
625 |
msgid "Display a dashboard widget with the latest %d security alerts."
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: classes/Views/Settings.php:
|
629 |
msgid "Reverse Proxy / Firewall Options"
|
630 |
msgstr ""
|
631 |
|
632 |
-
#: classes/Views/Settings.php:
|
633 |
msgid "WordPress running behind firewall or proxy"
|
634 |
msgstr ""
|
635 |
|
636 |
-
#: classes/Views/Settings.php:
|
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:
|
644 |
msgid "Filter Internal IP Addresses"
|
645 |
msgstr ""
|
646 |
|
647 |
-
#: classes/Views/Settings.php:
|
648 |
msgid ""
|
649 |
"Enable this option to filter internal IP addresses from the proxy headers."
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: classes/Views/Settings.php:
|
653 |
msgid "Can Manage Plugin"
|
654 |
msgstr ""
|
655 |
|
656 |
-
#: classes/Views/Settings.php:
|
657 |
msgid "Users and Roles in this list can manage the plugin settings"
|
658 |
msgstr ""
|
659 |
|
660 |
-
#: classes/Views/Settings.php:
|
661 |
msgid "Restrict Plugin Access"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: classes/Views/Settings.php:
|
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:
|
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:
|
678 |
-
msgid "
|
679 |
msgstr ""
|
680 |
|
681 |
-
#: classes/Views/Settings.php:
|
682 |
msgid ""
|
683 |
-
"
|
684 |
-
"
|
685 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
686 |
msgstr ""
|
687 |
|
688 |
-
#: classes/Views/Settings.php:
|
689 |
-
msgid "
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: classes/Views/Settings.php:
|
693 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: classes/Views/Settings.php:
|
697 |
msgid "Request Log"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: classes/Views/Settings.php:
|
701 |
msgid "Enables logging request to file."
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: classes/Views/Settings.php:
|
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:
|
711 |
msgid "Hide Plugin in Plugins Page"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: classes/Views/Settings.php:
|
715 |
msgid "Hide"
|
716 |
msgstr ""
|
717 |
|
718 |
-
#: classes/Views/Settings.php:
|
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:
|
725 |
-
msgid "
|
726 |
-
msgstr ""
|
727 |
-
|
728 |
-
#: classes/Views/Settings.php:375
|
729 |
-
msgid "Disable all plugin logging."
|
730 |
msgstr ""
|
731 |
|
732 |
-
#: classes/Views/Settings.php:
|
733 |
-
msgid "
|
|
|
734 |
msgstr ""
|
735 |
|
736 |
-
#: classes/Views/Settings.php:
|
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:
|
743 |
-
msgid "
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: classes/Views/Settings.php:
|
747 |
msgid "(eg: 1 month)"
|
748 |
msgstr ""
|
749 |
|
750 |
-
#: classes/Views/Settings.php:
|
751 |
msgid "None"
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
755 |
msgid "Delete alerts older than"
|
756 |
msgstr ""
|
757 |
|
758 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
759 |
msgid "(eg: 80)"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: classes/Views/Settings.php:
|
763 |
msgid "Keep up to"
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: classes/Views/Settings.php:
|
767 |
msgid "alerts"
|
768 |
msgstr ""
|
769 |
|
770 |
-
#: classes/Views/Settings.php:
|
771 |
msgid "Next Scheduled Cleanup is in "
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: classes/Views/Settings.php:
|
775 |
#, php-format
|
776 |
msgid "(or %s)"
|
777 |
msgstr ""
|
778 |
|
779 |
-
#: classes/Views/Settings.php:
|
780 |
msgid "Run Manually"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: classes/Views/Settings.php:
|
784 |
msgid "Can View Alerts"
|
785 |
msgstr ""
|
786 |
|
787 |
-
#: classes/Views/Settings.php:
|
788 |
msgid "Users and Roles in this list can view the security alerts"
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: classes/Views/Settings.php:
|
792 |
msgid "Refresh Audit Log Viewer"
|
793 |
msgstr ""
|
794 |
|
795 |
-
#: classes/Views/Settings.php:
|
796 |
msgid "Automatic"
|
797 |
msgstr ""
|
798 |
|
799 |
-
#: classes/Views/Settings.php:
|
800 |
msgid "Refresh Audit Log Viewer as soon as there are new alerts."
|
801 |
msgstr ""
|
802 |
|
803 |
-
#: classes/Views/Settings.php:
|
804 |
msgid "Manual"
|
805 |
msgstr ""
|
806 |
|
807 |
-
#: classes/Views/Settings.php:
|
808 |
msgid "Refresh Audit Log Viewer only when the page is reloaded."
|
809 |
msgstr ""
|
810 |
|
811 |
-
#: classes/Views/Settings.php:
|
812 |
msgid "Alerts Timestamp"
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: classes/Views/Settings.php:
|
816 |
msgid "UTC"
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: classes/Views/Settings.php:
|
820 |
msgid "WordPress' timezone"
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: classes/Views/Settings.php:
|
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:
|
830 |
msgid "User Information in Audit Log"
|
831 |
msgstr ""
|
832 |
|
833 |
-
#: classes/Views/Settings.php:
|
834 |
msgid "First Name & Last Name"
|
835 |
msgstr ""
|
836 |
|
837 |
-
#: classes/Views/Settings.php:
|
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:
|
844 |
msgid "Audit Log Columns Selection"
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: classes/Views/Settings.php:
|
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:
|
855 |
msgid "Disable Alerts for WordPress Background Activity"
|
856 |
msgstr ""
|
857 |
|
858 |
-
#: classes/Views/Settings.php:
|
859 |
msgid "Hide activity"
|
860 |
msgstr ""
|
861 |
|
862 |
-
#: classes/Views/Settings.php:
|
863 |
msgid ""
|
864 |
"For example do not raise an alert when WordPress deletes the auto drafts."
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: classes/Views/Settings.php:
|
868 |
msgid "Users & Roles"
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
872 |
msgid "Excluded Users"
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: classes/Views/Settings.php:
|
876 |
msgid "Excluded Roles"
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: classes/Views/Settings.php:
|
880 |
msgid "Custom Fields"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
884 |
msgid "Excluded Custom Fields"
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: classes/Views/Settings.php:
|
888 |
msgid "IP Addresses"
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
892 |
msgid "Excluded IP Addresses"
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: classes/Views/Settings.php:
|
896 |
msgid "Custom Post Types"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: classes/Views/Settings.php:
|
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:
|
906 |
msgid "Exclude Custom Post Type from monitoring"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: classes/Views/ToggleAlerts.php:
|
910 |
msgid "Enable/Disable Alerts"
|
911 |
msgstr ""
|
912 |
|
913 |
-
#: classes/Views/ToggleAlerts.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
914 |
msgid "Description"
|
915 |
msgstr ""
|
916 |
|
917 |
-
#: classes/Views/ToggleAlerts.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
918 |
msgid "Not Implemented"
|
919 |
msgstr ""
|
920 |
|
921 |
-
#: classes/Views/ToggleAlerts.php:
|
922 |
msgid "Not Available"
|
923 |
msgstr ""
|
924 |
|
925 |
-
#: classes/Views/ToggleAlerts.php:
|
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:
|
932 |
msgid "Purge log files older than one month"
|
933 |
msgstr ""
|
934 |
|
935 |
-
#: classes/Views/ToggleAlerts.php:
|
936 |
-
msgid "
|
|
|
|
|
|
|
937 |
msgstr ""
|
938 |
|
939 |
-
#: classes/Views/ToggleAlerts.php:
|
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:
|
947 |
msgid ""
|
948 |
-
"
|
|
|
|
|
|
|
949 |
"scanned the plugin will consume more resources to log all the requests."
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: classes/Views/ToggleAlerts.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
953 |
msgid "Save Changes"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: classes/WidgetManager.php:
|
957 |
msgid "Latest Alerts"
|
958 |
msgstr ""
|
959 |
|
960 |
-
#: classes/WidgetManager.php:
|
961 |
msgid "No alerts found."
|
962 |
msgstr ""
|
963 |
|
964 |
-
#: defaults.php:
|
965 |
msgid "Fatal run-time error."
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: defaults.php:
|
969 |
msgid "Run-time warning (non-fatal error)."
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: defaults.php:
|
973 |
msgid "Compile-time parse error."
|
974 |
msgstr ""
|
975 |
|
976 |
-
#: defaults.php:
|
977 |
msgid "Run-time notice."
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: defaults.php:
|
981 |
msgid "Fatal error that occurred during startup."
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: defaults.php:
|
985 |
msgid "Warnings that occurred during startup."
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: defaults.php:
|
989 |
msgid "Fatal compile-time error."
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: defaults.php:
|
993 |
msgid "Compile-time warning."
|
994 |
msgstr ""
|
995 |
|
996 |
-
#: defaults.php:
|
997 |
msgid "User-generated error message."
|
998 |
msgstr ""
|
999 |
|
1000 |
-
#: defaults.php:
|
1001 |
msgid "User-generated warning message."
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: defaults.php:
|
1005 |
msgid "User-generated notice message."
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: defaults.php:
|
1009 |
msgid "Non-standard/optimal code warning."
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: defaults.php:
|
1013 |
msgid "Catchable fatal error."
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: defaults.php:
|
1017 |
msgid "Run-time deprecation notices."
|
1018 |
msgstr ""
|
1019 |
|
1020 |
-
#: defaults.php:
|
1021 |
msgid "Run-time user deprecation notices."
|
1022 |
msgstr ""
|
1023 |
|
1024 |
-
#: defaults.php:
|
1025 |
msgid "Critical, high-impact messages."
|
1026 |
msgstr ""
|
1027 |
|
1028 |
-
#: defaults.php:
|
1029 |
msgid "Debug informational messages."
|
1030 |
msgstr ""
|
1031 |
|
1032 |
-
#: defaults.php:
|
1033 |
msgid "Content & Comments"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
-
#: defaults.php:
|
1037 |
-
msgid "
|
1038 |
msgstr ""
|
1039 |
|
1040 |
-
#: defaults.php:
|
1041 |
-
msgid "User created a new
|
1042 |
msgstr ""
|
1043 |
|
1044 |
-
#: defaults.php:
|
1045 |
msgid ""
|
1046 |
-
"Created a new
|
1047 |
-
"%."
|
1048 |
msgstr ""
|
1049 |
|
1050 |
-
#: defaults.php:
|
1051 |
-
msgid "User published a
|
1052 |
msgstr ""
|
1053 |
|
1054 |
-
#: defaults.php:
|
1055 |
msgid ""
|
1056 |
-
"Published a
|
|
|
1057 |
msgstr ""
|
1058 |
|
1059 |
-
#: defaults.php:
|
1060 |
-
msgid "User modified a
|
1061 |
msgstr ""
|
1062 |
|
1063 |
-
#: defaults.php:
|
1064 |
msgid ""
|
1065 |
-
"Modified the
|
1066 |
"%EditorLinkPost%."
|
1067 |
msgstr ""
|
1068 |
|
1069 |
-
#: defaults.php:
|
1070 |
-
msgid "User
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
#: defaults.php:
|
1074 |
-
msgid "
|
1075 |
-
|
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:
|
1086 |
-
msgid "User moved a
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: defaults.php:
|
1090 |
-
msgid "
|
|
|
|
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: defaults.php:
|
1094 |
-
msgid "User restored a
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: defaults.php:
|
1098 |
-
msgid "
|
|
|
|
|
1099 |
msgstr ""
|
1100 |
|
1101 |
-
#: defaults.php:
|
1102 |
-
msgid "User changed
|
1103 |
msgstr ""
|
1104 |
|
1105 |
-
#: defaults.php:
|
1106 |
msgid ""
|
1107 |
-
"Changed the category of the
|
1108 |
-
"%NewCategories%. %EditorLinkPost%."
|
1109 |
msgstr ""
|
1110 |
|
1111 |
-
#: defaults.php:
|
1112 |
-
msgid "User changed
|
1113 |
msgstr ""
|
1114 |
|
1115 |
-
#: defaults.php:
|
1116 |
msgid ""
|
1117 |
-
"Changed the URL of the
|
1118 |
-
"%EditorLinkPost%."
|
1119 |
msgstr ""
|
1120 |
|
1121 |
-
#: defaults.php:
|
1122 |
-
msgid "User changed
|
1123 |
msgstr ""
|
1124 |
|
1125 |
-
#: defaults.php:
|
1126 |
msgid ""
|
1127 |
-
"Changed the author of %
|
1128 |
-
"%EditorLinkPost%."
|
1129 |
msgstr ""
|
1130 |
|
1131 |
-
#: defaults.php:
|
1132 |
-
msgid "User changed
|
1133 |
msgstr ""
|
1134 |
|
1135 |
-
#: defaults.php:
|
1136 |
msgid ""
|
1137 |
-
"Changed the status of %PostTitle%
|
1138 |
-
"%EditorLinkPost%."
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: defaults.php:
|
1142 |
msgid "User created new category"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
-
#: defaults.php:
|
1146 |
msgid ""
|
1147 |
-
"Created a new category called %CategoryName
|
1148 |
"%CategoryLink%."
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: defaults.php:
|
1152 |
msgid "User deleted category"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
-
#: defaults.php:
|
1156 |
-
msgid "
|
|
|
|
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
#: defaults.php:
|
1160 |
-
msgid "User changed the visibility of a
|
1161 |
msgstr ""
|
1162 |
|
1163 |
-
#: defaults.php:
|
1164 |
msgid ""
|
1165 |
-
"Changed the visibility of the
|
1166 |
-
"%NewVisibility%. %EditorLinkPost%."
|
1167 |
msgstr ""
|
1168 |
|
1169 |
-
#: defaults.php:
|
1170 |
-
msgid "User changed the date of a
|
1171 |
msgstr ""
|
1172 |
|
1173 |
-
#: defaults.php:
|
1174 |
msgid ""
|
1175 |
-
"Changed the date of the
|
1176 |
-
"%EditorLinkPost%."
|
1177 |
msgstr ""
|
1178 |
|
1179 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1180 |
msgid "User set a post as sticky"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
-
#: defaults.php:
|
1184 |
msgid ""
|
1185 |
"Set the post %PostTitle% as Sticky. Post URL is %PostUrl%. %EditorLinkPost%."
|
1186 |
msgstr ""
|
1187 |
|
1188 |
-
#: defaults.php:
|
1189 |
msgid "User removed post from sticky"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
-
#: defaults.php:
|
1193 |
msgid "Removed the post %PostTitle% from Sticky. %EditorLinkPost%."
|
1194 |
msgstr ""
|
1195 |
|
1196 |
-
#: defaults.php:
|
1197 |
-
msgid "
|
1198 |
msgstr ""
|
1199 |
|
1200 |
-
#: defaults.php:
|
1201 |
msgid ""
|
1202 |
"Changed the parent of the category %CategoryName% from %OldParent% to "
|
1203 |
"%NewParent%. %CategoryLink%."
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#: defaults.php:
|
1207 |
msgid "User created a custom field for a post"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
-
#: defaults.php:
|
1211 |
msgid ""
|
1212 |
-
"Created a new custom field %MetaKey% with value %MetaValue% in the
|
1213 |
-
"%
|
|
|
1214 |
msgstr ""
|
1215 |
|
1216 |
-
#: defaults.php:
|
1217 |
msgid "User updated a custom field value for a post"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
-
#: defaults.php:
|
1221 |
msgid ""
|
1222 |
-
"Modified the value of the custom field %MetaKey%
|
1223 |
-
"%
|
|
|
1224 |
msgstr ""
|
1225 |
|
1226 |
-
#: defaults.php:
|
1227 |
msgid "User deleted a custom field from a post"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
-
#: defaults.php:
|
1231 |
msgid ""
|
1232 |
-
"Deleted the custom field %MetaKey% with
|
1233 |
-
"% %EditorLinkPost
|
1234 |
msgstr ""
|
1235 |
|
1236 |
-
#: defaults.php:
|
1237 |
msgid "User updated a custom field name for a post"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
-
#: defaults.php:
|
1241 |
msgid ""
|
1242 |
-
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in the
|
1243 |
-
"%
|
|
|
1244 |
msgstr ""
|
1245 |
|
1246 |
-
#: defaults.php:
|
1247 |
-
msgid "User modified content
|
1248 |
msgstr ""
|
1249 |
|
1250 |
-
#: defaults.php:
|
1251 |
msgid ""
|
1252 |
-
"Modified the content of the
|
1253 |
-
"%EditorLinkPost%."
|
1254 |
msgstr ""
|
1255 |
|
1256 |
-
#: defaults.php:
|
1257 |
-
msgid "User
|
1258 |
msgstr ""
|
1259 |
|
1260 |
-
#: defaults.php:
|
1261 |
msgid ""
|
1262 |
-
"
|
1263 |
"%EditorLinkPost%."
|
1264 |
msgstr ""
|
1265 |
|
1266 |
-
#: defaults.php:
|
1267 |
-
msgid "User
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: defaults.php:
|
1271 |
msgid ""
|
1272 |
-
"
|
1273 |
-
"%
|
1274 |
msgstr ""
|
1275 |
|
1276 |
-
#: defaults.php:
|
1277 |
-
msgid "User
|
1278 |
msgstr ""
|
1279 |
|
1280 |
-
#: defaults.php:
|
1281 |
-
msgid "
|
|
|
|
|
1282 |
msgstr ""
|
1283 |
|
1284 |
-
#: defaults.php:
|
1285 |
-
msgid "User
|
1286 |
msgstr ""
|
1287 |
|
1288 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1289 |
msgid ""
|
1290 |
-
"
|
1291 |
"%EditorLinkPost%."
|
1292 |
msgstr ""
|
1293 |
|
1294 |
-
#: defaults.php:
|
1295 |
-
msgid "
|
1296 |
msgstr ""
|
1297 |
|
1298 |
-
#: defaults.php:
|
1299 |
msgid ""
|
1300 |
-
"
|
|
|
1301 |
msgstr ""
|
1302 |
|
1303 |
-
#: defaults.php:
|
1304 |
-
msgid "User
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: defaults.php:
|
1308 |
msgid ""
|
1309 |
-
"
|
|
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: defaults.php:
|
1313 |
-
msgid "User
|
1314 |
msgstr ""
|
1315 |
|
1316 |
-
#: defaults.php:
|
1317 |
-
msgid "
|
|
|
|
|
1318 |
msgstr ""
|
1319 |
|
1320 |
-
#: defaults.php:
|
1321 |
-
msgid "User
|
1322 |
msgstr ""
|
1323 |
|
1324 |
-
#: defaults.php:
|
1325 |
msgid ""
|
1326 |
-
"
|
|
|
1327 |
msgstr ""
|
1328 |
|
1329 |
-
#: defaults.php:
|
1330 |
-
msgid "User
|
1331 |
msgstr ""
|
1332 |
|
1333 |
-
#: defaults.php:
|
1334 |
msgid ""
|
1335 |
-
"
|
|
|
1336 |
msgstr ""
|
1337 |
|
1338 |
-
#: defaults.php:
|
1339 |
-
msgid "User
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1343 |
msgid ""
|
1344 |
-
"
|
|
|
1345 |
msgstr ""
|
1346 |
|
1347 |
-
#: defaults.php:
|
1348 |
-
msgid "User
|
1349 |
msgstr ""
|
1350 |
|
1351 |
-
#: defaults.php:
|
1352 |
-
msgid "
|
|
|
|
|
1353 |
msgstr ""
|
1354 |
|
1355 |
-
#: defaults.php:
|
1356 |
msgid "Comments"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
-
#: defaults.php:
|
1360 |
msgid "User approved a comment"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
-
#: defaults.php:
|
1364 |
msgid ""
|
1365 |
"Approved the comment posted in response to the post %PostTitle% by %Author% "
|
1366 |
"on %CommentLink%."
|
1367 |
msgstr ""
|
1368 |
|
1369 |
-
#: defaults.php:
|
1370 |
msgid "User unapproved a comment"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: defaults.php:
|
1374 |
msgid ""
|
1375 |
"Unapproved the comment posted in response to the post %PostTitle% by %Author"
|
1376 |
"% on %CommentLink%."
|
1377 |
msgstr ""
|
1378 |
|
1379 |
-
#: defaults.php:
|
1380 |
msgid "User replied to a comment"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
-
#: defaults.php:
|
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:
|
1390 |
msgid "User edited a comment"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
-
#: defaults.php:
|
1394 |
msgid ""
|
1395 |
"Edited a comment posted in response to the post %PostTitle% by %Author% on "
|
1396 |
"%CommentLink%."
|
1397 |
msgstr ""
|
1398 |
|
1399 |
-
#: defaults.php:
|
1400 |
msgid "User marked a comment as Spam"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
-
#: defaults.php:
|
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:
|
1410 |
msgid "User marked a comment as Not Spam"
|
1411 |
msgstr ""
|
1412 |
|
1413 |
-
#: defaults.php:
|
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:
|
1420 |
msgid "User moved a comment to trash"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
-
#: defaults.php:
|
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:
|
1430 |
msgid "User restored a comment from the trash"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
-
#: defaults.php:
|
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:
|
1440 |
msgid "User permanently deleted a comment"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
-
#: defaults.php:
|
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:
|
1450 |
msgid "User posted a comment"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
-
#: defaults.php:
|
1454 |
msgid "%CommentMsg% on %CommentLink%."
|
1455 |
msgstr ""
|
1456 |
|
1457 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1458 |
msgid "User created a new post with custom post type and saved it as draft"
|
1459 |
msgstr ""
|
1460 |
|
1461 |
-
#: defaults.php:
|
1462 |
msgid ""
|
1463 |
"Created a new custom post called %PostTitle% of type %PostType%. "
|
1464 |
"%EditorLinkPost%."
|
1465 |
msgstr ""
|
1466 |
|
1467 |
-
#: defaults.php:
|
1468 |
msgid "User published a post with custom post type"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
-
#: defaults.php:
|
1472 |
msgid ""
|
1473 |
"Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl"
|
1474 |
"%. %EditorLinkPost%."
|
1475 |
msgstr ""
|
1476 |
|
1477 |
-
#: defaults.php:
|
1478 |
msgid "User modified a post with custom post type"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
-
#: defaults.php:
|
1482 |
msgid ""
|
1483 |
"Modified the custom post %PostTitle% of type %PostType%. Post URL is %PostUrl"
|
1484 |
"%. %EditorLinkPost%."
|
1485 |
msgstr ""
|
1486 |
|
1487 |
-
#: defaults.php:
|
1488 |
msgid "User modified a draft post with custom post type"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
-
#: defaults.php:
|
1492 |
msgid ""
|
1493 |
"Modified the draft custom post %PostTitle% of type is %PostType%. "
|
1494 |
"%EditorLinkPost%."
|
1495 |
msgstr ""
|
1496 |
|
1497 |
-
#: defaults.php:
|
1498 |
msgid "User permanently deleted post with custom post type"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
-
#: defaults.php:
|
1502 |
msgid "Permanently Deleted the custom post %PostTitle% of type %PostType%."
|
1503 |
msgstr ""
|
1504 |
|
1505 |
-
#: defaults.php:
|
1506 |
msgid "User moved post with custom post type to trash"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
-
#: defaults.php:
|
1510 |
msgid ""
|
1511 |
"Moved the custom post %PostTitle% of type %PostType% to trash. Post URL was "
|
1512 |
"%PostUrl%."
|
1513 |
msgstr ""
|
1514 |
|
1515 |
-
#: defaults.php:
|
1516 |
msgid "User restored post with custom post type from trash"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
-
#: defaults.php:
|
1520 |
msgid ""
|
1521 |
"The custom post %PostTitle% of type %PostType% has been restored from trash. "
|
1522 |
"%EditorLinkPost%."
|
1523 |
msgstr ""
|
1524 |
|
1525 |
-
#: defaults.php:
|
1526 |
msgid "User changed the category of a post with custom post type"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
-
#: defaults.php:
|
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:
|
1536 |
msgid "User changed the URL of a post with custom post type"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: defaults.php:
|
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:
|
1546 |
msgid "User changed the author or post with custom post type"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
-
#: defaults.php:
|
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:
|
1556 |
msgid "User changed the status of post with custom post type"
|
1557 |
msgstr ""
|
1558 |
|
1559 |
-
#: defaults.php:
|
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:
|
1566 |
msgid "User changed the visibility of a post with custom post type"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
-
#: defaults.php:
|
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:
|
1576 |
msgid "User changed the date of post with custom post type"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
-
#: defaults.php:
|
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:
|
1586 |
msgid "User created a custom field for a custom post type"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
-
#: defaults.php:
|
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:
|
1596 |
msgid "User updated a custom field for a custom post type"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
-
#: defaults.php:
|
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:
|
1607 |
msgid "User deleted a custom field from a custom post type"
|
1608 |
msgstr ""
|
1609 |
|
1610 |
-
#: defaults.php:
|
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:
|
1617 |
msgid "User updated a custom field name for a custom post type"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
-
#: defaults.php:
|
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:
|
1627 |
msgid "User modified content for a published custom post type"
|
1628 |
msgstr ""
|
1629 |
|
1630 |
-
#: defaults.php:
|
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1637 |
msgid "User modified content for a draft custom post type"
|
1638 |
msgstr ""
|
1639 |
|
1640 |
-
#: defaults.php:
|
1641 |
msgid ""
|
1642 |
"Modified the content of the draft custom post type %PostTitle%."
|
1643 |
"%EditorLinkPost%."
|
1644 |
msgstr ""
|
1645 |
|
1646 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1647 |
msgid "User scheduled a custom post type"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
-
#: defaults.php:
|
1651 |
msgid ""
|
1652 |
"Scheduled the custom post type %PostTitle% to be published %PublishingDate%. "
|
1653 |
"%EditorLinkPost%."
|
1654 |
msgstr ""
|
1655 |
|
1656 |
-
#: defaults.php:
|
1657 |
msgid "User changed title of a custom post type"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
-
#: defaults.php:
|
1661 |
msgid ""
|
1662 |
"Changed the title of the custom post %OldTitle% to %NewTitle%. "
|
1663 |
"%EditorLinkPost%."
|
1664 |
msgstr ""
|
1665 |
|
1666 |
-
#: defaults.php:
|
1667 |
msgid "User opened a custom post type in the editor"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
-
#: defaults.php:
|
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:
|
1677 |
msgid "User viewed a custom post type"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
-
#: defaults.php:
|
1681 |
msgid ""
|
1682 |
"Viewed the custom post %PostTitle% of type %PostType%. View the post: "
|
1683 |
"%PostUrl%."
|
1684 |
msgstr ""
|
1685 |
|
1686 |
-
#: defaults.php:
|
1687 |
msgid "Pages"
|
1688 |
msgstr ""
|
1689 |
|
1690 |
-
#: defaults.php:
|
1691 |
msgid "User created a new WordPress page and saved it as draft"
|
1692 |
msgstr ""
|
1693 |
|
1694 |
-
#: defaults.php:
|
1695 |
msgid ""
|
1696 |
"Created a new page called %PostTitle% and saved it as draft. %EditorLinkPage"
|
1697 |
"%."
|
1698 |
msgstr ""
|
1699 |
|
1700 |
-
#: defaults.php:
|
1701 |
msgid "User published a WordPress page"
|
1702 |
msgstr ""
|
1703 |
|
1704 |
-
#: defaults.php:
|
1705 |
msgid ""
|
1706 |
"Published a page called %PostTitle%. Page URL is %PostUrl%. %EditorLinkPage%."
|
1707 |
msgstr ""
|
1708 |
|
1709 |
-
#: defaults.php:
|
1710 |
msgid "User modified a published WordPress page"
|
1711 |
msgstr ""
|
1712 |
|
1713 |
-
#: defaults.php:
|
1714 |
msgid ""
|
1715 |
"Modified the published page %PostTitle%. Page URL is %PostUrl%. "
|
1716 |
"%EditorLinkPage%."
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: defaults.php:
|
1720 |
msgid "User modified a draft WordPress page"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: defaults.php:
|
1724 |
msgid ""
|
1725 |
"Modified the draft page %PostTitle%. Page ID is %PostID%. %EditorLinkPage%."
|
1726 |
msgstr ""
|
1727 |
|
1728 |
-
#: defaults.php:
|
1729 |
msgid "User permanently deleted a page from the trash"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
-
#: defaults.php:
|
1733 |
msgid "Permanently deleted the page %PostTitle%."
|
1734 |
msgstr ""
|
1735 |
|
1736 |
-
#: defaults.php:
|
1737 |
msgid "User moved WordPress page to the trash"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
-
#: defaults.php:
|
1741 |
msgid "Moved the page %PostTitle% to trash. Page URL was %PostUrl%."
|
1742 |
msgstr ""
|
1743 |
|
1744 |
-
#: defaults.php:
|
1745 |
msgid "User restored a WordPress page from trash"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
-
#: defaults.php:
|
1749 |
msgid "Page %PostTitle% has been restored from trash. %EditorLinkPage%."
|
1750 |
msgstr ""
|
1751 |
|
1752 |
-
#: defaults.php:
|
1753 |
msgid "User changed page URL"
|
1754 |
msgstr ""
|
1755 |
|
1756 |
-
#: defaults.php:
|
1757 |
msgid ""
|
1758 |
"Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%. "
|
1759 |
"%EditorLinkPage%."
|
1760 |
msgstr ""
|
1761 |
|
1762 |
-
#: defaults.php:
|
1763 |
msgid "User changed page author"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
-
#: defaults.php:
|
1767 |
msgid ""
|
1768 |
"Changed the author of the page %PostTitle% from %OldAuthor% to %NewAuthor%. "
|
1769 |
"%EditorLinkPage%."
|
1770 |
msgstr ""
|
1771 |
|
1772 |
-
#: defaults.php:
|
1773 |
msgid "User changed page status"
|
1774 |
msgstr ""
|
1775 |
|
1776 |
-
#: defaults.php:
|
1777 |
msgid ""
|
1778 |
"Changed the status of the page %PostTitle% from %OldStatus% to %NewStatus%. "
|
1779 |
"%EditorLinkPage%."
|
1780 |
msgstr ""
|
1781 |
|
1782 |
-
#: defaults.php:
|
1783 |
msgid "User changed the visibility of a page post"
|
1784 |
msgstr ""
|
1785 |
|
1786 |
-
#: defaults.php:
|
1787 |
msgid ""
|
1788 |
"Changed the visibility of the page %PostTitle% from %OldVisibility% to "
|
1789 |
"%NewVisibility%. %EditorLinkPage%."
|
1790 |
msgstr ""
|
1791 |
|
1792 |
-
#: defaults.php:
|
1793 |
msgid "User changed the date of a page post"
|
1794 |
msgstr ""
|
1795 |
|
1796 |
-
#: defaults.php:
|
1797 |
msgid ""
|
1798 |
"Changed the date of the page %PostTitle% from %OldDate% to %NewDate%. "
|
1799 |
"%EditorLinkPage%."
|
1800 |
msgstr ""
|
1801 |
|
1802 |
-
#: defaults.php:
|
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:
|
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:
|
1833 |
msgid "User updated a custom field value for a page"
|
1834 |
msgstr ""
|
1835 |
|
1836 |
-
#: defaults.php:
|
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:
|
1843 |
msgid "User deleted a custom field from a page"
|
1844 |
msgstr ""
|
1845 |
|
1846 |
-
#: defaults.php:
|
1847 |
msgid ""
|
1848 |
"Deleted the custom field %MetaKey% with id %MetaID% from page %PostTitle% "
|
1849 |
"%EditorLinkPage%.<br>%MetaLink%."
|
1850 |
msgstr ""
|
1851 |
|
1852 |
-
#: defaults.php:
|
1853 |
msgid "User updated a custom field name for a page"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
-
#: defaults.php:
|
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:
|
1863 |
msgid "User modified content for a published page"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
-
#: defaults.php:
|
1867 |
msgid ""
|
1868 |
"Modified the content of the published page %PostTitle%. Page URL is %PostUrl"
|
1869 |
-
"
|
1870 |
msgstr ""
|
1871 |
|
1872 |
-
#: defaults.php:
|
1873 |
msgid "User modified content for a draft page"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
-
#: defaults.php:
|
1877 |
msgid ""
|
1878 |
"Modified the content of draft page %PostTitle%.%RevisionLink% %EditorLinkPage"
|
1879 |
"%."
|
1880 |
msgstr ""
|
1881 |
|
1882 |
-
#: defaults.php:
|
1883 |
msgid "User scheduled a page"
|
1884 |
msgstr ""
|
1885 |
|
1886 |
-
#: defaults.php:
|
1887 |
msgid ""
|
1888 |
"Scheduled the page %PostTitle% to be published %PublishingDate%. "
|
1889 |
"%EditorLinkPage%."
|
1890 |
msgstr ""
|
1891 |
|
1892 |
-
#: defaults.php:
|
1893 |
msgid "User changed title of a page"
|
1894 |
msgstr ""
|
1895 |
|
1896 |
-
#: defaults.php:
|
1897 |
msgid ""
|
1898 |
"Changed the title of the page %OldTitle% to %NewTitle%. %EditorLinkPage%."
|
1899 |
msgstr ""
|
1900 |
|
1901 |
-
#: defaults.php:
|
1902 |
msgid "User opened a page in the editor"
|
1903 |
msgstr ""
|
1904 |
|
1905 |
-
#: defaults.php:
|
1906 |
msgid ""
|
1907 |
"Opened the page %PostTitle% in the editor. View the page: %EditorLinkPage%."
|
1908 |
msgstr ""
|
1909 |
|
1910 |
-
#: defaults.php:
|
1911 |
msgid "User viewed a page"
|
1912 |
msgstr ""
|
1913 |
|
1914 |
-
#: defaults.php:
|
1915 |
msgid "Viewed the page %PostTitle%. View the page: %PostUrl%."
|
1916 |
msgstr ""
|
1917 |
|
1918 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1919 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a published page"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
-
#: defaults.php:
|
1923 |
msgid ""
|
1924 |
"Disabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
1925 |
msgstr ""
|
1926 |
|
1927 |
-
#: defaults.php:
|
1928 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a published page"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
-
#: defaults.php:
|
1932 |
msgid ""
|
1933 |
"Enabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
1934 |
msgstr ""
|
1935 |
|
1936 |
-
#: defaults.php:
|
1937 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft page"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
-
#: defaults.php:
|
1941 |
msgid ""
|
1942 |
"Disabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: defaults.php:
|
1946 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft page"
|
1947 |
msgstr ""
|
1948 |
|
1949 |
-
#: defaults.php:
|
1950 |
msgid "Enabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
1951 |
msgstr ""
|
1952 |
|
1953 |
-
#: defaults.php:
|
1954 |
msgid "WordPress & Multisite Management"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
-
#: defaults.php:
|
1958 |
msgid "Database"
|
1959 |
msgstr ""
|
1960 |
|
1961 |
-
#: defaults.php:
|
1962 |
msgid "Plugin created tables"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
-
#: defaults.php:
|
1966 |
msgid ""
|
1967 |
"Plugin %Plugin->Name% created these tables in the database: %TableNames%."
|
1968 |
msgstr ""
|
1969 |
|
1970 |
-
#: defaults.php:
|
1971 |
msgid "Plugin modified tables structure"
|
1972 |
msgstr ""
|
1973 |
|
1974 |
-
#: defaults.php:
|
1975 |
msgid ""
|
1976 |
"Plugin %Plugin->Name% modified the structure of these database tables: "
|
1977 |
"%TableNames%."
|
1978 |
msgstr ""
|
1979 |
|
1980 |
-
#: defaults.php:
|
1981 |
msgid "Plugin deleted tables"
|
1982 |
msgstr ""
|
1983 |
|
1984 |
-
#: defaults.php:
|
1985 |
msgid ""
|
1986 |
"Plugin %Plugin->Name% deleted the following tables from the database: "
|
1987 |
"%TableNames%."
|
1988 |
msgstr ""
|
1989 |
|
1990 |
-
#: defaults.php:
|
1991 |
msgid "Theme created tables"
|
1992 |
msgstr ""
|
1993 |
|
1994 |
-
#: defaults.php:
|
1995 |
msgid "Theme %Theme->Name% created these tables in the database: %TableNames%."
|
1996 |
msgstr ""
|
1997 |
|
1998 |
-
#: defaults.php:
|
1999 |
msgid "Theme modified tables structure"
|
2000 |
msgstr ""
|
2001 |
|
2002 |
-
#: defaults.php:
|
2003 |
msgid ""
|
2004 |
"Theme %Theme->Name% modified the structure of these database tables: "
|
2005 |
"%TableNames%."
|
2006 |
msgstr ""
|
2007 |
|
2008 |
-
#: defaults.php:
|
2009 |
msgid "Theme deleted tables"
|
2010 |
msgstr ""
|
2011 |
|
2012 |
-
#: defaults.php:
|
2013 |
msgid ""
|
2014 |
"Theme %Theme->Name% deleted the following tables from the database: "
|
2015 |
"%TableNames%."
|
2016 |
msgstr ""
|
2017 |
|
2018 |
-
#: defaults.php:
|
2019 |
msgid "Unknown component created tables"
|
2020 |
msgstr ""
|
2021 |
|
2022 |
-
#: defaults.php:
|
2023 |
msgid ""
|
2024 |
"An unknown component created these tables in the database: %TableNames%."
|
2025 |
msgstr ""
|
2026 |
|
2027 |
-
#: defaults.php:
|
2028 |
msgid "Unknown component modified tables structure"
|
2029 |
msgstr ""
|
2030 |
|
2031 |
-
#: defaults.php:
|
2032 |
msgid ""
|
2033 |
"An unknown component modified the structure of these database tables: "
|
2034 |
"%TableNames%."
|
2035 |
msgstr ""
|
2036 |
|
2037 |
-
#: defaults.php:
|
2038 |
msgid "Unknown component deleted tables"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
-
#: defaults.php:
|
2042 |
msgid ""
|
2043 |
"An unknown component deleted the following tables from the database: "
|
2044 |
"%TableNames%."
|
2045 |
msgstr ""
|
2046 |
|
2047 |
-
#: defaults.php:
|
2048 |
msgid "MultiSite"
|
2049 |
msgstr ""
|
2050 |
|
2051 |
-
#: defaults.php:
|
2052 |
msgid "User granted Super Admin privileges"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
-
#: defaults.php:
|
2056 |
msgid "Granted Super Admin privileges to %TargetUsername%."
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: defaults.php:
|
2060 |
msgid "User revoked from Super Admin privileges"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: defaults.php:
|
2064 |
msgid "Revoked Super Admin privileges from %TargetUsername%."
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: defaults.php:
|
2068 |
msgid "Existing user added to a site"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: defaults.php:
|
2072 |
msgid ""
|
2073 |
"Added the existing user %TargetUsername% with %TargetUserRole% role to site "
|
2074 |
"%SiteName%."
|
2075 |
msgstr ""
|
2076 |
|
2077 |
-
#: defaults.php:
|
2078 |
msgid "User removed from site"
|
2079 |
msgstr ""
|
2080 |
|
2081 |
-
#: defaults.php:
|
2082 |
msgid ""
|
2083 |
"Removed the user %TargetUsername% with role %TargetUserRole% from %SiteName% "
|
2084 |
"site."
|
2085 |
msgstr ""
|
2086 |
|
2087 |
-
#: defaults.php:
|
2088 |
msgid "New network user created"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
-
#: defaults.php:
|
2092 |
msgid "Created a new network user %NewUserData->Username%."
|
2093 |
msgstr ""
|
2094 |
|
2095 |
-
#: defaults.php:
|
2096 |
msgid "The forum role of a user was changed by another WordPress user"
|
2097 |
msgstr ""
|
2098 |
|
2099 |
-
#: defaults.php:
|
2100 |
msgid ""
|
2101 |
"Change the forum role of the user %TargetUsername% from %OldRole% to %NewRole"
|
2102 |
"% by %UserChanger%."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
-
#: defaults.php:
|
2106 |
msgid "New site added on the network"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
-
#: defaults.php:
|
2110 |
msgid "Added the site %SiteName% to the network."
|
2111 |
msgstr ""
|
2112 |
|
2113 |
-
#: defaults.php:
|
2114 |
msgid "Existing site archived"
|
2115 |
msgstr ""
|
2116 |
|
2117 |
-
#: defaults.php:
|
2118 |
msgid "Archived the site %SiteName%."
|
2119 |
msgstr ""
|
2120 |
|
2121 |
-
#: defaults.php:
|
2122 |
msgid "Archived site has been unarchived"
|
2123 |
msgstr ""
|
2124 |
|
2125 |
-
#: defaults.php:
|
2126 |
msgid "Unarchived the site %SiteName%."
|
2127 |
msgstr ""
|
2128 |
|
2129 |
-
#: defaults.php:
|
2130 |
msgid "Deactivated site has been activated"
|
2131 |
msgstr ""
|
2132 |
|
2133 |
-
#: defaults.php:
|
2134 |
msgid "Activated the site %SiteName%."
|
2135 |
msgstr ""
|
2136 |
|
2137 |
-
#: defaults.php:
|
2138 |
msgid "Site has been deactivated"
|
2139 |
msgstr ""
|
2140 |
|
2141 |
-
#: defaults.php:
|
2142 |
msgid "Deactivated the site %SiteName%."
|
2143 |
msgstr ""
|
2144 |
|
2145 |
-
#: defaults.php:
|
2146 |
msgid "Existing site deleted from network"
|
2147 |
msgstr ""
|
2148 |
|
2149 |
-
#: defaults.php:
|
2150 |
msgid "Deleted the site %SiteName%."
|
2151 |
msgstr ""
|
2152 |
|
2153 |
-
#: defaults.php:
|
2154 |
msgid "Activated theme on network"
|
2155 |
msgstr ""
|
2156 |
|
2157 |
-
#: defaults.php:
|
2158 |
msgid ""
|
2159 |
"Network activated the theme %Theme->Name% installed in %Theme-"
|
2160 |
">get_template_directory%."
|
2161 |
msgstr ""
|
2162 |
|
2163 |
-
#: defaults.php:
|
2164 |
msgid "Deactivated theme from network"
|
2165 |
msgstr ""
|
2166 |
|
2167 |
-
#: defaults.php:
|
2168 |
msgid ""
|
2169 |
"Network deactivated the theme %Theme->Name% installed in %Theme-"
|
2170 |
">get_template_directory%."
|
2171 |
msgstr ""
|
2172 |
|
2173 |
-
#: defaults.php:
|
2174 |
msgid "Plugins & Themes"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
-
#: defaults.php:
|
2178 |
msgid "User installed a plugin"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
-
#: defaults.php:
|
2182 |
msgid "Installed the plugin %Plugin->Name% in %Plugin->plugin_dir_path%."
|
2183 |
msgstr ""
|
2184 |
|
2185 |
-
#: defaults.php:
|
2186 |
msgid "User activated a WordPress plugin"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
-
#: defaults.php:
|
2190 |
msgid "Activated the plugin %PluginData->Name% installed in %PluginFile%."
|
2191 |
msgstr ""
|
2192 |
|
2193 |
-
#: defaults.php:
|
2194 |
msgid "User deactivated a WordPress plugin"
|
2195 |
msgstr ""
|
2196 |
|
2197 |
-
#: defaults.php:
|
2198 |
msgid "Deactivated the plugin %PluginData->Name% installed in %PluginFile%."
|
2199 |
msgstr ""
|
2200 |
|
2201 |
-
#: defaults.php:
|
2202 |
msgid "User uninstalled a plugin"
|
2203 |
msgstr ""
|
2204 |
|
2205 |
-
#: defaults.php:
|
2206 |
msgid ""
|
2207 |
"Uninstalled the plugin %PluginData->Name% which was installed in %PluginFile"
|
2208 |
"%."
|
2209 |
msgstr ""
|
2210 |
|
2211 |
-
#: defaults.php:
|
2212 |
msgid "User upgraded a plugin"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
-
#: defaults.php:
|
2216 |
msgid "Upgraded the plugin %PluginData->Name% installed in %PluginFile%."
|
2217 |
msgstr ""
|
2218 |
|
2219 |
-
#: defaults.php:
|
2220 |
msgid "User installed a theme"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
-
#: defaults.php:
|
2224 |
msgid ""
|
2225 |
"Installed the theme \"%Theme->Name%\" in %Theme->get_template_directory%."
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: defaults.php:
|
2229 |
msgid "User activated a theme"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: defaults.php:
|
2233 |
msgid ""
|
2234 |
"Activated the theme \"%Theme->Name%\", installed in %Theme-"
|
2235 |
">get_template_directory%."
|
2236 |
msgstr ""
|
2237 |
|
2238 |
-
#: defaults.php:
|
2239 |
msgid "User uninstalled a theme"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
-
#: defaults.php:
|
2243 |
msgid ""
|
2244 |
"Deleted the theme \"%Theme->Name%\" installed in %Theme-"
|
2245 |
">get_template_directory%."
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: defaults.php:
|
2249 |
msgid "A plugin created a post"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: defaults.php:
|
2253 |
-
msgid "
|
|
|
|
|
2254 |
msgstr ""
|
2255 |
|
2256 |
-
#: defaults.php:
|
2257 |
msgid "A plugin created a page"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
-
#: defaults.php:
|
2261 |
msgid "A plugin automatically created the following page: %PostTitle%."
|
2262 |
msgstr ""
|
2263 |
|
2264 |
-
#: defaults.php:
|
2265 |
msgid "A plugin created a custom post"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
-
#: defaults.php:
|
2269 |
msgid "A plugin automatically created the following custom post: %PostTitle%."
|
2270 |
msgstr ""
|
2271 |
|
2272 |
-
#: defaults.php:
|
2273 |
msgid "A plugin deleted a post"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
-
#: defaults.php:
|
2277 |
-
msgid "
|
|
|
2278 |
msgstr ""
|
2279 |
|
2280 |
-
#: defaults.php:
|
2281 |
msgid "A plugin deleted a page"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
-
#: defaults.php:
|
2285 |
msgid "A plugin automatically deleted the following page: %PostTitle%."
|
2286 |
msgstr ""
|
2287 |
|
2288 |
-
#: defaults.php:
|
2289 |
msgid "A plugin deleted a custom post"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
-
#: defaults.php:
|
2293 |
msgid "A plugin automatically deleted the following custom post: %PostTitle%."
|
2294 |
msgstr ""
|
2295 |
|
2296 |
-
#: defaults.php:
|
2297 |
msgid "User updated a theme"
|
2298 |
msgstr ""
|
2299 |
|
2300 |
-
#: defaults.php:
|
2301 |
msgid ""
|
2302 |
"Updated the theme \"%Theme->Name%\" installed in %Theme-"
|
2303 |
">get_template_directory%."
|
2304 |
msgstr ""
|
2305 |
|
2306 |
-
#: defaults.php:
|
2307 |
msgid "User changed a file using the theme editor"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: defaults.php:
|
2311 |
msgid "Modified %File% with the Theme Editor."
|
2312 |
msgstr ""
|
2313 |
|
2314 |
-
#: defaults.php:
|
2315 |
msgid "User changed a file using the plugin editor"
|
2316 |
msgstr ""
|
2317 |
|
2318 |
-
#: defaults.php:
|
2319 |
msgid "Modified %File% with the Plugin Editor."
|
2320 |
msgstr ""
|
2321 |
|
2322 |
-
#: defaults.php:
|
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:
|
2335 |
msgid "Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%."
|
2336 |
msgstr ""
|
2337 |
|
2338 |
-
#: defaults.php:
|
2339 |
msgid "A plugin modified a custom post"
|
2340 |
msgstr ""
|
2341 |
|
2342 |
-
#: defaults.php:
|
2343 |
msgid ""
|
2344 |
"Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%."
|
2345 |
msgstr ""
|
2346 |
|
2347 |
-
#: defaults.php:
|
2348 |
msgid "System Activity"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
-
#: defaults.php:
|
2352 |
msgid "Unknown Error"
|
2353 |
msgstr ""
|
2354 |
|
2355 |
-
#: defaults.php:
|
2356 |
msgid "An unexpected error has occurred ."
|
2357 |
msgstr ""
|
2358 |
|
2359 |
-
#: defaults.php:
|
2360 |
msgid "PHP error"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
-
#: defaults.php:
|
2364 |
-
#: defaults.php:
|
2365 |
msgid "%Message%."
|
2366 |
msgstr ""
|
2367 |
|
2368 |
-
#: defaults.php:
|
2369 |
msgid "PHP warning"
|
2370 |
msgstr ""
|
2371 |
|
2372 |
-
#: defaults.php:
|
2373 |
msgid "PHP notice"
|
2374 |
msgstr ""
|
2375 |
|
2376 |
-
#: defaults.php:
|
2377 |
msgid "PHP exception"
|
2378 |
msgstr ""
|
2379 |
|
2380 |
-
#: defaults.php:
|
2381 |
msgid "PHP shutdown error"
|
2382 |
msgstr ""
|
2383 |
|
2384 |
-
#: defaults.php:
|
2385 |
msgid "Events automatically pruned by system"
|
2386 |
msgstr ""
|
2387 |
|
2388 |
-
#: defaults.php:
|
2389 |
msgid "System automatically deleted %EventCount% alert(s)."
|
2390 |
msgstr ""
|
2391 |
|
2392 |
-
#: defaults.php:
|
2393 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
2394 |
msgstr ""
|
2395 |
|
2396 |
-
#: defaults.php:
|
2397 |
msgid "%NewValue% the option \"Anyone can register\"."
|
2398 |
msgstr ""
|
2399 |
|
2400 |
-
#: defaults.php:
|
2401 |
msgid "New User Default Role changed"
|
2402 |
msgstr ""
|
2403 |
|
2404 |
-
#: defaults.php:
|
2405 |
msgid "Changed the New User Default Role from %OldRole% to %NewRole%."
|
2406 |
msgstr ""
|
2407 |
|
2408 |
-
#: defaults.php:
|
2409 |
msgid "WordPress Administrator Notification email changed"
|
2410 |
msgstr ""
|
2411 |
|
2412 |
-
#: defaults.php:
|
2413 |
msgid ""
|
2414 |
"Changed the WordPress administrator notifications email address from "
|
2415 |
"%OldEmail% to %NewEmail%."
|
2416 |
msgstr ""
|
2417 |
|
2418 |
-
#: defaults.php:
|
2419 |
msgid "WordPress was updated"
|
2420 |
msgstr ""
|
2421 |
|
2422 |
-
#: defaults.php:
|
2423 |
msgid "Updated WordPress from version %OldVersion% to %NewVersion%."
|
2424 |
msgstr ""
|
2425 |
|
2426 |
-
#: defaults.php:
|
2427 |
msgid "User changes the WordPress Permalinks"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
-
#: defaults.php:
|
2431 |
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%."
|
2432 |
msgstr ""
|
2433 |
|
2434 |
-
#: defaults.php:
|
2435 |
msgid "User requests non-existing pages (404 Error Pages)"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
-
#: defaults.php:
|
2439 |
msgid ""
|
2440 |
"Has requested a non existing page (404 Error Pages) %Attempts% %Msg%. "
|
2441 |
-
"%LinkFile
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: defaults.php:
|
2445 |
msgid "Website Visitor User requests non-existing pages (404 Error Pages)"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: defaults.php:
|
2449 |
msgid ""
|
2450 |
"Website Visitor Has requested a non existing page (404 Error Pages) %Attempts"
|
2451 |
-
"% %Msg%. %LinkFile
|
2452 |
msgstr ""
|
2453 |
|
2454 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2455 |
msgid "Advertising Add-ons."
|
2456 |
msgstr ""
|
2457 |
|
2458 |
-
#: defaults.php:
|
2459 |
msgid "%PromoName% %PromoMessage%"
|
2460 |
msgstr ""
|
2461 |
|
2462 |
-
#: defaults.php:
|
2463 |
msgid "Menus"
|
2464 |
msgstr ""
|
2465 |
|
2466 |
-
#: defaults.php:
|
2467 |
msgid "User created new menu"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
-
#: defaults.php:
|
2471 |
msgid "Created a new menu called %MenuName%."
|
2472 |
msgstr ""
|
2473 |
|
2474 |
-
#: defaults.php:
|
2475 |
msgid "User added content to a menu"
|
2476 |
msgstr ""
|
2477 |
|
2478 |
-
#: defaults.php:
|
2479 |
msgid "Added the %ContentType% called %ContentName% to menu %MenuName%."
|
2480 |
msgstr ""
|
2481 |
|
2482 |
-
#: defaults.php:
|
2483 |
msgid "User removed content from a menu"
|
2484 |
msgstr ""
|
2485 |
|
2486 |
-
#: defaults.php:
|
2487 |
msgid ""
|
2488 |
"Removed the %ContentType% called %ContentName% from the menu %MenuName%."
|
2489 |
msgstr ""
|
2490 |
|
2491 |
-
#: defaults.php:
|
2492 |
msgid "User deleted menu"
|
2493 |
msgstr ""
|
2494 |
|
2495 |
-
#: defaults.php:
|
2496 |
msgid "Deleted the menu %MenuName%."
|
2497 |
msgstr ""
|
2498 |
|
2499 |
-
#: defaults.php:
|
2500 |
msgid "User changed menu setting"
|
2501 |
msgstr ""
|
2502 |
|
2503 |
-
#: defaults.php:
|
2504 |
msgid "%Status% the menu setting %MenuSetting% in %MenuName%."
|
2505 |
msgstr ""
|
2506 |
|
2507 |
-
#: defaults.php:
|
2508 |
msgid "User modified content in a menu"
|
2509 |
msgstr ""
|
2510 |
|
2511 |
-
#: defaults.php:
|
2512 |
msgid "Modified the %ContentType% called %ContentName% in menu %MenuName%."
|
2513 |
msgstr ""
|
2514 |
|
2515 |
-
#: defaults.php:
|
2516 |
msgid "User changed name of a menu"
|
2517 |
msgstr ""
|
2518 |
|
2519 |
-
#: defaults.php:
|
2520 |
msgid "Changed the name of menu %OldMenuName% to %NewMenuName%."
|
2521 |
msgstr ""
|
2522 |
|
2523 |
-
#: defaults.php:
|
2524 |
msgid "User changed order of the objects in a menu"
|
2525 |
msgstr ""
|
2526 |
|
2527 |
-
#: defaults.php:
|
2528 |
msgid "Changed the order of the %ItemName% in menu %MenuName%."
|
2529 |
msgstr ""
|
2530 |
|
2531 |
-
#: defaults.php:
|
2532 |
msgid "User moved objects as a sub-item"
|
2533 |
msgstr ""
|
2534 |
|
2535 |
-
#: defaults.php:
|
2536 |
msgid "Moved %ItemName% as a sub-item of %ParentName% in menu %MenuName%."
|
2537 |
msgstr ""
|
2538 |
|
2539 |
-
#: defaults.php:
|
2540 |
msgid "Widgets"
|
2541 |
msgstr ""
|
2542 |
|
2543 |
-
#: defaults.php:
|
2544 |
msgid "User added a new widget"
|
2545 |
msgstr ""
|
2546 |
|
2547 |
-
#: defaults.php:
|
2548 |
msgid "Added a new %WidgetName% widget in %Sidebar%."
|
2549 |
msgstr ""
|
2550 |
|
2551 |
-
#: defaults.php:
|
2552 |
msgid "User modified a widget"
|
2553 |
msgstr ""
|
2554 |
|
2555 |
-
#: defaults.php:
|
2556 |
msgid "Modified the %WidgetName% widget in %Sidebar%."
|
2557 |
msgstr ""
|
2558 |
|
2559 |
-
#: defaults.php:
|
2560 |
msgid "User deleted widget"
|
2561 |
msgstr ""
|
2562 |
|
2563 |
-
#: defaults.php:
|
2564 |
msgid "Deleted the %WidgetName% widget from %Sidebar%."
|
2565 |
msgstr ""
|
2566 |
|
2567 |
-
#: defaults.php:
|
2568 |
msgid "User moved widget"
|
2569 |
msgstr ""
|
2570 |
|
2571 |
-
#: defaults.php:
|
2572 |
msgid "Moved the %WidgetName% widget from %OldSidebar% to %NewSidebar%."
|
2573 |
msgstr ""
|
2574 |
|
2575 |
-
#: defaults.php:
|
2576 |
msgid "User changed widget position"
|
2577 |
msgstr ""
|
2578 |
|
2579 |
-
#: defaults.php:
|
2580 |
msgid "Changed the position of the widget %WidgetName% in sidebar %Sidebar%."
|
2581 |
msgstr ""
|
2582 |
|
2583 |
-
#: defaults.php:
|
2584 |
msgid "Site Settings"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
-
#: defaults.php:
|
2588 |
msgid ""
|
2589 |
"Enabled/Disabled the option Discourage search engines from indexing this site"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
-
#: defaults.php:
|
2593 |
msgid "%Status% the option Discourage search engines from indexing this site."
|
2594 |
msgstr ""
|
2595 |
|
2596 |
-
#: defaults.php:
|
2597 |
msgid "Enabled/Disabled comments on all the website"
|
2598 |
msgstr ""
|
2599 |
|
2600 |
-
#: defaults.php:
|
2601 |
msgid "%Status% comments on all the website."
|
2602 |
msgstr ""
|
2603 |
|
2604 |
-
#: defaults.php:
|
2605 |
msgid "Enabled/Disabled the option Comment author must fill out name and email"
|
2606 |
msgstr ""
|
2607 |
|
2608 |
-
#: defaults.php:
|
2609 |
msgid "%Status% the option Comment author must fill out name and email."
|
2610 |
msgstr ""
|
2611 |
|
2612 |
-
#: defaults.php:
|
2613 |
msgid ""
|
2614 |
"Enabled/Disabled the option Users must be logged in and registered to comment"
|
2615 |
msgstr ""
|
2616 |
|
2617 |
-
#: defaults.php:
|
2618 |
msgid "%Status% the option Users must be logged in and registered to comment."
|
2619 |
msgstr ""
|
2620 |
|
2621 |
-
#: defaults.php:
|
2622 |
msgid "Enabled/Disabled the option to automatically close comments"
|
2623 |
msgstr ""
|
2624 |
|
2625 |
-
#: defaults.php:
|
2626 |
msgid "%Status% the option to automatically close comments after %Value% days."
|
2627 |
msgstr ""
|
2628 |
|
2629 |
-
#: defaults.php:
|
2630 |
msgid "Changed the value of the option Automatically close comments"
|
2631 |
msgstr ""
|
2632 |
|
2633 |
-
#: defaults.php:
|
2634 |
msgid ""
|
2635 |
"Changed the value of the option Automatically close comments from %OldValue% "
|
2636 |
"to %NewValue% days."
|
2637 |
msgstr ""
|
2638 |
|
2639 |
-
#: defaults.php:
|
2640 |
msgid "Enabled/Disabled the option for comments to be manually approved"
|
2641 |
msgstr ""
|
2642 |
|
2643 |
-
#: defaults.php:
|
2644 |
msgid "%Status% the option for comments to be manually approved."
|
2645 |
msgstr ""
|
2646 |
|
2647 |
-
#: defaults.php:
|
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:
|
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:
|
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:
|
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:
|
2671 |
msgid "Modified the list of keywords for comments moderation"
|
2672 |
msgstr ""
|
2673 |
|
2674 |
-
#: defaults.php:
|
2675 |
msgid "Modified the list of keywords for comments moderation."
|
2676 |
msgstr ""
|
2677 |
|
2678 |
-
#: defaults.php:
|
2679 |
msgid "Modified the list of keywords for comments blacklisting"
|
2680 |
msgstr ""
|
2681 |
|
2682 |
-
#: defaults.php:
|
2683 |
msgid "Modified the list of keywords for comments blacklisting."
|
2684 |
msgstr ""
|
2685 |
|
2686 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2687 |
msgid "Users Profiles & Activity"
|
2688 |
msgstr ""
|
2689 |
|
2690 |
-
#: defaults.php:
|
2691 |
msgid "Other User Activity"
|
2692 |
msgstr ""
|
2693 |
|
2694 |
-
#: defaults.php:
|
2695 |
msgid "User logged in"
|
2696 |
msgstr ""
|
2697 |
|
2698 |
-
#: defaults.php:
|
2699 |
msgid "Successfully logged in."
|
2700 |
msgstr ""
|
2701 |
|
2702 |
-
#: defaults.php:
|
2703 |
msgid "User logged out"
|
2704 |
msgstr ""
|
2705 |
|
2706 |
-
#: defaults.php:
|
2707 |
msgid "Successfully logged out."
|
2708 |
msgstr ""
|
2709 |
|
2710 |
-
#: defaults.php:
|
2711 |
msgid "Login failed"
|
2712 |
msgstr ""
|
2713 |
|
2714 |
-
#: defaults.php:
|
2715 |
msgid "%Attempts% failed login(s) detected."
|
2716 |
msgstr ""
|
2717 |
|
2718 |
-
#: defaults.php:
|
2719 |
msgid "Login failed / non existing user"
|
2720 |
msgstr ""
|
2721 |
|
2722 |
-
#: defaults.php:
|
2723 |
-
msgid "
|
|
|
2724 |
msgstr ""
|
2725 |
|
2726 |
-
#: defaults.php:
|
2727 |
msgid "Login blocked"
|
2728 |
msgstr ""
|
2729 |
|
2730 |
-
#: defaults.php:
|
2731 |
msgid ""
|
2732 |
"Blocked from logging in because the same WordPress user is logged in from "
|
2733 |
"%ClientIP%."
|
2734 |
msgstr ""
|
2735 |
|
2736 |
-
#: defaults.php:
|
2737 |
msgid "User logged in with existing session(s)"
|
2738 |
msgstr ""
|
2739 |
|
2740 |
-
#: defaults.php:
|
2741 |
msgid ""
|
2742 |
"Successfully logged in. Another session from %IPAddress% for this user "
|
2743 |
"already exist."
|
2744 |
msgstr ""
|
2745 |
|
2746 |
-
#: defaults.php:
|
2747 |
msgid "User logged out all other sessions with the same username"
|
2748 |
msgstr ""
|
2749 |
|
2750 |
-
#: defaults.php:
|
2751 |
msgid "Logged out all other sessions with the same username."
|
2752 |
msgstr ""
|
2753 |
|
2754 |
-
#: defaults.php:
|
2755 |
msgid "User session destroyed and logged out."
|
2756 |
msgstr ""
|
2757 |
|
2758 |
-
#: defaults.php:
|
2759 |
msgid "Logged out session %TargetSessionID% which belonged to %TargetUserName%"
|
2760 |
msgstr ""
|
2761 |
|
2762 |
-
#: defaults.php:
|
2763 |
msgid "User uploaded file from Uploads directory"
|
2764 |
msgstr ""
|
2765 |
|
2766 |
-
#: defaults.php:
|
2767 |
msgid "Uploaded the file %FileName% in %FilePath%."
|
2768 |
msgstr ""
|
2769 |
|
2770 |
-
#: defaults.php:
|
2771 |
msgid "User deleted file from Uploads directory"
|
2772 |
msgstr ""
|
2773 |
|
2774 |
-
#: defaults.php:
|
2775 |
msgid "Deleted the file %FileName% from %FilePath%."
|
2776 |
msgstr ""
|
2777 |
|
2778 |
-
#: defaults.php:
|
2779 |
msgid "User Profiles"
|
2780 |
msgstr ""
|
2781 |
|
2782 |
-
#: defaults.php:
|
2783 |
msgid "New user was created on WordPress"
|
2784 |
msgstr ""
|
2785 |
|
2786 |
-
#: defaults.php:
|
2787 |
msgid ""
|
2788 |
"A new user %NewUserData->Username% was created with role of %NewUserData-"
|
2789 |
">Roles%."
|
2790 |
msgstr ""
|
2791 |
|
2792 |
-
#: defaults.php:
|
2793 |
msgid "User created another WordPress user"
|
2794 |
msgstr ""
|
2795 |
|
2796 |
-
#: defaults.php:
|
2797 |
msgid ""
|
2798 |
"%UserChanger% created a new user %NewUserData->Username% with the role of "
|
2799 |
"%NewUserData->Roles%."
|
2800 |
msgstr ""
|
2801 |
|
2802 |
-
#: defaults.php:
|
2803 |
msgid "The role of a user was changed by another WordPress user"
|
2804 |
msgstr ""
|
2805 |
|
2806 |
-
#: defaults.php:
|
2807 |
msgid ""
|
2808 |
-
"Changed the role of the user %TargetUsername% from %OldRole% to %NewRole
|
|
|
2809 |
msgstr ""
|
2810 |
|
2811 |
-
#: defaults.php:
|
2812 |
msgid "User has changed his or her password"
|
2813 |
msgstr ""
|
2814 |
|
2815 |
-
#: defaults.php:
|
2816 |
msgid "Changed the password."
|
2817 |
msgstr ""
|
2818 |
|
2819 |
-
#: defaults.php:
|
2820 |
msgid "User changed another user's password"
|
2821 |
msgstr ""
|
2822 |
|
2823 |
-
#: defaults.php:
|
2824 |
msgid ""
|
2825 |
"Changed the password for the user %TargetUserData->Username% with the role "
|
2826 |
"of %TargetUserData->Roles%."
|
2827 |
msgstr ""
|
2828 |
|
2829 |
-
#: defaults.php:
|
2830 |
msgid "User changed his or her email address"
|
2831 |
msgstr ""
|
2832 |
|
2833 |
-
#: defaults.php:
|
2834 |
msgid "Changed the email address from %OldEmail% to %NewEmail%."
|
2835 |
msgstr ""
|
2836 |
|
2837 |
-
#: defaults.php:
|
2838 |
msgid "User changed another user's email address"
|
2839 |
msgstr ""
|
2840 |
|
2841 |
-
#: defaults.php:
|
2842 |
msgid ""
|
2843 |
"Changed the email address of the user %TargetUsername% from %OldEmail% to "
|
2844 |
"%NewEmail%."
|
2845 |
msgstr ""
|
2846 |
|
2847 |
-
#: defaults.php:
|
2848 |
msgid "User was deleted by another user"
|
2849 |
msgstr ""
|
2850 |
|
2851 |
-
#: defaults.php:
|
2852 |
msgid ""
|
2853 |
"Deleted the user %TargetUserData->Username% with the role of %TargetUserData-"
|
2854 |
">Roles%."
|
2855 |
msgstr ""
|
2856 |
|
2857 |
-
#: defaults.php:
|
2858 |
msgid "User opened the profile page of another user"
|
2859 |
msgstr ""
|
2860 |
|
2861 |
-
#: defaults.php:
|
2862 |
msgid "%UserChanger% opened the profile page of the user %TargetUsername%."
|
2863 |
msgstr ""
|
2864 |
|
2865 |
-
#: defaults.php:
|
2866 |
msgid "User updated a custom field value for a user"
|
2867 |
msgstr ""
|
2868 |
|
2869 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2870 |
msgid ""
|
2871 |
-
"Changed the
|
2872 |
-
"
|
2873 |
msgstr ""
|
2874 |
|
2875 |
-
#: defaults.php:
|
2876 |
-
msgid "User
|
2877 |
msgstr ""
|
2878 |
|
2879 |
-
#: defaults.php:
|
2880 |
msgid ""
|
2881 |
-
"
|
2882 |
-
"
|
2883 |
msgstr ""
|
2884 |
|
2885 |
-
#: defaults.php:
|
2886 |
msgid "Third Party Support"
|
2887 |
msgstr ""
|
2888 |
|
2889 |
-
#: defaults.php:
|
2890 |
msgid "BBPress Forum"
|
2891 |
msgstr ""
|
2892 |
|
2893 |
-
#: defaults.php:
|
2894 |
msgid "User created new forum"
|
2895 |
msgstr ""
|
2896 |
|
2897 |
-
#: defaults.php:
|
2898 |
msgid ""
|
2899 |
"Created new forum %ForumName%. Forum URL is %ForumURL%. %EditorLinkForum%."
|
2900 |
msgstr ""
|
2901 |
|
2902 |
-
#: defaults.php:
|
2903 |
msgid "User changed status of a forum"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
-
#: defaults.php:
|
2907 |
msgid ""
|
2908 |
"Changed the status of the forum %ForumName% from %OldStatus% to %NewStatus%. "
|
2909 |
"%EditorLinkForum%."
|
2910 |
msgstr ""
|
2911 |
|
2912 |
-
#: defaults.php:
|
2913 |
msgid "User changed visibility of a forum"
|
2914 |
msgstr ""
|
2915 |
|
2916 |
-
#: defaults.php:
|
2917 |
msgid ""
|
2918 |
"Changed the visibility of the forum %ForumName% from %OldVisibility% to "
|
2919 |
"%NewVisibility%. %EditorLinkForum%."
|
2920 |
msgstr ""
|
2921 |
|
2922 |
-
#: defaults.php:
|
2923 |
msgid "User changed the URL of a forum"
|
2924 |
msgstr ""
|
2925 |
|
2926 |
-
#: defaults.php:
|
2927 |
msgid ""
|
2928 |
"Changed the URL of the forum %ForumName% from %OldUrl% to %NewUrl%. "
|
2929 |
"%EditorLinkForum%."
|
2930 |
msgstr ""
|
2931 |
|
2932 |
-
#: defaults.php:
|
2933 |
msgid "User changed order of a forum"
|
2934 |
msgstr ""
|
2935 |
|
2936 |
-
#: defaults.php:
|
2937 |
msgid ""
|
2938 |
"Changed the order of the forum %ForumName% from %OldOrder% to %NewOrder%. "
|
2939 |
"%EditorLinkForum%."
|
2940 |
msgstr ""
|
2941 |
|
2942 |
-
#: defaults.php:
|
2943 |
msgid "User moved forum to trash"
|
2944 |
msgstr ""
|
2945 |
|
2946 |
-
#: defaults.php:
|
2947 |
msgid "Moved the forum %ForumName% to trash."
|
2948 |
msgstr ""
|
2949 |
|
2950 |
-
#: defaults.php:
|
2951 |
msgid "User permanently deleted forum"
|
2952 |
msgstr ""
|
2953 |
|
2954 |
-
#: defaults.php:
|
2955 |
msgid "Permanently deleted the forum %ForumName%."
|
2956 |
msgstr ""
|
2957 |
|
2958 |
-
#: defaults.php:
|
2959 |
msgid "User restored forum from trash"
|
2960 |
msgstr ""
|
2961 |
|
2962 |
-
#: defaults.php:
|
2963 |
msgid "Restored the forum %ForumName% from trash. %EditorLinkForum%."
|
2964 |
msgstr ""
|
2965 |
|
2966 |
-
#: defaults.php:
|
2967 |
msgid "User changed the parent of a forum"
|
2968 |
msgstr ""
|
2969 |
|
2970 |
-
#: defaults.php:
|
2971 |
msgid ""
|
2972 |
"Changed the parent of the forum %ForumName% from %OldParent% to %NewParent%. "
|
2973 |
"%EditorLinkForum%."
|
2974 |
msgstr ""
|
2975 |
|
2976 |
-
#: defaults.php:
|
2977 |
msgid "User changed forum's role"
|
2978 |
msgstr ""
|
2979 |
|
2980 |
-
#: defaults.php:
|
2981 |
msgid "Changed the forum's auto role from %OldRole% to %NewRole%."
|
2982 |
msgstr ""
|
2983 |
|
2984 |
-
#: defaults.php:
|
2985 |
msgid "User changed option of a forum"
|
2986 |
msgstr ""
|
2987 |
|
2988 |
-
#: defaults.php:
|
2989 |
msgid "%Status% the option for anonymous posting on forum."
|
2990 |
msgstr ""
|
2991 |
|
2992 |
-
#: defaults.php:
|
2993 |
msgid "User changed type of a forum"
|
2994 |
msgstr ""
|
2995 |
|
2996 |
-
#: defaults.php:
|
2997 |
msgid ""
|
2998 |
"Changed the type of the forum %ForumName% from %OldType% to %NewType%. "
|
2999 |
"%EditorLinkForum%."
|
3000 |
msgstr ""
|
3001 |
|
3002 |
-
#: defaults.php:
|
3003 |
msgid "User changed time to disallow post editing"
|
3004 |
msgstr ""
|
3005 |
|
3006 |
-
#: defaults.php:
|
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:
|
3013 |
msgid "User changed the forum setting posting throttle time"
|
3014 |
msgstr ""
|
3015 |
|
3016 |
-
#: defaults.php:
|
3017 |
msgid ""
|
3018 |
"Changed the posting throttle time from %OldTime% to %NewTime% seconds in the "
|
3019 |
"forums."
|
3020 |
msgstr ""
|
3021 |
|
3022 |
-
#: defaults.php:
|
3023 |
msgid "User created new topic"
|
3024 |
msgstr ""
|
3025 |
|
3026 |
-
#: defaults.php:
|
3027 |
msgid "Created a new topic %TopicName%. %EditorLinkTopic%."
|
3028 |
msgstr ""
|
3029 |
|
3030 |
-
#: defaults.php:
|
3031 |
msgid "User changed status of a topic"
|
3032 |
msgstr ""
|
3033 |
|
3034 |
-
#: defaults.php:
|
3035 |
msgid ""
|
3036 |
"Changed the status of the topic %TopicName% from %OldStatus% to %NewStatus%. "
|
3037 |
"%EditorLinkTopic%."
|
3038 |
msgstr ""
|
3039 |
|
3040 |
-
#: defaults.php:
|
3041 |
msgid "User changed type of a topic"
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: defaults.php:
|
3045 |
msgid ""
|
3046 |
"Changed the type of the topic %TopicName% from %OldType% to %NewType%. "
|
3047 |
"%EditorLinkTopic%."
|
3048 |
msgstr ""
|
3049 |
|
3050 |
-
#: defaults.php:
|
3051 |
msgid "User changed URL of a topic"
|
3052 |
msgstr ""
|
3053 |
|
3054 |
-
#: defaults.php:
|
3055 |
msgid "Changed the URL of the topic %TopicName% from %OldUrl% to %NewUrl%."
|
3056 |
msgstr ""
|
3057 |
|
3058 |
-
#: defaults.php:
|
3059 |
msgid "User changed the forum of a topic"
|
3060 |
msgstr ""
|
3061 |
|
3062 |
-
#: defaults.php:
|
3063 |
msgid ""
|
3064 |
"Changed the forum of the topic %TopicName% from %OldForum% to %NewForum%. "
|
3065 |
"%EditorLinkTopic%."
|
3066 |
msgstr ""
|
3067 |
|
3068 |
-
#: defaults.php:
|
3069 |
msgid "User moved topic to trash"
|
3070 |
msgstr ""
|
3071 |
|
3072 |
-
#: defaults.php:
|
3073 |
msgid "Moved the topic %TopicName% to trash."
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: defaults.php:
|
3077 |
msgid "User permanently deleted topic"
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: defaults.php:
|
3081 |
msgid "Permanently deleted the topic %TopicName%."
|
3082 |
msgstr ""
|
3083 |
|
3084 |
-
#: defaults.php:
|
3085 |
msgid "User restored topic from trash"
|
3086 |
msgstr ""
|
3087 |
|
3088 |
-
#: defaults.php:
|
3089 |
msgid "Restored the topic %TopicName% from trash. %EditorLinkTopic%."
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#: defaults.php:
|
3093 |
msgid "User changed visibility of a topic"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
-
#: defaults.php:
|
3097 |
msgid ""
|
3098 |
"Changed the visibility of the topic %TopicName% from %OldVisibility% to "
|
3099 |
"%NewVisibility%. %EditorLinkTopic%."
|
3100 |
msgstr ""
|
3101 |
|
3102 |
-
#: defaults.php:
|
3103 |
msgid "WooCommerce"
|
3104 |
msgstr ""
|
3105 |
|
3106 |
-
#: defaults.php:
|
3107 |
msgid "User created a new product"
|
3108 |
msgstr ""
|
3109 |
|
3110 |
-
#: defaults.php:
|
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:
|
3117 |
msgid "User published a product"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
-
#: defaults.php:
|
3121 |
msgid ""
|
3122 |
"Published a product called %ProductTitle%. Product URL is %ProductUrl%. View "
|
3123 |
"the product: %EditorLinkProduct%."
|
3124 |
msgstr ""
|
3125 |
|
3126 |
-
#: defaults.php:
|
3127 |
msgid "User created a new product category"
|
3128 |
msgstr ""
|
3129 |
|
3130 |
-
#: defaults.php:
|
3131 |
msgid ""
|
3132 |
"Created a new product category called %CategoryName% in WooCommerce. Product "
|
3133 |
"category slug is %Slug%."
|
3134 |
msgstr ""
|
3135 |
|
3136 |
-
#: defaults.php:
|
3137 |
msgid "User changed the category of a product"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
-
#: defaults.php:
|
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:
|
3147 |
msgid "User modified the short description of a product"
|
3148 |
msgstr ""
|
3149 |
|
3150 |
-
#: defaults.php:
|
3151 |
msgid ""
|
3152 |
-
"Modified the short description of the product %ProductTitle
|
3153 |
-
"product: %EditorLinkProduct%."
|
3154 |
msgstr ""
|
3155 |
|
3156 |
-
#: defaults.php:
|
3157 |
msgid "User modified the text of a product"
|
3158 |
msgstr ""
|
3159 |
|
3160 |
-
#: defaults.php:
|
3161 |
msgid ""
|
3162 |
"Modified the text of the product %ProductTitle%. View the product: "
|
3163 |
"%EditorLinkProduct%."
|
3164 |
msgstr ""
|
3165 |
|
3166 |
-
#: defaults.php:
|
3167 |
msgid "User changed the URL of a product"
|
3168 |
msgstr ""
|
3169 |
|
3170 |
-
#: defaults.php:
|
3171 |
msgid ""
|
3172 |
-
"Changed the URL of the product %ProductTitle%
|
3173 |
-
"
|
3174 |
msgstr ""
|
3175 |
|
3176 |
-
#: defaults.php:
|
3177 |
msgid "User changed the Product Data of a product"
|
3178 |
msgstr ""
|
3179 |
|
3180 |
-
#: defaults.php:
|
3181 |
msgid ""
|
3182 |
"Changed the Product Data of the product %ProductTitle%. View the product: "
|
3183 |
"%EditorLinkProduct%."
|
3184 |
msgstr ""
|
3185 |
|
3186 |
-
#: defaults.php:
|
3187 |
msgid "User changed the date of a product"
|
3188 |
msgstr ""
|
3189 |
|
3190 |
-
#: defaults.php:
|
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:
|
3197 |
msgid "User changed the visibility of a product"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
-
#: defaults.php:
|
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:
|
3207 |
msgid "User modified the published product"
|
3208 |
msgstr ""
|
3209 |
|
3210 |
-
#: defaults.php:
|
3211 |
msgid ""
|
3212 |
"Modified the published product %ProductTitle%. Product URL is %ProductUrl%. "
|
3213 |
"View the product: %EditorLinkProduct%."
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: defaults.php:
|
3217 |
msgid "User modified the draft product"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
-
#: defaults.php:
|
3221 |
msgid ""
|
3222 |
"Modified the draft product %ProductTitle%. View the product: "
|
3223 |
"%EditorLinkProduct%."
|
3224 |
msgstr ""
|
3225 |
|
3226 |
-
#: defaults.php:
|
3227 |
msgid "User moved a product to trash"
|
3228 |
msgstr ""
|
3229 |
|
3230 |
-
#: defaults.php:
|
3231 |
msgid ""
|
3232 |
"Moved the product %ProductTitle% to trash. Product URL was %ProductUrl%."
|
3233 |
msgstr ""
|
3234 |
|
3235 |
-
#: defaults.php:
|
3236 |
msgid "User permanently deleted a product"
|
3237 |
msgstr ""
|
3238 |
|
3239 |
-
#: defaults.php:
|
3240 |
msgid "Permanently deleted the product %ProductTitle%."
|
3241 |
msgstr ""
|
3242 |
|
3243 |
-
#: defaults.php:
|
3244 |
msgid "User restored a product from the trash"
|
3245 |
msgstr ""
|
3246 |
|
3247 |
-
#: defaults.php:
|
3248 |
msgid ""
|
3249 |
"Product %ProductTitle% has been restored from trash. View product: "
|
3250 |
"%EditorLinkProduct%."
|
3251 |
msgstr ""
|
3252 |
|
3253 |
-
#: defaults.php:
|
3254 |
msgid "User changed status of a product"
|
3255 |
msgstr ""
|
3256 |
|
3257 |
-
#: defaults.php:
|
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:
|
3264 |
msgid "User changed type of a price"
|
3265 |
msgstr ""
|
3266 |
|
3267 |
-
#: defaults.php:
|
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:
|
3274 |
msgid "User changed the SKU of a product"
|
3275 |
msgstr ""
|
3276 |
|
3277 |
-
#: defaults.php:
|
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:
|
3284 |
msgid "User changed the stock status of a product"
|
3285 |
msgstr ""
|
3286 |
|
3287 |
-
#: defaults.php:
|
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:
|
3294 |
msgid "User changed the stock quantity"
|
3295 |
msgstr ""
|
3296 |
|
3297 |
-
#: defaults.php:
|
3298 |
msgid ""
|
3299 |
-
"Changed the stock quantity from %OldValue% to
|
3300 |
-
"%EditorLinkProduct%"
|
3301 |
msgstr ""
|
3302 |
|
3303 |
-
#: defaults.php:
|
3304 |
msgid "User set a product type"
|
3305 |
msgstr ""
|
3306 |
|
3307 |
-
#: defaults.php:
|
3308 |
msgid ""
|
3309 |
"Set the product %ProductTitle% as %Type%. View the product: "
|
3310 |
"%EditorLinkProduct%."
|
3311 |
msgstr ""
|
3312 |
|
3313 |
-
#: defaults.php:
|
3314 |
msgid "User changed the weight of a product"
|
3315 |
msgstr ""
|
3316 |
|
3317 |
-
#: defaults.php:
|
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:
|
3324 |
msgid "User changed the dimensions of a product"
|
3325 |
msgstr ""
|
3326 |
|
3327 |
-
#: defaults.php:
|
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:
|
3334 |
msgid "User added the Downloadable File to a product"
|
3335 |
msgstr ""
|
3336 |
|
3337 |
-
#: defaults.php:
|
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:
|
3344 |
msgid "User Removed the Downloadable File from a product"
|
3345 |
msgstr ""
|
3346 |
|
3347 |
-
#: defaults.php:
|
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:
|
3354 |
msgid "User changed the name of a Downloadable File in a product"
|
3355 |
msgstr ""
|
3356 |
|
3357 |
-
#: defaults.php:
|
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:
|
3364 |
msgid "User changed the URL of the Downloadable File in a product"
|
3365 |
msgstr ""
|
3366 |
|
3367 |
-
#: defaults.php:
|
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:
|
3374 |
msgid "User changed the Weight Unit"
|
3375 |
msgstr ""
|
3376 |
|
3377 |
-
#: defaults.php:
|
3378 |
msgid "Changed the Weight Unit from %OldUnit% to %NewUnit% in WooCommerce."
|
3379 |
msgstr ""
|
3380 |
|
3381 |
-
#: defaults.php:
|
3382 |
msgid "User changed the Dimensions Unit"
|
3383 |
msgstr ""
|
3384 |
|
3385 |
-
#: defaults.php:
|
3386 |
msgid "Changed the Dimensions Unit from %OldUnit% to %NewUnit% in WooCommerce."
|
3387 |
msgstr ""
|
3388 |
|
3389 |
-
#: defaults.php:
|
3390 |
msgid "User changed the Base Location"
|
3391 |
msgstr ""
|
3392 |
|
3393 |
-
#: defaults.php:
|
3394 |
msgid ""
|
3395 |
"Changed the Base Location from %OldLocation% to %NewLocation% in WooCommerce."
|
3396 |
msgstr ""
|
3397 |
|
3398 |
-
#: defaults.php:
|
3399 |
msgid "User Enabled/Disabled taxes"
|
3400 |
msgstr ""
|
3401 |
|
3402 |
-
#: defaults.php:
|
3403 |
msgid "%Status% taxes in the WooCommerce store."
|
3404 |
msgstr ""
|
3405 |
|
3406 |
-
#: defaults.php:
|
3407 |
msgid "User changed the currency"
|
3408 |
msgstr ""
|
3409 |
|
3410 |
-
#: defaults.php:
|
3411 |
msgid ""
|
3412 |
"Changed the currency from %OldCurrency% to %NewCurrency% in WooCommerce."
|
3413 |
msgstr ""
|
3414 |
|
3415 |
-
#: defaults.php:
|
3416 |
msgid "User Enabled/Disabled the use of coupons during checkout"
|
3417 |
msgstr ""
|
3418 |
|
3419 |
-
#: defaults.php:
|
3420 |
msgid "%Status% the use of coupons during checkout in WooCommerce."
|
3421 |
msgstr ""
|
3422 |
|
3423 |
-
#: defaults.php:
|
3424 |
msgid "User Enabled/Disabled guest checkout"
|
3425 |
msgstr ""
|
3426 |
|
3427 |
-
#: defaults.php:
|
3428 |
msgid "%Status% guest checkout in WooCommerce."
|
3429 |
msgstr ""
|
3430 |
|
3431 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3432 |
#, php-format
|
3433 |
msgid ""
|
3434 |
"You are using a version of PHP that is older than %s, which is no longer "
|
3435 |
-
"supported
|
|
|
|
|
|
|
|
|
|
|
3436 |
"\">plugins@wpwhitesecurity.com</a> to help you switch the version of PHP you "
|
3437 |
"are using."
|
3438 |
msgstr ""
|
3 |
msgstr ""
|
4 |
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
5 |
"Project-Id-Version: WP Security Audit Log\n"
|
6 |
+
"POT-Creation-Date: 2018-05-02 11:30+0100\n"
|
7 |
+
"PO-Revision-Date: 2018-05-02 11:30+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.7\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"
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
|
24 |
+
#: classes/AuditLogListView.php:80
|
25 |
msgid "No events so far."
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: classes/AuditLogListView.php:98
|
|
|
|
|
|
|
|
|
29 |
msgid "Show "
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: classes/AuditLogListView.php:108
|
33 |
msgid " Items"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: classes/AuditLogListView.php:123 classes/Views/AuditLog.php:221
|
37 |
+
#: classes/Views/AuditLog.php:244
|
38 |
msgid "All Sites"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: classes/AuditLogListView.php:147
|
42 |
msgid "Live Database"
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: classes/AuditLogListView.php:150
|
46 |
msgid "Archive Database"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: classes/AuditLogListView.php:203 classes/WidgetManager.php:67
|
50 |
msgid "User"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: classes/AuditLogListView.php:205 classes/Views/Settings.php:650
|
54 |
msgid "Username"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: classes/AuditLogListView.php:208 classes/AuditLogListView.php:225
|
58 |
+
msgid "Alert ID"
|
|
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: classes/AuditLogListView.php:209 classes/AuditLogListView.php:228
|
62 |
+
msgid "Severity"
|
|
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: classes/AuditLogListView.php:210 classes/AuditLogListView.php:231
|
66 |
msgid "Date"
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: classes/AuditLogListView.php:212 classes/AuditLogListView.php:237
|
70 |
msgid "Source IP"
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: classes/AuditLogListView.php:215 classes/AuditLogListView.php:240
|
74 |
msgid "Site"
|
75 |
msgstr ""
|
76 |
|
77 |
+
#: classes/AuditLogListView.php:217 classes/AuditLogListView.php:243
|
78 |
msgid "Message"
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: classes/AuditLogListView.php:295
|
82 |
msgid "Click to toggle."
|
83 |
msgstr ""
|
84 |
|
85 |
+
#: classes/AuditLogListView.php:314
|
86 |
msgid "Disable this type of alerts."
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: classes/AuditLogListView.php:322
|
90 |
msgid "Unknown error code."
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: classes/AuditLogListView.php:357
|
94 |
msgid "Show me all activity by this User"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: classes/AuditLogListView.php:372
|
98 |
msgid "Unknown"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: classes/AuditLogListView.php:376 classes/Views/Licensing.php:113
|
102 |
+
#: classes/Views/Licensing.php:153
|
103 |
msgid "Plugin"
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: classes/AuditLogListView.php:380
|
107 |
msgid "Plugins"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: classes/AuditLogListView.php:384
|
111 |
msgid "Website Visitor"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: classes/AuditLogListView.php:388
|
115 |
msgid "System"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: classes/AuditLogListView.php:408 classes/AuditLogListView.php:421
|
119 |
msgid "Show me all activity originating from this IP Address"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: classes/AuditLogListView.php:450
|
123 |
+
msgid "View all details of this change"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: classes/AuditLogListView.php:451 classes/AuditLogListView.php:597
|
127 |
msgid "Alert Data Inspector"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: classes/AuditLogListView.php:552 classes/AuditLogListView.php:569
|
131 |
+
msgid "Download the log file."
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: classes/AuditLogListView.php:577
|
135 |
+
msgid "published"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: classes/Loggers/Database.php:182 classes/Views/EmailNotifications.php:153
|
139 |
+
#: classes/Views/EmailNotifications.php:185 classes/Views/ExternalDB.php:152
|
140 |
+
#: classes/Views/ExternalDB.php:184 classes/Views/Help.php:144
|
141 |
+
#: classes/Views/Help.php:195 classes/Views/LogInUsers.php:154
|
142 |
+
#: classes/Views/LogInUsers.php:186 classes/Views/Reports.php:153
|
143 |
+
#: classes/Views/Reports.php:185 classes/Views/Search.php:153
|
144 |
+
#: classes/Views/Search.php:178
|
145 |
+
msgid "Upgrade to Premium"
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: classes/Loggers/Database.php:183 classes/Views/AuditLog.php:105
|
149 |
+
#: classes/Views/EmailNotifications.php:154
|
150 |
+
#: classes/Views/EmailNotifications.php:186 classes/Views/ExternalDB.php:153
|
151 |
+
#: classes/Views/ExternalDB.php:185 classes/Views/Help.php:196
|
152 |
+
#: classes/Views/LogInUsers.php:155 classes/Views/LogInUsers.php:187
|
153 |
+
#: classes/Views/Reports.php:154 classes/Views/Reports.php:186
|
154 |
+
#: classes/Views/Search.php:154 classes/Views/Search.php:179
|
155 |
+
msgid "More Information"
|
156 |
+
msgstr ""
|
157 |
+
|
158 |
+
#: classes/Sensors/Content.php:941 classes/Sensors/Content.php:949
|
159 |
+
#: classes/Sensors/WooCommerce.php:608 classes/Sensors/WooCommerce.php:614
|
160 |
msgid "Password Protected"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: classes/Sensors/Content.php:943 classes/Sensors/Content.php:951
|
164 |
msgid "Public"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: classes/Sensors/Content.php:945 classes/Sensors/Content.php:953
|
168 |
msgid "Private"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: classes/Sensors/WooCommerce.php:1270
|
172 |
msgid "In stock"
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: classes/Sensors/WooCommerce.php:1272
|
176 |
msgid "Out of stock"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: classes/Settings.php:363
|
180 |
+
msgid "This function is deprecated"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: classes/Views/AuditLog.php:78
|
184 |
+
msgid ""
|
185 |
+
"See who is logged in to your WordPress, create user productivity reports, "
|
186 |
+
"get alerted via email of important changes and more!"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: classes/Views/AuditLog.php:79
|
190 |
msgid ""
|
191 |
+
"Unlock these powerful features and much more with the premium edition of WP "
|
192 |
+
"Security Audit Log."
|
|
|
|
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: classes/Views/AuditLog.php:104
|
196 |
+
msgid "Buy Now"
|
|
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: classes/Views/AuditLog.php:123
|
200 |
msgid ""
|
201 |
+
"There are connectivity issues with the database where the WordPress activity "
|
202 |
+
"log is stored. The logs will be temporary buffered in the WordPress database "
|
203 |
+
"until the connection is fully restored."
|
|
|
|
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: classes/Views/AuditLog.php:140 classes/Views/AuditLog.php:156
|
207 |
+
msgid "Audit Log Viewer"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: classes/Views/AuditLog.php:183 classes/Views/Licensing.php:82
|
211 |
+
#: classes/Views/Settings.php:211 classes/Views/ToggleAlerts.php:68
|
212 |
+
msgid "You do not have sufficient permissions to access this page."
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: classes/Views/AuditLog.php:191 classes/Views/AuditLog.php:422
|
216 |
+
#: classes/Views/Licensing.php:90 classes/Views/Settings.php:207
|
217 |
+
#: classes/Views/Settings.php:968 classes/Views/Settings.php:996
|
218 |
+
#: classes/Views/Settings.php:1026
|
219 |
+
msgid "Nonce verification failed."
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: classes/Views/AuditLog.php:220 classes/Views/AuditLog.php:243
|
223 |
+
msgid "Please enter the number of alerts you would like to see on one page:"
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: classes/Views/AuditLog.php:222 classes/Views/AuditLog.php:245
|
227 |
+
msgid "No Results"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: classes/Views/AuditLog.php:419
|
231 |
+
msgid "No users found."
|
|
|
|
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: classes/Views/AuditLog.php:441
|
235 |
+
msgid "Log file does not exist."
|
236 |
msgstr ""
|
237 |
|
238 |
+
#: classes/Views/AuditLog.php:482
|
239 |
+
msgid "Request to get log file failed."
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: classes/Views/AuditLog.php:489
|
243 |
+
msgid "Nonce verification failed!"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: classes/Views/EmailNotifications.php:28
|
247 |
+
msgid "Email Notifications Add-On"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: classes/Views/EmailNotifications.php:42
|
251 |
+
msgid "Email Notifications ⇪"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: classes/Views/EmailNotifications.php:112
|
255 |
+
msgid "Email Notifications"
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: classes/Views/EmailNotifications.php:114 classes/Views/ExternalDB.php:114
|
259 |
+
#: classes/Views/LogInUsers.php:114 classes/Views/Reports.php:114
|
260 |
+
#: classes/Views/Search.php:114
|
261 |
+
msgid "Upgrade to Premium to:"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: classes/Views/EmailNotifications.php:118
|
265 |
msgid ""
|
266 |
+
"Configure email notifications to be instantly alerted of important changes,"
|
|
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: classes/Views/EmailNotifications.php:119
|
270 |
+
msgid ""
|
271 |
+
"Configure notifications for when users login, change content, install a "
|
272 |
+
"plugin or do any other change,"
|
273 |
msgstr ""
|
274 |
|
275 |
+
#: classes/Views/EmailNotifications.php:120
|
276 |
+
msgid "Configure security email notifications,"
|
277 |
msgstr ""
|
278 |
|
279 |
+
#: classes/Views/EmailNotifications.php:121
|
280 |
+
msgid "Configure email notifications via a user friendly wizard,"
|
|
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: classes/Views/EmailNotifications.php:122
|
284 |
+
msgid "Edit and create your own templates for email notifications,"
|
285 |
msgstr ""
|
286 |
|
287 |
+
#: classes/Views/EmailNotifications.php:123 classes/Views/ExternalDB.php:122
|
288 |
+
#: classes/Views/LogInUsers.php:124 classes/Views/Search.php:123
|
289 |
+
msgid "& more."
|
290 |
msgstr ""
|
291 |
|
292 |
+
#: classes/Views/EmailNotifications.php:163 classes/Views/ExternalDB.php:162
|
293 |
+
#: classes/Views/LogInUsers.php:164 classes/Views/Reports.php:163
|
294 |
+
#: classes/Views/Search.php:163
|
295 |
+
msgid "Screenshots"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: classes/Views/EmailNotifications.php:168
|
299 |
+
#: classes/Views/EmailNotifications.php:169
|
300 |
msgid ""
|
301 |
+
"Use the trigger builder to configure any type of email notification so you "
|
302 |
+
"are instantly alerted of important changes on your WordPress."
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: classes/Views/EmailNotifications.php:175
|
306 |
+
#: classes/Views/EmailNotifications.php:176
|
307 |
+
msgid ""
|
308 |
+
"Use the wizard to easily get started and quickly configure basic email "
|
309 |
+
"notifications."
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: classes/Views/ExternalDB.php:28
|
313 |
+
msgid "External DB Add-On"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: classes/Views/ExternalDB.php:42
|
317 |
+
msgid "DB & Integrations ⇪"
|
|
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: classes/Views/ExternalDB.php:112
|
321 |
+
msgid "External DB"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: classes/Views/ExternalDB.php:118
|
325 |
+
msgid ""
|
326 |
+
"Move the audit log to an external database for improved security & "
|
327 |
+
"performance,"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: classes/Views/ExternalDB.php:119
|
331 |
+
msgid "Centralize the audit log in your centralized logging system,"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: classes/Views/ExternalDB.php:120
|
335 |
+
msgid "Mirror the audit trail to Syslog, Papertrail etc,"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: classes/Views/ExternalDB.php:121
|
339 |
+
msgid ""
|
340 |
+
"Configure archiving rules to archive old alerts in an archiving database,"
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: classes/Views/ExternalDB.php:167 classes/Views/ExternalDB.php:168
|
344 |
msgid ""
|
345 |
+
"Configure an external database so the WordPress audit trail is stored on it "
|
346 |
+
"instead of the WordPress database."
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: classes/Views/ExternalDB.php:174 classes/Views/ExternalDB.php:175
|
350 |
+
msgid ""
|
351 |
+
"Configure mirroring to keep a secondary copy of the WordPress audit trail on "
|
352 |
+
"Syslog, Papertrail etc."
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: classes/Views/Help.php:30 classes/Views/Help.php:44
|
356 |
+
msgid "Help"
|
|
|
|
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: classes/Views/Help.php:75
|
360 |
+
msgid "Getting Started"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: classes/Views/Help.php:77
|
364 |
+
msgid ""
|
365 |
+
"Getting started with WP Security Audit Log is really easy; once the plugin "
|
366 |
+
"is installed it will automatically keep a log of everything that is "
|
367 |
+
"happening on your website and you do not need to do anything. Watch the "
|
368 |
+
"video below for a quick overview of the plugin."
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: classes/Views/Help.php:86
|
372 |
+
msgid "Plugin Support"
|
|
|
|
|
|
|
|
|
|
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: classes/Views/Help.php:88
|
376 |
+
msgid ""
|
377 |
+
"Have you encountered or noticed any issues while using WP Security Audit Log "
|
378 |
+
"plugin?"
|
379 |
msgstr ""
|
380 |
|
381 |
+
#: classes/Views/Help.php:89
|
|
|
382 |
msgid ""
|
383 |
+
"Or you want to report something to us? Click any of the options below to "
|
384 |
+
"post on the plugin's forum or contact our support directly."
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: classes/Views/Help.php:91
|
388 |
+
msgid "Free Support Forum"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: classes/Views/Help.php:93
|
392 |
+
msgid "Free Support Email"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: classes/Views/Help.php:99
|
396 |
+
msgid "Plugin Documentation"
|
|
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: classes/Views/Help.php:101
|
400 |
+
msgid ""
|
401 |
+
"For more technical information about the WP Security Audit Log plugin please "
|
402 |
+
"visit the plugin’s knowledge base."
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: classes/Views/Help.php:102
|
406 |
msgid ""
|
407 |
+
"Refer to the list of WordPress security alerts for a complete list of Alerts "
|
408 |
+
"and IDs that the plugin uses to keep a log of all the changes in the "
|
409 |
+
"WordPress audit log."
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: classes/Views/Help.php:104
|
413 |
+
msgid "Plugin Website"
|
|
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: classes/Views/Help.php:106
|
417 |
+
msgid "Knowledge Base"
|
|
|
|
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: classes/Views/Help.php:108
|
421 |
+
msgid "List of WordPress Security Alerts"
|
422 |
+
msgstr ""
|
423 |
+
|
424 |
+
#: classes/Views/Help.php:114
|
425 |
+
msgid "Rate WP Security Audit Log"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: classes/Views/Help.php:116
|
429 |
msgid ""
|
430 |
+
"We work really hard to deliver a plugin that enables you to keep a record of "
|
431 |
+
"all the changes that are happening on your WordPress."
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: classes/Views/Help.php:117
|
435 |
+
msgid ""
|
436 |
+
"It takes thousands of man-hours every year and endless amount of dedication "
|
437 |
+
"to research, develop and maintain the free edition of WP Security Audit Log."
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: classes/Views/Help.php:118
|
441 |
msgid ""
|
442 |
+
"Therefore if you like what you see, and find WP Security Audit Log useful we "
|
443 |
+
"ask you nothing more than to please rate our plugin."
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: classes/Views/Help.php:119
|
447 |
+
msgid "We appreciate every star!"
|
448 |
msgstr ""
|
449 |
|
450 |
+
#: classes/Views/Help.php:129
|
451 |
+
msgid "Rate Plugin"
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: classes/Views/Help.php:148
|
455 |
+
msgid "See who is logged in"
|
|
|
|
|
|
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: classes/Views/Help.php:149
|
459 |
+
msgid "And remotely terminate sessions"
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: classes/Views/Help.php:152
|
463 |
+
msgid "Generate reports"
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: classes/Views/Help.php:153
|
467 |
+
msgid "Or configure automated email reports"
|
|
|
|
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: classes/Views/Help.php:156
|
471 |
+
msgid "Configure email notifications"
|
|
|
|
|
472 |
msgstr ""
|
473 |
|
474 |
+
#: classes/Views/Help.php:157
|
475 |
+
msgid "Get instantly notified of important changes"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: classes/Views/Help.php:160
|
479 |
+
msgid "Add Search"
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: classes/Views/Help.php:161
|
483 |
+
msgid "Easily track down suspicious behaviour"
|
484 |
msgstr ""
|
485 |
|
486 |
+
#: classes/Views/Help.php:164
|
487 |
+
msgid "Integrate & Centralise"
|
|
|
|
|
488 |
msgstr ""
|
489 |
|
490 |
+
#: classes/Views/Help.php:165
|
491 |
+
msgid "Export the logs to your centralised logging system"
|
|
|
|
|
|
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: classes/Views/Licensing.php:28 classes/Views/Licensing.php:42
|
495 |
+
msgid "Licensing"
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: classes/Views/Licensing.php:96 classes/Views/Settings.php:218
|
499 |
+
#: classes/Views/ToggleAlerts.php:92
|
500 |
+
msgid "Settings have been saved."
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: classes/Views/Licensing.php:101 classes/Views/Settings.php:223
|
504 |
+
#: classes/Views/ToggleAlerts.php:98
|
505 |
+
msgid "Error: "
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: classes/Views/Licensing.php:114 classes/Views/Licensing.php:154
|
509 |
+
msgid "License"
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: classes/Views/Licensing.php:129
|
513 |
+
msgid "Version"
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: classes/Views/Licensing.php:141
|
517 |
+
msgid "Active"
|
|
|
|
|
|
|
|
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: classes/Views/Licensing.php:143
|
521 |
+
msgid "Inactive"
|
522 |
msgstr ""
|
523 |
|
524 |
+
#: classes/Views/LogInUsers.php:28
|
525 |
+
msgid "User Sessions Management Add-On"
|
|
|
526 |
msgstr ""
|
527 |
|
528 |
+
#: classes/Views/LogInUsers.php:42
|
529 |
+
msgid "Logged In Users ⇪"
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: classes/Views/LogInUsers.php:112
|
533 |
+
msgid "Users Login and Management"
|
|
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: classes/Views/LogInUsers.php:118
|
537 |
+
msgid "See who is logged in to your WordPress website,"
|
|
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: classes/Views/LogInUsers.php:119
|
541 |
+
msgid "When they logged in and from where,"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: classes/Views/LogInUsers.php:120
|
545 |
+
msgid "The last change they did on your WordPress website,"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: classes/Views/LogInUsers.php:121
|
549 |
+
msgid "Terminate their session with just a click of a button,"
|
550 |
msgstr ""
|
551 |
|
552 |
+
#: classes/Views/LogInUsers.php:122
|
553 |
+
msgid "Block multiple sessions for the same user,"
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: classes/Views/LogInUsers.php:123
|
557 |
+
msgid "Get alerted when there are multiple sessions with the same username,"
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: classes/Views/LogInUsers.php:169 classes/Views/LogInUsers.php:170
|
561 |
+
msgid ""
|
562 |
+
"See who is logged in to your WordPress website and WordPress multisite "
|
563 |
+
"network."
|
564 |
msgstr ""
|
565 |
|
566 |
+
#: classes/Views/LogInUsers.php:176 classes/Views/LogInUsers.php:177
|
567 |
msgid ""
|
568 |
+
"Block multiple sessions for the same user and configure related email "
|
569 |
+
"notifications."
|
570 |
msgstr ""
|
571 |
|
572 |
+
#: classes/Views/Reports.php:28
|
573 |
msgid "Reports Add-On"
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: classes/Views/Reports.php:42
|
577 |
+
msgid "Reports ⇪"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: classes/Views/Reports.php:112
|
581 |
+
msgid "Reports"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: classes/Views/Reports.php:118
|
585 |
+
msgid ""
|
586 |
+
"Generate user activity, site (in multisite) and any other type of WordPress "
|
587 |
+
"reports,"
|
588 |
+
msgstr ""
|
589 |
+
|
590 |
+
#: classes/Views/Reports.php:119
|
591 |
+
msgid "Configure automated daily, weekly, monthly & quarterly reports,"
|
592 |
+
msgstr ""
|
593 |
+
|
594 |
+
#: classes/Views/Reports.php:120
|
595 |
+
msgid "Receive reports automatically in your email,"
|
596 |
+
msgstr ""
|
597 |
+
|
598 |
+
#: classes/Views/Reports.php:121
|
599 |
msgid ""
|
600 |
+
"Generate statistics reports on commonly used IP addresses, views per user, "
|
601 |
+
"etc,"
|
|
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: classes/Views/Reports.php:122
|
605 |
+
msgid "Export reports to HTML and CSV formats,"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: classes/Views/Reports.php:123
|
609 |
+
msgid "& much more."
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: classes/Views/Reports.php:168 classes/Views/Reports.php:169
|
613 |
+
msgid ""
|
614 |
+
"Generate any type of report and also configure daily, weekly, monthly and "
|
615 |
+
"quarterly reports which are automatically sent to you via email."
|
616 |
+
msgstr ""
|
617 |
+
|
618 |
+
#: classes/Views/Reports.php:175 classes/Views/Reports.php:176
|
619 |
+
msgid ""
|
620 |
+
"Generate statistical reports to get a better overview of what users are "
|
621 |
+
"doing on your WordPress and WordPress multisite network are doing."
|
622 |
+
msgstr ""
|
623 |
+
|
624 |
+
#: classes/Views/Search.php:28
|
625 |
msgid "Search Add-On"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: classes/Views/Search.php:42
|
629 |
+
msgid "Search ⇪"
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
+
#: classes/Views/Search.php:112
|
633 |
+
msgid "Search"
|
634 |
+
msgstr ""
|
635 |
+
|
636 |
+
#: classes/Views/Search.php:118
|
637 |
+
msgid ""
|
638 |
+
"Easily find and track back a specific change or suspicious user behaviour,"
|
639 |
+
msgstr ""
|
640 |
+
|
641 |
+
#: classes/Views/Search.php:119
|
642 |
+
msgid "Easily find the root of a problem to ease troubleshooting,"
|
643 |
+
msgstr ""
|
644 |
+
|
645 |
+
#: classes/Views/Search.php:120
|
646 |
+
msgid "Do free-text based searches in the WordPress audit log,"
|
647 |
+
msgstr ""
|
648 |
+
|
649 |
+
#: classes/Views/Search.php:121
|
650 |
+
msgid "Use filters to fine tune the search results,"
|
651 |
+
msgstr ""
|
652 |
+
|
653 |
+
#: classes/Views/Search.php:122
|
654 |
+
msgid "Save search terms & filters for improved productivity,"
|
655 |
+
msgstr ""
|
656 |
+
|
657 |
+
#: classes/Views/Search.php:168 classes/Views/Search.php:169
|
658 |
msgid ""
|
659 |
+
"Use the free-text based search to find a specific change and use the filters "
|
660 |
+
"to fine tune the search results."
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: classes/Views/Settings.php:57 classes/Views/Settings.php:71
|
664 |
msgid "Settings"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: classes/Views/Settings.php:229
|
668 |
msgid "General"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: classes/Views/Settings.php:230
|
672 |
msgid "Audit Log"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: classes/Views/Settings.php:231
|
676 |
msgid "Exclude Objects"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: classes/Views/Settings.php:247
|
680 |
msgid "From Email & Name"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: classes/Views/Settings.php:250
|
684 |
msgid "Email Address"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: classes/Views/Settings.php:253
|
688 |
msgid "Display Name"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: classes/Views/Settings.php:259
|
692 |
#, php-format
|
693 |
msgid ""
|
694 |
"These email address and display name will be used as From details in the "
|
696 |
"the domain of the specified email address."
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: classes/Views/Settings.php:260
|
700 |
msgid "(premium add-ons)"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: classes/Views/Settings.php:268
|
704 |
msgid "Alerts Dashboard Widget"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: classes/Views/Settings.php:274
|
708 |
msgid "On"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: classes/Views/Settings.php:279
|
712 |
msgid "Off"
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: classes/Views/Settings.php:285
|
716 |
#, php-format
|
717 |
msgid "Display a dashboard widget with the latest %d security alerts."
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: classes/Views/Settings.php:295
|
721 |
msgid "Reverse Proxy / Firewall Options"
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: classes/Views/Settings.php:300
|
725 |
msgid "WordPress running behind firewall or proxy"
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: classes/Views/Settings.php:303
|
729 |
msgid ""
|
730 |
"Enable this option if your WordPress is running behind a firewall or reverse "
|
731 |
"proxy. When this option is enabled the plugin will retrieve the user's IP "
|
732 |
"address from the proxy header."
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: classes/Views/Settings.php:307
|
736 |
msgid "Filter Internal IP Addresses"
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: classes/Views/Settings.php:310
|
740 |
msgid ""
|
741 |
"Enable this option to filter internal IP addresses from the proxy headers."
|
742 |
msgstr ""
|
743 |
|
744 |
+
#: classes/Views/Settings.php:316
|
745 |
msgid "Can Manage Plugin"
|
746 |
msgstr ""
|
747 |
|
748 |
+
#: classes/Views/Settings.php:323
|
749 |
msgid "Users and Roles in this list can manage the plugin settings"
|
750 |
msgstr ""
|
751 |
|
752 |
+
#: classes/Views/Settings.php:341
|
753 |
msgid "Restrict Plugin Access"
|
754 |
msgstr ""
|
755 |
|
756 |
+
#: classes/Views/Settings.php:351
|
757 |
msgid ""
|
758 |
"If this option is disabled all the administrators on this WordPress have "
|
759 |
"access to manage this plugin."
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: classes/Views/Settings.php:352
|
763 |
msgid ""
|
764 |
"By enabling this option only <strong>You</strong> and the users specified in "
|
765 |
"the <strong>Can Manage Plugin</strong> and <strong>Can View Alerts</strong> "
|
766 |
"can configure this plugin or view the alerts in the WordPress audit trail."
|
767 |
msgstr ""
|
768 |
|
769 |
+
#: classes/Views/Settings.php:359
|
770 |
+
msgid "Login Page Notification"
|
771 |
msgstr ""
|
772 |
|
773 |
+
#: classes/Views/Settings.php:383 wp-security-audit-log.php:1122
|
774 |
msgid ""
|
775 |
+
"For security and auditing purposes, a record of all of your logged-in "
|
776 |
+
"actions and changes within the WordPress dashboard will be recorded in an "
|
777 |
+
"audit log with the <a href=\"https://www.wpsecurityauditlog.com/\" target="
|
778 |
+
"\"_blank\">WP Security Audit Log plugin</a>. The audit log also includes the "
|
779 |
+
"IP address where you accessed this site from."
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: classes/Views/Settings.php:401
|
783 |
+
msgid ""
|
784 |
+
"Many compliance regulations (such as the GDRP) require website "
|
785 |
+
"administrators to tell the users of this website that a log is kept of all "
|
786 |
+
"the changes they do when logged in."
|
787 |
msgstr ""
|
788 |
|
789 |
+
#: classes/Views/Settings.php:403
|
790 |
+
msgid "<strong>Note: </strong>"
|
791 |
msgstr ""
|
792 |
|
793 |
+
#: classes/Views/Settings.php:403
|
794 |
+
msgid ""
|
795 |
+
"The only HTML code allowed in the login page notification is for links ( < a "
|
796 |
+
"href >...< /a > )."
|
797 |
+
msgstr ""
|
798 |
+
|
799 |
+
#: classes/Views/Settings.php:410
|
800 |
+
msgid "Developer Options"
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: classes/Views/Settings.php:416
|
804 |
+
msgid "Show Developer Options"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: classes/Views/Settings.php:420
|
808 |
+
msgid ""
|
809 |
+
"Only enable these options on testing, staging and development websites. "
|
810 |
+
"Enabling any of the settings below on LIVE websites may cause unintended "
|
811 |
+
"side-effects including degraded performance."
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: classes/Views/Settings.php:434
|
815 |
msgid "Request Log"
|
816 |
msgstr ""
|
817 |
|
818 |
+
#: classes/Views/Settings.php:435
|
819 |
msgid "Enables logging request to file."
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: classes/Views/Settings.php:459
|
823 |
msgid ""
|
824 |
"The request log file is saved in the /wp-content/uploads/wp-security-audit-"
|
825 |
"log/ directory."
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: classes/Views/Settings.php:467
|
829 |
msgid "Hide Plugin in Plugins Page"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: classes/Views/Settings.php:472
|
833 |
msgid "Hide"
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: classes/Views/Settings.php:476
|
837 |
msgid ""
|
838 |
"To manually revert this setting set the value of option wsal-hide-plugin to "
|
839 |
"0 in the wp_wsal_options table."
|
840 |
msgstr ""
|
841 |
|
842 |
+
#: classes/Views/Settings.php:483
|
843 |
+
msgid "Remove Data on Uninstall"
|
|
|
|
|
|
|
|
|
844 |
msgstr ""
|
845 |
|
846 |
+
#: classes/Views/Settings.php:490
|
847 |
+
msgid ""
|
848 |
+
"Check this box if you would like remove all data when the plugin is deleted."
|
849 |
msgstr ""
|
850 |
|
851 |
+
#: classes/Views/Settings.php:509
|
852 |
msgid ""
|
853 |
"The options below are disabled because you enabled archiving of alerts to "
|
854 |
"the archiving table from"
|
855 |
msgstr ""
|
856 |
|
857 |
+
#: classes/Views/Settings.php:514
|
858 |
+
msgid "Audit Log Retention"
|
859 |
msgstr ""
|
860 |
|
861 |
+
#: classes/Views/Settings.php:517
|
862 |
msgid "(eg: 1 month)"
|
863 |
msgstr ""
|
864 |
|
865 |
+
#: classes/Views/Settings.php:523
|
866 |
msgid "None"
|
867 |
msgstr ""
|
868 |
|
869 |
+
#: classes/Views/Settings.php:527
|
870 |
+
msgid "(Leave empty or enter 0 to disable automatic pruning.)"
|
871 |
+
msgstr ""
|
872 |
+
|
873 |
+
#: classes/Views/Settings.php:533
|
874 |
msgid "Delete alerts older than"
|
875 |
msgstr ""
|
876 |
|
877 |
+
#: classes/Views/Settings.php:542
|
878 |
+
msgid "months"
|
879 |
+
msgstr ""
|
880 |
+
|
881 |
+
#: classes/Views/Settings.php:546
|
882 |
msgid "(eg: 80)"
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: classes/Views/Settings.php:552
|
886 |
msgid "Keep up to"
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: classes/Views/Settings.php:557
|
890 |
msgid "alerts"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: classes/Views/Settings.php:563
|
894 |
msgid "Next Scheduled Cleanup is in "
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: classes/Views/Settings.php:567
|
898 |
#, php-format
|
899 |
msgid "(or %s)"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: classes/Views/Settings.php:568
|
903 |
msgid "Run Manually"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: classes/Views/Settings.php:576
|
907 |
msgid "Can View Alerts"
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: classes/Views/Settings.php:583
|
911 |
msgid "Users and Roles in this list can view the security alerts"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: classes/Views/Settings.php:599
|
915 |
msgid "Refresh Audit Log Viewer"
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: classes/Views/Settings.php:606
|
919 |
msgid "Automatic"
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: classes/Views/Settings.php:608
|
923 |
msgid "Refresh Audit Log Viewer as soon as there are new alerts."
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: classes/Views/Settings.php:613
|
927 |
msgid "Manual"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: classes/Views/Settings.php:615
|
931 |
msgid "Refresh Audit Log Viewer only when the page is reloaded."
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: classes/Views/Settings.php:622
|
935 |
msgid "Alerts Timestamp"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: classes/Views/Settings.php:629
|
939 |
msgid "UTC"
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: classes/Views/Settings.php:635
|
943 |
msgid "WordPress' timezone"
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: classes/Views/Settings.php:638
|
947 |
msgid ""
|
948 |
"Select which timestamp the alerts should have in the Audit Log viewer. Note "
|
949 |
"that the WordPress' timezone might be different from that of the server."
|
950 |
msgstr ""
|
951 |
|
952 |
+
#: classes/Views/Settings.php:644
|
953 |
msgid "User Information in Audit Log"
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: classes/Views/Settings.php:655
|
957 |
msgid "First Name & Last Name"
|
958 |
msgstr ""
|
959 |
|
960 |
+
#: classes/Views/Settings.php:658
|
961 |
msgid ""
|
962 |
"Select the type of user information that should be displayed in the audit "
|
963 |
"log."
|
964 |
msgstr ""
|
965 |
|
966 |
+
#: classes/Views/Settings.php:664
|
967 |
msgid "Audit Log Columns Selection"
|
968 |
msgstr ""
|
969 |
|
970 |
+
#: classes/Views/Settings.php:680
|
971 |
msgid ""
|
972 |
"When you disable any of the above such details won’t be shown in the Audit "
|
973 |
"Log viewer though the plugin will still record such information in the "
|
974 |
"database."
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: classes/Views/Settings.php:686
|
978 |
msgid "Disable Alerts for WordPress Background Activity"
|
979 |
msgstr ""
|
980 |
|
981 |
+
#: classes/Views/Settings.php:692
|
982 |
msgid "Hide activity"
|
983 |
msgstr ""
|
984 |
|
985 |
+
#: classes/Views/Settings.php:696
|
986 |
msgid ""
|
987 |
"For example do not raise an alert when WordPress deletes the auto drafts."
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: classes/Views/Settings.php:707
|
991 |
msgid "Users & Roles"
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: classes/Views/Settings.php:710
|
995 |
+
msgid ""
|
996 |
+
"Any of the users and roles listed in the below options will be excluded from "
|
997 |
+
"monitoring. This means that any change they do will not be logged."
|
998 |
+
msgstr ""
|
999 |
+
|
1000 |
+
#: classes/Views/Settings.php:714
|
1001 |
msgid "Excluded Users"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
+
#: classes/Views/Settings.php:734
|
1005 |
msgid "Excluded Roles"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: classes/Views/Settings.php:753
|
1009 |
msgid "Custom Fields"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
#: classes/Views/Settings.php:757
|
1013 |
+
msgid ""
|
1014 |
+
"All of the custom fields listed below will be excluded from monitoring. This "
|
1015 |
+
"means that if they are changed or updated the plugin will not log such "
|
1016 |
+
"activity."
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: classes/Views/Settings.php:758
|
1020 |
+
msgid ""
|
1021 |
+
"You can use the * wildcard to exclude more than one Custom Field. For "
|
1022 |
+
"example, to exclude all the Custom Fields that start with wp123 specify "
|
1023 |
+
"wp123*."
|
1024 |
+
msgstr ""
|
1025 |
+
|
1026 |
+
#: classes/Views/Settings.php:763
|
1027 |
msgid "Excluded Custom Fields"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
+
#: classes/Views/Settings.php:782
|
1031 |
msgid "IP Addresses"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: classes/Views/Settings.php:785
|
1035 |
+
msgid ""
|
1036 |
+
"Any of the IP addresses listed below will be excluded from monitoring. This "
|
1037 |
+
"means that all activity from such IP address will not be recorded."
|
1038 |
+
msgstr ""
|
1039 |
+
|
1040 |
+
#: classes/Views/Settings.php:789
|
1041 |
msgid "Excluded IP Addresses"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
+
#: classes/Views/Settings.php:808 defaults.php:206
|
1045 |
msgid "Custom Post Types"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
+
#: classes/Views/Settings.php:811
|
1049 |
msgid ""
|
1050 |
"The below list of Custom Post Types are excluded from monitoring. This means "
|
1051 |
"that all activity related to these Custom Post Types will not be recorded."
|
1052 |
msgstr ""
|
1053 |
|
1054 |
+
#: classes/Views/Settings.php:814
|
1055 |
msgid "Exclude Custom Post Type from monitoring"
|
1056 |
msgstr ""
|
1057 |
|
1058 |
+
#: classes/Views/ToggleAlerts.php:27 classes/Views/ToggleAlerts.php:41
|
1059 |
msgid "Enable/Disable Alerts"
|
1060 |
msgstr ""
|
1061 |
|
1062 |
+
#: classes/Views/ToggleAlerts.php:175
|
1063 |
+
msgid "Code"
|
1064 |
+
msgstr ""
|
1065 |
+
|
1066 |
+
#: classes/Views/ToggleAlerts.php:176
|
1067 |
+
msgid "Type"
|
1068 |
+
msgstr ""
|
1069 |
+
|
1070 |
+
#: classes/Views/ToggleAlerts.php:177 classes/WidgetManager.php:68
|
1071 |
msgid "Description"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
+
#: classes/Views/ToggleAlerts.php:186
|
1075 |
+
msgid ""
|
1076 |
+
"<strong>Note:</strong> Post refers to any type of content, i.e. blog post, "
|
1077 |
+
"page or a post with a custom post type."
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: classes/Views/ToggleAlerts.php:201
|
1081 |
msgid "Not Implemented"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
+
#: classes/Views/ToggleAlerts.php:204
|
1085 |
msgid "Not Available"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
+
#: classes/Views/ToggleAlerts.php:230 classes/Views/ToggleAlerts.php:263
|
1089 |
msgid ""
|
1090 |
"Capture 404 requests to file (the log file are created in the /wp-content/"
|
1091 |
"uploads/wp-security-audit-log/404s/ directory)"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: classes/Views/ToggleAlerts.php:238 classes/Views/ToggleAlerts.php:271
|
1095 |
msgid "Purge log files older than one month"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: classes/Views/ToggleAlerts.php:243
|
1099 |
+
msgid ""
|
1100 |
+
"Number of 404 Requests to Log. By default the plugin keeps up to 99 requests "
|
1101 |
+
"to non-existing pages from the same IP address. Increase the value in this "
|
1102 |
+
"setting to the desired amount to keep a log of more or less requests."
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: classes/Views/ToggleAlerts.php:248 classes/Views/ToggleAlerts.php:281
|
1106 |
+
msgid "Record the referrer that generated the 404 error."
|
|
|
|
|
|
|
1107 |
msgstr ""
|
1108 |
|
1109 |
+
#: classes/Views/ToggleAlerts.php:276
|
1110 |
msgid ""
|
1111 |
+
"Number of 404 Requests to Log. By default the plugin keeps up to 99 requests "
|
1112 |
+
"to non-existing pages from the same IP address. Increase the value in this "
|
1113 |
+
"setting to the desired amount to keep a log of more or less requests. Note "
|
1114 |
+
"that by increasing this value to a high number, should your website be "
|
1115 |
"scanned the plugin will consume more resources to log all the requests."
|
1116 |
msgstr ""
|
1117 |
|
1118 |
+
#: classes/Views/ToggleAlerts.php:293 classes/Views/ToggleAlerts.php:306
|
1119 |
+
msgid ""
|
1120 |
+
"Number of login attempts to log. Enter 0 to log all failed login attempts. "
|
1121 |
+
"(By default the plugin only logs up to 10 failed login because the process "
|
1122 |
+
"can be very resource intensive in case of a brute force attack)"
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: classes/Views/ToggleAlerts.php:321
|
1126 |
msgid "Save Changes"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
+
#: classes/WidgetManager.php:36
|
1130 |
msgid "Latest Alerts"
|
1131 |
msgstr ""
|
1132 |
|
1133 |
+
#: classes/WidgetManager.php:60
|
1134 |
msgid "No alerts found."
|
1135 |
msgstr ""
|
1136 |
|
1137 |
+
#: defaults.php:60
|
1138 |
msgid "Fatal run-time error."
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: defaults.php:64
|
1142 |
msgid "Run-time warning (non-fatal error)."
|
1143 |
msgstr ""
|
1144 |
|
1145 |
+
#: defaults.php:68
|
1146 |
msgid "Compile-time parse error."
|
1147 |
msgstr ""
|
1148 |
|
1149 |
+
#: defaults.php:72
|
1150 |
msgid "Run-time notice."
|
1151 |
msgstr ""
|
1152 |
|
1153 |
+
#: defaults.php:76
|
1154 |
msgid "Fatal error that occurred during startup."
|
1155 |
msgstr ""
|
1156 |
|
1157 |
+
#: defaults.php:80
|
1158 |
msgid "Warnings that occurred during startup."
|
1159 |
msgstr ""
|
1160 |
|
1161 |
+
#: defaults.php:84
|
1162 |
msgid "Fatal compile-time error."
|
1163 |
msgstr ""
|
1164 |
|
1165 |
+
#: defaults.php:88
|
1166 |
msgid "Compile-time warning."
|
1167 |
msgstr ""
|
1168 |
|
1169 |
+
#: defaults.php:92
|
1170 |
msgid "User-generated error message."
|
1171 |
msgstr ""
|
1172 |
|
1173 |
+
#: defaults.php:96
|
1174 |
msgid "User-generated warning message."
|
1175 |
msgstr ""
|
1176 |
|
1177 |
+
#: defaults.php:100
|
1178 |
msgid "User-generated notice message."
|
1179 |
msgstr ""
|
1180 |
|
1181 |
+
#: defaults.php:104
|
1182 |
msgid "Non-standard/optimal code warning."
|
1183 |
msgstr ""
|
1184 |
|
1185 |
+
#: defaults.php:108
|
1186 |
msgid "Catchable fatal error."
|
1187 |
msgstr ""
|
1188 |
|
1189 |
+
#: defaults.php:112
|
1190 |
msgid "Run-time deprecation notices."
|
1191 |
msgstr ""
|
1192 |
|
1193 |
+
#: defaults.php:116
|
1194 |
msgid "Run-time user deprecation notices."
|
1195 |
msgstr ""
|
1196 |
|
1197 |
+
#: defaults.php:121
|
1198 |
msgid "Critical, high-impact messages."
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: defaults.php:125
|
1202 |
msgid "Debug informational messages."
|
1203 |
msgstr ""
|
1204 |
|
1205 |
+
#: defaults.php:135
|
1206 |
msgid "Content & Comments"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
+
#: defaults.php:139
|
1210 |
+
msgid "Content"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
+
#: defaults.php:140
|
1214 |
+
msgid "User created a new post and saved it as draft"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
+
#: defaults.php:140
|
1218 |
msgid ""
|
1219 |
+
"Created a new %PostType% titled %PostTitle% and saved it as draft. "
|
1220 |
+
"%EditorLinkPost%."
|
1221 |
msgstr ""
|
1222 |
|
1223 |
+
#: defaults.php:141
|
1224 |
+
msgid "User published a post"
|
1225 |
msgstr ""
|
1226 |
|
1227 |
+
#: defaults.php:141
|
1228 |
msgid ""
|
1229 |
+
"Published a %PostType% titled %PostTitle%. URL is %PostUrl%. %EditorLinkPost"
|
1230 |
+
"%."
|
1231 |
msgstr ""
|
1232 |
|
1233 |
+
#: defaults.php:142
|
1234 |
+
msgid "User modified a post"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
+
#: defaults.php:142
|
1238 |
msgid ""
|
1239 |
+
"Modified the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. "
|
1240 |
"%EditorLinkPost%."
|
1241 |
msgstr ""
|
1242 |
|
1243 |
+
#: defaults.php:143
|
1244 |
+
msgid "User permanently deleted a post from the trash"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
+
#: defaults.php:143
|
1248 |
+
msgid ""
|
1249 |
+
"Permanently deleted the %PostType% titled %PostTitle%. URL was %PostUrl%."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1250 |
msgstr ""
|
1251 |
|
1252 |
+
#: defaults.php:144
|
1253 |
+
msgid "User moved a post to the trash"
|
1254 |
msgstr ""
|
1255 |
|
1256 |
+
#: defaults.php:144
|
1257 |
+
msgid ""
|
1258 |
+
"Moved the %PostStatus% %PostType% titled %PostTitle% to trash. URL is "
|
1259 |
+
"%PostUrl%."
|
1260 |
msgstr ""
|
1261 |
|
1262 |
+
#: defaults.php:145
|
1263 |
+
msgid "User restored a post from trash"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
+
#: defaults.php:145
|
1267 |
+
msgid ""
|
1268 |
+
"The %PostStatus% %PostType% titled %PostTitle% has been restored from trash. "
|
1269 |
+
"URL is: %PostUrl%. %EditorLinkPost%."
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: defaults.php:146
|
1273 |
+
msgid "User changed post category"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: defaults.php:146
|
1277 |
msgid ""
|
1278 |
+
"Changed the category of the %PostStatus% %PostType% titled %PostTitle% from "
|
1279 |
+
"%OldCategories% to %NewCategories%. URL is: %PostUrl%. %EditorLinkPost%."
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: defaults.php:147
|
1283 |
+
msgid "User changed post URL"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
+
#: defaults.php:147
|
1287 |
msgid ""
|
1288 |
+
"Changed the URL of the %PostStatus% %PostType% titled %PostTitle%%ReportText"
|
1289 |
+
"%.%ChangeText% %EditorLinkPost%."
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: defaults.php:148
|
1293 |
+
msgid "User changed post author"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: defaults.php:148
|
1297 |
msgid ""
|
1298 |
+
"Changed the author of the %PostStatus% %PostType% titled %PostTitle% from "
|
1299 |
+
"%OldAuthor% to %NewAuthor%. URL is: %PostUrl%. %EditorLinkPost%."
|
1300 |
msgstr ""
|
1301 |
|
1302 |
+
#: defaults.php:149
|
1303 |
+
msgid "User changed post status"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
+
#: defaults.php:149
|
1307 |
msgid ""
|
1308 |
+
"Changed the status of the %PostType% titled %PostTitle% from %OldStatus% to "
|
1309 |
+
"%NewStatus%. URL is: %PostUrl%. %EditorLinkPost%."
|
1310 |
msgstr ""
|
1311 |
|
1312 |
+
#: defaults.php:150
|
1313 |
msgid "User created new category"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
+
#: defaults.php:150
|
1317 |
msgid ""
|
1318 |
+
"Created a new category called %CategoryName%. Category slug is %Slug%. "
|
1319 |
"%CategoryLink%."
|
1320 |
msgstr ""
|
1321 |
|
1322 |
+
#: defaults.php:151
|
1323 |
msgid "User deleted category"
|
1324 |
msgstr ""
|
1325 |
|
1326 |
+
#: defaults.php:151
|
1327 |
+
msgid ""
|
1328 |
+
"Deleted the %CategoryName% category. Category slug was %Slug%. %CategoryLink"
|
1329 |
+
"%."
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: defaults.php:152
|
1333 |
+
msgid "User changed the visibility of a post"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: defaults.php:152
|
1337 |
msgid ""
|
1338 |
+
"Changed the visibility of the %PostStatus% %PostType% titled %PostTitle% "
|
1339 |
+
"from %OldVisibility% to %NewVisibility%. URL is: %PostUrl%. %EditorLinkPost%."
|
1340 |
msgstr ""
|
1341 |
|
1342 |
+
#: defaults.php:153
|
1343 |
+
msgid "User changed the date of a post"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
+
#: defaults.php:153
|
1347 |
msgid ""
|
1348 |
+
"Changed the date of the %PostStatus% %PostType% titled %PostTitle% from "
|
1349 |
+
"%OldDate% to %NewDate%. URL is: %PostUrl%. %EditorLinkPost%."
|
1350 |
msgstr ""
|
1351 |
|
1352 |
+
#: defaults.php:154
|
1353 |
+
msgid "User changed the parent of a page"
|
1354 |
+
msgstr ""
|
1355 |
+
|
1356 |
+
#: defaults.php:154
|
1357 |
+
msgid ""
|
1358 |
+
"Changed the parent of the %PostStatus% %PostType% titled %PostTitle% from "
|
1359 |
+
"%OldParentName% to %NewParentName%. %EditorLinkPost%."
|
1360 |
+
msgstr ""
|
1361 |
+
|
1362 |
+
#: defaults.php:155
|
1363 |
+
msgid "User changed the template of a page"
|
1364 |
+
msgstr ""
|
1365 |
+
|
1366 |
+
#: defaults.php:155
|
1367 |
+
msgid ""
|
1368 |
+
"Changed the template of the %PostStatus% %PostType% titled %PostTitle% from "
|
1369 |
+
"%OldTemplate% to %NewTemplate%. %EditorLinkPost%."
|
1370 |
+
msgstr ""
|
1371 |
+
|
1372 |
+
#: defaults.php:156
|
1373 |
msgid "User set a post as sticky"
|
1374 |
msgstr ""
|
1375 |
|
1376 |
+
#: defaults.php:156
|
1377 |
msgid ""
|
1378 |
"Set the post %PostTitle% as Sticky. Post URL is %PostUrl%. %EditorLinkPost%."
|
1379 |
msgstr ""
|
1380 |
|
1381 |
+
#: defaults.php:157
|
1382 |
msgid "User removed post from sticky"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
+
#: defaults.php:157
|
1386 |
msgid "Removed the post %PostTitle% from Sticky. %EditorLinkPost%."
|
1387 |
msgstr ""
|
1388 |
|
1389 |
+
#: defaults.php:158
|
1390 |
+
msgid "Changed the parent of a category."
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: defaults.php:158
|
1394 |
msgid ""
|
1395 |
"Changed the parent of the category %CategoryName% from %OldParent% to "
|
1396 |
"%NewParent%. %CategoryLink%."
|
1397 |
msgstr ""
|
1398 |
|
1399 |
+
#: defaults.php:159
|
1400 |
msgid "User created a custom field for a post"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
+
#: defaults.php:159
|
1404 |
msgid ""
|
1405 |
+
"Created a new custom field called %MetaKey% with value %MetaValue% in the "
|
1406 |
+
"%PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. "
|
1407 |
+
"%EditorLinkPost%.<br>%MetaLink%."
|
1408 |
msgstr ""
|
1409 |
|
1410 |
+
#: defaults.php:160
|
1411 |
msgid "User updated a custom field value for a post"
|
1412 |
msgstr ""
|
1413 |
|
1414 |
+
#: defaults.php:160
|
1415 |
msgid ""
|
1416 |
+
"Modified the value of the custom field %MetaKey%%ReportText% in the "
|
1417 |
+
"%PostStatus% %PostType% titled %PostTitle%.%ChangeText% URL is: %PostUrl%. "
|
1418 |
+
"%EditorLinkPost%.<br>%MetaLink%."
|
1419 |
msgstr ""
|
1420 |
|
1421 |
+
#: defaults.php:161
|
1422 |
msgid "User deleted a custom field from a post"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
+
#: defaults.php:161
|
1426 |
msgid ""
|
1427 |
+
"Deleted the custom field %MetaKey% with value %MetaValue% from %PostStatus% "
|
1428 |
+
"%PostType% titled %PostTitle%. URL is: %PostUrl%. %EditorLinkPost%."
|
1429 |
msgstr ""
|
1430 |
|
1431 |
+
#: defaults.php:162
|
1432 |
msgid "User updated a custom field name for a post"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
+
#: defaults.php:162
|
1436 |
msgid ""
|
1437 |
+
"Changed the custom field's name from %MetaKeyOld% to %MetaKeyNew% in the "
|
1438 |
+
"%PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. "
|
1439 |
+
"%EditorLinkPost%.<br>%MetaLink%."
|
1440 |
msgstr ""
|
1441 |
|
1442 |
+
#: defaults.php:163
|
1443 |
+
msgid "User modified the content of a post."
|
1444 |
msgstr ""
|
1445 |
|
1446 |
+
#: defaults.php:163
|
1447 |
msgid ""
|
1448 |
+
"Modified the content of the %PostStatus% %PostType% titled %PostTitle%. Post "
|
1449 |
+
"URL is %PostUrl%. %RevisionLink% %EditorLinkPost%."
|
1450 |
msgstr ""
|
1451 |
|
1452 |
+
#: defaults.php:164
|
1453 |
+
msgid "User submitted a post for review"
|
1454 |
msgstr ""
|
1455 |
|
1456 |
+
#: defaults.php:164
|
1457 |
msgid ""
|
1458 |
+
"Submitted the %PostType% titled %PostTitle% for review. URL is: %PostUrl%. "
|
1459 |
"%EditorLinkPost%."
|
1460 |
msgstr ""
|
1461 |
|
1462 |
+
#: defaults.php:165
|
1463 |
+
msgid "User scheduled a post"
|
1464 |
msgstr ""
|
1465 |
|
1466 |
+
#: defaults.php:165
|
1467 |
msgid ""
|
1468 |
+
"Scheduled the %PostType% titled %PostTitle% to be published on "
|
1469 |
+
"%PublishingDate%. URL is: %PostUrl%. %EditorLinkPost%."
|
1470 |
msgstr ""
|
1471 |
|
1472 |
+
#: defaults.php:166
|
1473 |
+
msgid "User changed title of a post"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
+
#: defaults.php:166
|
1477 |
+
msgid ""
|
1478 |
+
"Changed the title of the %PostStatus% %PostType% from %OldTitle% to %NewTitle"
|
1479 |
+
"%. URL is: %PostUrl%. %EditorLinkPost%."
|
1480 |
msgstr ""
|
1481 |
|
1482 |
+
#: defaults.php:167
|
1483 |
+
msgid "User opened a post in the editor"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
+
#: defaults.php:167
|
1487 |
+
msgid ""
|
1488 |
+
"Opened the %PostStatus% %PostType% titled %PostTitle% in the editor. URL is: "
|
1489 |
+
"%PostUrl%. %EditorLinkPost%."
|
1490 |
+
msgstr ""
|
1491 |
+
|
1492 |
+
#: defaults.php:168
|
1493 |
+
msgid "User viewed a post"
|
1494 |
+
msgstr ""
|
1495 |
+
|
1496 |
+
#: defaults.php:168
|
1497 |
msgid ""
|
1498 |
+
"Viewed the %PostStatus% %PostType% titled %PostTitle%. URL is: %PostUrl%. "
|
1499 |
"%EditorLinkPost%."
|
1500 |
msgstr ""
|
1501 |
|
1502 |
+
#: defaults.php:169
|
1503 |
+
msgid "A plugin modified a post"
|
1504 |
msgstr ""
|
1505 |
|
1506 |
+
#: defaults.php:169
|
1507 |
msgid ""
|
1508 |
+
"Plugin modified the %PostStatus% %PostType% titled %PostTitle% of type "
|
1509 |
+
"%PostType%. URL is: %PostUrl%. %EditorLinkPost%."
|
1510 |
msgstr ""
|
1511 |
|
1512 |
+
#: defaults.php:170
|
1513 |
+
msgid "User disabled Comments/Trackbacks and Pingbacks in a post."
|
1514 |
msgstr ""
|
1515 |
|
1516 |
+
#: defaults.php:170
|
1517 |
msgid ""
|
1518 |
+
"Disabled %Type% on the %PostStatus% %PostType% titled %PostTitle%. URL is: "
|
1519 |
+
"%PostUrl%. %EditorLinkPost%."
|
1520 |
msgstr ""
|
1521 |
|
1522 |
+
#: defaults.php:171
|
1523 |
+
msgid "User enabled Comments/Trackbacks and Pingbacks in a post."
|
1524 |
msgstr ""
|
1525 |
|
1526 |
+
#: defaults.php:171
|
1527 |
+
msgid ""
|
1528 |
+
"Enabled %Type% on the %PostStatus% %PostType% titled %PostTitle%. URL is: "
|
1529 |
+
"%PostUrl%. %EditorLinkPost%."
|
1530 |
msgstr ""
|
1531 |
|
1532 |
+
#: defaults.php:172
|
1533 |
+
msgid "User added post tag"
|
1534 |
msgstr ""
|
1535 |
|
1536 |
+
#: defaults.php:172
|
1537 |
msgid ""
|
1538 |
+
"Added the tag %tag% to the %PostStatus% post titled %PostTitle%. URL is: "
|
1539 |
+
"%PostUrl%. %EditorLinkPost%."
|
1540 |
msgstr ""
|
1541 |
|
1542 |
+
#: defaults.php:173
|
1543 |
+
msgid "User removed post tag"
|
1544 |
msgstr ""
|
1545 |
|
1546 |
+
#: defaults.php:173
|
1547 |
msgid ""
|
1548 |
+
"Removed the tag %tag% from the %PostStatus% post titled %PostTitle%. URL is: "
|
1549 |
+
"%PostUrl%. %EditorLinkPost%."
|
1550 |
msgstr ""
|
1551 |
|
1552 |
+
#: defaults.php:174
|
1553 |
+
msgid "User created new tag"
|
1554 |
+
msgstr ""
|
1555 |
+
|
1556 |
+
#: defaults.php:174
|
1557 |
+
msgid "Added a new tag called %TagName%. View the tag: %TagLink%."
|
1558 |
+
msgstr ""
|
1559 |
+
|
1560 |
+
#: defaults.php:175
|
1561 |
+
msgid "User deleted tag"
|
1562 |
+
msgstr ""
|
1563 |
+
|
1564 |
+
#: defaults.php:175
|
1565 |
+
msgid "Deleted the tag %TagName%."
|
1566 |
msgstr ""
|
1567 |
|
1568 |
+
#: defaults.php:176
|
1569 |
+
msgid "User renamed tag"
|
1570 |
+
msgstr ""
|
1571 |
+
|
1572 |
+
#: defaults.php:176
|
1573 |
+
msgid "Renamed a tag from %old_name% to %new_name%. View the tag: %TagLink%."
|
1574 |
+
msgstr ""
|
1575 |
+
|
1576 |
+
#: defaults.php:177
|
1577 |
+
msgid "User changed tag slug"
|
1578 |
+
msgstr ""
|
1579 |
+
|
1580 |
+
#: defaults.php:177
|
1581 |
msgid ""
|
1582 |
+
"Changed the slug of tag %tag% from %old_slug% to %new_slug%. View the tag: "
|
1583 |
+
"%TagLink%."
|
1584 |
msgstr ""
|
1585 |
|
1586 |
+
#: defaults.php:178
|
1587 |
+
msgid "User changed tag description"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
+
#: defaults.php:178
|
1591 |
+
msgid ""
|
1592 |
+
"Changed the description of the tag %tag%%ReportText%.%ChangeText% View the "
|
1593 |
+
"tag: %TagLink%."
|
1594 |
msgstr ""
|
1595 |
|
1596 |
+
#: defaults.php:184
|
1597 |
msgid "Comments"
|
1598 |
msgstr ""
|
1599 |
|
1600 |
+
#: defaults.php:185
|
1601 |
msgid "User approved a comment"
|
1602 |
msgstr ""
|
1603 |
|
1604 |
+
#: defaults.php:185
|
1605 |
msgid ""
|
1606 |
"Approved the comment posted in response to the post %PostTitle% by %Author% "
|
1607 |
"on %CommentLink%."
|
1608 |
msgstr ""
|
1609 |
|
1610 |
+
#: defaults.php:186
|
1611 |
msgid "User unapproved a comment"
|
1612 |
msgstr ""
|
1613 |
|
1614 |
+
#: defaults.php:186
|
1615 |
msgid ""
|
1616 |
"Unapproved the comment posted in response to the post %PostTitle% by %Author"
|
1617 |
"% on %CommentLink%."
|
1618 |
msgstr ""
|
1619 |
|
1620 |
+
#: defaults.php:187
|
1621 |
msgid "User replied to a comment"
|
1622 |
msgstr ""
|
1623 |
|
1624 |
+
#: defaults.php:187
|
1625 |
msgid ""
|
1626 |
"Replied to the comment posted in response to the post %PostTitle% by %Author"
|
1627 |
"% on %CommentLink%."
|
1628 |
msgstr ""
|
1629 |
|
1630 |
+
#: defaults.php:188
|
1631 |
msgid "User edited a comment"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
+
#: defaults.php:188
|
1635 |
msgid ""
|
1636 |
"Edited a comment posted in response to the post %PostTitle% by %Author% on "
|
1637 |
"%CommentLink%."
|
1638 |
msgstr ""
|
1639 |
|
1640 |
+
#: defaults.php:189
|
1641 |
msgid "User marked a comment as Spam"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
+
#: defaults.php:189
|
1645 |
msgid ""
|
1646 |
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
1647 |
"%CommentLink% as Spam."
|
1648 |
msgstr ""
|
1649 |
|
1650 |
+
#: defaults.php:190
|
1651 |
msgid "User marked a comment as Not Spam"
|
1652 |
msgstr ""
|
1653 |
|
1654 |
+
#: defaults.php:190
|
1655 |
msgid ""
|
1656 |
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
1657 |
"%CommentLink% as Not Spam."
|
1658 |
msgstr ""
|
1659 |
|
1660 |
+
#: defaults.php:191
|
1661 |
msgid "User moved a comment to trash"
|
1662 |
msgstr ""
|
1663 |
|
1664 |
+
#: defaults.php:191
|
1665 |
msgid ""
|
1666 |
"Moved the comment posted in response to the post %PostTitle% by %Author% on "
|
1667 |
"%Date% to trash."
|
1668 |
msgstr ""
|
1669 |
|
1670 |
+
#: defaults.php:192
|
1671 |
msgid "User restored a comment from the trash"
|
1672 |
msgstr ""
|
1673 |
|
1674 |
+
#: defaults.php:192
|
1675 |
msgid ""
|
1676 |
"Restored the comment posted in response to the post %PostTitle% by %Author% "
|
1677 |
"on %CommentLink% from the trash."
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: defaults.php:193
|
1681 |
msgid "User permanently deleted a comment"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
#: defaults.php:193
|
1685 |
msgid ""
|
1686 |
"Permanently deleted the comment posted in response to the post %PostTitle% "
|
1687 |
"by %Author% on %Date%."
|
1688 |
msgstr ""
|
1689 |
|
1690 |
+
#: defaults.php:194
|
1691 |
msgid "User posted a comment"
|
1692 |
msgstr ""
|
1693 |
|
1694 |
+
#: defaults.php:194 defaults.php:195
|
1695 |
msgid "%CommentMsg% on %CommentLink%."
|
1696 |
msgstr ""
|
1697 |
|
1698 |
+
#: defaults.php:195
|
1699 |
+
msgid "Visitor posted a comment"
|
1700 |
+
msgstr ""
|
1701 |
+
|
1702 |
+
#: defaults.php:207
|
1703 |
+
msgid "User modified a draft blog post"
|
1704 |
+
msgstr ""
|
1705 |
+
|
1706 |
+
#: defaults.php:207
|
1707 |
+
msgid "Modified the draft post with the %PostTitle%. %EditorLinkPost%."
|
1708 |
+
msgstr ""
|
1709 |
+
|
1710 |
+
#: defaults.php:208
|
1711 |
msgid "User created a new post with custom post type and saved it as draft"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
+
#: defaults.php:208
|
1715 |
msgid ""
|
1716 |
"Created a new custom post called %PostTitle% of type %PostType%. "
|
1717 |
"%EditorLinkPost%."
|
1718 |
msgstr ""
|
1719 |
|
1720 |
+
#: defaults.php:209
|
1721 |
msgid "User published a post with custom post type"
|
1722 |
msgstr ""
|
1723 |
|
1724 |
+
#: defaults.php:209
|
1725 |
msgid ""
|
1726 |
"Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl"
|
1727 |
"%. %EditorLinkPost%."
|
1728 |
msgstr ""
|
1729 |
|
1730 |
+
#: defaults.php:210
|
1731 |
msgid "User modified a post with custom post type"
|
1732 |
msgstr ""
|
1733 |
|
1734 |
+
#: defaults.php:210
|
1735 |
msgid ""
|
1736 |
"Modified the custom post %PostTitle% of type %PostType%. Post URL is %PostUrl"
|
1737 |
"%. %EditorLinkPost%."
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
#: defaults.php:211
|
1741 |
msgid "User modified a draft post with custom post type"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
+
#: defaults.php:211
|
1745 |
msgid ""
|
1746 |
"Modified the draft custom post %PostTitle% of type is %PostType%. "
|
1747 |
"%EditorLinkPost%."
|
1748 |
msgstr ""
|
1749 |
|
1750 |
+
#: defaults.php:212
|
1751 |
msgid "User permanently deleted post with custom post type"
|
1752 |
msgstr ""
|
1753 |
|
1754 |
+
#: defaults.php:212
|
1755 |
msgid "Permanently Deleted the custom post %PostTitle% of type %PostType%."
|
1756 |
msgstr ""
|
1757 |
|
1758 |
+
#: defaults.php:213
|
1759 |
msgid "User moved post with custom post type to trash"
|
1760 |
msgstr ""
|
1761 |
|
1762 |
+
#: defaults.php:213
|
1763 |
msgid ""
|
1764 |
"Moved the custom post %PostTitle% of type %PostType% to trash. Post URL was "
|
1765 |
"%PostUrl%."
|
1766 |
msgstr ""
|
1767 |
|
1768 |
+
#: defaults.php:214
|
1769 |
msgid "User restored post with custom post type from trash"
|
1770 |
msgstr ""
|
1771 |
|
1772 |
+
#: defaults.php:214
|
1773 |
msgid ""
|
1774 |
"The custom post %PostTitle% of type %PostType% has been restored from trash. "
|
1775 |
"%EditorLinkPost%."
|
1776 |
msgstr ""
|
1777 |
|
1778 |
+
#: defaults.php:215
|
1779 |
msgid "User changed the category of a post with custom post type"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
+
#: defaults.php:215
|
1783 |
msgid ""
|
1784 |
"Changed the category(ies) of the custom post %PostTitle% of type %PostType% "
|
1785 |
"from %OldCategories% to %NewCategories%. %EditorLinkPost%."
|
1786 |
msgstr ""
|
1787 |
|
1788 |
+
#: defaults.php:216
|
1789 |
msgid "User changed the URL of a post with custom post type"
|
1790 |
msgstr ""
|
1791 |
|
1792 |
+
#: defaults.php:216
|
1793 |
msgid ""
|
1794 |
"Changed the URL of the custom post %PostTitle% of type %PostType% from "
|
1795 |
"%OldUrl% to %NewUrl%. %EditorLinkPost%."
|
1796 |
msgstr ""
|
1797 |
|
1798 |
+
#: defaults.php:217
|
1799 |
msgid "User changed the author or post with custom post type"
|
1800 |
msgstr ""
|
1801 |
|
1802 |
+
#: defaults.php:217
|
1803 |
msgid ""
|
1804 |
"Changed the author of custom post %PostTitle% of type %PostType% from "
|
1805 |
"%OldAuthor% to %NewAuthor%. %EditorLinkPost%."
|
1806 |
msgstr ""
|
1807 |
|
1808 |
+
#: defaults.php:218
|
1809 |
msgid "User changed the status of post with custom post type"
|
1810 |
msgstr ""
|
1811 |
|
1812 |
+
#: defaults.php:218
|
1813 |
msgid ""
|
1814 |
"Changed the status of custom post %PostTitle% of type %PostType% from "
|
1815 |
"%OldStatus% to %NewStatus%. %EditorLinkPost%."
|
1816 |
msgstr ""
|
1817 |
|
1818 |
+
#: defaults.php:219
|
1819 |
msgid "User changed the visibility of a post with custom post type"
|
1820 |
msgstr ""
|
1821 |
|
1822 |
+
#: defaults.php:219
|
1823 |
msgid ""
|
1824 |
"Changed the visibility of the custom post %PostTitle% of type %PostType% "
|
1825 |
"from %OldVisibility% to %NewVisibility%. %EditorLinkPost%."
|
1826 |
msgstr ""
|
1827 |
|
1828 |
+
#: defaults.php:220
|
1829 |
msgid "User changed the date of post with custom post type"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
+
#: defaults.php:220
|
1833 |
msgid ""
|
1834 |
"Changed the date of the custom post %PostTitle% of type %PostType% from "
|
1835 |
"%OldDate% to %NewDate%. %EditorLinkPost%."
|
1836 |
msgstr ""
|
1837 |
|
1838 |
+
#: defaults.php:221
|
1839 |
msgid "User created a custom field for a custom post type"
|
1840 |
msgstr ""
|
1841 |
|
1842 |
+
#: defaults.php:221
|
1843 |
msgid ""
|
1844 |
"Created a new custom field %MetaKey% with value %MetaValue% in custom post "
|
1845 |
"%PostTitle% of type %PostType%. %EditorLinkPost%.<br>%MetaLink%."
|
1846 |
msgstr ""
|
1847 |
|
1848 |
+
#: defaults.php:222
|
1849 |
msgid "User updated a custom field for a custom post type"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
+
#: defaults.php:222
|
1853 |
msgid ""
|
1854 |
"Modified the value of the custom field %MetaKey% from %MetaValueOld% to "
|
1855 |
"%MetaValueNew% in custom post %PostTitle% of type %PostType% %EditorLinkPost"
|
1856 |
"%.<br>%MetaLink%."
|
1857 |
msgstr ""
|
1858 |
|
1859 |
+
#: defaults.php:223
|
1860 |
msgid "User deleted a custom field from a custom post type"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
+
#: defaults.php:223
|
1864 |
msgid ""
|
1865 |
"Deleted the custom field %MetaKey% with id %MetaID% from custom post "
|
1866 |
"%PostTitle% of type %PostType% %EditorLinkPost%.<br>%MetaLink%."
|
1867 |
msgstr ""
|
1868 |
|
1869 |
+
#: defaults.php:224
|
1870 |
msgid "User updated a custom field name for a custom post type"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
+
#: defaults.php:224
|
1874 |
msgid ""
|
1875 |
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in custom "
|
1876 |
"post %PostTitle% of type %PostType% %EditorLinkPost%.<br>%MetaLink%."
|
1877 |
msgstr ""
|
1878 |
|
1879 |
+
#: defaults.php:225
|
1880 |
msgid "User modified content for a published custom post type"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
+
#: defaults.php:225
|
1884 |
msgid ""
|
1885 |
"Modified the content of the published custom post type %PostTitle%. Post URL "
|
1886 |
"is %PostUrl%.%EditorLinkPost%."
|
1887 |
msgstr ""
|
1888 |
|
1889 |
+
#: defaults.php:226
|
1890 |
+
msgid "User modified content for a draft post"
|
1891 |
+
msgstr ""
|
1892 |
+
|
1893 |
+
#: defaults.php:226
|
1894 |
+
msgid ""
|
1895 |
+
"Modified the content of the draft post %PostTitle%.%RevisionLink% "
|
1896 |
+
"%EditorLinkPost%."
|
1897 |
+
msgstr ""
|
1898 |
+
|
1899 |
+
#: defaults.php:227
|
1900 |
msgid "User modified content for a draft custom post type"
|
1901 |
msgstr ""
|
1902 |
|
1903 |
+
#: defaults.php:227
|
1904 |
msgid ""
|
1905 |
"Modified the content of the draft custom post type %PostTitle%."
|
1906 |
"%EditorLinkPost%."
|
1907 |
msgstr ""
|
1908 |
|
1909 |
+
#: defaults.php:228
|
1910 |
+
msgid "User modified content of a post"
|
1911 |
+
msgstr ""
|
1912 |
+
|
1913 |
+
#: defaults.php:228
|
1914 |
+
msgid ""
|
1915 |
+
"Modified the content of post %PostTitle% which is submitted for review."
|
1916 |
+
"%RevisionLink% %EditorLinkPost%."
|
1917 |
+
msgstr ""
|
1918 |
+
|
1919 |
+
#: defaults.php:229
|
1920 |
msgid "User scheduled a custom post type"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
+
#: defaults.php:229
|
1924 |
msgid ""
|
1925 |
"Scheduled the custom post type %PostTitle% to be published %PublishingDate%. "
|
1926 |
"%EditorLinkPost%."
|
1927 |
msgstr ""
|
1928 |
|
1929 |
+
#: defaults.php:230
|
1930 |
msgid "User changed title of a custom post type"
|
1931 |
msgstr ""
|
1932 |
|
1933 |
+
#: defaults.php:230
|
1934 |
msgid ""
|
1935 |
"Changed the title of the custom post %OldTitle% to %NewTitle%. "
|
1936 |
"%EditorLinkPost%."
|
1937 |
msgstr ""
|
1938 |
|
1939 |
+
#: defaults.php:231
|
1940 |
msgid "User opened a custom post type in the editor"
|
1941 |
msgstr ""
|
1942 |
|
1943 |
+
#: defaults.php:231
|
1944 |
msgid ""
|
1945 |
"Opened the custom post %PostTitle% of type %PostType% in the editor. View "
|
1946 |
"the post: %EditorLinkPost%."
|
1947 |
msgstr ""
|
1948 |
|
1949 |
+
#: defaults.php:232
|
1950 |
msgid "User viewed a custom post type"
|
1951 |
msgstr ""
|
1952 |
|
1953 |
+
#: defaults.php:232
|
1954 |
msgid ""
|
1955 |
"Viewed the custom post %PostTitle% of type %PostType%. View the post: "
|
1956 |
"%PostUrl%."
|
1957 |
msgstr ""
|
1958 |
|
1959 |
+
#: defaults.php:243
|
1960 |
msgid "Pages"
|
1961 |
msgstr ""
|
1962 |
|
1963 |
+
#: defaults.php:244
|
1964 |
msgid "User created a new WordPress page and saved it as draft"
|
1965 |
msgstr ""
|
1966 |
|
1967 |
+
#: defaults.php:244
|
1968 |
msgid ""
|
1969 |
"Created a new page called %PostTitle% and saved it as draft. %EditorLinkPage"
|
1970 |
"%."
|
1971 |
msgstr ""
|
1972 |
|
1973 |
+
#: defaults.php:245
|
1974 |
msgid "User published a WordPress page"
|
1975 |
msgstr ""
|
1976 |
|
1977 |
+
#: defaults.php:245
|
1978 |
msgid ""
|
1979 |
"Published a page called %PostTitle%. Page URL is %PostUrl%. %EditorLinkPage%."
|
1980 |
msgstr ""
|
1981 |
|
1982 |
+
#: defaults.php:246
|
1983 |
msgid "User modified a published WordPress page"
|
1984 |
msgstr ""
|
1985 |
|
1986 |
+
#: defaults.php:246
|
1987 |
msgid ""
|
1988 |
"Modified the published page %PostTitle%. Page URL is %PostUrl%. "
|
1989 |
"%EditorLinkPage%."
|
1990 |
msgstr ""
|
1991 |
|
1992 |
+
#: defaults.php:247
|
1993 |
msgid "User modified a draft WordPress page"
|
1994 |
msgstr ""
|
1995 |
|
1996 |
+
#: defaults.php:247
|
1997 |
msgid ""
|
1998 |
"Modified the draft page %PostTitle%. Page ID is %PostID%. %EditorLinkPage%."
|
1999 |
msgstr ""
|
2000 |
|
2001 |
+
#: defaults.php:248
|
2002 |
msgid "User permanently deleted a page from the trash"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
+
#: defaults.php:248
|
2006 |
msgid "Permanently deleted the page %PostTitle%."
|
2007 |
msgstr ""
|
2008 |
|
2009 |
+
#: defaults.php:249
|
2010 |
msgid "User moved WordPress page to the trash"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
+
#: defaults.php:249
|
2014 |
msgid "Moved the page %PostTitle% to trash. Page URL was %PostUrl%."
|
2015 |
msgstr ""
|
2016 |
|
2017 |
+
#: defaults.php:250
|
2018 |
msgid "User restored a WordPress page from trash"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
+
#: defaults.php:250
|
2022 |
msgid "Page %PostTitle% has been restored from trash. %EditorLinkPage%."
|
2023 |
msgstr ""
|
2024 |
|
2025 |
+
#: defaults.php:251
|
2026 |
msgid "User changed page URL"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
+
#: defaults.php:251
|
2030 |
msgid ""
|
2031 |
"Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%. "
|
2032 |
"%EditorLinkPage%."
|
2033 |
msgstr ""
|
2034 |
|
2035 |
+
#: defaults.php:252
|
2036 |
msgid "User changed page author"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
+
#: defaults.php:252
|
2040 |
msgid ""
|
2041 |
"Changed the author of the page %PostTitle% from %OldAuthor% to %NewAuthor%. "
|
2042 |
"%EditorLinkPage%."
|
2043 |
msgstr ""
|
2044 |
|
2045 |
+
#: defaults.php:253
|
2046 |
msgid "User changed page status"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
+
#: defaults.php:253
|
2050 |
msgid ""
|
2051 |
"Changed the status of the page %PostTitle% from %OldStatus% to %NewStatus%. "
|
2052 |
"%EditorLinkPage%."
|
2053 |
msgstr ""
|
2054 |
|
2055 |
+
#: defaults.php:254
|
2056 |
msgid "User changed the visibility of a page post"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
+
#: defaults.php:254
|
2060 |
msgid ""
|
2061 |
"Changed the visibility of the page %PostTitle% from %OldVisibility% to "
|
2062 |
"%NewVisibility%. %EditorLinkPage%."
|
2063 |
msgstr ""
|
2064 |
|
2065 |
+
#: defaults.php:255
|
2066 |
msgid "User changed the date of a page post"
|
2067 |
msgstr ""
|
2068 |
|
2069 |
+
#: defaults.php:255
|
2070 |
msgid ""
|
2071 |
"Changed the date of the page %PostTitle% from %OldDate% to %NewDate%. "
|
2072 |
"%EditorLinkPage%."
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: defaults.php:256
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2076 |
msgid "User created a custom field for a page"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
+
#: defaults.php:256
|
2080 |
msgid ""
|
2081 |
"Created a new custom field called %MetaKey% with value %MetaValue% in the "
|
2082 |
"page %PostTitle% %EditorLinkPage%.<br>%MetaLink%."
|
2083 |
msgstr ""
|
2084 |
|
2085 |
+
#: defaults.php:257
|
2086 |
msgid "User updated a custom field value for a page"
|
2087 |
msgstr ""
|
2088 |
|
2089 |
+
#: defaults.php:257
|
2090 |
msgid ""
|
2091 |
"Modified the value of the custom field %MetaKey% from %MetaValueOld% to "
|
2092 |
"%MetaValueNew% in the page %PostTitle% %EditorLinkPage%.<br>%MetaLink%."
|
2093 |
msgstr ""
|
2094 |
|
2095 |
+
#: defaults.php:258
|
2096 |
msgid "User deleted a custom field from a page"
|
2097 |
msgstr ""
|
2098 |
|
2099 |
+
#: defaults.php:258
|
2100 |
msgid ""
|
2101 |
"Deleted the custom field %MetaKey% with id %MetaID% from page %PostTitle% "
|
2102 |
"%EditorLinkPage%.<br>%MetaLink%."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: defaults.php:259
|
2106 |
msgid "User updated a custom field name for a page"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
+
#: defaults.php:259
|
2110 |
msgid ""
|
2111 |
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in the page "
|
2112 |
"%PostTitle% %EditorLinkPage%.<br>%MetaLink%."
|
2113 |
msgstr ""
|
2114 |
|
2115 |
+
#: defaults.php:260
|
2116 |
msgid "User modified content for a published page"
|
2117 |
msgstr ""
|
2118 |
|
2119 |
+
#: defaults.php:260
|
2120 |
msgid ""
|
2121 |
"Modified the content of the published page %PostTitle%. Page URL is %PostUrl"
|
2122 |
+
"%. %RevisionLink% %EditorLinkPage%."
|
2123 |
msgstr ""
|
2124 |
|
2125 |
+
#: defaults.php:261
|
2126 |
msgid "User modified content for a draft page"
|
2127 |
msgstr ""
|
2128 |
|
2129 |
+
#: defaults.php:261
|
2130 |
msgid ""
|
2131 |
"Modified the content of draft page %PostTitle%.%RevisionLink% %EditorLinkPage"
|
2132 |
"%."
|
2133 |
msgstr ""
|
2134 |
|
2135 |
+
#: defaults.php:262
|
2136 |
msgid "User scheduled a page"
|
2137 |
msgstr ""
|
2138 |
|
2139 |
+
#: defaults.php:262
|
2140 |
msgid ""
|
2141 |
"Scheduled the page %PostTitle% to be published %PublishingDate%. "
|
2142 |
"%EditorLinkPage%."
|
2143 |
msgstr ""
|
2144 |
|
2145 |
+
#: defaults.php:263
|
2146 |
msgid "User changed title of a page"
|
2147 |
msgstr ""
|
2148 |
|
2149 |
+
#: defaults.php:263
|
2150 |
msgid ""
|
2151 |
"Changed the title of the page %OldTitle% to %NewTitle%. %EditorLinkPage%."
|
2152 |
msgstr ""
|
2153 |
|
2154 |
+
#: defaults.php:264
|
2155 |
msgid "User opened a page in the editor"
|
2156 |
msgstr ""
|
2157 |
|
2158 |
+
#: defaults.php:264
|
2159 |
msgid ""
|
2160 |
"Opened the page %PostTitle% in the editor. View the page: %EditorLinkPage%."
|
2161 |
msgstr ""
|
2162 |
|
2163 |
+
#: defaults.php:265
|
2164 |
msgid "User viewed a page"
|
2165 |
msgstr ""
|
2166 |
|
2167 |
+
#: defaults.php:265
|
2168 |
msgid "Viewed the page %PostTitle%. View the page: %PostUrl%."
|
2169 |
msgstr ""
|
2170 |
|
2171 |
+
#: defaults.php:266
|
2172 |
+
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft post"
|
2173 |
+
msgstr ""
|
2174 |
+
|
2175 |
+
#: defaults.php:266
|
2176 |
+
msgid ""
|
2177 |
+
"Disabled %Type% on the draft post %PostTitle%. View the post: %PostUrl%."
|
2178 |
+
msgstr ""
|
2179 |
+
|
2180 |
+
#: defaults.php:267
|
2181 |
+
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft post"
|
2182 |
+
msgstr ""
|
2183 |
+
|
2184 |
+
#: defaults.php:267
|
2185 |
+
msgid "Enabled %Type% on the draft post %PostTitle%. View the post: %PostUrl%."
|
2186 |
+
msgstr ""
|
2187 |
+
|
2188 |
+
#: defaults.php:268
|
2189 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a published page"
|
2190 |
msgstr ""
|
2191 |
|
2192 |
+
#: defaults.php:268
|
2193 |
msgid ""
|
2194 |
"Disabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
2195 |
msgstr ""
|
2196 |
|
2197 |
+
#: defaults.php:269
|
2198 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a published page"
|
2199 |
msgstr ""
|
2200 |
|
2201 |
+
#: defaults.php:269
|
2202 |
msgid ""
|
2203 |
"Enabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
2204 |
msgstr ""
|
2205 |
|
2206 |
+
#: defaults.php:270
|
2207 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft page"
|
2208 |
msgstr ""
|
2209 |
|
2210 |
+
#: defaults.php:270
|
2211 |
msgid ""
|
2212 |
"Disabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
2213 |
msgstr ""
|
2214 |
|
2215 |
+
#: defaults.php:271
|
2216 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft page"
|
2217 |
msgstr ""
|
2218 |
|
2219 |
+
#: defaults.php:271
|
2220 |
msgid "Enabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
2221 |
msgstr ""
|
2222 |
|
2223 |
+
#: defaults.php:278
|
2224 |
msgid "WordPress & Multisite Management"
|
2225 |
msgstr ""
|
2226 |
|
2227 |
+
#: defaults.php:282
|
2228 |
msgid "Database"
|
2229 |
msgstr ""
|
2230 |
|
2231 |
+
#: defaults.php:283
|
2232 |
msgid "Plugin created tables"
|
2233 |
msgstr ""
|
2234 |
|
2235 |
+
#: defaults.php:283
|
2236 |
msgid ""
|
2237 |
"Plugin %Plugin->Name% created these tables in the database: %TableNames%."
|
2238 |
msgstr ""
|
2239 |
|
2240 |
+
#: defaults.php:284
|
2241 |
msgid "Plugin modified tables structure"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
+
#: defaults.php:284
|
2245 |
msgid ""
|
2246 |
"Plugin %Plugin->Name% modified the structure of these database tables: "
|
2247 |
"%TableNames%."
|
2248 |
msgstr ""
|
2249 |
|
2250 |
+
#: defaults.php:285
|
2251 |
msgid "Plugin deleted tables"
|
2252 |
msgstr ""
|
2253 |
|
2254 |
+
#: defaults.php:285
|
2255 |
msgid ""
|
2256 |
"Plugin %Plugin->Name% deleted the following tables from the database: "
|
2257 |
"%TableNames%."
|
2258 |
msgstr ""
|
2259 |
|
2260 |
+
#: defaults.php:286
|
2261 |
msgid "Theme created tables"
|
2262 |
msgstr ""
|
2263 |
|
2264 |
+
#: defaults.php:286
|
2265 |
msgid "Theme %Theme->Name% created these tables in the database: %TableNames%."
|
2266 |
msgstr ""
|
2267 |
|
2268 |
+
#: defaults.php:287
|
2269 |
msgid "Theme modified tables structure"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
+
#: defaults.php:287
|
2273 |
msgid ""
|
2274 |
"Theme %Theme->Name% modified the structure of these database tables: "
|
2275 |
"%TableNames%."
|
2276 |
msgstr ""
|
2277 |
|
2278 |
+
#: defaults.php:288
|
2279 |
msgid "Theme deleted tables"
|
2280 |
msgstr ""
|
2281 |
|
2282 |
+
#: defaults.php:288
|
2283 |
msgid ""
|
2284 |
"Theme %Theme->Name% deleted the following tables from the database: "
|
2285 |
"%TableNames%."
|
2286 |
msgstr ""
|
2287 |
|
2288 |
+
#: defaults.php:289
|
2289 |
msgid "Unknown component created tables"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
+
#: defaults.php:289
|
2293 |
msgid ""
|
2294 |
"An unknown component created these tables in the database: %TableNames%."
|
2295 |
msgstr ""
|
2296 |
|
2297 |
+
#: defaults.php:290
|
2298 |
msgid "Unknown component modified tables structure"
|
2299 |
msgstr ""
|
2300 |
|
2301 |
+
#: defaults.php:290
|
2302 |
msgid ""
|
2303 |
"An unknown component modified the structure of these database tables: "
|
2304 |
"%TableNames%."
|
2305 |
msgstr ""
|
2306 |
|
2307 |
+
#: defaults.php:291
|
2308 |
msgid "Unknown component deleted tables"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
+
#: defaults.php:291
|
2312 |
msgid ""
|
2313 |
"An unknown component deleted the following tables from the database: "
|
2314 |
"%TableNames%."
|
2315 |
msgstr ""
|
2316 |
|
2317 |
+
#: defaults.php:297
|
2318 |
msgid "MultiSite"
|
2319 |
msgstr ""
|
2320 |
|
2321 |
+
#: defaults.php:298
|
2322 |
msgid "User granted Super Admin privileges"
|
2323 |
msgstr ""
|
2324 |
|
2325 |
+
#: defaults.php:298
|
2326 |
msgid "Granted Super Admin privileges to %TargetUsername%."
|
2327 |
msgstr ""
|
2328 |
|
2329 |
+
#: defaults.php:299
|
2330 |
msgid "User revoked from Super Admin privileges"
|
2331 |
msgstr ""
|
2332 |
|
2333 |
+
#: defaults.php:299
|
2334 |
msgid "Revoked Super Admin privileges from %TargetUsername%."
|
2335 |
msgstr ""
|
2336 |
|
2337 |
+
#: defaults.php:300
|
2338 |
msgid "Existing user added to a site"
|
2339 |
msgstr ""
|
2340 |
|
2341 |
+
#: defaults.php:300
|
2342 |
msgid ""
|
2343 |
"Added the existing user %TargetUsername% with %TargetUserRole% role to site "
|
2344 |
"%SiteName%."
|
2345 |
msgstr ""
|
2346 |
|
2347 |
+
#: defaults.php:301
|
2348 |
msgid "User removed from site"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
+
#: defaults.php:301
|
2352 |
msgid ""
|
2353 |
"Removed the user %TargetUsername% with role %TargetUserRole% from %SiteName% "
|
2354 |
"site."
|
2355 |
msgstr ""
|
2356 |
|
2357 |
+
#: defaults.php:302
|
2358 |
msgid "New network user created"
|
2359 |
msgstr ""
|
2360 |
|
2361 |
+
#: defaults.php:302
|
2362 |
msgid "Created a new network user %NewUserData->Username%."
|
2363 |
msgstr ""
|
2364 |
|
2365 |
+
#: defaults.php:303
|
2366 |
msgid "The forum role of a user was changed by another WordPress user"
|
2367 |
msgstr ""
|
2368 |
|
2369 |
+
#: defaults.php:303
|
2370 |
msgid ""
|
2371 |
"Change the forum role of the user %TargetUsername% from %OldRole% to %NewRole"
|
2372 |
"% by %UserChanger%."
|
2373 |
msgstr ""
|
2374 |
|
2375 |
+
#: defaults.php:304
|
2376 |
msgid "New site added on the network"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
+
#: defaults.php:304
|
2380 |
msgid "Added the site %SiteName% to the network."
|
2381 |
msgstr ""
|
2382 |
|
2383 |
+
#: defaults.php:305
|
2384 |
msgid "Existing site archived"
|
2385 |
msgstr ""
|
2386 |
|
2387 |
+
#: defaults.php:305
|
2388 |
msgid "Archived the site %SiteName%."
|
2389 |
msgstr ""
|
2390 |
|
2391 |
+
#: defaults.php:306
|
2392 |
msgid "Archived site has been unarchived"
|
2393 |
msgstr ""
|
2394 |
|
2395 |
+
#: defaults.php:306
|
2396 |
msgid "Unarchived the site %SiteName%."
|
2397 |
msgstr ""
|
2398 |
|
2399 |
+
#: defaults.php:307
|
2400 |
msgid "Deactivated site has been activated"
|
2401 |
msgstr ""
|
2402 |
|
2403 |
+
#: defaults.php:307
|
2404 |
msgid "Activated the site %SiteName%."
|
2405 |
msgstr ""
|
2406 |
|
2407 |
+
#: defaults.php:308
|
2408 |
msgid "Site has been deactivated"
|
2409 |
msgstr ""
|
2410 |
|
2411 |
+
#: defaults.php:308
|
2412 |
msgid "Deactivated the site %SiteName%."
|
2413 |
msgstr ""
|
2414 |
|
2415 |
+
#: defaults.php:309
|
2416 |
msgid "Existing site deleted from network"
|
2417 |
msgstr ""
|
2418 |
|
2419 |
+
#: defaults.php:309
|
2420 |
msgid "Deleted the site %SiteName%."
|
2421 |
msgstr ""
|
2422 |
|
2423 |
+
#: defaults.php:310
|
2424 |
msgid "Activated theme on network"
|
2425 |
msgstr ""
|
2426 |
|
2427 |
+
#: defaults.php:310
|
2428 |
msgid ""
|
2429 |
"Network activated the theme %Theme->Name% installed in %Theme-"
|
2430 |
">get_template_directory%."
|
2431 |
msgstr ""
|
2432 |
|
2433 |
+
#: defaults.php:311
|
2434 |
msgid "Deactivated theme from network"
|
2435 |
msgstr ""
|
2436 |
|
2437 |
+
#: defaults.php:311
|
2438 |
msgid ""
|
2439 |
"Network deactivated the theme %Theme->Name% installed in %Theme-"
|
2440 |
">get_template_directory%."
|
2441 |
msgstr ""
|
2442 |
|
2443 |
+
#: defaults.php:317
|
2444 |
msgid "Plugins & Themes"
|
2445 |
msgstr ""
|
2446 |
|
2447 |
+
#: defaults.php:318
|
2448 |
msgid "User installed a plugin"
|
2449 |
msgstr ""
|
2450 |
|
2451 |
+
#: defaults.php:318
|
2452 |
msgid "Installed the plugin %Plugin->Name% in %Plugin->plugin_dir_path%."
|
2453 |
msgstr ""
|
2454 |
|
2455 |
+
#: defaults.php:319
|
2456 |
msgid "User activated a WordPress plugin"
|
2457 |
msgstr ""
|
2458 |
|
2459 |
+
#: defaults.php:319
|
2460 |
msgid "Activated the plugin %PluginData->Name% installed in %PluginFile%."
|
2461 |
msgstr ""
|
2462 |
|
2463 |
+
#: defaults.php:320
|
2464 |
msgid "User deactivated a WordPress plugin"
|
2465 |
msgstr ""
|
2466 |
|
2467 |
+
#: defaults.php:320
|
2468 |
msgid "Deactivated the plugin %PluginData->Name% installed in %PluginFile%."
|
2469 |
msgstr ""
|
2470 |
|
2471 |
+
#: defaults.php:321
|
2472 |
msgid "User uninstalled a plugin"
|
2473 |
msgstr ""
|
2474 |
|
2475 |
+
#: defaults.php:321
|
2476 |
msgid ""
|
2477 |
"Uninstalled the plugin %PluginData->Name% which was installed in %PluginFile"
|
2478 |
"%."
|
2479 |
msgstr ""
|
2480 |
|
2481 |
+
#: defaults.php:322
|
2482 |
msgid "User upgraded a plugin"
|
2483 |
msgstr ""
|
2484 |
|
2485 |
+
#: defaults.php:322
|
2486 |
msgid "Upgraded the plugin %PluginData->Name% installed in %PluginFile%."
|
2487 |
msgstr ""
|
2488 |
|
2489 |
+
#: defaults.php:323
|
2490 |
msgid "User installed a theme"
|
2491 |
msgstr ""
|
2492 |
|
2493 |
+
#: defaults.php:323
|
2494 |
msgid ""
|
2495 |
"Installed the theme \"%Theme->Name%\" in %Theme->get_template_directory%."
|
2496 |
msgstr ""
|
2497 |
|
2498 |
+
#: defaults.php:324
|
2499 |
msgid "User activated a theme"
|
2500 |
msgstr ""
|
2501 |
|
2502 |
+
#: defaults.php:324
|
2503 |
msgid ""
|
2504 |
"Activated the theme \"%Theme->Name%\", installed in %Theme-"
|
2505 |
">get_template_directory%."
|
2506 |
msgstr ""
|
2507 |
|
2508 |
+
#: defaults.php:325
|
2509 |
msgid "User uninstalled a theme"
|
2510 |
msgstr ""
|
2511 |
|
2512 |
+
#: defaults.php:325
|
2513 |
msgid ""
|
2514 |
"Deleted the theme \"%Theme->Name%\" installed in %Theme-"
|
2515 |
">get_template_directory%."
|
2516 |
msgstr ""
|
2517 |
|
2518 |
+
#: defaults.php:326
|
2519 |
msgid "A plugin created a post"
|
2520 |
msgstr ""
|
2521 |
|
2522 |
+
#: defaults.php:326
|
2523 |
+
msgid ""
|
2524 |
+
"A plugin automatically created the following %PostType% called %PostTitle%. "
|
2525 |
+
"View the post: %EditorLinkPost%."
|
2526 |
msgstr ""
|
2527 |
|
2528 |
+
#: defaults.php:327
|
2529 |
msgid "A plugin created a page"
|
2530 |
msgstr ""
|
2531 |
|
2532 |
+
#: defaults.php:327
|
2533 |
msgid "A plugin automatically created the following page: %PostTitle%."
|
2534 |
msgstr ""
|
2535 |
|
2536 |
+
#: defaults.php:328
|
2537 |
msgid "A plugin created a custom post"
|
2538 |
msgstr ""
|
2539 |
|
2540 |
+
#: defaults.php:328
|
2541 |
msgid "A plugin automatically created the following custom post: %PostTitle%."
|
2542 |
msgstr ""
|
2543 |
|
2544 |
+
#: defaults.php:329
|
2545 |
msgid "A plugin deleted a post"
|
2546 |
msgstr ""
|
2547 |
|
2548 |
+
#: defaults.php:329
|
2549 |
+
msgid ""
|
2550 |
+
"A plugin automatically deleted the following %PostType% called %PostTitle%."
|
2551 |
msgstr ""
|
2552 |
|
2553 |
+
#: defaults.php:330
|
2554 |
msgid "A plugin deleted a page"
|
2555 |
msgstr ""
|
2556 |
|
2557 |
+
#: defaults.php:330
|
2558 |
msgid "A plugin automatically deleted the following page: %PostTitle%."
|
2559 |
msgstr ""
|
2560 |
|
2561 |
+
#: defaults.php:331
|
2562 |
msgid "A plugin deleted a custom post"
|
2563 |
msgstr ""
|
2564 |
|
2565 |
+
#: defaults.php:331
|
2566 |
msgid "A plugin automatically deleted the following custom post: %PostTitle%."
|
2567 |
msgstr ""
|
2568 |
|
2569 |
+
#: defaults.php:332
|
2570 |
msgid "User updated a theme"
|
2571 |
msgstr ""
|
2572 |
|
2573 |
+
#: defaults.php:332
|
2574 |
msgid ""
|
2575 |
"Updated the theme \"%Theme->Name%\" installed in %Theme-"
|
2576 |
">get_template_directory%."
|
2577 |
msgstr ""
|
2578 |
|
2579 |
+
#: defaults.php:333
|
2580 |
msgid "User changed a file using the theme editor"
|
2581 |
msgstr ""
|
2582 |
|
2583 |
+
#: defaults.php:333
|
2584 |
msgid "Modified %File% with the Theme Editor."
|
2585 |
msgstr ""
|
2586 |
|
2587 |
+
#: defaults.php:334
|
2588 |
msgid "User changed a file using the plugin editor"
|
2589 |
msgstr ""
|
2590 |
|
2591 |
+
#: defaults.php:334
|
2592 |
msgid "Modified %File% with the Plugin Editor."
|
2593 |
msgstr ""
|
2594 |
|
2595 |
+
#: defaults.php:335
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2596 |
msgid "A plugin modified a page"
|
2597 |
msgstr ""
|
2598 |
|
2599 |
+
#: defaults.php:335
|
2600 |
msgid "Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%."
|
2601 |
msgstr ""
|
2602 |
|
2603 |
+
#: defaults.php:336
|
2604 |
msgid "A plugin modified a custom post"
|
2605 |
msgstr ""
|
2606 |
|
2607 |
+
#: defaults.php:336
|
2608 |
msgid ""
|
2609 |
"Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%."
|
2610 |
msgstr ""
|
2611 |
|
2612 |
+
#: defaults.php:342
|
2613 |
msgid "System Activity"
|
2614 |
msgstr ""
|
2615 |
|
2616 |
+
#: defaults.php:343
|
2617 |
msgid "Unknown Error"
|
2618 |
msgstr ""
|
2619 |
|
2620 |
+
#: defaults.php:343
|
2621 |
msgid "An unexpected error has occurred ."
|
2622 |
msgstr ""
|
2623 |
|
2624 |
+
#: defaults.php:344
|
2625 |
msgid "PHP error"
|
2626 |
msgstr ""
|
2627 |
|
2628 |
+
#: defaults.php:344 defaults.php:345 defaults.php:346 defaults.php:347
|
2629 |
+
#: defaults.php:348
|
2630 |
msgid "%Message%."
|
2631 |
msgstr ""
|
2632 |
|
2633 |
+
#: defaults.php:345
|
2634 |
msgid "PHP warning"
|
2635 |
msgstr ""
|
2636 |
|
2637 |
+
#: defaults.php:346
|
2638 |
msgid "PHP notice"
|
2639 |
msgstr ""
|
2640 |
|
2641 |
+
#: defaults.php:347
|
2642 |
msgid "PHP exception"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
+
#: defaults.php:348
|
2646 |
msgid "PHP shutdown error"
|
2647 |
msgstr ""
|
2648 |
|
2649 |
+
#: defaults.php:349
|
2650 |
msgid "Events automatically pruned by system"
|
2651 |
msgstr ""
|
2652 |
|
2653 |
+
#: defaults.php:349
|
2654 |
msgid "System automatically deleted %EventCount% alert(s)."
|
2655 |
msgstr ""
|
2656 |
|
2657 |
+
#: defaults.php:350
|
2658 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
2659 |
msgstr ""
|
2660 |
|
2661 |
+
#: defaults.php:350
|
2662 |
msgid "%NewValue% the option \"Anyone can register\"."
|
2663 |
msgstr ""
|
2664 |
|
2665 |
+
#: defaults.php:351
|
2666 |
msgid "New User Default Role changed"
|
2667 |
msgstr ""
|
2668 |
|
2669 |
+
#: defaults.php:351
|
2670 |
msgid "Changed the New User Default Role from %OldRole% to %NewRole%."
|
2671 |
msgstr ""
|
2672 |
|
2673 |
+
#: defaults.php:352
|
2674 |
msgid "WordPress Administrator Notification email changed"
|
2675 |
msgstr ""
|
2676 |
|
2677 |
+
#: defaults.php:352
|
2678 |
msgid ""
|
2679 |
"Changed the WordPress administrator notifications email address from "
|
2680 |
"%OldEmail% to %NewEmail%."
|
2681 |
msgstr ""
|
2682 |
|
2683 |
+
#: defaults.php:353
|
2684 |
msgid "WordPress was updated"
|
2685 |
msgstr ""
|
2686 |
|
2687 |
+
#: defaults.php:353
|
2688 |
msgid "Updated WordPress from version %OldVersion% to %NewVersion%."
|
2689 |
msgstr ""
|
2690 |
|
2691 |
+
#: defaults.php:354
|
2692 |
msgid "User changes the WordPress Permalinks"
|
2693 |
msgstr ""
|
2694 |
|
2695 |
+
#: defaults.php:354
|
2696 |
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%."
|
2697 |
msgstr ""
|
2698 |
|
2699 |
+
#: defaults.php:355
|
2700 |
msgid "User requests non-existing pages (404 Error Pages)"
|
2701 |
msgstr ""
|
2702 |
|
2703 |
+
#: defaults.php:355
|
2704 |
msgid ""
|
2705 |
"Has requested a non existing page (404 Error Pages) %Attempts% %Msg%. "
|
2706 |
+
"%LinkFile%"
|
2707 |
msgstr ""
|
2708 |
|
2709 |
+
#: defaults.php:356
|
2710 |
msgid "Website Visitor User requests non-existing pages (404 Error Pages)"
|
2711 |
msgstr ""
|
2712 |
|
2713 |
+
#: defaults.php:356
|
2714 |
msgid ""
|
2715 |
"Website Visitor Has requested a non existing page (404 Error Pages) %Attempts"
|
2716 |
+
"% %Msg%. %LinkFile%"
|
2717 |
msgstr ""
|
2718 |
|
2719 |
+
#: defaults.php:357
|
2720 |
+
msgid "Option WordPress Address (URL) in WordPress settings changed"
|
2721 |
+
msgstr ""
|
2722 |
+
|
2723 |
+
#: defaults.php:357
|
2724 |
+
msgid "Changed the WordPress address (URL) from %old_url% to %new_url%."
|
2725 |
+
msgstr ""
|
2726 |
+
|
2727 |
+
#: defaults.php:358
|
2728 |
+
msgid "Option Site Address (URL) in WordPress settings changed"
|
2729 |
+
msgstr ""
|
2730 |
+
|
2731 |
+
#: defaults.php:358
|
2732 |
+
msgid "Changed the site address (URL) from %old_url% to %new_url%."
|
2733 |
+
msgstr ""
|
2734 |
+
|
2735 |
+
#: defaults.php:359
|
2736 |
msgid "Advertising Add-ons."
|
2737 |
msgstr ""
|
2738 |
|
2739 |
+
#: defaults.php:359
|
2740 |
msgid "%PromoName% %PromoMessage%"
|
2741 |
msgstr ""
|
2742 |
|
2743 |
+
#: defaults.php:365
|
2744 |
msgid "Menus"
|
2745 |
msgstr ""
|
2746 |
|
2747 |
+
#: defaults.php:366
|
2748 |
msgid "User created new menu"
|
2749 |
msgstr ""
|
2750 |
|
2751 |
+
#: defaults.php:366
|
2752 |
msgid "Created a new menu called %MenuName%."
|
2753 |
msgstr ""
|
2754 |
|
2755 |
+
#: defaults.php:367
|
2756 |
msgid "User added content to a menu"
|
2757 |
msgstr ""
|
2758 |
|
2759 |
+
#: defaults.php:367
|
2760 |
msgid "Added the %ContentType% called %ContentName% to menu %MenuName%."
|
2761 |
msgstr ""
|
2762 |
|
2763 |
+
#: defaults.php:368
|
2764 |
msgid "User removed content from a menu"
|
2765 |
msgstr ""
|
2766 |
|
2767 |
+
#: defaults.php:368
|
2768 |
msgid ""
|
2769 |
"Removed the %ContentType% called %ContentName% from the menu %MenuName%."
|
2770 |
msgstr ""
|
2771 |
|
2772 |
+
#: defaults.php:369
|
2773 |
msgid "User deleted menu"
|
2774 |
msgstr ""
|
2775 |
|
2776 |
+
#: defaults.php:369
|
2777 |
msgid "Deleted the menu %MenuName%."
|
2778 |
msgstr ""
|
2779 |
|
2780 |
+
#: defaults.php:370
|
2781 |
msgid "User changed menu setting"
|
2782 |
msgstr ""
|
2783 |
|
2784 |
+
#: defaults.php:370
|
2785 |
msgid "%Status% the menu setting %MenuSetting% in %MenuName%."
|
2786 |
msgstr ""
|
2787 |
|
2788 |
+
#: defaults.php:371
|
2789 |
msgid "User modified content in a menu"
|
2790 |
msgstr ""
|
2791 |
|
2792 |
+
#: defaults.php:371
|
2793 |
msgid "Modified the %ContentType% called %ContentName% in menu %MenuName%."
|
2794 |
msgstr ""
|
2795 |
|
2796 |
+
#: defaults.php:372
|
2797 |
msgid "User changed name of a menu"
|
2798 |
msgstr ""
|
2799 |
|
2800 |
+
#: defaults.php:372
|
2801 |
msgid "Changed the name of menu %OldMenuName% to %NewMenuName%."
|
2802 |
msgstr ""
|
2803 |
|
2804 |
+
#: defaults.php:373
|
2805 |
msgid "User changed order of the objects in a menu"
|
2806 |
msgstr ""
|
2807 |
|
2808 |
+
#: defaults.php:373
|
2809 |
msgid "Changed the order of the %ItemName% in menu %MenuName%."
|
2810 |
msgstr ""
|
2811 |
|
2812 |
+
#: defaults.php:374
|
2813 |
msgid "User moved objects as a sub-item"
|
2814 |
msgstr ""
|
2815 |
|
2816 |
+
#: defaults.php:374
|
2817 |
msgid "Moved %ItemName% as a sub-item of %ParentName% in menu %MenuName%."
|
2818 |
msgstr ""
|
2819 |
|
2820 |
+
#: defaults.php:380
|
2821 |
msgid "Widgets"
|
2822 |
msgstr ""
|
2823 |
|
2824 |
+
#: defaults.php:381
|
2825 |
msgid "User added a new widget"
|
2826 |
msgstr ""
|
2827 |
|
2828 |
+
#: defaults.php:381
|
2829 |
msgid "Added a new %WidgetName% widget in %Sidebar%."
|
2830 |
msgstr ""
|
2831 |
|
2832 |
+
#: defaults.php:382
|
2833 |
msgid "User modified a widget"
|
2834 |
msgstr ""
|
2835 |
|
2836 |
+
#: defaults.php:382
|
2837 |
msgid "Modified the %WidgetName% widget in %Sidebar%."
|
2838 |
msgstr ""
|
2839 |
|
2840 |
+
#: defaults.php:383
|
2841 |
msgid "User deleted widget"
|
2842 |
msgstr ""
|
2843 |
|
2844 |
+
#: defaults.php:383
|
2845 |
msgid "Deleted the %WidgetName% widget from %Sidebar%."
|
2846 |
msgstr ""
|
2847 |
|
2848 |
+
#: defaults.php:384
|
2849 |
msgid "User moved widget"
|
2850 |
msgstr ""
|
2851 |
|
2852 |
+
#: defaults.php:384
|
2853 |
msgid "Moved the %WidgetName% widget from %OldSidebar% to %NewSidebar%."
|
2854 |
msgstr ""
|
2855 |
|
2856 |
+
#: defaults.php:385
|
2857 |
msgid "User changed widget position"
|
2858 |
msgstr ""
|
2859 |
|
2860 |
+
#: defaults.php:385
|
2861 |
msgid "Changed the position of the widget %WidgetName% in sidebar %Sidebar%."
|
2862 |
msgstr ""
|
2863 |
|
2864 |
+
#: defaults.php:391
|
2865 |
msgid "Site Settings"
|
2866 |
msgstr ""
|
2867 |
|
2868 |
+
#: defaults.php:392
|
2869 |
msgid ""
|
2870 |
"Enabled/Disabled the option Discourage search engines from indexing this site"
|
2871 |
msgstr ""
|
2872 |
|
2873 |
+
#: defaults.php:392
|
2874 |
msgid "%Status% the option Discourage search engines from indexing this site."
|
2875 |
msgstr ""
|
2876 |
|
2877 |
+
#: defaults.php:393
|
2878 |
msgid "Enabled/Disabled comments on all the website"
|
2879 |
msgstr ""
|
2880 |
|
2881 |
+
#: defaults.php:393
|
2882 |
msgid "%Status% comments on all the website."
|
2883 |
msgstr ""
|
2884 |
|
2885 |
+
#: defaults.php:394
|
2886 |
msgid "Enabled/Disabled the option Comment author must fill out name and email"
|
2887 |
msgstr ""
|
2888 |
|
2889 |
+
#: defaults.php:394
|
2890 |
msgid "%Status% the option Comment author must fill out name and email."
|
2891 |
msgstr ""
|
2892 |
|
2893 |
+
#: defaults.php:395
|
2894 |
msgid ""
|
2895 |
"Enabled/Disabled the option Users must be logged in and registered to comment"
|
2896 |
msgstr ""
|
2897 |
|
2898 |
+
#: defaults.php:395
|
2899 |
msgid "%Status% the option Users must be logged in and registered to comment."
|
2900 |
msgstr ""
|
2901 |
|
2902 |
+
#: defaults.php:396
|
2903 |
msgid "Enabled/Disabled the option to automatically close comments"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
+
#: defaults.php:396
|
2907 |
msgid "%Status% the option to automatically close comments after %Value% days."
|
2908 |
msgstr ""
|
2909 |
|
2910 |
+
#: defaults.php:397
|
2911 |
msgid "Changed the value of the option Automatically close comments"
|
2912 |
msgstr ""
|
2913 |
|
2914 |
+
#: defaults.php:397
|
2915 |
msgid ""
|
2916 |
"Changed the value of the option Automatically close comments from %OldValue% "
|
2917 |
"to %NewValue% days."
|
2918 |
msgstr ""
|
2919 |
|
2920 |
+
#: defaults.php:398
|
2921 |
msgid "Enabled/Disabled the option for comments to be manually approved"
|
2922 |
msgstr ""
|
2923 |
|
2924 |
+
#: defaults.php:398
|
2925 |
msgid "%Status% the option for comments to be manually approved."
|
2926 |
msgstr ""
|
2927 |
|
2928 |
+
#: defaults.php:399
|
2929 |
msgid ""
|
2930 |
"Enabled/Disabled the option for an author to have previously approved "
|
2931 |
"comments for the comments to appear"
|
2932 |
msgstr ""
|
2933 |
|
2934 |
+
#: defaults.php:399
|
2935 |
msgid ""
|
2936 |
"%Status% the option for an author to have previously approved comments for "
|
2937 |
"the comments to appear."
|
2938 |
msgstr ""
|
2939 |
|
2940 |
+
#: defaults.php:400
|
2941 |
msgid ""
|
2942 |
"Changed the number of links that a comment must have to be held in the queue"
|
2943 |
msgstr ""
|
2944 |
|
2945 |
+
#: defaults.php:400
|
2946 |
msgid ""
|
2947 |
"Changed the number of links from %OldValue% to %NewValue% that a comment "
|
2948 |
"must have to be held in the queue."
|
2949 |
msgstr ""
|
2950 |
|
2951 |
+
#: defaults.php:401
|
2952 |
msgid "Modified the list of keywords for comments moderation"
|
2953 |
msgstr ""
|
2954 |
|
2955 |
+
#: defaults.php:401
|
2956 |
msgid "Modified the list of keywords for comments moderation."
|
2957 |
msgstr ""
|
2958 |
|
2959 |
+
#: defaults.php:402
|
2960 |
msgid "Modified the list of keywords for comments blacklisting"
|
2961 |
msgstr ""
|
2962 |
|
2963 |
+
#: defaults.php:402
|
2964 |
msgid "Modified the list of keywords for comments blacklisting."
|
2965 |
msgstr ""
|
2966 |
|
2967 |
+
#: defaults.php:403
|
2968 |
+
msgid "Created a New cron job"
|
2969 |
+
msgstr ""
|
2970 |
+
|
2971 |
+
#: defaults.php:403
|
2972 |
+
msgid ""
|
2973 |
+
"A new cron job called %name% was created and is scheduled to run %schedule%."
|
2974 |
+
msgstr ""
|
2975 |
+
|
2976 |
+
#: defaults.php:404
|
2977 |
+
msgid "Changed status of the cron job"
|
2978 |
+
msgstr ""
|
2979 |
+
|
2980 |
+
#: defaults.php:404
|
2981 |
+
msgid "The cron job %name% was %status%."
|
2982 |
+
msgstr ""
|
2983 |
+
|
2984 |
+
#: defaults.php:405
|
2985 |
+
msgid "Deleted the cron job"
|
2986 |
+
msgstr ""
|
2987 |
+
|
2988 |
+
#: defaults.php:405
|
2989 |
+
msgid "The cron job %name% was deleted."
|
2990 |
+
msgstr ""
|
2991 |
+
|
2992 |
+
#: defaults.php:406
|
2993 |
+
msgid "Started the cron job"
|
2994 |
+
msgstr ""
|
2995 |
+
|
2996 |
+
#: defaults.php:406
|
2997 |
+
msgid "The cron job %name% has just started."
|
2998 |
+
msgstr ""
|
2999 |
+
|
3000 |
+
#: defaults.php:413
|
3001 |
msgid "Users Profiles & Activity"
|
3002 |
msgstr ""
|
3003 |
|
3004 |
+
#: defaults.php:417
|
3005 |
msgid "Other User Activity"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
+
#: defaults.php:418
|
3009 |
msgid "User logged in"
|
3010 |
msgstr ""
|
3011 |
|
3012 |
+
#: defaults.php:418
|
3013 |
msgid "Successfully logged in."
|
3014 |
msgstr ""
|
3015 |
|
3016 |
+
#: defaults.php:419
|
3017 |
msgid "User logged out"
|
3018 |
msgstr ""
|
3019 |
|
3020 |
+
#: defaults.php:419
|
3021 |
msgid "Successfully logged out."
|
3022 |
msgstr ""
|
3023 |
|
3024 |
+
#: defaults.php:420
|
3025 |
msgid "Login failed"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
+
#: defaults.php:420
|
3029 |
msgid "%Attempts% failed login(s) detected."
|
3030 |
msgstr ""
|
3031 |
|
3032 |
+
#: defaults.php:421
|
3033 |
msgid "Login failed / non existing user"
|
3034 |
msgstr ""
|
3035 |
|
3036 |
+
#: defaults.php:421
|
3037 |
+
msgid ""
|
3038 |
+
"%Attempts% failed login(s) detected using non existing user. %LogFileText%"
|
3039 |
msgstr ""
|
3040 |
|
3041 |
+
#: defaults.php:422
|
3042 |
msgid "Login blocked"
|
3043 |
msgstr ""
|
3044 |
|
3045 |
+
#: defaults.php:422
|
3046 |
msgid ""
|
3047 |
"Blocked from logging in because the same WordPress user is logged in from "
|
3048 |
"%ClientIP%."
|
3049 |
msgstr ""
|
3050 |
|
3051 |
+
#: defaults.php:423
|
3052 |
msgid "User logged in with existing session(s)"
|
3053 |
msgstr ""
|
3054 |
|
3055 |
+
#: defaults.php:423
|
3056 |
msgid ""
|
3057 |
"Successfully logged in. Another session from %IPAddress% for this user "
|
3058 |
"already exist."
|
3059 |
msgstr ""
|
3060 |
|
3061 |
+
#: defaults.php:424
|
3062 |
msgid "User logged out all other sessions with the same username"
|
3063 |
msgstr ""
|
3064 |
|
3065 |
+
#: defaults.php:424
|
3066 |
msgid "Logged out all other sessions with the same username."
|
3067 |
msgstr ""
|
3068 |
|
3069 |
+
#: defaults.php:425
|
3070 |
msgid "User session destroyed and logged out."
|
3071 |
msgstr ""
|
3072 |
|
3073 |
+
#: defaults.php:425
|
3074 |
msgid "Logged out session %TargetSessionID% which belonged to %TargetUserName%"
|
3075 |
msgstr ""
|
3076 |
|
3077 |
+
#: defaults.php:426
|
3078 |
msgid "User uploaded file from Uploads directory"
|
3079 |
msgstr ""
|
3080 |
|
3081 |
+
#: defaults.php:426
|
3082 |
msgid "Uploaded the file %FileName% in %FilePath%."
|
3083 |
msgstr ""
|
3084 |
|
3085 |
+
#: defaults.php:427
|
3086 |
msgid "User deleted file from Uploads directory"
|
3087 |
msgstr ""
|
3088 |
|
3089 |
+
#: defaults.php:427
|
3090 |
msgid "Deleted the file %FileName% from %FilePath%."
|
3091 |
msgstr ""
|
3092 |
|
3093 |
+
#: defaults.php:433
|
3094 |
msgid "User Profiles"
|
3095 |
msgstr ""
|
3096 |
|
3097 |
+
#: defaults.php:434
|
3098 |
msgid "New user was created on WordPress"
|
3099 |
msgstr ""
|
3100 |
|
3101 |
+
#: defaults.php:434
|
3102 |
msgid ""
|
3103 |
"A new user %NewUserData->Username% was created with role of %NewUserData-"
|
3104 |
">Roles%."
|
3105 |
msgstr ""
|
3106 |
|
3107 |
+
#: defaults.php:435
|
3108 |
msgid "User created another WordPress user"
|
3109 |
msgstr ""
|
3110 |
|
3111 |
+
#: defaults.php:435
|
3112 |
msgid ""
|
3113 |
"%UserChanger% created a new user %NewUserData->Username% with the role of "
|
3114 |
"%NewUserData->Roles%."
|
3115 |
msgstr ""
|
3116 |
|
3117 |
+
#: defaults.php:436
|
3118 |
msgid "The role of a user was changed by another WordPress user"
|
3119 |
msgstr ""
|
3120 |
|
3121 |
+
#: defaults.php:436
|
3122 |
msgid ""
|
3123 |
+
"Changed the role of the user %TargetUsername% from %OldRole% to %NewRole%"
|
3124 |
+
"%multisite_text%."
|
3125 |
msgstr ""
|
3126 |
|
3127 |
+
#: defaults.php:437
|
3128 |
msgid "User has changed his or her password"
|
3129 |
msgstr ""
|
3130 |
|
3131 |
+
#: defaults.php:437
|
3132 |
msgid "Changed the password."
|
3133 |
msgstr ""
|
3134 |
|
3135 |
+
#: defaults.php:438
|
3136 |
msgid "User changed another user's password"
|
3137 |
msgstr ""
|
3138 |
|
3139 |
+
#: defaults.php:438
|
3140 |
msgid ""
|
3141 |
"Changed the password for the user %TargetUserData->Username% with the role "
|
3142 |
"of %TargetUserData->Roles%."
|
3143 |
msgstr ""
|
3144 |
|
3145 |
+
#: defaults.php:439
|
3146 |
msgid "User changed his or her email address"
|
3147 |
msgstr ""
|
3148 |
|
3149 |
+
#: defaults.php:439
|
3150 |
msgid "Changed the email address from %OldEmail% to %NewEmail%."
|
3151 |
msgstr ""
|
3152 |
|
3153 |
+
#: defaults.php:440
|
3154 |
msgid "User changed another user's email address"
|
3155 |
msgstr ""
|
3156 |
|
3157 |
+
#: defaults.php:440
|
3158 |
msgid ""
|
3159 |
"Changed the email address of the user %TargetUsername% from %OldEmail% to "
|
3160 |
"%NewEmail%."
|
3161 |
msgstr ""
|
3162 |
|
3163 |
+
#: defaults.php:441
|
3164 |
msgid "User was deleted by another user"
|
3165 |
msgstr ""
|
3166 |
|
3167 |
+
#: defaults.php:441
|
3168 |
msgid ""
|
3169 |
"Deleted the user %TargetUserData->Username% with the role of %TargetUserData-"
|
3170 |
">Roles%."
|
3171 |
msgstr ""
|
3172 |
|
3173 |
+
#: defaults.php:442
|
3174 |
msgid "User opened the profile page of another user"
|
3175 |
msgstr ""
|
3176 |
|
3177 |
+
#: defaults.php:442
|
3178 |
msgid "%UserChanger% opened the profile page of the user %TargetUsername%."
|
3179 |
msgstr ""
|
3180 |
|
3181 |
+
#: defaults.php:443
|
3182 |
msgid "User updated a custom field value for a user"
|
3183 |
msgstr ""
|
3184 |
|
3185 |
+
#: defaults.php:443
|
3186 |
+
msgid ""
|
3187 |
+
"Changed the value of the custom field %custom_field_name%%ReportText% for "
|
3188 |
+
"the user %TargetUsername%.%ChangeText%"
|
3189 |
+
msgstr ""
|
3190 |
+
|
3191 |
+
#: defaults.php:444
|
3192 |
+
msgid "User created a custom field value for a user"
|
3193 |
+
msgstr ""
|
3194 |
+
|
3195 |
+
#: defaults.php:444
|
3196 |
+
msgid ""
|
3197 |
+
"Created the value of the custom field %custom_field_name% with %new_value% "
|
3198 |
+
"for the user %TargetUsername%."
|
3199 |
+
msgstr ""
|
3200 |
+
|
3201 |
+
#: defaults.php:445
|
3202 |
+
msgid "User changed first name for a user"
|
3203 |
+
msgstr ""
|
3204 |
+
|
3205 |
+
#: defaults.php:445
|
3206 |
+
msgid ""
|
3207 |
+
"Changed the first name of the user %TargetUsername% from %old_firstname% to "
|
3208 |
+
"%new_firstname%"
|
3209 |
+
msgstr ""
|
3210 |
+
|
3211 |
+
#: defaults.php:446
|
3212 |
+
msgid "User changed last name for a user"
|
3213 |
+
msgstr ""
|
3214 |
+
|
3215 |
+
#: defaults.php:446
|
3216 |
+
msgid ""
|
3217 |
+
"Changed the last name of the user %TargetUsername% from %old_lastname% to "
|
3218 |
+
"%new_lastname%"
|
3219 |
+
msgstr ""
|
3220 |
+
|
3221 |
+
#: defaults.php:447
|
3222 |
+
msgid "User changed nickname for a user"
|
3223 |
+
msgstr ""
|
3224 |
+
|
3225 |
+
#: defaults.php:447
|
3226 |
msgid ""
|
3227 |
+
"Changed the nickname of the user %TargetUsername% from %old_nickname% to "
|
3228 |
+
"%new_nickname%"
|
3229 |
msgstr ""
|
3230 |
|
3231 |
+
#: defaults.php:448
|
3232 |
+
msgid "User changed the display name for a user"
|
3233 |
msgstr ""
|
3234 |
|
3235 |
+
#: defaults.php:448
|
3236 |
msgid ""
|
3237 |
+
"Changed the Display name publicly of user %TargetUsername% from "
|
3238 |
+
"%old_displayname% to %new_displayname%"
|
3239 |
msgstr ""
|
3240 |
|
3241 |
+
#: defaults.php:455
|
3242 |
msgid "Third Party Support"
|
3243 |
msgstr ""
|
3244 |
|
3245 |
+
#: defaults.php:459
|
3246 |
msgid "BBPress Forum"
|
3247 |
msgstr ""
|
3248 |
|
3249 |
+
#: defaults.php:460
|
3250 |
msgid "User created new forum"
|
3251 |
msgstr ""
|
3252 |
|
3253 |
+
#: defaults.php:460
|
3254 |
msgid ""
|
3255 |
"Created new forum %ForumName%. Forum URL is %ForumURL%. %EditorLinkForum%."
|
3256 |
msgstr ""
|
3257 |
|
3258 |
+
#: defaults.php:461
|
3259 |
msgid "User changed status of a forum"
|
3260 |
msgstr ""
|
3261 |
|
3262 |
+
#: defaults.php:461
|
3263 |
msgid ""
|
3264 |
"Changed the status of the forum %ForumName% from %OldStatus% to %NewStatus%. "
|
3265 |
"%EditorLinkForum%."
|
3266 |
msgstr ""
|
3267 |
|
3268 |
+
#: defaults.php:462
|
3269 |
msgid "User changed visibility of a forum"
|
3270 |
msgstr ""
|
3271 |
|
3272 |
+
#: defaults.php:462
|
3273 |
msgid ""
|
3274 |
"Changed the visibility of the forum %ForumName% from %OldVisibility% to "
|
3275 |
"%NewVisibility%. %EditorLinkForum%."
|
3276 |
msgstr ""
|
3277 |
|
3278 |
+
#: defaults.php:463
|
3279 |
msgid "User changed the URL of a forum"
|
3280 |
msgstr ""
|
3281 |
|
3282 |
+
#: defaults.php:463
|
3283 |
msgid ""
|
3284 |
"Changed the URL of the forum %ForumName% from %OldUrl% to %NewUrl%. "
|
3285 |
"%EditorLinkForum%."
|
3286 |
msgstr ""
|
3287 |
|
3288 |
+
#: defaults.php:464
|
3289 |
msgid "User changed order of a forum"
|
3290 |
msgstr ""
|
3291 |
|
3292 |
+
#: defaults.php:464
|
3293 |
msgid ""
|
3294 |
"Changed the order of the forum %ForumName% from %OldOrder% to %NewOrder%. "
|
3295 |
"%EditorLinkForum%."
|
3296 |
msgstr ""
|
3297 |
|
3298 |
+
#: defaults.php:465
|
3299 |
msgid "User moved forum to trash"
|
3300 |
msgstr ""
|
3301 |
|
3302 |
+
#: defaults.php:465
|
3303 |
msgid "Moved the forum %ForumName% to trash."
|
3304 |
msgstr ""
|
3305 |
|
3306 |
+
#: defaults.php:466
|
3307 |
msgid "User permanently deleted forum"
|
3308 |
msgstr ""
|
3309 |
|
3310 |
+
#: defaults.php:466
|
3311 |
msgid "Permanently deleted the forum %ForumName%."
|
3312 |
msgstr ""
|
3313 |
|
3314 |
+
#: defaults.php:467
|
3315 |
msgid "User restored forum from trash"
|
3316 |
msgstr ""
|
3317 |
|
3318 |
+
#: defaults.php:467
|
3319 |
msgid "Restored the forum %ForumName% from trash. %EditorLinkForum%."
|
3320 |
msgstr ""
|
3321 |
|
3322 |
+
#: defaults.php:468
|
3323 |
msgid "User changed the parent of a forum"
|
3324 |
msgstr ""
|
3325 |
|
3326 |
+
#: defaults.php:468
|
3327 |
msgid ""
|
3328 |
"Changed the parent of the forum %ForumName% from %OldParent% to %NewParent%. "
|
3329 |
"%EditorLinkForum%."
|
3330 |
msgstr ""
|
3331 |
|
3332 |
+
#: defaults.php:469
|
3333 |
msgid "User changed forum's role"
|
3334 |
msgstr ""
|
3335 |
|
3336 |
+
#: defaults.php:469
|
3337 |
msgid "Changed the forum's auto role from %OldRole% to %NewRole%."
|
3338 |
msgstr ""
|
3339 |
|
3340 |
+
#: defaults.php:470
|
3341 |
msgid "User changed option of a forum"
|
3342 |
msgstr ""
|
3343 |
|
3344 |
+
#: defaults.php:470
|
3345 |
msgid "%Status% the option for anonymous posting on forum."
|
3346 |
msgstr ""
|
3347 |
|
3348 |
+
#: defaults.php:471
|
3349 |
msgid "User changed type of a forum"
|
3350 |
msgstr ""
|
3351 |
|
3352 |
+
#: defaults.php:471
|
3353 |
msgid ""
|
3354 |
"Changed the type of the forum %ForumName% from %OldType% to %NewType%. "
|
3355 |
"%EditorLinkForum%."
|
3356 |
msgstr ""
|
3357 |
|
3358 |
+
#: defaults.php:472
|
3359 |
msgid "User changed time to disallow post editing"
|
3360 |
msgstr ""
|
3361 |
|
3362 |
+
#: defaults.php:472
|
3363 |
msgid ""
|
3364 |
"Changed the time to disallow post editing from %OldTime% to %NewTime% "
|
3365 |
"minutes in the forums."
|
3366 |
msgstr ""
|
3367 |
|
3368 |
+
#: defaults.php:473
|
3369 |
msgid "User changed the forum setting posting throttle time"
|
3370 |
msgstr ""
|
3371 |
|
3372 |
+
#: defaults.php:473
|
3373 |
msgid ""
|
3374 |
"Changed the posting throttle time from %OldTime% to %NewTime% seconds in the "
|
3375 |
"forums."
|
3376 |
msgstr ""
|
3377 |
|
3378 |
+
#: defaults.php:474
|
3379 |
msgid "User created new topic"
|
3380 |
msgstr ""
|
3381 |
|
3382 |
+
#: defaults.php:474
|
3383 |
msgid "Created a new topic %TopicName%. %EditorLinkTopic%."
|
3384 |
msgstr ""
|
3385 |
|
3386 |
+
#: defaults.php:475
|
3387 |
msgid "User changed status of a topic"
|
3388 |
msgstr ""
|
3389 |
|
3390 |
+
#: defaults.php:475
|
3391 |
msgid ""
|
3392 |
"Changed the status of the topic %TopicName% from %OldStatus% to %NewStatus%. "
|
3393 |
"%EditorLinkTopic%."
|
3394 |
msgstr ""
|
3395 |
|
3396 |
+
#: defaults.php:476
|
3397 |
msgid "User changed type of a topic"
|
3398 |
msgstr ""
|
3399 |
|
3400 |
+
#: defaults.php:476
|
3401 |
msgid ""
|
3402 |
"Changed the type of the topic %TopicName% from %OldType% to %NewType%. "
|
3403 |
"%EditorLinkTopic%."
|
3404 |
msgstr ""
|
3405 |
|
3406 |
+
#: defaults.php:477
|
3407 |
msgid "User changed URL of a topic"
|
3408 |
msgstr ""
|
3409 |
|
3410 |
+
#: defaults.php:477
|
3411 |
msgid "Changed the URL of the topic %TopicName% from %OldUrl% to %NewUrl%."
|
3412 |
msgstr ""
|
3413 |
|
3414 |
+
#: defaults.php:478
|
3415 |
msgid "User changed the forum of a topic"
|
3416 |
msgstr ""
|
3417 |
|
3418 |
+
#: defaults.php:478
|
3419 |
msgid ""
|
3420 |
"Changed the forum of the topic %TopicName% from %OldForum% to %NewForum%. "
|
3421 |
"%EditorLinkTopic%."
|
3422 |
msgstr ""
|
3423 |
|
3424 |
+
#: defaults.php:479
|
3425 |
msgid "User moved topic to trash"
|
3426 |
msgstr ""
|
3427 |
|
3428 |
+
#: defaults.php:479
|
3429 |
msgid "Moved the topic %TopicName% to trash."
|
3430 |
msgstr ""
|
3431 |
|
3432 |
+
#: defaults.php:480
|
3433 |
msgid "User permanently deleted topic"
|
3434 |
msgstr ""
|
3435 |
|
3436 |
+
#: defaults.php:480
|
3437 |
msgid "Permanently deleted the topic %TopicName%."
|
3438 |
msgstr ""
|
3439 |
|
3440 |
+
#: defaults.php:481
|
3441 |
msgid "User restored topic from trash"
|
3442 |
msgstr ""
|
3443 |
|
3444 |
+
#: defaults.php:481
|
3445 |
msgid "Restored the topic %TopicName% from trash. %EditorLinkTopic%."
|
3446 |
msgstr ""
|
3447 |
|
3448 |
+
#: defaults.php:482
|
3449 |
msgid "User changed visibility of a topic"
|
3450 |
msgstr ""
|
3451 |
|
3452 |
+
#: defaults.php:482
|
3453 |
msgid ""
|
3454 |
"Changed the visibility of the topic %TopicName% from %OldVisibility% to "
|
3455 |
"%NewVisibility%. %EditorLinkTopic%."
|
3456 |
msgstr ""
|
3457 |
|
3458 |
+
#: defaults.php:488
|
3459 |
msgid "WooCommerce"
|
3460 |
msgstr ""
|
3461 |
|
3462 |
+
#: defaults.php:489
|
3463 |
msgid "User created a new product"
|
3464 |
msgstr ""
|
3465 |
|
3466 |
+
#: defaults.php:489
|
3467 |
msgid ""
|
3468 |
"Created a new product called %ProductTitle% and saved it as draft. View the "
|
3469 |
"product: %EditorLinkProduct%."
|
3470 |
msgstr ""
|
3471 |
|
3472 |
+
#: defaults.php:490
|
3473 |
msgid "User published a product"
|
3474 |
msgstr ""
|
3475 |
|
3476 |
+
#: defaults.php:490
|
3477 |
msgid ""
|
3478 |
"Published a product called %ProductTitle%. Product URL is %ProductUrl%. View "
|
3479 |
"the product: %EditorLinkProduct%."
|
3480 |
msgstr ""
|
3481 |
|
3482 |
+
#: defaults.php:491
|
3483 |
msgid "User created a new product category"
|
3484 |
msgstr ""
|
3485 |
|
3486 |
+
#: defaults.php:491
|
3487 |
msgid ""
|
3488 |
"Created a new product category called %CategoryName% in WooCommerce. Product "
|
3489 |
"category slug is %Slug%."
|
3490 |
msgstr ""
|
3491 |
|
3492 |
+
#: defaults.php:492
|
3493 |
msgid "User changed the category of a product"
|
3494 |
msgstr ""
|
3495 |
|
3496 |
+
#: defaults.php:492
|
3497 |
msgid ""
|
3498 |
"Changed the category of the product %ProductTitle% from %OldCategories% to "
|
3499 |
"%NewCategories%. View the product: %EditorLinkProduct%."
|
3500 |
msgstr ""
|
3501 |
|
3502 |
+
#: defaults.php:493
|
3503 |
msgid "User modified the short description of a product"
|
3504 |
msgstr ""
|
3505 |
|
3506 |
+
#: defaults.php:493
|
3507 |
msgid ""
|
3508 |
+
"Modified the short description of the product %ProductTitle%.%ChangeText% "
|
3509 |
+
"View the product: %EditorLinkProduct%."
|
3510 |
msgstr ""
|
3511 |
|
3512 |
+
#: defaults.php:494
|
3513 |
msgid "User modified the text of a product"
|
3514 |
msgstr ""
|
3515 |
|
3516 |
+
#: defaults.php:494
|
3517 |
msgid ""
|
3518 |
"Modified the text of the product %ProductTitle%. View the product: "
|
3519 |
"%EditorLinkProduct%."
|
3520 |
msgstr ""
|
3521 |
|
3522 |
+
#: defaults.php:495
|
3523 |
msgid "User changed the URL of a product"
|
3524 |
msgstr ""
|
3525 |
|
3526 |
+
#: defaults.php:495
|
3527 |
msgid ""
|
3528 |
+
"Changed the URL of the product %ProductTitle%%ReportText%.%ChangeText% View "
|
3529 |
+
"the product: %EditorLinkProduct%."
|
3530 |
msgstr ""
|
3531 |
|
3532 |
+
#: defaults.php:496
|
3533 |
msgid "User changed the Product Data of a product"
|
3534 |
msgstr ""
|
3535 |
|
3536 |
+
#: defaults.php:496
|
3537 |
msgid ""
|
3538 |
"Changed the Product Data of the product %ProductTitle%. View the product: "
|
3539 |
"%EditorLinkProduct%."
|
3540 |
msgstr ""
|
3541 |
|
3542 |
+
#: defaults.php:497
|
3543 |
msgid "User changed the date of a product"
|
3544 |
msgstr ""
|
3545 |
|
3546 |
+
#: defaults.php:497
|
3547 |
msgid ""
|
3548 |
"Changed the date of the product %ProductTitle% from %OldDate% to %NewDate%. "
|
3549 |
"View the product: %EditorLinkProduct%."
|
3550 |
msgstr ""
|
3551 |
|
3552 |
+
#: defaults.php:498
|
3553 |
msgid "User changed the visibility of a product"
|
3554 |
msgstr ""
|
3555 |
|
3556 |
+
#: defaults.php:498
|
3557 |
msgid ""
|
3558 |
"Changed the visibility of the product %ProductTitle% from %OldVisibility% to "
|
3559 |
"%NewVisibility%. View the product: %EditorLinkProduct%."
|
3560 |
msgstr ""
|
3561 |
|
3562 |
+
#: defaults.php:499
|
3563 |
msgid "User modified the published product"
|
3564 |
msgstr ""
|
3565 |
|
3566 |
+
#: defaults.php:499
|
3567 |
msgid ""
|
3568 |
"Modified the published product %ProductTitle%. Product URL is %ProductUrl%. "
|
3569 |
"View the product: %EditorLinkProduct%."
|
3570 |
msgstr ""
|
3571 |
|
3572 |
+
#: defaults.php:500
|
3573 |
msgid "User modified the draft product"
|
3574 |
msgstr ""
|
3575 |
|
3576 |
+
#: defaults.php:500
|
3577 |
msgid ""
|
3578 |
"Modified the draft product %ProductTitle%. View the product: "
|
3579 |
"%EditorLinkProduct%."
|
3580 |
msgstr ""
|
3581 |
|
3582 |
+
#: defaults.php:501
|
3583 |
msgid "User moved a product to trash"
|
3584 |
msgstr ""
|
3585 |
|
3586 |
+
#: defaults.php:501
|
3587 |
msgid ""
|
3588 |
"Moved the product %ProductTitle% to trash. Product URL was %ProductUrl%."
|
3589 |
msgstr ""
|
3590 |
|
3591 |
+
#: defaults.php:502
|
3592 |
msgid "User permanently deleted a product"
|
3593 |
msgstr ""
|
3594 |
|
3595 |
+
#: defaults.php:502
|
3596 |
msgid "Permanently deleted the product %ProductTitle%."
|
3597 |
msgstr ""
|
3598 |
|
3599 |
+
#: defaults.php:503
|
3600 |
msgid "User restored a product from the trash"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
+
#: defaults.php:503
|
3604 |
msgid ""
|
3605 |
"Product %ProductTitle% has been restored from trash. View product: "
|
3606 |
"%EditorLinkProduct%."
|
3607 |
msgstr ""
|
3608 |
|
3609 |
+
#: defaults.php:504
|
3610 |
msgid "User changed status of a product"
|
3611 |
msgstr ""
|
3612 |
|
3613 |
+
#: defaults.php:504
|
3614 |
msgid ""
|
3615 |
"Changed the status of the product %ProductTitle% from %OldStatus% to "
|
3616 |
"%NewStatus%. View the product: %EditorLinkProduct%."
|
3617 |
msgstr ""
|
3618 |
|
3619 |
+
#: defaults.php:505
|
3620 |
msgid "User changed type of a price"
|
3621 |
msgstr ""
|
3622 |
|
3623 |
+
#: defaults.php:505
|
3624 |
msgid ""
|
3625 |
"Changed the %PriceType% of the product %ProductTitle% from %OldPrice% to "
|
3626 |
"%NewPrice%. View the product: %EditorLinkProduct%."
|
3627 |
msgstr ""
|
3628 |
|
3629 |
+
#: defaults.php:506
|
3630 |
msgid "User changed the SKU of a product"
|
3631 |
msgstr ""
|
3632 |
|
3633 |
+
#: defaults.php:506
|
3634 |
msgid ""
|
3635 |
"Changed the SKU of the product %ProductTitle% from %OldSku% to %NewSku%. "
|
3636 |
"View the product: %EditorLinkProduct%."
|
3637 |
msgstr ""
|
3638 |
|
3639 |
+
#: defaults.php:507
|
3640 |
msgid "User changed the stock status of a product"
|
3641 |
msgstr ""
|
3642 |
|
3643 |
+
#: defaults.php:507
|
3644 |
msgid ""
|
3645 |
"Changed the stock status of the product %ProductTitle% from %OldStatus% to "
|
3646 |
"%NewStatus%. View the product: %EditorLinkProduct%."
|
3647 |
msgstr ""
|
3648 |
|
3649 |
+
#: defaults.php:508
|
3650 |
msgid "User changed the stock quantity"
|
3651 |
msgstr ""
|
3652 |
|
3653 |
+
#: defaults.php:508
|
3654 |
msgid ""
|
3655 |
+
"Changed the stock quantity of the product %ProductTitle% from %OldValue% to "
|
3656 |
+
"%NewValue%. View the product: %EditorLinkProduct%"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
+
#: defaults.php:509
|
3660 |
msgid "User set a product type"
|
3661 |
msgstr ""
|
3662 |
|
3663 |
+
#: defaults.php:509
|
3664 |
msgid ""
|
3665 |
"Set the product %ProductTitle% as %Type%. View the product: "
|
3666 |
"%EditorLinkProduct%."
|
3667 |
msgstr ""
|
3668 |
|
3669 |
+
#: defaults.php:510
|
3670 |
msgid "User changed the weight of a product"
|
3671 |
msgstr ""
|
3672 |
|
3673 |
+
#: defaults.php:510
|
3674 |
msgid ""
|
3675 |
"Changed the weight of the product %ProductTitle% from %OldWeight% to "
|
3676 |
"%NewWeight%. View the product: %EditorLinkProduct%."
|
3677 |
msgstr ""
|
3678 |
|
3679 |
+
#: defaults.php:511
|
3680 |
msgid "User changed the dimensions of a product"
|
3681 |
msgstr ""
|
3682 |
|
3683 |
+
#: defaults.php:511
|
3684 |
msgid ""
|
3685 |
"Changed the %DimensionType% dimensions of the product %ProductTitle% from "
|
3686 |
"%OldDimension% to %NewDimension%. View the product: %EditorLinkProduct%."
|
3687 |
msgstr ""
|
3688 |
|
3689 |
+
#: defaults.php:512
|
3690 |
msgid "User added the Downloadable File to a product"
|
3691 |
msgstr ""
|
3692 |
|
3693 |
+
#: defaults.php:512
|
3694 |
msgid ""
|
3695 |
"Added the Downloadable File %FileName% with File URL %FileUrl% to the "
|
3696 |
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
3697 |
msgstr ""
|
3698 |
|
3699 |
+
#: defaults.php:513
|
3700 |
msgid "User Removed the Downloadable File from a product"
|
3701 |
msgstr ""
|
3702 |
|
3703 |
+
#: defaults.php:513
|
3704 |
msgid ""
|
3705 |
"Removed the Downloadable File %FileName% with File URL %FileUrl% from the "
|
3706 |
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
3707 |
msgstr ""
|
3708 |
|
3709 |
+
#: defaults.php:514
|
3710 |
msgid "User changed the name of a Downloadable File in a product"
|
3711 |
msgstr ""
|
3712 |
|
3713 |
+
#: defaults.php:514
|
3714 |
msgid ""
|
3715 |
"Changed the name of a Downloadable File from %OldName% to %NewName% in "
|
3716 |
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
3717 |
msgstr ""
|
3718 |
|
3719 |
+
#: defaults.php:515
|
3720 |
msgid "User changed the URL of the Downloadable File in a product"
|
3721 |
msgstr ""
|
3722 |
|
3723 |
+
#: defaults.php:515
|
3724 |
msgid ""
|
3725 |
"Changed the URL of the Downloadable File %FileName% from %OldUrl% to %NewUrl"
|
3726 |
"% in product %ProductTitle%. View the product: %EditorLinkProduct%."
|
3727 |
msgstr ""
|
3728 |
|
3729 |
+
#: defaults.php:516
|
3730 |
msgid "User changed the Weight Unit"
|
3731 |
msgstr ""
|
3732 |
|
3733 |
+
#: defaults.php:516
|
3734 |
msgid "Changed the Weight Unit from %OldUnit% to %NewUnit% in WooCommerce."
|
3735 |
msgstr ""
|
3736 |
|
3737 |
+
#: defaults.php:517
|
3738 |
msgid "User changed the Dimensions Unit"
|
3739 |
msgstr ""
|
3740 |
|
3741 |
+
#: defaults.php:517
|
3742 |
msgid "Changed the Dimensions Unit from %OldUnit% to %NewUnit% in WooCommerce."
|
3743 |
msgstr ""
|
3744 |
|
3745 |
+
#: defaults.php:518
|
3746 |
msgid "User changed the Base Location"
|
3747 |
msgstr ""
|
3748 |
|
3749 |
+
#: defaults.php:518
|
3750 |
msgid ""
|
3751 |
"Changed the Base Location from %OldLocation% to %NewLocation% in WooCommerce."
|
3752 |
msgstr ""
|
3753 |
|
3754 |
+
#: defaults.php:519
|
3755 |
msgid "User Enabled/Disabled taxes"
|
3756 |
msgstr ""
|
3757 |
|
3758 |
+
#: defaults.php:519
|
3759 |
msgid "%Status% taxes in the WooCommerce store."
|
3760 |
msgstr ""
|
3761 |
|
3762 |
+
#: defaults.php:520
|
3763 |
msgid "User changed the currency"
|
3764 |
msgstr ""
|
3765 |
|
3766 |
+
#: defaults.php:520
|
3767 |
msgid ""
|
3768 |
"Changed the currency from %OldCurrency% to %NewCurrency% in WooCommerce."
|
3769 |
msgstr ""
|
3770 |
|
3771 |
+
#: defaults.php:521
|
3772 |
msgid "User Enabled/Disabled the use of coupons during checkout"
|
3773 |
msgstr ""
|
3774 |
|
3775 |
+
#: defaults.php:521
|
3776 |
msgid "%Status% the use of coupons during checkout in WooCommerce."
|
3777 |
msgstr ""
|
3778 |
|
3779 |
+
#: defaults.php:522
|
3780 |
msgid "User Enabled/Disabled guest checkout"
|
3781 |
msgstr ""
|
3782 |
|
3783 |
+
#: defaults.php:522
|
3784 |
msgid "%Status% guest checkout in WooCommerce."
|
3785 |
msgstr ""
|
3786 |
|
3787 |
+
#: defaults.php:523
|
3788 |
+
msgid "User Enabled/Disabled cash on delivery"
|
3789 |
+
msgstr ""
|
3790 |
+
|
3791 |
+
#: defaults.php:523
|
3792 |
+
msgid "%Status% the option Enable cash on delivery in WooCommerce."
|
3793 |
+
msgstr ""
|
3794 |
+
|
3795 |
+
#: defaults.php:525
|
3796 |
+
msgid "Yoast SEO"
|
3797 |
+
msgstr ""
|
3798 |
+
|
3799 |
+
#: defaults.php:526
|
3800 |
+
msgid "User changed title of a SEO post"
|
3801 |
+
msgstr ""
|
3802 |
+
|
3803 |
+
#: defaults.php:526
|
3804 |
+
msgid ""
|
3805 |
+
"Changed the SEO title of the %PostStatus% %PostType%%ReportText%.%ChangeText"
|
3806 |
+
"% %EditorLinkPost%."
|
3807 |
+
msgstr ""
|
3808 |
+
|
3809 |
+
#: defaults.php:527
|
3810 |
+
msgid "User changed the meta description of a SEO post"
|
3811 |
+
msgstr ""
|
3812 |
+
|
3813 |
+
#: defaults.php:527
|
3814 |
+
msgid ""
|
3815 |
+
"Changed the Meta description of the %PostStatus% %PostType% titled %PostTitle"
|
3816 |
+
"%%ReportText%.%ChangeText% %EditorLinkPost%."
|
3817 |
+
msgstr ""
|
3818 |
+
|
3819 |
+
#: defaults.php:528
|
3820 |
+
msgid ""
|
3821 |
+
"User changed setting to allow search engines to show post in search results "
|
3822 |
+
"of a SEO post"
|
3823 |
+
msgstr ""
|
3824 |
+
|
3825 |
+
#: defaults.php:528
|
3826 |
+
msgid ""
|
3827 |
+
"Changed the setting to allow search engines to show post in search results "
|
3828 |
+
"from %OldStatus% to %NewStatus% in the %PostStatus% %PostType% titled "
|
3829 |
+
"%PostTitle%. %EditorLinkPost%."
|
3830 |
+
msgstr ""
|
3831 |
+
|
3832 |
+
#: defaults.php:529
|
3833 |
+
msgid ""
|
3834 |
+
"User Enabled/Disabled the option for search engine to follow links of a SEO "
|
3835 |
+
"post"
|
3836 |
+
msgstr ""
|
3837 |
+
|
3838 |
+
#: defaults.php:529
|
3839 |
+
msgid ""
|
3840 |
+
"%NewStatus% the option for search engine to follow links in the %PostType% "
|
3841 |
+
"titled %PostTitle%. %EditorLinkPost%."
|
3842 |
+
msgstr ""
|
3843 |
+
|
3844 |
+
#: defaults.php:530
|
3845 |
+
msgid "User set the meta robots advanced setting of a SEO post"
|
3846 |
+
msgstr ""
|
3847 |
+
|
3848 |
+
#: defaults.php:530
|
3849 |
+
msgid ""
|
3850 |
+
"Set the Meta Robots Advanced setting to %NewStatus% in the %PostStatus% "
|
3851 |
+
"%PostType% titled %PostTitle%. %EditorLinkPost%."
|
3852 |
+
msgstr ""
|
3853 |
+
|
3854 |
+
#: defaults.php:531
|
3855 |
+
msgid "User changed the canonical URL of a SEO post"
|
3856 |
+
msgstr ""
|
3857 |
+
|
3858 |
+
#: defaults.php:531
|
3859 |
+
msgid ""
|
3860 |
+
"Changed the Canonical URL of the %PostStatus% %PostType% titled %PostTitle%"
|
3861 |
+
"%ReportText%.%ChangeText% %EditorLinkPost%."
|
3862 |
+
msgstr ""
|
3863 |
+
|
3864 |
+
#: defaults.php:532
|
3865 |
+
msgid "User changed the focus keyword of a SEO post"
|
3866 |
+
msgstr ""
|
3867 |
+
|
3868 |
+
#: defaults.php:532
|
3869 |
+
msgid ""
|
3870 |
+
"Changed the focus keyword of the %PostStatus% %PostType% titled %PostTitle% "
|
3871 |
+
"from %old_keywords% to %new_keywords%. %EditorLinkPost%."
|
3872 |
+
msgstr ""
|
3873 |
+
|
3874 |
+
#: defaults.php:533
|
3875 |
+
msgid "User Enabled/Disabled the option Cornerston Content of a SEO post"
|
3876 |
+
msgstr ""
|
3877 |
+
|
3878 |
+
#: defaults.php:533
|
3879 |
+
msgid ""
|
3880 |
+
"%Status% the option Cornerston Content on the %PostStatus% %PostType% titled "
|
3881 |
+
"%PostTitle%. %EditorLinkPost%."
|
3882 |
+
msgstr ""
|
3883 |
+
|
3884 |
+
#: defaults.php:534
|
3885 |
+
msgid "User changed the Title Separator setting"
|
3886 |
+
msgstr ""
|
3887 |
+
|
3888 |
+
#: defaults.php:534
|
3889 |
+
msgid ""
|
3890 |
+
"Changed the Title Separator from %old% to %new% in the Yoast SEO plugin "
|
3891 |
+
"settings."
|
3892 |
+
msgstr ""
|
3893 |
+
|
3894 |
+
#: defaults.php:535
|
3895 |
+
msgid "User changed the Homepage Title setting"
|
3896 |
+
msgstr ""
|
3897 |
+
|
3898 |
+
#: defaults.php:535
|
3899 |
+
msgid ""
|
3900 |
+
"Changed the Homepage Title%ReportText% in the Yoast SEO plugin settings."
|
3901 |
+
"%ChangeText%"
|
3902 |
+
msgstr ""
|
3903 |
+
|
3904 |
+
#: defaults.php:536
|
3905 |
+
msgid "User changed the Homepage Meta description setting"
|
3906 |
+
msgstr ""
|
3907 |
+
|
3908 |
+
#: defaults.php:536
|
3909 |
+
msgid ""
|
3910 |
+
"Changed the Homepage Meta description%ReportText% in the Yoast SEO plugin "
|
3911 |
+
"settings.%ChangeText%"
|
3912 |
+
msgstr ""
|
3913 |
+
|
3914 |
+
#: defaults.php:537
|
3915 |
+
msgid "User changed the Company or Person setting"
|
3916 |
+
msgstr ""
|
3917 |
+
|
3918 |
+
#: defaults.php:537
|
3919 |
+
msgid ""
|
3920 |
+
"Changed the Company or Person setting from %old% to %new% in the YOAST SEO "
|
3921 |
+
"plugin settings."
|
3922 |
+
msgstr ""
|
3923 |
+
|
3924 |
+
#: defaults.php:538
|
3925 |
+
msgid ""
|
3926 |
+
"User Enabled/Disabled the option Show Posts/Pages in Search Results in the "
|
3927 |
+
"Yoast SEO plugin settings"
|
3928 |
+
msgstr ""
|
3929 |
+
|
3930 |
+
#: defaults.php:538
|
3931 |
+
msgid ""
|
3932 |
+
"%Status% the option Show %SEOPostType% in Search Results in the Yoast SEO "
|
3933 |
+
"plugin settings."
|
3934 |
+
msgstr ""
|
3935 |
+
|
3936 |
+
#: defaults.php:539
|
3937 |
+
msgid ""
|
3938 |
+
"User changed the Posts/Pages title template in the Yoast SEO plugin settings"
|
3939 |
+
msgstr ""
|
3940 |
+
|
3941 |
+
#: defaults.php:539
|
3942 |
+
msgid ""
|
3943 |
+
"Changed the %SEOPostType% title template from %old% to %new% in the Yoast "
|
3944 |
+
"SEO plugin settings."
|
3945 |
+
msgstr ""
|
3946 |
+
|
3947 |
+
#: defaults.php:540
|
3948 |
+
msgid "User Enabled/Disabled SEO analysis in the Yoast SEO plugin settings"
|
3949 |
+
msgstr ""
|
3950 |
+
|
3951 |
+
#: defaults.php:540
|
3952 |
+
msgid "%Status% SEO analysis in the Yoast SEO plugin settings."
|
3953 |
+
msgstr ""
|
3954 |
+
|
3955 |
+
#: defaults.php:541
|
3956 |
+
msgid ""
|
3957 |
+
"User Enabled/Disabled readability analysis in the Yoast SEO plugin settings"
|
3958 |
+
msgstr ""
|
3959 |
+
|
3960 |
+
#: defaults.php:541
|
3961 |
+
msgid "%Status% Readability analysis in the Yoast SEO plugin settings."
|
3962 |
+
msgstr ""
|
3963 |
+
|
3964 |
+
#: defaults.php:542
|
3965 |
+
msgid ""
|
3966 |
+
"User Enabled/Disabled cornerstone content in the Yoast SEO plugin settings"
|
3967 |
+
msgstr ""
|
3968 |
+
|
3969 |
+
#: defaults.php:542
|
3970 |
+
msgid "%Status% Cornerstone content in the Yoast SEO plugin settings."
|
3971 |
+
msgstr ""
|
3972 |
+
|
3973 |
+
#: defaults.php:543
|
3974 |
+
msgid ""
|
3975 |
+
"User Enabled/Disabled the text link counter in the Yoast SEO plugin settings"
|
3976 |
+
msgstr ""
|
3977 |
+
|
3978 |
+
#: defaults.php:543
|
3979 |
+
msgid "%Status% the Text link counter in the Yoast SEO plugin settings."
|
3980 |
+
msgstr ""
|
3981 |
+
|
3982 |
+
#: defaults.php:544
|
3983 |
+
msgid "User Enabled/Disabled XML sitemaps in the Yoast SEO plugin settings"
|
3984 |
+
msgstr ""
|
3985 |
+
|
3986 |
+
#: defaults.php:544
|
3987 |
+
msgid "%Status% XML Sitemaps in the Yoast SEO plugin settings."
|
3988 |
+
msgstr ""
|
3989 |
+
|
3990 |
+
#: defaults.php:545
|
3991 |
+
msgid "User Enabled/Disabled ryte integration in the Yoast SEO plugin settings"
|
3992 |
+
msgstr ""
|
3993 |
+
|
3994 |
+
#: defaults.php:545
|
3995 |
+
msgid "%Status% Ryte Integration in the Yoast SEO plugin settings."
|
3996 |
+
msgstr ""
|
3997 |
+
|
3998 |
+
#: defaults.php:546
|
3999 |
+
msgid ""
|
4000 |
+
"User Enabled/Disabled the admin bar menu in the Yoast SEO plugin settings"
|
4001 |
+
msgstr ""
|
4002 |
+
|
4003 |
+
#: defaults.php:546
|
4004 |
+
msgid "%Status% the Admin bar menu in the Yoast SEO plugin settings."
|
4005 |
+
msgstr ""
|
4006 |
+
|
4007 |
+
#: defaults.php:547
|
4008 |
+
msgid ""
|
4009 |
+
"User changed the Posts/Pages meta description template in the Yoast SEO "
|
4010 |
+
"plugin settings"
|
4011 |
+
msgstr ""
|
4012 |
+
|
4013 |
+
#: defaults.php:547
|
4014 |
+
msgid ""
|
4015 |
+
"Changed the %SEOPostType% meta description template from %old% to %new% in "
|
4016 |
+
"the Yoast SEO plugin settings."
|
4017 |
+
msgstr ""
|
4018 |
+
|
4019 |
+
#: defaults.php:548
|
4020 |
+
msgid ""
|
4021 |
+
"User set the option Date in Snippet Preview for Posts/Pages in the Yoast SEO "
|
4022 |
+
"plugin settings"
|
4023 |
+
msgstr ""
|
4024 |
+
|
4025 |
+
#: defaults.php:548
|
4026 |
+
msgid ""
|
4027 |
+
"%Status% the option Date in Snippet Preview for %SEOPostType% in the Yoast "
|
4028 |
+
"SEO plugin settings."
|
4029 |
+
msgstr ""
|
4030 |
+
|
4031 |
+
#: defaults.php:549
|
4032 |
+
msgid ""
|
4033 |
+
"User set the option Yoast SEO Meta Box for Posts/Pages in the Yoast SEO "
|
4034 |
+
"plugin settings"
|
4035 |
+
msgstr ""
|
4036 |
+
|
4037 |
+
#: defaults.php:549
|
4038 |
+
msgid ""
|
4039 |
+
"%Status% the option Yoast SEO Meta Box for %SEOPostType% in the Yoast SEO "
|
4040 |
+
"plugin settings."
|
4041 |
+
msgstr ""
|
4042 |
+
|
4043 |
+
#: defaults.php:550
|
4044 |
+
msgid ""
|
4045 |
+
"User Enabled/Disabled the advanced settings for authors in the Yoast SEO "
|
4046 |
+
"plugin settings"
|
4047 |
+
msgstr ""
|
4048 |
+
|
4049 |
+
#: defaults.php:550
|
4050 |
+
msgid "%Status% the advanced settings for authors in the Yoast SEO settings."
|
4051 |
+
msgstr ""
|
4052 |
+
|
4053 |
+
#: wp-security-audit-log.php:304 wp-security-audit-log.php:330
|
4054 |
+
#, php-format
|
4055 |
+
msgid "Hey %1$s"
|
4056 |
+
msgstr ""
|
4057 |
+
|
4058 |
+
#: wp-security-audit-log.php:305
|
4059 |
+
msgid ""
|
4060 |
+
"Never miss an important update! Opt-in to our security and feature updates "
|
4061 |
+
"notifications, and non-sensitive diagnostic tracking with freemius.com."
|
4062 |
+
msgstr ""
|
4063 |
+
|
4064 |
+
#: wp-security-audit-log.php:306 wp-security-audit-log.php:332
|
4065 |
+
msgid "Note: "
|
4066 |
+
msgstr ""
|
4067 |
+
|
4068 |
+
#: wp-security-audit-log.php:307 wp-security-audit-log.php:333
|
4069 |
+
msgid "NO AUDIT LOG ACTIVITY & DATA IS SENT BACK TO OUR SERVERS."
|
4070 |
+
msgstr ""
|
4071 |
+
|
4072 |
+
#: wp-security-audit-log.php:331
|
4073 |
+
#, php-format
|
4074 |
+
msgid ""
|
4075 |
+
"Please help us improve %2$s! If you opt-in, some non-sensitive data about "
|
4076 |
+
"your usage of %2$s will be sent to %5$s, a diagnostic tracking service we "
|
4077 |
+
"use. If you skip this, that's okay! %2$s will still work just fine."
|
4078 |
+
msgstr ""
|
4079 |
+
|
4080 |
+
#: wp-security-audit-log.php:382
|
4081 |
+
msgid ""
|
4082 |
+
"Error: You do not have sufficient permissions to disable this custom field."
|
4083 |
+
msgstr ""
|
4084 |
+
|
4085 |
+
#: wp-security-audit-log.php:418
|
4086 |
+
msgid "Error: You do not have sufficient permissions to disable this alert."
|
4087 |
+
msgstr ""
|
4088 |
+
|
4089 |
+
#: wp-security-audit-log.php:530
|
4090 |
#, php-format
|
4091 |
msgid ""
|
4092 |
"You are using a version of PHP that is older than %s, which is no longer "
|
4093 |
+
"supported."
|
4094 |
+
msgstr ""
|
4095 |
+
|
4096 |
+
#: wp-security-audit-log.php:531
|
4097 |
+
msgid ""
|
4098 |
+
"Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com"
|
4099 |
"\">plugins@wpwhitesecurity.com</a> to help you switch the version of PHP you "
|
4100 |
"are using."
|
4101 |
msgstr ""
|
readme.txt
CHANGED
@@ -5,8 +5,8 @@ License: GPLv3
|
|
5 |
License URI: http://www.gnu.org/licenses/gpl.html
|
6 |
Tags: wordpress security plugin, wordpress security audit log, audit log, event log wordpress, wordpress user tracking, wordpress activity log, wordpress audit, security event log, audit trail, wordpress security monitor, wordpress admin, wordpress admin monitoring, user activity, admin, multisite, dashboard, notification, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
|
7 |
Requires at least: 3.6
|
8 |
-
Tested up to: 4.9.
|
9 |
-
Stable tag: 3.1.
|
10 |
Requires PHP: 5.3
|
11 |
|
12 |
An easy to use and comprehensive monitoring & activity log solution that keeps a log of all changes & user activity on your WordPress site.
|
@@ -179,9 +179,24 @@ Please refer to our [Support & Documentation pages](https://www.wpsecurityauditl
|
|
179 |
|
180 |
== Changelog ==
|
181 |
|
182 |
-
= 3.1.
|
183 |
|
184 |
-
|
185 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
|
187 |
Refer to the [WP Security Audit Log change log](https://www.wpsecurityauditlog.com/plugin-change-log/) page for the complete change log.
|
5 |
License URI: http://www.gnu.org/licenses/gpl.html
|
6 |
Tags: wordpress security plugin, wordpress security audit log, audit log, event log wordpress, wordpress user tracking, wordpress activity log, wordpress audit, security event log, audit trail, wordpress security monitor, wordpress admin, wordpress admin monitoring, user activity, admin, multisite, dashboard, notification, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
|
7 |
Requires at least: 3.6
|
8 |
+
Tested up to: 4.9.5
|
9 |
+
Stable tag: 3.1.7
|
10 |
Requires PHP: 5.3
|
11 |
|
12 |
An easy to use and comprehensive monitoring & activity log solution that keeps a log of all changes & user activity on your WordPress site.
|
179 |
|
180 |
== Changelog ==
|
181 |
|
182 |
+
= 3.1.7(2018-04-27) =
|
183 |
|
184 |
+
Release notes: [New Data Inspector and Buffer for External Database](https://www.wpsecurityauditlog.com/releases/3-1-7-new-data-inspector/)
|
185 |
+
|
186 |
+
* **New Features**
|
187 |
+
* New [data inspector in the WordPress activity log viewer](https://www.wpsecurityauditlog.com/support-documentation/data-inspector-wordpress-activity-log/).
|
188 |
+
* Alerts buffer for when the [external WordPress activity log database](https://www.wpsecurityauditlog.com/support-documentation/getting-started-external-db/) is unavailable. The alerts are stored in the WordPress database and website operations are not affected.
|
189 |
+
* Option in External Database settings to use WordPress URL as database table prefix.
|
190 |
+
|
191 |
+
* **Improvements**
|
192 |
+
* Alerts which contain long values are shortened in the viewer and logged in users list. User can view all details in the data inspector.
|
193 |
+
* Set the default setting for [blocking multiple WordPress users sessions](https://www.wpsecurityauditlog.com/support-documentation/managing-multiple-same-wordpress-user-sessions/#allow-override-terminate) to “do not allow override”.
|
194 |
+
* [WordPress login page notification](https://www.wpsecurityauditlog.com/support-documentation/change-disable-wordpress-login-page-notification/) is disabled by default.
|
195 |
+
* Converted the HTML [WordPress reports](https://www.wpsecurityauditlog.com/support-documentation/getting-started-reports-wordpress/) to responsive.
|
196 |
+
* Better support for changes users do via the Ultimate Member Pro plugin.
|
197 |
+
|
198 |
+
* **Bug Fixes**
|
199 |
+
* Plugin now records automated WooCommerce product stock changes done by plugins such as Bulk Stock Management
|
200 |
+
* Fixed a [reported performance issue](https://wordpress.org/support/topic/plugin-hangs-application-solved/). Now plugin audit log refreshes every 30 seconds.
|
201 |
|
202 |
Refer to the [WP Security Audit Log change log](https://www.wpsecurityauditlog.com/plugin-change-log/) page for the complete change log.
|
wp-security-audit-log.php
CHANGED
@@ -4,7 +4,7 @@
|
|
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: 3.1.
|
8 |
* Text Domain: wp-security-audit-log
|
9 |
* Author URI: http://www.wpsecurityauditlog.com/
|
10 |
* License: GPL2
|
@@ -54,7 +54,7 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
54 |
*
|
55 |
* @var string
|
56 |
*/
|
57 |
-
public $version = '3.1.
|
58 |
|
59 |
// Plugin constants.
|
60 |
const PLG_CLS_PRFX = 'WSAL_';
|
@@ -1113,14 +1113,13 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1113 |
public function render_login_page_message( $message ) {
|
1114 |
// Check if the option is enabled.
|
1115 |
$login_message_enabled = $this->settings->is_login_page_notification();
|
1116 |
-
if ( 'true' === $login_message_enabled
|
1117 |
-
|| ( ! $login_message_enabled && 'false' !== $login_message_enabled ) ) {
|
1118 |
// Get login message.
|
1119 |
$message = $this->settings->get_login_page_notification_text();
|
1120 |
|
1121 |
// Default message.
|
1122 |
if ( ! $message ) {
|
1123 |
-
$message =
|
1124 |
} else {
|
1125 |
$message = '<p class="message">' . $message . '</p>';
|
1126 |
}
|
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: 3.1.7
|
8 |
* Text Domain: wp-security-audit-log
|
9 |
* Author URI: http://www.wpsecurityauditlog.com/
|
10 |
* License: GPL2
|
54 |
*
|
55 |
* @var string
|
56 |
*/
|
57 |
+
public $version = '3.1.7';
|
58 |
|
59 |
// Plugin constants.
|
60 |
const PLG_CLS_PRFX = 'WSAL_';
|
1113 |
public function render_login_page_message( $message ) {
|
1114 |
// Check if the option is enabled.
|
1115 |
$login_message_enabled = $this->settings->is_login_page_notification();
|
1116 |
+
if ( 'true' === $login_message_enabled ) {
|
|
|
1117 |
// Get login message.
|
1118 |
$message = $this->settings->get_login_page_notification_text();
|
1119 |
|
1120 |
// Default message.
|
1121 |
if ( ! $message ) {
|
1122 |
+
$message = '<p class="message">' . wp_kses( __( 'For security and auditing purposes, a record of all of your logged-in actions and changes within the WordPress dashboard will be recorded in an audit log with the <a href="https://www.wpsecurityauditlog.com/" target="_blank">WP Security Audit Log plugin</a>. The audit log also includes the IP address where you accessed this site from.', 'wp-security-audit-log' ), $this->allowed_html_tags ) . '</p>';
|
1123 |
} else {
|
1124 |
$message = '<p class="message">' . $message . '</p>';
|
1125 |
}
|