Version Description
(May 2015) =
- Added: Username of logged events now link to that user's profile.
- Fixed: When expanding ocassions the first loaded occasion was the same event as the one you expanded from, and the last ocassion was missing. Looked extra stupid when only 1 occasion existed, and you clicked "show ocassions" only to just find the same event again. So stupid. But fixed now!
- Fixed: If an event had many similar events the list of similar events could freeze the browser. (17948 failed login attempts overnight is not that uncommon it turns out!
- Fixed: Some loggers were missing the "All"-message in the search.
- Changed: Hide some more keys and values by default in the context data popup.
- Changed: Use
truncate
instead ofdelete
when clearing the database. Works much faster on large logs.
Download this release
Release Info
Developer | eskapism |
Plugin | Simple History |
Version | 2.0.30 |
Comparing to | |
See all releases |
Code changes from version 2.0.29 to 2.0.30
- examples/examples.php +26 -0
- inc/SimpleHistory.php +62 -8
- inc/SimpleHistoryLogQuery.php +21 -4
- index.php +2 -2
- js/scripts.js +15 -2
- loggers/SimpleLogger.php +21 -12
- loggers/SimpleMediaLogger.php +1 -0
- loggers/SimpleMenuLogger.php +1 -0
- loggers/SimplePluginLogger.php +1 -0
- loggers/SimplePostLogger.php +1 -0
- loggers/SimpleThemeLogger.php +1 -0
- readme.txt +12 -2
examples/examples.php
CHANGED
@@ -16,6 +16,32 @@ define("SIMPLE_HISTORY_LOG_DEBUG", true);
|
|
16 |
* Some examples of filter usage and so on
|
17 |
*/
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
// Skip adding things to the context table during logging.
|
20 |
// Useful if you don't want to add cool and possible super useful info to your logged events.
|
21 |
// Also nice to have if you want to make sure your database does not grow.
|
16 |
* Some examples of filter usage and so on
|
17 |
*/
|
18 |
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Change capability required to manage the options page of simple history.
|
22 |
+
* Default capability is "manage_options"
|
23 |
+
*/
|
24 |
+
add_filter("simple_history/view_settings_capability", function($capability) {
|
25 |
+
|
26 |
+
$capability = "manage_options";
|
27 |
+
return $capability;
|
28 |
+
|
29 |
+
});
|
30 |
+
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Change capability required to view main simple history page.
|
34 |
+
* Default capability is "edit_pages". Change to for example "manage options"
|
35 |
+
* to only allow admins to view the history log.
|
36 |
+
*/
|
37 |
+
add_filter("simple_history/view_history_capability", function($capability) {
|
38 |
+
|
39 |
+
$capability = "manage_options";
|
40 |
+
return $capability;
|
41 |
+
|
42 |
+
});
|
43 |
+
|
44 |
+
|
45 |
// Skip adding things to the context table during logging.
|
46 |
// Useful if you don't want to add cool and possible super useful info to your logged events.
|
47 |
// Also nice to have if you want to make sure your database does not grow.
|
inc/SimpleHistory.php
CHANGED
@@ -10,7 +10,7 @@ class SimpleHistory {
|
|
10 |
const NAME = "Simple History";
|
11 |
|
12 |
// Dont use this any more! Will be removed in future versions. Use global SIMPLE_HISTORY_VERSION instead.
|
13 |
-
const VERSION = "2.0.
|
14 |
|
15 |
/**
|
16 |
* For singleton
|
@@ -274,7 +274,6 @@ class SimpleHistory {
|
|
274 |
if ($this->is_on_our_own_pages()) {
|
275 |
|
276 |
?>
|
277 |
-
|
278 |
<script type="text/html" id="tmpl-simple-history-base">
|
279 |
|
280 |
<div class="SimpleHistory__waitingForFirstLoad">
|
@@ -350,6 +349,30 @@ class SimpleHistory {
|
|
350 |
|
351 |
</script>
|
352 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
<?php
|
354 |
|
355 |
// Call plugins so they can add their js
|
@@ -1218,9 +1241,9 @@ class SimpleHistory {
|
|
1218 |
</h2>
|
1219 |
|
1220 |
<?php
|
1221 |
-
$active_tab = isset($_GET["selected-tab"]) ? $_GET["selected-tab"] : "settings";
|
1222 |
-
|
1223 |
-
|
1224 |
|
1225 |
<h3 class="nav-tab-wrapper">
|
1226 |
<?php
|
@@ -1610,10 +1633,12 @@ $active_tab = isset($_GET["selected-tab"]) ? $_GET["selected-tab"] : "settings";
|
|
1610 |
$sql_num_rows = "SELECT count(id) AS num_rows FROM {$tableprefix}{$simple_history_table}";
|
1611 |
$num_rows = $wpdb->get_var($sql_num_rows, 0);
|
1612 |
|
1613 |
-
|
|
|
1614 |
$wpdb->query($sql);
|
1615 |
|
1616 |
-
|
|
|
1617 |
$wpdb->query($sql);
|
1618 |
|
1619 |
// Zero state sucks
|
@@ -1970,6 +1995,17 @@ $active_tab = isset($_GET["selected-tab"]) ? $_GET["selected-tab"] : "settings";
|
|
1970 |
*/
|
1971 |
$logRowKeysToShow = apply_filters("simple_history/log_html_output_details_table/row_keys_to_show", $logRowKeysToShow, $oneLogRow);
|
1972 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1973 |
foreach ( $oneLogRow as $rowKey => $rowVal ) {
|
1974 |
|
1975 |
// Only columns from oneLogRow that exist in logRowKeysToShow will be outputed
|
@@ -1995,7 +2031,25 @@ $active_tab = isset($_GET["selected-tab"]) ? $_GET["selected-tab"] : "settings";
|
|
1995 |
|
1996 |
|
1997 |
$logRowContextKeysToShow = array_fill_keys( array_keys( (array) $oneLogRow->context), true);
|
1998 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1999 |
/**
|
2000 |
* Filter what keys to show from the row context
|
2001 |
*
|
10 |
const NAME = "Simple History";
|
11 |
|
12 |
// Dont use this any more! Will be removed in future versions. Use global SIMPLE_HISTORY_VERSION instead.
|
13 |
+
const VERSION = "2.0.30";
|
14 |
|
15 |
/**
|
16 |
* For singleton
|
274 |
if ($this->is_on_our_own_pages()) {
|
275 |
|
276 |
?>
|
|
|
277 |
<script type="text/html" id="tmpl-simple-history-base">
|
278 |
|
279 |
<div class="SimpleHistory__waitingForFirstLoad">
|
349 |
|
350 |
</script>
|
351 |
|
352 |
+
<script type="text/html" id="tmpl-simple-history-occasions-too-many">
|
353 |
+
<li
|
354 |
+
class="SimpleHistoryLogitem
|
355 |
+
SimpleHistoryLogitem--occasion
|
356 |
+
SimpleHistoryLogitem--occasion-tooMany
|
357 |
+
">
|
358 |
+
<div class="SimpleHistoryLogitem__firstcol"></div>
|
359 |
+
<div class="SimpleHistoryLogitem__secondcol">
|
360 |
+
<div class="SimpleHistoryLogitem__text">
|
361 |
+
<?php _e('Sorry, but there are too many similar events to show.', "simple-history"); ?>
|
362 |
+
<!-- <br>occasionsCount: {{ data.occasionsCount }}
|
363 |
+
<br>occasionsCountMaxReturn: {{ data.occasionsCountMaxReturn }}
|
364 |
+
<br>diff: {{ data.occasionsCount - data.occasionsCountMaxReturn }}
|
365 |
+
Suggestions:
|
366 |
+
<ul>
|
367 |
+
<li>- dig into database directly
|
368 |
+
<li>- Export
|
369 |
+
</ul>
|
370 |
+
-->
|
371 |
+
</div>
|
372 |
+
</div>
|
373 |
+
</li>
|
374 |
+
</script>
|
375 |
+
|
376 |
<?php
|
377 |
|
378 |
// Call plugins so they can add their js
|
1241 |
</h2>
|
1242 |
|
1243 |
<?php
|
1244 |
+
$active_tab = isset($_GET["selected-tab"]) ? $_GET["selected-tab"] : "settings";
|
1245 |
+
$settings_base_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0);
|
1246 |
+
?>
|
1247 |
|
1248 |
<h3 class="nav-tab-wrapper">
|
1249 |
<?php
|
1633 |
$sql_num_rows = "SELECT count(id) AS num_rows FROM {$tableprefix}{$simple_history_table}";
|
1634 |
$num_rows = $wpdb->get_var($sql_num_rows, 0);
|
1635 |
|
1636 |
+
#$sql = "DELETE FROM {$tableprefix}{$simple_history_table}";
|
1637 |
+
$sql = "TRUNCATE {$tableprefix}{$simple_history_table}";
|
1638 |
$wpdb->query($sql);
|
1639 |
|
1640 |
+
#$sql = "DELETE FROM {$tableprefix}{$simple_history_context_table}";
|
1641 |
+
$sql = "TRUNCATE {$tableprefix}{$simple_history_context_table}";
|
1642 |
$wpdb->query($sql);
|
1643 |
|
1644 |
// Zero state sucks
|
1995 |
*/
|
1996 |
$logRowKeysToShow = apply_filters("simple_history/log_html_output_details_table/row_keys_to_show", $logRowKeysToShow, $oneLogRow);
|
1997 |
|
1998 |
+
// Hide some keys by default
|
1999 |
+
unset(
|
2000 |
+
$logRowKeysToShow["occasionsID"],
|
2001 |
+
$logRowKeysToShow["subsequentOccasions"],
|
2002 |
+
$logRowKeysToShow["rep"],
|
2003 |
+
$logRowKeysToShow["repeated"],
|
2004 |
+
$logRowKeysToShow["occasionsIDType"],
|
2005 |
+
$logRowKeysToShow["context"]
|
2006 |
+
);
|
2007 |
+
|
2008 |
+
|
2009 |
foreach ( $oneLogRow as $rowKey => $rowVal ) {
|
2010 |
|
2011 |
// Only columns from oneLogRow that exist in logRowKeysToShow will be outputed
|
2031 |
|
2032 |
|
2033 |
$logRowContextKeysToShow = array_fill_keys( array_keys( (array) $oneLogRow->context), true);
|
2034 |
+
/*
|
2035 |
+
error_log($this->json_encode($logRowContextKeysToShow));
|
2036 |
+
Marker - 2 maj 2015 20:51:54
|
2037 |
+
[02-May-2015 18:51:57 UTC] {
|
2038 |
+
"post_id": true,
|
2039 |
+
"post_type": true,
|
2040 |
+
"post_title": true,
|
2041 |
+
"post_prev_post_title": true,
|
2042 |
+
"post_new_post_title": true,
|
2043 |
+
"post_prev_post_name": true,
|
2044 |
+
"post_new_post_name": true,
|
2045 |
+
"_message_key": true,
|
2046 |
+
"_user_id": true,
|
2047 |
+
"_user_login": true,
|
2048 |
+
"_user_email": true,
|
2049 |
+
"_server_remote_addr": true,
|
2050 |
+
"_server_http_referer": true
|
2051 |
+
}
|
2052 |
+
*/
|
2053 |
/**
|
2054 |
* Filter what keys to show from the row context
|
2055 |
*
|
inc/SimpleHistoryLogQuery.php
CHANGED
@@ -66,7 +66,13 @@ class SimpleHistoryLogQuery {
|
|
66 |
"messages" => null,
|
67 |
|
68 |
// userID as number
|
69 |
-
"user" => null
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
);
|
71 |
|
72 |
$args = wp_parse_args( $args, $defaults );
|
@@ -182,10 +188,21 @@ class SimpleHistoryLogQuery {
|
|
182 |
%2$s
|
183 |
';
|
184 |
|
185 |
-
$where .= " AND t.id
|
186 |
$where .= " AND t.occasionsID = '" . esc_sql( $args["occasionsID"] ) . "'";
|
187 |
|
188 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
|
190 |
// [logRowID] => 353
|
191 |
// [occasionsID] => 73b06d5740d15e35079b6aa024255cb3
|
@@ -194,7 +211,7 @@ class SimpleHistoryLogQuery {
|
|
194 |
}
|
195 |
|
196 |
// Determine limit
|
197 |
-
// Both
|
198 |
$is_limit_query = ( is_numeric( $args["posts_per_page"] ) && $args["posts_per_page"] > 0 );
|
199 |
$is_limit_query = $is_limit_query && ( is_numeric( $args["paged"] ) && $args["paged"] > 0 );
|
200 |
if ($is_limit_query) {
|
66 |
"messages" => null,
|
67 |
|
68 |
// userID as number
|
69 |
+
"user" => null,
|
70 |
+
|
71 |
+
// Can also contain:
|
72 |
+
// occasionsCount
|
73 |
+
// occasionsCountMaxReturn
|
74 |
+
// occasionsID
|
75 |
+
|
76 |
);
|
77 |
|
78 |
$args = wp_parse_args( $args, $defaults );
|
188 |
%2$s
|
189 |
';
|
190 |
|
191 |
+
$where .= " AND t.id < " . (int) $args["logRowID"];
|
192 |
$where .= " AND t.occasionsID = '" . esc_sql( $args["occasionsID"] ) . "'";
|
193 |
|
194 |
+
if ( isset( $args["occasionsCountMaxReturn"] ) && (int) $args["occasionsCountMaxReturn"] < (int) $args["occasionsCount"] ) {
|
195 |
+
|
196 |
+
// Limit to max nn events if occasionsCountMaxReturn is set.
|
197 |
+
// Used in gui to prevent top many events returned, that can stall the browser.
|
198 |
+
$limit = "LIMIT " . (int) $args["occasionsCountMaxReturn"];
|
199 |
+
|
200 |
+
} else {
|
201 |
+
|
202 |
+
// Regular limit that gets all occasions
|
203 |
+
$limit = "LIMIT " . (int) $args["occasionsCount"];
|
204 |
+
|
205 |
+
}
|
206 |
|
207 |
// [logRowID] => 353
|
208 |
// [occasionsID] => 73b06d5740d15e35079b6aa024255cb3
|
211 |
}
|
212 |
|
213 |
// Determine limit
|
214 |
+
// Both posts_per_page and paged must be set
|
215 |
$is_limit_query = ( is_numeric( $args["posts_per_page"] ) && $args["posts_per_page"] > 0 );
|
216 |
$is_limit_query = $is_limit_query && ( is_numeric( $args["paged"] ) && $args["paged"] > 0 );
|
217 |
if ($is_limit_query) {
|
index.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Simple History
|
4 |
Plugin URI: http://simple-history.com
|
5 |
Description: Plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI.
|
6 |
-
Version: 2.0.
|
7 |
Author: Pär Thernström
|
8 |
Author URI: http://simple-history.com/
|
9 |
License: GPL2
|
@@ -42,7 +42,7 @@ if ( version_compare( phpversion(), "5.3", ">=") ) {
|
|
42 |
*/
|
43 |
// register_activation_hook( trailingslashit(WP_PLUGIN_DIR) . trailingslashit( plugin_basename(__DIR__) ) . "index.php" , array("SimpleHistory", "on_plugin_activate" ) );
|
44 |
|
45 |
-
define( 'SIMPLE_HISTORY_VERSION', '2.0.
|
46 |
|
47 |
define( 'SIMPLE_HISTORY_FILE', __FILE__ );
|
48 |
define( 'SIMPLE_HISTORY_PATH', plugin_dir_path( SIMPLE_HISTORY_FILE ) );
|
3 |
Plugin Name: Simple History
|
4 |
Plugin URI: http://simple-history.com
|
5 |
Description: Plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI.
|
6 |
+
Version: 2.0.30
|
7 |
Author: Pär Thernström
|
8 |
Author URI: http://simple-history.com/
|
9 |
License: GPL2
|
42 |
*/
|
43 |
// register_activation_hook( trailingslashit(WP_PLUGIN_DIR) . trailingslashit( plugin_basename(__DIR__) ) . "index.php" , array("SimpleHistory", "on_plugin_activate" ) );
|
44 |
|
45 |
+
define( 'SIMPLE_HISTORY_VERSION', '2.0.30' );
|
46 |
|
47 |
define( 'SIMPLE_HISTORY_FILE', __FILE__ );
|
48 |
define( 'SIMPLE_HISTORY_PATH', plugin_dir_path( SIMPLE_HISTORY_FILE ) );
|
js/scripts.js
CHANGED
@@ -133,7 +133,8 @@ var simple_history = (function($) {
|
|
133 |
data: {
|
134 |
logRowID: options.logRowID,
|
135 |
occasionsID: options.occasionsID,
|
136 |
-
occasionsCount: options.occasionsCount
|
|
|
137 |
}
|
138 |
});
|
139 |
|
@@ -167,6 +168,8 @@ var simple_history = (function($) {
|
|
167 |
|
168 |
var logRowID = this.attributes.logRow.data("rowId");
|
169 |
var occasionsCount = this.attributes.logRow.data("occasionsCount");
|
|
|
|
|
170 |
var occasionsID = this.attributes.logRow.data("occasionsId");
|
171 |
|
172 |
this.attributes.logRow.addClass("SimpleHistoryLogitem--occasionsOpening");
|
@@ -175,7 +178,8 @@ var simple_history = (function($) {
|
|
175 |
logRow: this.attributes.logRow,
|
176 |
logRowID: logRowID,
|
177 |
occasionsID: occasionsID,
|
178 |
-
occasionsCount: occasionsCount
|
|
|
179 |
});
|
180 |
|
181 |
this.logRows.on("reset", this.render, this);
|
@@ -197,6 +201,15 @@ var simple_history = (function($) {
|
|
197 |
$html = $html.add($li);
|
198 |
});
|
199 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
this.$el.html($html);
|
201 |
|
202 |
this.attributes.logRow.removeClass("SimpleHistoryLogitem--occasionsOpening").addClass("SimpleHistoryLogitem--occasionsOpened");
|
133 |
data: {
|
134 |
logRowID: options.logRowID,
|
135 |
occasionsID: options.occasionsID,
|
136 |
+
occasionsCount: options.occasionsCount,
|
137 |
+
occasionsCountMaxReturn: options.occasionsCountMaxReturn
|
138 |
}
|
139 |
});
|
140 |
|
168 |
|
169 |
var logRowID = this.attributes.logRow.data("rowId");
|
170 |
var occasionsCount = this.attributes.logRow.data("occasionsCount");
|
171 |
+
var occasionsCountMaxReturn = 15;
|
172 |
+
this.occasionsCountMaxReturn = occasionsCountMaxReturn;
|
173 |
var occasionsID = this.attributes.logRow.data("occasionsId");
|
174 |
|
175 |
this.attributes.logRow.addClass("SimpleHistoryLogitem--occasionsOpening");
|
178 |
logRow: this.attributes.logRow,
|
179 |
logRowID: logRowID,
|
180 |
occasionsID: occasionsID,
|
181 |
+
occasionsCount: occasionsCount,
|
182 |
+
occasionsCountMaxReturn: occasionsCountMaxReturn
|
183 |
});
|
184 |
|
185 |
this.logRows.on("reset", this.render, this);
|
201 |
$html = $html.add($li);
|
202 |
});
|
203 |
|
204 |
+
// If occasionsCount is more than occasionsCountMaxReturn then show a message
|
205 |
+
var occasionsCount = this.attributes.logRow.data("occasionsCount");
|
206 |
+
if (occasionsCount > this.occasionsCountMaxReturn) {
|
207 |
+
|
208 |
+
var templateTooMany = wp.template("simple-history-occasions-too-many");
|
209 |
+
$html = $html.add(templateTooMany({ occasionsCount: occasionsCount, occasionsCountMaxReturn: this.occasionsCountMaxReturn }));
|
210 |
+
|
211 |
+
}
|
212 |
+
|
213 |
this.$el.html($html);
|
214 |
|
215 |
this.attributes.logRow.removeClass("SimpleHistoryLogitem--occasionsOpening").addClass("SimpleHistoryLogitem--occasionsOpened");
|
loggers/SimpleLogger.php
CHANGED
@@ -168,17 +168,24 @@ class SimpleLogger {
|
|
168 |
|
169 |
$user_display_name = $user->display_name;
|
170 |
|
171 |
-
$tmpl_initiator_html = '
|
172 |
-
<strong class="SimpleHistoryLogitem__inlineDivided">%3$s</strong>
|
173 |
-
<span class="SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__headerEmail">%2$s</span>
|
174 |
-
' ;
|
175 |
-
|
176 |
// If user who logged this is the currently logged in user
|
177 |
-
//
|
178 |
-
if ($is_current_user) {
|
|
|
179 |
$tmpl_initiator_html = '
|
180 |
-
<
|
|
|
|
|
181 |
' ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
}
|
183 |
|
184 |
/**
|
@@ -196,7 +203,8 @@ class SimpleLogger {
|
|
196 |
esc_html($user->user_email), // 2
|
197 |
esc_html($user_display_name), // 3
|
198 |
$user_role, // 4
|
199 |
-
_x("You", "header output when initiator is the currently logged in user", "simple-history")
|
|
|
200 |
);
|
201 |
|
202 |
} else if ($user_id > 0) {
|
@@ -211,9 +219,9 @@ class SimpleLogger {
|
|
211 |
'<strong class="SimpleHistoryLogitem__inlineDivided">' .
|
212 |
__('Deleted user (had id %1$s, email %2$s, login %3$s)', "simple-history") .
|
213 |
'</strong>',
|
214 |
-
esc_html($context["_user_id"]),
|
215 |
-
esc_html($context["_user_email"]),
|
216 |
-
esc_html($context["_user_login"])
|
217 |
);
|
218 |
|
219 |
}
|
@@ -510,6 +518,7 @@ class SimpleLogger {
|
|
510 |
break;
|
511 |
|
512 |
}
|
|
|
513 |
/**
|
514 |
* Filter generated output for row image (sender image)
|
515 |
*
|
168 |
|
169 |
$user_display_name = $user->display_name;
|
170 |
|
|
|
|
|
|
|
|
|
|
|
171 |
// If user who logged this is the currently logged in user
|
172 |
+
// skip name and email and use just "You"
|
173 |
+
if ( $is_current_user ) {
|
174 |
+
|
175 |
$tmpl_initiator_html = '
|
176 |
+
<a href="%6$s" class="SimpleHistoryLogitem__headerUserProfileLink">
|
177 |
+
<strong class="SimpleHistoryLogitem__inlineDivided">%5$s</strong>
|
178 |
+
</a>
|
179 |
' ;
|
180 |
+
} else {
|
181 |
+
|
182 |
+
$tmpl_initiator_html = '
|
183 |
+
<a href="%6$s" class="SimpleHistoryLogitem__headerUserProfileLink">
|
184 |
+
<strong class="SimpleHistoryLogitem__inlineDivided">%3$s</strong>
|
185 |
+
<span class="SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__headerEmail">%2$s</span>
|
186 |
+
</a>
|
187 |
+
';
|
188 |
+
|
189 |
}
|
190 |
|
191 |
/**
|
203 |
esc_html($user->user_email), // 2
|
204 |
esc_html($user_display_name), // 3
|
205 |
$user_role, // 4
|
206 |
+
_x("You", "header output when initiator is the currently logged in user", "simple-history"), // 5
|
207 |
+
get_edit_user_link( $user_id ) // 6
|
208 |
);
|
209 |
|
210 |
} else if ($user_id > 0) {
|
219 |
'<strong class="SimpleHistoryLogitem__inlineDivided">' .
|
220 |
__('Deleted user (had id %1$s, email %2$s, login %3$s)', "simple-history") .
|
221 |
'</strong>',
|
222 |
+
esc_html($context["_user_id"]), // 1
|
223 |
+
esc_html($context["_user_email"]), // 2
|
224 |
+
esc_html($context["_user_login"]) // 3
|
225 |
);
|
226 |
|
227 |
}
|
518 |
break;
|
519 |
|
520 |
}
|
521 |
+
|
522 |
/**
|
523 |
* Filter generated output for row image (sender image)
|
524 |
*
|
loggers/SimpleMediaLogger.php
CHANGED
@@ -29,6 +29,7 @@ class SimpleMediaLogger extends SimpleLogger
|
|
29 |
"labels" => array(
|
30 |
"search" => array(
|
31 |
"label" => _x("Media", "Media logger: search", "simple-history"),
|
|
|
32 |
"options" => array(
|
33 |
_x("Added media", "Media logger: search", "simple-history") => array(
|
34 |
"attachment_created"
|
29 |
"labels" => array(
|
30 |
"search" => array(
|
31 |
"label" => _x("Media", "Media logger: search", "simple-history"),
|
32 |
+
"label_all" => _x("All media activity", "Media logger: search", "simple-history"),
|
33 |
"options" => array(
|
34 |
_x("Added media", "Media logger: search", "simple-history") => array(
|
35 |
"attachment_created"
|
loggers/SimpleMenuLogger.php
CHANGED
@@ -31,6 +31,7 @@ class SimpleMenuLogger extends SimpleLogger
|
|
31 |
"labels" => array(
|
32 |
"search" => array(
|
33 |
"label" => _x("Menus", "Menu logger: search", "simple-history"),
|
|
|
34 |
"options" => array(
|
35 |
_x("Created menus", "Menu updates logger: search", "simple-history") => array(
|
36 |
"created_menu"
|
31 |
"labels" => array(
|
32 |
"search" => array(
|
33 |
"label" => _x("Menus", "Menu logger: search", "simple-history"),
|
34 |
+
"label_all" => _x("All menu activity", "Menu updates logger: search", "simple-history"),
|
35 |
"options" => array(
|
36 |
_x("Created menus", "Menu updates logger: search", "simple-history") => array(
|
37 |
"created_menu"
|
loggers/SimplePluginLogger.php
CHANGED
@@ -82,6 +82,7 @@ class SimplePluginLogger extends SimpleLogger
|
|
82 |
"labels" => array(
|
83 |
"search" => array(
|
84 |
"label" => _x("Plugins", "Plugin logger: search", "simple-history"),
|
|
|
85 |
"options" => array(
|
86 |
_x("Activated plugins", "Plugin logger: search", "simple-history") => array(
|
87 |
'plugin_activated'
|
82 |
"labels" => array(
|
83 |
"search" => array(
|
84 |
"label" => _x("Plugins", "Plugin logger: search", "simple-history"),
|
85 |
+
"label_all" => _x("All plugin activity", "Plugin logger: search", "simple-history"),
|
86 |
"options" => array(
|
87 |
_x("Activated plugins", "Plugin logger: search", "simple-history") => array(
|
88 |
'plugin_activated'
|
loggers/SimplePostLogger.php
CHANGED
@@ -125,6 +125,7 @@ class SimplePostLogger extends SimpleLogger
|
|
125 |
"labels" => array(
|
126 |
"search" => array(
|
127 |
"label" => _x("Posts & Pages", "Post logger: search", "simple-history"),
|
|
|
128 |
"options" => array(
|
129 |
_x("Posts created", "Post logger: search", "simple-history") => array(
|
130 |
"post_created"
|
125 |
"labels" => array(
|
126 |
"search" => array(
|
127 |
"label" => _x("Posts & Pages", "Post logger: search", "simple-history"),
|
128 |
+
"label_all" => _x("All posts & pages activity", "Post logger: search", "simple-history"),
|
129 |
"options" => array(
|
130 |
_x("Posts created", "Post logger: search", "simple-history") => array(
|
131 |
"post_created"
|
loggers/SimpleThemeLogger.php
CHANGED
@@ -35,6 +35,7 @@ class SimpleThemeLogger extends SimpleLogger {
|
|
35 |
"labels" => array(
|
36 |
"search" => array(
|
37 |
"label" => _x("Themes & Widgets", "Theme logger: search", "simple-history"),
|
|
|
38 |
"options" => array(
|
39 |
_x("Switched themes", "Theme logger: search", "simple-history") => array(
|
40 |
"theme_switched"
|
35 |
"labels" => array(
|
36 |
"search" => array(
|
37 |
"label" => _x("Themes & Widgets", "Theme logger: search", "simple-history"),
|
38 |
+
"label_all" => _x("All theme activity", "Theme logger: search", "simple-history"),
|
39 |
"options" => array(
|
40 |
_x("Switched themes", "Theme logger: search", "simple-history") => array(
|
41 |
"theme_switched"
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: eskapism
|
|
3 |
Donate link: http://eskapism.se/sida/donate/
|
4 |
Tags: history, log, changes, changelog, audit, trail, pages, attachments, users, cms, dashboard, admin, syslog, feed, activity, stream
|
5 |
Requires at least: 3.6.0
|
6 |
-
Tested up to: 4.2
|
7 |
-
Stable tag: 2.0.
|
8 |
|
9 |
View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
|
10 |
|
@@ -111,10 +111,20 @@ initiated by a specific user.
|
|
111 |
|
112 |
4. Click on the IP address of an entry to view the location of for example a failed login attempt.
|
113 |
|
|
|
114 |
== Changelog ==
|
115 |
|
116 |
## Changelog
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
= 2.0.29 (April 2015) =
|
119 |
|
120 |
- Added: Introducing [Post "Quick Diff"](http://eskapism.se/blog/2015/04/quick-diff-shows-post-changes-in-wordpress/) – a very simple and efficient way to quickly see what’s been changed in a post. With Quick Diff you will in a glance see the difference between the title, permalink, content, publish date, post status, post author, or the template of the post. It's really a super simple and fast way to follow the work of your co-editors.
|
3 |
Donate link: http://eskapism.se/sida/donate/
|
4 |
Tags: history, log, changes, changelog, audit, trail, pages, attachments, users, cms, dashboard, admin, syslog, feed, activity, stream
|
5 |
Requires at least: 3.6.0
|
6 |
+
Tested up to: 4.2.1
|
7 |
+
Stable tag: 2.0.30
|
8 |
|
9 |
View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
|
10 |
|
111 |
|
112 |
4. Click on the IP address of an entry to view the location of for example a failed login attempt.
|
113 |
|
114 |
+
|
115 |
== Changelog ==
|
116 |
|
117 |
## Changelog
|
118 |
|
119 |
+
= 2.0.30 (May 2015) =
|
120 |
+
|
121 |
+
- Added: Username of logged events now link to that user's profile.
|
122 |
+
- Fixed: When expanding ocassions the first loaded occasion was the same event as the one you expanded from, and the last ocassion was missing. Looked extra stupid when only 1 occasion existed, and you clicked "show ocassions" only to just find the same event again. So stupid. But fixed now!
|
123 |
+
- Fixed: If an event had many similar events the list of similar events could freeze the browser. ([17948 failed login attempts overnight](https://twitter.com/eskapism/status/595478847598002176) is not that uncommon it turns out!
|
124 |
+
- Fixed: Some loggers were missing the "All"-message in the search.
|
125 |
+
- Changed: Hide some more keys and values by default in the context data popup.
|
126 |
+
- Changed: Use `truncate` instead of `delete` when clearing the database. Works much faster on large logs.
|
127 |
+
|
128 |
= 2.0.29 (April 2015) =
|
129 |
|
130 |
- Added: Introducing [Post "Quick Diff"](http://eskapism.se/blog/2015/04/quick-diff-shows-post-changes-in-wordpress/) – a very simple and efficient way to quickly see what’s been changed in a post. With Quick Diff you will in a glance see the difference between the title, permalink, content, publish date, post status, post author, or the template of the post. It's really a super simple and fast way to follow the work of your co-editors.
|