Simple History - Version 2.0.6

Version Description

(November 2014) =

  • Added: WordPress 4.1 added the feature to log out a user from all their sessions. Simple History now logs when a user is logged out from all their sessions except the current browser, or if an admin destroys all sessions for a user. View screenshot of new session logout log item

  • Added: filter to shortcut loading of a dropin. Example that completely skips loading the RSS-feed-dropin: add_filter("simple_history/dropin/load_dropin_SimpleHistoryRSSDropin", "__return_false");

Download this release

Release Info

Developer eskapism
Plugin Icon 128x128 Simple History
Version 2.0.6
Comparing to
See all releases

Code changes from version 2.0.21 to 2.0.6

Files changed (44) hide show
  1. README.md +4 -4
  2. SimpleHistory.php +550 -977
  3. SimpleHistoryLogQuery.php +0 -10
  4. css/styles.css +39 -71
  5. dropins/SimpleHistoryFilterDropin.css +5 -66
  6. dropins/SimpleHistoryFilterDropin.js +14 -23
  7. dropins/SimpleHistoryFilterDropin.php +92 -107
  8. dropins/SimpleHistoryIpInfoDropin.css +0 -135
  9. dropins/SimpleHistoryIpInfoDropin.js +2 -61
  10. dropins/SimpleHistoryIpInfoDropin.php +2 -137
  11. dropins/SimpleHistoryNewRowsNotifier.php +1 -1
  12. dropins/SimpleHistoryRSSDropin.php +28 -34
  13. dropins/SimpleHistorySettingsLogtestDropin.php +10 -14
  14. dropins/SimpleHistorySidebarDropin.css +0 -28
  15. dropins/SimpleHistorySidebarDropin.php +0 -225
  16. examples.php +4 -77
  17. index.php +57 -15
  18. js/scripts.js +37 -44
  19. languages/simple-history-da_DK.mo +0 -0
  20. languages/simple-history-da_DK.po +0 -1790
  21. languages/simple-history-de_DE.mo +0 -0
  22. languages/simple-history-de_DE.po +269 -1475
  23. languages/simple-history-nl_NL.mo +0 -0
  24. languages/simple-history-nl_NL.po +0 -1527
  25. languages/simple-history-pl_PL.mo +0 -0
  26. languages/simple-history-pl_PL.po +542 -1293
  27. languages/simple-history-sv_SE.mo +0 -0
  28. languages/simple-history-sv_SE.po +169 -403
  29. languages/simple-history.pot +161 -377
  30. loggers/SimpleCommentsLogger.php +77 -80
  31. loggers/SimpleCoreUpdatesLogger.php +1 -1
  32. loggers/SimpleLogger.php +325 -398
  33. loggers/SimpleMediaLogger.php +33 -86
  34. loggers/SimpleOptionsLogger.php +10 -10
  35. loggers/SimplePluginLogger.php +6 -35
  36. loggers/SimplePostLogger.php +6 -222
  37. loggers/SimpleThemeLogger.php +4 -8
  38. loggers/SimpleUserLogger.php +112 -125
  39. readme.txt +4 -130
  40. screenshot-1.png +0 -0
  41. screenshot-2.png +0 -0
  42. screenshot-3.png +0 -0
  43. screenshot-4.png +0 -0
  44. templates/settings-statsForGeeks.php +9 -22
README.md CHANGED
@@ -13,19 +13,19 @@ This screenshot show the log view + it also shows the filter function in use: th
13
  are of type post and pages and media (i.e. images & other uploads), and only events
14
  initiated by a specific user.
15
 
16
- ![Simple History screenshot](https://raw.githubusercontent.com/bonny/WordPress-Simple-History/master/screenshot-1.png)
17
 
18
  ## Events with different severity
19
 
20
  Simple History uses the log levels specified in the [PHP PSR-3 standard](http://www.php-fig.org/psr/psr-3/).
21
 
22
- ![Simple History screenshot](https://raw.githubusercontent.com/bonny/WordPress-Simple-History/master/screenshot-2.png)
23
 
24
  ## Events have context with extra details
25
 
26
  Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
27
 
28
- ![Simple History screenshot](https://raw.githubusercontent.com/bonny/WordPress-Simple-History/master/screenshot-3.png)
29
 
30
  # Plugin API
31
 
@@ -43,4 +43,4 @@ SimpleLogger()->debug("Ok, cron job is running!");
43
 
44
  ```
45
 
46
- You will find more examples in the [examples.php](https://github.com/bonny/WordPress-Simple-History/blob/master/examples.php) file.
13
  are of type post and pages and media (i.e. images & other uploads), and only events
14
  initiated by a specific user.
15
 
16
+ ![Simple History screenshot](https://raw.githubusercontent.com/bonny/WordPress-Simple-History/v2/screenshot-1.png)
17
 
18
  ## Events with different severity
19
 
20
  Simple History uses the log levels specified in the [PHP PSR-3 standard](http://www.php-fig.org/psr/psr-3/).
21
 
22
+ ![Simple History screenshot](https://raw.githubusercontent.com/bonny/WordPress-Simple-History/v2/screenshot-2.png)
23
 
24
  ## Events have context with extra details
25
 
26
  Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
27
 
28
+ ![Simple History screenshot](https://raw.githubusercontent.com/bonny/WordPress-Simple-History/v2/screenshot-3.png)
29
 
30
  # Plugin API
31
 
43
 
44
  ```
45
 
46
+ See more examples at [simple-history.com/docs](http://simple-history.com/docs).
SimpleHistory.php CHANGED
@@ -2,17 +2,17 @@
2
 
3
  /**
4
  * Main class for Simple History
5
- */
6
  class SimpleHistory {
7
 
8
  const NAME = "Simple History";
9
- const VERSION = "2.0.21";
10
 
11
  /**
12
  * Capability required to view the history log
13
  */
14
  private $view_history_capability;
15
-
16
  /**
17
  * Capability required to view and edit the settings page
18
  */
@@ -41,13 +41,6 @@ class SimpleHistory {
41
  */
42
  private $doFilterGettext_currentLogger = null;
43
 
44
- /**
45
- * Used to store latest translations used by __()
46
- * Required to automagically determine orginal text and text domain
47
- * for calls like this `SimpleLogger()->log( __("My translated message") );`
48
- */
49
- public $gettextLatestTranslations = array();
50
-
51
  /**
52
  * All registered settings tabs
53
  */
@@ -65,133 +58,59 @@ class SimpleHistory {
65
  function __construct() {
66
 
67
  /**
68
- * Fires before Simple History does it's init stuff
69
- *
70
- * @since 2.0
71
- *
72
- * @param SimpleHistory $SimpleHistory This class.
73
- */
74
- do_action("simple_history/before_init", $this);
75
 
76
  $this->setupVariables();
77
 
78
  // Actions and filters, ordered by order specified in codex: http://codex.wordpress.org/Plugin_API/Action_Reference
79
- add_action('plugins_loaded', array($this, 'load_plugin_textdomain'));
80
- add_action('plugins_loaded', array($this, 'add_default_settings_tabs'));
81
- add_action('plugins_loaded', array($this, 'loadLoggers'));
82
- add_action('plugins_loaded', array($this, 'loadDropins'));
83
 
84
  // Run before loading of loggers and before menu items are added
85
- add_action('plugins_loaded', array($this, 'check_for_upgrade'), 5);
86
-
87
- add_action('plugins_loaded', array($this, 'setup_cron'));
88
 
89
- add_action('admin_menu', array($this, 'add_admin_pages'));
90
- add_action('admin_menu', array($this, 'add_settings'));
91
 
92
- add_action('admin_footer', array($this, "add_js_templates"));
 
 
93
 
94
- add_action('wp_dashboard_setup', array($this, 'add_dashboard_widget'));
95
 
96
- add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
97
-
98
- add_action('admin_head', array($this, "onAdminHead"));
99
- add_action('admin_footer', array($this, "onAdminFooter"));
100
 
101
  // Filters and actions not called during regular boot
102
  add_filter("gettext", array($this, 'filter_gettext'), 20, 3);
103
  add_filter("gettext_with_context", array($this, 'filter_gettext_with_context'), 20, 4);
104
 
105
- add_filter('gettext', array( $this, "filter_gettext_storeLatestTranslations" ), 10, 3 );
106
-
107
- add_action('simple_history/history_page/before_gui', array($this, "output_quick_stats"));
108
- add_action('simple_history/dashboard/before_gui', array($this, "output_quick_stats"));
109
 
110
- add_action('wp_ajax_simple_history_api', array($this, 'api'));
 
111
 
112
- add_filter('plugin_action_links_simple-history/index.php', array($this, 'plugin_action_links'), 10, 4);
113
 
114
  /**
115
- * Fires after Simple History has done it's init stuff
116
- *
117
- * @since 2.0
118
- *
119
- * @param SimpleHistory $SimpleHistory This class.
120
- */
121
- do_action("simple_history/after_init", $this);
122
-
123
- // Add some extra info to each logged context when SIMPLE_HISTORY_LOG_DEBUG is set and true
124
- if ( defined("SIMPLE_HISTORY_LOG_DEBUG") && SIMPLE_HISTORY_LOG_DEBUG ) {
125
-
126
- add_filter("simple_history/log_argument/context", function($context, $level, $message, $logger) {
127
-
128
- $sh = $GLOBALS["simple_history"];
129
- $context["_debug_get"] = $sh->json_encode( $_GET );
130
- $context["_debug_post"] = $sh->json_encode( $_POST );
131
- $context["_debug_server"] = $sh->json_encode( $_SERVER );
132
- $context["_debug_php_sapi_name"] = php_sapi_name();
133
-
134
- global $argv;
135
- $context["_debug_argv"] = $sh->json_encode( $argv );
136
-
137
- $consts = get_defined_constants(true);
138
- $consts = $consts["user"];
139
- $context["_debug_user_constants"] = $sh->json_encode( $consts );
140
-
141
- $postdata = file_get_contents("php://input");
142
- $context["_debug_http_raw_post_data"] = $sh->json_encode( $postdata );
143
 
144
- return $context;
145
 
146
- }, 10, 4);
147
-
148
- }
149
-
150
- }
151
-
152
- function filter_gettext_storeLatestTranslations($translation, $text, $domain) {
153
-
154
- $array_max_size = 5;
155
-
156
- // Keep a listing of the n latest translation
157
- // when SimpleLogger->log() is called from anywhere we can then search for the
158
- // translated string among our n latest things and find it there, if it's translated
159
- //global $sh_latest_translations;
160
- $sh_latest_translations = $this->gettextLatestTranslations;
161
-
162
- $sh_latest_translations[$translation] = array(
163
- "translation" => $translation,
164
- "text" => $text,
165
- "domain" => $domain,
166
- );
167
-
168
- $arr_length = sizeof($sh_latest_translations);
169
- if ($arr_length > $array_max_size) {
170
- $sh_latest_translations = array_slice($sh_latest_translations, $arr_length - $array_max_size);
171
- }
172
-
173
- $this->gettextLatestTranslations = $sh_latest_translations;
174
-
175
- return $translation;
176
-
177
- }
178
-
179
- function setup_cron() {
180
-
181
- add_filter("simple_history/maybe_purge_db", array( $this, "maybe_purge_db") );
182
-
183
- if ( ! wp_next_scheduled('simple_history/maybe_purge_db') ) {
184
- wp_schedule_event(time(), 'daily', 'simple_history/maybe_purge_db');
185
- #error_log("not scheduled, so do schedule");
186
- } else {
187
- #error_log("is scheduled");
188
- }
189
-
190
- // Remove old schedule (only author dev sites should have it)
191
- $old_next_scheduled = wp_next_scheduled('simple_history/purge_db');
192
- if ( $old_next_scheduled ) {
193
- wp_unschedule_event($old_next_scheduled, 'simple_history/purge_db');
194
- }
195
 
196
  }
197
 
@@ -199,9 +118,9 @@ class SimpleHistory {
199
 
200
  # Log that an email has been sent
201
  simple_history_add(array(
202
- "object_type" => "Email",
203
- "object_name" => "Hi there",
204
- "action" => "was sent",
205
  ));
206
 
207
  # Will show “Plugin your_plugin_name Edited” in the history log
@@ -212,29 +131,20 @@ class SimpleHistory {
212
 
213
  # Log with some extra details about the email
214
  simple_history_add(array(
215
- "object_type" => "Email",
216
- "object_name" => "Hi there",
217
- "action" => "was sent",
218
- "description" => "The database query to generate the email took .3 seconds. This is email number 4 that is sent to this user",
219
  ));
220
 
221
- }
222
-
223
- public function onAdminHead() {
224
-
225
- if ($this->is_on_our_own_pages()) {
226
-
227
- do_action("simple_history/admin_head", $this);
228
-
229
- }
230
 
231
  }
232
 
233
- public function onAdminFooter() {
234
-
235
- if ($this->is_on_our_own_pages()) {
236
 
237
- do_action("simple_history/admin_footer", $this);
 
 
238
 
239
  }
240
 
@@ -244,16 +154,16 @@ class SimpleHistory {
244
  * Output JS templated into footer
245
  */
246
  public function add_js_templates($hook) {
247
-
248
- if ($this->is_on_our_own_pages()) {
249
 
250
  ?>
251
-
252
  <script type="text/html" id="tmpl-simple-history-base">
253
 
254
  <div class="SimpleHistory__waitingForFirstLoad">
255
  <img src="<?php echo admin_url("/images/spinner.gif");?>" alt="" width="20" height="20">
256
- <?php echo _x("Loading history...", "Message visible while waiting for log to load from server the first time", "simple-history")?>
257
  </div>
258
 
259
  <div class="SimpleHistoryLogitemsWrap">
@@ -270,38 +180,38 @@ class SimpleHistory {
270
  </script>
271
 
272
  <script type="text/html" id="tmpl-simple-history-logitems-pagination">
273
-
274
  <!-- this uses the (almost) the same html as WP does -->
275
  <div class="SimpleHistoryPaginationPages">
276
- <!--
277
- {{ data.page_rows_from }}–{{ data.page_rows_to }}
278
- <span class="SimpleHistoryPaginationDisplayNum"> of {{ data.total_row_count }} </span>
279
  -->
280
  <span class="SimpleHistoryPaginationLinks">
281
- <a
282
- data-direction="first"
283
- class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--firstPage <# if ( data.api_args.paged <= 1 ) { #> disabled <# } #>"
284
- title="{{ data.strings.goToTheFirstPage }}"
285
  href="#">«</a>
286
- <a
287
- data-direction="prev"
288
- class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--prevPage <# if ( data.api_args.paged <= 1 ) { #> disabled <# } #>"
289
- title="{{ data.strings.goToThePrevPage }}"
290
  href="#">‹</a>
291
  <span class="SimpleHistoryPaginationInput">
292
- <input class="SimpleHistoryPaginationCurrentPage" title="{{ data.strings.currentPage }}" type="text" name="paged" value="{{ data.api_args.paged }}" size="4">
293
- <?php _x("of", "page n of n", "simple-history")?>
294
- <span class="total-pages">{{ data.pages_count }}</span>
295
  </span>
296
- <a
297
- data-direction="next"
298
- class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--nextPage <# if ( data.api_args.paged >= data.pages_count ) { #> disabled <# } #>"
299
- title="{{ data.strings.goToTheNextPage }}"
300
  href="#">›</a>
301
- <a
302
- data-direction="last"
303
- class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--lastPage <# if ( data.api_args.paged >= data.pages_count ) { #> disabled <# } #>"
304
- title="{{ data.strings.goToTheLastPage }}"
305
  href="#">»</a>
306
  </span>
307
  </div>
@@ -327,8 +237,8 @@ class SimpleHistory {
327
  <?php
328
 
329
  // Call plugins so they can add their js
330
- foreach ($this->instantiatedLoggers as $one_logger) {
331
- if (method_exists($one_logger["instance"], "adminJS")) {
332
  $one_logger["instance"]->adminJS();
333
  }
334
  }
@@ -346,7 +256,7 @@ class SimpleHistory {
346
  *
347
  */
348
  public function api() {
349
-
350
  global $wpdb;
351
 
352
  // Fake slow answers
@@ -356,22 +266,23 @@ class SimpleHistory {
356
  unset($args["action"]);
357
 
358
  // Type = overview | ...
359
- $type = isset($_GET["type"]) ? $_GET["type"] : null;
360
 
361
- if (empty($args) || !$type) {
362
 
363
- wp_send_json_error(array(
364
- _x("Not enough args specified", "API: not enought arguments passed", "simple-history"),
365
- ));
366
 
367
  }
368
 
369
  if (isset($args["id"])) {
370
  $args["post__in"] = array(
371
- $args["id"],
372
  );
373
  }
374
 
 
375
  $data = array();
376
 
377
  switch ($type) {
@@ -383,39 +294,39 @@ class SimpleHistory {
383
  // API use SimpleHistoryLogQuery, so simply pass args on to that
384
  $logQuery = new SimpleHistoryLogQuery();
385
  $data = $logQuery->query($args);
386
-
387
  $data["api_args"] = $args;
388
 
389
  // Output can be array or HMTL
390
- if (isset($args["format"]) && "html" === $args["format"]) {
391
-
392
  $data["log_rows_raw"] = array();
393
 
394
  foreach ($data["log_rows"] as $key => $oneLogRow) {
395
-
396
  $args = array();
397
  if ($type == "single") {
398
  $args["type"] = "single";
399
  }
400
 
401
- $data["log_rows"][$key] = $this->getLogRowHTMLOutput($oneLogRow, $args);
402
- $data["num_queries"] = get_num_queries();
403
 
404
  }
405
 
406
  } else {
407
-
408
  $data["logRows"] = $logRows;
409
  }
410
 
411
  break;
412
 
 
413
  default:
414
  $data[] = "Nah.";
415
 
416
  }
417
 
418
- wp_send_json_success($data);
419
 
420
  }
421
 
@@ -424,9 +335,9 @@ class SimpleHistory {
424
  * to the untranslated text too, because that's the version we want to store
425
  * in the database.
426
  */
427
- public function filter_gettext($translated_text, $untranslated_text, $domain) {
428
 
429
- if (isset($this->doFilterGettext) && $this->doFilterGettext) {
430
 
431
  $this->doFilterGettext_currentLogger->messages[] = array(
432
  "untranslated_text" => $untranslated_text,
@@ -438,15 +349,15 @@ class SimpleHistory {
438
  }
439
 
440
  return $translated_text;
441
-
442
  }
443
 
444
  /**
445
  * Store messages with context
446
  */
447
- public function filter_gettext_with_context($translated_text, $untranslated_text, $context, $domain) {
448
 
449
- if (isset($this->doFilterGettext) && $this->doFilterGettext) {
450
 
451
  $this->doFilterGettext_currentLogger->messages[] = array(
452
  "untranslated_text" => $untranslated_text,
@@ -458,25 +369,25 @@ class SimpleHistory {
458
  }
459
 
460
  return $translated_text;
461
-
462
  }
463
 
464
  /**
465
  * Load language files.
466
  * Uses the method described here:
467
  * http://geertdedeckere.be/article/loading-wordpress-language-files-the-right-way
468
- *
469
  * @since 2.0
470
  */
471
  public function load_plugin_textdomain() {
472
 
473
  $domain = 'simple-history';
474
-
475
  // The "plugin_locale" filter is also used in load_plugin_textdomain()
476
  $locale = apply_filters('plugin_locale', get_locale(), $domain);
477
 
478
- load_textdomain($domain, WP_LANG_DIR . '/simple-history/' . $domain . '-' . $locale . '.mo');
479
- load_plugin_textdomain($domain, FALSE, dirname($this->plugin_basename) . '/languages/');
480
 
481
  }
482
 
@@ -484,7 +395,7 @@ class SimpleHistory {
484
  * Setup variables and things
485
  */
486
  public function setupVariables() {
487
-
488
  // Capability required to view history = for who will the History page be added
489
  $this->view_history_capability = "edit_pages";
490
  $this->view_history_capability = apply_filters("simple_history_view_history_capability", $this->view_history_capability);
@@ -503,35 +414,35 @@ class SimpleHistory {
503
  * Adds default tabs to settings
504
  */
505
  public function add_default_settings_tabs() {
506
-
507
  // Add default settings tabs
508
  $this->arr_settings_tabs = array(
509
-
510
  array(
511
  "slug" => "settings",
512
  "name" => __("Settings", "simple-history"),
513
- "function" => array($this, "settings_output_general"),
514
  ),
515
 
516
  );
517
 
518
- if (defined("SIMPLE_HISTORY_DEV") && SIMPLE_HISTORY_DEV) {
519
-
520
  $arr_dev_tabs = array(
521
  array(
522
  "slug" => "log",
523
  "name" => __("Log (debug)", "simple-history"),
524
- "function" => array($this, "settings_output_log"),
525
  ),
526
  array(
527
  "slug" => "styles-example",
528
  "name" => __("Styles example (debug)", "simple-history"),
529
- "function" => array($this, "settings_output_styles_example"),
530
- ),
531
 
532
  );
533
 
534
- $this->arr_settings_tabs = array_merge($this->arr_settings_tabs, $arr_dev_tabs);
535
 
536
  }
537
 
@@ -542,7 +453,7 @@ class SimpleHistory {
542
  * and instantiates them
543
  */
544
  public function loadLoggers() {
545
-
546
  $loggersDir = __DIR__ . "/loggers/";
547
 
548
  /**
@@ -554,10 +465,10 @@ class SimpleHistory {
554
  */
555
  $loggersDir = apply_filters("simple_history/loggers_dir", $loggersDir);
556
 
557
- $loggersFiles = glob($loggersDir . "*.php");
558
 
559
  // SimpleLogger.php must be loaded first since the other loggers extend it
560
- require_once $loggersDir . "SimpleLogger.php";
561
 
562
  /**
563
  * Filter the array with absolute paths to files as returned by glob function.
@@ -567,24 +478,24 @@ class SimpleHistory {
567
  * @since 2.0
568
  *
569
  * @param array $loggersFiles Array with filenames
570
- */
571
  $loggersFiles = apply_filters("simple_history/loggers_files", $loggersFiles);
572
-
573
  $arrLoggersToInstantiate = array();
574
- foreach ($loggersFiles as $oneLoggerFile) {
575
-
576
- if (basename($oneLoggerFile) == "SimpleLogger.php") {
577
-
578
  // SimpleLogger is already loaded
579
 
580
  } else {
581
 
582
- include_once $oneLoggerFile;
583
 
584
  }
585
 
586
  $arrLoggersToInstantiate[] = basename($oneLoggerFile, ".php");
587
-
588
  }
589
 
590
  /**
@@ -593,23 +504,23 @@ class SimpleHistory {
593
  * @since 2.0
594
  *
595
  * @param array $arrLoggersToInstantiate Array with class names
596
- */
597
  $arrLoggersToInstantiate = apply_filters("simple_history/loggers_to_instantiate", $arrLoggersToInstantiate);
598
  // Instantiate each logger
599
- foreach ($arrLoggersToInstantiate as $oneLoggerName) {
600
-
601
- if (!class_exists($oneLoggerName)) {
602
  continue;
603
  }
604
 
605
  $loggerInstance = new $oneLoggerName($this);
606
 
607
- if (!is_subclass_of($loggerInstance, "SimpleLogger") && !is_a($loggerInstance, "SimpleLogger")) {
608
  continue;
609
  }
610
 
611
  $loggerInstance->loaded();
612
-
613
  // Tell gettext-filter to add untranslated messages
614
  $this->doFilterGettext = true;
615
  $this->doFilterGettext_currentLogger = $loggerInstance;
@@ -620,34 +531,34 @@ class SimpleHistory {
620
  $this->doFilterGettext = false;
621
  $this->doFilterGettext_currentLogger = null;
622
 
623
- // LoggerInfo contains all messages, both translated an not, by key.
624
  // Add messages to the loggerInstance
625
  $loopNum = 0;
626
- foreach ($loggerInfo["messages"] as $message_key => $message) {
627
-
628
- $loggerInstance->messages[$message_key] = $loggerInstance->messages[$loopNum];
629
  $loopNum++;
630
 
631
  }
632
 
633
  // Remove index keys, only keeping slug keys
634
  if (is_array($loggerInstance->messages)) {
635
- foreach ($loggerInstance->messages as $key => $val) {
636
- if (is_int($key)) {
637
- unset($loggerInstance->messages[$key]);
638
  }
639
  }
640
- }
641
-
642
  // Add logger to array of loggers
643
- $this->instantiatedLoggers[$loggerInstance->slug] = array(
644
  "name" => $loggerInfo["name"],
645
- "instance" => $loggerInstance,
646
  );
647
 
648
  }
649
 
650
- do_action("simple_history/loggers_loaded");
651
 
652
  #sf_d($this->instantiatedLoggers);exit;
653
 
@@ -658,7 +569,7 @@ class SimpleHistory {
658
  * and instantiates them
659
  */
660
  public function loadDropins() {
661
-
662
  $dropinsDir = __DIR__ . "/dropins/";
663
 
664
  /**
@@ -670,7 +581,7 @@ class SimpleHistory {
670
  */
671
  $dropinsDir = apply_filters("simple_history/dropins_dir", $dropinsDir);
672
 
673
- $dropinsFiles = glob($dropinsDir . "*.php");
674
 
675
  /**
676
  * Filter the array with absolute paths to files as returned by glob function.
@@ -680,13 +591,13 @@ class SimpleHistory {
680
  * @since 2.0
681
  *
682
  * @param array $dropinsFiles Array with filenames
683
- */
684
  $dropinsFiles = apply_filters("simple_history/dropins_files", $dropinsFiles);
685
-
686
  $arrDropinsToInstantiate = array();
687
 
688
- foreach ($dropinsFiles as $oneDropinFile) {
689
-
690
  // path/path/simplehistory/dropins/SimpleHistoryDonateDropin.php => SimpleHistoryDonateDropin
691
  $oneDropinFileBasename = basename($oneDropinFile, ".php");
692
 
@@ -699,16 +610,16 @@ class SimpleHistory {
699
  *
700
  * @param bool if to load the dropin. return false to not load it.
701
  */
702
- $load_dropin = apply_filters("simple_history/dropin/load_dropin_{$oneDropinFileBasename}", true);
703
 
704
- if (!$load_dropin) {
705
  continue;
706
  }
707
 
708
- include_once $oneDropinFile;
709
 
710
  $arrDropinsToInstantiate[] = $oneDropinFileBasename;
711
-
712
  }
713
 
714
  /**
@@ -717,26 +628,26 @@ class SimpleHistory {
717
  * @since 2.0
718
  *
719
  * @param array $arrDropinsToInstantiate Array with class names
720
- */
721
  $arrDropinsToInstantiate = apply_filters("simple_history/dropins_to_instantiate", $arrDropinsToInstantiate);
722
 
723
  // Instantiate each dropin
724
- foreach ($arrDropinsToInstantiate as $oneDropinName) {
725
-
726
- if (!class_exists($oneDropinName)) {
727
  continue;
728
  }
729
 
730
  $this->instantiatedDropins[$oneDropinName] = array(
731
  "name" => $oneDropinName,
732
- "instance" => new $oneDropinName($this),
733
  );
734
  }
735
 
736
  }
737
 
738
  /**
739
- * Gets the pager size,
740
  * i.e. the number of items to show on each page in the history
741
  *
742
  * @return int
@@ -757,23 +668,24 @@ class SimpleHistory {
757
  return $pager_size;
758
 
759
  }
 
760
 
761
  /**
762
  * Show a link to our settings page on the Plugins -> Installed Plugins screen
763
  */
764
  function plugin_action_links($actions, $b, $c, $d) {
765
-
766
  // Only add link if user has the right to view the settings page
767
- if (!current_user_can($this->view_settings_capability)) {
768
  return $actions;
769
  }
770
 
771
  $settings_page_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0);
772
-
773
  $actions[] = "<a href='$settings_page_url'>" . __("Settings", "simple-history") . "</a>";
774
 
775
  return $actions;
776
-
777
  }
778
 
779
  /**
@@ -782,11 +694,11 @@ class SimpleHistory {
782
  * and a setting to show dashboard to be set
783
  */
784
  function add_dashboard_widget() {
785
-
786
- if ($this->setting_show_on_dashboard() && current_user_can($this->view_history_capability)) {
787
-
788
  wp_add_dashboard_widget("simple_history_dashboard_widget", __("Simple History", 'simple-history'), array($this, "dashboard_widget_output"));
789
-
790
  }
791
  }
792
 
@@ -794,7 +706,7 @@ class SimpleHistory {
794
  * Output html for the dashboard widget
795
  */
796
  function dashboard_widget_output() {
797
-
798
  $pager_size = $this->get_pager_size();
799
 
800
  /**
@@ -806,33 +718,33 @@ class SimpleHistory {
806
  */
807
  $pager_size = apply_filters("simple_history/dashboard_pager_size", $pager_size);
808
 
809
- do_action("simple_history/dashboard/before_gui", $this);
810
 
811
  ?>
812
  <div class="SimpleHistoryGui"
813
- data-pager-size='<?php echo $pager_size?>'
814
  ></div>
815
  <?php
816
 
817
  }
818
-
819
  function is_on_our_own_pages($hook = "") {
820
 
821
  $current_screen = get_current_screen();
822
 
823
- if ($current_screen && $current_screen->base == "settings_page_" . SimpleHistory::SETTINGS_MENU_SLUG) {
824
-
825
  return true;
826
 
827
- } else if ($current_screen && $current_screen->base == "dashboard_page_simple_history_page") {
828
 
829
  return true;
830
 
831
- } else if (($hook == "settings_page_" . SimpleHistory::SETTINGS_MENU_SLUG) || ($this->setting_show_on_dashboard() && $hook == "index.php") || ($this->setting_show_as_page() && $hook == "dashboard_page_simple_history_page")) {
832
 
833
  return true;
834
 
835
- } else if ($current_screen && $current_screen->base == "dashboard" && $this->setting_show_on_dashboard()) {
836
 
837
  return true;
838
 
@@ -847,20 +759,20 @@ class SimpleHistory {
847
  * Only adds scripts to pages where the log is shown or the settings page.
848
  */
849
  function enqueue_admin_scripts($hook) {
850
-
851
- if ($this->is_on_our_own_pages()) {
852
-
853
  add_thickbox();
854
 
855
  $plugin_url = plugin_dir_url(__FILE__);
856
- wp_enqueue_style("simple_history_styles", $plugin_url . "css/styles.css", false, SimpleHistory::VERSION);
857
- wp_enqueue_script("simple_history_script", $plugin_url . "js/scripts.js", array("jquery", "backbone", "wp-util"), SimpleHistory::VERSION, true);
858
-
859
  wp_enqueue_script("select2", $plugin_url . "/js/select2/select2.min.js", array("jquery"));
860
  wp_enqueue_style("select2", $plugin_url . "/js/select2/select2.css");
861
 
862
  // Translations that we use in JavaScript
863
- wp_localize_script('simple_history_script', 'simple_history_script_vars', array(
864
  'settingsConfirmClearLog' => __("Remove all log items?", 'simple-history'),
865
  'pagination' => array(
866
  'goToTheFirstPage' => __("Go to the first page", 'simple-history'),
@@ -870,26 +782,26 @@ class SimpleHistory {
870
  'currentPage' => __("Current page", 'simple-history'),
871
  ),
872
  "loadLogAPIError" => __("Oups, the log could not be loaded right now.", 'simple-history'),
873
- "logNoHits" => __("Your search did not match any history events.", "simple-history"),
874
  ));
875
 
876
  // Call plugins adminCSS-method, so they can add their CSS
877
- foreach ($this->instantiatedLoggers as $one_logger) {
878
- if (method_exists($one_logger["instance"], "adminCSS")) {
879
  $one_logger["instance"]->adminCSS();
880
  }
881
  }
882
 
883
  /**
884
- * Fires when the admin scripts have been enqueued.
885
- * Only fires on any of the pages where Simple History is used
886
- *
887
- * @since 2.0
888
- *
889
- * @param SimpleHistory $SimpleHistory This class.
890
- */
891
  do_action("simple_history/enqueue_admin_scripts", $this);
892
-
893
  }
894
 
895
  }
@@ -897,7 +809,7 @@ class SimpleHistory {
897
  function filter_option_page_capability($capability) {
898
  return $capability;
899
  }
900
-
901
  /**
902
  * Check if plugin version have changed, i.e. has been upgraded
903
  * If upgrade is detected then maybe modify database and so on for that version
@@ -911,30 +823,30 @@ class SimpleHistory {
911
  $table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
912
  $first_install = false;
913
 
914
- // If no db_version is set then this
915
  // is a version of Simple History < 0.4
916
  // or it's a first install
917
  // Fix database not using UTF-8
918
- if (false === $db_version) {
919
-
920
- require_once ABSPATH . 'wp-admin/includes/upgrade.php';
921
 
922
  // Table creation, used to be in register_activation_hook
923
- /*
924
  $sql = "CREATE TABLE " . $table_name . " (
925
- id int(10) NOT NULL AUTO_INCREMENT,
926
- date datetime NOT NULL,
927
- action varchar(255) NOT NULL COLLATE utf8_general_ci,
928
- object_type varchar(255) NOT NULL COLLATE utf8_general_ci,
929
- object_subtype VARCHAR(255) NOT NULL COLLATE utf8_general_ci,
930
- user_id int(10) NOT NULL,
931
- object_id int(10) NOT NULL,
932
- object_name varchar(255) NOT NULL COLLATE utf8_general_ci,
933
- action_description longtext,
934
- PRIMARY KEY (id)
935
  ) CHARACTER SET=utf8;";
936
  dbDelta($sql);
937
- */
938
 
939
  // We change the varchar size to add one num just to force update of encoding. dbdelta didn't see it otherwise.
940
  // This table is missing action_description, but we add that later on
@@ -952,27 +864,36 @@ class SimpleHistory {
952
 
953
  // Upgrade db / fix utf for varchars
954
  dbDelta($sql);
955
-
956
  // Fix UTF-8 for table
957
  $sql = sprintf('alter table %1$s charset=utf8;', $table_name);
958
  $wpdb->query($sql);
959
-
960
  $db_version_prev = $db_version;
961
  $db_version = 1;
962
 
 
 
 
 
 
 
 
 
963
  update_option("simple_history_db_version", $db_version);
964
 
965
- // We are not 100% sure that this is a first install,
966
  // but it is at least a very old version that is being updated
967
  $first_install = true;
968
 
969
- }// done pre db ver 1 things
 
970
 
971
  // If db version is 1 then upgrade to 2
972
  // Version 2 added the action_description column
973
- if (1 == intval($db_version)) {
974
 
975
- // Add column for action description in non-translatable free text
976
  $sql = "ALTER TABLE {$table_name} ADD COLUMN action_description longtext";
977
  $wpdb->query($sql);
978
 
@@ -988,20 +909,20 @@ class SimpleHistory {
988
  $arr_options = array(
989
  array(
990
  "name" => "simple_history_show_as_page",
991
- "default_value" => 1,
992
  ),
993
  array(
994
  "name" => "simple_history_show_on_dashboard",
995
- "default_value" => 1,
996
- ),
997
  );
998
 
999
  foreach ($arr_options as $one_option) {
1000
-
1001
- if (false === ($option_value = get_option($one_option["name"]))) {
1002
 
1003
  // Value is not set in db, so set it to a default
1004
- update_option($one_option["name"], $one_option["default_value"]);
1005
 
1006
  }
1007
  }
@@ -1013,9 +934,9 @@ class SimpleHistory {
1013
  *
1014
  * @since 2.0
1015
  */
1016
- if (2 == intval($db_version)) {
1017
 
1018
- require_once ABSPATH . 'wp-admin/includes/upgrade.php';
1019
 
1020
  // Update old table
1021
  $sql = "
@@ -1039,7 +960,7 @@ class SimpleHistory {
1039
  KEY date (date),
1040
  KEY loggerdate (logger, date)
1041
  ) CHARSET=utf8;";
1042
-
1043
  dbDelta($sql);
1044
 
1045
  // Add context table
@@ -1064,33 +985,33 @@ class SimpleHistory {
1064
  // Update old items to use SimpleLegacyLogger
1065
  $sql = sprintf('
1066
  UPDATE %1$s
1067
- SET
1068
  logger = "SimpleLegacyLogger",
1069
  level = "info"
1070
  WHERE logger IS NULL
1071
- ',
1072
  $table_name
1073
  );
1074
 
1075
- $wpdb->query($sql);
1076
 
1077
  // Say welcome, however loggers are not added this early so we need to
1078
  // use a filter to load it later
1079
- add_action("simple_history/loggers_loaded", array($this, "addWelcomeLogMessage"));
1080
 
1081
- }// db version 2 » 3
1082
 
1083
  /**
1084
- * If db version = 3
1085
  * then we need to update database to allow null values for some old columns
1086
  * that used to work in pre wp 4.1 beta, but since 4.1 wp uses STRICT_ALL_TABLES
1087
  * WordPress Commit: https://github.com/WordPress/WordPress/commit/f17d168a0f72211a9bfd9d3fa680713069871bb6
1088
- *
1089
  * @since 2.0
1090
  */
1091
- if (3 == intval($db_version)) {
1092
 
1093
- require_once ABSPATH . 'wp-admin/includes/upgrade.php';
1094
 
1095
  $sql = sprintf('
1096
  ALTER TABLE %1$s
@@ -1100,30 +1021,31 @@ class SimpleHistory {
1100
  MODIFY `user_id` int(10) NULL,
1101
  MODIFY `object_id` int(10) NULL,
1102
  MODIFY `object_name` varchar(255) NULL
1103
- ',
1104
  $table_name
1105
  );
1106
- $wpdb->query($sql);
1107
 
1108
  $db_version_prev = $db_version;
1109
  $db_version = 4;
1110
-
1111
  update_option("simple_history_db_version", $db_version);
1112
 
1113
- }// end db version 3 » 4
1114
-
1115
- }// end check_for_upgrade
1116
 
 
 
 
1117
  /**
1118
  * Greet users to version 2!
1119
  */
1120
  public function addWelcomeLogMessage() {
1121
 
1122
  SimpleLogger()->info(
1123
- "Welcome to Simple History 2! Hope you will enjoy this plugin.
1124
  Found bugs? Got great ideas? Send them to the plugin developer at par.thernstrom@gmail.com.",
1125
  array(
1126
- "_initiator" => SimpleLoggerLogInitiators::WORDPRESS,
1127
  )
1128
  );
1129
 
@@ -1144,9 +1066,9 @@ class SimpleHistory {
1144
  /**
1145
  * Output HTML for the settings page
1146
  * Called from add_options_page
1147
- */
1148
  function settings_page_output() {
1149
-
1150
  $arr_settings_tabs = $this->getSettingsTabs();
1151
 
1152
  ?>
@@ -1154,97 +1076,99 @@ class SimpleHistory {
1154
 
1155
  <h2 class="SimpleHistoryPageHeadline">
1156
  <div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div>
1157
- <?php _e("Simple History Settings", "simple-history")?>
1158
  </h2>
1159
-
1160
  <?php
1161
- $active_tab = isset($_GET["selected-tab"]) ? $_GET["selected-tab"] : "settings";
1162
- $settings_base_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0);
1163
- ?>
1164
 
1165
  <h3 class="nav-tab-wrapper">
1166
  <?php
1167
- foreach ($arr_settings_tabs as $one_tab) {
1168
 
1169
- $tab_slug = $one_tab["slug"];
1170
-
1171
- printf(
1172
- '<a href="%3$s" class="nav-tab %4$s">%1$s</a>',
1173
- $one_tab["name"], // 1
1174
- $tab_slug, // 2
1175
- add_query_arg("selected-tab", $tab_slug, $settings_base_url), // 3
1176
- $active_tab == $tab_slug ? "nav-tab-active" : ""// 4
1177
- );
1178
 
1179
- }
1180
- ?>
1181
  </h3>
1182
 
1183
  <?php
 
 
 
 
 
 
 
 
 
1184
 
1185
- // Output contents for selected tab
1186
- $arr_active_tab = wp_filter_object_list($arr_settings_tabs, array("slug" => $active_tab));
1187
- $arr_active_tab = current($arr_active_tab);
1188
-
1189
- // We must have found an active tab and it must have a callable function
1190
- if (!$arr_active_tab || !is_callable($arr_active_tab["function"])) {
1191
- wp_die(__("No valid callback found", "simple-history"));
1192
- }
1193
-
1194
- $args = array(
1195
- "arr_active_tab" => $arr_active_tab,
1196
- );
1197
 
1198
- call_user_func_array($arr_active_tab["function"], $args);
1199
 
1200
- ?>
1201
 
1202
  </div>
1203
  <?php
1204
-
1205
  }
1206
 
1207
  public function settings_output_log() {
1208
-
1209
- include __DIR__ . "/templates/settings-log.php";
1210
 
1211
  }
1212
 
1213
  public function settings_output_general() {
1214
-
1215
- include __DIR__ . "/templates/settings-general.php";
1216
 
1217
  }
1218
 
1219
  public function settings_output_styles_example() {
1220
-
1221
- include __DIR__ . "/templates/settings-style-example.php";
1222
 
1223
  }
1224
 
 
1225
  /**
1226
  * Content for section intro. Leave it be, even if empty.
1227
  * Called from add_sections_setting.
1228
  */
1229
  function settings_section_output() {
1230
-
1231
  }
1232
 
 
1233
  /**
1234
  * Add pages (history page and settings page)
1235
  */
1236
  function add_admin_pages() {
1237
-
1238
  // Add a history page as a sub-page below the Dashboard menu item
1239
- if ($this->setting_show_as_page()) {
1240
-
1241
  add_dashboard_page(
1242
- SimpleHistory::NAME,
1243
- _x("Simple History", 'dashboard menu name', 'simple-history'),
1244
- $this->view_history_capability,
1245
- "simple_history_page",
1246
- array($this, "history_page_output")
1247
- );
1248
 
1249
  }
1250
 
@@ -1255,12 +1179,12 @@ foreach ($arr_settings_tabs as $one_tab) {
1255
  if ($show_settings_page) {
1256
 
1257
  add_options_page(
1258
- __('Simple History Settings', "simple-history"),
1259
- SimpleHistory::NAME,
1260
- $this->view_settings_capability,
1261
- SimpleHistory::SETTINGS_MENU_SLUG,
1262
- array($this, 'settings_page_output')
1263
- );
1264
 
1265
  }
1266
 
@@ -1273,15 +1197,15 @@ foreach ($arr_settings_tabs as $one_tab) {
1273
  function add_settings() {
1274
 
1275
  // Clear the log if clear button was clicked in settings
1276
- if (isset($_GET["simple_history_clear_log_nonce"]) && wp_verify_nonce($_GET["simple_history_clear_log_nonce"], 'simple_history_clear_log')) {
1277
-
1278
  $this->clear_log();
1279
  $msg = __("Cleared database", 'simple-history');
1280
- add_settings_error("simple_history_rss_feed_regenerate_secret", "simple_history_rss_feed_regenerate_secret", $msg, "updated");
1281
  set_transient('settings_errors', get_settings_errors(), 30);
1282
 
1283
- $goback = add_query_arg('settings-updated', 'true', wp_get_referer());
1284
- wp_redirect($goback);
1285
  exit;
1286
 
1287
  }
@@ -1290,10 +1214,10 @@ foreach ($arr_settings_tabs as $one_tab) {
1290
  // Will contain settings like where to show simple history and number of items
1291
  $settings_section_general_id = self::SETTINGS_SECTION_GENERAL_ID;
1292
  add_settings_section(
1293
- $settings_section_general_id,
1294
- "", // No title __("General", "simple-history"),
1295
- array($this, "settings_section_output"),
1296
- SimpleHistory::SETTINGS_MENU_SLUG// same slug as for options menu page
1297
  );
1298
 
1299
  // Settings for the general settings section
@@ -1302,7 +1226,7 @@ foreach ($arr_settings_tabs as $one_tab) {
1302
 
1303
  // Checkboxes for where to show simple history
1304
  add_settings_field(
1305
- "simple_history_show_where",
1306
  __("Show history", "simple-history"),
1307
  array($this, "settings_field_where_to_show"),
1308
  SimpleHistory::SETTINGS_MENU_SLUG,
@@ -1315,7 +1239,7 @@ foreach ($arr_settings_tabs as $one_tab) {
1315
 
1316
  // Dropdown number if items to show
1317
  add_settings_field(
1318
- "simple_history_number_of_items",
1319
  __("Number of items per page", "simple-history"),
1320
  array($this, "settings_field_number_of_items"),
1321
  SimpleHistory::SETTINGS_MENU_SLUG,
@@ -1336,6 +1260,7 @@ foreach ($arr_settings_tabs as $one_tab) {
1336
 
1337
  }
1338
 
 
1339
  /**
1340
  * Output for page with the history
1341
  */
@@ -1361,42 +1286,42 @@ foreach ($arr_settings_tabs as $one_tab) {
1361
  ?>
1362
 
1363
  <div class="wrap SimpleHistoryWrap">
1364
-
1365
  <h2 class="SimpleHistoryPageHeadline">
1366
  <div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div>
1367
- <?php echo _x("Simple History", 'history page headline', 'simple-history')?>
1368
  </h2>
1369
 
1370
  <?php
1371
- /**
1372
- * Fires before the gui div
1373
- *
1374
- * @since 2.0
1375
- *
1376
- * @param SimpleHistory $SimpleHistory This class.
1377
- */
1378
- do_action("simple_history/history_page/before_gui", $this);
1379
- ?>
1380
 
1381
  <div class="SimpleHistoryGuiWrap">
1382
 
1383
  <div class="SimpleHistoryGui"
1384
- data-pager-size='<?php echo $pager_size?>'
1385
  ></div>
1386
 
1387
  <?php
1388
 
1389
- /**
1390
- * Fires after the gui div
1391
- *
1392
- * @since 2.0
1393
- *
1394
- * @param SimpleHistory $SimpleHistory This class.
1395
- */
1396
- do_action("simple_history/history_page/after_gui", $this);
1397
-
1398
- ?>
1399
 
 
 
1400
  </div>
1401
 
1402
  </div>
@@ -1406,13 +1331,13 @@ foreach ($arr_settings_tabs as $one_tab) {
1406
  }
1407
 
1408
  /**
1409
- * Get setting if plugin should be visible on dasboard.
1410
  * Defaults to true
1411
  *
1412
  * @return bool
1413
  */
1414
  function setting_show_on_dashboard() {
1415
-
1416
  $show_on_dashboard = get_option("simple_history_show_on_dashboard", 1);
1417
  $show_on_dashboard = apply_filters("simple_history_show_on_dashboard", $show_on_dashboard);
1418
  return (bool) $show_on_dashboard;
@@ -1437,21 +1362,21 @@ foreach ($arr_settings_tabs as $one_tab) {
1437
  * Settings field for how many rows/items to show in log
1438
  */
1439
  function settings_field_number_of_items() {
1440
-
1441
  $current_pager_size = $this->get_pager_size();
1442
 
1443
  ?>
1444
  <select name="simple_history_pager_size">
1445
- <option <?php echo $current_pager_size == 5 ? "selected" : ""?> value="5">5</option>
1446
- <option <?php echo $current_pager_size == 10 ? "selected" : ""?> value="10">10</option>
1447
- <option <?php echo $current_pager_size == 15 ? "selected" : ""?> value="15">15</option>
1448
- <option <?php echo $current_pager_size == 20 ? "selected" : ""?> value="20">20</option>
1449
- <option <?php echo $current_pager_size == 25 ? "selected" : ""?> value="25">25</option>
1450
- <option <?php echo $current_pager_size == 30 ? "selected" : ""?> value="30">30</option>
1451
- <option <?php echo $current_pager_size == 40 ? "selected" : ""?> value="40">40</option>
1452
- <option <?php echo $current_pager_size == 50 ? "selected" : ""?> value="50">50</option>
1453
- <option <?php echo $current_pager_size == 75 ? "selected" : ""?> value="75">75</option>
1454
- <option <?php echo $current_pager_size == 100 ? "selected" : ""?> value="100">100</option>
1455
  </select>
1456
  <?php
1457
 
@@ -1465,32 +1390,32 @@ foreach ($arr_settings_tabs as $one_tab) {
1465
  $show_on_dashboard = $this->setting_show_on_dashboard();
1466
  $show_as_page = $this->setting_show_as_page();
1467
  ?>
1468
-
1469
- <input <?php echo $show_on_dashboard ? "checked='checked'" : ""?> type="checkbox" value="1" name="simple_history_show_on_dashboard" id="simple_history_show_on_dashboard" class="simple_history_show_on_dashboard" />
1470
- <label for="simple_history_show_on_dashboard"><?php _e("on the dashboard", 'simple-history')?></label>
1471
 
1472
  <br />
1473
-
1474
- <input <?php echo $show_as_page ? "checked='checked'" : ""?> type="checkbox" value="1" name="simple_history_show_as_page" id="simple_history_show_as_page" class="simple_history_show_as_page" />
1475
- <label for="simple_history_show_as_page"><?php _e("as a page under the dashboard menu", 'simple-history')?></label>
1476
-
1477
  <?php
1478
- }
1479
 
1480
  /**
1481
  * Settings section to clear database
1482
  */
1483
  function settings_field_clear_log() {
1484
-
1485
  $clear_link = add_query_arg("", "");
1486
- $clear_link = wp_nonce_url($clear_link, "simple_history_clear_log", "simple_history_clear_log_nonce");
1487
  $clear_days = $this->get_clear_history_interval();
1488
 
1489
  echo "<p>";
1490
- if ($clear_days > 0) {
1491
- echo sprintf(__('Items in the database are automatically removed after %1$s days.', "simple-history"), $clear_days);
1492
  } else {
1493
- _e('Items in the database are kept forever.', 'simple-history');
1494
  }
1495
  echo "</p>";
1496
 
@@ -1498,7 +1423,7 @@ foreach ($arr_settings_tabs as $one_tab) {
1498
  }
1499
 
1500
  /**
1501
- * How old log entried are allowed to be.
1502
  * 0 = don't delete old entries.
1503
  *
1504
  * @return int Number of days.
@@ -1520,73 +1445,29 @@ foreach ($arr_settings_tabs as $one_tab) {
1520
  function clear_log() {
1521
 
1522
  global $wpdb;
1523
-
1524
  $tableprefix = $wpdb->prefix;
1525
-
1526
  $simple_history_table = SimpleHistory::DBTABLE;
1527
  $simple_history_context_table = SimpleHistory::DBTABLE_CONTEXTS;
1528
-
1529
- // Get number of rows before delete
1530
- $sql_num_rows = "SELECT count(id) AS num_rows FROM {$tableprefix}{$simple_history_table}";
1531
- $num_rows = $wpdb->get_var($sql_num_rows, 0);
1532
-
1533
  $sql = "DELETE FROM {$tableprefix}{$simple_history_table}";
1534
  $wpdb->query($sql);
1535
 
1536
  $sql = "DELETE FROM {$tableprefix}{$simple_history_context_table}";
1537
  $wpdb->query($sql);
1538
 
1539
- // Zero state sucks
1540
- SimpleLogger()->info(
1541
- __("The log for Simple History was cleared ({num_rows} rows were removed).", "simple-history"),
1542
- array(
1543
- "num_rows" => $num_rows,
1544
- )
1545
- );
1546
-
1547
- $this->get_cache_incrementor(true);
1548
-
1549
- }
1550
-
1551
- /**
1552
- * Runs the purge_db() method sometimes
1553
- * We don't want to call it each time because it performs SQL queries
1554
- *
1555
- * @since 2.0.17
1556
- */
1557
- function maybe_purge_db() {
1558
-
1559
- /*if ( ! is_admin() ) {
1560
- return;
1561
- }*/
1562
-
1563
- // How often should we try to do this?
1564
- // Once a day = a bit tiresome
1565
- // Let's go with sundays; purge the log on sundays
1566
-
1567
- // day of week, 1 = mon, 7 = sun
1568
- $day_of_week = date('N');
1569
- if ( 7 === (int) $day_of_week ) {
1570
-
1571
- $this->purge_db();
1572
-
1573
- }
1574
-
1575
  }
1576
 
1577
  /**
1578
  * Removes old entries from the db
 
1579
  */
1580
  function purge_db() {
1581
 
1582
- // SimpleLogger()->debug("Simple History is running purge_db()");
1583
-
1584
  $do_purge_history = true;
1585
-
1586
  $do_purge_history = apply_filters("simple_history_allow_db_purge", $do_purge_history);
1587
  $do_purge_history = apply_filters("simple_history/allow_db_purge", $do_purge_history);
1588
-
1589
- if (!$do_purge_history) {
1590
  return;
1591
  }
1592
 
@@ -1598,50 +1479,12 @@ foreach ($arr_settings_tabs as $one_tab) {
1598
  }
1599
 
1600
  global $wpdb;
 
 
1601
 
1602
- $table_name = $wpdb->prefix . SimpleHistory::DBTABLE;
1603
- $table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
1604
-
1605
- // Get id of rows to delete
1606
- $sql = "SELECT id FROM {$table_name} WHERE DATE_ADD(date, INTERVAL $days DAY) < now()";
1607
-
1608
- $ids_to_delete = $wpdb->get_col($sql);
1609
-
1610
- if (empty($ids_to_delete)) {
1611
- // Nothing to delete
1612
- return;
1613
- }
1614
-
1615
- $sql_ids_in = implode(",", $ids_to_delete);
1616
-
1617
- // Add number of deleted rows to total_rows option
1618
- $prev_total_rows = (int) get_option("simple_history_total_rows", 0);
1619
- $total_rows = $prev_total_rows + sizeof($ids_to_delete);
1620
- update_option("simple_history_total_rows", $total_rows);
1621
-
1622
- // Remove rows + contexts
1623
- $sql_delete_history = "DELETE FROM {$table_name} WHERE id IN ($sql_ids_in)";
1624
- $sql_delete_history_context = "DELETE FROM {$table_name_contexts} WHERE history_id IN ($sql_ids_in)";
1625
-
1626
- $wpdb->query($sql_delete_history);
1627
- $wpdb->query($sql_delete_history_context);
1628
-
1629
- $message = _nx(
1630
- "Simple History removed one event that were older than {days} days",
1631
- "Simple History removed {num_rows} events that were older than {days} days",
1632
- "Database is being cleared automagically",
1633
- "simple-history"
1634
- );
1635
 
1636
- SimpleLogger()->info(
1637
- $message,
1638
- array(
1639
- "days" => $days,
1640
- "num_rows" => sizeof($ids_to_delete),
1641
- )
1642
- );
1643
-
1644
- $this->get_cache_incrementor(true);
1645
 
1646
  }
1647
 
@@ -1650,28 +1493,28 @@ foreach ($arr_settings_tabs as $one_tab) {
1650
  * Uses the getLogRowPlainTextOutput of the logger that logged the row
1651
  * with fallback to SimpleLogger if logger is not available
1652
  *
1653
- * @param array $row
1654
  * @return string
1655
  */
1656
  public function getLogRowPlainTextOutput($row) {
1657
-
1658
  $row_logger = $row->logger;
1659
  $logger = null;
1660
- $row->context = isset($row->context) && is_array($row->context) ? $row->context : array();
1661
 
1662
- if (!isset($row->context["_message_key"])) {
1663
  $row->context["_message_key"] = null;
1664
  }
1665
-
1666
  // Fallback to SimpleLogger if no logger exists for row
1667
- if (!isset($this->instantiatedLoggers[$row_logger])) {
1668
  $row_logger = "SimpleLogger";
1669
  }
1670
 
1671
- $logger = $this->instantiatedLoggers[$row_logger]["instance"];
1672
-
1673
- return $logger->getLogRowPlainTextOutput($row);
1674
 
 
 
1675
  }
1676
 
1677
  /**
@@ -1679,9 +1522,9 @@ foreach ($arr_settings_tabs as $one_tab) {
1679
  * Uses the getLogRowHeaderOutput of the logger that logged the row
1680
  * with fallback to SimpleLogger if logger is not available
1681
  *
1682
- * Loggers are discouraged to override this in the loggers,
1683
  * because the output should be the same for all items in the gui
1684
- *
1685
  * @param array $row
1686
  * @return string
1687
  */
@@ -1689,22 +1532,22 @@ foreach ($arr_settings_tabs as $one_tab) {
1689
 
1690
  $row_logger = $row->logger;
1691
  $logger = null;
1692
- $row->context = isset($row->context) && is_array($row->context) ? $row->context : array();
1693
-
1694
  // Fallback to SimpleLogger if no logger exists for row
1695
- if (!isset($this->instantiatedLoggers[$row_logger])) {
1696
  $row_logger = "SimpleLogger";
1697
  }
1698
 
1699
- $logger = $this->instantiatedLoggers[$row_logger]["instance"];
1700
 
1701
- return $logger->getLogRowHeaderOutput($row);
1702
 
1703
  }
1704
 
1705
  /**
1706
- *
1707
- *
1708
  * @param array $row
1709
  * @return string
1710
  */
@@ -1712,16 +1555,16 @@ foreach ($arr_settings_tabs as $one_tab) {
1712
 
1713
  $row_logger = $row->logger;
1714
  $logger = null;
1715
- $row->context = isset($row->context) && is_array($row->context) ? $row->context : array();
1716
-
1717
  // Fallback to SimpleLogger if no logger exists for row
1718
- if (!isset($this->instantiatedLoggers[$row_logger])) {
1719
  $row_logger = "SimpleLogger";
1720
  }
1721
 
1722
- $logger = $this->instantiatedLoggers[$row_logger]["instance"];
1723
 
1724
- return $logger->getLogRowSenderImageOutput($row);
1725
 
1726
  }
1727
 
@@ -1729,28 +1572,28 @@ foreach ($arr_settings_tabs as $one_tab) {
1729
 
1730
  $row_logger = $row->logger;
1731
  $logger = null;
1732
- $row->context = isset($row->context) && is_array($row->context) ? $row->context : array();
1733
-
1734
  // Fallback to SimpleLogger if no logger exists for row
1735
- if (!isset($this->instantiatedLoggers[$row_logger])) {
1736
  $row_logger = "SimpleLogger";
1737
  }
1738
 
1739
- $logger = $this->instantiatedLoggers[$row_logger]["instance"];
1740
 
1741
- return $logger->getLogRowDetailsOutput($row);
1742
 
1743
  }
1744
 
1745
  /**
1746
  * Works like json_encode, but adds JSON_PRETTY_PRINT if the current php version supports it
1747
  * i.e. PHP is 5.4.0 or greated
1748
- *
1749
  * @param $value array|object|string|whatever that is json_encode'able
1750
  */
1751
  public static function json_encode($value) {
1752
-
1753
- return version_compare(PHP_VERSION, '5.4.0') >= 0 ? json_encode($value, JSON_PRETTY_PRINT) : json_encode($value);
1754
 
1755
  }
1756
 
@@ -1759,8 +1602,8 @@ foreach ($arr_settings_tabs as $one_tab) {
1759
  * @param string $haystack
1760
  * @param string $needle
1761
  */
1762
- public static function ends_with($haystack, $needle) {
1763
- return $needle === substr($haystack, -strlen($needle));
1764
  }
1765
 
1766
  /**
@@ -1772,17 +1615,17 @@ foreach ($arr_settings_tabs as $one_tab) {
1772
  public function getLogRowHTMLOutput($oneLogRow, $args) {
1773
 
1774
  $defaults = array(
1775
- "type" => "overview", // or "single" to include more stuff
1776
  );
1777
 
1778
- $args = wp_parse_args($args, $defaults);
1779
 
1780
- $header_html = $this->getLogRowHeaderOutput($oneLogRow);
1781
  $plain_text_html = $this->getLogRowPlainTextOutput($oneLogRow);
1782
  $sender_image_html = $this->getLogRowSenderImageOutput($oneLogRow);
1783
-
1784
  // Details = for example thumbnail of media
1785
- $details_html = trim($this->getLogRowDetailsOutput($oneLogRow));
1786
  if ($details_html) {
1787
 
1788
  $details_html = sprintf(
@@ -1795,14 +1638,13 @@ foreach ($arr_settings_tabs as $one_tab) {
1795
  // subsequentOccasions = including the current one
1796
  $occasions_count = $oneLogRow->subsequentOccasions - 1;
1797
  $occasions_html = "";
1798
-
1799
  if ($occasions_count > 0) {
1800
 
1801
  $occasions_html = '<div class="SimpleHistoryLogitem__occasions">';
1802
-
1803
  $occasions_html .= '<a href="#" class="SimpleHistoryLogitem__occasionsLink">';
1804
  $occasions_html .= sprintf(
1805
- _n('+%1$s similar event', '+%1$s similar events', $occasions_count, "simple-history"),
1806
  $occasions_count
1807
  );
1808
  $occasions_html .= '</a>';
@@ -1820,23 +1662,23 @@ foreach ($arr_settings_tabs as $one_tab) {
1820
  $occasions_count
1821
  );
1822
  $occasions_html .= '</span>';
1823
-
1824
  $occasions_html .= '</div>';
1825
 
1826
  }
1827
 
1828
  $data_attrs = "";
1829
- $data_attrs .= sprintf(' data-row-id="%1$d" ', $oneLogRow->id);
1830
- $data_attrs .= sprintf(' data-occasions-count="%1$d" ', $occasions_count);
1831
- $data_attrs .= sprintf(' data-occasions-id="%1$s" ', $oneLogRow->occasionsID);
1832
- $data_attrs .= sprintf(' data-ip-address="%1$s" ', esc_attr($oneLogRow->context["_server_remote_addr"]));
1833
 
1834
  // If type is single then include more details
1835
  $more_details_html = "";
1836
- if ($args["type"] == "single") {
1837
 
1838
  $more_details_html .= sprintf('<h2 class="SimpleHistoryLogitem__moreDetailsHeadline">%1$s</h2>', __("Context data", "simple-history"));
1839
- $more_details_html .= "<p>" . __("This is potentially useful meta data that a logger has saved.", "simple-history") . "</p>";
1840
  $more_details_html .= "<table class='SimpleHistoryLogitem__moreDetailsContext'>";
1841
  $more_details_html .= sprintf(
1842
  '<tr>
@@ -1850,7 +1692,7 @@ foreach ($arr_settings_tabs as $one_tab) {
1850
  foreach ($oneLogRow as $rowKey => $rowVal) {
1851
 
1852
  // skip arrays and objects and such
1853
- if (is_array($rowVal) || is_object($rowVal)) {
1854
  continue;
1855
  }
1856
 
@@ -1859,8 +1701,8 @@ foreach ($arr_settings_tabs as $one_tab) {
1859
  <td>%1$s</td>
1860
  <td>%2$s</td>
1861
  </tr>',
1862
- esc_html($rowKey),
1863
- esc_html($rowVal)
1864
  );
1865
 
1866
  }
@@ -1872,8 +1714,8 @@ foreach ($arr_settings_tabs as $one_tab) {
1872
  <td>%1$s</td>
1873
  <td>%2$s</td>
1874
  </tr>',
1875
- esc_html($contextKey),
1876
- esc_html($contextVal)
1877
  );
1878
 
1879
  }
@@ -1887,39 +1729,28 @@ foreach ($arr_settings_tabs as $one_tab) {
1887
 
1888
  }
1889
 
1890
- // Classes to add to log item li element
1891
- $classes = array(
1892
- "SimpleHistoryLogitem",
1893
- "SimpleHistoryLogitem--loglevel-{$oneLogRow->level}",
1894
- "SimpleHistoryLogitem--logger-{$oneLogRow->logger}",
1895
- );
1896
-
1897
  if (isset($oneLogRow->initiator) && !empty($oneLogRow->initiator)) {
1898
- $classes[] = "SimpleHistoryLogitem--initiator-" . esc_attr($oneLogRow->initiator);
1899
  }
1900
 
 
 
 
 
 
1901
  // Always append the log level tag
1902
  $log_level_tag_html = sprintf(
1903
- ' <span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%2$s</span>',
1904
- $oneLogRow->level,
1905
- $this->getLogLevelTranslated($oneLogRow->level)
1906
  );
1907
 
1908
  $plain_text_html .= $log_level_tag_html;
1909
 
1910
- /**
1911
- * Filter to modify classes added to item li element
1912
- *
1913
- * @since 2.0.7
1914
- *
1915
- * @param $classes Array with classes
1916
- */
1917
- $classes = apply_filters("simple_history/logrowhtmloutput/classes", $classes);
1918
-
1919
  // Generate the HTML output for a row
1920
  $output = sprintf(
1921
  '
1922
- <li %8$s class="%10$s">
1923
  <div class="SimpleHistoryLogitem__firstcol">
1924
  <div class="SimpleHistoryLogitem__senderImage">%3$s</div>
1925
  </div>
@@ -1941,11 +1772,11 @@ foreach ($arr_settings_tabs as $one_tab) {
1941
  $oneLogRow->logger, // 7
1942
  $data_attrs, // 8 data attributes
1943
  $more_details_html, // 9
1944
- join(" ", $classes) // 10
1945
  );
1946
 
1947
  // Get the main message row.
1948
- // Should be as plain as possible, like plain text
1949
  // but with links to for example users and posts
1950
  #SimpleLoggerFormatter::getRowTextOutput($oneLogRow);
1951
 
@@ -1957,94 +1788,6 @@ foreach ($arr_settings_tabs as $one_tab) {
1957
 
1958
  }
1959
 
1960
- /**
1961
- * Return translated loglevel
1962
- *
1963
- * @since 2.0.14
1964
- * @param string $loglevel
1965
- * @return string translated loglevel
1966
- */
1967
- function getLogLevelTranslated($loglevel) {
1968
-
1969
- $str_translated = "";
1970
-
1971
- switch ($loglevel) {
1972
-
1973
- // Lowercase
1974
- case "emergency":
1975
- $str_translated = _x("emergency", "Log level in gui", "simple-history");
1976
- break;
1977
-
1978
- case "alert":
1979
- $str_translated = _x("alert", "Log level in gui", "simple-history");
1980
- break;
1981
-
1982
- case "critical":
1983
- $str_translated = _x("critical", "Log level in gui", "simple-history");
1984
- break;
1985
-
1986
- case "error":
1987
- $str_translated = _x("error", "Log level in gui", "simple-history");
1988
- break;
1989
-
1990
- case "warning":
1991
- $str_translated = _x("warning", "Log level in gui", "simple-history");
1992
- break;
1993
-
1994
- case "notice":
1995
- $str_translated = _x("notice", "Log level in gui", "simple-history");
1996
- break;
1997
-
1998
- case "info":
1999
- $str_translated = _x("info", "Log level in gui", "simple-history");
2000
- break;
2001
-
2002
- case "debug":
2003
- $str_translated = _x("debug", "Log level in gui", "simple-history");
2004
- break;
2005
-
2006
- // Uppercase
2007
- case "Emergency":
2008
- $str_translated = _x("Emergency", "Log level in gui", "simple-history");
2009
- break;
2010
-
2011
- case "Alert":
2012
- $str_translated = _x("Alert", "Log level in gui", "simple-history");
2013
- break;
2014
-
2015
- case "Critical":
2016
- $str_translated = _x("Critical", "Log level in gui", "simple-history");
2017
- break;
2018
-
2019
- case "Error":
2020
- $str_translated = _x("Error", "Log level in gui", "simple-history");
2021
- break;
2022
-
2023
- case "Warning":
2024
- $str_translated = _x("Warning", "Log level in gui", "simple-history");
2025
- break;
2026
-
2027
- case "Notice":
2028
- $str_translated = _x("Notice", "Log level in gui", "simple-history");
2029
- break;
2030
-
2031
- case "Info":
2032
- $str_translated = _x("Info", "Log level in gui", "simple-history");
2033
- break;
2034
-
2035
- case "Debug":
2036
- $str_translated = _x("Debug", "Log level in gui", "simple-history");
2037
- break;
2038
-
2039
- default:
2040
- $str_translated = $loglevel;
2041
-
2042
- }
2043
-
2044
- return $str_translated;
2045
-
2046
- }
2047
-
2048
  public function getInstantiatedLoggers() {
2049
 
2050
  return $this->instantiatedLoggers;
@@ -2052,14 +1795,14 @@ foreach ($arr_settings_tabs as $one_tab) {
2052
  }
2053
 
2054
  public function getInstantiatedLoggerBySlug($slug = "") {
2055
-
2056
- if (empty($slug)) {
2057
  return false;
2058
  }
2059
-
2060
  foreach ($this->getInstantiatedLoggers() as $one_logger) {
2061
-
2062
- if ($slug == $one_logger["instance"]->slug) {
2063
  return $one_logger["instance"];
2064
  }
2065
 
@@ -2081,7 +1824,7 @@ foreach ($arr_settings_tabs as $one_tab) {
2081
 
2082
  $arr_loggers_user_can_view = array();
2083
 
2084
- if (!is_numeric($user_id)) {
2085
  $user_id = get_current_user_id();
2086
  }
2087
 
@@ -2091,39 +1834,39 @@ foreach ($arr_settings_tabs as $one_tab) {
2091
  $logger_capability = $one_logger["instance"]->getCapability();
2092
 
2093
  //$arr_loggers_user_can_view = apply_filters("simple_history/loggers_user_can_read", $user_id, $arr_loggers_user_can_view);
2094
- $user_can_read_logger = user_can($user_id, $logger_capability);
2095
  $user_can_read_logger = apply_filters("simple_history/loggers_user_can_read/can_read_single_logger", $user_can_read_logger, $one_logger["instance"], $user_id);
2096
 
2097
- if ($user_can_read_logger) {
2098
  $arr_loggers_user_can_view[] = $one_logger;
2099
  }
2100
 
2101
  }
2102
 
2103
  /**
2104
- * Fires before Simple History does it's init stuff
2105
- *
2106
- * @since 2.0
2107
- *
2108
- * @param array $arr_loggers_user_can_view Array with loggers that user $user_id can read
2109
- * @param int user_id ID of user to check read capability for
2110
- */
2111
  $arr_loggers_user_can_view = apply_filters("simple_history/loggers_user_can_read", $arr_loggers_user_can_view, $user_id);
2112
 
2113
  // just return array with slugs in parenthesis suitable for sql-where
2114
- if ("sql" == $format) {
2115
 
2116
  $str_return = "(";
2117
-
2118
  foreach ($arr_loggers_user_can_view as $one_logger) {
2119
-
2120
  $str_return .= sprintf(
2121
  '"%1$s", ',
2122
  $one_logger["instance"]->slug
2123
  );
2124
 
2125
  }
2126
-
2127
  $str_return = rtrim($str_return, " ,");
2128
  $str_return .= ")";
2129
 
@@ -2131,13 +1874,14 @@ foreach ($arr_settings_tabs as $one_tab) {
2131
 
2132
  }
2133
 
 
2134
  return $arr_loggers_user_can_view;
2135
 
2136
  }
2137
 
2138
  /**
2139
  * Retrieve the avatar for a user who provided a user ID or email address.
2140
- * A modified version of the function that comes with WordPress, but we
2141
  * want to allow/show gravatars even if they are disabled in discussion settings
2142
  *
2143
  * @since 2.0
@@ -2147,107 +1891,68 @@ foreach ($arr_settings_tabs as $one_tab) {
2147
  * @param string $default URL to a default image to use if no avatar is available
2148
  * @param string $alt Alternative text to use in image tag. Defaults to blank
2149
  * @return string <img> tag for the user's avatar
2150
- */
2151
- function get_avatar($email, $size = '96', $default = '', $alt = false) {
2152
-
2153
- // WP setting for avatars is to show, so just use the built in function
2154
- if ( get_option('show_avatars') ) {
2155
-
2156
- $avatar = get_avatar($email, $size, $default, $alt);
 
 
 
 
 
 
 
 
 
 
 
2157
 
2158
- return $avatar;
 
2159
 
 
 
2160
  } else {
 
 
 
 
 
2161
 
2162
- // WP setting for avatar was to not show, but we do it anyway, using the same code as get_avatar() would have used
2163
-
2164
- if (false === $alt) {
2165
- $safe_alt = '';
2166
- } else {
2167
- $safe_alt = esc_attr($alt);
2168
- }
2169
-
2170
- if (!is_numeric($size)) {
2171
- $size = '96';
2172
- }
2173
-
2174
- if (empty($default)) {
2175
- $avatar_default = get_option('avatar_default');
2176
- if (empty($avatar_default)) {
2177
- $default = 'mystery';
2178
- } else {
2179
- $default = $avatar_default;
2180
- }
2181
-
2182
- }
2183
-
2184
- if (!empty($email)) {
2185
- $email_hash = md5(strtolower(trim($email)));
2186
- }
2187
-
2188
- if (is_ssl()) {
2189
- $host = 'https://secure.gravatar.com';
2190
- } else {
2191
- if (!empty($email)) {
2192
- $host = sprintf("http://%d.gravatar.com", (hexdec($email_hash[0]) % 2));
2193
- } else {
2194
- $host = 'http://0.gravatar.com';
2195
- }
2196
-
2197
- }
2198
-
2199
- if ('mystery' == $default) {
2200
- $default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}";
2201
- }
2202
- // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
2203
- elseif ('blank' == $default) {
2204
- $default = $email ? 'blank' : includes_url('images/blank.gif');
2205
- } elseif (!empty($email) && 'gravatar_default' == $default) {
2206
- $default = '';
2207
- } elseif ('gravatar_default' == $default) {
2208
- $default = "$host/avatar/?s={$size}";
2209
- } elseif (empty($email)) {
2210
- $default = "$host/avatar/?d=$default&amp;s={$size}";
2211
- } elseif (strpos($default, 'http://') === 0) {
2212
- $default = add_query_arg('s', $size, $default);
2213
- }
2214
-
2215
- if (!empty($email)) {
2216
- $out = "$host/avatar/";
2217
- $out .= $email_hash;
2218
- $out .= '?s=' . $size;
2219
- $out .= '&amp;d=' . urlencode($default);
2220
-
2221
- $rating = get_option('avatar_rating');
2222
- if (!empty($rating)) {
2223
- $out .= "&amp;r={$rating}";
2224
- }
2225
-
2226
- $out = str_replace('&#038;', '&amp;', esc_url($out));
2227
- $avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
2228
- } else {
2229
- $out = esc_url($default);
2230
- $avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
2231
- }
2232
-
2233
- /**
2234
- * Filter the avatar to retrieve.
2235
- * Same filter WordPress uses
2236
- *
2237
- * @since 2.0.19
2238
- *
2239
- * @param string $avatar Image tag for the user's avatar.
2240
- * @param int|object|string $id_or_email A user ID, email address, or comment object.
2241
- * @param int $size Square avatar width and height in pixels to retrieve.
2242
- * @param string $alt Alternative text to use in the avatar image tag.
2243
- * Default empty.
2244
- */
2245
- $avatar = apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt );
2246
-
2247
- return $avatar;
2248
-
2249
- } // else
2250
 
 
2251
  }
2252
 
2253
  /**
@@ -2255,170 +1960,59 @@ foreach ($arr_settings_tabs as $one_tab) {
2255
  * Uses filter "simple_history/history_page/before_gui" to output its contents
2256
  */
2257
  public function output_quick_stats() {
2258
-
2259
  global $wpdb;
2260
 
2261
  // Get number of events today
2262
  $logQuery = new SimpleHistoryLogQuery();
2263
  $logResults = $logQuery->query(array(
2264
  "posts_per_page" => 1,
2265
- "date_from" => strtotime("today"),
2266
  ));
2267
 
2268
- $total_row_count = (int) $logResults["total_row_count"];
2269
-
2270
- // Get sql query for where to read only loggers current user is allowed to read/view
2271
  $sql_loggers_in = $this->getLoggersThatUserCanRead(get_current_user_id(), "sql");
2272
-
2273
- // Get number of users today, i.e. events with wp_user as initiator
2274
  $sql_users_today = sprintf('
2275
- SELECT
2276
  DISTINCT(c.value) AS user_id
2277
  #h.id, h.logger, h.level, h.initiator, h.date
2278
  FROM %3$s AS h
2279
- INNER JOIN %4$s AS c
2280
  ON c.history_id = h.id AND c.key = "_user_id"
2281
- WHERE
2282
  initiator = "wp_user"
2283
  AND logger IN %1$s
2284
  AND date > "%2$s"
2285
- ',
2286
- $sql_loggers_in,
2287
- date("Y-m-d H:i", strtotime("today")),
2288
- $wpdb->prefix . SimpleHistory::DBTABLE,
2289
- $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS
2290
- );
2291
-
2292
- $cache_key = "quick_stats_users_today_" . md5( serialize( $sql_loggers_in ) );
2293
- $cache_group = "simple-history-" . $this->get_cache_incrementor();
2294
- $results_users_today = wp_cache_get($cache_key, $cache_group );
2295
-
2296
- if ( false === $results_users_today ) {
2297
- $results_users_today = $wpdb->get_results($sql_users_today);
2298
- wp_cache_set($cache_key, $results_users_today, $cache_group );
2299
- }
2300
-
2301
- $count_users_today = sizeof( $results_users_today );
2302
-
2303
- // Get number of other sources (not wp_user)
2304
- $sql_other_sources_where = sprintf(
2305
- '
2306
- initiator <> "wp_user"
2307
- AND logger IN %1$s
2308
- AND date > "%2$s"
2309
- ',
2310
  $sql_loggers_in,
2311
  date("Y-m-d H:i", strtotime("today")),
2312
  $wpdb->prefix . SimpleHistory::DBTABLE,
2313
  $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS
2314
  );
2315
 
2316
- $sql_other_sources_where = apply_filters("simple_history/quick_stats_where", $sql_other_sources_where);
2317
-
2318
- $sql_other_sources = sprintf('
2319
- SELECT
2320
- DISTINCT(h.initiator) AS initiator
2321
- FROM %3$s AS h
2322
- WHERE
2323
- %5$s
2324
- ',
2325
- $sql_loggers_in,
2326
- date("Y-m-d H:i", strtotime("today")),
2327
- $wpdb->prefix . SimpleHistory::DBTABLE,
2328
- $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS,
2329
- $sql_other_sources_where // 5
2330
- );
2331
- // sf_d($sql_other_sources, '$sql_other_sources');
2332
-
2333
- $cache_key = "quick_stats_results_other_sources_today_" . md5( serialize($sql_other_sources) );
2334
- $results_other_sources_today = wp_cache_get($cache_key, $cache_group);
2335
-
2336
- if ( false === $results_other_sources_today ) {
2337
-
2338
- $results_other_sources_today = $wpdb->get_results($sql_other_sources);
2339
- wp_cache_set($cache_key, $results_other_sources_today, $cache_group);
2340
-
2341
- }
2342
-
2343
- $count_other_sources = sizeof($results_other_sources_today);
2344
-
2345
- #sf_d($logResults, '$logResults');
2346
- #sf_d($results_users_today, '$sql_users_today');
2347
- #sf_d($results_other_sources_today, '$results_other_sources_today');
2348
-
2349
  ?>
2350
  <div class="SimpleHistoryQuickStats">
2351
  <p>
2352
  <?php
2353
-
2354
  $msg_tmpl = "";
2355
 
2356
- // No results today at all
2357
- if ( $total_row_count == 0 ) {
2358
-
2359
  $msg_tmpl = __("No events today so far.", "simple-history");
2360
 
2361
- } else {
2362
-
2363
- /*
2364
- Type of results
2365
- x1 event today from 1 user.
2366
- x1 event today from 1 source.
2367
- 3 events today from 1 user.
2368
- x2 events today from 2 users.
2369
- x2 events today from 1 user and 1 other source.
2370
- x3 events today from 2 users and 1 other source.
2371
- x3 events today from 1 user and 2 other sources.
2372
- x4 events today from 2 users and 2 other sources.
2373
- */
2374
-
2375
- // A single event existed and was from a user
2376
- // 1 event today from 1 user.
2377
- if ( $total_row_count == 1 && $count_users_today == 1 ) {
2378
- $msg_tmpl .= __('One event today from one user.', "simple-history");
2379
- }
2380
-
2381
- // A single event existed and was from another source
2382
- // 1 event today from 1 source.
2383
- if ( $total_row_count == 1 && !$count_users_today ) {
2384
- $msg_tmpl .= __('One event today from one source.', "simple-history");
2385
- }
2386
 
2387
- // Multiple events from a single user
2388
- // 3 events today from one user.
2389
- if ( $total_row_count > 1 && $count_users_today == 1 && !$count_other_sources ) {
2390
- $msg_tmpl .= __('%1$d events today from one user.', "simple-history");
2391
- }
2392
 
2393
- // Multiple events from only users
2394
- // 2 events today from 2 users.
2395
- if ( $total_row_count > 1 && $count_users_today == $total_row_count ) {
2396
- $msg_tmpl .= __('%1$d events today from %2$d users.', "simple-history");
2397
- }
2398
 
2399
- // Multiple events from 1 single user and 1 single other source
2400
- // 2 events today from 1 user and 1 other source.
2401
- if ( $total_row_count && 1 == $count_users_today && 1 == $count_other_sources ) {
2402
- $msg_tmpl .= __('%1$d events today from one user and one other source.', "simple-history");
2403
- }
2404
 
2405
- // Multiple events from multple users but from only 1 single other source
2406
- // 3 events today from 2 users and 1 other source.
2407
- if ( $total_row_count > 1 && $count_users_today > 1 && $count_other_sources == 1 ) {
2408
- $msg_tmpl .= __('%1$d events today from one user and one other source.', "simple-history");
2409
- }
2410
-
2411
- // Multiple events from 1 user but from multiple other source
2412
- // 3 events today from 1 user and 2 other sources.
2413
- if ( $total_row_count > 1 && 1 == $count_users_today && $count_other_sources > 1 ) {
2414
- $msg_tmpl .= __('%1$d events today from one user and %3$d other sources.', "simple-history");
2415
- }
2416
-
2417
- // Multiple events from multiple user and from multiple other sources
2418
- // 4 events today from 2 users and 2 other sources.
2419
- if ( $total_row_count > 1 && $count_users_today > 1 && $count_other_sources > 1 ) {
2420
- $msg_tmpl .= __('%1$s events today from %2$d users and %3$d other sources.', "simple-history");
2421
- }
2422
 
2423
  }
2424
 
@@ -2427,50 +2021,29 @@ foreach ($arr_settings_tabs as $one_tab) {
2427
 
2428
  printf(
2429
  $msg_tmpl,
2430
- $logResults["total_row_count"], // 1
2431
- $count_users_today, // 2
2432
- $count_other_sources // 3
2433
  );
2434
 
2435
  // Space between texts
2436
  /*
2437
- echo " ";
2438
 
2439
- // http://playground-root.ep/wp-admin/options-general.php?page=simple_history_settings_menu_slug&selected-tab=stats
2440
- printf(
2441
- '<a href="%1$s">View more stats</a>.',
2442
- add_query_arg("selected-tab", "stats", menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0))
2443
- );
2444
- */
2445
 
2446
  }
2447
-
2448
  ?>
2449
  </p>
2450
- </div>
2451
  <?php
2452
 
2453
- } // output_quick_stats
2454
-
2455
- /**
2456
- * https://www.tollmanz.com/invalidation-schemes/
2457
- *
2458
- * @param $refresh bool
2459
- * @return string
2460
- */
2461
- public static function get_cache_incrementor( $refresh = false ) {
2462
-
2463
- $incrementor_key = 'simple_history_incrementor';
2464
- $incrementor_value = wp_cache_get( $incrementor_key );
2465
-
2466
- if ( false === $incrementor_value || true === $refresh ) {
2467
- $incrementor_value = time();
2468
- wp_cache_set( $incrementor_key, $incrementor_value );
2469
- }
2470
-
2471
- //echo "<br>incrementor_value: $incrementor_value";
2472
- return $incrementor_value;
2473
-
2474
  }
2475
 
2476
  } // class
 
2
 
3
  /**
4
  * Main class for Simple History
5
+ */
6
  class SimpleHistory {
7
 
8
  const NAME = "Simple History";
9
+ const VERSION = "2.0.6";
10
 
11
  /**
12
  * Capability required to view the history log
13
  */
14
  private $view_history_capability;
15
+
16
  /**
17
  * Capability required to view and edit the settings page
18
  */
41
  */
42
  private $doFilterGettext_currentLogger = null;
43
 
 
 
 
 
 
 
 
44
  /**
45
  * All registered settings tabs
46
  */
58
  function __construct() {
59
 
60
  /**
61
+ * Fires before Simple History does it's init stuff
62
+ *
63
+ * @since 2.0
64
+ *
65
+ * @param SimpleHistory $SimpleHistory This class.
66
+ */
67
+ do_action( "simple_history/before_init", $this );
68
 
69
  $this->setupVariables();
70
 
71
  // Actions and filters, ordered by order specified in codex: http://codex.wordpress.org/Plugin_API/Action_Reference
72
+ add_action( 'plugins_loaded', array($this, 'load_plugin_textdomain') );
73
+ add_action( 'plugins_loaded', array($this, 'add_default_settings_tabs') );
74
+ add_action( 'plugins_loaded', array($this, 'loadLoggers') );
75
+ add_action( 'plugins_loaded', array($this, 'loadDropins') );
76
 
77
  // Run before loading of loggers and before menu items are added
78
+ add_action( 'plugins_loaded', array($this, 'check_for_upgrade'), 5 );
 
 
79
 
80
+ add_action( 'admin_menu', array($this, 'add_admin_pages') );
81
+ add_action( 'admin_menu', array($this, 'add_settings') );
82
 
83
+ add_action( 'admin_footer', array( $this, "add_js_templates" ) );
84
+
85
+ add_action( 'wp_dashboard_setup', array($this, 'add_dashboard_widget') );
86
 
87
+ add_action( 'admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
88
 
89
+ add_action( 'admin_head', array( $this, "onAdminHead" ) );
 
 
 
90
 
91
  // Filters and actions not called during regular boot
92
  add_filter("gettext", array($this, 'filter_gettext'), 20, 3);
93
  add_filter("gettext_with_context", array($this, 'filter_gettext_with_context'), 20, 4);
94
 
95
+ add_action( 'simple_history/history_page/before_gui', array( $this, "output_quick_stats" ) );
96
+ add_action( 'simple_history/dashboard/before_gui', array( $this, "output_quick_stats" ) );
 
 
97
 
98
+ add_action( 'wp_ajax_simple_history_ajax', array($this, 'ajax') );
99
+ add_action( 'wp_ajax_simple_history_api', array($this, 'api') );
100
 
101
+ add_filter( 'plugin_action_links_simple-history/index.php', array($this, 'plugin_action_links'), 10, 4);
102
 
103
  /**
104
+ * Fires after Simple History has done it's init stuff
105
+ *
106
+ * @since 2.0
107
+ *
108
+ * @param SimpleHistory $SimpleHistory This class.
109
+ */
110
+ do_action( "simple_history/after_init", $this );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
 
112
+ #add_action("init", array($this, "testlog_old"));
113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
 
115
  }
116
 
118
 
119
  # Log that an email has been sent
120
  simple_history_add(array(
121
+ "object_type" => "Email",
122
+ "object_name" => "Hi there",
123
+ "action" => "was sent"
124
  ));
125
 
126
  # Will show “Plugin your_plugin_name Edited” in the history log
131
 
132
  # Log with some extra details about the email
133
  simple_history_add(array(
134
+ "object_type" => "Email",
135
+ "object_name" => "Hi there",
136
+ "action" => "was sent",
137
+ "description" => "The database query to generate the email took .3 seconds. This is email number 4 that is sent to this user"
138
  ));
139
 
 
 
 
 
 
 
 
 
 
140
 
141
  }
142
 
143
+ public function onAdminHead() {
 
 
144
 
145
+ if ( $this->is_on_our_own_pages() ) {
146
+
147
+ do_action( "simple_history/admin_head", $this );
148
 
149
  }
150
 
154
  * Output JS templated into footer
155
  */
156
  public function add_js_templates($hook) {
157
+
158
+ if ( $this->is_on_our_own_pages() ) {
159
 
160
  ?>
161
+
162
  <script type="text/html" id="tmpl-simple-history-base">
163
 
164
  <div class="SimpleHistory__waitingForFirstLoad">
165
  <img src="<?php echo admin_url("/images/spinner.gif");?>" alt="" width="20" height="20">
166
+ <?php echo _x("Loading history...", "Message visible while waiting for log to load from server the first time", "simple-history") ?>
167
  </div>
168
 
169
  <div class="SimpleHistoryLogitemsWrap">
180
  </script>
181
 
182
  <script type="text/html" id="tmpl-simple-history-logitems-pagination">
183
+
184
  <!-- this uses the (almost) the same html as WP does -->
185
  <div class="SimpleHistoryPaginationPages">
186
+ <!--
187
+ <%= page_rows_from %>–<%= page_rows_to %>
188
+ <span class="SimpleHistoryPaginationDisplayNum"> of <%= total_row_count %></span>
189
  -->
190
  <span class="SimpleHistoryPaginationLinks">
191
+ <a
192
+ data-direction="first"
193
+ class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--firstPage <% if ( api_args.paged <= 1 ) { %> disabled <% } %>"
194
+ title="<%= strings.goToTheFirstPage %>"
195
  href="#">«</a>
196
+ <a
197
+ data-direction="prev"
198
+ class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--prevPage <% if ( api_args.paged <= 1 ) { %> disabled <% } %>"
199
+ title="<%= strings.goToThePrevPage %>"
200
  href="#">‹</a>
201
  <span class="SimpleHistoryPaginationInput">
202
+ <input class="SimpleHistoryPaginationCurrentPage" title="<%= strings.currentPage %>" type="text" name="paged" value="<%= api_args.paged %>" size="4">
203
+ <?php _x("of", "page n of n", "simple-history") ?>
204
+ <span class="total-pages"><%= pages_count %></span>
205
  </span>
206
+ <a
207
+ data-direction="next"
208
+ class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--nextPage <% if ( api_args.paged >= pages_count ) { %> disabled <% } %>"
209
+ title="<%= strings.goToTheNextPage %>"
210
  href="#">›</a>
211
+ <a
212
+ data-direction="last"
213
+ class="button SimpleHistoryPaginationLink SimpleHistoryPaginationLink--lastPage <% if ( api_args.paged >= pages_count ) { %> disabled <% } %>"
214
+ title="<%= strings.goToTheLastPage %>"
215
  href="#">»</a>
216
  </span>
217
  </div>
237
  <?php
238
 
239
  // Call plugins so they can add their js
240
+ foreach ( $this->instantiatedLoggers as $one_logger ) {
241
+ if( method_exists($one_logger["instance"], "adminJS" ) ) {
242
  $one_logger["instance"]->adminJS();
243
  }
244
  }
256
  *
257
  */
258
  public function api() {
259
+
260
  global $wpdb;
261
 
262
  // Fake slow answers
266
  unset($args["action"]);
267
 
268
  // Type = overview | ...
269
+ $type = isset( $_GET["type"] ) ? $_GET["type"] : null;
270
 
271
+ if ( empty( $args ) || ! $type ) {
272
 
273
+ wp_send_json_error( array(
274
+ _x("Not enough args specified", "API: not enought arguments passed", "simple-history")
275
+ ) );
276
 
277
  }
278
 
279
  if (isset($args["id"])) {
280
  $args["post__in"] = array(
281
+ $args["id"]
282
  );
283
  }
284
 
285
+
286
  $data = array();
287
 
288
  switch ($type) {
294
  // API use SimpleHistoryLogQuery, so simply pass args on to that
295
  $logQuery = new SimpleHistoryLogQuery();
296
  $data = $logQuery->query($args);
297
+
298
  $data["api_args"] = $args;
299
 
300
  // Output can be array or HMTL
301
+ if ( isset( $args["format"] ) && "html" === $args["format"] ) {
302
+
303
  $data["log_rows_raw"] = array();
304
 
305
  foreach ($data["log_rows"] as $key => $oneLogRow) {
306
+
307
  $args = array();
308
  if ($type == "single") {
309
  $args["type"] = "single";
310
  }
311
 
312
+ $data["log_rows"][$key] = $this->getLogRowHTMLOutput( $oneLogRow, $args);
 
313
 
314
  }
315
 
316
  } else {
317
+
318
  $data["logRows"] = $logRows;
319
  }
320
 
321
  break;
322
 
323
+
324
  default:
325
  $data[] = "Nah.";
326
 
327
  }
328
 
329
+ wp_send_json_success( $data );
330
 
331
  }
332
 
335
  * to the untranslated text too, because that's the version we want to store
336
  * in the database.
337
  */
338
+ public function filter_gettext( $translated_text, $untranslated_text, $domain ) {
339
 
340
+ if ( isset( $this->doFilterGettext ) && $this->doFilterGettext ) {
341
 
342
  $this->doFilterGettext_currentLogger->messages[] = array(
343
  "untranslated_text" => $untranslated_text,
349
  }
350
 
351
  return $translated_text;
352
+
353
  }
354
 
355
  /**
356
  * Store messages with context
357
  */
358
+ public function filter_gettext_with_context( $translated_text, $untranslated_text, $context, $domain ) {
359
 
360
+ if ( isset( $this->doFilterGettext ) && $this->doFilterGettext ) {
361
 
362
  $this->doFilterGettext_currentLogger->messages[] = array(
363
  "untranslated_text" => $untranslated_text,
369
  }
370
 
371
  return $translated_text;
372
+
373
  }
374
 
375
  /**
376
  * Load language files.
377
  * Uses the method described here:
378
  * http://geertdedeckere.be/article/loading-wordpress-language-files-the-right-way
379
+ *
380
  * @since 2.0
381
  */
382
  public function load_plugin_textdomain() {
383
 
384
  $domain = 'simple-history';
385
+
386
  // The "plugin_locale" filter is also used in load_plugin_textdomain()
387
  $locale = apply_filters('plugin_locale', get_locale(), $domain);
388
 
389
+ load_textdomain($domain, WP_LANG_DIR.'/simple-history/'.$domain.'-'.$locale.'.mo');
390
+ load_plugin_textdomain($domain, FALSE, dirname( $this->plugin_basename ).'/languages/');
391
 
392
  }
393
 
395
  * Setup variables and things
396
  */
397
  public function setupVariables() {
398
+
399
  // Capability required to view history = for who will the History page be added
400
  $this->view_history_capability = "edit_pages";
401
  $this->view_history_capability = apply_filters("simple_history_view_history_capability", $this->view_history_capability);
414
  * Adds default tabs to settings
415
  */
416
  public function add_default_settings_tabs() {
417
+
418
  // Add default settings tabs
419
  $this->arr_settings_tabs = array(
420
+
421
  array(
422
  "slug" => "settings",
423
  "name" => __("Settings", "simple-history"),
424
+ "function" => array($this, "settings_output_general")
425
  ),
426
 
427
  );
428
 
429
+ if ( defined("SIMPLE_HISTORY_DEV") && SIMPLE_HISTORY_DEV ) {
430
+
431
  $arr_dev_tabs = array(
432
  array(
433
  "slug" => "log",
434
  "name" => __("Log (debug)", "simple-history"),
435
+ "function" => array($this, "settings_output_log")
436
  ),
437
  array(
438
  "slug" => "styles-example",
439
  "name" => __("Styles example (debug)", "simple-history"),
440
+ "function" => array($this, "settings_output_styles_example")
441
+ )
442
 
443
  );
444
 
445
+ $this->arr_settings_tabs = array_merge( $this->arr_settings_tabs, $arr_dev_tabs );
446
 
447
  }
448
 
453
  * and instantiates them
454
  */
455
  public function loadLoggers() {
456
+
457
  $loggersDir = __DIR__ . "/loggers/";
458
 
459
  /**
465
  */
466
  $loggersDir = apply_filters("simple_history/loggers_dir", $loggersDir);
467
 
468
+ $loggersFiles = glob( $loggersDir . "*.php");
469
 
470
  // SimpleLogger.php must be loaded first since the other loggers extend it
471
+ require_once($loggersDir . "SimpleLogger.php");
472
 
473
  /**
474
  * Filter the array with absolute paths to files as returned by glob function.
478
  * @since 2.0
479
  *
480
  * @param array $loggersFiles Array with filenames
481
+ */
482
  $loggersFiles = apply_filters("simple_history/loggers_files", $loggersFiles);
483
+
484
  $arrLoggersToInstantiate = array();
485
+ foreach ( $loggersFiles as $oneLoggerFile) {
486
+
487
+ if ( basename($oneLoggerFile) == "SimpleLogger.php" ) {
488
+
489
  // SimpleLogger is already loaded
490
 
491
  } else {
492
 
493
+ include_once($oneLoggerFile);
494
 
495
  }
496
 
497
  $arrLoggersToInstantiate[] = basename($oneLoggerFile, ".php");
498
+
499
  }
500
 
501
  /**
504
  * @since 2.0
505
  *
506
  * @param array $arrLoggersToInstantiate Array with class names
507
+ */
508
  $arrLoggersToInstantiate = apply_filters("simple_history/loggers_to_instantiate", $arrLoggersToInstantiate);
509
  // Instantiate each logger
510
+ foreach ($arrLoggersToInstantiate as $oneLoggerName ) {
511
+
512
+ if ( ! class_exists($oneLoggerName) ) {
513
  continue;
514
  }
515
 
516
  $loggerInstance = new $oneLoggerName($this);
517
 
518
+ if ( ! is_subclass_of($loggerInstance, "SimpleLogger") && ! is_a($loggerInstance, "SimpleLogger") ) {
519
  continue;
520
  }
521
 
522
  $loggerInstance->loaded();
523
+
524
  // Tell gettext-filter to add untranslated messages
525
  $this->doFilterGettext = true;
526
  $this->doFilterGettext_currentLogger = $loggerInstance;
531
  $this->doFilterGettext = false;
532
  $this->doFilterGettext_currentLogger = null;
533
 
534
+ // LoggerInfo contains all messages, both translated an not, by key.
535
  // Add messages to the loggerInstance
536
  $loopNum = 0;
537
+ foreach ( $loggerInfo["messages"] as $message_key => $message ) {
538
+
539
+ $loggerInstance->messages[ $message_key ] = $loggerInstance->messages[ $loopNum ];
540
  $loopNum++;
541
 
542
  }
543
 
544
  // Remove index keys, only keeping slug keys
545
  if (is_array($loggerInstance->messages)) {
546
+ foreach ( $loggerInstance->messages as $key => $val ) {
547
+ if ( is_int($key) ) {
548
+ unset( $loggerInstance->messages[$key] );
549
  }
550
  }
551
+ }
552
+
553
  // Add logger to array of loggers
554
+ $this->instantiatedLoggers[ $loggerInstance->slug ] = array(
555
  "name" => $loggerInfo["name"],
556
+ "instance" => $loggerInstance
557
  );
558
 
559
  }
560
 
561
+ do_action( "simple_history/loggers_loaded" );
562
 
563
  #sf_d($this->instantiatedLoggers);exit;
564
 
569
  * and instantiates them
570
  */
571
  public function loadDropins() {
572
+
573
  $dropinsDir = __DIR__ . "/dropins/";
574
 
575
  /**
581
  */
582
  $dropinsDir = apply_filters("simple_history/dropins_dir", $dropinsDir);
583
 
584
+ $dropinsFiles = glob( $dropinsDir . "*.php");
585
 
586
  /**
587
  * Filter the array with absolute paths to files as returned by glob function.
591
  * @since 2.0
592
  *
593
  * @param array $dropinsFiles Array with filenames
594
+ */
595
  $dropinsFiles = apply_filters("simple_history/dropins_files", $dropinsFiles);
596
+
597
  $arrDropinsToInstantiate = array();
598
 
599
+ foreach ( $dropinsFiles as $oneDropinFile ) {
600
+
601
  // path/path/simplehistory/dropins/SimpleHistoryDonateDropin.php => SimpleHistoryDonateDropin
602
  $oneDropinFileBasename = basename($oneDropinFile, ".php");
603
 
610
  *
611
  * @param bool if to load the dropin. return false to not load it.
612
  */
613
+ $load_dropin = apply_filters( "simple_history/dropin/load_dropin_{$oneDropinFileBasename}", true );
614
 
615
+ if ( ! $load_dropin ) {
616
  continue;
617
  }
618
 
619
+ include_once($oneDropinFile);
620
 
621
  $arrDropinsToInstantiate[] = $oneDropinFileBasename;
622
+
623
  }
624
 
625
  /**
628
  * @since 2.0
629
  *
630
  * @param array $arrDropinsToInstantiate Array with class names
631
+ */
632
  $arrDropinsToInstantiate = apply_filters("simple_history/dropins_to_instantiate", $arrDropinsToInstantiate);
633
 
634
  // Instantiate each dropin
635
+ foreach ($arrDropinsToInstantiate as $oneDropinName ) {
636
+
637
+ if ( ! class_exists( $oneDropinName ) ) {
638
  continue;
639
  }
640
 
641
  $this->instantiatedDropins[$oneDropinName] = array(
642
  "name" => $oneDropinName,
643
+ "instance" => new $oneDropinName( $this )
644
  );
645
  }
646
 
647
  }
648
 
649
  /**
650
+ * Gets the pager size,
651
  * i.e. the number of items to show on each page in the history
652
  *
653
  * @return int
668
  return $pager_size;
669
 
670
  }
671
+
672
 
673
  /**
674
  * Show a link to our settings page on the Plugins -> Installed Plugins screen
675
  */
676
  function plugin_action_links($actions, $b, $c, $d) {
677
+
678
  // Only add link if user has the right to view the settings page
679
+ if ( ! current_user_can($this->view_settings_capability) ) {
680
  return $actions;
681
  }
682
 
683
  $settings_page_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0);
684
+
685
  $actions[] = "<a href='$settings_page_url'>" . __("Settings", "simple-history") . "</a>";
686
 
687
  return $actions;
688
+
689
  }
690
 
691
  /**
694
  * and a setting to show dashboard to be set
695
  */
696
  function add_dashboard_widget() {
697
+
698
+ if ( $this->setting_show_on_dashboard() && current_user_can($this->view_history_capability) ) {
699
+
700
  wp_add_dashboard_widget("simple_history_dashboard_widget", __("Simple History", 'simple-history'), array($this, "dashboard_widget_output"));
701
+
702
  }
703
  }
704
 
706
  * Output html for the dashboard widget
707
  */
708
  function dashboard_widget_output() {
709
+
710
  $pager_size = $this->get_pager_size();
711
 
712
  /**
718
  */
719
  $pager_size = apply_filters("simple_history/dashboard_pager_size", $pager_size);
720
 
721
+ do_action( "simple_history/dashboard/before_gui", $this );
722
 
723
  ?>
724
  <div class="SimpleHistoryGui"
725
+ data-pager-size='<?php echo $pager_size ?>'
726
  ></div>
727
  <?php
728
 
729
  }
730
+
731
  function is_on_our_own_pages($hook = "") {
732
 
733
  $current_screen = get_current_screen();
734
 
735
+ if ( $current_screen && $current_screen->base == "settings_page_" . SimpleHistory::SETTINGS_MENU_SLUG ) {
736
+
737
  return true;
738
 
739
+ } else if ( $current_screen && $current_screen->base == "dashboard_page_simple_history_page" ) {
740
 
741
  return true;
742
 
743
+ } else if ( ($hook == "settings_page_" . SimpleHistory::SETTINGS_MENU_SLUG) || ($this->setting_show_on_dashboard() && $hook == "index.php") || ($this->setting_show_as_page() && $hook == "dashboard_page_simple_history_page")) {
744
 
745
  return true;
746
 
747
+ } else if ( $current_screen && $current_screen->base == "dashboard" && $this->setting_show_on_dashboard() ) {
748
 
749
  return true;
750
 
759
  * Only adds scripts to pages where the log is shown or the settings page.
760
  */
761
  function enqueue_admin_scripts($hook) {
762
+
763
+ if ( $this->is_on_our_own_pages() ) {
764
+
765
  add_thickbox();
766
 
767
  $plugin_url = plugin_dir_url(__FILE__);
768
+ wp_enqueue_style( "simple_history_styles", $plugin_url . "css/styles.css", false, SimpleHistory::VERSION );
769
+ wp_enqueue_script("simple_history_script", $plugin_url . "js/scripts.js", array("jquery", "backbone"), SimpleHistory::VERSION, true);
770
+
771
  wp_enqueue_script("select2", $plugin_url . "/js/select2/select2.min.js", array("jquery"));
772
  wp_enqueue_style("select2", $plugin_url . "/js/select2/select2.css");
773
 
774
  // Translations that we use in JavaScript
775
+ wp_localize_script('simple_history_script', 'simple_history_script_vars', array(
776
  'settingsConfirmClearLog' => __("Remove all log items?", 'simple-history'),
777
  'pagination' => array(
778
  'goToTheFirstPage' => __("Go to the first page", 'simple-history'),
782
  'currentPage' => __("Current page", 'simple-history'),
783
  ),
784
  "loadLogAPIError" => __("Oups, the log could not be loaded right now.", 'simple-history'),
785
+ "logNoHits" => __("Your search did not match any history events.", "simple-history")
786
  ));
787
 
788
  // Call plugins adminCSS-method, so they can add their CSS
789
+ foreach ( $this->instantiatedLoggers as $one_logger ) {
790
+ if ( method_exists($one_logger["instance"], "adminCSS" ) ) {
791
  $one_logger["instance"]->adminCSS();
792
  }
793
  }
794
 
795
  /**
796
+ * Fires when the admin scripts have been enqueued.
797
+ * Only fires on any of the pages where Simple History is used
798
+ *
799
+ * @since 2.0
800
+ *
801
+ * @param SimpleHistory $SimpleHistory This class.
802
+ */
803
  do_action("simple_history/enqueue_admin_scripts", $this);
804
+
805
  }
806
 
807
  }
809
  function filter_option_page_capability($capability) {
810
  return $capability;
811
  }
812
+
813
  /**
814
  * Check if plugin version have changed, i.e. has been upgraded
815
  * If upgrade is detected then maybe modify database and so on for that version
823
  $table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
824
  $first_install = false;
825
 
826
+ // If no db_version is set then this
827
  // is a version of Simple History < 0.4
828
  // or it's a first install
829
  // Fix database not using UTF-8
830
+ if ( false === $db_version ) {
831
+
832
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
833
 
834
  // Table creation, used to be in register_activation_hook
835
+ /*
836
  $sql = "CREATE TABLE " . $table_name . " (
837
+ id int(10) NOT NULL AUTO_INCREMENT,
838
+ date datetime NOT NULL,
839
+ action varchar(255) NOT NULL COLLATE utf8_general_ci,
840
+ object_type varchar(255) NOT NULL COLLATE utf8_general_ci,
841
+ object_subtype VARCHAR(255) NOT NULL COLLATE utf8_general_ci,
842
+ user_id int(10) NOT NULL,
843
+ object_id int(10) NOT NULL,
844
+ object_name varchar(255) NOT NULL COLLATE utf8_general_ci,
845
+ action_description longtext,
846
+ PRIMARY KEY (id)
847
  ) CHARACTER SET=utf8;";
848
  dbDelta($sql);
849
+ */
850
 
851
  // We change the varchar size to add one num just to force update of encoding. dbdelta didn't see it otherwise.
852
  // This table is missing action_description, but we add that later on
864
 
865
  // Upgrade db / fix utf for varchars
866
  dbDelta($sql);
867
+
868
  // Fix UTF-8 for table
869
  $sql = sprintf('alter table %1$s charset=utf8;', $table_name);
870
  $wpdb->query($sql);
871
+
872
  $db_version_prev = $db_version;
873
  $db_version = 1;
874
 
875
+ /*SimpleLogger()->debug(
876
+ "Simple History updated its database from version {from_version} to {to_version}",
877
+ array(
878
+ "from_version" => $db_version_prev,
879
+ "to_version" => $db_version
880
+ )
881
+ );*/
882
+
883
  update_option("simple_history_db_version", $db_version);
884
 
885
+ // We are not 100% sure that this is a first install,
886
  // but it is at least a very old version that is being updated
887
  $first_install = true;
888
 
889
+ } // done pre db ver 1 things
890
+
891
 
892
  // If db version is 1 then upgrade to 2
893
  // Version 2 added the action_description column
894
+ if ( 1 == intval($db_version) ) {
895
 
896
+ // Add column for action description in non-translateable free text
897
  $sql = "ALTER TABLE {$table_name} ADD COLUMN action_description longtext";
898
  $wpdb->query($sql);
899
 
909
  $arr_options = array(
910
  array(
911
  "name" => "simple_history_show_as_page",
912
+ "default_value" => 1
913
  ),
914
  array(
915
  "name" => "simple_history_show_on_dashboard",
916
+ "default_value" => 1
917
+ )
918
  );
919
 
920
  foreach ($arr_options as $one_option) {
921
+
922
+ if ( false === ($option_value = get_option( $one_option["name"] ) ) ) {
923
 
924
  // Value is not set in db, so set it to a default
925
+ update_option( $one_option["name"], $one_option["default_value"] );
926
 
927
  }
928
  }
934
  *
935
  * @since 2.0
936
  */
937
+ if ( 2 == intval($db_version) ) {
938
 
939
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
940
 
941
  // Update old table
942
  $sql = "
960
  KEY date (date),
961
  KEY loggerdate (logger, date)
962
  ) CHARSET=utf8;";
963
+
964
  dbDelta($sql);
965
 
966
  // Add context table
985
  // Update old items to use SimpleLegacyLogger
986
  $sql = sprintf('
987
  UPDATE %1$s
988
+ SET
989
  logger = "SimpleLegacyLogger",
990
  level = "info"
991
  WHERE logger IS NULL
992
+ ',
993
  $table_name
994
  );
995
 
996
+ $wpdb->query( $sql );
997
 
998
  // Say welcome, however loggers are not added this early so we need to
999
  // use a filter to load it later
1000
+ add_action("simple_history/loggers_loaded", array( $this, "addWelcomeLogMessage" ));
1001
 
1002
+ } // db version 2 » 3
1003
 
1004
  /**
1005
+ * If db version = 3
1006
  * then we need to update database to allow null values for some old columns
1007
  * that used to work in pre wp 4.1 beta, but since 4.1 wp uses STRICT_ALL_TABLES
1008
  * WordPress Commit: https://github.com/WordPress/WordPress/commit/f17d168a0f72211a9bfd9d3fa680713069871bb6
1009
+ *
1010
  * @since 2.0
1011
  */
1012
+ if ( 3 == intval($db_version) ) {
1013
 
1014
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
1015
 
1016
  $sql = sprintf('
1017
  ALTER TABLE %1$s
1021
  MODIFY `user_id` int(10) NULL,
1022
  MODIFY `object_id` int(10) NULL,
1023
  MODIFY `object_name` varchar(255) NULL
1024
+ ',
1025
  $table_name
1026
  );
1027
+ $wpdb->query( $sql );
1028
 
1029
  $db_version_prev = $db_version;
1030
  $db_version = 4;
1031
+
1032
  update_option("simple_history_db_version", $db_version);
1033
 
1034
+ } // end db version 3 » 4
 
 
1035
 
1036
+
1037
+ } // end check_for_upgrade
1038
+
1039
  /**
1040
  * Greet users to version 2!
1041
  */
1042
  public function addWelcomeLogMessage() {
1043
 
1044
  SimpleLogger()->info(
1045
+ "Welcome to Simple History 2! Hope you will enjoy this plugin.
1046
  Found bugs? Got great ideas? Send them to the plugin developer at par.thernstrom@gmail.com.",
1047
  array(
1048
+ "_initiator" => SimpleLoggerLogInitiators::WORDPRESS
1049
  )
1050
  );
1051
 
1066
  /**
1067
  * Output HTML for the settings page
1068
  * Called from add_options_page
1069
+ */
1070
  function settings_page_output() {
1071
+
1072
  $arr_settings_tabs = $this->getSettingsTabs();
1073
 
1074
  ?>
1076
 
1077
  <h2 class="SimpleHistoryPageHeadline">
1078
  <div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div>
1079
+ <?php _e("Simple History Settings", "simple-history") ?>
1080
  </h2>
1081
+
1082
  <?php
1083
+ $active_tab = isset( $_GET["selected-tab"] ) ? $_GET["selected-tab"] : "settings";
1084
+ $settings_base_url = menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0);
1085
+ ?>
1086
 
1087
  <h3 class="nav-tab-wrapper">
1088
  <?php
1089
+ foreach ( $arr_settings_tabs as $one_tab ) {
1090
 
1091
+ $tab_slug = $one_tab["slug"];
1092
+
1093
+ printf(
1094
+ '<a href="%3$s" class="nav-tab %4$s">%1$s</a>',
1095
+ $one_tab["name"], // 1
1096
+ $tab_slug, // 2
1097
+ add_query_arg("selected-tab", $tab_slug, $settings_base_url), // 3
1098
+ $active_tab == $tab_slug ? "nav-tab-active" : "" // 4
1099
+ );
1100
 
1101
+ }
1102
+ ?>
1103
  </h3>
1104
 
1105
  <?php
1106
+
1107
+ // Output contents for selected tab
1108
+ $arr_active_tab = wp_filter_object_list( $arr_settings_tabs, array("slug" => $active_tab));
1109
+ $arr_active_tab = current($arr_active_tab);
1110
+
1111
+ // We must have found an active tab and it must have a callable function
1112
+ if ( ! $arr_active_tab || ! is_callable( $arr_active_tab["function"] ) ) {
1113
+ wp_die( __("No valid callback found", "simple-history") );
1114
+ }
1115
 
1116
+ $args = array(
1117
+ "arr_active_tab" => $arr_active_tab
1118
+ );
 
 
 
 
 
 
 
 
 
1119
 
1120
+ call_user_func_array( $arr_active_tab["function"], $args );
1121
 
1122
+ ?>
1123
 
1124
  </div>
1125
  <?php
1126
+
1127
  }
1128
 
1129
  public function settings_output_log() {
1130
+
1131
+ include( __DIR__ . "/templates/settings-log.php" );
1132
 
1133
  }
1134
 
1135
  public function settings_output_general() {
1136
+
1137
+ include( __DIR__ . "/templates/settings-general.php" );
1138
 
1139
  }
1140
 
1141
  public function settings_output_styles_example() {
1142
+
1143
+ include( __DIR__ . "/templates/settings-style-example.php" );
1144
 
1145
  }
1146
 
1147
+
1148
  /**
1149
  * Content for section intro. Leave it be, even if empty.
1150
  * Called from add_sections_setting.
1151
  */
1152
  function settings_section_output() {
1153
+
1154
  }
1155
 
1156
+
1157
  /**
1158
  * Add pages (history page and settings page)
1159
  */
1160
  function add_admin_pages() {
1161
+
1162
  // Add a history page as a sub-page below the Dashboard menu item
1163
+ if ( $this->setting_show_as_page() ) {
1164
+
1165
  add_dashboard_page(
1166
+ SimpleHistory::NAME,
1167
+ _x("Simple History", 'dashboard menu name', 'simple-history'),
1168
+ $this->view_history_capability,
1169
+ "simple_history_page",
1170
+ array($this, "history_page_output")
1171
+ );
1172
 
1173
  }
1174
 
1179
  if ($show_settings_page) {
1180
 
1181
  add_options_page(
1182
+ __('Simple History Settings', "simple-history"),
1183
+ SimpleHistory::NAME,
1184
+ $this->view_settings_capability,
1185
+ SimpleHistory::SETTINGS_MENU_SLUG,
1186
+ array($this, 'settings_page_output')
1187
+ );
1188
 
1189
  }
1190
 
1197
  function add_settings() {
1198
 
1199
  // Clear the log if clear button was clicked in settings
1200
+ if ( isset( $_GET["simple_history_clear_log_nonce"] ) && wp_verify_nonce( $_GET["simple_history_clear_log_nonce"], 'simple_history_clear_log')) {
1201
+
1202
  $this->clear_log();
1203
  $msg = __("Cleared database", 'simple-history');
1204
+ add_settings_error( "simple_history_rss_feed_regenerate_secret", "simple_history_rss_feed_regenerate_secret", $msg, "updated" );
1205
  set_transient('settings_errors', get_settings_errors(), 30);
1206
 
1207
+ $goback = add_query_arg( 'settings-updated', 'true', wp_get_referer() );
1208
+ wp_redirect( $goback );
1209
  exit;
1210
 
1211
  }
1214
  // Will contain settings like where to show simple history and number of items
1215
  $settings_section_general_id = self::SETTINGS_SECTION_GENERAL_ID;
1216
  add_settings_section(
1217
+ $settings_section_general_id,
1218
+ "", // No title __("General", "simple-history"),
1219
+ array($this, "settings_section_output"),
1220
+ SimpleHistory::SETTINGS_MENU_SLUG // same slug as for options menu page
1221
  );
1222
 
1223
  // Settings for the general settings section
1226
 
1227
  // Checkboxes for where to show simple history
1228
  add_settings_field(
1229
+ "simple_history_show_where",
1230
  __("Show history", "simple-history"),
1231
  array($this, "settings_field_where_to_show"),
1232
  SimpleHistory::SETTINGS_MENU_SLUG,
1239
 
1240
  // Dropdown number if items to show
1241
  add_settings_field(
1242
+ "simple_history_number_of_items",
1243
  __("Number of items per page", "simple-history"),
1244
  array($this, "settings_field_number_of_items"),
1245
  SimpleHistory::SETTINGS_MENU_SLUG,
1260
 
1261
  }
1262
 
1263
+
1264
  /**
1265
  * Output for page with the history
1266
  */
1286
  ?>
1287
 
1288
  <div class="wrap SimpleHistoryWrap">
1289
+
1290
  <h2 class="SimpleHistoryPageHeadline">
1291
  <div class="dashicons dashicons-backup SimpleHistoryPageHeadline__icon"></div>
1292
+ <?php echo _x("Simple History", 'history page headline', 'simple-history') ?>
1293
  </h2>
1294
 
1295
  <?php
1296
+ /**
1297
+ * Fires before the gui div
1298
+ *
1299
+ * @since 2.0
1300
+ *
1301
+ * @param SimpleHistory $SimpleHistory This class.
1302
+ */
1303
+ do_action( "simple_history/history_page/before_gui", $this );
1304
+ ?>
1305
 
1306
  <div class="SimpleHistoryGuiWrap">
1307
 
1308
  <div class="SimpleHistoryGui"
1309
+ data-pager-size='<?php echo $pager_size ?>'
1310
  ></div>
1311
 
1312
  <?php
1313
 
1314
+ /**
1315
+ * Fires after the gui div
1316
+ *
1317
+ * @since 2.0
1318
+ *
1319
+ * @param SimpleHistory $SimpleHistory This class.
1320
+ */
1321
+ do_action( "simple_history/history_page/after_gui", $this );
 
 
1322
 
1323
+ ?>
1324
+
1325
  </div>
1326
 
1327
  </div>
1331
  }
1332
 
1333
  /**
1334
+ * Get setting if plugin should be visible on dasboard.
1335
  * Defaults to true
1336
  *
1337
  * @return bool
1338
  */
1339
  function setting_show_on_dashboard() {
1340
+
1341
  $show_on_dashboard = get_option("simple_history_show_on_dashboard", 1);
1342
  $show_on_dashboard = apply_filters("simple_history_show_on_dashboard", $show_on_dashboard);
1343
  return (bool) $show_on_dashboard;
1362
  * Settings field for how many rows/items to show in log
1363
  */
1364
  function settings_field_number_of_items() {
1365
+
1366
  $current_pager_size = $this->get_pager_size();
1367
 
1368
  ?>
1369
  <select name="simple_history_pager_size">
1370
+ <option <?php echo $current_pager_size == 5 ? "selected" : "" ?> value="5">5</option>
1371
+ <option <?php echo $current_pager_size == 10 ? "selected" : "" ?> value="10">10</option>
1372
+ <option <?php echo $current_pager_size == 15 ? "selected" : "" ?> value="15">15</option>
1373
+ <option <?php echo $current_pager_size == 20 ? "selected" : "" ?> value="20">20</option>
1374
+ <option <?php echo $current_pager_size == 25 ? "selected" : "" ?> value="25">25</option>
1375
+ <option <?php echo $current_pager_size == 30 ? "selected" : "" ?> value="30">30</option>
1376
+ <option <?php echo $current_pager_size == 40 ? "selected" : "" ?> value="40">40</option>
1377
+ <option <?php echo $current_pager_size == 50 ? "selected" : "" ?> value="50">50</option>
1378
+ <option <?php echo $current_pager_size == 75 ? "selected" : "" ?> value="75">75</option>
1379
+ <option <?php echo $current_pager_size == 100 ? "selected" : "" ?> value="100">100</option>
1380
  </select>
1381
  <?php
1382
 
1390
  $show_on_dashboard = $this->setting_show_on_dashboard();
1391
  $show_as_page = $this->setting_show_as_page();
1392
  ?>
1393
+
1394
+ <input <?php echo $show_on_dashboard ? "checked='checked'" : "" ?> type="checkbox" value="1" name="simple_history_show_on_dashboard" id="simple_history_show_on_dashboard" class="simple_history_show_on_dashboard" />
1395
+ <label for="simple_history_show_on_dashboard"><?php _e("on the dashboard", 'simple-history') ?></label>
1396
 
1397
  <br />
1398
+
1399
+ <input <?php echo $show_as_page ? "checked='checked'" : "" ?> type="checkbox" value="1" name="simple_history_show_as_page" id="simple_history_show_as_page" class="simple_history_show_as_page" />
1400
+ <label for="simple_history_show_as_page"><?php _e("as a page under the dashboard menu", 'simple-history') ?></label>
1401
+
1402
  <?php
1403
+ }
1404
 
1405
  /**
1406
  * Settings section to clear database
1407
  */
1408
  function settings_field_clear_log() {
1409
+
1410
  $clear_link = add_query_arg("", "");
1411
+ $clear_link = wp_nonce_url( $clear_link, "simple_history_clear_log", "simple_history_clear_log_nonce" );
1412
  $clear_days = $this->get_clear_history_interval();
1413
 
1414
  echo "<p>";
1415
+ if ( $clear_days > 0 ) {
1416
+ echo sprintf( __('Items in the database are automatically removed after %1$s days.', "simple-history"), $clear_days);
1417
  } else {
1418
+ _e( 'Items in the database are kept forever.', 'simple-history');
1419
  }
1420
  echo "</p>";
1421
 
1423
  }
1424
 
1425
  /**
1426
+ * How old log entried are allowed to be.
1427
  * 0 = don't delete old entries.
1428
  *
1429
  * @return int Number of days.
1445
  function clear_log() {
1446
 
1447
  global $wpdb;
1448
+
1449
  $tableprefix = $wpdb->prefix;
 
1450
  $simple_history_table = SimpleHistory::DBTABLE;
1451
  $simple_history_context_table = SimpleHistory::DBTABLE_CONTEXTS;
1452
+
 
 
 
 
1453
  $sql = "DELETE FROM {$tableprefix}{$simple_history_table}";
1454
  $wpdb->query($sql);
1455
 
1456
  $sql = "DELETE FROM {$tableprefix}{$simple_history_context_table}";
1457
  $wpdb->query($sql);
1458
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1459
  }
1460
 
1461
  /**
1462
  * Removes old entries from the db
1463
+ * @TODO this function does not remove old entries from context table
1464
  */
1465
  function purge_db() {
1466
 
 
 
1467
  $do_purge_history = true;
 
1468
  $do_purge_history = apply_filters("simple_history_allow_db_purge", $do_purge_history);
1469
  $do_purge_history = apply_filters("simple_history/allow_db_purge", $do_purge_history);
1470
+ if ( ! $do_purge_history ) {
 
1471
  return;
1472
  }
1473
 
1479
  }
1480
 
1481
  global $wpdb;
1482
+ $tableprefix = $wpdb->prefix;
1483
+ $simple_history_table = SimpleHistory::DBTABLE;
1484
 
1485
+ $sql = "DELETE FROM {$tableprefix}{$simple_history_table} WHERE DATE_ADD(date, INTERVAL $days DAY) < now()";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1486
 
1487
+ $wpdb->query($sql);
 
 
 
 
 
 
 
 
1488
 
1489
  }
1490
 
1493
  * Uses the getLogRowPlainTextOutput of the logger that logged the row
1494
  * with fallback to SimpleLogger if logger is not available
1495
  *
1496
+ * @param array $row
1497
  * @return string
1498
  */
1499
  public function getLogRowPlainTextOutput($row) {
1500
+
1501
  $row_logger = $row->logger;
1502
  $logger = null;
1503
+ $row->context = isset( $row->context ) && is_array( $row->context ) ? $row->context : array();
1504
 
1505
+ if ( ! isset( $row->context["_message_key"] ) ) {
1506
  $row->context["_message_key"] = null;
1507
  }
1508
+
1509
  // Fallback to SimpleLogger if no logger exists for row
1510
+ if ( ! isset( $this->instantiatedLoggers[$row_logger] ) ) {
1511
  $row_logger = "SimpleLogger";
1512
  }
1513
 
1514
+ $logger = $this->instantiatedLoggers[ $row_logger ]["instance"];
 
 
1515
 
1516
+ return $logger->getLogRowPlainTextOutput( $row );
1517
+
1518
  }
1519
 
1520
  /**
1522
  * Uses the getLogRowHeaderOutput of the logger that logged the row
1523
  * with fallback to SimpleLogger if logger is not available
1524
  *
1525
+ * Loggers are discouraged to override this in the loggers,
1526
  * because the output should be the same for all items in the gui
1527
+ *
1528
  * @param array $row
1529
  * @return string
1530
  */
1532
 
1533
  $row_logger = $row->logger;
1534
  $logger = null;
1535
+ $row->context = isset( $row->context ) && is_array( $row->context ) ? $row->context : array();
1536
+
1537
  // Fallback to SimpleLogger if no logger exists for row
1538
+ if ( ! isset( $this->instantiatedLoggers[$row_logger] ) ) {
1539
  $row_logger = "SimpleLogger";
1540
  }
1541
 
1542
+ $logger = $this->instantiatedLoggers[$row_logger]["instance"];
1543
 
1544
+ return $logger->getLogRowHeaderOutput( $row );
1545
 
1546
  }
1547
 
1548
  /**
1549
+ *
1550
+ *
1551
  * @param array $row
1552
  * @return string
1553
  */
1555
 
1556
  $row_logger = $row->logger;
1557
  $logger = null;
1558
+ $row->context = isset( $row->context ) && is_array( $row->context ) ? $row->context : array();
1559
+
1560
  // Fallback to SimpleLogger if no logger exists for row
1561
+ if ( ! isset( $this->instantiatedLoggers[$row_logger] ) ) {
1562
  $row_logger = "SimpleLogger";
1563
  }
1564
 
1565
+ $logger = $this->instantiatedLoggers[$row_logger]["instance"];
1566
 
1567
+ return $logger->getLogRowSenderImageOutput( $row );
1568
 
1569
  }
1570
 
1572
 
1573
  $row_logger = $row->logger;
1574
  $logger = null;
1575
+ $row->context = isset( $row->context ) && is_array( $row->context ) ? $row->context : array();
1576
+
1577
  // Fallback to SimpleLogger if no logger exists for row
1578
+ if ( ! isset( $this->instantiatedLoggers[$row_logger] ) ) {
1579
  $row_logger = "SimpleLogger";
1580
  }
1581
 
1582
+ $logger = $this->instantiatedLoggers[$row_logger]["instance"];
1583
 
1584
+ return $logger->getLogRowDetailsOutput( $row );
1585
 
1586
  }
1587
 
1588
  /**
1589
  * Works like json_encode, but adds JSON_PRETTY_PRINT if the current php version supports it
1590
  * i.e. PHP is 5.4.0 or greated
1591
+ *
1592
  * @param $value array|object|string|whatever that is json_encode'able
1593
  */
1594
  public static function json_encode($value) {
1595
+
1596
+ return version_compare(PHP_VERSION, '5.4.0') >=0 ? json_encode($value, JSON_PRETTY_PRINT) : json_encode($value);
1597
 
1598
  }
1599
 
1602
  * @param string $haystack
1603
  * @param string $needle
1604
  */
1605
+ public static function ends_with( $haystack, $needle ) {
1606
+ return $needle === substr( $haystack, -strlen( $needle ) );
1607
  }
1608
 
1609
  /**
1615
  public function getLogRowHTMLOutput($oneLogRow, $args) {
1616
 
1617
  $defaults = array(
1618
+ "type" => "overview" // or "single" to include more stuff
1619
  );
1620
 
1621
+ $args = wp_parse_args( $args, $defaults );
1622
 
1623
+ $header_html = $this->getLogRowHeaderOutput($oneLogRow);
1624
  $plain_text_html = $this->getLogRowPlainTextOutput($oneLogRow);
1625
  $sender_image_html = $this->getLogRowSenderImageOutput($oneLogRow);
1626
+
1627
  // Details = for example thumbnail of media
1628
+ $details_html = trim( $this->getLogRowDetailsOutput($oneLogRow) );
1629
  if ($details_html) {
1630
 
1631
  $details_html = sprintf(
1638
  // subsequentOccasions = including the current one
1639
  $occasions_count = $oneLogRow->subsequentOccasions - 1;
1640
  $occasions_html = "";
 
1641
  if ($occasions_count > 0) {
1642
 
1643
  $occasions_html = '<div class="SimpleHistoryLogitem__occasions">';
1644
+
1645
  $occasions_html .= '<a href="#" class="SimpleHistoryLogitem__occasionsLink">';
1646
  $occasions_html .= sprintf(
1647
+ __('+%1$s more', "simple-history"),
1648
  $occasions_count
1649
  );
1650
  $occasions_html .= '</a>';
1662
  $occasions_count
1663
  );
1664
  $occasions_html .= '</span>';
1665
+
1666
  $occasions_html .= '</div>';
1667
 
1668
  }
1669
 
1670
  $data_attrs = "";
1671
+ $data_attrs .= sprintf(' data-row-id="%1$d" ', $oneLogRow->id );
1672
+ $data_attrs .= sprintf(' data-occasions-count="%1$d" ', $occasions_count );
1673
+ $data_attrs .= sprintf(' data-occasions-id="%1$s" ', $oneLogRow->occasionsID );
1674
+ $data_attrs .= sprintf(' data-ip-address="%1$s" ', esc_attr( $oneLogRow->context["_server_remote_addr"] ) );
1675
 
1676
  // If type is single then include more details
1677
  $more_details_html = "";
1678
+ if ( $args["type"] == "single" ) {
1679
 
1680
  $more_details_html .= sprintf('<h2 class="SimpleHistoryLogitem__moreDetailsHeadline">%1$s</h2>', __("Context data", "simple-history"));
1681
+ $more_details_html .= "<p>" . __("This is potentially useful meta data that a logger have saved.", "simple-history") . "</p>";
1682
  $more_details_html .= "<table class='SimpleHistoryLogitem__moreDetailsContext'>";
1683
  $more_details_html .= sprintf(
1684
  '<tr>
1692
  foreach ($oneLogRow as $rowKey => $rowVal) {
1693
 
1694
  // skip arrays and objects and such
1695
+ if ( is_array( $rowVal ) || is_object( $rowVal ) ) {
1696
  continue;
1697
  }
1698
 
1701
  <td>%1$s</td>
1702
  <td>%2$s</td>
1703
  </tr>',
1704
+ esc_html( $rowKey ),
1705
+ esc_html( $rowVal )
1706
  );
1707
 
1708
  }
1714
  <td>%1$s</td>
1715
  <td>%2$s</td>
1716
  </tr>',
1717
+ esc_html( $contextKey ),
1718
+ esc_html( $contextVal )
1719
  );
1720
 
1721
  }
1729
 
1730
  }
1731
 
1732
+ $class_sender = "";
 
 
 
 
 
 
1733
  if (isset($oneLogRow->initiator) && !empty($oneLogRow->initiator)) {
1734
+ $class_sender .= "SimpleHistoryLogitem--initiator-" . esc_attr($oneLogRow->initiator);
1735
  }
1736
 
1737
+ /*$level_html = sprintf(
1738
+ '<span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%1$s</span>',
1739
+ $row->level
1740
+ );*/
1741
+
1742
  // Always append the log level tag
1743
  $log_level_tag_html = sprintf(
1744
+ ' <span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%1$s</span>',
1745
+ $oneLogRow->level
 
1746
  );
1747
 
1748
  $plain_text_html .= $log_level_tag_html;
1749
 
 
 
 
 
 
 
 
 
 
1750
  // Generate the HTML output for a row
1751
  $output = sprintf(
1752
  '
1753
+ <li %8$s class="SimpleHistoryLogitem SimpleHistoryLogitem--loglevel-%5$s SimpleHistoryLogitem--logger-%7$s %10$s">
1754
  <div class="SimpleHistoryLogitem__firstcol">
1755
  <div class="SimpleHistoryLogitem__senderImage">%3$s</div>
1756
  </div>
1772
  $oneLogRow->logger, // 7
1773
  $data_attrs, // 8 data attributes
1774
  $more_details_html, // 9
1775
+ $class_sender // 10
1776
  );
1777
 
1778
  // Get the main message row.
1779
+ // Should be as plain as possible, like plain text
1780
  // but with links to for example users and posts
1781
  #SimpleLoggerFormatter::getRowTextOutput($oneLogRow);
1782
 
1788
 
1789
  }
1790
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1791
  public function getInstantiatedLoggers() {
1792
 
1793
  return $this->instantiatedLoggers;
1795
  }
1796
 
1797
  public function getInstantiatedLoggerBySlug($slug = "") {
1798
+
1799
+ if (empty( $slug )) {
1800
  return false;
1801
  }
1802
+
1803
  foreach ($this->getInstantiatedLoggers() as $one_logger) {
1804
+
1805
+ if ( $slug == $one_logger["instance"]->slug ) {
1806
  return $one_logger["instance"];
1807
  }
1808
 
1824
 
1825
  $arr_loggers_user_can_view = array();
1826
 
1827
+ if ( ! is_numeric($user_id) ) {
1828
  $user_id = get_current_user_id();
1829
  }
1830
 
1834
  $logger_capability = $one_logger["instance"]->getCapability();
1835
 
1836
  //$arr_loggers_user_can_view = apply_filters("simple_history/loggers_user_can_read", $user_id, $arr_loggers_user_can_view);
1837
+ $user_can_read_logger = user_can( $user_id, $logger_capability );
1838
  $user_can_read_logger = apply_filters("simple_history/loggers_user_can_read/can_read_single_logger", $user_can_read_logger, $one_logger["instance"], $user_id);
1839
 
1840
+ if ( $user_can_read_logger ) {
1841
  $arr_loggers_user_can_view[] = $one_logger;
1842
  }
1843
 
1844
  }
1845
 
1846
  /**
1847
+ * Fires before Simple History does it's init stuff
1848
+ *
1849
+ * @since 2.0
1850
+ *
1851
+ * @param array $arr_loggers_user_can_view Array with loggers that user $user_id can read
1852
+ * @param int user_id ID of user to check read capability for
1853
+ */
1854
  $arr_loggers_user_can_view = apply_filters("simple_history/loggers_user_can_read", $arr_loggers_user_can_view, $user_id);
1855
 
1856
  // just return array with slugs in parenthesis suitable for sql-where
1857
+ if ( "sql" == $format ) {
1858
 
1859
  $str_return = "(";
1860
+
1861
  foreach ($arr_loggers_user_can_view as $one_logger) {
1862
+
1863
  $str_return .= sprintf(
1864
  '"%1$s", ',
1865
  $one_logger["instance"]->slug
1866
  );
1867
 
1868
  }
1869
+
1870
  $str_return = rtrim($str_return, " ,");
1871
  $str_return .= ")";
1872
 
1874
 
1875
  }
1876
 
1877
+
1878
  return $arr_loggers_user_can_view;
1879
 
1880
  }
1881
 
1882
  /**
1883
  * Retrieve the avatar for a user who provided a user ID or email address.
1884
+ * A modified version of the function that comes with WordPress, but we
1885
  * want to allow/show gravatars even if they are disabled in discussion settings
1886
  *
1887
  * @since 2.0
1891
  * @param string $default URL to a default image to use if no avatar is available
1892
  * @param string $alt Alternative text to use in image tag. Defaults to blank
1893
  * @return string <img> tag for the user's avatar
1894
+ */
1895
+ function get_avatar( $email, $size = '96', $default = '', $alt = false ) {
1896
+
1897
+ if ( false === $alt)
1898
+ $safe_alt = '';
1899
+ else
1900
+ $safe_alt = esc_attr( $alt );
1901
+
1902
+ if ( !is_numeric($size) )
1903
+ $size = '96';
1904
+
1905
+ if ( empty($default) ) {
1906
+ $avatar_default = get_option('avatar_default');
1907
+ if ( empty($avatar_default) )
1908
+ $default = 'mystery';
1909
+ else
1910
+ $default = $avatar_default;
1911
+ }
1912
 
1913
+ if ( !empty($email) )
1914
+ $email_hash = md5( strtolower( trim( $email ) ) );
1915
 
1916
+ if ( is_ssl() ) {
1917
+ $host = 'https://secure.gravatar.com';
1918
  } else {
1919
+ if ( !empty($email) )
1920
+ $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
1921
+ else
1922
+ $host = 'http://0.gravatar.com';
1923
+ }
1924
 
1925
+ if ( 'mystery' == $default )
1926
+ $default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
1927
+ elseif ( 'blank' == $default )
1928
+ $default = $email ? 'blank' : includes_url( 'images/blank.gif' );
1929
+ elseif ( !empty($email) && 'gravatar_default' == $default )
1930
+ $default = '';
1931
+ elseif ( 'gravatar_default' == $default )
1932
+ $default = "$host/avatar/?s={$size}";
1933
+ elseif ( empty($email) )
1934
+ $default = "$host/avatar/?d=$default&amp;s={$size}";
1935
+ elseif ( strpos($default, 'http://') === 0 )
1936
+ $default = add_query_arg( 's', $size, $default );
1937
+
1938
+ if ( !empty($email) ) {
1939
+ $out = "$host/avatar/";
1940
+ $out .= $email_hash;
1941
+ $out .= '?s='.$size;
1942
+ $out .= '&amp;d=' . urlencode( $default );
1943
+
1944
+ $rating = get_option('avatar_rating');
1945
+ if ( !empty( $rating ) )
1946
+ $out .= "&amp;r={$rating}";
1947
+
1948
+ $out = str_replace( '&#038;', '&amp;', esc_url( $out ) );
1949
+ $avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
1950
+ } else {
1951
+ $out = esc_url( $default );
1952
+ $avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
1953
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1954
 
1955
+ return $avatar;
1956
  }
1957
 
1958
  /**
1960
  * Uses filter "simple_history/history_page/before_gui" to output its contents
1961
  */
1962
  public function output_quick_stats() {
1963
+
1964
  global $wpdb;
1965
 
1966
  // Get number of events today
1967
  $logQuery = new SimpleHistoryLogQuery();
1968
  $logResults = $logQuery->query(array(
1969
  "posts_per_page" => 1,
1970
+ "date_from" => strtotime("today")
1971
  ));
1972
 
 
 
 
1973
  $sql_loggers_in = $this->getLoggersThatUserCanRead(get_current_user_id(), "sql");
 
 
1974
  $sql_users_today = sprintf('
1975
+ SELECT
1976
  DISTINCT(c.value) AS user_id
1977
  #h.id, h.logger, h.level, h.initiator, h.date
1978
  FROM %3$s AS h
1979
+ INNER JOIN %4$s AS c
1980
  ON c.history_id = h.id AND c.key = "_user_id"
1981
+ WHERE
1982
  initiator = "wp_user"
1983
  AND logger IN %1$s
1984
  AND date > "%2$s"
1985
+ ',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1986
  $sql_loggers_in,
1987
  date("Y-m-d H:i", strtotime("today")),
1988
  $wpdb->prefix . SimpleHistory::DBTABLE,
1989
  $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS
1990
  );
1991
 
1992
+ $results_users_today = $wpdb->get_results($sql_users_today);
1993
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1994
  ?>
1995
  <div class="SimpleHistoryQuickStats">
1996
  <p>
1997
  <?php
1998
+
1999
  $msg_tmpl = "";
2000
 
2001
+ if ( $logResults["total_row_count"] == 0 ) {
2002
+
 
2003
  $msg_tmpl = __("No events today so far.", "simple-history");
2004
 
2005
+ } elseif ( $logResults["total_row_count"] == 1 ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2006
 
2007
+ $msg_tmpl = __('%1$d event today from one user.', "simple-history");
 
 
 
 
2008
 
2009
+ } elseif ( $logResults["total_row_count"] > 0 && sizeof( $results_users_today ) > 1 ) {
 
 
 
 
2010
 
2011
+ $msg_tmpl = __('%1$d events today from %2$d users.', "simple-history");
 
 
 
 
2012
 
2013
+ } elseif ( $logResults["total_row_count"] > 0 && sizeof( $results_users_today ) == 1 ) {
2014
+
2015
+ $msg_tmpl = __('%1$d events today from one user.', "simple-history");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2016
 
2017
  }
2018
 
2021
 
2022
  printf(
2023
  $msg_tmpl,
2024
+ $logResults["total_row_count"],
2025
+ sizeof( $results_users_today )
 
2026
  );
2027
 
2028
  // Space between texts
2029
  /*
2030
+ echo " ";
2031
 
2032
+ // http://playground-root.ep/wp-admin/options-general.php?page=simple_history_settings_menu_slug&selected-tab=stats
2033
+ printf(
2034
+ '<a href="%1$s">View more stats</a>.',
2035
+ add_query_arg("selected-tab", "stats", menu_page_url(SimpleHistory::SETTINGS_MENU_SLUG, 0))
2036
+ );
2037
+ */
2038
 
2039
  }
2040
+
2041
  ?>
2042
  </p>
2043
+ </div>
2044
  <?php
2045
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2046
  }
2047
 
2048
  } // class
2049
+
SimpleHistoryLogQuery.php CHANGED
@@ -70,14 +70,6 @@ class SimpleHistoryLogQuery {
70
  $args = wp_parse_args( $args, $defaults );
71
  // sf_d($args, "Run log query with args");
72
 
73
- $cache_key = "SimpleHistoryLogQuery_" . md5(serialize( $args )) . "_get_" . md5(serialize( $_GET )) . "_userid_" . get_current_user_id();
74
- $cache_group = "simple-history-" . SimpleHistory::get_cache_incrementor();
75
- $arr_return = wp_cache_get($cache_key, $cache_group);
76
-
77
- if ( false !== $arr_return ) {
78
- return $arr_return;
79
- }
80
-
81
  /*
82
  Subequent occasions query thanks to this Stack Overflow thread:
83
  http://stackoverflow.com/questions/13566303/how-to-group-subsequent-rows-based-on-a-criteria-and-then-count-them-mysql/13567320#13567320
@@ -742,8 +734,6 @@ class SimpleHistoryLogQuery {
742
 
743
  #sf_d($arr_return, '$arr_return');exit;
744
 
745
- wp_cache_set($cache_key, $arr_return, $cache_group);
746
-
747
  return $arr_return;
748
 
749
  } // query
70
  $args = wp_parse_args( $args, $defaults );
71
  // sf_d($args, "Run log query with args");
72
 
 
 
 
 
 
 
 
 
73
  /*
74
  Subequent occasions query thanks to this Stack Overflow thread:
75
  http://stackoverflow.com/questions/13566303/how-to-group-subsequent-rows-based-on-a-criteria-and-then-count-them-mysql/13567320#13567320
734
 
735
  #sf_d($arr_return, '$arr_return');exit;
736
 
 
 
737
  return $arr_return;
738
 
739
  } // query
css/styles.css CHANGED
@@ -11,7 +11,7 @@ The spinner that wp uses:;
11
  .SimpleHistory__cf:after { clear:both; }
12
  .SimpleHistory__cf { zoom:1; } /* For IE 6/7 (trigger hasLayout) */
13
 
14
- .SimpleHistoryGui,
15
  .SimpleHistoryGuiExample {
16
  position: relative;
17
  /* must have a height so "loading..." will be visible in dashboard */
@@ -37,7 +37,7 @@ The spinner that wp uses:;
37
  transition: opacity .1s ease-out;
38
  }
39
 
40
- /* on its own page */
41
  /*.dashboard_page_simple_history_page .SimpleHistoryLogitemsWrap {*/
42
  .dashboard_page_simple_history_page .SimpleHistoryGuiWrap {
43
  /*float: left;*/
@@ -53,21 +53,9 @@ The spinner that wp uses:;
53
 
54
  .dashboard_page_simple_history_page .SimpleHistoryGui {
55
  width: 100%;
56
- float: left;
57
- }
58
-
59
- @media only screen and (max-width: 850px) {
60
- .dashboard_page_simple_history_page .SimpleHistoryGuiWrap {
61
- float: none;
62
- margin-right: auto;
63
- }
64
- .dashboard_page_simple_history_page .SimpleHistoryGui {
65
- float: none;
66
- }
67
  }
68
 
69
-
70
-
71
  /*
72
  .SimpleHistoryGui:after {
73
  content: "\f206";
@@ -84,6 +72,20 @@ The spinner that wp uses:;
84
  }
85
  */
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  .SimpleHistoryLogitems {
88
  margin: 0;
89
  background: #fff;
@@ -101,7 +103,7 @@ The spinner that wp uses:;
101
 
102
  /**
103
  * Log items
104
- * There is always a 4px left border, just with differents colors
105
  */
106
  .SimpleHistoryLogitem {
107
  position: relative;
@@ -109,7 +111,7 @@ The spinner that wp uses:;
109
  margin: 0;
110
  padding: 20px 20px 20px 16px;
111
  /*border-bottom: 1px solid rgb(229, 229, 229);*/
112
-
113
  /* uncomment to show border with log color */
114
  /*border-left: 4px solid transparent;*/
115
 
@@ -234,7 +236,6 @@ Style different log levels.
234
  }
235
 
236
  .SimpleHistoryLogitem__senderImage {
237
- position: relative;
238
  border-radius: 50%;
239
  overflow: hidden;
240
  /*opacity: .8;*/
@@ -306,7 +307,7 @@ Style different log levels.
306
 
307
  /* table with keys and values */
308
  /*.SimpleHistoryLogitem__keyValueTable {
309
-
310
  }*/
311
 
312
  .SimpleHistoryLogitem__keyValueTable th,
@@ -356,29 +357,25 @@ Style different log levels.
356
  Images/thumbs can be styles nicely
357
  */
358
  .SimpleHistoryLogitemThumbnail {
359
- display: inline-block;
360
- margin: .5em 0 0 0;
361
- padding: 5px;
362
- border: 1px solid #ddd;
363
- border-radius: 2px;
364
 
365
  }
366
 
367
- .SimpleHistoryLogitemThumbnailLink {
368
- display: inline-block;
369
- }
370
-
371
  .SimpleHistoryLogitemThumbnail img {
372
- /*
373
- photoshop-like background that represents transparency
374
- so user can see that an image have transparency
375
- */
376
- display: block;
377
- background-image: url('data:image/gif;base64,R0lGODlhEAAQAIAAAOXl5f///yH5BAAAAAAALAAAAAAQABAAAAIfhG+hq4jM3IFLJhoswNly/XkcBpIiVaInlLJr9FZWAQA7');
378
- max-width: 100%;
379
- max-height: 300px;
380
- max-height: 200px;
381
- height: auto;
382
  }
383
 
384
 
@@ -472,7 +469,7 @@ when occasions are added
472
 
473
 
474
  /*
475
- customizations for the dashboard
476
  i.e. the log is inside a .postbox element
477
  */
478
 
@@ -527,19 +524,12 @@ i.e. the log is inside a .postbox element
527
  margin-bottom: 0;
528
  }
529
 
530
- .postbox .SimpleHistoryLogitem__text,
531
- .postbox .SimpleHistoryLogitem__details,
532
  .postbox .SimpleHistoryLogitem__details p {
533
  line-height: 1.1;
534
  }
535
 
536
- .postbox .SimpleHistoryPaginationLink,
537
- .postbox .SimpleHistoryPaginationCurrentPage {
538
- font-size: 13px;
539
- line-height: 19px;
540
- height: 24px;
541
- }
542
-
543
  /*
544
  .postbox .SimpleHistoryLogitem__details {
545
  display: none;
@@ -670,7 +660,6 @@ Modal window with detailss
670
  .folded .SimpleHistory-modal__content {
671
  left: 156px /* admin meny width is 160 px*/
672
  }
673
-
674
  @media only screen and (max-width: 900px) {
675
  .SimpleHistory-modal__content {
676
  left: 156px /* admin meny width is 160 px*/
@@ -772,7 +761,6 @@ Modal window with detailss
772
  /** wordpress as initiator = add wordpress icon */
773
  /** anonymous user as initiator = plain user image */
774
  .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
775
- .SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:before,
776
  .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
777
  display: inline-block;
778
  -webkit-font-smoothing: antialiased;
@@ -781,25 +769,10 @@ Modal window with detailss
781
  color: #999;
782
  }
783
 
784
- .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
785
- .SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:before {
786
  content: "\f120";
787
  }
788
 
789
- .SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:after {
790
- content: "CLI";
791
- position: absolute;
792
- background: rgba(255, 255, 255, 0.7);
793
- top: 0;
794
- left: 0;
795
- right: 0;
796
- bottom: 0;
797
- line-height: 36px;
798
- text-align: center;
799
- font-family: monospace;
800
- font-sIze: 12px;
801
- }
802
-
803
  .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
804
  content: "\f110";
805
  }
@@ -848,8 +821,3 @@ Modal window with detailss
848
  display: block;
849
  }
850
 
851
- .postbox .SimpleHistory--hasNoHits .SimpleHistoryLogitems__noHits {
852
- margin-left: 13px;
853
- margin-right: 13px;
854
- }
855
-
11
  .SimpleHistory__cf:after { clear:both; }
12
  .SimpleHistory__cf { zoom:1; } /* For IE 6/7 (trigger hasLayout) */
13
 
14
+ .SimpleHistoryGui,
15
  .SimpleHistoryGuiExample {
16
  position: relative;
17
  /* must have a height so "loading..." will be visible in dashboard */
37
  transition: opacity .1s ease-out;
38
  }
39
 
40
+ /* on it's own page */
41
  /*.dashboard_page_simple_history_page .SimpleHistoryLogitemsWrap {*/
42
  .dashboard_page_simple_history_page .SimpleHistoryGuiWrap {
43
  /*float: left;*/
53
 
54
  .dashboard_page_simple_history_page .SimpleHistoryGui {
55
  width: 100%;
56
+ float: left;background: tran
 
 
 
 
 
 
 
 
 
 
57
  }
58
 
 
 
59
  /*
60
  .SimpleHistoryGui:after {
61
  content: "\f206";
72
  }
73
  */
74
 
75
+ .SimpleHistory__filters {
76
+ float: right;
77
+ width: 300px;
78
+ margin-right: -340px;
79
+ /* hide by default while log is loading */
80
+ opacity: 0;
81
+ transition: all .25s ease-out;
82
+ }
83
+
84
+ .SimpleHistory--isLoaded .SimpleHistory__filters {
85
+ opacity: 1;
86
+ }
87
+
88
+
89
  .SimpleHistoryLogitems {
90
  margin: 0;
91
  background: #fff;
103
 
104
  /**
105
  * Log items
106
+ * There is always a 4px left border, just with differents colors
107
  */
108
  .SimpleHistoryLogitem {
109
  position: relative;
111
  margin: 0;
112
  padding: 20px 20px 20px 16px;
113
  /*border-bottom: 1px solid rgb(229, 229, 229);*/
114
+
115
  /* uncomment to show border with log color */
116
  /*border-left: 4px solid transparent;*/
117
 
236
  }
237
 
238
  .SimpleHistoryLogitem__senderImage {
 
239
  border-radius: 50%;
240
  overflow: hidden;
241
  /*opacity: .8;*/
307
 
308
  /* table with keys and values */
309
  /*.SimpleHistoryLogitem__keyValueTable {
310
+
311
  }*/
312
 
313
  .SimpleHistoryLogitem__keyValueTable th,
357
  Images/thumbs can be styles nicely
358
  */
359
  .SimpleHistoryLogitemThumbnail {
360
+ display: inline-block;
361
+ margin: .5em 0 0 0;
362
+ padding: 5px;
363
+ border: 1px solid #ddd;
364
+ border-radius: 2px;
365
 
366
  }
367
 
 
 
 
 
368
  .SimpleHistoryLogitemThumbnail img {
369
+ /*
370
+ photoshop-like background that represents tranpsarency
371
+ so user can see that an image have transparency
372
+ */
373
+ display: block;
374
+ background-image: url('data:image/gif;base64,R0lGODlhEAAQAIAAAOXl5f///yH5BAAAAAAALAAAAAAQABAAAAIfhG+hq4jM3IFLJhoswNly/XkcBpIiVaInlLJr9FZWAQA7');
375
+ max-width: 100%;
376
+ max-height: 300px;
377
+ max-height: 200px;
378
+ height: auto;
379
  }
380
 
381
 
469
 
470
 
471
  /*
472
+ customizations for the dashboard
473
  i.e. the log is inside a .postbox element
474
  */
475
 
524
  margin-bottom: 0;
525
  }
526
 
527
+ .postbox .SimpleHistoryLogitem__text,
528
+ .postbox .SimpleHistoryLogitem__details,
529
  .postbox .SimpleHistoryLogitem__details p {
530
  line-height: 1.1;
531
  }
532
 
 
 
 
 
 
 
 
533
  /*
534
  .postbox .SimpleHistoryLogitem__details {
535
  display: none;
660
  .folded .SimpleHistory-modal__content {
661
  left: 156px /* admin meny width is 160 px*/
662
  }
 
663
  @media only screen and (max-width: 900px) {
664
  .SimpleHistory-modal__content {
665
  left: 156px /* admin meny width is 160 px*/
761
  /** wordpress as initiator = add wordpress icon */
762
  /** anonymous user as initiator = plain user image */
763
  .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
 
764
  .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
765
  display: inline-block;
766
  -webkit-font-smoothing: antialiased;
769
  color: #999;
770
  }
771
 
772
+ .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before {
 
773
  content: "\f120";
774
  }
775
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
776
  .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
777
  content: "\f110";
778
  }
821
  display: block;
822
  }
823
 
 
 
 
 
 
dropins/SimpleHistoryFilterDropin.css CHANGED
@@ -1,32 +1,15 @@
1
 
 
2
 
3
- .SimpleHistory__filters {
4
- /*float: right;
5
- width: 300px;
6
- margin-right: -340px;
7
- */
8
- /* hide by default while log is loading */
9
- opacity: .5;
10
- transition: all .25s ease-out;
11
- }
12
-
13
- .SimpleHistory--isLoaded .SimpleHistory__filters {
14
- opacity: 1;
15
- }
16
 
17
  .SimpleHistory__filters__form select {
18
- /* width: 100%; */
19
- width: 310px;
20
  }
21
 
22
- .SimpleHistory__filters__form input[type=text],
23
  .SimpleHistory__filters__form input[type=search] {
24
- /* width: 100%; */
25
- /* width: 310px; */
26
- }
27
-
28
- .SimpleHistory__filters__filter--date {
29
- width: 310px;
30
  }
31
 
32
  /**
@@ -52,47 +35,3 @@
52
  margin-right: 10px;
53
  }
54
 
55
- .SimpleHistoryFilterDropin-showMoreFilters {
56
- border: 0;
57
- background: none;
58
- color: rgb(0, 116, 162);
59
- cursor: pointer;
60
- }
61
-
62
- .SimpleHistoryFilterDropin-showMoreFilters:hover {
63
- color: rgb(46, 162, 204);
64
- }
65
-
66
- /* more filters are hidden by default */
67
- .SimpleHistory__filters__moreFilters {
68
- display: none;
69
- margin-bottom: 20px;
70
- }
71
-
72
- /* when showing more filters */
73
- .SimpleHistory__filters.is-showingMoreFilters {
74
-
75
- }
76
-
77
- .SimpleHistory__filters.is-showingMoreFilters .SimpleHistoryFilterDropin-searchInput {
78
- width: 310px;
79
- }
80
-
81
- .SimpleHistory__filters.is-showingMoreFilters .SimpleHistoryFilterDropin-showMoreFilters--first {
82
- display: none;
83
- }
84
-
85
- .SimpleHistory__filters.is-showingMoreFilters .SimpleHistory__filters__moreFilters {
86
- display: block;
87
- }
88
-
89
- .SimpleHistory__filters.is-showingMoreFilters .SimpleHistoryFilterDropin-doFilterButton--first {
90
- display: none;
91
- }
92
-
93
-
94
- /* dashboard */
95
- .postbox .SimpleHistory__filters {
96
- margin-left: 13px;
97
- margin-right: 13px;
98
- }
1
 
2
+ /*.SimpleHistory__filters {
3
 
4
+ }*/
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  .SimpleHistory__filters__form select {
7
+ width: 100%;
 
8
  }
9
 
10
+ .SimpleHistory__filters__form input[type=text],
11
  .SimpleHistory__filters__form input[type=search] {
12
+ width: 100%;
 
 
 
 
 
13
  }
14
 
15
  /**
35
  margin-right: 10px;
36
  }
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dropins/SimpleHistoryFilterDropin.js CHANGED
@@ -1,5 +1,5 @@
1
  /**
2
- *
3
  */
4
 
5
  var SimpleHistoryFilterDropin = (function($) {
@@ -20,9 +20,7 @@ var SimpleHistoryFilterDropin = (function($) {
20
  $elms.filter_user = $elms.filter_container.find(".SimpleHistory__filters__filter--user");
21
  $elms.filter_button = $elms.filter_container.find(".js-SimpleHistoryFilterDropin-doFilter");
22
  $elms.filter_form = $elms.filter_container.find(".js-SimpleHistory__filters__form");
23
- $elms.show_more_filters_button = $elms.filter_container.find(".js-SimpleHistoryFilterDropin-showMoreFilters");
24
- $elms.more_filters_container = $elms.filter_container.find(".js-SimpleHistory__filters__moreFilters");
25
-
26
  enhanceSelects();
27
  addListeners();
28
 
@@ -31,21 +29,13 @@ var SimpleHistoryFilterDropin = (function($) {
31
  function addListeners() {
32
 
33
  $elms.filter_form.on("submit", onSubmitForm);
34
- $elms.show_more_filters_button.on("click", onClickMoreFilters);
35
-
36
- }
37
-
38
- function onClickMoreFilters() {
39
-
40
- //$elms.more_filters_container.toggleClass("is-visible");
41
- $elms.filter_container.toggleClass("is-showingMoreFilters");
42
 
43
  }
44
 
45
  function onSubmitForm(e) {
46
-
47
  e.preventDefault();
48
-
49
  // form serialize
50
  // search=apa&loglevels=critical&loglevels=alert&loggers=SimpleMediaLogger&loggers=SimpleMenuLogger&user=1&months=2014-09 SimpleHistoryFilterDropin.js?ver=2.0:40
51
  var $search = $elms.filter_form.find("[name='search']");
@@ -57,12 +47,12 @@ var SimpleHistoryFilterDropin = (function($) {
57
  // If any of our search boxes are filled in we consider ourself to be in search mode
58
  isFilteringActive = false;
59
  activeFilters = {};
60
-
61
  if ( $.trim( $search.val() )) {
62
  isFilteringActive = true;
63
  activeFilters.search = $search.val();
64
  }
65
-
66
  if ( $loglevels.val() && $loglevels.val().length ) {
67
  isFilteringActive = true;
68
  activeFilters.loglevels = $loglevels.val();
@@ -109,7 +99,7 @@ var SimpleHistoryFilterDropin = (function($) {
109
  function modifyNewRowsNotifierApiArgs(e, apiArgs) {
110
 
111
  if (isFilteringActive) {
112
-
113
  apiArgs = _.extend(apiArgs, activeFilters);
114
 
115
  }
@@ -118,12 +108,12 @@ var SimpleHistoryFilterDropin = (function($) {
118
 
119
  function modifyFetchData(collection, url_data) {
120
 
121
- if (isFilteringActive) {
122
 
123
  url_data = _.extend(url_data, activeFilters);
124
 
125
  }
126
-
127
  }
128
 
129
  function enhanceSelects() {
@@ -157,7 +147,7 @@ var SimpleHistoryFilterDropin = (function($) {
157
  });
158
 
159
  $(".SimpleHistory__filters__filter--date").select2({
160
- //width: "element"
161
  });
162
 
163
  $(".SimpleHistory__filters__filter--loglevel").select2({
@@ -169,7 +159,7 @@ var SimpleHistoryFilterDropin = (function($) {
169
  }
170
 
171
  function formatUsers(userdata) {
172
-
173
  var html = "";
174
  html += "<div class='SimpleHistory__filters__userfilter__gravatar'>";
175
  html += userdata.gravatar;
@@ -185,11 +175,11 @@ var SimpleHistoryFilterDropin = (function($) {
185
  }
186
 
187
  function formatLoglevel(loglevel) {
188
-
189
  var originalOption = loglevel.element;
190
  var $originalOption = $(originalOption);
191
  var color = $originalOption.data("color");
192
-
193
  var html = "<span style=\"border-radius: 50%; border: 1px solid rgba(0,0,0,.1); margin-right: 5px; width: .75em; height: .75em; line-height: 1; display: inline-block; background-color: " + $originalOption.data('color') + "; '\"></span>" + loglevel.text;
194
  return html;
195
 
@@ -207,3 +197,4 @@ SimpleHistoryFilterDropin.init();
207
  jQuery(document).ready(function() {
208
  SimpleHistoryFilterDropin.onDomReadyInit();
209
  });
 
1
  /**
2
+ *
3
  */
4
 
5
  var SimpleHistoryFilterDropin = (function($) {
20
  $elms.filter_user = $elms.filter_container.find(".SimpleHistory__filters__filter--user");
21
  $elms.filter_button = $elms.filter_container.find(".js-SimpleHistoryFilterDropin-doFilter");
22
  $elms.filter_form = $elms.filter_container.find(".js-SimpleHistory__filters__form");
23
+
 
 
24
  enhanceSelects();
25
  addListeners();
26
 
29
  function addListeners() {
30
 
31
  $elms.filter_form.on("submit", onSubmitForm);
 
 
 
 
 
 
 
 
32
 
33
  }
34
 
35
  function onSubmitForm(e) {
36
+
37
  e.preventDefault();
38
+
39
  // form serialize
40
  // search=apa&loglevels=critical&loglevels=alert&loggers=SimpleMediaLogger&loggers=SimpleMenuLogger&user=1&months=2014-09 SimpleHistoryFilterDropin.js?ver=2.0:40
41
  var $search = $elms.filter_form.find("[name='search']");
47
  // If any of our search boxes are filled in we consider ourself to be in search mode
48
  isFilteringActive = false;
49
  activeFilters = {};
50
+
51
  if ( $.trim( $search.val() )) {
52
  isFilteringActive = true;
53
  activeFilters.search = $search.val();
54
  }
55
+
56
  if ( $loglevels.val() && $loglevels.val().length ) {
57
  isFilteringActive = true;
58
  activeFilters.loglevels = $loglevels.val();
99
  function modifyNewRowsNotifierApiArgs(e, apiArgs) {
100
 
101
  if (isFilteringActive) {
102
+
103
  apiArgs = _.extend(apiArgs, activeFilters);
104
 
105
  }
108
 
109
  function modifyFetchData(collection, url_data) {
110
 
111
+ if (isFilteringActive) {
112
 
113
  url_data = _.extend(url_data, activeFilters);
114
 
115
  }
116
+
117
  }
118
 
119
  function enhanceSelects() {
147
  });
148
 
149
  $(".SimpleHistory__filters__filter--date").select2({
150
+ width: "element"
151
  });
152
 
153
  $(".SimpleHistory__filters__filter--loglevel").select2({
159
  }
160
 
161
  function formatUsers(userdata) {
162
+
163
  var html = "";
164
  html += "<div class='SimpleHistory__filters__userfilter__gravatar'>";
165
  html += userdata.gravatar;
175
  }
176
 
177
  function formatLoglevel(loglevel) {
178
+
179
  var originalOption = loglevel.element;
180
  var $originalOption = $(originalOption);
181
  var color = $originalOption.data("color");
182
+
183
  var html = "<span style=\"border-radius: 50%; border: 1px solid rgba(0,0,0,.1); margin-right: 5px; width: .75em; height: .75em; line-height: 1; display: inline-block; background-color: " + $originalOption.data('color') + "; '\"></span>" + loglevel.text;
184
  return html;
185
 
197
  jQuery(document).ready(function() {
198
  SimpleHistoryFilterDropin.onDomReadyInit();
199
  });
200
+
dropins/SimpleHistoryFilterDropin.php CHANGED
@@ -16,8 +16,7 @@ class SimpleHistoryFilterDropin {
16
  $this->sh = $sh;
17
 
18
  add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
19
- add_action("simple_history/history_page/before_gui", array( $this, "gui_page_filters") );
20
- add_action("simple_history/dashboard/before_gui", array( $this, "gui_page_filters") );
21
  add_action("wp_ajax_simple_history_filters_search_user", array( $this, "ajax_simple_history_filters_search_user") );
22
 
23
  }
@@ -41,133 +40,118 @@ class SimpleHistoryFilterDropin {
41
 
42
  <form class="SimpleHistory__filters__form js-SimpleHistory__filters__form">
43
 
44
- <!-- <h3><?php _e("Filter history", "simple-history") ?></h3> -->
45
 
46
  <p>
47
- <input type="search" class="SimpleHistoryFilterDropin-searchInput" placeholder="<?php _e("", "simple-history"); ?>" name="search">
48
- <button class="button SimpleHistoryFilterDropin-doFilterButton SimpleHistoryFilterDropin-doFilterButton--first js-SimpleHistoryFilterDropin-doFilter"><?php _e("Search events", "simple-history") ?></button>
49
- <!-- <br> -->
50
- <button type="button" class="SimpleHistoryFilterDropin-showMoreFilters SimpleHistoryFilterDropin-showMoreFilters--first js-SimpleHistoryFilterDropin-showMoreFilters"><?php _ex("Show options", "Filter dropin: button to show more search options", "simple-history") ?></button>
51
  </p>
52
 
53
- <div class="SimpleHistory__filters__moreFilters js-SimpleHistory__filters__moreFilters">
54
-
55
- <p>
56
- <select name="loglevels" class="SimpleHistory__filters__filter SimpleHistory__filters__filter--loglevel" style="width: 300px" placeholder="<?php _e("All log levels", "simple-history") ?>" multiple>
57
- <option value="debug" data-color="#CEF6D8"><?php echo $this->sh->getLogLevelTranslated("Debug") ?></option>
58
- <option value="info" data-color="white"><?php echo $this->sh->getLogLevelTranslated("Info") ?></option>
59
- <option value="notice" data-color="rgb(219, 219, 183)"><?php echo $this->sh->getLogLevelTranslated("Notice") ?></option>
60
- <option value="warning" data-color="#F7D358"><?php echo $this->sh->getLogLevelTranslated("Warning") ?></option>
61
- <option value="error" data-color="#F79F81"><?php echo $this->sh->getLogLevelTranslated("Error") ?></option>
62
- <option value="critical" data-color="#FA5858"><?php echo $this->sh->getLogLevelTranslated("Critical") ?></option>
63
- <option value="alert" data-color="rgb(199, 69, 69)"><?php echo $this->sh->getLogLevelTranslated("Alert") ?></option>
64
- <option value="emergency" data-color="#DF0101"><?php echo $this->sh->getLogLevelTranslated("Emergency") ?></option>
65
- </select>
66
- </p>
67
-
68
- <p>
69
- <select name="messages" class="SimpleHistory__filters__filter SimpleHistory__filters__filter--logger" style="width: 300px"
70
- placeholder="<?php _e("All messages", "simple-history") ?>" multiple>
71
- <?php
72
- foreach ($loggers_user_can_read as $logger) {
73
-
74
- $logger_info = $logger["instance"]->getInfo();
75
- $logger_slug = $logger["instance"]->slug;
76
-
77
- // Get labels for logger
78
- if ( isset( $logger_info["labels"]["search"] ) ) {
79
-
80
- printf('<optgroup label="%1$s">', esc_attr( $logger_info["labels"]["search"]["label"] ) );
81
-
82
- // If all activity
83
- if ( ! empty( $logger_info["labels"]["search"]["label_all"] ) ) {
84
-
85
- $arr_all_search_messages = array();
86
- foreach ( $logger_info["labels"]["search"]["options"] as $option_key => $option_messages ) {
87
- $arr_all_search_messages = array_merge($arr_all_search_messages, $option_messages);
88
- }
89
-
90
- foreach ($arr_all_search_messages as $key => $val) {
91
- $arr_all_search_messages[ $key ] = $logger_slug . ":" . $val;
92
- }
93
-
94
- printf('<option value="%2$s">%1$s</option>', esc_attr( $logger_info["labels"]["search"]["label_all"] ), esc_attr( implode(",", $arr_all_search_messages) ));
95
 
96
- }
 
 
 
 
 
 
 
 
 
 
97
 
98
- // For each specific search option
 
 
 
 
 
99
  foreach ( $logger_info["labels"]["search"]["options"] as $option_key => $option_messages ) {
 
 
100
 
101
- foreach ($option_messages as $key => $val) {
102
- $option_messages[ $key ] = $logger_slug . ":" . $val;
103
- }
104
 
105
- $str_option_messages = implode(",", $option_messages);
106
- printf('<option value="%2$s">%1$s</option>', esc_attr( $option_key ), esc_attr( $str_option_messages ));
107
 
 
 
 
 
 
 
 
108
  }
109
 
110
- printf('</optgroup>');
 
111
 
112
  }
113
 
 
 
114
  }
115
- ?>
116
- </select>
117
- </p>
118
-
119
- <p>
120
- <input type="text"
121
- name = "user"
122
- class="SimpleHistory__filters__filter SimpleHistory__filters__filter--user"
123
- style="width: 300px"
124
- placeholder="<?php _e("All users", "simple-history") ?>" />
125
- </p>
126
-
127
- <?php
128
- global $wpdb;
129
- $table_name = $wpdb->prefix . SimpleHistory::DBTABLE;
130
- $loggers_user_can_read_sql_in = $this->sh->getLoggersThatUserCanRead(null, "sql");
131
- $sql_dates = sprintf('
132
- SELECT DISTINCT ( date_format(DATE, "%%Y-%%m") ) AS yearMonth
133
- FROM %s
134
- WHERE logger IN %s
135
- ORDER BY yearMonth DESC
136
- ', $table_name, // 1
137
- $loggers_user_can_read_sql_in // 2
138
- );
139
-
140
- $result_months = $wpdb->get_results($sql_dates);
141
- ?>
142
- <p>
143
- <select class="SimpleHistory__filters__filter SimpleHistory__filters__filter--date"
144
- name="months"
145
- placeholder="<?php echo _e("All dates", "simple-history") ?>" multiple>
146
- <?php
147
- foreach ($result_months as $row) {
148
- printf(
149
- '<option value="%1$s">%2$s</option>',
150
- $row->yearMonth,
151
- date_i18n( "F Y", strtotime($row->yearMonth) )
152
- );
153
- }
154
- ?>
155
- </select>
156
- </p>
157
 
158
- <p>
159
- <button class="button SimpleHistoryFilterDropin-doFilterButton SimpleHistoryFilterDropin-doFilterButton--second js-SimpleHistoryFilterDropin-doFilter"><?php _e("Search events", "simple-history") ?></button>
160
- <button type="button" class="SimpleHistoryFilterDropin-showMoreFilters SimpleHistoryFilterDropin-showMoreFilters--second js-SimpleHistoryFilterDropin-showMoreFilters"><?php _ex("Hide options", "Filter dropin: button to hide more search options", "simple-history") ?></button>
161
- </p>
162
 
 
 
 
 
 
 
 
163
 
164
- </div><!-- // more filters -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
 
166
- <!--
167
  <p>
168
- <button class="button js-SimpleHistoryFilterDropin-doFilter"><?php _e("Search", "simple-history") ?></button>
169
  </p>
170
- -->
171
 
172
  </form>
173
 
@@ -250,3 +234,4 @@ class SimpleHistoryFilterDropin {
250
  }
251
 
252
  } // end class
 
16
  $this->sh = $sh;
17
 
18
  add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
19
+ add_action("simple_history/history_page/after_gui", array( $this, "gui_page_filters") );
 
20
  add_action("wp_ajax_simple_history_filters_search_user", array( $this, "ajax_simple_history_filters_search_user") );
21
 
22
  }
40
 
41
  <form class="SimpleHistory__filters__form js-SimpleHistory__filters__form">
42
 
43
+ <h3><?php _e("Filter history", "simple-history") ?></h3>
44
 
45
  <p>
46
+ <input type="search" placeholder="Search" name="search">
 
 
 
47
  </p>
48
 
49
+ <p>
50
+ <select name="loglevels" class="SimpleHistory__filters__filter SimpleHistory__filters__filter--loglevel" style="width: 300px" placeholder="<?php _e("All log levels", "simple-history") ?>" multiple>
51
+ <option value="debug" data-color="#CEF6D8">Debug</option>
52
+ <option value="info" data-color="white">Info</option>
53
+ <option value="notice" data-color="rgb(219, 219, 183)">Notice</option>
54
+ <option value="warning" data-color="#F7D358">Warning</option>
55
+ <option value="error" data-color="#F79F81">Error</option>
56
+ <option value="critical" data-color="#FA5858">Critical</option>
57
+ <option value="alert" data-color="rgb(199, 69, 69)">Alert</option>
58
+ <option value="emergency" data-color="#DF0101">Emergency</option>
59
+ </select>
60
+ </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
+ <p>
63
+ <select name="messages" class="SimpleHistory__filters__filter SimpleHistory__filters__filter--logger" style="width: 300px"
64
+ placeholder="<?php _e("All messages", "simple-history") ?>" multiple>
65
+ <?php
66
+ foreach ($loggers_user_can_read as $logger) {
67
+
68
+ $logger_info = $logger["instance"]->getInfo();
69
+ $logger_slug = $logger["instance"]->slug;
70
+
71
+ // Get labels for logger
72
+ if ( isset( $logger_info["labels"]["search"] ) ) {
73
 
74
+ printf('<optgroup label="%1$s">', esc_attr( $logger_info["labels"]["search"]["label"] ) );
75
+
76
+ // If all activity
77
+ if ( ! empty( $logger_info["labels"]["search"]["label_all"] ) ) {
78
+
79
+ $arr_all_search_messages = array();
80
  foreach ( $logger_info["labels"]["search"]["options"] as $option_key => $option_messages ) {
81
+ $arr_all_search_messages = array_merge($arr_all_search_messages, $option_messages);
82
+ }
83
 
84
+ foreach ($arr_all_search_messages as $key => $val) {
85
+ $arr_all_search_messages[ $key ] = $logger_slug . ":" . $val;
86
+ }
87
 
88
+ printf('<option value="%2$s">%1$s</option>', esc_attr( $logger_info["labels"]["search"]["label_all"] ), esc_attr( implode(",", $arr_all_search_messages) ));
 
89
 
90
+ }
91
+
92
+ // For each specific search option
93
+ foreach ( $logger_info["labels"]["search"]["options"] as $option_key => $option_messages ) {
94
+
95
+ foreach ($option_messages as $key => $val) {
96
+ $option_messages[ $key ] = $logger_slug . ":" . $val;
97
  }
98
 
99
+ $str_option_messages = implode(",", $option_messages);
100
+ printf('<option value="%2$s">%1$s</option>', esc_attr( $option_key ), esc_attr( $str_option_messages ));
101
 
102
  }
103
 
104
+ printf('</optgroup>');
105
+
106
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
 
108
+ }
109
+ ?>
110
+ </select>
111
+ </p>
112
 
113
+ <p>
114
+ <input type="text"
115
+ name = "user"
116
+ class="SimpleHistory__filters__filter SimpleHistory__filters__filter--user"
117
+ style="width: 300px"
118
+ placeholder="<?php _e("All users", "simple-history") ?>" />
119
+ </p>
120
 
121
+ <?php
122
+ global $wpdb;
123
+ $table_name = $wpdb->prefix . SimpleHistory::DBTABLE;
124
+ $loggers_user_can_read_sql_in = $this->sh->getLoggersThatUserCanRead(null, "sql");
125
+ $sql_dates = sprintf('
126
+ SELECT DISTINCT ( date_format(DATE, "%%Y-%%m") ) AS yearMonth
127
+ FROM %s
128
+ WHERE logger IN %s
129
+ ORDER BY yearMonth DESC
130
+ ', $table_name, // 1
131
+ $loggers_user_can_read_sql_in // 2
132
+ );
133
+
134
+ $result_months = $wpdb->get_results($sql_dates);
135
+ ?>
136
+ <p>
137
+ <select class="SimpleHistory__filters__filter SimpleHistory__filters__filter--date"
138
+ name="months"
139
+ placeholder="<?php echo _e("All dates", "simple-history") ?>" multiple>
140
+ <?php
141
+ foreach ($result_months as $row) {
142
+ printf(
143
+ '<option value="%1$s">%2$s</option>',
144
+ $row->yearMonth,
145
+ date_i18n( "F Y", strtotime($row->yearMonth) )
146
+ );
147
+ }
148
+ ?>
149
+ </select>
150
+ </p>
151
 
 
152
  <p>
153
+ <button class="button js-SimpleHistoryFilterDropin-doFilter"><?php _e("Filter", "simple-history") ?></button>
154
  </p>
 
155
 
156
  </form>
157
 
234
  }
235
 
236
  } // end class
237
+
dropins/SimpleHistoryIpInfoDropin.css CHANGED
@@ -5,138 +5,3 @@
5
  /* cursor: pointer;
6
  text-decoration: underline;*/
7
  }
8
-
9
- .SimpleHistoryIpInfoDropin__popup {
10
- position: absolute;
11
- visibility: hidden;
12
- opacity: 0;
13
- top: 0;
14
- left: 0;
15
- width: 350px;
16
- min-height: 200px;
17
- margin-left: -20px;
18
- margin-top: -5px;
19
- border: 1px solid #ccc;
20
- background-color: rgba(255, 255, 255, 1);
21
- box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.2);
22
- padding: 10px;
23
- z-index: 5;
24
- /* fade out then hide visibility */
25
- transition: visibility 0 .25s, opacity .25s;
26
- }
27
-
28
- .SimpleHistoryIpInfoDropin__popup p {
29
- margin: 0;
30
- }
31
-
32
- .SimpleHistoryIpInfoDropin__popup.is-visible {
33
- visibility: visible;
34
- opacity: 1;
35
- /* make visible immediately and start opacity directly */
36
- transition: visibility 0, opacity .25s 0s;
37
- }
38
-
39
- .SimpleHistoryIpInfoDropin__popupArrow {
40
- /*width: 40px;
41
- height: 40px;
42
- font-size: 40px;
43
- position: absolute;
44
- top: -25px;
45
- left: 0;*/
46
- }
47
-
48
- .SimpleHistoryIpInfoDropin__popupArrow {
49
- position: absolute;
50
- background: #fff;
51
- border: none;
52
- top: 0;
53
- left: 40px;
54
- }
55
-
56
- .SimpleHistoryIpInfoDropin__popupArrow:after, .SimpleHistoryIpInfoDropin__popupArrow:before {
57
- bottom: 100%;
58
- left: 50%;
59
- border: solid transparent;
60
- content: " ";
61
- height: 0;
62
- width: 0;
63
- position: absolute;
64
- pointer-events: none;
65
- }
66
-
67
- .SimpleHistoryIpInfoDropin__popupArrow:after {
68
- border-color: rgba(255, 255, 255, 0);
69
- border-bottom-color: #fff;
70
- border-width: 10px;
71
- margin-left: -10px;
72
- }
73
- .SimpleHistoryIpInfoDropin__popupArrow:before {
74
- border-color: rgba(204, 204, 204, 0);
75
- border-bottom-color: #ccc;
76
- border-width: 11px;
77
- margin-left: -11px;
78
- }
79
-
80
- .SimpleHistoryIpInfoDropin__ipInfoTable {
81
- width: 100%;
82
- border-collapse: collapse;
83
- }
84
-
85
- .SimpleHistoryIpInfoDropin__ipInfoTable tr {
86
-
87
- }
88
-
89
- .SimpleHistoryIpInfoDropin__ipInfoTable th,
90
- .SimpleHistoryIpInfoDropin__ipInfoTable td {
91
- vertical-align: top;
92
- text-align: left;
93
- padding: 5px 5px;
94
- border-top: 1px solid #eee;
95
- }
96
-
97
- .SimpleHistoryIpInfoDropin__ipInfoTable tr:first-of-type th,
98
- .SimpleHistoryIpInfoDropin__ipInfoTable tr:first-of-type td {
99
- border-top: 0;
100
- }
101
-
102
- .SimpleHistoryIpInfoDropin__ipInfoTable__mapRow a {
103
- display: inline-block;
104
- }
105
-
106
- .SimpleHistoryIpInfoDropin__ipInfoTable__mapRow td {
107
- padding: 0;
108
- }
109
-
110
- .SimpleHistoryIpInfoDropin__provider {
111
- text-align: right;
112
- font-size: 12px;
113
- color: #888;
114
- margin-top: .5em !important;
115
- }
116
-
117
- .SimpleHistoryIpInfoDropin__popupClose {
118
- position: absolute;
119
- width: 21px;
120
- height: 20px;
121
- background-color: rgba(200, 200, 200, .5);
122
- border-radius: 50%;
123
- top: 5px;
124
- right: 5px;
125
- line-height: 1;
126
- font-size: 20px;
127
- text-align: center;
128
- }
129
-
130
- .SimpleHistoryIpInfoDropin__popupCloseButton {
131
- padding: 0 5px;
132
- margin: 0;
133
- background: none;
134
- border: 0;
135
- line-height: 1;
136
- cursor: pointer;
137
- }
138
-
139
- .SimpleHistoryIpInfoDropin__popupCloseButton:hover {
140
- /* same color as wp popups close on hover */
141
- color: rgb(46, 162, 204);
142
- }
5
  /* cursor: pointer;
6
  text-decoration: underline;*/
7
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dropins/SimpleHistoryIpInfoDropin.js CHANGED
@@ -2,13 +2,7 @@
2
  (function($) {
3
 
4
  var $logItems = $(".SimpleHistoryLogitems");
5
- var $popup = $(".SimpleHistoryIpInfoDropin__popup");
6
- var $popupContent = $popup.find(".SimpleHistoryIpInfoDropin__popupContent");
7
 
8
- var templateLoading = wp.template("simple-history-ipinfodropin-popup-loading");
9
- var templateLoaded = wp.template("simple-history-ipinfodropin-popup-loaded");
10
-
11
- // Click on link with IP-number
12
  $logItems.on("click", ".SimpleHistoryLogitem__anonUserWithIp__theIp", function(e) {
13
 
14
  var $elm = $(this);
@@ -18,62 +12,10 @@
18
  return;
19
  }
20
 
21
- showPopup($elm);
22
-
23
  return lookupIpAddress(ipAddress);
24
 
25
  });
26
 
27
- // Close popup
28
- $popup.on("click", ".SimpleHistoryIpInfoDropin__popupCloseButton", hidePopup);
29
- $(window).on("click", maybeHidePopup);
30
- $(window).on("keyup", maybeHidePopup);
31
- $(document).on("SimpleHistory:logReloadStart", hidePopup);
32
-
33
- // Position and then show popup.
34
- // Content is not added yet
35
- function showPopup($elm) {
36
-
37
- var offset = $elm.offset();
38
-
39
- $popup.css({
40
- //top: offset.top + $elm.outerHeight(),
41
- top: offset.top,
42
- left: offset.left
43
- });
44
-
45
- $popupContent.html(templateLoading());
46
-
47
- $popup.addClass("is-visible");
48
-
49
- }
50
-
51
- function hidePopup(e) {
52
-
53
- $popup.removeClass("is-visible");
54
-
55
- }
56
-
57
- function maybeHidePopup(e) {
58
-
59
- var $target = (e.target);
60
-
61
- // Don't hide if click inside popup
62
- if ($.contains($popup.get(0), $target) ) {
63
- return true;
64
- }
65
-
66
- // If initiated by keyboard but not esc, then don't close
67
- if (e.originalEvent.type == "keyup" && e.originalEvent.keyCode != 27) {
68
- return;
69
- }
70
-
71
- // Else it should be ok to hide
72
- hidePopup();
73
-
74
- }
75
-
76
- // Init request to lookup address
77
  function lookupIpAddress(ipAddress) {
78
 
79
  $.get("http://ipinfo.io/" + ipAddress, onIpAddressLookupkResponse, "jsonp");
@@ -82,10 +24,9 @@
82
 
83
  }
84
 
85
- // Function called when ip adress lookup succeeded
86
  function onIpAddressLookupkResponse(d) {
87
-
88
- $popupContent.html(templateLoaded(d));
89
 
90
  }
91
 
2
  (function($) {
3
 
4
  var $logItems = $(".SimpleHistoryLogitems");
 
 
5
 
 
 
 
 
6
  $logItems.on("click", ".SimpleHistoryLogitem__anonUserWithIp__theIp", function(e) {
7
 
8
  var $elm = $(this);
12
  return;
13
  }
14
 
 
 
15
  return lookupIpAddress(ipAddress);
16
 
17
  });
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  function lookupIpAddress(ipAddress) {
20
 
21
  $.get("http://ipinfo.io/" + ipAddress, onIpAddressLookupkResponse, "jsonp");
24
 
25
  }
26
 
 
27
  function onIpAddressLookupkResponse(d) {
28
+
29
+ console.log("got data", d);
30
 
31
  }
32
 
dropins/SimpleHistoryIpInfoDropin.php CHANGED
@@ -15,13 +15,11 @@ class SimpleHistoryIpInfoDropin {
15
  $this->sh = $sh;
16
 
17
  // Since it's not quite done yet, it's for da devs only for now
18
- /*if ( ! defined("SIMPLE_HISTORY_DEV") || ! SIMPLE_HISTORY_DEV ) {
19
  return;
20
- }*/
21
 
22
  add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
23
- add_action("simple_history/admin_footer", array($this, "add_js_template"));
24
-
25
 
26
  }
27
 
@@ -35,138 +33,5 @@ class SimpleHistoryIpInfoDropin {
35
 
36
  }
37
 
38
- public function add_js_template() {
39
- ?>
40
-
41
- <div class="SimpleHistoryIpInfoDropin__popup">
42
- <div class="SimpleHistoryIpInfoDropin__popupArrow"></div>
43
- <div class="SimpleHistoryIpInfoDropin__popupClose"><button class="SimpleHistoryIpInfoDropin__popupCloseButton">×</button></div>
44
- <div class="SimpleHistoryIpInfoDropin__popupContent"></div>
45
- </div>
46
-
47
- <script type="text/html" id="tmpl-simple-history-ipinfodropin-popup-loading">
48
- <!-- <p>Getting IP info ...</p> -->
49
- </script>
50
-
51
- <script type="text/html" id="tmpl-simple-history-ipinfodropin-popup-loaded">
52
- <!--
53
- {
54
- "ip": "8.8.8.8",
55
- "hostname": "google-public-dns-a.google.com",
56
- "city": "Mountain View",
57
- "region": "California",
58
- "country": "US",
59
- "loc": "37.3860,-122.0838",
60
- "org": "AS15169 Google Inc.",
61
- "postal": "94035"
62
- }
63
- -->
64
- <# if ( typeof(data.bogon) != "undefined" ) { #>
65
-
66
- <p><?php _ex("That IP address does not seem like a public one.", "IP Info Dropin", "simple-history"); ?></p>
67
-
68
- <# } else { #>
69
-
70
- <table class="SimpleHistoryIpInfoDropin__ipInfoTable">
71
-
72
- <tr class="SimpleHistoryIpInfoDropin__ipInfoTable__mapRow">
73
- <td colspan="2">
74
- <# if ( typeof(data.loc) != "undefined" && data.loc ) { #>
75
- <a href="https://www.google.com/maps/place/{{ data.loc }}/@{{ data.loc }},6z" target="_blank">
76
- <img src="https://maps.googleapis.com/maps/api/staticmap?center={{ data.loc }}&zoom=7&size=350x100&sensor=false" width="350" height="100" alt="Google Map">
77
- </a>
78
- <# } #>
79
- </td>
80
- </tr>
81
-
82
- <# if ( typeof(data.ip) != "undefined" && data.ip ) { #>
83
- <tr>
84
- <td>
85
- <?php _ex("IP address", "IP Info Dropin", "simple-history"); ?>
86
- </td>
87
- <td>
88
- {{ data.ip }}
89
- </td>
90
- </tr>
91
- <# } #>
92
-
93
- <# if ( typeof(data.hostname) != "undefined" && data.hostname ) { #>
94
- <tr>
95
- <td>
96
- <?php _ex("Hostname", "IP Info Dropin", "simple-history"); ?>
97
- </td>
98
- <td>
99
- {{ data.hostname }}
100
- </td>
101
- </tr>
102
- <# } #>
103
-
104
- <# if ( typeof(data.org) != "undefined" && data.org ) { #>
105
- <tr>
106
- <td>
107
- <?php _ex("Network", "IP Info Dropin", "simple-history"); ?>
108
- </td>
109
- <td>
110
- {{ data.org }}
111
- </td>
112
- </tr>
113
- <# } #>
114
-
115
- <# if ( typeof(data.network) != "undefined" && data.network ) { #>
116
- <tr>
117
- <td>
118
- <?php _ex("Network", "IP Info Dropin", "simple-history"); ?>
119
- </td>
120
- <td>
121
- {{ data.network }}
122
- </td>
123
- </tr>
124
- <# } #>
125
-
126
- <# if ( typeof(data.city) != "undefined" && data.city ) { #>
127
- <tr>
128
- <td>
129
- <?php _ex("City", "IP Info Dropin", "simple-history"); ?>
130
- </td>
131
- <td>
132
- {{ data.city }}
133
- </td>
134
- </tr>
135
- <# } #>
136
-
137
- <# if ( typeof(data.region) != "undefined" && data.region ) { #>
138
- <tr>
139
- <td>
140
- <?php _ex("Region", "IP Info Dropin", "simple-history"); ?>
141
- </td>
142
- <td>
143
- {{ data.region }}
144
- </td>
145
- </tr>
146
- <# } #>
147
-
148
- <# if ( typeof(data.country) != "undefined" && data.country ) { #>
149
- <tr>
150
- <td>
151
- <?php _ex("Country", "IP Info Dropin", "simple-history"); ?>
152
- </td>
153
- <td>
154
- {{ data.country }}
155
- </td>
156
- </tr>
157
- <# } #>
158
-
159
- </table>
160
-
161
- <p class="SimpleHistoryIpInfoDropin__provider">
162
- <?php printf( _x('IP info provided by %1$s ipinfo.io %2$s', "IP Info Dropin", "simple-history"), "<a href='http://ipinfo.io/{{ data.ip }}' target='_blank'>", "</a>" ); ?>
163
- </p>
164
-
165
- <# } #>
166
-
167
- </script>
168
- <?php
169
- }
170
-
171
  } // end class
172
 
15
  $this->sh = $sh;
16
 
17
  // Since it's not quite done yet, it's for da devs only for now
18
+ if ( ! defined("SIMPLE_HISTORY_DEV") || ! SIMPLE_HISTORY_DEV ) {
19
  return;
20
+ }
21
 
22
  add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
 
 
23
 
24
  }
25
 
33
 
34
  }
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  } // end class
37
 
dropins/SimpleHistoryNewRowsNotifier.php CHANGED
@@ -63,6 +63,7 @@ class SimpleHistoryNewRowsNotifier {
63
  $logQueryArgs = $apiArgs;
64
 
65
  $logQuery = new SimpleHistoryLogQuery();
 
66
  $answer = $logQuery->query( $logQueryArgs );
67
 
68
  // Use our own repsonse array instead of $answer to keep size down
@@ -70,7 +71,6 @@ class SimpleHistoryNewRowsNotifier {
70
 
71
  $numNewRows = isset( $answer["total_row_count"] ) ? $answer["total_row_count"] : 0;
72
  $json_data["num_new_rows"] = $numNewRows;
73
- $json_data["num_mysql_queries"] = get_num_queries();
74
 
75
  if ($numNewRows) {
76
 
63
  $logQueryArgs = $apiArgs;
64
 
65
  $logQuery = new SimpleHistoryLogQuery();
66
+
67
  $answer = $logQuery->query( $logQueryArgs );
68
 
69
  // Use our own repsonse array instead of $answer to keep size down
71
 
72
  $numNewRows = isset( $answer["total_row_count"] ) ? $answer["total_row_count"] : 0;
73
  $json_data["num_new_rows"] = $numNewRows;
 
74
 
75
  if ($numNewRows) {
76
 
dropins/SimpleHistoryRSSDropin.php CHANGED
@@ -12,7 +12,7 @@ Author: Pär Thernström
12
  class SimpleHistoryRSSDropin {
13
 
14
  function __construct($sh) {
15
-
16
  $this->sh = $sh;
17
 
18
  if ( ! function_exists('get_editable_roles') ) {
@@ -32,7 +32,7 @@ class SimpleHistoryRSSDropin {
32
  }
33
 
34
  /**
35
- * Add settings for the RSS feed
36
  * + also regenerates the secret if requested
37
  */
38
  public function add_settings() {
@@ -43,15 +43,15 @@ class SimpleHistoryRSSDropin {
43
  $settings_section_rss_id = "simple_history_settings_section_rss";
44
 
45
  add_settings_section(
46
- $settings_section_rss_id,
47
- _x("RSS feed", "rss settings headline", "simple-history"), // No title __("General", "simple-history"),
48
- array($this, "settings_section_output"),
49
  SimpleHistory::SETTINGS_MENU_SLUG // same slug as for options menu page
50
  );
51
 
52
  // RSS address
53
  add_settings_field(
54
- "simple_history_rss_feed",
55
  __("Address", "simple-history"),
56
  array($this, "settings_field_rss"),
57
  SimpleHistory::SETTINGS_MENU_SLUG,
@@ -60,7 +60,7 @@ class SimpleHistoryRSSDropin {
60
 
61
  // Regnerate address
62
  add_settings_field(
63
- "simple_history_rss_feed_regenerate_secret",
64
  __("Regenerate", "simple-history"),
65
  array($this, "settings_field_rss_regenerate"),
66
  SimpleHistory::SETTINGS_MENU_SLUG,
@@ -70,7 +70,7 @@ class SimpleHistoryRSSDropin {
70
  // Create new RSS secret
71
  $create_new_secret = false;
72
  $create_secret_nonce_name = "simple_history_rss_secret_regenerate_nonce";
73
-
74
  if ( isset( $_GET[$create_secret_nonce_name] ) && wp_verify_nonce( $_GET[$create_secret_nonce_name], 'simple_history_rss_update_secret')) {
75
 
76
  $create_new_secret = true;
@@ -95,7 +95,7 @@ class SimpleHistoryRSSDropin {
95
  * Check if current request is a request for the RSS feed
96
  */
97
  function check_for_rss_feed_request() {
98
-
99
  // check for RSS
100
  // don't know if this is the right way to do this, but it seems to work!
101
  if ( isset( $_GET["simple_history_get_rss"] ) ) {
@@ -104,7 +104,7 @@ class SimpleHistoryRSSDropin {
104
  exit;
105
 
106
  }
107
-
108
  }
109
 
110
  /**
@@ -136,17 +136,17 @@ class SimpleHistoryRSSDropin {
136
  wp_die( 'Nothing here.' );
137
  }
138
 
139
- header("Content-Type: text/xml; charset=utf-8");
140
  echo '<?xml version="1.0" encoding="UTF-8"?>';
141
  $self_link = $this->get_rss_address();
142
-
143
  if ( $rss_secret_option === $rss_secret_get ) {
144
-
145
  ?>
146
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
147
  <channel>
148
- <title><![CDATA[<?php printf(__("History for %s", 'simple-history'), get_bloginfo("name")) ?>]]></title>
149
- <description><![CDATA[<?php printf(__("WordPress History for %s", 'simple-history'), get_bloginfo("name")) ?>]]></description>
150
  <link><?php echo get_bloginfo("url") ?></link>
151
  <atom:link href="<?php echo $self_link; ?>" rel="self" type="application/atom+xml" />
152
  <?php
@@ -166,7 +166,7 @@ class SimpleHistoryRSSDropin {
166
  );
167
 
168
  $args = apply_filters("simple_history/rss_feed_args", $args);
169
-
170
  $logQuery = new SimpleHistoryLogQuery();
171
  $queryResults = $logQuery->query($args);
172
 
@@ -174,36 +174,30 @@ class SimpleHistoryRSSDropin {
174
  // remove_action( $action_tag, array($this, "on_can_read_single_logger") );
175
 
176
  foreach ($queryResults["log_rows"] as $row) {
177
-
178
  $header_output = $this->sh->getLogRowHeaderOutput( $row );
179
  $text_output = $this->sh->getLogRowPlainTextOutput( $row );
180
  $details_output = $this->sh->getLogRowDetailsOutput( $row );
181
  $item_guid = home_url() . "?SimpleHistoryGuid=" . $row->id;
182
 
183
  #$item_title = wp_kses( $header_output . ": " . $text_output, array() );
184
- $item_title = $this->sh->getLogLevelTranslated( $row->level ) . ": " . wp_kses( $text_output, array() );
185
-
186
- $level_output = sprintf( __('Severity level: %1$s'), $this->sh->getLogLevelTranslated( $row->level ));
187
-
188
  ?>
189
  <item>
190
- <title><![CDATA[<?php echo $item_title; ?>]]></title>
191
  <description><![CDATA[
192
  <p><?php echo $header_output ?></p>
193
  <p><?php echo $text_output ?></p>
194
  <div><?php echo $details_output ?></div>
195
- <p><?php echo $level_output ?></p>
196
  <?php
197
  $occasions = $row->subsequentOccasions - 1;
198
  if ( $occasions ) {
199
- printf( _n( '+%1$s occasion', '+%1$s occasions', $occasions, 'simple-history' ), $occasions );
200
  }
201
  ?>
202
  ]]></description>
203
- <?php
204
- // author must be email to validate, but the field is optional, so we skip it
205
- /* <author><?php echo $row->initiator ?></author> */
206
- ?>
207
  <pubDate><?php echo date("D, d M Y H:i:s", strtotime($row->date)) ?> GMT</pubDate>
208
  <guid isPermaLink="false"><?php echo $item_guid ?></guid>
209
  <link><?php echo $item_guid ?></link>
@@ -217,7 +211,7 @@ class SimpleHistoryRSSDropin {
217
  [level] =&gt; info
218
  [date] =&gt; 2014-10-15 06:50:01
219
  [message] =&gt; Updated plugin &quot;{plugin_name}&quot; from {plugin_prev_version} to {plugin_version}
220
- [type] =&gt;
221
  [initiator] =&gt; wp_user
222
  [occasionsID] =&gt; 75e8aeab3e43b37f8a458f3744c4995f
223
  [subsequentOccasions] =&gt; 1
@@ -271,7 +265,7 @@ class SimpleHistoryRSSDropin {
271
  </channel>
272
  </rss>
273
  <?php
274
-
275
  }
276
 
277
  } // rss
@@ -283,9 +277,9 @@ class SimpleHistoryRSSDropin {
283
  * @return string new secret
284
  */
285
  function update_rss_secret() {
286
-
287
  $rss_secret = "";
288
-
289
  for ($i=0; $i<20; $i++) {
290
  $rss_secret .= chr(rand(97,122));
291
  }
@@ -310,7 +304,7 @@ class SimpleHistoryRSSDropin {
310
  * Output for settings field that regenerates the RSS adress/secret
311
  */
312
  function settings_field_rss_regenerate() {
313
-
314
  $update_link = add_query_arg("", "");
315
  $update_link = wp_nonce_url( $update_link, "simple_history_rss_update_secret", "simple_history_rss_secret_regenerate_nonce" );
316
 
@@ -330,7 +324,7 @@ class SimpleHistoryRSSDropin {
330
  * @return string URL
331
  */
332
  function get_rss_address() {
333
-
334
  $rss_secret = get_option("simple_history_rss_secret");
335
  $rss_address = add_query_arg(array("simple_history_get_rss" => "1", "rss_secret" => $rss_secret), get_bloginfo("url") . "/");
336
  $rss_address = htmlspecialchars($rss_address, ENT_COMPAT, "UTF-8");
12
  class SimpleHistoryRSSDropin {
13
 
14
  function __construct($sh) {
15
+
16
  $this->sh = $sh;
17
 
18
  if ( ! function_exists('get_editable_roles') ) {
32
  }
33
 
34
  /**
35
+ * Add settings for the RSS feed
36
  * + also regenerates the secret if requested
37
  */
38
  public function add_settings() {
43
  $settings_section_rss_id = "simple_history_settings_section_rss";
44
 
45
  add_settings_section(
46
+ $settings_section_rss_id,
47
+ _x("RSS feed", "rss settings headline", "simple-history"), // No title __("General", "simple-history"),
48
+ array($this, "settings_section_output"),
49
  SimpleHistory::SETTINGS_MENU_SLUG // same slug as for options menu page
50
  );
51
 
52
  // RSS address
53
  add_settings_field(
54
+ "simple_history_rss_feed",
55
  __("Address", "simple-history"),
56
  array($this, "settings_field_rss"),
57
  SimpleHistory::SETTINGS_MENU_SLUG,
60
 
61
  // Regnerate address
62
  add_settings_field(
63
+ "simple_history_rss_feed_regenerate_secret",
64
  __("Regenerate", "simple-history"),
65
  array($this, "settings_field_rss_regenerate"),
66
  SimpleHistory::SETTINGS_MENU_SLUG,
70
  // Create new RSS secret
71
  $create_new_secret = false;
72
  $create_secret_nonce_name = "simple_history_rss_secret_regenerate_nonce";
73
+
74
  if ( isset( $_GET[$create_secret_nonce_name] ) && wp_verify_nonce( $_GET[$create_secret_nonce_name], 'simple_history_rss_update_secret')) {
75
 
76
  $create_new_secret = true;
95
  * Check if current request is a request for the RSS feed
96
  */
97
  function check_for_rss_feed_request() {
98
+
99
  // check for RSS
100
  // don't know if this is the right way to do this, but it seems to work!
101
  if ( isset( $_GET["simple_history_get_rss"] ) ) {
104
  exit;
105
 
106
  }
107
+
108
  }
109
 
110
  /**
136
  wp_die( 'Nothing here.' );
137
  }
138
 
139
+ header ("Content-Type:text/xml");
140
  echo '<?xml version="1.0" encoding="UTF-8"?>';
141
  $self_link = $this->get_rss_address();
142
+
143
  if ( $rss_secret_option === $rss_secret_get ) {
144
+
145
  ?>
146
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
147
  <channel>
148
+ <title><?php printf(__("History for %s", 'simple-history'), get_bloginfo("name")) ?></title>
149
+ <description><?php printf(__("WordPress History for %s", 'simple-history'), get_bloginfo("name")) ?></description>
150
  <link><?php echo get_bloginfo("url") ?></link>
151
  <atom:link href="<?php echo $self_link; ?>" rel="self" type="application/atom+xml" />
152
  <?php
166
  );
167
 
168
  $args = apply_filters("simple_history/rss_feed_args", $args);
169
+
170
  $logQuery = new SimpleHistoryLogQuery();
171
  $queryResults = $logQuery->query($args);
172
 
174
  // remove_action( $action_tag, array($this, "on_can_read_single_logger") );
175
 
176
  foreach ($queryResults["log_rows"] as $row) {
177
+
178
  $header_output = $this->sh->getLogRowHeaderOutput( $row );
179
  $text_output = $this->sh->getLogRowPlainTextOutput( $row );
180
  $details_output = $this->sh->getLogRowDetailsOutput( $row );
181
  $item_guid = home_url() . "?SimpleHistoryGuid=" . $row->id;
182
 
183
  #$item_title = wp_kses( $header_output . ": " . $text_output, array() );
184
+ $item_title = wp_kses( $text_output, array() );
185
+
 
 
186
  ?>
187
  <item>
188
+ <title><?php echo $item_title; ?></title>
189
  <description><![CDATA[
190
  <p><?php echo $header_output ?></p>
191
  <p><?php echo $text_output ?></p>
192
  <div><?php echo $details_output ?></div>
 
193
  <?php
194
  $occasions = $row->subsequentOccasions - 1;
195
  if ( $occasions ) {
196
+ printf( _n('+%1$s occasion', '+%1$s occasions', "simple-history"), $occasions );
197
  }
198
  ?>
199
  ]]></description>
200
+ <author><?php echo $row->initiator ?></author>
 
 
 
201
  <pubDate><?php echo date("D, d M Y H:i:s", strtotime($row->date)) ?> GMT</pubDate>
202
  <guid isPermaLink="false"><?php echo $item_guid ?></guid>
203
  <link><?php echo $item_guid ?></link>
211
  [level] =&gt; info
212
  [date] =&gt; 2014-10-15 06:50:01
213
  [message] =&gt; Updated plugin &quot;{plugin_name}&quot; from {plugin_prev_version} to {plugin_version}
214
+ [type] =&gt;
215
  [initiator] =&gt; wp_user
216
  [occasionsID] =&gt; 75e8aeab3e43b37f8a458f3744c4995f
217
  [subsequentOccasions] =&gt; 1
265
  </channel>
266
  </rss>
267
  <?php
268
+
269
  }
270
 
271
  } // rss
277
  * @return string new secret
278
  */
279
  function update_rss_secret() {
280
+
281
  $rss_secret = "";
282
+
283
  for ($i=0; $i<20; $i++) {
284
  $rss_secret .= chr(rand(97,122));
285
  }
304
  * Output for settings field that regenerates the RSS adress/secret
305
  */
306
  function settings_field_rss_regenerate() {
307
+
308
  $update_link = add_query_arg("", "");
309
  $update_link = wp_nonce_url( $update_link, "simple_history_rss_update_secret", "simple_history_rss_secret_regenerate_nonce" );
310
 
324
  * @return string URL
325
  */
326
  function get_rss_address() {
327
+
328
  $rss_secret = get_option("simple_history_rss_secret");
329
  $rss_address = add_query_arg(array("simple_history_get_rss" => "1", "rss_secret" => $rss_secret), get_bloginfo("url") . "/");
330
  $rss_address = htmlspecialchars($rss_address, ENT_COMPAT, "UTF-8");
dropins/SimpleHistorySettingsLogtestDropin.php CHANGED
@@ -11,7 +11,7 @@ class SimpleHistorySettingsLogtestDropin {
11
  if ( ! defined("SIMPLE_HISTORY_DEV") || ! SIMPLE_HISTORY_DEV ) {
12
  return;
13
  }
14
-
15
  $this->sh = $sh;
16
 
17
  // How do we register this to the settings array?
@@ -40,10 +40,10 @@ class SimpleHistorySettingsLogtestDropin {
40
  }
41
 
42
  public function on_admin_head() {
43
-
44
  ?>
45
  <script>
46
-
47
  jQuery(function($) {
48
 
49
  var button = $(".js-SimpleHistorySettingsLogtestDropin-addStuff");
@@ -51,14 +51,14 @@ class SimpleHistorySettingsLogtestDropin {
51
  var messageWorking = $(".js-SimpleHistorySettingsLogtestDropin-addStuffWorking");
52
 
53
  button.on("click", function(e) {
54
-
55
  messageWorking.show();
56
  messageDone.hide();
57
 
58
  $.post(ajaxurl, {
59
  action: "SimpleHistoryAddLogTest"
60
  }).done(function(r) {
61
-
62
  messageWorking.hide();
63
  messageDone.show();
64
 
@@ -75,7 +75,7 @@ class SimpleHistorySettingsLogtestDropin {
75
  }
76
 
77
  public function output() {
78
-
79
  ?>
80
  <h2>Test data</h2>
81
 
@@ -122,12 +122,12 @@ class SimpleHistorySettingsLogtestDropin {
122
  SimpleLogger()->info("User admin edited page 'About our company'");
123
  SimpleLogger()->warning("User 'Jessie' deleted user 'Kim'");
124
  SimpleLogger()->debug("Ok, cron job is running!");
125
-
126
  // Log entries can have placeholders and context
127
  // This makes log entried translatable and filterable
128
  for ($i = 0; $i < rand(1, 50); $i++) {
129
  SimpleLogger()->notice(
130
- "User {username} edited page {pagename}",
131
  array(
132
  "username" => "bonnyerden",
133
  "pagename" => "My test page",
@@ -145,7 +145,7 @@ class SimpleHistorySettingsLogtestDropin {
145
  // in the log overview
146
  for ($i = 0; $i < rand(1, 50); $i++) {
147
  SimpleLogger()->notice("User {username} edited page {pagename}", array(
148
- "username" => "admin",
149
  "pagename" => "My test page",
150
  "_occasionsID" => "username:1,postID:24884,action:edited"
151
  ));
@@ -221,10 +221,6 @@ class SimpleHistorySettingsLogtestDropin {
221
  "_occasionsID" => "username:1,postID:24885,action:edited"
222
  ));
223
 
224
- SimpleLogger()->debug( "This is a message with no translation" );
225
- SimpleLogger()->debug( __("Plugin"), array( "comment" => "This message is 'Plugin' and should contain text domain 'default' since it's a translation that comes with WordPress" ) );
226
- SimpleLogger()->debug( __("Enter title of new page", "cms-tree-page-view"), array("comment" => "A translation used in CMS Tree Page View"));
227
-
228
  }
229
 
230
  }
@@ -293,4 +289,4 @@ add_action("init", function() {
293
 
294
 
295
 
296
- //*/
11
  if ( ! defined("SIMPLE_HISTORY_DEV") || ! SIMPLE_HISTORY_DEV ) {
12
  return;
13
  }
14
+
15
  $this->sh = $sh;
16
 
17
  // How do we register this to the settings array?
40
  }
41
 
42
  public function on_admin_head() {
43
+
44
  ?>
45
  <script>
46
+
47
  jQuery(function($) {
48
 
49
  var button = $(".js-SimpleHistorySettingsLogtestDropin-addStuff");
51
  var messageWorking = $(".js-SimpleHistorySettingsLogtestDropin-addStuffWorking");
52
 
53
  button.on("click", function(e) {
54
+
55
  messageWorking.show();
56
  messageDone.hide();
57
 
58
  $.post(ajaxurl, {
59
  action: "SimpleHistoryAddLogTest"
60
  }).done(function(r) {
61
+
62
  messageWorking.hide();
63
  messageDone.show();
64
 
75
  }
76
 
77
  public function output() {
78
+
79
  ?>
80
  <h2>Test data</h2>
81
 
122
  SimpleLogger()->info("User admin edited page 'About our company'");
123
  SimpleLogger()->warning("User 'Jessie' deleted user 'Kim'");
124
  SimpleLogger()->debug("Ok, cron job is running!");
125
+
126
  // Log entries can have placeholders and context
127
  // This makes log entried translatable and filterable
128
  for ($i = 0; $i < rand(1, 50); $i++) {
129
  SimpleLogger()->notice(
130
+ "User {username} edited page {pagename}",
131
  array(
132
  "username" => "bonnyerden",
133
  "pagename" => "My test page",
145
  // in the log overview
146
  for ($i = 0; $i < rand(1, 50); $i++) {
147
  SimpleLogger()->notice("User {username} edited page {pagename}", array(
148
+ "username" => "admin",
149
  "pagename" => "My test page",
150
  "_occasionsID" => "username:1,postID:24884,action:edited"
151
  ));
221
  "_occasionsID" => "username:1,postID:24885,action:edited"
222
  ));
223
 
 
 
 
 
224
  }
225
 
226
  }
289
 
290
 
291
 
292
+ //*/
dropins/SimpleHistorySidebarDropin.css DELETED
@@ -1,28 +0,0 @@
1
-
2
- .SimpleHistory__pageSidebar {
3
- float: right;
4
- width: 300px;
5
- margin-right: -340px;
6
- }
7
-
8
- @media only screen and (max-width: 850px) {
9
- .SimpleHistory__pageSidebar {
10
- width: 100%;
11
- float: none;
12
- margin-right: auto;
13
- margin-top: 20px;
14
- }
15
- }
16
-
17
- .SimpleHistory__pageSidebar .inside {
18
- margin-bottom: 0;
19
- }
20
-
21
- .SimpleHistory__pageSidebar .metabox-holder {
22
- padding-top: 0 !important;
23
- }
24
-
25
- .SimpleHistory__pageSidebar .postbox .hndle {
26
- cursor: auto;
27
- }
28
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dropins/SimpleHistorySidebarDropin.php DELETED
@@ -1,225 +0,0 @@
1
- <?php
2
- /*
3
- Dropin Name: Sidebar
4
- Drop Description: Outputs HTML and filters for a sidebar
5
- Dropin URI: http://simple-history.com/
6
- Author: Pär Thernström
7
- */
8
-
9
- class SimpleHistorySidebarDropin {
10
-
11
- private $sh;
12
-
13
- function __construct($sh) {
14
-
15
- $this->sh = $sh;
16
-
17
- add_action("simple_history/enqueue_admin_scripts", array($this, "enqueue_admin_scripts"));
18
- add_action("simple_history/history_page/after_gui", array($this, "output_sidebar_html"));
19
-
20
- // add_action("simple_history/dropin/sidebar/sidebar_html", array($this, "example_output"));
21
-
22
- add_action("simple_history/dropin/sidebar/sidebar_html", array($this, "default_sidebar_contents"));
23
-
24
- }
25
-
26
- public function default_sidebar_contents() {
27
-
28
- // Boxes that will appear randomly
29
-
30
- // Box about GitHub
31
- $headline = _x("Simple History is on GitHub", 'Sidebar box', 'simple-history');
32
-
33
- $body = sprintf(
34
- _x('You can star, fork, or report issues with this plugin over at the <a href="%1$s">GitHub page</a>.', 'Sidebar box', 'simple-history'),
35
- 'https://github.com/bonny/WordPress-Simple-History'
36
- );
37
-
38
- $boxGithub = '
39
- <div class="postbox">
40
- <h3 class="hndle">'.$headline.'</h3>
41
- <div class="inside">
42
- <p>'.$body.'</p>
43
- </div>
44
- </div>
45
- ';
46
-
47
- // Box about donation
48
- $headline = _x('Donate to support development', 'Sidebar box', 'simple-history');
49
-
50
- $body = sprintf(
51
- _x('If you like and use Simple History you should <a href="%1$s">donate to keep this plugin free</a>.', 'Sidebar box', 'simple-history'),
52
- 'http://eskapism.se/sida/donate/'
53
- );
54
-
55
- $boxDonate = '
56
- <div class="postbox">
57
- <h3 class="hndle">'.$headline.'</h3>
58
- <div class="inside">
59
- <p>'.$body.'</p>
60
- </div>
61
- </div>
62
- ';
63
-
64
- // Box about review
65
- $headline = _x('Review this plugin if you like it', 'Sidebar box', 'simple-history');
66
-
67
- $body1 = sprintf(
68
- _x('If you like Simple History then please <a href="%1$s">give it a nice review over at wordpress.org</a>.', 'Sidebar box', 'simple-history'),
69
- 'https://wordpress.org/support/view/plugin-reviews/simple-history'
70
- );
71
-
72
- $body2 = _x('A good review will help new users find this plugin. And it will make the plugin author very happy :)', 'Sidebar box', 'simple-history');
73
-
74
- $boxReview = '
75
- <div class="postbox">
76
- <h3 class="hndle">'.$headline.'</h3>
77
- <div class="inside">
78
- <p>'.$body1.'</p>
79
- <p>'.$body2.'</p>
80
- </div>
81
- </div>
82
- ';
83
-
84
- // Box about tweeting and blogging
85
- /*
86
- $boxSocial = '
87
- <div class="postbox">
88
- <h3 class="hndle">Blog or tweet</h3>
89
- <div class="inside">
90
- <p>Yeah, how about that yo.</p>
91
- </div>
92
- </div>
93
- ';
94
- */
95
-
96
- // Box about possible events missing
97
- $boxMissingEvents = '
98
- <div class="postbox">
99
- <h3 class="hndle">Missing events?</h3>
100
- <div class="inside">
101
- <p>Do you think things are missing in the log? Let me know about it.</p>
102
- </div>
103
- </div>
104
- ';
105
- //echo $boxMissingEvents;
106
-
107
- $arrBoxes = array(
108
- "boxReview" => $boxReview,
109
- "boxDonate" => $boxDonate,
110
- "boxGithub" => $boxGithub,
111
- );
112
-
113
- /**
114
- * Filter the default boxes to output in the sidebar
115
- *
116
- * @since 2.0.17
117
- *
118
- * @param array $arrBoxes array with boxes to output. Check the key to determine which box is which.
119
- */
120
- $arrBoxes = apply_filters("simple_history/SidebarDropin/default_sidebar_boxes", $arrBoxes);
121
-
122
- //echo $arrBoxes[array_rand($arrBoxes)];
123
- echo implode("", $arrBoxes); // show all
124
-
125
- // Box to encourage people translate plugin
126
- $current_locale = get_locale();
127
- if ("en_US" != $current_locale) {
128
-
129
- /** WordPress Translation Install API */
130
- require_once ABSPATH . 'wp-admin/includes/translation-install.php';
131
-
132
- $translations = wp_get_available_translations();
133
-
134
- // This text does not need translation since is's only shown in English
135
- $boxTranslationTmpl = '
136
- <div class="postbox">
137
- <h3 class="hndle">Translate Simple History to %1$s</h3>
138
- <div class="inside">
139
-
140
- <p>
141
- It looks like Simple History is not yet translated to your language.
142
- </p>
143
-
144
- <p>
145
- If you\'re interested in translating it please check out the <a href="https://developer.wordpress.org/plugins/internationalization/localization/">localization</a> part of the Plugin Handbook for info on how to translate plugins.
146
- </p>
147
-
148
- <p>
149
- When you\'re done with your translation email it to me at <a href="mailto:par.thernstrom@gmail.com" rel="nofollow">par.thernstrom@gmail.com</a>
150
- or <a href="https://github.com/bonny/WordPress-Simple-History/" rel="nofollow">add a pull request</a>.
151
- </p>
152
- </div>
153
- </div>
154
- ';
155
-
156
- if (isset($translations[$current_locale])) {
157
-
158
- // Check if an existing text string returns something else, and that current lang is not en
159
- $teststring_translated = __("Just now", "simple-history");
160
- $teststring_untranslated = "Just now";
161
- if ($teststring_untranslated == $teststring_translated) {
162
- // strings are the same, so plugin probably not translated
163
- printf($boxTranslationTmpl, $translations[$current_locale]["english_name"]);
164
- }
165
-
166
- }
167
- }
168
-
169
- }
170
-
171
- public function example_output() {
172
- ?>
173
- <div class="postbox">
174
- <h3 class="hndle">Example title</h3>
175
- <div class="inside">
176
- <p>Example content. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inquit, dasne adolescenti veniam? Non laboro, inquit, de nomine. In quibus doctissimi illi veteres inesse quiddam caeleste et divinum putaverunt. Duo Reges: constructio interrete. Indicant pueri, in quibus ut in speculis natura cernitur. Quod ea non occurrentia fingunt, vincunt Aristonem; Quod quidem iam fit etiam in Academia. Aliter enim nosmet ipsos nosse non possumus.</p>
177
- </div>
178
- </div>
179
- <?php
180
- }
181
-
182
- public function enqueue_admin_scripts() {
183
-
184
- $file_url = plugin_dir_url(__FILE__);
185
-
186
- wp_enqueue_style("simple_history_SidebarDropin", $file_url . "SimpleHistorySidebarDropin.css", null, SimpleHistory::VERSION);
187
-
188
- }
189
-
190
- /**
191
- * Output the outline for the sidebar
192
- * Plugins and dropins simple use the filters to output contents to the sidebar
193
- * Example HTML code to generate meta box:
194
- *
195
- * <div class="postbox">
196
- * <h3 class="hndle">Title</h3>
197
- * <div class="inside">
198
- * <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inquit, dasne adolescenti veniam? Non laboro, inquit, de nomine. In quibus doctissimi illi veteres inesse quiddam caeleste et divinum putaverunt. Duo Reges: constructio interrete. Indicant pueri, in quibus ut in speculis natura cernitur. Quod ea non occurrentia fingunt, vincunt Aristonem; Quod quidem iam fit etiam in Academia. Aliter enim nosmet ipsos nosse non possumus.</p>
199
- * </div>
200
- * </div>
201
- *
202
- */
203
- public function output_sidebar_html() {
204
-
205
- ?>
206
- <div class="SimpleHistory__pageSidebar">
207
-
208
- <div class="metabox-holder">
209
-
210
- <?php
211
- /**
212
- * Allows to output HTML in sidebar
213
- *
214
- * @since 2.0.16
215
- */
216
- do_action("simple_history/dropin/sidebar/sidebar_html");
217
- ?>
218
- </div>
219
-
220
- </div>
221
- <?php
222
-
223
- }
224
-
225
- }// end class
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples.php CHANGED
@@ -3,36 +3,10 @@
3
  // No external calls allowed
4
  exit;
5
 
6
-
7
- /**
8
- * Misc
9
- */
10
-
11
- // Add $_GET, $_POST, and more info to each logged event
12
- define("SIMPLE_HISTORY_LOG_DEBUG", true);
13
-
14
-
15
  /**
16
  * Some examples of filter usage and so on
17
  */
18
 
19
- // Don't log failed logins
20
- add_filter("simple_history/simple_logger/log_message_key", function($doLog, $loggerSlug, $messageKey, $SimpleLoggerLogLevelsLevel, $context) {
21
-
22
- // Don't log login attempts to non existing users
23
- if ( "SimpleUserLogger" == $loggerSlug && "user_unknown_login_failed" == $messageKey ) {
24
- $doLog = false;
25
- }
26
-
27
- // Don't log failed logins to existing users
28
- if ( "SimpleUserLogger" == $loggerSlug && "user_login_failed" == $messageKey ) {
29
- $doLog = false;
30
- }
31
-
32
- return $doLog;
33
-
34
- }, 10, 5);
35
-
36
  // Never clear the log (default is 60 days)
37
  add_filter("simple_history/db_purge_days_interval", "__return_zero");
38
 
@@ -59,11 +33,11 @@ SimpleLogger()->debug("Ok, cron job is running!");
59
  // i.e. collapsing their entries into one expandable log item
60
  SimpleLogger()->info("This is a message sent to the log");
61
  SimpleLogger()->info("This is a message sent to the log");
62
-
63
  // Log entries can have placeholders and context
64
  // This makes log entried translatable and filterable
65
  SimpleLogger()->notice(
66
- "User {username} edited page {pagename}",
67
  array(
68
  "username" => "jessie",
69
  "pagename" => "My test page",
@@ -79,13 +53,13 @@ SimpleLogger()->notice(
79
  // in the log overview, even if the logged messages are different
80
  for ($i = 0; $i < rand(1, 50); $i++) {
81
  SimpleLogger()->notice("User {username} edited page {pagename}", array(
82
- "username" => "example_user_{$i}",
83
  "pagename" => "My test page",
84
  "_occasionsID" => "postID:24884,action:edited"
85
  ));
86
  }
87
 
88
- // Events can have different "initiators",
89
  // i.e. who was responsible for the logged event
90
  // Initiator "WORDPRESS" means that WordPress did something on it's own
91
  SimpleLogger()->info(
@@ -125,50 +99,3 @@ SimpleLogger()->info("Edited product '{pagename}'", array(
125
  "_userEmail" => "jessie@example.com",
126
  "_occasionsID" => "username:1,postID:24885,action:edited"
127
  ));
128
-
129
-
130
- // Test log cron things
131
- /*
132
- wp_schedule_event( time(), "hourly", "simple_history_cron_testhook");
133
- */
134
- /*
135
- wp_clear_scheduled_hook("simple_history_cron_testhook");
136
- add_action( 'simple_history_cron_testhook', 'simple_history_cron_testhook_function' );
137
- function simple_history_cron_testhook_function() {
138
- SimpleLogger()->info("This is a message inside a cron function");
139
- }
140
- */
141
-
142
- /*
143
- add_action("init", function() {
144
-
145
- global $wp_current_filter;
146
-
147
- $doing_cron = get_transient( 'doing_cron' );
148
- $const_doing_cron = defined('DOING_CRON') && DOING_CRON;
149
-
150
- if ($const_doing_cron) {
151
-
152
- $current_filter = current_filter();
153
-
154
- SimpleLogger()->info("This is a message inside init, trying to log crons", array(
155
- "doing_cron" => simpleHistory::json_encode($doing_cron),
156
- "current_filter" => $current_filter,
157
- "wp_current_filter" => $wp_current_filter,
158
- "wp_current_filter" => simpleHistory::json_encode( $wp_current_filter ),
159
- "const_doing_cron" => simpleHistory::json_encode($const_doing_cron)
160
- ));
161
-
162
- }
163
-
164
- }, 100);
165
- */
166
-
167
-
168
- /*
169
- add_action("init", function() {
170
-
171
- #SimpleLogger()->info("This is a regular info message" . time());
172
-
173
- }, 100);
174
- // */
3
  // No external calls allowed
4
  exit;
5
 
 
 
 
 
 
 
 
 
 
6
  /**
7
  * Some examples of filter usage and so on
8
  */
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  // Never clear the log (default is 60 days)
11
  add_filter("simple_history/db_purge_days_interval", "__return_zero");
12
 
33
  // i.e. collapsing their entries into one expandable log item
34
  SimpleLogger()->info("This is a message sent to the log");
35
  SimpleLogger()->info("This is a message sent to the log");
36
+
37
  // Log entries can have placeholders and context
38
  // This makes log entried translatable and filterable
39
  SimpleLogger()->notice(
40
+ "User {username} edited page {pagename}",
41
  array(
42
  "username" => "jessie",
43
  "pagename" => "My test page",
53
  // in the log overview, even if the logged messages are different
54
  for ($i = 0; $i < rand(1, 50); $i++) {
55
  SimpleLogger()->notice("User {username} edited page {pagename}", array(
56
+ "username" => "example_user_{$i}",
57
  "pagename" => "My test page",
58
  "_occasionsID" => "postID:24884,action:edited"
59
  ));
60
  }
61
 
62
+ // Events can have different "initiators",
63
  // i.e. who was responsible for the logged event
64
  // Initiator "WORDPRESS" means that WordPress did something on it's own
65
  SimpleLogger()->info(
99
  "_userEmail" => "jessie@example.com",
100
  "_occasionsID" => "username:1,postID:24885,action:edited"
101
  ));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.21
7
  Author: Pär Thernström
8
  Author URI: http://simple-history.com/
9
  License: GPL2
@@ -12,7 +12,7 @@ License: GPL2
12
  /* Copyright 2014 Pär Thernström (email: par.thernstrom@gmail.com)
13
 
14
  This program is free software; you can redistribute it and/or modify
15
- it under the terms of the GNU General Public License, version 2, as
16
  published by the Free Software Foundation.
17
 
18
  This program is distributed in the hope that it will be useful,
@@ -25,12 +25,9 @@ License: GPL2
25
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26
  */
27
 
28
- if ( ! defined( 'WPINC' ) ) {
29
- die;
30
- }
31
 
32
  if ( version_compare( phpversion(), "5.3", ">=") ) {
33
-
34
  /** Load required files */
35
  require_once(__DIR__ . "/SimpleHistory.php");
36
  require_once(__DIR__ . "/SimpleHistoryLogQuery.php");
@@ -47,22 +44,67 @@ if ( version_compare( phpversion(), "5.3", ">=") ) {
47
  $GLOBALS["simple_history"] = new SimpleHistory();
48
 
49
  } else {
50
-
51
  // user is running to old version of php, add admin notice about that
52
- add_action( 'admin_notices', 'simple_history_old_version_admin_notice' );
53
 
54
  function simple_history_old_version_admin_notice() {
55
  ?>
56
  <div class="updated error">
57
- <p><?php
58
- printf(
59
- __( 'Simple History is a great plugin, but to use it your server must have at least PHP 5.3 installed (you have version %s).', 'simple-history' ),
60
- phpversion()
61
- );
62
  ?></p>
63
  </div>
64
- <?php
65
-
66
  }
67
 
68
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.6
7
  Author: Pär Thernström
8
  Author URI: http://simple-history.com/
9
  License: GPL2
12
  /* Copyright 2014 Pär Thernström (email: par.thernstrom@gmail.com)
13
 
14
  This program is free software; you can redistribute it and/or modify
15
+ it under the terms of the GNU General Public License, version 2, as
16
  published by the Free Software Foundation.
17
 
18
  This program is distributed in the hope that it will be useful,
25
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26
  */
27
 
 
 
 
28
 
29
  if ( version_compare( phpversion(), "5.3", ">=") ) {
30
+
31
  /** Load required files */
32
  require_once(__DIR__ . "/SimpleHistory.php");
33
  require_once(__DIR__ . "/SimpleHistoryLogQuery.php");
44
  $GLOBALS["simple_history"] = new SimpleHistory();
45
 
46
  } else {
47
+
48
  // user is running to old version of php, add admin notice about that
49
+ add_action( 'admin_notices', 'simple_history_old_version_admin_notice' );
50
 
51
  function simple_history_old_version_admin_notice() {
52
  ?>
53
  <div class="updated error">
54
+ <p><?php
55
+ printf(
56
+ __( 'Simple History is a great plugin, but to use it your server must have at least PHP 5.3 installed (you have version %s).', 'simple-history' ),
57
+ phpversion()
58
+ );
59
  ?></p>
60
  </div>
61
+ <?php
 
62
  }
63
 
64
  }
65
+
66
+ // Test log cron things
67
+ /*
68
+ wp_schedule_event( time(), "hourly", "simple_history_cron_testhook");
69
+ */
70
+ /*
71
+ wp_clear_scheduled_hook("simple_history_cron_testhook");
72
+ add_action( 'simple_history_cron_testhook', 'simple_history_cron_testhook_function' );
73
+ function simple_history_cron_testhook_function() {
74
+ SimpleLogger()->info("This is a message inside a cron function");
75
+ }
76
+ */
77
+
78
+ /*
79
+ add_action("init", function() {
80
+
81
+ global $wp_current_filter;
82
+
83
+ $doing_cron = get_transient( 'doing_cron' );
84
+ $const_doing_cron = defined('DOING_CRON') && DOING_CRON;
85
+
86
+ if ($const_doing_cron) {
87
+
88
+ $current_filter = current_filter();
89
+
90
+ SimpleLogger()->info("This is a message inside init, trying to log crons", array(
91
+ "doing_cron" => simpleHistory::json_encode($doing_cron),
92
+ "current_filter" => $current_filter,
93
+ "wp_current_filter" => $wp_current_filter,
94
+ "wp_current_filter" => simpleHistory::json_encode( $wp_current_filter ),
95
+ "const_doing_cron" => simpleHistory::json_encode($const_doing_cron)
96
+ ));
97
+
98
+ }
99
+
100
+ }, 100);
101
+ */
102
+
103
+
104
+ /*
105
+ add_action("init", function() {
106
+
107
+ #SimpleLogger()->info("This is a regular info message" . time());
108
+
109
+ }, 100);
110
+ // */
js/scripts.js CHANGED
@@ -7,15 +7,15 @@ var simple_history = (function($) {
7
  var debug = function(what) {
8
 
9
  if (typeof what == "object") {
10
-
11
  var newWhat = "";
12
-
13
  _.each(what, function(val, key) {
14
  newWhat += key + ": " + val + "\n";
15
  });
16
-
17
  what = newWhat;
18
-
19
  }
20
 
21
  $(".SimpleHistoryLogitems__debug").append("<br>" + what);
@@ -168,9 +168,9 @@ var simple_history = (function($) {
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");
173
-
174
  this.logRows = new OccasionsLogRowsCollection([], {
175
  logRow: this.attributes.logRow,
176
  logRowID: logRowID,
@@ -188,9 +188,9 @@ var simple_history = (function($) {
188
  },
189
 
190
  render: function() {
191
-
192
  var $html = $([]);
193
-
194
  this.logRows.each(function(model) {
195
  var $li = $(model.get("html"));
196
  $li.addClass("SimpleHistoryLogitem--occasion");
@@ -198,7 +198,7 @@ var simple_history = (function($) {
198
  });
199
 
200
  this.$el.html($html);
201
-
202
  this.attributes.logRow.removeClass("SimpleHistoryLogitem--occasionsOpening").addClass("SimpleHistoryLogitem--occasionsOpened");
203
 
204
  this.$el.addClass("haveOccasionsAdded");
@@ -226,7 +226,7 @@ var simple_history = (function($) {
226
 
227
  this.template = $("#tmpl-simple-history-logitems-modal").html();
228
  this.show();
229
-
230
  this.listenTo(this.model, "change", this.render);
231
 
232
  // also close on esc
@@ -247,14 +247,14 @@ var simple_history = (function($) {
247
  show: function() {
248
 
249
  var $modalEl = $(".SimpleHistory-modal");
250
-
251
  if (!$modalEl.length) {
252
  $modalEl = $(this.template);
253
  $modalEl.appendTo("body");
254
  }
255
 
256
  this.setElement($modalEl);
257
-
258
  var $modalContentEl = $modalEl.find(".SimpleHistory-modal__content");
259
  $modalContentEl.addClass("SimpleHistory-modal__content--enter");
260
 
@@ -265,13 +265,13 @@ var simple_history = (function($) {
265
  },
266
 
267
  close: function() {
268
-
269
  var $modalContentEl = this.$el.find(".SimpleHistory-modal__content");
270
  $modalContentEl.addClass("SimpleHistory-modal__content--leave");
271
-
272
  // Force repaint before adding active class
273
  var offsetHeight = $modalContentEl.get(0).offsetHeight;
274
-
275
  $modalContentEl.addClass("SimpleHistory-modal__content--leave-active");
276
  this.$el.addClass("SimpleHistory-modal__leave-active");
277
 
@@ -287,7 +287,7 @@ var simple_history = (function($) {
287
  },
288
 
289
  render: function() {
290
-
291
  var $modalContentInnerEl = this.$el.find(".SimpleHistory-modal__contentInner");
292
  var logRowLI = this.model.get("data").log_rows[0];
293
  $modalContentInnerEl.html(logRowLI);
@@ -297,9 +297,9 @@ var simple_history = (function($) {
297
  });
298
 
299
  var RowsView = Backbone.View.extend({
300
-
301
  initialize: function() {
302
-
303
  this.collection.on("reset", this.render, this);
304
  this.collection.on("reload", this.onReload, this);
305
  this.collection.on("reloadDone", this.onReloadDone, this);
@@ -313,8 +313,6 @@ var simple_history = (function($) {
313
 
314
  onReload: function() {
315
 
316
- $(document).trigger("SimpleHistory:logReloadStart");
317
-
318
  $("html").addClass("SimpleHistory-isLoadingPage");
319
 
320
  },
@@ -328,7 +326,7 @@ var simple_history = (function($) {
328
  // Add message if no hits
329
  $mainViewElm.removeClass("SimpleHistory--hasNoHits");
330
  if (! this.collection.length ) {
331
-
332
  $mainViewElm.addClass("SimpleHistory--hasNoHits");
333
 
334
  var noHitsClass = "SimpleHistoryLogitems__noHits";
@@ -344,7 +342,7 @@ var simple_history = (function($) {
344
  ;
345
 
346
  } // add msg
347
-
348
  },
349
 
350
  events: {
@@ -365,7 +363,7 @@ var simple_history = (function($) {
365
  var $target = $(e.target);
366
  var $logRow = $target.closest(".SimpleHistoryLogitem");
367
  var logRowID = $logRow.data("rowId");
368
-
369
  Backbone.history.navigate("item/" + logRowID, { trigger: true });
370
 
371
  },
@@ -377,7 +375,7 @@ var simple_history = (function($) {
377
  var $target = $(e.target);
378
  var $logRow = $target.closest(".SimpleHistoryLogitem");
379
  var $occasionsElm = $("<li class='SimpleHistoryLogitem__occasionsItemsWrap'><ul class='SimpleHistoryLogitem__occasionsItems'/></li>");
380
-
381
  $logRow.after($occasionsElm);
382
 
383
  this.occasionsView = new OccasionsView({
@@ -395,7 +393,7 @@ var simple_history = (function($) {
395
  this.collection.each(function(model) {
396
  html += model.get("html");
397
  });
398
-
399
  this.$el.html( html );
400
 
401
  // Rendering of log rows items is done
@@ -408,6 +406,8 @@ var simple_history = (function($) {
408
  var PaginationView = Backbone.View.extend({
409
 
410
  initialize: function() {
 
 
411
 
412
  $(document).keydown({ view: this }, this.keyboardNav);
413
 
@@ -433,12 +433,6 @@ var simple_history = (function($) {
433
  return;
434
  }
435
 
436
- // Don't nav away if a text input (like the search box) is selected
437
- var $target = $(e.target);
438
- if ($target.is("input")) {
439
- return;
440
- }
441
-
442
  var paged;
443
 
444
  if (e.keyCode == 37) {
@@ -459,7 +453,7 @@ var simple_history = (function($) {
459
 
460
  // keycode 13 = enter
461
  if (e.keyCode == 13) {
462
-
463
  var $target = $(e.target);
464
  var paged = parseInt( $target.val() );
465
 
@@ -479,7 +473,7 @@ var simple_history = (function($) {
479
  },
480
 
481
  navigateArrow: function(e) {
482
-
483
  e.preventDefault();
484
  var $target = $(e.target);
485
 
@@ -513,7 +507,7 @@ var simple_history = (function($) {
513
  }
514
 
515
  this.fetchPage(paged);
516
-
517
  },
518
 
519
  /**
@@ -522,8 +516,6 @@ var simple_history = (function($) {
522
  */
523
  fetchPage: function(paged) {
524
 
525
- $(document).trigger("SimpleHistory:logReloadStart");
526
-
527
  $("html").addClass("SimpleHistory-isLoadingPage");
528
 
529
  var url_data = {
@@ -551,8 +543,8 @@ var simple_history = (function($) {
551
 
552
  render: function() {
553
 
554
- var compiled = wp.template("simple-history-logitems-pagination");
555
-
556
  this.$el.html( compiled({
557
  min_id: this.collection.min_id,
558
  max_id: this.collection.max_id,
@@ -569,7 +561,7 @@ var simple_history = (function($) {
569
  });
570
 
571
  var MainView = Backbone.View.extend({
572
-
573
  el: ".SimpleHistoryGui",
574
 
575
  initialize: function() {
@@ -591,7 +583,7 @@ var simple_history = (function($) {
591
  this.logRowsCollection = new LogRowsCollection([], {
592
  mainView: this,
593
  });
594
-
595
  this.rowsView = new RowsView({
596
  el: this.$el.find(".SimpleHistoryLogitems"),
597
  collection: this.logRowsCollection
@@ -637,7 +629,7 @@ var simple_history = (function($) {
637
  },
638
 
639
  item: function(logRowID) {
640
-
641
  var detailsModel = new DetailsModel({
642
  id: logRowID
643
  });
@@ -661,9 +653,9 @@ var simple_history = (function($) {
661
  // Init MainView on domReady
662
  // This is to make sure dropins and plugins have been loaded
663
  $(document).ready(function() {
664
-
665
  mainView.manualInitialize();
666
-
667
  });
668
 
669
  return mainView;
@@ -671,7 +663,7 @@ var simple_history = (function($) {
671
  })(jQuery);
672
 
673
  jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
674
-
675
  if (confirm(simple_history_script_vars.settingsConfirmClearLog)) {
676
  return;
677
  } else {
@@ -679,3 +671,4 @@ jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
679
  }
680
 
681
  });
 
7
  var debug = function(what) {
8
 
9
  if (typeof what == "object") {
10
+
11
  var newWhat = "";
12
+
13
  _.each(what, function(val, key) {
14
  newWhat += key + ": " + val + "\n";
15
  });
16
+
17
  what = newWhat;
18
+
19
  }
20
 
21
  $(".SimpleHistoryLogitems__debug").append("<br>" + what);
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");
173
+
174
  this.logRows = new OccasionsLogRowsCollection([], {
175
  logRow: this.attributes.logRow,
176
  logRowID: logRowID,
188
  },
189
 
190
  render: function() {
191
+
192
  var $html = $([]);
193
+
194
  this.logRows.each(function(model) {
195
  var $li = $(model.get("html"));
196
  $li.addClass("SimpleHistoryLogitem--occasion");
198
  });
199
 
200
  this.$el.html($html);
201
+
202
  this.attributes.logRow.removeClass("SimpleHistoryLogitem--occasionsOpening").addClass("SimpleHistoryLogitem--occasionsOpened");
203
 
204
  this.$el.addClass("haveOccasionsAdded");
226
 
227
  this.template = $("#tmpl-simple-history-logitems-modal").html();
228
  this.show();
229
+
230
  this.listenTo(this.model, "change", this.render);
231
 
232
  // also close on esc
247
  show: function() {
248
 
249
  var $modalEl = $(".SimpleHistory-modal");
250
+
251
  if (!$modalEl.length) {
252
  $modalEl = $(this.template);
253
  $modalEl.appendTo("body");
254
  }
255
 
256
  this.setElement($modalEl);
257
+
258
  var $modalContentEl = $modalEl.find(".SimpleHistory-modal__content");
259
  $modalContentEl.addClass("SimpleHistory-modal__content--enter");
260
 
265
  },
266
 
267
  close: function() {
268
+
269
  var $modalContentEl = this.$el.find(".SimpleHistory-modal__content");
270
  $modalContentEl.addClass("SimpleHistory-modal__content--leave");
271
+
272
  // Force repaint before adding active class
273
  var offsetHeight = $modalContentEl.get(0).offsetHeight;
274
+
275
  $modalContentEl.addClass("SimpleHistory-modal__content--leave-active");
276
  this.$el.addClass("SimpleHistory-modal__leave-active");
277
 
287
  },
288
 
289
  render: function() {
290
+
291
  var $modalContentInnerEl = this.$el.find(".SimpleHistory-modal__contentInner");
292
  var logRowLI = this.model.get("data").log_rows[0];
293
  $modalContentInnerEl.html(logRowLI);
297
  });
298
 
299
  var RowsView = Backbone.View.extend({
300
+
301
  initialize: function() {
302
+
303
  this.collection.on("reset", this.render, this);
304
  this.collection.on("reload", this.onReload, this);
305
  this.collection.on("reloadDone", this.onReloadDone, this);
313
 
314
  onReload: function() {
315
 
 
 
316
  $("html").addClass("SimpleHistory-isLoadingPage");
317
 
318
  },
326
  // Add message if no hits
327
  $mainViewElm.removeClass("SimpleHistory--hasNoHits");
328
  if (! this.collection.length ) {
329
+
330
  $mainViewElm.addClass("SimpleHistory--hasNoHits");
331
 
332
  var noHitsClass = "SimpleHistoryLogitems__noHits";
342
  ;
343
 
344
  } // add msg
345
+
346
  },
347
 
348
  events: {
363
  var $target = $(e.target);
364
  var $logRow = $target.closest(".SimpleHistoryLogitem");
365
  var logRowID = $logRow.data("rowId");
366
+
367
  Backbone.history.navigate("item/" + logRowID, { trigger: true });
368
 
369
  },
375
  var $target = $(e.target);
376
  var $logRow = $target.closest(".SimpleHistoryLogitem");
377
  var $occasionsElm = $("<li class='SimpleHistoryLogitem__occasionsItemsWrap'><ul class='SimpleHistoryLogitem__occasionsItems'/></li>");
378
+
379
  $logRow.after($occasionsElm);
380
 
381
  this.occasionsView = new OccasionsView({
393
  this.collection.each(function(model) {
394
  html += model.get("html");
395
  });
396
+
397
  this.$el.html( html );
398
 
399
  // Rendering of log rows items is done
406
  var PaginationView = Backbone.View.extend({
407
 
408
  initialize: function() {
409
+
410
+ this.template = $("#tmpl-simple-history-logitems-pagination").html();
411
 
412
  $(document).keydown({ view: this }, this.keyboardNav);
413
 
433
  return;
434
  }
435
 
 
 
 
 
 
 
436
  var paged;
437
 
438
  if (e.keyCode == 37) {
453
 
454
  // keycode 13 = enter
455
  if (e.keyCode == 13) {
456
+
457
  var $target = $(e.target);
458
  var paged = parseInt( $target.val() );
459
 
473
  },
474
 
475
  navigateArrow: function(e) {
476
+
477
  e.preventDefault();
478
  var $target = $(e.target);
479
 
507
  }
508
 
509
  this.fetchPage(paged);
510
+
511
  },
512
 
513
  /**
516
  */
517
  fetchPage: function(paged) {
518
 
 
 
519
  $("html").addClass("SimpleHistory-isLoadingPage");
520
 
521
  var url_data = {
543
 
544
  render: function() {
545
 
546
+ var compiled = _.template(this.template);
547
+
548
  this.$el.html( compiled({
549
  min_id: this.collection.min_id,
550
  max_id: this.collection.max_id,
561
  });
562
 
563
  var MainView = Backbone.View.extend({
564
+
565
  el: ".SimpleHistoryGui",
566
 
567
  initialize: function() {
583
  this.logRowsCollection = new LogRowsCollection([], {
584
  mainView: this,
585
  });
586
+
587
  this.rowsView = new RowsView({
588
  el: this.$el.find(".SimpleHistoryLogitems"),
589
  collection: this.logRowsCollection
629
  },
630
 
631
  item: function(logRowID) {
632
+
633
  var detailsModel = new DetailsModel({
634
  id: logRowID
635
  });
653
  // Init MainView on domReady
654
  // This is to make sure dropins and plugins have been loaded
655
  $(document).ready(function() {
656
+
657
  mainView.manualInitialize();
658
+
659
  });
660
 
661
  return mainView;
663
  })(jQuery);
664
 
665
  jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
666
+
667
  if (confirm(simple_history_script_vars.settingsConfirmClearLog)) {
668
  return;
669
  } else {
671
  }
672
 
673
  });
674
+
languages/simple-history-da_DK.mo DELETED
Binary file
languages/simple-history-da_DK.po DELETED
@@ -1,1790 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Simple History v2.0.12\n"
4
- "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
5
- "POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
6
- "PO-Revision-Date: 2015-02-03 08:47+0100\n"
7
- "Last-Translator: Thomas Blomberg Hansen <thomas@blomberg.it>\n"
8
- "Language-Team: \n"
9
- "Language: da_DK\n"
10
- "MIME-Version: 1.0\n"
11
- "Content-Type: text/plain; charset=UTF-8\n"
12
- "Content-Transfer-Encoding: 8bit\n"
13
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
- "X-Generator: Poedit 1.7.1\n"
15
- "X-Poedit-SourceCharset: utf-8\n"
16
- "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
17
- "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
18
- "X-Poedit-Basepath: ../\n"
19
- "X-Textdomain-Support: yes\n"
20
- "X-Poedit-SearchPath-0: .\n"
21
-
22
- # @ simple-history
23
- #: SimpleHistory.php:504 SimpleHistory.php:765
24
- msgid "Settings"
25
- msgstr "Indstillinger"
26
-
27
- # @ simple-history
28
- #: SimpleHistory.php:515
29
- msgid "Log (debug)"
30
- msgstr "Log (debug)"
31
-
32
- # @ simple-history
33
- #: SimpleHistory.php:520
34
- msgid "Styles example (debug)"
35
- msgstr "Styles eksempel (debug)"
36
-
37
- # @ simple-history
38
- #. Plugin Name of the plugin/theme
39
- #: SimpleHistory.php:780
40
- msgid "Simple History"
41
- msgstr "Simpel historik"
42
-
43
- # @ simple-history
44
- #: SimpleHistory.php:856
45
- msgid "Remove all log items?"
46
- msgstr "Fjern alle log elementer?"
47
-
48
- # @ simple-history
49
- #: SimpleHistory.php:858
50
- msgid "Go to the first page"
51
- msgstr "Gå til den første side"
52
-
53
- # @ simple-history
54
- #: SimpleHistory.php:859
55
- msgid "Go to the previous page"
56
- msgstr "Gå til den forrige side"
57
-
58
- # @ simple-history
59
- #: SimpleHistory.php:860
60
- msgid "Go to the next page"
61
- msgstr "Gå til den næste side"
62
-
63
- # @ simple-history
64
- #: SimpleHistory.php:861
65
- msgid "Go to the last page"
66
- msgstr "Gå til den sidste side"
67
-
68
- # @ simple-history
69
- #: SimpleHistory.php:862
70
- msgid "Current page"
71
- msgstr "Nuværende side"
72
-
73
- # @ simple-history
74
- #: SimpleHistory.php:864
75
- msgid "Oups, the log could not be loaded right now."
76
- msgstr "Ups, loggen kunne ikke indlæses lige nu."
77
-
78
- # @ simple-history
79
- #: SimpleHistory.php:865
80
- msgid "Your search did not match any history events."
81
- msgstr "Din søgning gav ingen resultater."
82
-
83
- # @ simple-history
84
- #: SimpleHistory.php:1149 SimpleHistory.php:1250
85
- msgid "Simple History Settings"
86
- msgstr "Simpel Historik opsætning"
87
-
88
- # @ simple-history
89
- #: SimpleHistory.php:1183
90
- msgid "No valid callback found"
91
- msgstr "Ingen gyldig callback fundet "
92
-
93
- # @ simple-history
94
- #: SimpleHistory.php:1271
95
- msgid "Cleared database"
96
- msgstr "Nulstillet database"
97
-
98
- # @ simple-history
99
- #: SimpleHistory.php:1298
100
- msgid "Show history"
101
- msgstr "Vis historik"
102
-
103
- # @ simple-history
104
- #: SimpleHistory.php:1311
105
- msgid "Number of items per page"
106
- msgstr "Antal elementer pr. side"
107
-
108
- # @ simple-history
109
- #: SimpleHistory.php:1323
110
- msgid "Clear log"
111
- msgstr "Nulstil log"
112
-
113
- # @ simple-history
114
- #: SimpleHistory.php:1462
115
- msgid "on the dashboard"
116
- msgstr "på kontrolpanelet"
117
-
118
- # @ simple-history
119
- #: SimpleHistory.php:1467
120
- msgid "as a page under the dashboard menu"
121
- msgstr "som et undermenupunkt til Kontrolpanelet "
122
-
123
- # @ simple-history
124
- #: SimpleHistory.php:1483
125
- msgid "Items in the database are automatically removed after %1$s days."
126
- msgstr "Elementer i databasen fjernes automatisk efter %1$s dage."
127
-
128
- # @ simple-history
129
- #: SimpleHistory.php:1485
130
- msgid "Items in the database are kept forever."
131
- msgstr "Elementer i databasen gemmes for evigt."
132
-
133
- # @ simple-history
134
- #: SimpleHistory.php:1489
135
- msgid "Clear log now"
136
- msgstr "Nulstil log nu"
137
-
138
- #: SimpleHistory.php:1533
139
- msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
140
- msgstr ""
141
- "Loggen for Simple Historik blev nulstillet ({num_rows} rækker blev fjernet)."
142
-
143
- #: SimpleHistory.php:1793
144
- msgid "+%1$s similar event"
145
- msgid_plural "+%1$s similar events"
146
- msgstr[0] "+%1$s tilsvarende event"
147
- msgstr[1] "+%1$s tilsvarende events"
148
-
149
- # @ simple-history
150
- #: SimpleHistory.php:1800
151
- msgid "Loading…"
152
- msgstr "Indlæser..."
153
-
154
- # @ simple-history
155
- #: SimpleHistory.php:1807
156
- msgid "Showing %1$s more"
157
- msgstr "%1$s flere vises"
158
-
159
- # @ simple-history
160
- #: SimpleHistory.php:1826
161
- msgid "Context data"
162
- msgstr "Kontekst data"
163
-
164
- # @ simple-history
165
- #: SimpleHistory.php:1827
166
- msgid "This is potentially useful meta data that a logger has saved."
167
- msgstr "Dette er potentielt brugbar meta data, som en logger har gemt."
168
-
169
- # @ simple-history
170
- #: SimpleHistory.php:2302
171
- msgid "No events today so far."
172
- msgstr "Endnu ingen events i dag."
173
-
174
- #: SimpleHistory.php:2321
175
- msgid "One event today from one user."
176
- msgstr "Et event i dag, fra én bruger."
177
-
178
- #: SimpleHistory.php:2327
179
- msgid "One event today from one source."
180
- msgstr "Et event i dag, fra én kilde"
181
-
182
- # @ simple-history
183
- #: SimpleHistory.php:2333
184
- msgid "%1$d events today from one user."
185
- msgstr "%1$d events i dag fra én bruger."
186
-
187
- # @ simple-history
188
- #: SimpleHistory.php:2339
189
- msgid "%1$d events today from %2$d users."
190
- msgstr "%1$d events i dag fra %2$d brugere."
191
-
192
- #: SimpleHistory.php:2345 SimpleHistory.php:2351
193
- msgid "%1$d events today from one user and one other source."
194
- msgstr "%1$d events i dag, fra én bruger og én kilde"
195
-
196
- #: SimpleHistory.php:2357
197
- msgid "%1$d events today from one user and %3$d other sources."
198
- msgstr "%1$d events i dag, fra én bruger og %3$d kilder."
199
-
200
- #: SimpleHistory.php:2363
201
- msgid "%1$s events today from %2$d users and %3$d other sources."
202
- msgstr "%1$s events i dag, fra %2$d brugere og %3$d kilder."
203
-
204
- # @ simple-history
205
- #: dropins/SimpleHistoryDonateDropin.php:36
206
- msgid "Donate"
207
- msgstr "Donér"
208
-
209
- # @ simple-history
210
- #: dropins/SimpleHistoryDonateDropin.php:72
211
- msgid ""
212
- "If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
213
- "href=\"%2$s\">buy me something from my Amazon wish list</a>."
214
- msgstr ""
215
- "Hvis du synes Simpel Historik er brugbar, så kan du <a href=\"%1$s\">donére</"
216
- "a> eller <a href=\"%2$s\">købe noget til mig på min Amazon wish list</a>."
217
-
218
- # @ simple-history
219
- #: dropins/SimpleHistoryFilterDropin.php:44
220
- msgid "Filter history"
221
- msgstr "Filtrer historik"
222
-
223
- #: dropins/SimpleHistoryFilterDropin.php:48
224
- #: dropins/SimpleHistoryFilterDropin.php:159
225
- msgid "Search events"
226
- msgstr "Søg i events"
227
-
228
- # @ simple-history
229
- #: dropins/SimpleHistoryFilterDropin.php:56
230
- msgid "All log levels"
231
- msgstr "Alle log niveauer"
232
-
233
- # @ simple-history
234
- #: dropins/SimpleHistoryFilterDropin.php:70
235
- msgid "All messages"
236
- msgstr "Alle beskeder"
237
-
238
- # @ simple-history
239
- #: dropins/SimpleHistoryFilterDropin.php:124
240
- msgid "All users"
241
- msgstr "Alle brugere"
242
-
243
- # @ simple-history
244
- #: dropins/SimpleHistoryFilterDropin.php:145
245
- msgid "All dates"
246
- msgstr "Alle datoer"
247
-
248
- #: dropins/SimpleHistoryFilterDropin.php:168
249
- msgid "Search"
250
- msgstr "Søg"
251
-
252
- # @ simple-history
253
- #: dropins/SimpleHistoryNewRowsNotifier.php:80
254
- msgid "1 new row"
255
- msgid_plural "%d new rows"
256
- msgstr[0] "1 ny række"
257
- msgstr[1] "%d nye rækker"
258
-
259
- # @ simple-history
260
- #: dropins/SimpleHistoryRSSDropin.php:55
261
- msgid "Address"
262
- msgstr "Adresse"
263
-
264
- # @ simple-history
265
- #: dropins/SimpleHistoryRSSDropin.php:64
266
- msgid "Regenerate"
267
- msgstr "Regenerere"
268
-
269
- # @ simple-history
270
- #: dropins/SimpleHistoryRSSDropin.php:81
271
- msgid "Created new secret RSS address"
272
- msgstr "Oprettet ny RSS url"
273
-
274
- # @ simple-history
275
- #: dropins/SimpleHistoryRSSDropin.php:148
276
- #: dropins/SimpleHistoryRSSDropin.php:259
277
- msgid "History for %s"
278
- msgstr "Historik fra %s"
279
-
280
- # @ simple-history
281
- #: dropins/SimpleHistoryRSSDropin.php:149
282
- #: dropins/SimpleHistoryRSSDropin.php:260
283
- msgid "WordPress History for %s"
284
- msgstr "WordPress historik fra %s"
285
-
286
- # begivenhed er måske ikke det rigtige ord.
287
- #: dropins/SimpleHistoryRSSDropin.php:196
288
- msgid "+%1$s occasion"
289
- msgid_plural "+%1$s occasions"
290
- msgstr[0] "+%1$s begivenhed"
291
- msgstr[1] "+%1$s begivenheder"
292
-
293
- # @ simple-history
294
- #: dropins/SimpleHistoryRSSDropin.php:263
295
- msgid "Wrong RSS secret"
296
- msgstr "Forkert RSS nøgle"
297
-
298
- # @ simple-history
299
- #: dropins/SimpleHistoryRSSDropin.php:264
300
- msgid ""
301
- "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
302
- "settings for current link to the RSS feed."
303
- msgstr ""
304
- "Din RSS nøgle i Simpel Historik RSS feed'et er forkert. Du kan finde den "
305
- "rigtige url under Indstillinger -> Simpel Historik."
306
-
307
- # @ simple-history
308
- #: dropins/SimpleHistoryRSSDropin.php:315
309
- msgid ""
310
- "You can generate a new address for the RSS feed. This is useful if you think "
311
- "that the address has fallen into the wrong hands."
312
- msgstr ""
313
- "Du kan generere en ny RSS feed url. Dette kan være nyttigt, hvis du "
314
- "mistænker at url'en er faldet i de forkerte hænder."
315
-
316
- # @ simple-history
317
- #: dropins/SimpleHistoryRSSDropin.php:318
318
- msgid "Generate new address"
319
- msgstr "Generere ny url"
320
-
321
- # @ simple-history
322
- #: dropins/SimpleHistoryRSSDropin.php:346
323
- msgid ""
324
- "Simple History has a RSS feed which you can subscribe to and receive log "
325
- "updates. Make sure you only share the feed with people you trust, since it "
326
- "can contain sensitive or confidential information."
327
- msgstr ""
328
- "Simpel Historik har et RSS feed, som du kan abonnere på og modtage log "
329
- "opdateringer. Del kun dette feed med personer du stoler på, da det kan "
330
- "indeholde følsomme eller fortrolige informationer."
331
-
332
- # @ simple-history
333
- #: dropins/SimpleHistorySettingsLogtestDropin.php:20
334
- msgid "Test data (debug)"
335
- msgstr "Test data (debug)"
336
-
337
- # @ simple-history
338
- #: dropins/SimpleHistorySettingsStatsDropin.php:27
339
- msgid "Stats"
340
- msgstr "Statistik"
341
-
342
- # @ simple-history
343
- #: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
344
- msgid "Just now"
345
- msgstr "Lige nu"
346
-
347
- # @ simple-history
348
- #: index.php:59
349
- msgid ""
350
- "Simple History is a great plugin, but to use it your server must have at "
351
- "least PHP 5.3 installed (you have version %s)."
352
- msgstr ""
353
- "Simpel Historik er et fantastisk plugin, men for at bruge det, skal din "
354
- "server have PHP 5.3 eller nyere installeret (din server har version %s "
355
- "installeret)."
356
-
357
- # @ simple-history
358
- #: loggers/SimpleCommentsLogger.php:685
359
- msgid "Spam"
360
- msgstr "Spam"
361
-
362
- # @ simple-history
363
- #: loggers/SimpleCommentsLogger.php:687
364
- msgid "Approved"
365
- msgstr "Godkendt"
366
-
367
- # @ simple-history
368
- #: loggers/SimpleCommentsLogger.php:689
369
- msgid "Pending"
370
- msgstr "Afventer"
371
-
372
- # @ simple-history
373
- #: loggers/SimpleCommentsLogger.php:703
374
- msgid "Trackback"
375
- msgstr "Trackback"
376
-
377
- # @ simple-history
378
- #: loggers/SimpleCommentsLogger.php:705
379
- msgid "Pingback"
380
- msgstr "Pingback"
381
-
382
- # @ simple-history
383
- #: loggers/SimpleCommentsLogger.php:707
384
- msgid "Comment"
385
- msgstr "Kommentar"
386
-
387
- # @ simple-history
388
- #: loggers/SimpleCoreUpdatesLogger.php:29
389
- msgid "Updated WordPress from {prev_version} to {new_version}"
390
- msgstr "Opdaterede WordPress fra {prev_version} til {new_version}"
391
-
392
- # @ simple-history
393
- #: loggers/SimpleCoreUpdatesLogger.php:30
394
- msgid "WordPress auto-updated from {prev_version} to {new_version}"
395
- msgstr "WordPress auto-opdaterede fra {prev_version} til {new_version}"
396
-
397
- # @ simple-history
398
- #: loggers/SimpleExportLogger.php:23
399
- msgid "Created XML export"
400
- msgstr "Genereret XML eksport"
401
-
402
- # @ simple-history
403
- #: loggers/SimpleLegacyLogger.php:88
404
- msgid "By %s"
405
- msgstr "af %s"
406
-
407
- # @ simple-history
408
- #: loggers/SimpleLegacyLogger.php:93
409
- msgid "%d occasions"
410
- msgstr "%d begivenheder"
411
-
412
- # @ simple-history
413
- #: loggers/SimpleLogger.php:203
414
- msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
415
- msgstr "Slettet bruger (havde ID %1$s, E-mail %2$s, brugernavn %3$s)"
416
-
417
- # @ simple-history
418
- #: loggers/SimpleLogger.php:218
419
- msgid "Anonymous web user"
420
- msgstr "Anonym besøgende"
421
-
422
- # @ simple-history
423
- #: loggers/SimpleLogger.php:226
424
- msgid "Anonymous user from %1$s"
425
- msgstr "Anonym bruger fra %1$s"
426
-
427
- # @ simple-history
428
- #. translators: Date format for log row header, see http:php.net/date
429
- #: loggers/SimpleLogger.php:301
430
- msgid "M j, Y \\a\\t G:i"
431
- msgstr "j. F Y \\k\\l\\. H:i"
432
-
433
- # @ simple-history
434
- #. translators: 1: last modified date and time in human time diff-format
435
- #: loggers/SimpleLogger.php:309
436
- msgid "%1$s ago"
437
- msgstr "%1$s siden"
438
-
439
- # @ simple-history
440
- #: loggers/SimpleMediaLogger.php:23
441
- msgid "Created {post_type} \"{attachment_title}\""
442
- msgstr "Tilføjet {post_type} \"{attachment_title}\""
443
-
444
- # @ simple-history
445
- #: loggers/SimpleMediaLogger.php:24
446
- msgid "Edited {post_type} \"{attachment_title}\""
447
- msgstr "Redigeret {post_type} \"{attachment_title}\""
448
-
449
- # @ simple-history
450
- #: loggers/SimpleMediaLogger.php:25
451
- msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
452
- msgstr "Slettet {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
453
-
454
- # @ simple-history
455
- #: loggers/SimpleMediaLogger.php:81
456
- msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
457
- msgstr ""
458
- "Redigeret {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
459
-
460
- # @ simple-history
461
- #: loggers/SimpleMediaLogger.php:85
462
- msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
463
- msgstr ""
464
- "Uploadet {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
465
-
466
- # @ simple-history
467
- #: loggers/SimpleMediaLogger.php:197
468
- msgid "{attachment_thumb}"
469
- msgstr "{attachment_thumb}"
470
-
471
- # @ simple-history
472
- #: loggers/SimpleMediaLogger.php:206
473
- msgid "{attachment_size_format}"
474
- msgstr "{attachment_size_format}"
475
-
476
- # @ simple-history
477
- #: loggers/SimpleMediaLogger.php:207
478
- msgid "{attachment_filetype_extension}"
479
- msgstr "{attachment_filetype_extension}"
480
-
481
- # @ simple-history
482
- #: loggers/SimpleMediaLogger.php:209
483
- msgid "{full_image_width} × {full_image_height}"
484
- msgstr "{full_image_width} × {full_image_height}"
485
-
486
- # @ simple-history
487
- #: loggers/SimpleMenuLogger.php:23
488
- msgid "Created menu \"{menu_name}\""
489
- msgstr "Tilføjet menu \"{menu_name}\""
490
-
491
- # @ simple-history
492
- #: loggers/SimpleMenuLogger.php:24
493
- msgid "Edited menu \"{menu_name}\""
494
- msgstr "Redigeret menu \"{menu_name}\""
495
-
496
- # @ simple-history
497
- #: loggers/SimpleMenuLogger.php:25
498
- msgid "Deleted menu \"{menu_name}\""
499
- msgstr "Slettet menu \"{menu_name}\""
500
-
501
- # @ simple-history
502
- #: loggers/SimpleMenuLogger.php:26
503
- msgid "Edited a menu item"
504
- msgstr "Redigerede et menupunkt "
505
-
506
- # @ simple-history
507
- #: loggers/SimpleMenuLogger.php:27
508
- msgid "Updated menu locations"
509
- msgstr "Opdateret menu områder"
510
-
511
- # @ simple-history
512
- #: loggers/SimpleOptionsLogger.php:140
513
- msgid "Updated option \"{option}\""
514
- msgstr "Opdateret indstlling \"{option}\""
515
-
516
- # @ simple-history
517
- #: loggers/SimpleOptionsLogger.php:242 loggers/SimpleThemeLogger.php:570
518
- msgid "New value"
519
- msgstr "Ny værdi"
520
-
521
- # @ simple-history
522
- #: loggers/SimpleOptionsLogger.php:253 loggers/SimpleThemeLogger.php:582
523
- msgid "Old value"
524
- msgstr "Gammel værdi"
525
-
526
- # @ simple-history
527
- #: loggers/SimpleOptionsLogger.php:268 loggers/SimpleOptionsLogger.php:285
528
- msgid "Settings page"
529
- msgstr "Indstillinger side"
530
-
531
- # @ simple-history
532
- #: loggers/SimplePostLogger.php:30
533
- msgid "Created {post_type} \"{post_title}\""
534
- msgstr "Tilføjet {post_type} \"{post_title}\""
535
-
536
- # @ simple-history
537
- #: loggers/SimplePostLogger.php:31
538
- msgid "Updated {post_type} \"{post_title}\""
539
- msgstr "Opdaterede {post_type} \"{post_title}\""
540
-
541
- # @ simple-history
542
- #: loggers/SimplePostLogger.php:32
543
- msgid "Restored {post_type} \"{post_title}\" from trash"
544
- msgstr "Gendannede {post_type} \"{post_title}\" fra papirkurven"
545
-
546
- # @ simple-history
547
- #: loggers/SimplePostLogger.php:33 loggers/SimplePostLogger.php:236
548
- msgid "Deleted {post_type} \"{post_title}\""
549
- msgstr "Slettede {post_type} \"{post_title}\""
550
-
551
- # @ simple-history
552
- #: loggers/SimplePostLogger.php:34
553
- msgid "Moved {post_type} \"{post_title}\" to the trash"
554
- msgstr "Flyttede {post_type} \"{post_title}\" til papirkurven"
555
-
556
- # @ simple-history
557
- #: loggers/SimplePostLogger.php:232
558
- msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
559
- msgstr "Opdaterede {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
560
-
561
- # @ simple-history
562
- #: loggers/SimplePostLogger.php:240
563
- msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
564
- msgstr "Tilføjede {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
565
-
566
- # @ simple-history
567
- #: loggers/SimplePostLogger.php:245
568
- msgid ""
569
- "Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
570
- msgstr ""
571
- "Flyttede {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> til "
572
- "papirkurven"
573
-
574
- # @ simple-history
575
- #: loggers/SimpleThemeLogger.php:26
576
- msgid "Switched theme to \"{theme_name}\" from \"{prev_theme_name}\""
577
- msgstr "Skiftede tema til \"{theme_name}\" from \"{prev_theme_name}\""
578
-
579
- # @ simple-history
580
- #: loggers/SimpleThemeLogger.php:27
581
- msgid "Customized theme appearance \"{setting_id}\""
582
- msgstr "Tilpassede tema udseende \"{setting_id}\""
583
-
584
- # @ simple-history
585
- #: loggers/SimpleThemeLogger.php:28
586
- msgid "Removed widget \"{widget_id_base}\" from sidebar \"{sidebar_id}\""
587
- msgstr "Fjernede widget \"{widget_id_base}\" fra sidebar \"{sidebar_id}\""
588
-
589
- # @ simple-history
590
- #: loggers/SimpleThemeLogger.php:29
591
- msgid "Added widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
592
- msgstr "Tilføjede widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
593
-
594
- # @ simple-history
595
- #: loggers/SimpleThemeLogger.php:30
596
- msgid "Changed widget order \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
597
- msgstr ""
598
- "Ændrede widget rækkefølge \"{widget_id_base}\" i sidebar \"{sidebar_id}\""
599
-
600
- # @ simple-history
601
- #: loggers/SimpleThemeLogger.php:31
602
- msgid "Changed widget \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
603
- msgstr "Ændrede widget \"{widget_id_base}\" i sidebar \"{sidebar_id}\""
604
-
605
- # @ simple-history
606
- #: loggers/SimpleThemeLogger.php:32
607
- msgid "Changed settings for the theme custom background"
608
- msgstr "Ændrede tema baggrund"
609
-
610
- # @ simple-history
611
- #: loggers/SimpleThemeLogger.php:532
612
- msgid "Section"
613
- msgstr "Sektion"
614
-
615
- # @ simple-history
616
- #: loggers/SimpleUserLogger.php:22
617
- msgid ""
618
- "Failed to login to account with username \"{login_user_login}\" because an "
619
- "incorrect password was entered"
620
- msgstr ""
621
- "Mislykkes at logge ind med brugernavn \"{login_user_login}\" fordi det "
622
- "forkerte kodeord blev brugt"
623
-
624
- # @ simple-history
625
- #: loggers/SimpleUserLogger.php:23
626
- msgid ""
627
- "Failed to login with username \"{failed_login_username}\" because no user "
628
- "with that username exists"
629
- msgstr ""
630
- "Mislykkes at logge ind med brugernavn \"{failed_login_username}\" fordi "
631
- "brugernavnet ikke findes"
632
-
633
- # @ simple-history
634
- #: loggers/SimpleUserLogger.php:24
635
- msgid "Logged in"
636
- msgstr "Loggede ind"
637
-
638
- # @ simple-history
639
- #: loggers/SimpleUserLogger.php:25
640
- msgid "Unknown user logged in"
641
- msgstr "Ukendt bruger loggede ind"
642
-
643
- # @ simple-history
644
- #: loggers/SimpleUserLogger.php:26
645
- msgid "Logged out"
646
- msgstr "Loggede ud"
647
-
648
- # @ simple-history
649
- #: loggers/SimpleUserLogger.php:27
650
- msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
651
- msgstr ""
652
- "Redigerede brugerprofilen for {edited_user_login} ({edited_user_email})"
653
-
654
- # @ simple-history
655
- #: loggers/SimpleUserLogger.php:28
656
- msgid ""
657
- "Created user {created_user_login} ({created_user_email}) with role "
658
- "{created_user_role}"
659
- msgstr ""
660
- "Tilføjede bruger {created_user_login} ({created_user_email}) med rollen "
661
- "{created_user_role}"
662
-
663
- # @ simple-history
664
- #: loggers/SimpleUserLogger.php:29
665
- msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
666
- msgstr "Slettede bruger {deleted_user_login} ({deleted_user_email})"
667
-
668
- # @ simple-history
669
- #: loggers/SimpleUserLogger.php:227
670
- msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
671
- msgstr "Redigerede <a href=\"{edit_profile_link}\">din profil</a>"
672
-
673
- # @ simple-history
674
- #: loggers/SimpleUserLogger.php:231
675
- msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
676
- msgstr "Redigerede <a href=\"{edit_profile_link}\">deres profil</a>"
677
-
678
- # @ simple-history
679
- #: loggers/SimpleUserLogger.php:240
680
- msgid "Edited your profile"
681
- msgstr "Redigerede din profil"
682
-
683
- # @ simple-history
684
- #: loggers/SimpleUserLogger.php:251
685
- msgid ""
686
- "Edited the profile for user <a href="
687
- "\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
688
- msgstr ""
689
- "Redigerede profilen for <a href=\"{edit_profile_link}\">{edited_user_login} "
690
- "({edited_user_email})</a>"
691
-
692
- #: node_modules/grunt-wp-i18n/test/fixtures/basic-theme/exclude/file.php:3
693
- #: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/plugin-include.php:6
694
- msgid "Exclude"
695
- msgstr "Ekskludere"
696
-
697
- #: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/include/file.php:2
698
- msgid "Include"
699
- msgstr "Inkludere"
700
-
701
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/add-domain.php:2
702
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:2
703
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3
704
- msgid "String"
705
- msgstr "Streng"
706
-
707
- # @ simple-history
708
- #: templates/settings-statsIntro.php:19
709
- msgid "<b>%1$s rows</b> have been logged the last <b>%2$s days</b>"
710
- msgstr "<b>%1$s rows</b> er logget de sidste <b>%2$s dage</b>"
711
-
712
- # @ simple-history
713
- #: templates/settings-statsLogLevels.php:4
714
- msgid "Log levels"
715
- msgstr "Log niveauer"
716
-
717
- # @ simple-history
718
- #: templates/settings-statsLogLevels.php:6
719
- msgid "Number of rows logged for each log level."
720
- msgstr "Antal rækker logget for hver log niveau."
721
-
722
- # @ simple-history
723
- #: templates/settings-statsLoggers.php:4
724
- msgid "Loggers"
725
- msgstr "Log metoder"
726
-
727
- # @ simple-history
728
- #: templates/settings-statsRowsPerDay.php:4
729
- msgid "Rows per day"
730
- msgstr "Rækker pr. dag"
731
-
732
- # @ simple-history
733
- #: templates/settings-statsUsers.php:4
734
- msgid "Users"
735
- msgstr "Brugere"
736
-
737
- # @ simple-history
738
- #: templates/settings-statsUsers.php:6
739
- msgid "Number of logged items for the 5 users with most logged rows."
740
- msgstr "Antal logget events for de 5 brugere, med flest antal logget rækker."
741
-
742
- # @ simple-history
743
- #: templates/settings-statsUsers.php:7
744
- msgid "Deleted users are also included."
745
- msgstr "Slettet brugere er også inkluderet."
746
-
747
- #. Plugin URI of the plugin/theme
748
- msgid "http://simple-history.com"
749
- msgstr "http://simple-history.com"
750
-
751
- #. Description of the plugin/theme
752
- msgid ""
753
- "Plugin that logs various things that occur in WordPress and then presents "
754
- "those events in a very nice GUI."
755
- msgstr ""
756
- "Plugin der logger forskellige ting der sker i WordPress og præsentere dem i "
757
- "et lækkert GUI."
758
-
759
- #. Author of the plugin/theme
760
- msgid "Pär Thernström"
761
- msgstr "Pär Thernström"
762
-
763
- #. Author URI of the plugin/theme
764
- msgid "http://simple-history.com/"
765
- msgstr "http://simple-history.com/"
766
-
767
- # @ simple-history
768
- #: SimpleHistory.php:249
769
- msgctxt ""
770
- "Message visible while waiting for log to load from server the first time"
771
- msgid "Loading history..."
772
- msgstr "Indlæser historik..."
773
-
774
- # @ simple-history
775
- #: SimpleHistory.php:286
776
- msgctxt "page n of n"
777
- msgid "of"
778
- msgstr "af"
779
-
780
- # @ simple-history
781
- #: SimpleHistory.php:357
782
- msgctxt "API: not enought arguments passed"
783
- msgid "Not enough args specified"
784
- msgstr "Der er ikke specificeret argumenter nok"
785
-
786
- # @ simple-history
787
- #: SimpleHistory.php:1235
788
- msgctxt "dashboard menu name"
789
- msgid "Simple History"
790
- msgstr "Simpel Historik"
791
-
792
- # @ simple-history
793
- #: SimpleHistory.php:1359
794
- msgctxt "history page headline"
795
- msgid "Simple History"
796
- msgstr "Simpel Historik"
797
-
798
- #: SimpleHistory.php:1619
799
- msgctxt "simple-history"
800
- msgid "Simple History removed one event that were older than {days} days"
801
- msgid_plural ""
802
- "Simple History removed {num_rows} events that were older than {days} days"
803
- msgstr[0] "Simpel Historik fjernede et event, der var ældre end {days} dage"
804
- msgstr[1] ""
805
- "Simpel Historik fjernede {num_events} events, der var ældre end {days} dage"
806
-
807
- #: SimpleHistory.php:1963
808
- msgctxt "Log level in gui"
809
- msgid "emergency"
810
- msgstr "Nødstilfælde"
811
-
812
- #: SimpleHistory.php:1967
813
- msgctxt "Log level in gui"
814
- msgid "alert"
815
- msgstr "alarm"
816
-
817
- #: SimpleHistory.php:1971
818
- msgctxt "Log level in gui"
819
- msgid "critical"
820
- msgstr "kritisk"
821
-
822
- #: SimpleHistory.php:1975
823
- msgctxt "Log level in gui"
824
- msgid "error"
825
- msgstr "fejl"
826
-
827
- #: SimpleHistory.php:1979
828
- msgctxt "Log level in gui"
829
- msgid "warning"
830
- msgstr "advarsel"
831
-
832
- #: SimpleHistory.php:1983
833
- msgctxt "Log level in gui"
834
- msgid "notice"
835
- msgstr "meddelelse"
836
-
837
- #: SimpleHistory.php:1987
838
- msgctxt "Log level in gui"
839
- msgid "info"
840
- msgstr "info"
841
-
842
- #: SimpleHistory.php:1991
843
- msgctxt "Log level in gui"
844
- msgid "debug"
845
- msgstr "debug"
846
-
847
- #: SimpleHistory.php:1996
848
- msgctxt "Log level in gui"
849
- msgid "Emergency"
850
- msgstr "Nødstilfælde"
851
-
852
- #: SimpleHistory.php:2000
853
- msgctxt "Log level in gui"
854
- msgid "Alert"
855
- msgstr "Alarm"
856
-
857
- #: SimpleHistory.php:2004
858
- msgctxt "Log level in gui"
859
- msgid "Critical"
860
- msgstr "Kritisk"
861
-
862
- #: SimpleHistory.php:2008
863
- msgctxt "Log level in gui"
864
- msgid "Error"
865
- msgstr "Fejl"
866
-
867
- #: SimpleHistory.php:2012
868
- msgctxt "Log level in gui"
869
- msgid "Warning"
870
- msgstr "Advarsel"
871
-
872
- #: SimpleHistory.php:2016
873
- msgctxt "Log level in gui"
874
- msgid "Notice"
875
- msgstr "Meddelse"
876
-
877
- #: SimpleHistory.php:2020
878
- msgctxt "Log level in gui"
879
- msgid "Info"
880
- msgstr "Info"
881
-
882
- #: SimpleHistory.php:2024
883
- msgctxt "Log level in gui"
884
- msgid "Debug"
885
- msgstr "Debug"
886
-
887
- # @ simple-history
888
- #: dropins/SimpleHistoryDonateDropin.php:51
889
- msgctxt "donate settings headline"
890
- msgid "Donate"
891
- msgstr "Donér"
892
-
893
- #: dropins/SimpleHistoryFilterDropin.php:50
894
- msgctxt "Filter dropin: button to show more search options"
895
- msgid "Show options"
896
- msgstr "Vis flere muligheder"
897
-
898
- #: dropins/SimpleHistoryFilterDropin.php:160
899
- msgctxt "Filter dropin: button to hide more search options"
900
- msgid "Hide options"
901
- msgstr "Skjul muligheder"
902
-
903
- # @ simple-history
904
- #: dropins/SimpleHistoryIpInfoDropin.php:66
905
- msgctxt "IP Info Dropin"
906
- msgid "That IP address does not seem like a public one."
907
- msgstr "IP adressen lader ikke til, at være en offentlig(public) IP."
908
-
909
- # @ simple-history
910
- #: dropins/SimpleHistoryIpInfoDropin.php:85
911
- msgctxt "IP Info Dropin"
912
- msgid "IP address"
913
- msgstr "IP adresse"
914
-
915
- # @ simple-history
916
- #: dropins/SimpleHistoryIpInfoDropin.php:96
917
- msgctxt "IP Info Dropin"
918
- msgid "Hostname"
919
- msgstr "Værtsnavn(Hostname)"
920
-
921
- # @ simple-history
922
- #: dropins/SimpleHistoryIpInfoDropin.php:107
923
- #: dropins/SimpleHistoryIpInfoDropin.php:118
924
- msgctxt "IP Info Dropin"
925
- msgid "Network"
926
- msgstr "Netværk"
927
-
928
- # @ simple-history
929
- #: dropins/SimpleHistoryIpInfoDropin.php:129
930
- msgctxt "IP Info Dropin"
931
- msgid "City"
932
- msgstr "By"
933
-
934
- # @ simple-history
935
- #: dropins/SimpleHistoryIpInfoDropin.php:140
936
- msgctxt "IP Info Dropin"
937
- msgid "Region"
938
- msgstr "Region"
939
-
940
- # @ simple-history
941
- #: dropins/SimpleHistoryIpInfoDropin.php:151
942
- msgctxt "IP Info Dropin"
943
- msgid "Country"
944
- msgstr "Område/Land"
945
-
946
- # @ simple-history
947
- #: dropins/SimpleHistoryIpInfoDropin.php:162
948
- msgctxt "IP Info Dropin"
949
- msgid "IP info provided by %1$s ipinfo.io %2$s"
950
- msgstr "IP info leveret af %1$s ipinfo.io %2$s"
951
-
952
- # @ simple-history
953
- #: dropins/SimpleHistoryNewRowsNotifier.php:38
954
- msgctxt "New rows notifier: error while checking for new rows"
955
- msgid "An error occured while checking for new log rows"
956
- msgstr "Der forekom en fejl, mens der blev tjekket efter nye log rækker"
957
-
958
- # @ simple-history
959
- #: dropins/SimpleHistoryRSSDropin.php:47
960
- msgctxt "rss settings headline"
961
- msgid "RSS feed"
962
- msgstr "RSS feed"
963
-
964
- #: dropins/SimpleHistorySidebarDropin.php:31
965
- msgctxt "Sidebar box"
966
- msgid "Simple History is on GitHub"
967
- msgstr "Simpel Historik er på GitHub"
968
-
969
- #: dropins/SimpleHistorySidebarDropin.php:34
970
- msgctxt "Sidebar box"
971
- msgid ""
972
- "You can star, fork, or report issues with this plugin over at the <a href="
973
- "\"%1$s\">GitHub page</a>."
974
- msgstr ""
975
- "Du kan star, fork eller rapportere issues på pluginets <a href=\"%1$s"
976
- "\">GitHub side</a>."
977
-
978
- #: dropins/SimpleHistorySidebarDropin.php:48
979
- msgctxt "Sidebar box"
980
- msgid "Donate to support development"
981
- msgstr "Donér for at støtte udviklingen"
982
-
983
- #: dropins/SimpleHistorySidebarDropin.php:51
984
- msgctxt "Sidebar box"
985
- msgid ""
986
- "If you like and use Simple History you should <a href=\"%1$s\">donate to "
987
- "keep this plugin free</a>."
988
- msgstr ""
989
- "Hvis du synes om og bruger Simpel Historik, burde du <a href=\"%1$s"
990
- "\">donére</a>, for at bibeholde dette plugin gratis."
991
-
992
- #: dropins/SimpleHistorySidebarDropin.php:65
993
- msgctxt "Sidebar box"
994
- msgid "Review this plugin if you like it"
995
- msgstr "Bedøm gerne dette plugin"
996
-
997
- #: dropins/SimpleHistorySidebarDropin.php:68
998
- msgctxt "Sidebar box"
999
- msgid ""
1000
- "If you like Simple History then please <a href=\"%1$s\">give it a nice "
1001
- "review over at wordpress.org</a>."
1002
- msgstr ""
1003
- "Hvis du synes om Simpel Historik, så <a href=\"%1$s\">kan du anmelde det på "
1004
- "wordpress.org</a>."
1005
-
1006
- #: dropins/SimpleHistorySidebarDropin.php:72
1007
- msgctxt "Sidebar box"
1008
- msgid ""
1009
- "A good review will help new users find this plugin. And it will make the "
1010
- "plugin author very happy :)"
1011
- msgstr ""
1012
- "En god anmeldelse, vil hjælpe nye brugere til at finde dette plugin. Det vil "
1013
- "også gøre plugin forfatteren meget glad :)"
1014
-
1015
- # @ simple-history
1016
- #: loggers/SimpleCommentsLogger.php:95
1017
- msgctxt "A comment was added to the database by a non-logged in internet user"
1018
- msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
1019
- msgstr ""
1020
- "Tilføjede en kommentar til {comment_post_type} \"{comment_post_title}\""
1021
-
1022
- # @ simple-history
1023
- #: loggers/SimpleCommentsLogger.php:101
1024
- msgctxt "A comment was added to the database by a logged in user"
1025
- msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
1026
- msgstr ""
1027
- "Tilføjede en kommentar til {comment_post_type} \"{comment_post_title}\""
1028
-
1029
- # @ simple-history
1030
- #: loggers/SimpleCommentsLogger.php:107
1031
- msgctxt "A comment was approved"
1032
- msgid ""
1033
- "Approved a comment to \"{comment_post_title}\" by {comment_author} "
1034
- "({comment_author_email})"
1035
- msgstr ""
1036
- "Godkendte en kommentar til \"{comment_post_title}\" af {comment_author} "
1037
- "({comment_author_email})"
1038
-
1039
- # @ simple-history
1040
- #: loggers/SimpleCommentsLogger.php:113
1041
- msgctxt "A comment was was unapproved"
1042
- msgid ""
1043
- "Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
1044
- "({comment_author_email})"
1045
- msgstr ""
1046
- "Afviste en kommentar til \"{comment_post_title}\" af {comment_author} "
1047
- "({comment_author_email})"
1048
-
1049
- # @ simple-history
1050
- #: loggers/SimpleCommentsLogger.php:119
1051
- msgctxt "A comment was marked as spam"
1052
- msgid "Marked a comment to post \"{comment_post_title}\" as spam"
1053
- msgstr "Markerede en kommentar til indlægget \"{comment_post_title}\" som spam"
1054
-
1055
- # @ simple-history
1056
- #: loggers/SimpleCommentsLogger.php:125
1057
- msgctxt "A comment was marked moved to the trash"
1058
- msgid ""
1059
- "Trashed a comment to \"{comment_post_title}\" by {comment_author} "
1060
- "({comment_author_email})"
1061
- msgstr ""
1062
- "Flyttede en kommentar til \"{comment_post_title}\" af {comment_author} "
1063
- "({comment_author_email}) i papirkurven"
1064
-
1065
- # @ simple-history
1066
- #: loggers/SimpleCommentsLogger.php:131
1067
- msgctxt "A comment was restored from the trash"
1068
- msgid ""
1069
- "Restored a comment to \"{comment_post_title}\" by {comment_author} "
1070
- "({comment_author_email}) from the trash"
1071
- msgstr ""
1072
- "Gendannede en kommentar til \"{comment_post_title}\" af {comment_author} "
1073
- "({comment_author_email}) fra papirkurven"
1074
-
1075
- # @ simple-history
1076
- #: loggers/SimpleCommentsLogger.php:137
1077
- msgctxt "A comment was deleted"
1078
- msgid ""
1079
- "Deleted a comment to \"{comment_post_title}\" by {comment_author} "
1080
- "({comment_author_email})"
1081
- msgstr ""
1082
- "Slettede en kommentar til \"{comment_post_title}\" af {comment_author} "
1083
- "({comment_author_email})"
1084
-
1085
- # @ simple-history
1086
- #: loggers/SimpleCommentsLogger.php:143
1087
- msgctxt "A comment was edited"
1088
- msgid ""
1089
- "Edited a comment to \"{comment_post_title}\" by {comment_author} "
1090
- "({comment_author_email})"
1091
- msgstr ""
1092
- "Redigerede en kommentar til \"{comment_post_title}\" af {comment_author} "
1093
- "({comment_author_email})"
1094
-
1095
- # @ simple-history
1096
- #: loggers/SimpleCommentsLogger.php:150
1097
- msgctxt ""
1098
- "A trackback was added to the database by a non-logged in internet user"
1099
- msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
1100
- msgstr ""
1101
- "Tilføjede en trackback til {comment_post_type} \"{comment_post_title}\""
1102
-
1103
- # @ simple-history
1104
- #: loggers/SimpleCommentsLogger.php:205
1105
- msgctxt ""
1106
- "A trackback was added to the database by a non-logged in internet user"
1107
- msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
1108
- msgstr "Tilføjede en pingback til {comment_post_type} \"{comment_post_title}\""
1109
-
1110
- # @ simple-history
1111
- #: loggers/SimpleCommentsLogger.php:156
1112
- msgctxt "A trackback was added to the database by a logged in user"
1113
- msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
1114
- msgstr ""
1115
- "Tilføjede en trackback til {comment_post_type} \"{comment_post_title}\""
1116
-
1117
- # @ simple-history
1118
- #: loggers/SimpleCommentsLogger.php:162
1119
- msgctxt "A trackback was approved"
1120
- msgid ""
1121
- "Approved a trackback to \"{comment_post_title}\" by {comment_author} "
1122
- "({comment_author_email})"
1123
- msgstr ""
1124
- "Godkendte en trackback til \"{comment_post_title}\" af {comment_author} "
1125
- "({comment_author_email})"
1126
-
1127
- # @ simple-history
1128
- #: loggers/SimpleCommentsLogger.php:168
1129
- msgctxt "A trackback was was unapproved"
1130
- msgid ""
1131
- "Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
1132
- "({comment_author_email})"
1133
- msgstr ""
1134
- "Afviste en trackback til \"{comment_post_title}\" af {comment_author} "
1135
- "({comment_author_email})"
1136
-
1137
- # @ simple-history
1138
- #: loggers/SimpleCommentsLogger.php:174
1139
- msgctxt "A trackback was marked as spam"
1140
- msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
1141
- msgstr "Markerede en trackback til indlægget \"{comment_post_title}\" som spam"
1142
-
1143
- # @ simple-history
1144
- #: loggers/SimpleCommentsLogger.php:180
1145
- msgctxt "A trackback was marked moved to the trash"
1146
- msgid ""
1147
- "Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
1148
- "({comment_author_email})"
1149
- msgstr ""
1150
- "Flyttede en trackback til \"{comment_post_title}\" af {comment_author} "
1151
- "({comment_author_email}) til papirkurven"
1152
-
1153
- # @ simple-history
1154
- #: loggers/SimpleCommentsLogger.php:186
1155
- msgctxt "A trackback was restored from the trash"
1156
- msgid ""
1157
- "Restored a trackback to \"{comment_post_title}\" by {comment_author} "
1158
- "({comment_author_email}) from the trash"
1159
- msgstr ""
1160
- "Gendannede en trackback til \"{comment_post_title}\" af {comment_author} "
1161
- "({comment_author_email}) fra papirkurven"
1162
-
1163
- # @ simple-history
1164
- #: loggers/SimpleCommentsLogger.php:192
1165
- msgctxt "A trackback was deleted"
1166
- msgid ""
1167
- "Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
1168
- "({comment_author_email})"
1169
- msgstr ""
1170
- "Slettede en trackback til \"{comment_post_title}\" af {comment_author} "
1171
- "({comment_author_email})"
1172
-
1173
- # @ simple-history
1174
- #: loggers/SimpleCommentsLogger.php:198
1175
- msgctxt "A trackback was edited"
1176
- msgid ""
1177
- "Edited a trackback to \"{comment_post_title}\" by {comment_author} "
1178
- "({comment_author_email})"
1179
- msgstr ""
1180
- "Redigerede en trackback til \"{comment_post_title}\" af {comment_author} "
1181
- "({comment_author_email})"
1182
-
1183
- # @ simple-history
1184
- #: loggers/SimpleCommentsLogger.php:211
1185
- msgctxt "A pingback was added to the database by a logged in user"
1186
- msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
1187
- msgstr "Tilføjede en pingback til {comment_post_type} \"{comment_post_title}\""
1188
-
1189
- # @ simple-history
1190
- #: loggers/SimpleCommentsLogger.php:217
1191
- msgctxt "A pingback was approved"
1192
- msgid ""
1193
- "Approved a pingback to \"{comment_post_title}\" by "
1194
- "\"{comment_author}\"\" ({comment_author_email})"
1195
- msgstr ""
1196
- "Godkendte en pingback til \"{comment_post_title}\" af "
1197
- "\"{comment_author}\"\" ({comment_author_email})"
1198
-
1199
- # @ simple-history
1200
- #: loggers/SimpleCommentsLogger.php:223
1201
- msgctxt "A pingback was was unapproved"
1202
- msgid ""
1203
- "Unapproved a pingback to \"{comment_post_title}\" by "
1204
- "\"{comment_author}\" ({comment_author_email})"
1205
- msgstr ""
1206
- "Afviste en pingback til \"{comment_post_title}\" af "
1207
- "\"{comment_author}\" ({comment_author_email})"
1208
-
1209
- # @ simple-history
1210
- #: loggers/SimpleCommentsLogger.php:229
1211
- msgctxt "A pingback was marked as spam"
1212
- msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
1213
- msgstr "Markerede en pingback til indlægget \"{comment_post_title}\" som spam"
1214
-
1215
- # @ simple-history
1216
- #: loggers/SimpleCommentsLogger.php:235
1217
- msgctxt "A pingback was marked moved to the trash"
1218
- msgid ""
1219
- "Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
1220
- "({comment_author_email})"
1221
- msgstr ""
1222
- "Flyttede en pingback til \"{comment_post_title}\" af {comment_author} "
1223
- "({comment_author_email}) til papirkurven"
1224
-
1225
- # @ simple-history
1226
- #: loggers/SimpleCommentsLogger.php:241
1227
- msgctxt "A pingback was restored from the trash"
1228
- msgid ""
1229
- "Restored a pingback to \"{comment_post_title}\" by {comment_author} "
1230
- "({comment_author_email}) from the trash"
1231
- msgstr ""
1232
- "Gendannede en pingback til \"{comment_post_title}\" af {comment_author} "
1233
- "({comment_author_email}) fra papirkurven"
1234
-
1235
- # @ simple-history
1236
- #: loggers/SimpleCommentsLogger.php:247
1237
- msgctxt "A pingback was deleted"
1238
- msgid ""
1239
- "Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
1240
- "({comment_author_email})"
1241
- msgstr ""
1242
- "Slettede en pingback til \"{comment_post_title}\" af {comment_author} "
1243
- "({comment_author_email})"
1244
-
1245
- # @ simple-history
1246
- #: loggers/SimpleCommentsLogger.php:253
1247
- msgctxt "A pingback was edited"
1248
- msgid ""
1249
- "Edited a pingback to \"{comment_post_title}\" by {comment_author} "
1250
- "({comment_author_email})"
1251
- msgstr ""
1252
- "Redigerede en pingback til \"{comment_post_title}\" af {comment_author} "
1253
- "({comment_author_email})"
1254
-
1255
- # @ simple-history
1256
- #: loggers/SimpleCommentsLogger.php:264
1257
- msgctxt "Comments logger: search"
1258
- msgid "Comments"
1259
- msgstr "Kommentarer"
1260
-
1261
- # @ simple-history
1262
- #: loggers/SimpleCommentsLogger.php:265
1263
- msgctxt "Comments logger: search"
1264
- msgid "All comments activity"
1265
- msgstr "Alt kommentar aktivitet"
1266
-
1267
- # @ simple-history
1268
- #: loggers/SimpleCommentsLogger.php:267
1269
- msgctxt "Comments logger: search"
1270
- msgid "Added comments"
1271
- msgstr "Tilføjet kommentarer"
1272
-
1273
- # @ simple-history
1274
- #: loggers/SimpleCommentsLogger.php:275
1275
- msgctxt "Comments logger: search"
1276
- msgid "Edited comments"
1277
- msgstr "Redigeret kommentarer"
1278
-
1279
- # @ simple-history
1280
- #: loggers/SimpleCommentsLogger.php:280
1281
- msgctxt "Comments logger: search"
1282
- msgid "Approved comments"
1283
- msgstr "Godkendte kommentarer"
1284
-
1285
- # @ simple-history
1286
- #: loggers/SimpleCommentsLogger.php:285
1287
- msgctxt "Comments logger: search"
1288
- msgid "Held comments"
1289
- msgstr "Afventer kommentarer"
1290
-
1291
- # @ simple-history
1292
- #: loggers/SimpleCommentsLogger.php:290
1293
- msgctxt "Comments logger: search"
1294
- msgid "Comments status changed to spam"
1295
- msgstr "Kommentarer status ændre til spam"
1296
-
1297
- # @ simple-history
1298
- #: loggers/SimpleCommentsLogger.php:295
1299
- msgctxt "Comments logger: search"
1300
- msgid "Trashed comments"
1301
- msgstr "Kommentarer flyttet til papirkurven"
1302
-
1303
- # @ simple-history
1304
- #: loggers/SimpleCommentsLogger.php:300
1305
- msgctxt "Comments logger: search"
1306
- msgid "Untrashed comments"
1307
- msgstr "Gendannet kommentarer"
1308
-
1309
- # @ simple-history
1310
- #: loggers/SimpleCommentsLogger.php:305
1311
- msgctxt "Comments logger: search"
1312
- msgid "Deleted comments"
1313
- msgstr "Slettet kommentarer"
1314
-
1315
- # @ simple-history
1316
- #: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
1317
- #: loggers/SimpleCommentsLogger.php:629
1318
- msgctxt "comments logger - detailed output comment status"
1319
- msgid "Status"
1320
- msgstr "Status"
1321
-
1322
- # @ simple-history
1323
- #: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
1324
- #: loggers/SimpleCommentsLogger.php:631
1325
- msgctxt "comments logger - detailed output author"
1326
- msgid "Name"
1327
- msgstr "Navn"
1328
-
1329
- # @ simple-history
1330
- #: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
1331
- #: loggers/SimpleCommentsLogger.php:632
1332
- msgctxt "comments logger - detailed output email"
1333
- msgid "Email"
1334
- msgstr "E-mail"
1335
-
1336
- # @ simple-history
1337
- #: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
1338
- msgctxt "comments logger - detailed output content"
1339
- msgid "Content"
1340
- msgstr "Indhold"
1341
-
1342
- # @ simple-history
1343
- #: loggers/SimpleCommentsLogger.php:633
1344
- msgctxt "comments logger - detailed output content"
1345
- msgid "Comment"
1346
- msgstr "Kommentar"
1347
-
1348
- # @ simple-history
1349
- #: loggers/SimpleCommentsLogger.php:759
1350
- msgctxt "comments logger - edit comment"
1351
- msgid "View/Edit"
1352
- msgstr "Vis/Rediger"
1353
-
1354
- # @ simple-history
1355
- #: loggers/SimpleCoreUpdatesLogger.php:34
1356
- msgctxt "User logger: search"
1357
- msgid "WordPress Core"
1358
- msgstr "WordPress Core"
1359
-
1360
- # @ simple-history
1361
- #: loggers/SimpleCoreUpdatesLogger.php:36
1362
- msgctxt "User logger: search"
1363
- msgid "WordPress core updates"
1364
- msgstr "WordPress Core opdateringer"
1365
-
1366
- # @ simple-history
1367
- #: loggers/SimpleUserLogger.php:54
1368
- msgctxt "User logger: search"
1369
- msgid "Users"
1370
- msgstr "Brugere"
1371
-
1372
- # @ simple-history
1373
- #: loggers/SimpleUserLogger.php:55
1374
- msgctxt "User logger: search"
1375
- msgid "All user activity"
1376
- msgstr "Alt bruger aktivitet"
1377
-
1378
- # @ simple-history
1379
- #: loggers/SimpleUserLogger.php:57
1380
- msgctxt "User logger: search"
1381
- msgid "Successful user logins"
1382
- msgstr "Succesfulde bruger log ind"
1383
-
1384
- # @ simple-history
1385
- #: loggers/SimpleUserLogger.php:61
1386
- msgctxt "User logger: search"
1387
- msgid "Failed user logins"
1388
- msgstr "Mislykket bruger log ind"
1389
-
1390
- # @ simple-history
1391
- #: loggers/SimpleUserLogger.php:65
1392
- msgctxt "User logger: search"
1393
- msgid "User logouts"
1394
- msgstr "Bruger log ud"
1395
-
1396
- # @ simple-history
1397
- #: loggers/SimpleUserLogger.php:68
1398
- msgctxt "User logger: search"
1399
- msgid "Created users"
1400
- msgstr "Tilføjet brugere"
1401
-
1402
- # @ simple-history
1403
- #: loggers/SimpleUserLogger.php:71
1404
- msgctxt "User logger: search"
1405
- msgid "User profile updates"
1406
- msgstr "Brugerprofil opdateringer"
1407
-
1408
- # @ simple-history
1409
- #: loggers/SimpleUserLogger.php:74
1410
- msgctxt "User logger: search"
1411
- msgid "User deletions"
1412
- msgstr "Slettet brugere"
1413
-
1414
- # @ simple-history
1415
- #: loggers/SimpleExportLogger.php:27
1416
- msgctxt "Export logger: search"
1417
- msgid "Export"
1418
- msgstr "Eksport"
1419
-
1420
- # @ simple-history
1421
- #: loggers/SimpleExportLogger.php:29
1422
- msgctxt "Export logger: search"
1423
- msgid "Created exports"
1424
- msgstr "Genereret eksporteringer"
1425
-
1426
- # @ simple-history
1427
- #: loggers/SimpleLogger.php:190
1428
- msgctxt "header output when initiator is the currently logged in user"
1429
- msgid "You"
1430
- msgstr "Dig"
1431
-
1432
- # @ simple-history
1433
- #: loggers/SimpleMediaLogger.php:29
1434
- msgctxt "Media logger: search"
1435
- msgid "Media"
1436
- msgstr "Medier"
1437
-
1438
- # @ simple-history
1439
- #: loggers/SimpleMediaLogger.php:31
1440
- msgctxt "Media logger: search"
1441
- msgid "Added media"
1442
- msgstr "Tilføjet medier"
1443
-
1444
- # @ simple-history
1445
- #: loggers/SimpleMediaLogger.php:34
1446
- msgctxt "Media logger: search"
1447
- msgid "Updated media"
1448
- msgstr "Opdateret medier"
1449
-
1450
- # @ simple-history
1451
- #: loggers/SimpleMediaLogger.php:37
1452
- msgctxt "Media logger: search"
1453
- msgid "Deleted media"
1454
- msgstr "Slettet medier"
1455
-
1456
- # @ simple-history
1457
- #: loggers/SimpleMenuLogger.php:31
1458
- msgctxt "Menu logger: search"
1459
- msgid "Menus"
1460
- msgstr "Menuer"
1461
-
1462
- # @ simple-history
1463
- #: loggers/SimpleMenuLogger.php:33
1464
- msgctxt "Menu updates logger: search"
1465
- msgid "Created menus"
1466
- msgstr "Tilføjet menuer"
1467
-
1468
- # @ simple-history
1469
- #: loggers/SimpleMenuLogger.php:36
1470
- msgctxt "Menu updates logger: search"
1471
- msgid "Edited menus"
1472
- msgstr "Redigeret menuer"
1473
-
1474
- # @ simple-history
1475
- #: loggers/SimpleMenuLogger.php:41
1476
- msgctxt "Menu updates logger: search"
1477
- msgid "Deleted menus"
1478
- msgstr "Slettet menuer"
1479
-
1480
- # @ simple-history
1481
- #: loggers/SimpleMenuLogger.php:326
1482
- msgctxt "menu logger"
1483
- msgid "%1$s menu item added"
1484
- msgid_plural "%1$s menu items added"
1485
- msgstr[0] "%1$s menupunkt tilføjet"
1486
- msgstr[1] "%1$s menupunkter tilføjet"
1487
-
1488
- # @ simple-history
1489
- #: loggers/SimpleMenuLogger.php:333
1490
- msgctxt "menu logger"
1491
- msgid "%1$s menu item removed"
1492
- msgid_plural "%1$s menu items removed"
1493
- msgstr[0] "%1$s menupunkt fjernet"
1494
- msgstr[1] "%1$s menupunkter fjernet"
1495
-
1496
- # @ simple-history
1497
- #: loggers/SimpleOptionsLogger.php:153
1498
- msgctxt "Options logger: search"
1499
- msgid "Options"
1500
- msgstr "Indstillinger"
1501
-
1502
- # @ simple-history
1503
- #: loggers/SimpleOptionsLogger.php:155
1504
- msgctxt "Options logger: search"
1505
- msgid "Changed options"
1506
- msgstr "Ændret indstillinger"
1507
-
1508
- # @ simple-history
1509
- #: loggers/SimplePluginLogger.php:51
1510
- msgctxt "Plugin was non-silently activated by a user"
1511
- msgid "Activated plugin \"{plugin_name}\""
1512
- msgstr "Aktiverede pluginet \"{plugin_name}\""
1513
-
1514
- # @ simple-history
1515
- #: loggers/SimplePluginLogger.php:57
1516
- msgctxt "Plugin was non-silently deactivated by a user"
1517
- msgid "Deactivated plugin \"{plugin_name}\""
1518
- msgstr "Deaktiverede pluginet \"{plugin_name}\""
1519
-
1520
- # @ simple-history
1521
- #: loggers/SimplePluginLogger.php:63
1522
- msgctxt "Plugin was installed"
1523
- msgid "Installed plugin \"{plugin_name}\""
1524
- msgstr "Installerede pluginet \"{plugin_name}\""
1525
-
1526
- # @ simple-history
1527
- #: loggers/SimplePluginLogger.php:69
1528
- msgctxt "Plugin failed to install"
1529
- msgid "Failed to install plugin \"{plugin_name}\""
1530
- msgstr "Mislykkede i at installere pluginet \"{plugin_name}\""
1531
-
1532
- # @ simple-history
1533
- #: loggers/SimplePluginLogger.php:75
1534
- msgctxt "Plugin was updated"
1535
- msgid ""
1536
- "Updated plugin \"{plugin_name}\" to version {plugin_version} from "
1537
- "{plugin_prev_version}"
1538
- msgstr ""
1539
- "Opdaterede pluginet \"{plugin_name}\" til version {plugin_version} fra "
1540
- "{plugin_prev_version}"
1541
-
1542
- # @ simple-history
1543
- #: loggers/SimplePluginLogger.php:81
1544
- msgctxt "Plugin update failed"
1545
- msgid "Updated plugin \"{plugin_name}\""
1546
- msgstr "Opdaterede pluginet \"{plugin_name}\""
1547
-
1548
- # @ simple-history
1549
- #: loggers/SimplePluginLogger.php:87
1550
- msgctxt "Plugin file edited"
1551
- msgid "Edited plugin file \"{plugin_edited_file}\""
1552
- msgstr "Redigerede plugin filen \"{plugin_edited_file}\""
1553
-
1554
- # @ simple-history
1555
- #: loggers/SimplePluginLogger.php:93
1556
- msgctxt "Plugin files was deleted"
1557
- msgid "Deleted plugin \"{plugin_name}\""
1558
- msgstr "Slettede pluginet \"{plugin_name}\""
1559
-
1560
- # @ simple-history
1561
- #: loggers/SimplePluginLogger.php:100
1562
- msgctxt "Plugin was updated in bulk"
1563
- msgid ""
1564
- "Updated plugin \"{plugin_name}\" to {plugin_version} from "
1565
- "{plugin_prev_version}"
1566
- msgstr ""
1567
- "Opdaterede pluginet \"{plugin_name}\" til {plugin_version} fra "
1568
- "{plugin_prev_version}"
1569
-
1570
- # @ simple-history
1571
- #: loggers/SimplePluginLogger.php:108
1572
- msgctxt "Plugin logger: search"
1573
- msgid "Plugins"
1574
- msgstr "Plugins"
1575
-
1576
- # @ simple-history
1577
- #: loggers/SimplePluginLogger.php:110
1578
- msgctxt "Plugin logger: search"
1579
- msgid "Activated plugins"
1580
- msgstr "Aktiveret plugins"
1581
-
1582
- # @ simple-history
1583
- #: loggers/SimplePluginLogger.php:113
1584
- msgctxt "Plugin logger: search"
1585
- msgid "Deactivated plugins"
1586
- msgstr "Deaktiveret plugins"
1587
-
1588
- # @ simple-history
1589
- #: loggers/SimplePluginLogger.php:116
1590
- msgctxt "Plugin logger: search"
1591
- msgid "Installed plugins"
1592
- msgstr "Installeret plugins"
1593
-
1594
- # @ simple-history
1595
- #: loggers/SimplePluginLogger.php:119
1596
- msgctxt "Plugin logger: search"
1597
- msgid "Failed plugin installs"
1598
- msgstr "Mislykket plugin installeringer"
1599
-
1600
- # @ simple-history
1601
- #: loggers/SimplePluginLogger.php:122
1602
- msgctxt "Plugin logger: search"
1603
- msgid "Updated plugins"
1604
- msgstr "Opdateret plugins"
1605
-
1606
- # @ simple-history
1607
- #: loggers/SimplePluginLogger.php:126
1608
- msgctxt "Plugin logger: search"
1609
- msgid "Failed plugin updates"
1610
- msgstr "Mislykket plugin opdateringer"
1611
-
1612
- # @ simple-history
1613
- #: loggers/SimplePluginLogger.php:129
1614
- msgctxt "Plugin logger: search"
1615
- msgid "Edited plugin files"
1616
- msgstr "Redigeret plugin filer"
1617
-
1618
- # @ simple-history
1619
- #: loggers/SimplePluginLogger.php:132
1620
- msgctxt "Plugin logger: search"
1621
- msgid "Deleted plugins"
1622
- msgstr "Slettet plugins"
1623
-
1624
- # @ simple-history
1625
- #: loggers/SimplePluginLogger.php:887
1626
- msgctxt "plugin logger - detailed output version"
1627
- msgid "Version"
1628
- msgstr "Version"
1629
-
1630
- # @ simple-history
1631
- #: loggers/SimplePluginLogger.php:889
1632
- msgctxt "plugin logger - detailed output author"
1633
- msgid "Author"
1634
- msgstr "Forfatter"
1635
-
1636
- # @ simple-history
1637
- #: loggers/SimplePluginLogger.php:891
1638
- msgctxt "plugin logger - detailed output author"
1639
- msgid "Requires"
1640
- msgstr "Kræver"
1641
-
1642
- # @ simple-history
1643
- #: loggers/SimplePluginLogger.php:890
1644
- msgctxt "plugin logger - detailed output url"
1645
- msgid "URL"
1646
- msgstr "URL"
1647
-
1648
- # @ simple-history
1649
- #: loggers/SimplePluginLogger.php:892
1650
- msgctxt "plugin logger - detailed output compatible"
1651
- msgid "Compatible up to"
1652
- msgstr "Kompatible op til"
1653
-
1654
- # @ simple-history
1655
- #: loggers/SimplePluginLogger.php:893
1656
- msgctxt "plugin logger - detailed output downloaded"
1657
- msgid "Downloads"
1658
- msgstr "Downloads"
1659
-
1660
- # @ simple-history
1661
- #: loggers/SimplePluginLogger.php:953
1662
- msgctxt "plugin logger: plugin info thickbox title view all info"
1663
- msgid "View plugin info"
1664
- msgstr "Vis plugin info"
1665
-
1666
- # @ simple-history
1667
- #: loggers/SimplePluginLogger.php:968
1668
- msgctxt "plugin logger: plugin info thickbox title"
1669
- msgid "View plugin info"
1670
- msgstr "Vis plugin info"
1671
-
1672
- # @ simple-history
1673
- #: loggers/SimplePluginLogger.php:972
1674
- msgctxt "plugin logger: plugin info thickbox title"
1675
- msgid "View changelog"
1676
- msgstr "Vis changelog"
1677
-
1678
- # @ simple-history
1679
- #: loggers/SimplePostLogger.php:38
1680
- msgctxt "Post logger: search"
1681
- msgid "Posts & Pages"
1682
- msgstr "Indlæg & Sider"
1683
-
1684
- # @ simple-history
1685
- #: loggers/SimplePostLogger.php:40
1686
- msgctxt "Post logger: search"
1687
- msgid "Posts created"
1688
- msgstr "Indlæg tilføjet"
1689
-
1690
- # @ simple-history
1691
- #: loggers/SimplePostLogger.php:43
1692
- msgctxt "Post logger: search"
1693
- msgid "Posts updated"
1694
- msgstr "Indlæg opdateret"
1695
-
1696
- # @ simple-history
1697
- #: loggers/SimplePostLogger.php:46
1698
- msgctxt "Post logger: search"
1699
- msgid "Posts trashed"
1700
- msgstr "Indlæg flyttet til papirkurven"
1701
-
1702
- # @ simple-history
1703
- #: loggers/SimplePostLogger.php:49
1704
- msgctxt "Post logger: search"
1705
- msgid "Posts deleted"
1706
- msgstr "Indlæg slettet"
1707
-
1708
- # @ simple-history
1709
- #: loggers/SimplePostLogger.php:52
1710
- msgctxt "Post logger: search"
1711
- msgid "Posts restored"
1712
- msgstr "Indlæg gendannet"
1713
-
1714
- # @ simple-history
1715
- #: loggers/SimpleThemeLogger.php:36
1716
- msgctxt "Theme logger: search"
1717
- msgid "Themes & Widgets"
1718
- msgstr "Tema & Widgets"
1719
-
1720
- # @ simple-history
1721
- #: loggers/SimpleThemeLogger.php:38
1722
- msgctxt "Theme logger: search"
1723
- msgid "Switched themes"
1724
- msgstr "Skiftet temaer"
1725
-
1726
- # @ simple-history
1727
- #: loggers/SimpleThemeLogger.php:41
1728
- msgctxt "Theme logger: search"
1729
- msgid "Changed appearance of themes"
1730
- msgstr "Skiftet udseende på temaer"
1731
-
1732
- # @ simple-history
1733
- #: loggers/SimpleThemeLogger.php:44
1734
- msgctxt "Theme logger: search"
1735
- msgid "Added widgets"
1736
- msgstr "Tilføjet widgets"
1737
-
1738
- # @ simple-history
1739
- #: loggers/SimpleThemeLogger.php:47
1740
- msgctxt "Theme logger: search"
1741
- msgid "Removed widgets"
1742
- msgstr "Fjernet widgets"
1743
-
1744
- # @ simple-history
1745
- #: loggers/SimpleThemeLogger.php:50
1746
- msgctxt "Theme logger: search"
1747
- msgid "Changed widgets order"
1748
- msgstr "Ændret widget rækkefølge"
1749
-
1750
- # @ simple-history
1751
- #: loggers/SimpleThemeLogger.php:53
1752
- msgctxt "Theme logger: search"
1753
- msgid "Edited widgets"
1754
- msgstr "Ændret widgets"
1755
-
1756
- # @ simple-history
1757
- #: loggers/SimpleThemeLogger.php:56
1758
- msgctxt "Theme logger: search"
1759
- msgid "Background of themes changed"
1760
- msgstr "Baggrund og tema ændret"
1761
-
1762
- # @ simple-history
1763
- #: loggers/SimpleUserLogger.php:36
1764
- msgctxt "User destroys other login sessions for themself"
1765
- msgid "Logged out from all other sessions"
1766
- msgstr "Loggede ud fra alle andre sessioner"
1767
-
1768
- # @ simple-history
1769
- #: loggers/SimpleUserLogger.php:45
1770
- msgctxt "User destroys all login sessions for a user"
1771
- msgid "Logged out \"{user_display_name}\" from all sessions"
1772
- msgstr "Loggede ud \"{user_display_name}\" fra alle sessioner"
1773
-
1774
- # @ simple-history
1775
- #: templates/settings-statsRowsPerDay.php:36
1776
- msgctxt "stats: date in rows per day chart"
1777
- msgid "M j"
1778
- msgstr "j. F"
1779
-
1780
- # @ simple-history
1781
- #~ msgid "+%1$s more"
1782
- #~ msgstr "+%1$s more"
1783
-
1784
- # @ simple-history
1785
- #~ msgid "%1$d event today from one user."
1786
- #~ msgstr "%1$d event i dag fra én bruger."
1787
-
1788
- # @ simple-history
1789
- #~ msgid "Filter"
1790
- #~ msgstr "Filtrer"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/simple-history-de_DE.mo CHANGED
Binary file
languages/simple-history-de_DE.po CHANGED
@@ -1,1582 +1,376 @@
1
- # Copyright (C) 2014 Simple History
2
- # This file is distributed under the same license as the Simple History package.
 
 
 
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Simple History 2.0.3\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
7
- "POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
8
- "PO-Revision-Date: 2015-02-15 19:00+0100\n"
9
  "Last-Translator: Ralph Stenzel <ralph@klein-aber-fein.de>\n"
10
  "Language-Team: Ralph Stenzel <ralph@klein-aber-fein.de>\n"
11
  "Language: de_DE\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 1.7.4\n"
16
- "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
- "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
- "esc_html_x:1,2c\n"
19
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
- "X-Poedit-SourceCharset: UTF-8\n"
21
- "X-Poedit-Basepath: ../\n"
22
- "X-Textdomain-Support: yes\n"
23
- "X-Poedit-SearchPath-0: .\n"
24
-
25
- #: SimpleHistory.php:504 SimpleHistory.php:765
26
- msgid "Settings"
27
- msgstr "Einstellungen"
28
-
29
- #: SimpleHistory.php:515
30
- msgid "Log (debug)"
31
- msgstr "Logbuch (Fehlersuche)"
32
-
33
- #: SimpleHistory.php:520
34
- msgid "Styles example (debug)"
35
- msgstr "Stil-Beispiel (Fehlersuche)"
36
-
37
- #. Plugin Name of the plugin/theme
38
- #: SimpleHistory.php:780
39
- msgid "Simple History"
40
- msgstr "Simple History"
41
-
42
- #: SimpleHistory.php:856
43
- msgid "Remove all log items?"
44
- msgstr "Alle Einträge im Logbuch entfernen?"
45
-
46
- #: SimpleHistory.php:858
47
- msgid "Go to the first page"
48
- msgstr "Gehe zur ersten Seite"
49
-
50
- #: SimpleHistory.php:859
51
- msgid "Go to the previous page"
52
- msgstr "Gehe zur vorherigen Seite"
53
-
54
- #: SimpleHistory.php:860
55
- msgid "Go to the next page"
56
- msgstr "Gehe zur nächsten Seite"
57
-
58
- #: SimpleHistory.php:861
59
- msgid "Go to the last page"
60
- msgstr "Gehe zur letzten Seite"
61
-
62
- #: SimpleHistory.php:862
63
- msgid "Current page"
64
- msgstr "Aktuelle Seite"
65
-
66
- #: SimpleHistory.php:864
67
- msgid "Oups, the log could not be loaded right now."
68
- msgstr "Hoppla, das Logbuch konnte eben nicht geladen werden."
69
-
70
- #: SimpleHistory.php:865
71
- msgid "Your search did not match any history events."
72
- msgstr "Deine Suche erbrachte keine Übereinstimmungen mit Ereignissen."
73
-
74
- #: SimpleHistory.php:1149 SimpleHistory.php:1250
75
- msgid "Simple History Settings"
76
- msgstr "Simple History Einstellungen"
77
-
78
- #: SimpleHistory.php:1183
79
- msgid "No valid callback found"
80
- msgstr "Kein valider Rückruf gefunden"
81
-
82
- #: SimpleHistory.php:1271
83
- msgid "Cleared database"
84
- msgstr "Datenbank geleert"
85
-
86
- #: SimpleHistory.php:1298
87
- msgid "Show history"
88
- msgstr "Zeige Logbuch"
89
-
90
- #: SimpleHistory.php:1311
91
- msgid "Number of items per page"
92
- msgstr "Zahl der Einträge pro Seite"
93
-
94
- #: SimpleHistory.php:1323
95
- msgid "Clear log"
96
- msgstr "Logbuch leeren"
97
-
98
- #: SimpleHistory.php:1462
99
- msgid "on the dashboard"
100
- msgstr "auf dem Dashboard"
101
-
102
- #: SimpleHistory.php:1467
103
- msgid "as a page under the dashboard menu"
104
- msgstr "als eine Seite im Dashboard-Menü"
105
-
106
- #: SimpleHistory.php:1483
107
- msgid "Items in the database are automatically removed after %1$s days."
108
- msgstr "Einträge in der Datenbank werden nach %1$s Tagen automatisch entfernt."
109
-
110
- #: SimpleHistory.php:1485
111
- msgid "Items in the database are kept forever."
112
- msgstr "Einträge in der Datenbank werden auf ewig behalten."
113
 
114
- #: SimpleHistory.php:1489
115
- msgid "Clear log now"
116
- msgstr "Logbuch jetzt leeren"
117
 
118
- #: SimpleHistory.php:1533
119
- msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
120
- msgstr ""
121
- "Das Logbuch von Simple History wurde geleert ({num_rows} Zeilen wurden "
122
- "entfernt)."
123
 
124
- #: SimpleHistory.php:1793
125
- msgid "+%1$s similar event"
126
- msgid_plural "+%1$s similar events"
127
- msgstr[0] "+%1$s gleichartiges Ereignis"
128
- msgstr[1] "+%1$s gleichartige Ereignisse"
129
 
130
- #: SimpleHistory.php:1800
131
- msgid "Loading…"
132
- msgstr "Lade..."
133
 
134
- #: SimpleHistory.php:1807
135
- msgid "Showing %1$s more"
136
- msgstr "Zeige %1$s mehr"
137
 
138
- #: SimpleHistory.php:1826
139
- msgid "Context data"
140
- msgstr "Kontext-Daten"
141
 
142
- #: SimpleHistory.php:1827
143
- msgid "This is potentially useful meta data that a logger has saved."
144
- msgstr ""
145
- "Dies sind potentiell nützliche Meta-Daten, die ein Logger abgespeichert hat."
146
 
147
- #: SimpleHistory.php:2302
148
- msgid "No events today so far."
149
- msgstr "Heute sind noch keine Ereignisse aufgetreten."
150
 
151
- #: SimpleHistory.php:2321
152
- msgid "One event today from one user."
153
- msgstr "Ein Ereignis heute von einem Benutzer."
154
 
155
- #: SimpleHistory.php:2327
156
- msgid "One event today from one source."
157
- msgstr "Ein Ereignis heute aus einer Quelle."
158
 
159
- #: SimpleHistory.php:2333
160
- msgid "%1$d events today from one user."
161
- msgstr "%1$d Ereignisse heute von einem Benutzer."
162
-
163
- #: SimpleHistory.php:2339
164
- msgid "%1$d events today from %2$d users."
165
- msgstr "%1$d Ereignisse heute von %2$d Benutzern."
166
 
167
- #: SimpleHistory.php:2345 SimpleHistory.php:2351
168
- msgid "%1$d events today from one user and one other source."
169
- msgstr "%1$d Ereignisse heute von einem Benutzer und einer anderen Quelle."
170
 
171
- #: SimpleHistory.php:2357
172
- msgid "%1$d events today from one user and %3$d other sources."
173
- msgstr "%1$d Ereignisse heute von einem Benutzer und %3$d anderen Quellen."
174
 
175
- #: SimpleHistory.php:2363
176
- msgid "%1$s events today from %2$d users and %3$d other sources."
177
- msgstr "%1$s Ereignisse heute von %2$d Benutzern und %3$d anderen Quellen."
178
 
179
- #: dropins/SimpleHistoryDonateDropin.php:36
180
  msgid "Donate"
181
- msgstr "Spende"
182
 
183
- #: dropins/SimpleHistoryDonateDropin.php:72
184
- msgid ""
185
- "If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
186
- "href=\"%2$s\">buy me something from my Amazon wish list</a>."
187
- msgstr ""
188
- "Falls Du Simple History nützlich findest, <a href=\"%1$s\">spende</a> bitte "
189
- "oder <a href=\"%2$s\">kaufe mir etwas von meinem Amazon-Wunschzettel</a>."
190
-
191
- #: dropins/SimpleHistoryFilterDropin.php:44
192
- msgid "Filter history"
193
- msgstr "Filter-Historie"
194
-
195
- #: dropins/SimpleHistoryFilterDropin.php:48
196
- #: dropins/SimpleHistoryFilterDropin.php:159
197
- msgid "Search events"
198
- msgstr "Durchsuche Ereignisse"
199
-
200
- #: dropins/SimpleHistoryFilterDropin.php:56
201
- msgid "All log levels"
202
- msgstr "Alle Logbuch-Ebenen"
203
-
204
- #: dropins/SimpleHistoryFilterDropin.php:70
205
- msgid "All messages"
206
- msgstr "Alle Nachrichten"
207
-
208
- #: dropins/SimpleHistoryFilterDropin.php:124
209
- msgid "All users"
210
- msgstr "Alle Benutzer"
211
-
212
- #: dropins/SimpleHistoryFilterDropin.php:145
213
- msgid "All dates"
214
- msgstr "Alle Tage"
215
-
216
- #: dropins/SimpleHistoryFilterDropin.php:168
217
- msgid "Search"
218
- msgstr "Suche"
219
-
220
- #: dropins/SimpleHistoryNewRowsNotifier.php:80
221
- msgid "1 new row"
222
- msgid_plural "%d new rows"
223
- msgstr[0] "1 neue Zeile"
224
- msgstr[1] "%d neue Zeilen"
225
 
226
- #: dropins/SimpleHistoryRSSDropin.php:55
227
- msgid "Address"
228
- msgstr "Adresse"
229
 
230
- #: dropins/SimpleHistoryRSSDropin.php:64
231
- msgid "Regenerate"
232
- msgstr "Wiederherstellen"
233
 
234
- #: dropins/SimpleHistoryRSSDropin.php:81
235
- msgid "Created new secret RSS address"
236
- msgstr "Neue RSS-Geheim-Adresse erzeugt"
237
 
238
- #: dropins/SimpleHistoryRSSDropin.php:148
239
- #: dropins/SimpleHistoryRSSDropin.php:259
240
  msgid "History for %s"
241
- msgstr "Historie für"
242
 
243
- #: dropins/SimpleHistoryRSSDropin.php:149
244
- #: dropins/SimpleHistoryRSSDropin.php:260
245
  msgid "WordPress History for %s"
246
- msgstr "WordPress Historie für %s"
 
 
 
 
247
 
248
- #: dropins/SimpleHistoryRSSDropin.php:196
249
- msgid "+%1$s occasion"
250
- msgid_plural "+%1$s occasions"
251
- msgstr[0] "+%1$s Vorkommnis"
252
- msgstr[1] "+%1$s Vorkommnisse"
253
 
254
- #: dropins/SimpleHistoryRSSDropin.php:263
255
  msgid "Wrong RSS secret"
256
  msgstr "Falsche RSS-Geheimadresse"
257
 
258
- #: dropins/SimpleHistoryRSSDropin.php:264
259
  msgid ""
260
  "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
261
  "settings for current link to the RSS feed."
262
  msgstr ""
263
- "Deine RSS-Geheimadresse für den Simple-History-RSS-Feed ist falsch. Bitte "
264
- "schlage in den WordPress-Einstellungen die aktuelle Verlinkung des RSS-Feeds "
265
- "nach."
266
-
267
- #: dropins/SimpleHistoryRSSDropin.php:315
268
- msgid ""
269
- "You can generate a new address for the RSS feed. This is useful if you think "
270
- "that the address has fallen into the wrong hands."
271
- msgstr ""
272
- "Du kannst eine neue Adresse für den RSS-Feed erzeugen. Dies ist hilfreich "
273
- "falls Du denkst, daß die Adresse in die falschen Hände geraten sein könnte."
274
-
275
- #: dropins/SimpleHistoryRSSDropin.php:318
276
- msgid "Generate new address"
277
- msgstr "Erzeuge neue Adresse"
278
-
279
- #: dropins/SimpleHistoryRSSDropin.php:346
280
- msgid ""
281
- "Simple History has a RSS feed which you can subscribe to and receive log "
282
- "updates. Make sure you only share the feed with people you trust, since it "
283
- "can contain sensitive or confidential information."
284
- msgstr ""
285
- "Simple History hat einen RSS-Feed, den Du abonnieren kannst, um Updates in "
286
- "der Logdatei zu empfangen. Stelle sicher, daß Du den Feed nur Menschen Deines "
287
- "Vertrauens zugänglich machst, denn er kann sensible und vertrauliche "
288
- "Informationen enthalten."
289
-
290
- #: dropins/SimpleHistorySettingsLogtestDropin.php:20
291
- msgid "Test data (debug)"
292
- msgstr "Test-Daten (Fehlersuche)"
293
-
294
- #: dropins/SimpleHistorySettingsStatsDropin.php:27
295
- msgid "Stats"
296
- msgstr "Statistiken"
297
-
298
- #: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
299
- msgid "Just now"
300
- msgstr "gerade eben"
301
-
302
- #: index.php:59
303
- msgid ""
304
- "Simple History is a great plugin, but to use it your server must have at "
305
- "least PHP 5.3 installed (you have version %s)."
306
- msgstr ""
307
- "Simple History ist ein großartiges Plugin, aber zu seiner Benutzung muß Dein "
308
- "Server mindestens PHP 5.3 installiert haben (Du hast Version %s)."
309
-
310
- #: loggers/SimpleCommentsLogger.php:685
311
- msgid "Spam"
312
- msgstr "Spam"
313
-
314
- #: loggers/SimpleCommentsLogger.php:687
315
- msgid "Approved"
316
- msgstr "genehmigt"
317
-
318
- #: loggers/SimpleCommentsLogger.php:689
319
- msgid "Pending"
320
- msgstr "schwebend"
321
-
322
- #: loggers/SimpleCommentsLogger.php:703
323
- msgid "Trackback"
324
- msgstr "Trackback"
325
-
326
- #: loggers/SimpleCommentsLogger.php:705
327
- msgid "Pingback"
328
- msgstr "Pingback"
329
-
330
- #: loggers/SimpleCommentsLogger.php:707
331
- msgid "Comment"
332
- msgstr "Kommentar"
333
-
334
- #: loggers/SimpleCoreUpdatesLogger.php:29
335
- msgid "Updated WordPress from {prev_version} to {new_version}"
336
- msgstr "WordPress von {prev_version} auf {new_version} aktualisiert"
337
-
338
- #: loggers/SimpleCoreUpdatesLogger.php:30
339
- msgid "WordPress auto-updated from {prev_version} to {new_version}"
340
- msgstr "WordPress automatisch von {prev_version} auf {new_version} aktualisiert"
341
-
342
- #: loggers/SimpleExportLogger.php:23
343
- msgid "Created XML export"
344
- msgstr "XML-Export erzeugt"
345
-
346
- #: loggers/SimpleLegacyLogger.php:88
347
- msgid "By %s"
348
- msgstr "von %s"
349
 
350
- #: loggers/SimpleLegacyLogger.php:93
351
- msgid "%d occasions"
352
- msgstr "%d Vorkommnisse"
353
-
354
- #: loggers/SimpleLogger.php:203
355
- msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
356
- msgstr "gelöschter Benutzer (hatte ID %1$s, E-Mail %2$s, Login %3$s)"
357
-
358
- #: loggers/SimpleLogger.php:218
359
- msgid "Anonymous web user"
360
- msgstr "Anonymer Netz-Nutzer"
361
-
362
- #: loggers/SimpleLogger.php:226
363
- msgid "Anonymous user from %1$s"
364
- msgstr "Anonymer Benutzer von %1$s"
365
-
366
- #. translators: Date format for log row header, see http:php.net/date
367
- #: loggers/SimpleLogger.php:301
368
- msgid "M j, Y \\a\\t G:i"
369
- msgstr "j. M. Y \\u\\m G:i \\U\\h\\r"
370
-
371
- #. translators: 1: last modified date and time in human time diff-format
372
- #: loggers/SimpleLogger.php:309
373
- msgid "%1$s ago"
374
- msgstr "vor %1$s"
375
-
376
- #: loggers/SimpleMediaLogger.php:23
377
- msgid "Created {post_type} \"{attachment_title}\""
378
- msgstr "hat {post_type} \"{attachment_title}\" erzeugt"
379
-
380
- #: loggers/SimpleMediaLogger.php:24
381
- msgid "Edited {post_type} \"{attachment_title}\""
382
- msgstr "hat {post_type} \"{attachment_title}\" geändert"
383
-
384
- #: loggers/SimpleMediaLogger.php:25
385
- msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
386
- msgstr ""
387
- "hat {post_type} \"{attachment_title}\" (\"{attachment_filename}\") gelöscht"
388
-
389
- #: loggers/SimpleMediaLogger.php:81
390
- msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
391
- msgstr ""
392
- "hat {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a> geändert"
393
-
394
- #: loggers/SimpleMediaLogger.php:85
395
- msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
396
- msgstr ""
397
- "hat {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a> hochgeladen"
398
-
399
- #: loggers/SimpleMediaLogger.php:197
400
- msgid "{attachment_thumb}"
401
- msgstr "{attachment_thumb}"
402
-
403
- #: loggers/SimpleMediaLogger.php:206
404
- msgid "{attachment_size_format}"
405
- msgstr "{attachment_size_format}"
406
-
407
- #: loggers/SimpleMediaLogger.php:207
408
- msgid "{attachment_filetype_extension}"
409
- msgstr "{attachment_filetype_extension}"
410
-
411
- #: loggers/SimpleMediaLogger.php:209
412
- msgid "{full_image_width} × {full_image_height}"
413
- msgstr "{full_image_width} × {full_image_height}"
414
-
415
- #: loggers/SimpleMenuLogger.php:23
416
- msgid "Created menu \"{menu_name}\""
417
- msgstr "hat Menü \"{menu_name}\" erzeugt"
418
-
419
- #: loggers/SimpleMenuLogger.php:24
420
- msgid "Edited menu \"{menu_name}\""
421
- msgstr "hat Menü \"{menu_name}\" geändert"
422
-
423
- #: loggers/SimpleMenuLogger.php:25
424
- msgid "Deleted menu \"{menu_name}\""
425
- msgstr "hat Menü \"{menu_name}\" gelöscht"
426
-
427
- #: loggers/SimpleMenuLogger.php:26
428
- msgid "Edited a menu item"
429
- msgstr "hat Menü-Eintrag geändert"
430
-
431
- #: loggers/SimpleMenuLogger.php:27
432
- msgid "Updated menu locations"
433
- msgstr "hat Menü-Positionen aktualisiert"
434
-
435
- #: loggers/SimpleOptionsLogger.php:140
436
- msgid "Updated option \"{option}\""
437
- msgstr "hat Option \"{option}\" aktualisiert"
438
-
439
- #: loggers/SimpleOptionsLogger.php:242 loggers/SimpleThemeLogger.php:570
440
- msgid "New value"
441
- msgstr "neuer Wert"
442
-
443
- #: loggers/SimpleOptionsLogger.php:253 loggers/SimpleThemeLogger.php:582
444
- msgid "Old value"
445
- msgstr "alter Wert"
446
-
447
- #: loggers/SimpleOptionsLogger.php:268 loggers/SimpleOptionsLogger.php:285
448
- msgid "Settings page"
449
- msgstr "Einstellungs-Seite"
450
-
451
- #: loggers/SimplePostLogger.php:30
452
- msgid "Created {post_type} \"{post_title}\""
453
- msgstr "hat {post_type} \"{post_title}\" erzeugt"
454
 
455
- #: loggers/SimplePostLogger.php:31
456
- msgid "Updated {post_type} \"{post_title}\""
457
- msgstr "hat {post_type} \"{post_title}\" aktualisiert"
 
 
458
 
459
- #: loggers/SimplePostLogger.php:32
460
- msgid "Restored {post_type} \"{post_title}\" from trash"
461
- msgstr "hat {post_type} \"{post_title}\" aus dem Papierkorb wiederhergestellt"
462
 
463
- #: loggers/SimplePostLogger.php:33 loggers/SimplePostLogger.php:236
464
- msgid "Deleted {post_type} \"{post_title}\""
465
- msgstr "hat {post_type} \"{post_title}\" gelöscht"
466
 
467
- #: loggers/SimplePostLogger.php:34
468
- msgid "Moved {post_type} \"{post_title}\" to the trash"
469
- msgstr "hat {post_type} \"{post_title}\" in den Papierkorb verschoben"
470
 
471
- #: loggers/SimplePostLogger.php:232
472
- msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
473
- msgstr ""
474
- "hat {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> aktualisiert"
475
 
476
- #: loggers/SimplePostLogger.php:240
477
- msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
478
- msgstr "hat {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> erzeugt"
479
 
480
- #: loggers/SimplePostLogger.php:245
481
  msgid ""
482
- "Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
483
- msgstr ""
484
- "hat {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> in den "
485
- "Papierkorb verschoben"
486
-
487
- #: loggers/SimpleThemeLogger.php:26
488
- msgid "Switched theme to \"{theme_name}\" from \"{prev_theme_name}\""
489
- msgstr ""
490
- "hat zum Theme \"{theme_name}\" umgeschaltet von \"{prev_theme_name}\" aus"
491
-
492
- #: loggers/SimpleThemeLogger.php:27
493
- msgid "Customized theme appearance \"{setting_id}\""
494
- msgstr "hat Theme-Erscheinungsbild \"{setting_id}\" individualisiert"
495
-
496
- #: loggers/SimpleThemeLogger.php:28
497
- msgid "Removed widget \"{widget_id_base}\" from sidebar \"{sidebar_id}\""
498
- msgstr ""
499
- "hat Widget \"{widget_id_base}\" aus der Sidebar \"{sidebar_id}\" entfernt"
500
-
501
- #: loggers/SimpleThemeLogger.php:29
502
- msgid "Added widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
503
- msgstr ""
504
- "hat Widget \"{widget_id_base}\" zur Sidebar \"{sidebar_id}\" hinzugefügt"
505
-
506
- #: loggers/SimpleThemeLogger.php:30
507
- msgid "Changed widget order \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
508
- msgstr ""
509
- "hat Widget-Sortierung \"{widget_id_base}\" in der Sidebar \"{sidebar_id}\" "
510
- "geändert"
511
-
512
- #: loggers/SimpleThemeLogger.php:31
513
- msgid "Changed widget \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
514
- msgstr ""
515
- "hat Widget \"{widget_id_base}\" in der Sidebar \"{sidebar_id}\" geändert"
516
-
517
- #: loggers/SimpleThemeLogger.php:32
518
- msgid "Changed settings for the theme custom background"
519
  msgstr ""
520
- "hat Einstellungen für den selbstdefinierten Hintergrund des Themes geändert"
 
 
 
 
 
 
 
 
521
 
522
- #: loggers/SimpleThemeLogger.php:532
523
- msgid "Section"
524
- msgstr "Abschnitt"
525
 
526
- #: loggers/SimpleUserLogger.php:22
527
  msgid ""
528
- "Failed to login to account with username \"{login_user_login}\" because an "
529
- "incorrect password was entered"
530
  msgstr ""
531
- "Anmeldung mit dem Benutzernamen \"{login_user_login}\" fehlgeschlagen, weil "
532
- "ein falsches Paßwort eingegeben wurde"
533
 
534
- #: loggers/SimpleUserLogger.php:23
535
  msgid ""
536
- "Failed to login with username \"{failed_login_username}\" because no user "
537
- "with that username exists"
538
  msgstr ""
539
- "Anmeldung mit dem Benutzernamen \"{failed_login_username}\" fehlgeschlagen, "
540
- "weil kein Benutzer mit diesem Namen existiert"
541
-
542
- #: loggers/SimpleUserLogger.php:24
543
- msgid "Logged in"
544
- msgstr "hat sich angemeldet"
545
-
546
- #: loggers/SimpleUserLogger.php:25
547
- msgid "Unknown user logged in"
548
- msgstr "Unbekannter Benutzer hat sich angemeldet"
549
-
550
- #: loggers/SimpleUserLogger.php:26
551
- msgid "Logged out"
552
- msgstr "hat sich abgemeldet"
553
-
554
- #: loggers/SimpleUserLogger.php:27
555
- msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
556
- msgstr ""
557
- "hat das Profil des Benutzers {edited_user_login} ({edited_user_email}) "
558
- "geändert"
559
-
560
- #: loggers/SimpleUserLogger.php:28
561
- msgid ""
562
- "Created user {created_user_login} ({created_user_email}) with role "
563
- "{created_user_role}"
564
- msgstr ""
565
- "hat Benutzer {created_user_login} ({created_user_email}) mit der Rolle "
566
- "{created_user_role} erzeugt"
567
-
568
- #: loggers/SimpleUserLogger.php:29
569
- msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
570
- msgstr "hat den Benutzer {deleted_user_login} ({deleted_user_email}) gelöscht"
571
-
572
- #: loggers/SimpleUserLogger.php:227
573
- msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
574
- msgstr "hat <a href=\"{edit_profile_link}\">Dein Profil</a> geändert"
575
 
576
- #: loggers/SimpleUserLogger.php:231
577
- msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
578
- msgstr "hat <a href=\"{edit_profile_link}\">deren Profil</a> geändert"
579
 
580
- #: loggers/SimpleUserLogger.php:240
581
- msgid "Edited your profile"
582
- msgstr "hat Dein Profil geändert"
583
 
584
- #: loggers/SimpleUserLogger.php:251
585
- msgid ""
586
- "Edited the profile for user <a href="
587
- "\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
588
- msgstr ""
589
- "hat das Profil für den Benutzer <a href="
590
- "\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a> geändert"
591
-
592
- #: node_modules/grunt-wp-i18n/test/fixtures/basic-theme/exclude/file.php:3
593
- #: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/plugin-include.php:6
594
- msgid "Exclude"
595
- msgstr "Schließe aus"
596
-
597
- #: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/include/file.php:2
598
- msgid "Include"
599
- msgstr "Schließe ein"
600
-
601
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/add-domain.php:2
602
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:2
603
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3
604
- msgid "String"
605
- msgstr "String"
606
-
607
- #: templates/settings-statsIntro.php:19
608
- msgid "<b>%1$s rows</b> have been logged the last <b>%2$s days</b>"
609
- msgstr ""
610
- "<b>%1$s Einträge</b> sind in den letzten <b>%2$s Tagen</b> registriert worden"
611
-
612
- #: templates/settings-statsLogLevels.php:4
613
- msgid "Log levels"
614
- msgstr "Logbuch-Ebenen"
615
-
616
- #: templates/settings-statsLogLevels.php:6
617
- msgid "Number of rows logged for each log level."
618
- msgstr "Zahl der aufgezeichneten Zeilen pro Logbuch-Ebene"
619
 
620
- #: templates/settings-statsLoggers.php:4
621
- msgid "Loggers"
622
- msgstr "Logger"
623
 
624
- #: templates/settings-statsRowsPerDay.php:4
625
- msgid "Rows per day"
626
- msgstr "Zeilen pro Tag"
627
 
628
- #: templates/settings-statsUsers.php:4
629
- msgid "Users"
630
- msgstr "Benutzer"
631
 
632
- #: templates/settings-statsUsers.php:6
633
- msgid "Number of logged items for the 5 users with most logged rows."
634
- msgstr ""
635
- "Zahl der aufgezeichneten Vorkommnisse für die fünf Benutzer mit den meisten "
636
- "Aufzeichnungen."
637
 
638
- #: templates/settings-statsUsers.php:7
639
- msgid "Deleted users are also included."
640
- msgstr "Gelöschte Benutzer sind auch enthalten."
641
 
642
- #. Plugin URI of the plugin/theme
643
- msgid "http://simple-history.com"
644
- msgstr "http://simple-history.com"
645
 
646
- #. Description of the plugin/theme
647
- msgid ""
648
- "Plugin that logs various things that occur in WordPress and then presents "
649
- "those events in a very nice GUI."
650
- msgstr ""
651
- "Ein Plugin, welches diverse Dinge protokolliert, die in einer WordPress-"
652
- "Installation passieren (und das diese Vorkommnisse dann über eine sehr nette "
653
- "Bedieneroberfläche präsentiert)."
654
-
655
- #. Author of the plugin/theme
656
- msgid "Pär Thernström"
657
- msgstr "Pär Thernström"
658
-
659
- #. Author URI of the plugin/theme
660
- msgid "http://simple-history.com/"
661
- msgstr "http://simple-history.com/"
662
-
663
- #: SimpleHistory.php:249
664
- msgctxt ""
665
- "Message visible while waiting for log to load from server the first time"
666
- msgid "Loading history..."
667
- msgstr "Lade Historie..."
668
-
669
- #: SimpleHistory.php:286
670
- msgctxt "page n of n"
671
- msgid "of"
672
- msgstr "von"
673
 
674
- #: SimpleHistory.php:357
675
- msgctxt "API: not enought arguments passed"
676
- msgid "Not enough args specified"
677
- msgstr "Nicht genügend Argumente angegeben"
678
-
679
- #: SimpleHistory.php:1235
680
- msgctxt "dashboard menu name"
681
- msgid "Simple History"
682
- msgstr "Simple History"
683
-
684
- #: SimpleHistory.php:1359
685
- msgctxt "history page headline"
686
- msgid "Simple History"
687
- msgstr "Simple History"
688
-
689
- #: SimpleHistory.php:1619
690
- msgctxt "simple-history"
691
- msgid "Simple History removed one event that were older than {days} days"
692
- msgid_plural ""
693
- "Simple History removed {num_rows} events that were older than {days} days"
694
- msgstr[0] ""
695
- "Simple History hat 1 Ereignis entfernt welches älter als {days} Tage war"
696
- msgstr[1] ""
697
- "Simple History hat {num_rows} Ereignisse entfernt welche älter als {days} "
698
- "Tage waren"
699
-
700
- #: SimpleHistory.php:1963
701
- msgctxt "Log level in gui"
702
- msgid "emergency"
703
- msgstr "Notfall"
704
-
705
- #: SimpleHistory.php:1967
706
- msgctxt "Log level in gui"
707
- msgid "alert"
708
- msgstr "Alarm"
709
-
710
- #: SimpleHistory.php:1971
711
- msgctxt "Log level in gui"
712
- msgid "critical"
713
- msgstr "Kritisch"
714
-
715
- #: SimpleHistory.php:1975
716
- msgctxt "Log level in gui"
717
- msgid "error"
718
- msgstr "Fehler"
719
-
720
- #: SimpleHistory.php:1979
721
- msgctxt "Log level in gui"
722
- msgid "warning"
723
- msgstr "Warnung"
724
-
725
- #: SimpleHistory.php:1983
726
- msgctxt "Log level in gui"
727
- msgid "notice"
728
- msgstr "Hinweis"
729
-
730
- #: SimpleHistory.php:1987
731
- msgctxt "Log level in gui"
732
- msgid "info"
733
- msgstr "Information"
734
-
735
- #: SimpleHistory.php:1991
736
- msgctxt "Log level in gui"
737
- msgid "debug"
738
- msgstr "Fehlersuche"
739
-
740
- #: SimpleHistory.php:1996
741
- msgctxt "Log level in gui"
742
- msgid "Emergency"
743
- msgstr "Notfall"
744
-
745
- #: SimpleHistory.php:2000
746
- msgctxt "Log level in gui"
747
- msgid "Alert"
748
- msgstr "Alarm"
749
-
750
- #: SimpleHistory.php:2004
751
- msgctxt "Log level in gui"
752
- msgid "Critical"
753
- msgstr "Kritisch"
754
-
755
- #: SimpleHistory.php:2008
756
- msgctxt "Log level in gui"
757
- msgid "Error"
758
- msgstr "Fehler"
759
-
760
- #: SimpleHistory.php:2012
761
- msgctxt "Log level in gui"
762
- msgid "Warning"
763
- msgstr "Warnung"
764
-
765
- #: SimpleHistory.php:2016
766
- msgctxt "Log level in gui"
767
- msgid "Notice"
768
- msgstr "Hinweis"
769
-
770
- #: SimpleHistory.php:2020
771
- msgctxt "Log level in gui"
772
- msgid "Info"
773
- msgstr "Information"
774
-
775
- #: SimpleHistory.php:2024
776
- msgctxt "Log level in gui"
777
- msgid "Debug"
778
- msgstr "Fehlersuche"
779
-
780
- #: dropins/SimpleHistoryDonateDropin.php:51
781
- msgctxt "donate settings headline"
782
- msgid "Donate"
783
- msgstr "Spende"
784
-
785
- #: dropins/SimpleHistoryFilterDropin.php:50
786
- msgctxt "Filter dropin: button to show more search options"
787
- msgid "Show options"
788
- msgstr "Zeige Optionen"
789
-
790
- #: dropins/SimpleHistoryFilterDropin.php:160
791
- msgctxt "Filter dropin: button to hide more search options"
792
- msgid "Hide options"
793
- msgstr "Verberge Optionen"
794
-
795
- #: dropins/SimpleHistoryIpInfoDropin.php:66
796
- msgctxt "IP Info Dropin"
797
- msgid "That IP address does not seem like a public one."
798
- msgstr "Diese IP-Adresse scheint keine öffentliche zu sein."
799
-
800
- #: dropins/SimpleHistoryIpInfoDropin.php:85
801
- msgctxt "IP Info Dropin"
802
- msgid "IP address"
803
- msgstr "IP-Adresse"
804
-
805
- #: dropins/SimpleHistoryIpInfoDropin.php:96
806
- msgctxt "IP Info Dropin"
807
- msgid "Hostname"
808
- msgstr "Hostname"
809
-
810
- #: dropins/SimpleHistoryIpInfoDropin.php:107
811
- #: dropins/SimpleHistoryIpInfoDropin.php:118
812
- msgctxt "IP Info Dropin"
813
- msgid "Network"
814
- msgstr "Netzwerk"
815
-
816
- #: dropins/SimpleHistoryIpInfoDropin.php:129
817
- msgctxt "IP Info Dropin"
818
- msgid "City"
819
- msgstr "Stadt"
820
-
821
- #: dropins/SimpleHistoryIpInfoDropin.php:140
822
- msgctxt "IP Info Dropin"
823
- msgid "Region"
824
- msgstr "Region"
825
-
826
- #: dropins/SimpleHistoryIpInfoDropin.php:151
827
- msgctxt "IP Info Dropin"
828
- msgid "Country"
829
- msgstr "Land"
830
-
831
- #: dropins/SimpleHistoryIpInfoDropin.php:162
832
- msgctxt "IP Info Dropin"
833
- msgid "IP info provided by %1$s ipinfo.io %2$s"
834
- msgstr "IP-Info bereitgestellt durch %1$s ipinfo.io %2$s"
835
-
836
- #: dropins/SimpleHistoryNewRowsNotifier.php:38
837
- msgctxt "New rows notifier: error while checking for new rows"
838
- msgid "An error occured while checking for new log rows"
839
- msgstr ""
840
- "Während der Suche nach neuen Logbuch-Einträgen ist ein Fehler aufgetreten"
841
 
842
- #: dropins/SimpleHistoryRSSDropin.php:47
843
- msgctxt "rss settings headline"
844
- msgid "RSS feed"
845
- msgstr "RSS-Feed"
846
 
847
- #: dropins/SimpleHistorySidebarDropin.php:31
848
- msgctxt "Sidebar box"
849
- msgid "Simple History is on GitHub"
850
- msgstr "Simple History ist auf GitHub"
851
 
852
- #: dropins/SimpleHistorySidebarDropin.php:34
853
- msgctxt "Sidebar box"
854
- msgid ""
855
- "You can star, fork, or report issues with this plugin over at the <a href="
856
- "\"%1$s\">GitHub page</a>."
857
- msgstr ""
858
- "Drüben auf der <a href=\"%1$s\">GitHub-Website</a> kannst Du dieses Plugin "
859
- "bewerten, einen Fork abspalten oder Probleme melden."
860
 
861
- #: dropins/SimpleHistorySidebarDropin.php:48
862
- msgctxt "Sidebar box"
863
- msgid "Donate to support development"
864
- msgstr "Spende zur Unterstützung der weiteren Entwicklung"
865
 
866
- #: dropins/SimpleHistorySidebarDropin.php:51
867
- msgctxt "Sidebar box"
868
- msgid ""
869
- "If you like and use Simple History you should <a href=\"%1$s\">donate to keep "
870
- "this plugin free</a>."
871
- msgstr ""
872
- "Falls Dir dieses Plugin gefällt und Du es benutzt, solltest Du <a href=\"%1$s"
873
- "\">spenden, um das Plugin weiterhin kostenlos zu halten</a>."
874
 
875
- #: dropins/SimpleHistorySidebarDropin.php:65
876
- msgctxt "Sidebar box"
877
- msgid "Review this plugin if you like it"
878
- msgstr "Bespreche dieses Plugin, wenn es Dir gefällt"
879
 
880
- #: dropins/SimpleHistorySidebarDropin.php:68
881
- msgctxt "Sidebar box"
882
- msgid ""
883
- "If you like Simple History then please <a href=\"%1$s\">give it a nice review "
884
- "over at wordpress.org</a>."
885
- msgstr ""
886
- "Wenn Du Simple History magst, bitte <a href=\"%1$s\">verfasse drüben bei "
887
- "wordpress.org eine nette Besprechung darüber</a>."
888
 
889
- #: dropins/SimpleHistorySidebarDropin.php:72
890
- msgctxt "Sidebar box"
891
- msgid ""
892
- "A good review will help new users find this plugin. And it will make the "
893
- "plugin author very happy :)"
894
- msgstr ""
895
- "Eine positive Besprechung hilft neuen Benutzern, auf dieses Plugin aufmerksam "
896
- "zu werden. Und sie macht seinen Autor sehr glücklich! :)"
897
 
898
- #: loggers/SimpleCommentsLogger.php:95
899
- msgctxt "A comment was added to the database by a non-logged in internet user"
900
- msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
901
- msgstr ""
902
- "hat einen Kommentar zu {comment_post_type} \"{comment_post_title}\" "
903
- "hinzugefügt"
904
 
905
- #: loggers/SimpleCommentsLogger.php:101
906
- msgctxt "A comment was added to the database by a logged in user"
907
- msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
908
- msgstr ""
909
- "hat einen Kommentar zu {comment_post_type} \"{comment_post_title}\" "
910
- "hinzugefügt"
911
 
912
- #: loggers/SimpleCommentsLogger.php:107
913
- msgctxt "A comment was approved"
914
- msgid ""
915
- "Approved a comment to \"{comment_post_title}\" by {comment_author} "
916
- "({comment_author_email})"
917
- msgstr ""
918
- "hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
919
- "({comment_author_email}) genehmigt"
920
 
921
- #: loggers/SimpleCommentsLogger.php:113
922
- msgctxt "A comment was was unapproved"
923
- msgid ""
924
- "Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
925
- "({comment_author_email})"
926
- msgstr ""
927
- "hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
928
- "({comment_author_email}) verworfen"
929
 
930
- #: loggers/SimpleCommentsLogger.php:119
931
- msgctxt "A comment was marked as spam"
932
- msgid "Marked a comment to post \"{comment_post_title}\" as spam"
933
- msgstr ""
934
- "hat einen Kommentar zum Beitrag \"{comment_post_title}\" als Spam "
935
- "gekennzeichnet"
936
 
937
- #: loggers/SimpleCommentsLogger.php:125
938
- msgctxt "A comment was marked moved to the trash"
939
- msgid ""
940
- "Trashed a comment to \"{comment_post_title}\" by {comment_author} "
941
- "({comment_author_email})"
942
- msgstr ""
943
- "hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
944
- "({comment_author_email}) in den Papierkorb verschoben"
945
 
946
- #: loggers/SimpleCommentsLogger.php:131
947
- msgctxt "A comment was restored from the trash"
948
- msgid ""
949
- "Restored a comment to \"{comment_post_title}\" by {comment_author} "
950
- "({comment_author_email}) from the trash"
951
- msgstr ""
952
- "hat einen Kommentar zu \"{comment_post_title}\" von {comment_author} "
953
- "({comment_author_email}) aus dem Papierkorb wiederhergestellt"
954
 
955
- #: loggers/SimpleCommentsLogger.php:137
956
- msgctxt "A comment was deleted"
957
- msgid ""
958
- "Deleted a comment to \"{comment_post_title}\" by {comment_author} "
959
- "({comment_author_email})"
960
- msgstr ""
961
- "hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
962
- "({comment_author_email}) gelöscht"
963
 
964
- #: loggers/SimpleCommentsLogger.php:143
965
- msgctxt "A comment was edited"
966
  msgid ""
967
- "Edited a comment to \"{comment_post_title}\" by {comment_author} "
968
- "({comment_author_email})"
969
  msgstr ""
970
- "hat einen Kommentar zu \"{comment_post_title}\" by {comment_author} "
971
- "({comment_author_email}) geändert"
972
 
973
- #: loggers/SimpleCommentsLogger.php:150
974
- msgctxt "A trackback was added to the database by a non-logged in internet user"
975
- msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
976
- msgstr ""
977
- "hat einen Trackback zu {comment_post_type} \"{comment_post_title}\" "
978
- "hinzugefügt"
979
 
980
- #: loggers/SimpleCommentsLogger.php:205
981
- msgctxt "A trackback was added to the database by a non-logged in internet user"
982
- msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
983
- msgstr ""
984
- "hat ein Pingback zu {comment_post_type} \"{comment_post_title}\" hinzugefügt"
985
 
986
- #: loggers/SimpleCommentsLogger.php:156
987
- msgctxt "A trackback was added to the database by a logged in user"
988
- msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
989
- msgstr ""
990
- "hat einen Trackback zu {comment_post_type} \"{comment_post_title}\" "
991
- "hinzugefügt"
992
 
993
- #: loggers/SimpleCommentsLogger.php:162
994
- msgctxt "A trackback was approved"
995
- msgid ""
996
- "Approved a trackback to \"{comment_post_title}\" by {comment_author} "
997
- "({comment_author_email})"
998
- msgstr ""
999
- "hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
1000
- "({comment_author_email}) genehmigt"
1001
 
1002
- #: loggers/SimpleCommentsLogger.php:168
1003
- msgctxt "A trackback was was unapproved"
1004
- msgid ""
1005
- "Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
1006
- "({comment_author_email})"
1007
- msgstr ""
1008
- "hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
1009
- "({comment_author_email}) verworfen"
1010
 
1011
- #: loggers/SimpleCommentsLogger.php:174
1012
- msgctxt "A trackback was marked as spam"
1013
- msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
1014
- msgstr ""
1015
- "hat einen Trackback zum Beitrag \"{comment_post_title}\" als Spam "
1016
- "gekennzeichnet"
1017
 
1018
- #: loggers/SimpleCommentsLogger.php:180
1019
- msgctxt "A trackback was marked moved to the trash"
1020
- msgid ""
1021
- "Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
1022
- "({comment_author_email})"
1023
- msgstr ""
1024
- "hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
1025
- "({comment_author_email}) in den Papierkorb verschoben"
1026
 
1027
- #: loggers/SimpleCommentsLogger.php:186
1028
- msgctxt "A trackback was restored from the trash"
1029
- msgid ""
1030
- "Restored a trackback to \"{comment_post_title}\" by {comment_author} "
1031
- "({comment_author_email}) from the trash"
1032
- msgstr ""
1033
- "hat einen Trackback zu \"{comment_post_title}\" von {comment_author} "
1034
- "({comment_author_email}) aus dem Papierkorb wiederhergestellt"
1035
 
1036
- #: loggers/SimpleCommentsLogger.php:192
1037
- msgctxt "A trackback was deleted"
1038
- msgid ""
1039
- "Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
1040
- "({comment_author_email})"
1041
- msgstr ""
1042
- "hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
1043
- "({comment_author_email}) gelöscht"
1044
 
1045
- #: loggers/SimpleCommentsLogger.php:198
1046
- msgctxt "A trackback was edited"
1047
- msgid ""
1048
- "Edited a trackback to \"{comment_post_title}\" by {comment_author} "
1049
- "({comment_author_email})"
1050
- msgstr ""
1051
- "hat einen Trackback zu \"{comment_post_title}\" by {comment_author} "
1052
- "({comment_author_email}) geändert"
1053
 
1054
- #: loggers/SimpleCommentsLogger.php:211
1055
- msgctxt "A pingback was added to the database by a logged in user"
1056
- msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
1057
- msgstr ""
1058
- "hat ein Pingback zu {comment_post_type} \"{comment_post_title}\" hinzugefügt"
1059
 
1060
- #: loggers/SimpleCommentsLogger.php:217
1061
- msgctxt "A pingback was approved"
1062
- msgid ""
1063
- "Approved a pingback to \"{comment_post_title}\" by "
1064
- "\"{comment_author}\"\" ({comment_author_email})"
1065
- msgstr ""
1066
- "hat ein Pingback zu \"{comment_post_title}\" by "
1067
- "\"{comment_author}\"\" ({comment_author_email}) genehmigt"
1068
 
1069
- #: loggers/SimpleCommentsLogger.php:223
1070
- msgctxt "A pingback was was unapproved"
1071
- msgid ""
1072
- "Unapproved a pingback to \"{comment_post_title}\" by "
1073
- "\"{comment_author}\" ({comment_author_email})"
1074
- msgstr ""
1075
- "hat ein Pingback zu \"{comment_post_title}\" by "
1076
- "\"{comment_author}\" ({comment_author_email}) verworfen"
1077
 
1078
- #: loggers/SimpleCommentsLogger.php:229
1079
- msgctxt "A pingback was marked as spam"
1080
- msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
1081
- msgstr ""
1082
- "hat ein Pingback zum Beitrag \"{comment_post_title}\" als Spam gekennzeichnet"
1083
 
1084
- #: loggers/SimpleCommentsLogger.php:235
1085
- msgctxt "A pingback was marked moved to the trash"
1086
- msgid ""
1087
- "Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
1088
- "({comment_author_email})"
1089
- msgstr ""
1090
- "hat ein Pingback zu \"{comment_post_title}\" by {comment_author} "
1091
- "({comment_author_email}) in den Papierkorb verschoben"
1092
 
1093
- #: loggers/SimpleCommentsLogger.php:241
1094
- msgctxt "A pingback was restored from the trash"
1095
- msgid ""
1096
- "Restored a pingback to \"{comment_post_title}\" by {comment_author} "
1097
- "({comment_author_email}) from the trash"
1098
- msgstr ""
1099
- "hat ein Pingback zu \"{comment_post_title}\" von {comment_author} "
1100
- "({comment_author_email}) aus dem Papierkorb wiederhergestellt"
1101
 
1102
- #: loggers/SimpleCommentsLogger.php:247
1103
- msgctxt "A pingback was deleted"
1104
- msgid ""
1105
- "Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
1106
- "({comment_author_email})"
1107
- msgstr ""
1108
- "hat ein Pingback zu \"{comment_post_title}\" by {comment_author} "
1109
- "({comment_author_email}) gelöscht"
1110
 
1111
- #: loggers/SimpleCommentsLogger.php:253
1112
- msgctxt "A pingback was edited"
1113
- msgid ""
1114
- "Edited a pingback to \"{comment_post_title}\" by {comment_author} "
1115
- "({comment_author_email})"
1116
- msgstr ""
1117
- "hat ein Pingback zu \"{comment_post_title}\" by {comment_author} "
1118
- "({comment_author_email}) geändert"
1119
-
1120
- #: loggers/SimpleCommentsLogger.php:264
1121
- msgctxt "Comments logger: search"
1122
- msgid "Comments"
1123
- msgstr "Kommentare"
1124
-
1125
- #: loggers/SimpleCommentsLogger.php:265
1126
- msgctxt "Comments logger: search"
1127
- msgid "All comments activity"
1128
- msgstr "Alle Kommentar-Aktivitäten"
1129
-
1130
- #: loggers/SimpleCommentsLogger.php:267
1131
- msgctxt "Comments logger: search"
1132
- msgid "Added comments"
1133
- msgstr "hinzugefügte Kommentare"
1134
-
1135
- #: loggers/SimpleCommentsLogger.php:275
1136
- msgctxt "Comments logger: search"
1137
- msgid "Edited comments"
1138
- msgstr "geänderte Kommentare"
1139
-
1140
- #: loggers/SimpleCommentsLogger.php:280
1141
- msgctxt "Comments logger: search"
1142
- msgid "Approved comments"
1143
- msgstr "genehmigte Kommentare"
1144
-
1145
- #: loggers/SimpleCommentsLogger.php:285
1146
- msgctxt "Comments logger: search"
1147
- msgid "Held comments"
1148
- msgstr "zurückgehaltene Kommentare"
1149
-
1150
- #: loggers/SimpleCommentsLogger.php:290
1151
- msgctxt "Comments logger: search"
1152
- msgid "Comments status changed to spam"
1153
- msgstr "als Spam markierte Kommentare"
1154
-
1155
- #: loggers/SimpleCommentsLogger.php:295
1156
- msgctxt "Comments logger: search"
1157
- msgid "Trashed comments"
1158
- msgstr "in den Papierkorb verschobene Kommentare "
1159
-
1160
- #: loggers/SimpleCommentsLogger.php:300
1161
- msgctxt "Comments logger: search"
1162
- msgid "Untrashed comments"
1163
- msgstr "wiederhergestellte Kommentare"
1164
-
1165
- #: loggers/SimpleCommentsLogger.php:305
1166
- msgctxt "Comments logger: search"
1167
- msgid "Deleted comments"
1168
- msgstr "gelöschte Kommentare"
1169
-
1170
- #: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
1171
- #: loggers/SimpleCommentsLogger.php:629
1172
- msgctxt "comments logger - detailed output comment status"
1173
- msgid "Status"
1174
- msgstr "Status"
1175
-
1176
- #: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
1177
- #: loggers/SimpleCommentsLogger.php:631
1178
- msgctxt "comments logger - detailed output author"
1179
- msgid "Name"
1180
- msgstr "Name"
1181
-
1182
- #: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
1183
- #: loggers/SimpleCommentsLogger.php:632
1184
- msgctxt "comments logger - detailed output email"
1185
- msgid "Email"
1186
- msgstr "E-Mail"
1187
-
1188
- #: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
1189
- msgctxt "comments logger - detailed output content"
1190
- msgid "Content"
1191
- msgstr "Inhalt"
1192
-
1193
- #: loggers/SimpleCommentsLogger.php:633
1194
- msgctxt "comments logger - detailed output content"
1195
- msgid "Comment"
1196
- msgstr "Kommentar"
1197
-
1198
- #: loggers/SimpleCommentsLogger.php:759
1199
- msgctxt "comments logger - edit comment"
1200
- msgid "View/Edit"
1201
- msgstr "Betrachte/Ändere"
1202
-
1203
- #: loggers/SimpleCoreUpdatesLogger.php:34
1204
- msgctxt "User logger: search"
1205
- msgid "WordPress Core"
1206
- msgstr "WordPress-Kern"
1207
-
1208
- #: loggers/SimpleCoreUpdatesLogger.php:36
1209
- msgctxt "User logger: search"
1210
- msgid "WordPress core updates"
1211
- msgstr "WordPress-Kern-Aktualisierungen"
1212
-
1213
- #: loggers/SimpleUserLogger.php:54
1214
- msgctxt "User logger: search"
1215
- msgid "Users"
1216
- msgstr "Benutzer"
1217
 
1218
- #: loggers/SimpleUserLogger.php:55
1219
- msgctxt "User logger: search"
1220
- msgid "All user activity"
1221
- msgstr "Alle Benutzer-Aktivitäten"
1222
-
1223
- #: loggers/SimpleUserLogger.php:57
1224
- msgctxt "User logger: search"
1225
- msgid "Successful user logins"
1226
- msgstr "erfolgreiche Benutzer-Anmeldungen"
1227
-
1228
- #: loggers/SimpleUserLogger.php:61
1229
- msgctxt "User logger: search"
1230
- msgid "Failed user logins"
1231
- msgstr "fehlgeschlagene Benutzer-Anmeldungen"
1232
-
1233
- #: loggers/SimpleUserLogger.php:65
1234
- msgctxt "User logger: search"
1235
- msgid "User logouts"
1236
- msgstr "Benutzer-Abmeldungen"
1237
-
1238
- #: loggers/SimpleUserLogger.php:68
1239
- msgctxt "User logger: search"
1240
- msgid "Created users"
1241
- msgstr "Benutzer erzeugt"
1242
-
1243
- #: loggers/SimpleUserLogger.php:71
1244
- msgctxt "User logger: search"
1245
- msgid "User profile updates"
1246
- msgstr "Benutzerprofil-Aktualisierungen"
1247
-
1248
- #: loggers/SimpleUserLogger.php:74
1249
- msgctxt "User logger: search"
1250
- msgid "User deletions"
1251
- msgstr "Löschungen von Benutzern"
1252
-
1253
- #: loggers/SimpleExportLogger.php:27
1254
- msgctxt "Export logger: search"
1255
- msgid "Export"
1256
- msgstr "Export"
1257
-
1258
- #: loggers/SimpleExportLogger.php:29
1259
- msgctxt "Export logger: search"
1260
- msgid "Created exports"
1261
- msgstr "erstellte Exporte"
1262
-
1263
- #: loggers/SimpleLogger.php:190
1264
- msgctxt "header output when initiator is the currently logged in user"
1265
- msgid "You"
1266
- msgstr "Dein eigener Benutzername"
1267
-
1268
- #: loggers/SimpleMediaLogger.php:29
1269
- msgctxt "Media logger: search"
1270
- msgid "Media"
1271
- msgstr "Medien-Dateien"
1272
-
1273
- #: loggers/SimpleMediaLogger.php:31
1274
- msgctxt "Media logger: search"
1275
- msgid "Added media"
1276
- msgstr "hinzugefügte Medien-Dateien"
1277
-
1278
- #: loggers/SimpleMediaLogger.php:34
1279
- msgctxt "Media logger: search"
1280
- msgid "Updated media"
1281
- msgstr "aktualsierte Medien-Dateien"
1282
-
1283
- #: loggers/SimpleMediaLogger.php:37
1284
- msgctxt "Media logger: search"
1285
- msgid "Deleted media"
1286
- msgstr "gelöschte Medien-Dateien"
1287
-
1288
- #: loggers/SimpleMenuLogger.php:31
1289
- msgctxt "Menu logger: search"
1290
- msgid "Menus"
1291
- msgstr "Menüs"
1292
-
1293
- #: loggers/SimpleMenuLogger.php:33
1294
- msgctxt "Menu updates logger: search"
1295
- msgid "Created menus"
1296
- msgstr "erstellte Menüs"
1297
-
1298
- #: loggers/SimpleMenuLogger.php:36
1299
- msgctxt "Menu updates logger: search"
1300
- msgid "Edited menus"
1301
- msgstr "geänderte Menüs"
1302
-
1303
- #: loggers/SimpleMenuLogger.php:41
1304
- msgctxt "Menu updates logger: search"
1305
- msgid "Deleted menus"
1306
- msgstr "gelöschte Menüs"
1307
-
1308
- #: loggers/SimpleMenuLogger.php:326
1309
- msgctxt "menu logger"
1310
- msgid "%1$s menu item added"
1311
- msgid_plural "%1$s menu items added"
1312
- msgstr[0] "%1$s hinzugefügter Menü-Eintrag"
1313
- msgstr[1] "%1$s hinzugefügte Menü-Einträge"
1314
-
1315
- #: loggers/SimpleMenuLogger.php:333
1316
- msgctxt "menu logger"
1317
- msgid "%1$s menu item removed"
1318
- msgid_plural "%1$s menu items removed"
1319
- msgstr[0] "%1$s entfernter Menü-Eintrag"
1320
- msgstr[1] "%1$s entfernte Menü-Einträge"
1321
-
1322
- #: loggers/SimpleOptionsLogger.php:153
1323
- msgctxt "Options logger: search"
1324
- msgid "Options"
1325
- msgstr "Optionen"
1326
-
1327
- #: loggers/SimpleOptionsLogger.php:155
1328
- msgctxt "Options logger: search"
1329
- msgid "Changed options"
1330
- msgstr "geänderte Optionen"
1331
-
1332
- #: loggers/SimplePluginLogger.php:51
1333
- msgctxt "Plugin was non-silently activated by a user"
1334
- msgid "Activated plugin \"{plugin_name}\""
1335
- msgstr "hat Plugin \"{plugin_name}\" aktiviert"
1336
-
1337
- #: loggers/SimplePluginLogger.php:57
1338
- msgctxt "Plugin was non-silently deactivated by a user"
1339
- msgid "Deactivated plugin \"{plugin_name}\""
1340
- msgstr "hat Plugin \"{plugin_name}\" deaktiviert"
1341
-
1342
- #: loggers/SimplePluginLogger.php:63
1343
- msgctxt "Plugin was installed"
1344
- msgid "Installed plugin \"{plugin_name}\""
1345
- msgstr "hat Plugin \"{plugin_name}\" installiert"
1346
-
1347
- #: loggers/SimplePluginLogger.php:69
1348
- msgctxt "Plugin failed to install"
1349
- msgid "Failed to install plugin \"{plugin_name}\""
1350
- msgstr "hat vergeblich versucht, das Plugin \"{plugin_name}\" zu installieren"
1351
-
1352
- #: loggers/SimplePluginLogger.php:75
1353
- msgctxt "Plugin was updated"
1354
- msgid ""
1355
- "Updated plugin \"{plugin_name}\" to version {plugin_version} from "
1356
- "{plugin_prev_version}"
1357
- msgstr ""
1358
- "hat Plugin \"{plugin_name}\" auf Version {plugin_version} von "
1359
- "{plugin_prev_version} aktualisiert"
1360
-
1361
- #: loggers/SimplePluginLogger.php:81
1362
- msgctxt "Plugin update failed"
1363
- msgid "Updated plugin \"{plugin_name}\""
1364
- msgstr "hat Plugin \"{plugin_name}\" aktualisiert"
1365
-
1366
- #: loggers/SimplePluginLogger.php:87
1367
- msgctxt "Plugin file edited"
1368
- msgid "Edited plugin file \"{plugin_edited_file}\""
1369
- msgstr "hat die Plugin-Datei \"{plugin_edited_file}\" geändert"
1370
-
1371
- #: loggers/SimplePluginLogger.php:93
1372
- msgctxt "Plugin files was deleted"
1373
- msgid "Deleted plugin \"{plugin_name}\""
1374
- msgstr "hat Plugin \"{plugin_name}\" gelöscht"
1375
-
1376
- #: loggers/SimplePluginLogger.php:100
1377
- msgctxt "Plugin was updated in bulk"
1378
- msgid ""
1379
- "Updated plugin \"{plugin_name}\" to {plugin_version} from "
1380
- "{plugin_prev_version}"
1381
- msgstr ""
1382
- "hat Plugin \"{plugin_name}\" auf {plugin_version} von {plugin_prev_version} "
1383
- "aktualisiert"
1384
-
1385
- #: loggers/SimplePluginLogger.php:108
1386
- msgctxt "Plugin logger: search"
1387
- msgid "Plugins"
1388
- msgstr "Plugins"
1389
-
1390
- #: loggers/SimplePluginLogger.php:110
1391
- msgctxt "Plugin logger: search"
1392
- msgid "Activated plugins"
1393
- msgstr "aktivierte Plugins"
1394
-
1395
- #: loggers/SimplePluginLogger.php:113
1396
- msgctxt "Plugin logger: search"
1397
- msgid "Deactivated plugins"
1398
- msgstr "deaktivierte Plugins"
1399
-
1400
- #: loggers/SimplePluginLogger.php:116
1401
- msgctxt "Plugin logger: search"
1402
- msgid "Installed plugins"
1403
- msgstr "installierte Plugins"
1404
-
1405
- #: loggers/SimplePluginLogger.php:119
1406
- msgctxt "Plugin logger: search"
1407
- msgid "Failed plugin installs"
1408
- msgstr "fehlgeschlagene Plugin-Installationen"
1409
-
1410
- #: loggers/SimplePluginLogger.php:122
1411
- msgctxt "Plugin logger: search"
1412
- msgid "Updated plugins"
1413
- msgstr "aktualisierte Plugins"
1414
-
1415
- #: loggers/SimplePluginLogger.php:126
1416
- msgctxt "Plugin logger: search"
1417
- msgid "Failed plugin updates"
1418
- msgstr "fehlgeschlagene Plugin-Updates"
1419
-
1420
- #: loggers/SimplePluginLogger.php:129
1421
- msgctxt "Plugin logger: search"
1422
- msgid "Edited plugin files"
1423
- msgstr "geänderte Plugin-Dateien"
1424
-
1425
- #: loggers/SimplePluginLogger.php:132
1426
- msgctxt "Plugin logger: search"
1427
- msgid "Deleted plugins"
1428
- msgstr "gelöschte Plugins"
1429
-
1430
- #: loggers/SimplePluginLogger.php:887
1431
- msgctxt "plugin logger - detailed output version"
1432
- msgid "Version"
1433
- msgstr "Version"
1434
-
1435
- #: loggers/SimplePluginLogger.php:889
1436
- msgctxt "plugin logger - detailed output author"
1437
- msgid "Author"
1438
- msgstr "Autor"
1439
-
1440
- #: loggers/SimplePluginLogger.php:891
1441
- msgctxt "plugin logger - detailed output author"
1442
- msgid "Requires"
1443
- msgstr "erfordert"
1444
-
1445
- #: loggers/SimplePluginLogger.php:890
1446
- msgctxt "plugin logger - detailed output url"
1447
- msgid "URL"
1448
- msgstr "URL"
1449
-
1450
- #: loggers/SimplePluginLogger.php:892
1451
- msgctxt "plugin logger - detailed output compatible"
1452
- msgid "Compatible up to"
1453
- msgstr "kompatibel bis zu"
1454
-
1455
- #: loggers/SimplePluginLogger.php:893
1456
- msgctxt "plugin logger - detailed output downloaded"
1457
- msgid "Downloads"
1458
- msgstr "Downloads"
1459
-
1460
- #: loggers/SimplePluginLogger.php:953
1461
- msgctxt "plugin logger: plugin info thickbox title view all info"
1462
- msgid "View plugin info"
1463
- msgstr "Zeige Plugin-Info"
1464
-
1465
- #: loggers/SimplePluginLogger.php:968
1466
- msgctxt "plugin logger: plugin info thickbox title"
1467
- msgid "View plugin info"
1468
- msgstr "Zeige Plugin-Info"
1469
-
1470
- #: loggers/SimplePluginLogger.php:972
1471
- msgctxt "plugin logger: plugin info thickbox title"
1472
- msgid "View changelog"
1473
- msgstr "Zeige Changelog"
1474
-
1475
- #: loggers/SimplePostLogger.php:38
1476
- msgctxt "Post logger: search"
1477
- msgid "Posts & Pages"
1478
- msgstr "Beiträge & Seiten"
1479
-
1480
- #: loggers/SimplePostLogger.php:40
1481
- msgctxt "Post logger: search"
1482
- msgid "Posts created"
1483
- msgstr "erzeugte Beiträge"
1484
-
1485
- #: loggers/SimplePostLogger.php:43
1486
- msgctxt "Post logger: search"
1487
- msgid "Posts updated"
1488
- msgstr "aktualisierte Beiträge"
1489
-
1490
- #: loggers/SimplePostLogger.php:46
1491
- msgctxt "Post logger: search"
1492
- msgid "Posts trashed"
1493
- msgstr "In den Papierkorb verschobene Beiträge"
1494
-
1495
- #: loggers/SimplePostLogger.php:49
1496
- msgctxt "Post logger: search"
1497
- msgid "Posts deleted"
1498
- msgstr "gelöschte Beiträge"
1499
-
1500
- #: loggers/SimplePostLogger.php:52
1501
- msgctxt "Post logger: search"
1502
- msgid "Posts restored"
1503
- msgstr "wiederhergestellte Beiträge"
1504
-
1505
- #: loggers/SimpleThemeLogger.php:36
1506
- msgctxt "Theme logger: search"
1507
- msgid "Themes & Widgets"
1508
- msgstr "Themes & Widgets"
1509
-
1510
- #: loggers/SimpleThemeLogger.php:38
1511
- msgctxt "Theme logger: search"
1512
- msgid "Switched themes"
1513
- msgstr "gewechselte Themes"
1514
-
1515
- #: loggers/SimpleThemeLogger.php:41
1516
- msgctxt "Theme logger: search"
1517
- msgid "Changed appearance of themes"
1518
- msgstr "geänderte Erscheinungsbilder von Themes"
1519
-
1520
- #: loggers/SimpleThemeLogger.php:44
1521
- msgctxt "Theme logger: search"
1522
- msgid "Added widgets"
1523
- msgstr "hinzugefügte Widgets"
1524
-
1525
- #: loggers/SimpleThemeLogger.php:47
1526
- msgctxt "Theme logger: search"
1527
- msgid "Removed widgets"
1528
- msgstr "entfernte Widgets"
1529
-
1530
- #: loggers/SimpleThemeLogger.php:50
1531
- msgctxt "Theme logger: search"
1532
- msgid "Changed widgets order"
1533
- msgstr "umsortierte Widgets"
1534
-
1535
- #: loggers/SimpleThemeLogger.php:53
1536
- msgctxt "Theme logger: search"
1537
- msgid "Edited widgets"
1538
- msgstr "geänderte Widgets"
1539
-
1540
- #: loggers/SimpleThemeLogger.php:56
1541
- msgctxt "Theme logger: search"
1542
- msgid "Background of themes changed"
1543
- msgstr "geänderte Theme-Hintergründe"
1544
-
1545
- #: loggers/SimpleUserLogger.php:36
1546
- msgctxt "User destroys other login sessions for themself"
1547
- msgid "Logged out from all other sessions"
1548
- msgstr "hat sich von allen anderen Sitzungen abgemeldet"
1549
-
1550
- #: loggers/SimpleUserLogger.php:45
1551
- msgctxt "User destroys all login sessions for a user"
1552
- msgid "Logged out \"{user_display_name}\" from all sessions"
1553
- msgstr "hat den Benutzer \"{user_display_name}\" von allen Sitzungen abgemeldet"
1554
-
1555
- #: templates/settings-statsRowsPerDay.php:36
1556
- msgctxt "stats: date in rows per day chart"
1557
- msgid "M j"
1558
- msgstr "M j"
1559
-
1560
- #~ msgid "Filter"
1561
- #~ msgstr "Filter"
1562
-
1563
- #~ msgid "+%1$s more"
1564
- #~ msgstr "+%1$s mehr"
1565
-
1566
- #~ msgid "%1$d event today from one user."
1567
- #~ msgstr "%1$d Ereignis heute von einem Benutzer."
1568
-
1569
- #~ msgid "History"
1570
- #~ msgstr "Historie"
1571
-
1572
- #~ msgid "This is potentially useful meta data that a logger have saved."
1573
- #~ msgstr ""
1574
- #~ "Dies sind potentiell nützliche Meta-Daten, die ein Logger abgespeichert "
1575
- #~ "hat."
1576
-
1577
- #~ msgid ""
1578
- #~ "Failed to login with username \"{failed_login_username}\" because no user "
1579
- #~ "with that username exist"
1580
- #~ msgstr ""
1581
- #~ "Anmeldung mit dem Benutzernamen \"{failed_login_username}\" "
1582
- #~ "fehlgeschlagen, weil kein Benutzer mit diesem Namen existiert"
1
+ # Translation of the WordPress plugin by .
2
+ # Copyright (C) 2010
3
+ # This file is distributed under the same license as the package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
5
+ #
6
  msgid ""
7
  msgstr ""
8
+ "Project-Id-Version: Simple History 0.4\n"
9
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/simple-history\n"
10
+ "POT-Creation-Date: 2012-09-29 16:38:52+00:00\n"
11
+ "PO-Revision-Date: 2012-09-29 22:58+0100\n"
12
  "Last-Translator: Ralph Stenzel <ralph@klein-aber-fein.de>\n"
13
  "Language-Team: Ralph Stenzel <ralph@klein-aber-fein.de>\n"
14
  "Language: de_DE\n"
15
  "MIME-Version: 1.0\n"
16
  "Content-Type: text/plain; charset=UTF-8\n"
17
  "Content-Transfer-Encoding: 8bit\n"
18
+ "X-Poedit-SourceCharset: utf-8\n"
19
+ "X-Generator: Poedit 1.5.3\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
+ #: index.php:66
22
+ msgid "approved"
23
+ msgstr "genehmigt"
24
 
25
+ #: index.php:67
26
+ msgid "unapproved"
27
+ msgstr "nicht genehmigt"
 
 
28
 
29
+ #: index.php:68
30
+ msgid "marked as spam"
31
+ msgstr "als Spam gekennzeichnet"
 
 
32
 
33
+ #: index.php:69
34
+ msgid "trashed"
35
+ msgstr "verworfen"
36
 
37
+ #: index.php:70
38
+ msgid "untrashed"
39
+ msgstr "wiederhergestellt"
40
 
41
+ #: index.php:71
42
+ msgid "created"
43
+ msgstr "erzeugt"
44
 
45
+ #: index.php:72
46
+ msgid "deleted"
47
+ msgstr "gelöscht"
 
48
 
49
+ #: index.php:73
50
+ msgid "updated"
51
+ msgstr "aktualisiert"
52
 
53
+ #: index.php:74
54
+ msgid "nav_menu_item"
55
+ msgstr "nav_menu_item"
56
 
57
+ #: index.php:75 index.php:1419
58
+ msgid "attachment"
59
+ msgstr "Anhang"
60
 
61
+ #: index.php:76 index.php:1452
62
+ msgid "user"
63
+ msgstr "Benutzer"
 
 
 
 
64
 
65
+ #: index.php:77
66
+ msgid "settings page"
67
+ msgstr "Einstellungen"
68
 
69
+ #: index.php:90 index.php:238 index.php:878
70
+ msgid "History"
71
+ msgstr "Änderungsprotokoll"
72
 
73
+ #: index.php:150
74
+ msgid "WordPress %1$s"
75
+ msgstr "WordPress %1$s"
76
 
77
+ #: index.php:163 index.php:253
78
  msgid "Donate"
79
+ msgstr "Spenden Sie"
80
 
81
+ #: index.php:224 index.php:245
82
+ msgid "Simple History Settings"
83
+ msgstr "Simple History-Einstellungen"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
 
85
+ #: index.php:250
86
+ msgid "Show Simple History"
87
+ msgstr "Zeige Änderungsprotokoll"
88
 
89
+ #: index.php:251 index.php:1580
90
+ msgid "RSS feed"
91
+ msgstr "RSS-Feed"
92
 
93
+ #: index.php:252
94
+ msgid "Clear log"
95
+ msgstr "Protokoll zurücksetzen"
96
 
97
+ #: index.php:293 index.php:336
 
98
  msgid "History for %s"
99
+ msgstr "Änderungsprotokoll für %s"
100
 
101
+ #: index.php:294 index.php:337
 
102
  msgid "WordPress History for %s"
103
+ msgstr "WordPress-Änderungsprotokoll für %s"
104
+
105
+ #: index.php:306
106
+ msgid "By %s"
107
+ msgstr "Von %s"
108
 
109
+ #: index.php:310
110
+ msgid "%d occasions"
111
+ msgstr "%d Ereignisse"
 
 
112
 
113
+ #: index.php:341
114
  msgid "Wrong RSS secret"
115
  msgstr "Falsche RSS-Geheimadresse"
116
 
117
+ #: index.php:342
118
  msgid ""
119
  "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
120
  "settings for current link to the RSS feed."
121
  msgstr ""
122
+ "Ihre RSS-Geheimadresse für den Simple History RSS-Feed ist falsch. Bitte "
123
+ "überprüfen Sie die WordPress-Einstellungen hinsichtlich des momentanen Links "
124
+ "zum RSS-Feed."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
 
126
+ #: index.php:362 index.php:1060
127
+ msgid "By all users"
128
+ msgstr "Alle Benutzer"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
 
130
+ #: index.php:411 index.php:1112
131
+ msgid "One item"
132
+ msgid_plural "%1$d items"
133
+ msgstr[0] ""
134
+ msgstr[1] ""
135
 
136
+ #: index.php:452
137
+ msgid "on the dashboard"
138
+ msgstr "auf dem Armaturenbrett (Dashboard)"
139
 
140
+ #: index.php:457
141
+ msgid "as a page under the dashboard menu"
142
+ msgstr "als eine Seite im Dashboard-Menü"
143
 
144
+ #: index.php:472
145
+ msgid "Cleared database"
146
+ msgstr "Datenbank geleert!"
147
 
148
+ #: index.php:480
149
+ msgid "Items in the database are automatically removed after 60 days."
150
+ msgstr "Einträge in der Datenbank werden nach 60 Tagen automatisch entfernt."
 
151
 
152
+ #: index.php:482
153
+ msgid "Clear it now."
154
+ msgstr "Datenbank jetzt leeren."
155
 
156
+ #: index.php:496
157
  msgid ""
158
+ "\n"
159
+ "\t\t\tPlease\n"
160
+ "\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
161
+ "utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory\">\n"
162
+ "\t\t\tdonate\n"
163
+ "\t\t\t</a> to support the development of this plugin and to keep it free.\n"
164
+ "\t\t\tThanks!\n"
165
+ "\t\t\t"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  msgstr ""
167
+ "\n"
168
+ "\t\t\tBitte\n"
169
+ "\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
170
+ "utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory\">\n"
171
+ "\t\t\tspenden Sie,\n"
172
+ "\t\t\t</a> um die Weiterentwicklung dieses Plugins zu unterstützen, und "
173
+ "damit es auch in Zukunft kostenlos bleiben kann.\n"
174
+ "\t\t\tDanke!\n"
175
+ "\t\t\t"
176
 
177
+ #: index.php:532
178
+ msgid "Created new secret RSS adress"
179
+ msgstr "Neue geheime RSS-Adresse erstellt"
180
 
181
+ #: index.php:543
182
  msgid ""
183
+ "This is a secret RSS feed for Simple History. Only share the link with "
184
+ "people you trust"
185
  msgstr ""
186
+ "Dies ist ein geheimer RSS-Feed für Simple History. Teilen Sie das Link nur "
187
+ "mit Menschen Ihres Vertrauens!"
188
 
189
+ #: index.php:546
190
  msgid ""
191
+ "You can <a href='%s'>generate a new address</a> for the RSS feed. This is "
192
+ "useful if you think that the address has fallen into the wrong hands."
193
  msgstr ""
194
+ "Sie können für den RSS-Feed <a href='%s'>eine neue Adresse erstellen</a> "
195
+ "lassen. Dies ist hilfreich, wenn Sie den Verdacht haben, daß die bisherige "
196
+ "Adresse in falsche Hände gekommen sein könnte."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
 
198
+ #: index.php:569 index.php:585 index.php:617
199
+ msgid "From %1$s on %2$s"
200
+ msgstr "Von %1$s am %2$s"
201
 
202
+ #: index.php:971
203
+ msgid "All types"
204
+ msgstr "Alle Arten"
205
 
206
+ #: index.php:1079
207
+ msgid "Search"
208
+ msgstr "Suche"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
209
 
210
+ #: index.php:1116
211
+ msgid "Go to the first page"
212
+ msgstr "Gehe zur ersten Seite"
213
 
214
+ #: index.php:1117
215
+ msgid "Go to the previous page"
216
+ msgstr "Gehe zur vorherigen Seite"
217
 
218
+ #: index.php:1118
219
+ msgid "Current page"
220
+ msgstr "Aktuelle Seite"
221
 
222
+ #: index.php:1119
223
+ msgid "of"
224
+ msgstr "von"
 
 
225
 
226
+ #: index.php:1120
227
+ msgid "Go to the next page"
228
+ msgstr "Gehe zur nächsten Seite"
229
 
230
+ #: index.php:1121
231
+ msgid "Go to the last page"
232
+ msgstr "Gehe zur letzten Seite"
233
 
234
+ #: index.php:1381
235
+ msgid "Unknown or deleted user"
236
+ msgstr "unbekannter oder gelöschter Benutzer"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
 
238
+ #: index.php:1502
239
+ msgid "activated"
240
+ msgstr "aktiviert"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
 
242
+ #: index.php:1505
243
+ msgid "deactivated"
244
+ msgstr "deaktiviert"
 
245
 
246
+ #: index.php:1508
247
+ msgid "enabled"
248
+ msgstr "aktiviert"
 
249
 
250
+ #: index.php:1511
251
+ msgid "disabled"
252
+ msgstr "deaktiviert"
 
 
 
 
 
253
 
254
+ #: index.php:1526
255
+ msgid "<span class=\"when\">%1$s ago</span> by %2$s"
256
+ msgstr "<span class=\"when\">vor %1$s</span> durch %2$s"
 
257
 
258
+ #: index.php:1528
259
+ msgid "%s at %s"
260
+ msgstr "%s um %s"
 
 
 
 
 
261
 
262
+ #: index.php:1535
263
+ msgid "+ 1 occasion"
264
+ msgstr "+ 1 Ereignis"
 
265
 
266
+ #: index.php:1538
267
+ msgid "+ %d occasions"
268
+ msgstr "+ %d Ereignisse"
 
 
 
 
 
269
 
270
+ #: index.php:1546
271
+ msgid "%s ago (%s at %s)"
272
+ msgstr "vor %s (%s um %s)"
 
 
 
 
 
273
 
274
+ #: index.php:1571
275
+ msgid "Show 5 more"
276
+ msgstr "Zeige 5 weitere"
 
 
 
277
 
278
+ #: index.php:1572
279
+ msgid "Show 15 more"
280
+ msgstr "Zeige 15 weitere"
 
 
 
281
 
282
+ #: index.php:1573
283
+ msgid "Show 50 more"
284
+ msgstr "Zeige 50 weitere"
 
 
 
 
 
285
 
286
+ #: index.php:1574
287
+ msgid "Show 100 more"
288
+ msgstr "Zeige 100 weitere"
 
 
 
 
 
289
 
290
+ #: index.php:1577
291
+ msgid "Loading..."
292
+ msgstr "Lade..."
 
 
 
293
 
294
+ #: index.php:1579
295
+ msgid "No matching items found."
296
+ msgstr "Keine passenden Einträge gefunden."
 
 
 
 
 
297
 
298
+ #: index.php:1582
299
+ msgid "Show"
300
+ msgstr "Zeige"
 
 
 
 
 
301
 
302
+ #: index.php:1601
303
+ msgid "No history items found."
304
+ msgstr "Keine Einträge gefunden."
 
 
 
 
 
305
 
306
+ #: index.php:1602
 
307
  msgid ""
308
+ "Please note that Simple History only records things that happen after this "
309
+ "plugin have been installed."
310
  msgstr ""
311
+ "Bitte beachten Sie, daß Simple History nur Vorgänge aufzeichnet, die nach "
312
+ "der Installation des Plugins stattgefunden haben."
313
 
314
+ #: index.php:1615
315
+ msgid "General Settings"
316
+ msgstr "Allgemeine Einstellungen"
 
 
 
317
 
318
+ #: index.php:1616
319
+ msgid "Writing Settings"
320
+ msgstr "Schreib-Einstellungen"
 
 
321
 
322
+ #: index.php:1617
323
+ msgid "Reading Settings"
324
+ msgstr "Lese-Einstellungen"
 
 
 
325
 
326
+ #: index.php:1618
327
+ msgid "Discussion Settings"
328
+ msgstr "Diskussions-Einstellungen"
 
 
 
 
 
329
 
330
+ #: index.php:1619
331
+ msgid "Media Settings"
332
+ msgstr "Medien-Einstellungen"
 
 
 
 
 
333
 
334
+ #: index.php:1620
335
+ msgid "Privacy Settings"
336
+ msgstr "Privatsphären-Einstellungen"
 
 
 
337
 
338
+ #: index.php:1636
339
+ msgid "Permalink Settings"
340
+ msgstr "Permalink-Einstellungen"
 
 
 
 
 
341
 
342
+ #~ msgid "WordPress Core"
343
+ #~ msgstr "WordPress-Kern"
 
 
 
 
 
 
344
 
345
+ #~ msgid "Plugin"
346
+ #~ msgstr "Plugins"
 
 
 
 
 
 
347
 
348
+ #~ msgid "edited"
349
+ #~ msgstr "geändert"
 
 
 
 
 
 
350
 
351
+ #~ msgid "Comment"
352
+ #~ msgstr "Kommentare"
 
 
 
353
 
354
+ #~ msgid "added"
355
+ #~ msgstr "hinzugefügt"
 
 
 
 
 
 
356
 
357
+ #~ msgid "Attachment"
358
+ #~ msgstr "Anhänge"
 
 
 
 
 
 
359
 
360
+ #~ msgid "User"
361
+ #~ msgstr "Benutzer"
 
 
 
362
 
363
+ #~ msgid "logged in"
364
+ #~ msgstr "angemeldet"
 
 
 
 
 
 
365
 
366
+ #~ msgid "logged out"
367
+ #~ msgstr "abgemeldet"
 
 
 
 
 
 
368
 
369
+ #~ msgid "Post"
370
+ #~ msgstr "Postings"
 
 
 
 
 
 
371
 
372
+ #~ msgid "modified"
373
+ #~ msgstr "geändert"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
 
375
+ #~ msgid "No more history items found."
376
+ #~ msgstr "Keine weiteren Vorfälle gefunden."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/simple-history-nl_NL.mo DELETED
Binary file
languages/simple-history-nl_NL.po DELETED
@@ -1,1527 +0,0 @@
1
- # Copyright (C) 2015 Simple History
2
- # This file is distributed under the same license as the Simple History package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: Simple History 2.0.13\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
7
- "POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
8
- "PO-Revision-Date: 2015-01-28 15:04+0100\n"
9
- "Last-Translator: Niko Strijbol <strijbol.niko@gmail.com>\n"
10
- "Language-Team: Niko Strijbol <strijbol.niko@gmail.com>\n"
11
- "Language: nl\n"
12
- "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
- "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 1.7.4\n"
16
- "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
- "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
- "esc_html_x:1,2c\n"
19
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
- "X-Poedit-SourceCharset: UTF-8\n"
21
- "X-Poedit-Basepath: ../\n"
22
- "X-Textdomain-Support: yes\n"
23
- "X-Poedit-SearchPath-0: .\n"
24
-
25
- #: SimpleHistory.php:504 SimpleHistory.php:765
26
- msgid "Settings"
27
- msgstr "Instellingen"
28
-
29
- #: SimpleHistory.php:515
30
- msgid "Log (debug)"
31
- msgstr "Log (debug)"
32
-
33
- #: SimpleHistory.php:520
34
- msgid "Styles example (debug)"
35
- msgstr "Stijlvoorbeelden (debug)"
36
-
37
- #. Plugin Name of the plugin/theme
38
- #: SimpleHistory.php:780
39
- msgid "Simple History"
40
- msgstr "Simple History"
41
-
42
- #: SimpleHistory.php:856
43
- msgid "Remove all log items?"
44
- msgstr "Alle logitems verwijderen?"
45
-
46
- #: SimpleHistory.php:858
47
- msgid "Go to the first page"
48
- msgstr "Ga naar de eerste pagina"
49
-
50
- #: SimpleHistory.php:859
51
- msgid "Go to the previous page"
52
- msgstr "Ga naar de vorige pagina"
53
-
54
- #: SimpleHistory.php:860
55
- msgid "Go to the next page"
56
- msgstr "Ga naar de volgende pagina"
57
-
58
- #: SimpleHistory.php:861
59
- msgid "Go to the last page"
60
- msgstr "Ga naar de laatste pagina"
61
-
62
- #: SimpleHistory.php:862
63
- msgid "Current page"
64
- msgstr "Huidige pagina"
65
-
66
- #: SimpleHistory.php:864
67
- msgid "Oups, the log could not be loaded right now."
68
- msgstr "Oeps, de log kon niet geladen worden."
69
-
70
- #: SimpleHistory.php:865
71
- msgid "Your search did not match any history events."
72
- msgstr "Er kwamen geen geschiedenisevents overeen met je zoekopdracht"
73
-
74
- #: SimpleHistory.php:1149 SimpleHistory.php:1250
75
- msgid "Simple History Settings"
76
- msgstr "Simple History-instellingen"
77
-
78
- #: SimpleHistory.php:1183
79
- msgid "No valid callback found"
80
- msgstr "Geen geldige callback gevonden."
81
-
82
- #: SimpleHistory.php:1271
83
- msgid "Cleared database"
84
- msgstr "Database leeggemaakt"
85
-
86
- #: SimpleHistory.php:1298
87
- msgid "Show history"
88
- msgstr "Geschiedenis tonen"
89
-
90
- #: SimpleHistory.php:1311
91
- msgid "Number of items per page"
92
- msgstr "Aantal items per pagina"
93
-
94
- #: SimpleHistory.php:1323
95
- msgid "Clear log"
96
- msgstr "Log wissen"
97
-
98
- #: SimpleHistory.php:1462
99
- msgid "on the dashboard"
100
- msgstr "op het dashboard"
101
-
102
- #: SimpleHistory.php:1467
103
- msgid "as a page under the dashboard menu"
104
- msgstr "als een pagina onder het dashboardmenu"
105
-
106
- #: SimpleHistory.php:1483
107
- msgid "Items in the database are automatically removed after %1$s days."
108
- msgstr "Items in de database worden automatisch verwijderd na %1$s dagen."
109
-
110
- #: SimpleHistory.php:1485
111
- msgid "Items in the database are kept forever."
112
- msgstr "Items in de database worden voor eeuwig bijgehouden."
113
-
114
- #: SimpleHistory.php:1489
115
- msgid "Clear log now"
116
- msgstr "Log nu wissen"
117
-
118
- #: SimpleHistory.php:1533
119
- msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
120
- msgstr ""
121
- "De log voor Simple History is gewist ([num_rows} rijen werden verwijderd)."
122
-
123
- #: SimpleHistory.php:1793
124
- msgid "+%1$s similar event"
125
- msgid_plural "+%1$s similar events"
126
- msgstr[0] "+%1$s gelijkaardige gebeurtenis"
127
- msgstr[1] "+%1$s gelijkaardige gebeurtenissen"
128
-
129
- #: SimpleHistory.php:1800
130
- msgid "Loading…"
131
- msgstr "Laden…"
132
-
133
- #: SimpleHistory.php:1807
134
- msgid "Showing %1$s more"
135
- msgstr "%1$s meer tonen"
136
-
137
- #: SimpleHistory.php:1826
138
- msgid "Context data"
139
- msgstr "Contextdata"
140
-
141
- #: SimpleHistory.php:1827
142
- msgid "This is potentially useful meta data that a logger has saved."
143
- msgstr "Dit is potentieel bruikbare metadata die de logger opgeslagen heeft."
144
-
145
- #: SimpleHistory.php:2302
146
- msgid "No events today so far."
147
- msgstr "Nog geen events vandaag."
148
-
149
- #: SimpleHistory.php:2321
150
- msgid "One event today from one user."
151
- msgstr "Een gebeurtenis vandaag van een gebruiker."
152
-
153
- #: SimpleHistory.php:2327
154
- msgid "One event today from one source."
155
- msgstr "Een gebeurtenis vandaag van een bron."
156
-
157
- #: SimpleHistory.php:2333
158
- msgid "%1$d events today from one user."
159
- msgstr "%1$d events vandaag van een gebruiker."
160
-
161
- #: SimpleHistory.php:2339
162
- msgid "%1$d events today from %2$d users."
163
- msgstr "%1$d events vandaag van %2$d gebruikers."
164
-
165
- #: SimpleHistory.php:2345 SimpleHistory.php:2351
166
- msgid "%1$d events today from one user and one other source."
167
- msgstr "%1$d gebeurtenissen vandaag van een gebruiker en een andere bron."
168
-
169
- #: SimpleHistory.php:2357
170
- msgid "%1$d events today from one user and %3$d other sources."
171
- msgstr "%1$d gebeurtenissen vandaag van een gebruiker en %3$d andere bronnen."
172
-
173
- #: SimpleHistory.php:2363
174
- msgid "%1$s events today from %2$d users and %3$d other sources."
175
- msgstr "%1$d gebeurtenissen vandaag van %2$d gebruikers en %3$d andere bronnen."
176
-
177
- #: dropins/SimpleHistoryDonateDropin.php:36
178
- msgid "Donate"
179
- msgstr "Doneren"
180
-
181
- #: dropins/SimpleHistoryDonateDropin.php:72
182
- msgid ""
183
- "If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
184
- "href=\"%2$s\">buy me something from my Amazon wish list</a>."
185
- msgstr ""
186
- "Als je Simple History nuttig vindt, gelieve dan <a href=\"%1$s\">te doneren</"
187
- "a> of <a href=\"%2$s\">iets van mijn Amazon-verlanglijst te kopen.</a>."
188
-
189
- #: dropins/SimpleHistoryFilterDropin.php:44
190
- msgid "Filter history"
191
- msgstr "Geschiedenis filteren"
192
-
193
- #: dropins/SimpleHistoryFilterDropin.php:48
194
- #: dropins/SimpleHistoryFilterDropin.php:159
195
- msgid "Search events"
196
- msgstr "Zoek evenementen"
197
-
198
- #: dropins/SimpleHistoryFilterDropin.php:56
199
- msgid "All log levels"
200
- msgstr "Alle logniveau's"
201
-
202
- #: dropins/SimpleHistoryFilterDropin.php:70
203
- msgid "All messages"
204
- msgstr "Alle berichten"
205
-
206
- #: dropins/SimpleHistoryFilterDropin.php:124
207
- msgid "All users"
208
- msgstr "Alle gebruikers"
209
-
210
- #: dropins/SimpleHistoryFilterDropin.php:145
211
- msgid "All dates"
212
- msgstr "Alle datums"
213
-
214
- #: dropins/SimpleHistoryFilterDropin.php:168
215
- msgid "Search"
216
- msgstr "Zoeken"
217
-
218
- #: dropins/SimpleHistoryNewRowsNotifier.php:80
219
- msgid "1 new row"
220
- msgid_plural "%d new rows"
221
- msgstr[0] "1 nieuwe rij"
222
- msgstr[1] "%d nieuwe rijen"
223
-
224
- #: dropins/SimpleHistoryRSSDropin.php:55
225
- msgid "Address"
226
- msgstr "Adres"
227
-
228
- #: dropins/SimpleHistoryRSSDropin.php:64
229
- msgid "Regenerate"
230
- msgstr "Hergenereren"
231
-
232
- #: dropins/SimpleHistoryRSSDropin.php:81
233
- msgid "Created new secret RSS address"
234
- msgstr "Maak nieuw geheim RSS-adres"
235
-
236
- #: dropins/SimpleHistoryRSSDropin.php:148
237
- #: dropins/SimpleHistoryRSSDropin.php:259
238
- msgid "History for %s"
239
- msgstr "Geschiedenis voor %s"
240
-
241
- #: dropins/SimpleHistoryRSSDropin.php:149
242
- #: dropins/SimpleHistoryRSSDropin.php:260
243
- msgid "WordPress History for %s"
244
- msgstr "WordPress-geschiedenis voor %s"
245
-
246
- #: dropins/SimpleHistoryRSSDropin.php:196
247
- msgid "+%1$s occasion"
248
- msgid_plural "+%1$s occasions"
249
- msgstr[0] "+%1$s gelegenheid"
250
- msgstr[1] "+%1$s gelegenheden"
251
-
252
- #: dropins/SimpleHistoryRSSDropin.php:263
253
- msgid "Wrong RSS secret"
254
- msgstr "Verkeerd RSS-geheim"
255
-
256
- #: dropins/SimpleHistoryRSSDropin.php:264
257
- msgid ""
258
- "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
259
- "settings for current link to the RSS feed."
260
- msgstr ""
261
- "Je RSS-geheim voor de RSS-feed van Simple History is verkeerd. Gelieve de "
262
- "WordPress-instellingen te bekijken voor de huidige link naar de RSS-feed."
263
-
264
- #: dropins/SimpleHistoryRSSDropin.php:315
265
- msgid ""
266
- "You can generate a new address for the RSS feed. This is useful if you think "
267
- "that the address has fallen into the wrong hands."
268
- msgstr ""
269
- "Je kan een nieuw adres voor de RSS-feed genereren. Dit is handig als je denkt "
270
- "dat het adres in de verkeerde handen gevallen is."
271
-
272
- #: dropins/SimpleHistoryRSSDropin.php:318
273
- msgid "Generate new address"
274
- msgstr "Genereer nieuw adres"
275
-
276
- #: dropins/SimpleHistoryRSSDropin.php:346
277
- msgid ""
278
- "Simple History has a RSS feed which you can subscribe to and receive log "
279
- "updates. Make sure you only share the feed with people you trust, since it "
280
- "can contain sensitive or confidential information."
281
- msgstr ""
282
- "Simple History heeft een RSS-feed waarop je je kan abonneren om log-updates "
283
- "te ontvangen. Deel de feed enkel met mensen die je vertrouwt, want deze kan "
284
- "vertrouwelijke of gevoelige informatie bevatten."
285
-
286
- #: dropins/SimpleHistorySettingsLogtestDropin.php:20
287
- msgid "Test data (debug)"
288
- msgstr "Testdata (debug)"
289
-
290
- #: dropins/SimpleHistorySettingsStatsDropin.php:27
291
- msgid "Stats"
292
- msgstr "Statistieken"
293
-
294
- #: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
295
- msgid "Just now"
296
- msgstr "Nu juist"
297
-
298
- #: index.php:59
299
- msgid ""
300
- "Simple History is a great plugin, but to use it your server must have at "
301
- "least PHP 5.3 installed (you have version %s)."
302
- msgstr ""
303
- "Simple History is een fantastische plug-in, maar je server moet minstens PHP "
304
- "5.3 hebben om het te kunnen gebruiken (je hebt versie %s)."
305
-
306
- #: loggers/SimpleCommentsLogger.php:685
307
- msgid "Spam"
308
- msgstr "Spam"
309
-
310
- #: loggers/SimpleCommentsLogger.php:687
311
- msgid "Approved"
312
- msgstr "Goedgekeurd"
313
-
314
- #: loggers/SimpleCommentsLogger.php:689
315
- msgid "Pending"
316
- msgstr "In behandeling"
317
-
318
- #: loggers/SimpleCommentsLogger.php:703
319
- msgid "Trackback"
320
- msgstr "Trackback"
321
-
322
- #: loggers/SimpleCommentsLogger.php:705
323
- msgid "Pingback"
324
- msgstr "Pingback"
325
-
326
- #: loggers/SimpleCommentsLogger.php:707
327
- msgid "Comment"
328
- msgstr "Reactie"
329
-
330
- #: loggers/SimpleCoreUpdatesLogger.php:29
331
- msgid "Updated WordPress from {prev_version} to {new_version}"
332
- msgstr "WordPress bijgewerkt van {prev_version} tot {new_version}"
333
-
334
- #: loggers/SimpleCoreUpdatesLogger.php:30
335
- msgid "WordPress auto-updated from {prev_version} to {new_version}"
336
- msgstr "WordPress automatisch bijgewerkt van {prev_version} tot {new_version}"
337
-
338
- #: loggers/SimpleExportLogger.php:23
339
- msgid "Created XML export"
340
- msgstr "XML-export gemaakt"
341
-
342
- #: loggers/SimpleLegacyLogger.php:88
343
- msgid "By %s"
344
- msgstr "Door %s"
345
-
346
- #: loggers/SimpleLegacyLogger.php:93
347
- msgid "%d occasions"
348
- msgstr "%d gelegenheden"
349
-
350
- #: loggers/SimpleLogger.php:203
351
- msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
352
- msgstr "Gebruiker verwijderd (had id %1$s, e-mail %2$s, login %3$s)"
353
-
354
- #: loggers/SimpleLogger.php:218
355
- msgid "Anonymous web user"
356
- msgstr "Anonieme webgebruiker"
357
-
358
- #: loggers/SimpleLogger.php:226
359
- msgid "Anonymous user from %1$s"
360
- msgstr "Anonieme gebruiker van %1$s"
361
-
362
- #. translators: Date format for log row header, see http:php.net/date
363
- #: loggers/SimpleLogger.php:301
364
- msgid "M j, Y \\a\\t G:i"
365
- msgstr "M j, Y \\a\\t G:i"
366
-
367
- #. translators: 1: last modified date and time in human time diff-format
368
- #: loggers/SimpleLogger.php:309
369
- msgid "%1$s ago"
370
- msgstr "%1$s geleden"
371
-
372
- #: loggers/SimpleMediaLogger.php:23
373
- msgid "Created {post_type} \"{attachment_title}\""
374
- msgstr " {post_type} \"{attachment_title}\" aangemaakt"
375
-
376
- #: loggers/SimpleMediaLogger.php:24
377
- msgid "Edited {post_type} \"{attachment_title}\""
378
- msgstr "{post_type} \"{attachment_title}\" bijgewerkt"
379
-
380
- #: loggers/SimpleMediaLogger.php:25
381
- msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
382
- msgstr ""
383
- " {post_type} \"{attachment_title}\" (\"{attachment_filename}\") verwijderd"
384
-
385
- #: loggers/SimpleMediaLogger.php:81
386
- msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
387
- msgstr ""
388
- "{post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a> bijgewerkt"
389
-
390
- #: loggers/SimpleMediaLogger.php:85
391
- msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
392
- msgstr "{post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a> geüpload"
393
-
394
- #: loggers/SimpleMediaLogger.php:197
395
- msgid "{attachment_thumb}"
396
- msgstr "{attachment_thumb}"
397
-
398
- #: loggers/SimpleMediaLogger.php:206
399
- msgid "{attachment_size_format}"
400
- msgstr "{attachment_size_format}"
401
-
402
- #: loggers/SimpleMediaLogger.php:207
403
- msgid "{attachment_filetype_extension}"
404
- msgstr "{attachment_filetype_extension}"
405
-
406
- #: loggers/SimpleMediaLogger.php:209
407
- msgid "{full_image_width} × {full_image_height}"
408
- msgstr "{full_image_width} × {full_image_height}"
409
-
410
- #: loggers/SimpleMenuLogger.php:23
411
- msgid "Created menu \"{menu_name}\""
412
- msgstr "Menu \"{menu_name}\" aangemaakt"
413
-
414
- #: loggers/SimpleMenuLogger.php:24
415
- msgid "Edited menu \"{menu_name}\""
416
- msgstr "Menu \"{menu_name}\" bijgewerkt"
417
-
418
- #: loggers/SimpleMenuLogger.php:25
419
- msgid "Deleted menu \"{menu_name}\""
420
- msgstr "Menu \"{menu_name}\" verwijderd"
421
-
422
- #: loggers/SimpleMenuLogger.php:26
423
- msgid "Edited a menu item"
424
- msgstr "Een menu-item bijgewerkt"
425
-
426
- #: loggers/SimpleMenuLogger.php:27
427
- msgid "Updated menu locations"
428
- msgstr "Menulocaties bijgewerkt"
429
-
430
- #: loggers/SimpleOptionsLogger.php:140
431
- msgid "Updated option \"{option}\""
432
- msgstr "Optie \"{option}\" bijgewerkt"
433
-
434
- #: loggers/SimpleOptionsLogger.php:242 loggers/SimpleThemeLogger.php:570
435
- msgid "New value"
436
- msgstr "Nieuwe waarde"
437
-
438
- #: loggers/SimpleOptionsLogger.php:253 loggers/SimpleThemeLogger.php:582
439
- msgid "Old value"
440
- msgstr "Oude waarde"
441
-
442
- #: loggers/SimpleOptionsLogger.php:268 loggers/SimpleOptionsLogger.php:285
443
- msgid "Settings page"
444
- msgstr "Instellingenpagina"
445
-
446
- #: loggers/SimplePostLogger.php:30
447
- msgid "Created {post_type} \"{post_title}\""
448
- msgstr "{post_type} \"{post_title}\" aangemaakt"
449
-
450
- #: loggers/SimplePostLogger.php:31
451
- msgid "Updated {post_type} \"{post_title}\""
452
- msgstr "{post_type} \"{post_title}\" bijgewerkt"
453
-
454
- #: loggers/SimplePostLogger.php:32
455
- msgid "Restored {post_type} \"{post_title}\" from trash"
456
- msgstr "{post_type} \"{post_title}\" uit de prullenbak hersteld"
457
-
458
- #: loggers/SimplePostLogger.php:33 loggers/SimplePostLogger.php:236
459
- msgid "Deleted {post_type} \"{post_title}\""
460
- msgstr "{post_type} \"{post_title}\" verwijderd"
461
-
462
- #: loggers/SimplePostLogger.php:34
463
- msgid "Moved {post_type} \"{post_title}\" to the trash"
464
- msgstr "{post_type} \"{post_title}\" verplaatst naar de prullenbak"
465
-
466
- #: loggers/SimplePostLogger.php:232
467
- msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
468
- msgstr "{post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> bijgewerkt"
469
-
470
- #: loggers/SimplePostLogger.php:240
471
- msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
472
- msgstr "{post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> aangemaakt"
473
-
474
- #: loggers/SimplePostLogger.php:245
475
- msgid ""
476
- "Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
477
- msgstr ""
478
- "{post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> verplaatst naar de "
479
- "prullenbak"
480
-
481
- #: loggers/SimpleThemeLogger.php:26
482
- msgid "Switched theme to \"{theme_name}\" from \"{prev_theme_name}\""
483
- msgstr "Thema gewijzigd naar \"{theme_name}\" van \"{prev_theme_name}\""
484
-
485
- #: loggers/SimpleThemeLogger.php:27
486
- msgid "Customized theme appearance \"{setting_id}\""
487
- msgstr "Themaweergave \"{setting_id}\" aangepast"
488
-
489
- #: loggers/SimpleThemeLogger.php:28
490
- msgid "Removed widget \"{widget_id_base}\" from sidebar \"{sidebar_id}\""
491
- msgstr "Widget \"{widget_id_base}\" verwijderd van zijbalk \"{sidebar_id}\""
492
-
493
- #: loggers/SimpleThemeLogger.php:29
494
- msgid "Added widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
495
- msgstr "Widget \"{widget_id_base}\" toegevoegd aan zijbalk \"{sidebar_id}\""
496
-
497
- #: loggers/SimpleThemeLogger.php:30
498
- msgid "Changed widget order \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
499
- msgstr ""
500
- "Widgetvolgorde \"{widget_id_base}\" van zijbalk \"{sidebar_id}\" gewijzigd"
501
-
502
- #: loggers/SimpleThemeLogger.php:31
503
- msgid "Changed widget \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
504
- msgstr "Widget \"{widget_id_base}\" in zijbalk \"{sidebar_id}\" gewijzigd"
505
-
506
- #: loggers/SimpleThemeLogger.php:32
507
- msgid "Changed settings for the theme custom background"
508
- msgstr "Optie voor aangepaste thema-achtergrond gewijzigd"
509
-
510
- #: loggers/SimpleThemeLogger.php:532
511
- msgid "Section"
512
- msgstr "Sectie"
513
-
514
- #: loggers/SimpleUserLogger.php:22
515
- msgid ""
516
- "Failed to login to account with username \"{login_user_login}\" because an "
517
- "incorrect password was entered"
518
- msgstr ""
519
- "Inloggen met gebruikersnaam \"{login_user_login}\" mislukt door verkeerd "
520
- "wachtwoord"
521
-
522
- #: loggers/SimpleUserLogger.php:23
523
- msgid ""
524
- "Failed to login with username \"{failed_login_username}\" because no user "
525
- "with that username exists"
526
- msgstr ""
527
- "Inloggen met gebruikersnaam \"{failed_login_username}\" mislukt omdat er geen "
528
- "gebruiker bestaat met die naam"
529
-
530
- #: loggers/SimpleUserLogger.php:24
531
- msgid "Logged in"
532
- msgstr "Ingelogd"
533
-
534
- #: loggers/SimpleUserLogger.php:25
535
- msgid "Unknown user logged in"
536
- msgstr "Onbekende gebruiker heeft ingelogd"
537
-
538
- #: loggers/SimpleUserLogger.php:26
539
- msgid "Logged out"
540
- msgstr "Uitgelogd"
541
-
542
- #: loggers/SimpleUserLogger.php:27
543
- msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
544
- msgstr ""
545
- "Profiel voor gebruiker {edited_user_login} ({edited_user_email}) bewerkt"
546
-
547
- #: loggers/SimpleUserLogger.php:28
548
- msgid ""
549
- "Created user {created_user_login} ({created_user_email}) with role "
550
- "{created_user_role}"
551
- msgstr ""
552
- "Gebruiker {created_user_login} ({created_user_email}) aangemaakt met rol "
553
- "{created_user_role}"
554
-
555
- #: loggers/SimpleUserLogger.php:29
556
- msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
557
- msgstr "Gebruiker {deleted_user_login} ({deleted_user_email}) verwijderd"
558
-
559
- #: loggers/SimpleUserLogger.php:227
560
- msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
561
- msgstr "<a href=\"{edit_profile_link}\">Je profiel</a> aangepast"
562
-
563
- #: loggers/SimpleUserLogger.php:231
564
- msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
565
- msgstr "<a href=\"{edit_profile_link}\">Hun profiel</a> aangepast"
566
-
567
- #: loggers/SimpleUserLogger.php:240
568
- msgid "Edited your profile"
569
- msgstr "Je profiel aangepast"
570
-
571
- #: loggers/SimpleUserLogger.php:251
572
- msgid ""
573
- "Edited the profile for user <a href="
574
- "\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
575
- msgstr ""
576
- "Profiel voor gebruiker <a href=\"{edit_profile_link}\">{edited_user_login} "
577
- "({edited_user_email})</a> bewerkt"
578
-
579
- #: node_modules/grunt-wp-i18n/test/fixtures/basic-theme/exclude/file.php:3
580
- #: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/plugin-include.php:6
581
- msgid "Exclude"
582
- msgstr "Uitsluiten"
583
-
584
- #: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/include/file.php:2
585
- msgid "Include"
586
- msgstr "Inclusief"
587
-
588
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/add-domain.php:2
589
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:2
590
- #: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3
591
- msgid "String"
592
- msgstr "String"
593
-
594
- #: templates/settings-statsIntro.php:19
595
- msgid "<b>%1$s rows</b> have been logged the last <b>%2$s days</b>"
596
- msgstr "<b>%1$s rijen</b> werden opgeslagen in de laatste <b>%2$s dagen</b>"
597
-
598
- #: templates/settings-statsLogLevels.php:4
599
- msgid "Log levels"
600
- msgstr "Logniveau's"
601
-
602
- #: templates/settings-statsLogLevels.php:6
603
- msgid "Number of rows logged for each log level."
604
- msgstr "Aantal rijen die gelogd zijn voor elk logniveau."
605
-
606
- #: templates/settings-statsLoggers.php:4
607
- msgid "Loggers"
608
- msgstr "Loggers"
609
-
610
- #: templates/settings-statsRowsPerDay.php:4
611
- msgid "Rows per day"
612
- msgstr "Rijen per dag"
613
-
614
- #: templates/settings-statsUsers.php:4
615
- msgid "Users"
616
- msgstr "Gebruikers"
617
-
618
- #: templates/settings-statsUsers.php:6
619
- msgid "Number of logged items for the 5 users with most logged rows."
620
- msgstr ""
621
- "Aantal rijen gelogde items voor de 5 gebruikers met de meeste gelogde rijen."
622
-
623
- #: templates/settings-statsUsers.php:7
624
- msgid "Deleted users are also included."
625
- msgstr "Bevat ook verwijderde gebruikers."
626
-
627
- #. Plugin URI of the plugin/theme
628
- msgid "http://simple-history.com"
629
- msgstr "http://simple-history.com"
630
-
631
- #. Description of the plugin/theme
632
- msgid ""
633
- "Plugin that logs various things that occur in WordPress and then presents "
634
- "those events in a very nice GUI."
635
- msgstr ""
636
- "Plu-in die de verschillende dingen die gebeuren in WordPress opslaat en in "
637
- "een mooie weergave giet."
638
-
639
- #. Author of the plugin/theme
640
- msgid "Pär Thernström"
641
- msgstr "Pär Thernström"
642
-
643
- #. Author URI of the plugin/theme
644
- msgid "http://simple-history.com/"
645
- msgstr "http://simple-history.com/"
646
-
647
- #: SimpleHistory.php:249
648
- msgctxt ""
649
- "Message visible while waiting for log to load from server the first time"
650
- msgid "Loading history..."
651
- msgstr "Geschiedenis laden..."
652
-
653
- #: SimpleHistory.php:286
654
- msgctxt "page n of n"
655
- msgid "of"
656
- msgstr "van"
657
-
658
- #: SimpleHistory.php:357
659
- msgctxt "API: not enought arguments passed"
660
- msgid "Not enough args specified"
661
- msgstr "Onvoldoende argumenten opgegeven"
662
-
663
- #: SimpleHistory.php:1235
664
- msgctxt "dashboard menu name"
665
- msgid "Simple History"
666
- msgstr "Simple History"
667
-
668
- #: SimpleHistory.php:1359
669
- msgctxt "history page headline"
670
- msgid "Simple History"
671
- msgstr "Simple History"
672
-
673
- #: SimpleHistory.php:1619
674
- msgctxt "simple-history"
675
- msgid "Simple History removed one event that were older than {days} days"
676
- msgid_plural ""
677
- "Simple History removed {num_rows} events that were older than {days} days"
678
- msgstr[0] "Simple History verwijderde een gebeurtenis ouder dan {days} dagen"
679
- msgstr[1] ""
680
- "Simple History verwijderde {num_rows} gebeurtenissen ouder dan {days} dagen"
681
-
682
- #: SimpleHistory.php:1963
683
- msgctxt "Log level in gui"
684
- msgid "emergency"
685
- msgstr "noodgeval"
686
-
687
- #: SimpleHistory.php:1967
688
- msgctxt "Log level in gui"
689
- msgid "alert"
690
- msgstr "waarschuwing"
691
-
692
- #: SimpleHistory.php:1971
693
- msgctxt "Log level in gui"
694
- msgid "critical"
695
- msgstr "kritiek"
696
-
697
- #: SimpleHistory.php:1975
698
- msgctxt "Log level in gui"
699
- msgid "error"
700
- msgstr "fout"
701
-
702
- #: SimpleHistory.php:1979
703
- msgctxt "Log level in gui"
704
- msgid "warning"
705
- msgstr "waarschuwing"
706
-
707
- #: SimpleHistory.php:1983
708
- msgctxt "Log level in gui"
709
- msgid "notice"
710
- msgstr "melding"
711
-
712
- #: SimpleHistory.php:1987
713
- msgctxt "Log level in gui"
714
- msgid "info"
715
- msgstr "info"
716
-
717
- #: SimpleHistory.php:1991
718
- msgctxt "Log level in gui"
719
- msgid "debug"
720
- msgstr "debug"
721
-
722
- #: SimpleHistory.php:1996
723
- msgctxt "Log level in gui"
724
- msgid "Emergency"
725
- msgstr "Noogeval"
726
-
727
- #: SimpleHistory.php:2000
728
- msgctxt "Log level in gui"
729
- msgid "Alert"
730
- msgstr "Waarschuwing"
731
-
732
- #: SimpleHistory.php:2004
733
- msgctxt "Log level in gui"
734
- msgid "Critical"
735
- msgstr "Kritiek"
736
-
737
- #: SimpleHistory.php:2008
738
- msgctxt "Log level in gui"
739
- msgid "Error"
740
- msgstr "Fout"
741
-
742
- #: SimpleHistory.php:2012
743
- msgctxt "Log level in gui"
744
- msgid "Warning"
745
- msgstr "Waarschuwing"
746
-
747
- #: SimpleHistory.php:2016
748
- msgctxt "Log level in gui"
749
- msgid "Notice"
750
- msgstr "Melding"
751
-
752
- #: SimpleHistory.php:2020
753
- msgctxt "Log level in gui"
754
- msgid "Info"
755
- msgstr "Info"
756
-
757
- #: SimpleHistory.php:2024
758
- msgctxt "Log level in gui"
759
- msgid "Debug"
760
- msgstr "Debug"
761
-
762
- #: dropins/SimpleHistoryDonateDropin.php:51
763
- msgctxt "donate settings headline"
764
- msgid "Donate"
765
- msgstr "Doneren"
766
-
767
- #: dropins/SimpleHistoryFilterDropin.php:50
768
- msgctxt "Filter dropin: button to show more search options"
769
- msgid "Show options"
770
- msgstr "Opties tonen"
771
-
772
- #: dropins/SimpleHistoryFilterDropin.php:160
773
- msgctxt "Filter dropin: button to hide more search options"
774
- msgid "Hide options"
775
- msgstr "Opties verbergen"
776
-
777
- #: dropins/SimpleHistoryIpInfoDropin.php:66
778
- msgctxt "IP Info Dropin"
779
- msgid "That IP address does not seem like a public one."
780
- msgstr "Dat IP-adres lijkt niet publiek te zijn."
781
-
782
- #: dropins/SimpleHistoryIpInfoDropin.php:85
783
- msgctxt "IP Info Dropin"
784
- msgid "IP address"
785
- msgstr "IP-adres"
786
-
787
- #: dropins/SimpleHistoryIpInfoDropin.php:96
788
- msgctxt "IP Info Dropin"
789
- msgid "Hostname"
790
- msgstr "Hostnaam"
791
-
792
- #: dropins/SimpleHistoryIpInfoDropin.php:107
793
- #: dropins/SimpleHistoryIpInfoDropin.php:118
794
- msgctxt "IP Info Dropin"
795
- msgid "Network"
796
- msgstr "Netwerk"
797
-
798
- #: dropins/SimpleHistoryIpInfoDropin.php:129
799
- msgctxt "IP Info Dropin"
800
- msgid "City"
801
- msgstr "Plaats"
802
-
803
- #: dropins/SimpleHistoryIpInfoDropin.php:140
804
- msgctxt "IP Info Dropin"
805
- msgid "Region"
806
- msgstr "Regio"
807
-
808
- #: dropins/SimpleHistoryIpInfoDropin.php:151
809
- msgctxt "IP Info Dropin"
810
- msgid "Country"
811
- msgstr "Land"
812
-
813
- #: dropins/SimpleHistoryIpInfoDropin.php:162
814
- msgctxt "IP Info Dropin"
815
- msgid "IP info provided by %1$s ipinfo.io %2$s"
816
- msgstr "IP-info door %1$s ipinfo.io %2$s"
817
-
818
- #: dropins/SimpleHistoryNewRowsNotifier.php:38
819
- msgctxt "New rows notifier: error while checking for new rows"
820
- msgid "An error occured while checking for new log rows"
821
- msgstr "Er trad een fout op bij het controleren op nieuwe rijen"
822
-
823
- #: dropins/SimpleHistoryRSSDropin.php:47
824
- msgctxt "rss settings headline"
825
- msgid "RSS feed"
826
- msgstr "RSS-feed"
827
-
828
- #: dropins/SimpleHistorySidebarDropin.php:31
829
- msgctxt "Sidebar box"
830
- msgid "Simple History is on GitHub"
831
- msgstr "Simple History is op GitHub"
832
-
833
- #: dropins/SimpleHistorySidebarDropin.php:34
834
- msgctxt "Sidebar box"
835
- msgid ""
836
- "You can star, fork, or report issues with this plugin over at the <a href="
837
- "\"%1$s\">GitHub page</a>."
838
- msgstr ""
839
- "Je kan de plugin starren, forken of fouten melden op de <a href=\"%1$s"
840
- "\">GitHub-pagina</a>."
841
-
842
- #: dropins/SimpleHistorySidebarDropin.php:48
843
- msgctxt "Sidebar box"
844
- msgid "Donate to support development"
845
- msgstr "Doneer om ontwikkeling te steunen"
846
-
847
- #: dropins/SimpleHistorySidebarDropin.php:51
848
- msgctxt "Sidebar box"
849
- msgid ""
850
- "If you like and use Simple History you should <a href=\"%1$s\">donate to keep "
851
- "this plugin free</a>."
852
- msgstr ""
853
- "Je zou moeten <a href=\"%1$s\">doneren om de plug-in gratis te houden</a> als "
854
- "je Simple History nuttig vindt en gebruikt."
855
-
856
- #: dropins/SimpleHistorySidebarDropin.php:65
857
- msgctxt "Sidebar box"
858
- msgid "Review this plugin if you like it"
859
- msgstr "Review de plug-in als je ze leuk vindt"
860
-
861
- #: dropins/SimpleHistorySidebarDropin.php:68
862
- msgctxt "Sidebar box"
863
- msgid ""
864
- "If you like Simple History then please <a href=\"%1$s\">give it a nice review "
865
- "over at wordpress.org</a>."
866
- msgstr ""
867
- "Als je Simple History leuk vindt, gelieve het dan <a href=\"%1$s\">een goede "
868
- "review te geven op wordpress.org</a>."
869
-
870
- #: dropins/SimpleHistorySidebarDropin.php:72
871
- msgctxt "Sidebar box"
872
- msgid ""
873
- "A good review will help new users find this plugin. And it will make the "
874
- "plugin author very happy :)"
875
- msgstr ""
876
- "Een goede review zal nieuwe gebruikers helpen deze plug-in te ontdekken. En "
877
- "het zal de plug-inauter heel blij maken :)"
878
-
879
- #: loggers/SimpleCommentsLogger.php:95
880
- msgctxt "A comment was added to the database by a non-logged in internet user"
881
- msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
882
- msgstr "Reactie toegevoegd aan {comment_post_type} \"{comment_post_title}\""
883
-
884
- #: loggers/SimpleCommentsLogger.php:101
885
- msgctxt "A comment was added to the database by a logged in user"
886
- msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
887
- msgstr "Reactie toegevoegd aan {comment_post_type} \"{comment_post_title}\""
888
-
889
- #: loggers/SimpleCommentsLogger.php:107
890
- msgctxt "A comment was approved"
891
- msgid ""
892
- "Approved a comment to \"{comment_post_title}\" by {comment_author} "
893
- "({comment_author_email})"
894
- msgstr ""
895
- "Reactie op \"{comment_post_title}\" door {comment_author} "
896
- "({comment_author_email}) goedgekeurd"
897
-
898
- #: loggers/SimpleCommentsLogger.php:113
899
- msgctxt "A comment was was unapproved"
900
- msgid ""
901
- "Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
902
- "({comment_author_email})"
903
- msgstr ""
904
- "Reactie op \"{comment_post_title}\" door {comment_author} "
905
- "({comment_author_email}) afgekeurd"
906
-
907
- #: loggers/SimpleCommentsLogger.php:119
908
- msgctxt "A comment was marked as spam"
909
- msgid "Marked a comment to post \"{comment_post_title}\" as spam"
910
- msgstr "Reactie op \"{comment_post_title}\" gemarkeerd als spam"
911
-
912
- #: loggers/SimpleCommentsLogger.php:125
913
- msgctxt "A comment was marked moved to the trash"
914
- msgid ""
915
- "Trashed a comment to \"{comment_post_title}\" by {comment_author} "
916
- "({comment_author_email})"
917
- msgstr ""
918
- "Reactie op \"{comment_post_title}\" door {comment_author} "
919
- "({comment_author_email}) naar de prullenbak verplaatst"
920
-
921
- #: loggers/SimpleCommentsLogger.php:131
922
- msgctxt "A comment was restored from the trash"
923
- msgid ""
924
- "Restored a comment to \"{comment_post_title}\" by {comment_author} "
925
- "({comment_author_email}) from the trash"
926
- msgstr ""
927
- "Reactie op \"{comment_post_title}\" door {comment_author} "
928
- "({comment_author_email}) teruggezet uit de prullenbak"
929
-
930
- #: loggers/SimpleCommentsLogger.php:137
931
- msgctxt "A comment was deleted"
932
- msgid ""
933
- "Deleted a comment to \"{comment_post_title}\" by {comment_author} "
934
- "({comment_author_email})"
935
- msgstr ""
936
- "Reactie op \"{comment_post_title}\" door {comment_author} "
937
- "({comment_author_email}) verwijderd"
938
-
939
- #: loggers/SimpleCommentsLogger.php:143
940
- msgctxt "A comment was edited"
941
- msgid ""
942
- "Edited a comment to \"{comment_post_title}\" by {comment_author} "
943
- "({comment_author_email})"
944
- msgstr ""
945
- "Reactie op \"{comment_post_title}\" door {comment_author} "
946
- "({comment_author_email}) aangepast"
947
-
948
- #: loggers/SimpleCommentsLogger.php:150
949
- msgctxt "A trackback was added to the database by a non-logged in internet user"
950
- msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
951
- msgstr "Trackback aan {comment_post_type} \"{comment_post_title}\" toegevoegd"
952
-
953
- #: loggers/SimpleCommentsLogger.php:205
954
- msgctxt "A trackback was added to the database by a non-logged in internet user"
955
- msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
956
- msgstr "Pingback aan {comment_post_type} \"{comment_post_title}\" toegevoegd"
957
-
958
- #: loggers/SimpleCommentsLogger.php:156
959
- msgctxt "A trackback was added to the database by a logged in user"
960
- msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
961
- msgstr "Trackback aan {comment_post_type} \"{comment_post_title}\" toegevoegd"
962
-
963
- #: loggers/SimpleCommentsLogger.php:162
964
- msgctxt "A trackback was approved"
965
- msgid ""
966
- "Approved a trackback to \"{comment_post_title}\" by {comment_author} "
967
- "({comment_author_email})"
968
- msgstr ""
969
- "Trackback naar \"{comment_post_title}\" door {comment_author} "
970
- "({comment_author_email}) goedgekeurd"
971
-
972
- #: loggers/SimpleCommentsLogger.php:168
973
- msgctxt "A trackback was was unapproved"
974
- msgid ""
975
- "Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
976
- "({comment_author_email})"
977
- msgstr ""
978
- "Trackback naar \"{comment_post_title}\" door {comment_author} "
979
- "({comment_author_email}) afgekeurd"
980
-
981
- #: loggers/SimpleCommentsLogger.php:174
982
- msgctxt "A trackback was marked as spam"
983
- msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
984
- msgstr "Trackback naar bericht \"{comment_post_title}\" gemarkeerd als spam"
985
-
986
- #: loggers/SimpleCommentsLogger.php:180
987
- msgctxt "A trackback was marked moved to the trash"
988
- msgid ""
989
- "Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
990
- "({comment_author_email})"
991
- msgstr ""
992
- "Trackback naar \"{comment_post_title}\" door {comment_author} "
993
- "({comment_author_email}) naar de prullenbak verplaatst"
994
-
995
- #: loggers/SimpleCommentsLogger.php:186
996
- msgctxt "A trackback was restored from the trash"
997
- msgid ""
998
- "Restored a trackback to \"{comment_post_title}\" by {comment_author} "
999
- "({comment_author_email}) from the trash"
1000
- msgstr ""
1001
- "Trackback naar \"{comment_post_title}\" door {comment_author} "
1002
- "({comment_author_email}) teruggezet uit de prullenbak"
1003
-
1004
- #: loggers/SimpleCommentsLogger.php:192
1005
- msgctxt "A trackback was deleted"
1006
- msgid ""
1007
- "Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
1008
- "({comment_author_email})"
1009
- msgstr ""
1010
- "Trackback naar \"{comment_post_title}\" door {comment_author} "
1011
- "({comment_author_email}) verwijderd"
1012
-
1013
- #: loggers/SimpleCommentsLogger.php:198
1014
- msgctxt "A trackback was edited"
1015
- msgid ""
1016
- "Edited a trackback to \"{comment_post_title}\" by {comment_author} "
1017
- "({comment_author_email})"
1018
- msgstr ""
1019
- "Trackback naar \"{comment_post_title}\" naar {comment_author} "
1020
- "({comment_author_email}) bewerkt"
1021
-
1022
- #: loggers/SimpleCommentsLogger.php:211
1023
- msgctxt "A pingback was added to the database by a logged in user"
1024
- msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
1025
- msgstr "Pingback naar {comment_post_type} \"{comment_post_title}\" toegevoegd"
1026
-
1027
- #: loggers/SimpleCommentsLogger.php:217
1028
- msgctxt "A pingback was approved"
1029
- msgid ""
1030
- "Approved a pingback to \"{comment_post_title}\" by "
1031
- "\"{comment_author}\"\" ({comment_author_email})"
1032
- msgstr ""
1033
- "Pingback naar \"{comment_post_title}\" door "
1034
- "\"{comment_author}\"\" ({comment_author_email}) goedgekeurd"
1035
-
1036
- #: loggers/SimpleCommentsLogger.php:223
1037
- msgctxt "A pingback was was unapproved"
1038
- msgid ""
1039
- "Unapproved a pingback to \"{comment_post_title}\" by "
1040
- "\"{comment_author}\" ({comment_author_email})"
1041
- msgstr ""
1042
- "Pingback naar \"{comment_post_title}\" door "
1043
- "\"{comment_author}\"\" ({comment_author_email}) afgekeurd"
1044
-
1045
- #: loggers/SimpleCommentsLogger.php:229
1046
- msgctxt "A pingback was marked as spam"
1047
- msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
1048
- msgstr "Pingback naar bericht \"{comment_post_title}\" gemarkeerd als spam"
1049
-
1050
- #: loggers/SimpleCommentsLogger.php:235
1051
- msgctxt "A pingback was marked moved to the trash"
1052
- msgid ""
1053
- "Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
1054
- "({comment_author_email})"
1055
- msgstr ""
1056
- "Pingback naar \"{comment_post_title}\" door "
1057
- "\"{comment_author}\"\" ({comment_author_email}) naar prullenbak verplaatst"
1058
-
1059
- #: loggers/SimpleCommentsLogger.php:241
1060
- msgctxt "A pingback was restored from the trash"
1061
- msgid ""
1062
- "Restored a pingback to \"{comment_post_title}\" by {comment_author} "
1063
- "({comment_author_email}) from the trash"
1064
- msgstr ""
1065
- "Pingback naar \"{comment_post_title}\" door "
1066
- "\"{comment_author}\"\" ({comment_author_email}) teruggezet uit de prullenbak"
1067
-
1068
- #: loggers/SimpleCommentsLogger.php:247
1069
- msgctxt "A pingback was deleted"
1070
- msgid ""
1071
- "Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
1072
- "({comment_author_email})"
1073
- msgstr ""
1074
- "Pingback naar \"{comment_post_title}\" door "
1075
- "\"{comment_author}\"\" ({comment_author_email}) verwijderd"
1076
-
1077
- #: loggers/SimpleCommentsLogger.php:253
1078
- msgctxt "A pingback was edited"
1079
- msgid ""
1080
- "Edited a pingback to \"{comment_post_title}\" by {comment_author} "
1081
- "({comment_author_email})"
1082
- msgstr ""
1083
- "Pingback naar \"{comment_post_title}\" door "
1084
- "\"{comment_author}\"\" ({comment_author_email}) bewerkt"
1085
-
1086
- #: loggers/SimpleCommentsLogger.php:264
1087
- msgctxt "Comments logger: search"
1088
- msgid "Comments"
1089
- msgstr "Reacties"
1090
-
1091
- #: loggers/SimpleCommentsLogger.php:265
1092
- msgctxt "Comments logger: search"
1093
- msgid "All comments activity"
1094
- msgstr "Alle reactie-activiteit"
1095
-
1096
- #: loggers/SimpleCommentsLogger.php:267
1097
- msgctxt "Comments logger: search"
1098
- msgid "Added comments"
1099
- msgstr "Toegevoegde reacties"
1100
-
1101
- #: loggers/SimpleCommentsLogger.php:275
1102
- msgctxt "Comments logger: search"
1103
- msgid "Edited comments"
1104
- msgstr "Bewerkte reacties"
1105
-
1106
- #: loggers/SimpleCommentsLogger.php:280
1107
- msgctxt "Comments logger: search"
1108
- msgid "Approved comments"
1109
- msgstr "Goedgekeurde reacties"
1110
-
1111
- #: loggers/SimpleCommentsLogger.php:285
1112
- msgctxt "Comments logger: search"
1113
- msgid "Held comments"
1114
- msgstr "Vastgehouden reacties"
1115
-
1116
- #: loggers/SimpleCommentsLogger.php:290
1117
- msgctxt "Comments logger: search"
1118
- msgid "Comments status changed to spam"
1119
- msgstr "Naar-spam-gewijzigde reacties"
1120
-
1121
- #: loggers/SimpleCommentsLogger.php:295
1122
- msgctxt "Comments logger: search"
1123
- msgid "Trashed comments"
1124
- msgstr "Weggegooide reacties"
1125
-
1126
- #: loggers/SimpleCommentsLogger.php:300
1127
- msgctxt "Comments logger: search"
1128
- msgid "Untrashed comments"
1129
- msgstr "Herstelde reacties"
1130
-
1131
- #: loggers/SimpleCommentsLogger.php:305
1132
- msgctxt "Comments logger: search"
1133
- msgid "Deleted comments"
1134
- msgstr "Verwijderde reacties"
1135
-
1136
- #: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
1137
- #: loggers/SimpleCommentsLogger.php:629
1138
- msgctxt "comments logger - detailed output comment status"
1139
- msgid "Status"
1140
- msgstr "Status"
1141
-
1142
- #: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
1143
- #: loggers/SimpleCommentsLogger.php:631
1144
- msgctxt "comments logger - detailed output author"
1145
- msgid "Name"
1146
- msgstr "Naam"
1147
-
1148
- #: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
1149
- #: loggers/SimpleCommentsLogger.php:632
1150
- msgctxt "comments logger - detailed output email"
1151
- msgid "Email"
1152
- msgstr "E-mail"
1153
-
1154
- #: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
1155
- msgctxt "comments logger - detailed output content"
1156
- msgid "Content"
1157
- msgstr "Inhoud"
1158
-
1159
- #: loggers/SimpleCommentsLogger.php:633
1160
- msgctxt "comments logger - detailed output content"
1161
- msgid "Comment"
1162
- msgstr "Reactie"
1163
-
1164
- #: loggers/SimpleCommentsLogger.php:759
1165
- msgctxt "comments logger - edit comment"
1166
- msgid "View/Edit"
1167
- msgstr "Bekijken/Bewerken"
1168
-
1169
- #: loggers/SimpleCoreUpdatesLogger.php:34
1170
- msgctxt "User logger: search"
1171
- msgid "WordPress Core"
1172
- msgstr "WordPress Core"
1173
-
1174
- #: loggers/SimpleCoreUpdatesLogger.php:36
1175
- msgctxt "User logger: search"
1176
- msgid "WordPress core updates"
1177
- msgstr "Updates aan WordPress core"
1178
-
1179
- #: loggers/SimpleUserLogger.php:54
1180
- msgctxt "User logger: search"
1181
- msgid "Users"
1182
- msgstr "Gebruikers"
1183
-
1184
- #: loggers/SimpleUserLogger.php:55
1185
- msgctxt "User logger: search"
1186
- msgid "All user activity"
1187
- msgstr "Alle gebruikersactiviteit"
1188
-
1189
- #: loggers/SimpleUserLogger.php:57
1190
- msgctxt "User logger: search"
1191
- msgid "Successful user logins"
1192
- msgstr "Geslaagde gebruikersaanmeldingen"
1193
-
1194
- #: loggers/SimpleUserLogger.php:61
1195
- msgctxt "User logger: search"
1196
- msgid "Failed user logins"
1197
- msgstr "Mislukte gebruikersaanmeldingen"
1198
-
1199
- #: loggers/SimpleUserLogger.php:65
1200
- msgctxt "User logger: search"
1201
- msgid "User logouts"
1202
- msgstr "Gebruiker-uitlogs"
1203
-
1204
- #: loggers/SimpleUserLogger.php:68
1205
- msgctxt "User logger: search"
1206
- msgid "Created users"
1207
- msgstr "Aangemaakte gebruikers"
1208
-
1209
- #: loggers/SimpleUserLogger.php:71
1210
- msgctxt "User logger: search"
1211
- msgid "User profile updates"
1212
- msgstr "Gebruikersprofiel-updates"
1213
-
1214
- #: loggers/SimpleUserLogger.php:74
1215
- msgctxt "User logger: search"
1216
- msgid "User deletions"
1217
- msgstr "Verwijderde gebruikers"
1218
-
1219
- #: loggers/SimpleExportLogger.php:27
1220
- msgctxt "Export logger: search"
1221
- msgid "Export"
1222
- msgstr "Export"
1223
-
1224
- #: loggers/SimpleExportLogger.php:29
1225
- msgctxt "Export logger: search"
1226
- msgid "Created exports"
1227
- msgstr "Aangemaakte exports"
1228
-
1229
- #: loggers/SimpleLogger.php:190
1230
- msgctxt "header output when initiator is the currently logged in user"
1231
- msgid "You"
1232
- msgstr "Jij"
1233
-
1234
- #: loggers/SimpleMediaLogger.php:29
1235
- msgctxt "Media logger: search"
1236
- msgid "Media"
1237
- msgstr "Media"
1238
-
1239
- #: loggers/SimpleMediaLogger.php:31
1240
- msgctxt "Media logger: search"
1241
- msgid "Added media"
1242
- msgstr "Toegevoegde media"
1243
-
1244
- #: loggers/SimpleMediaLogger.php:34
1245
- msgctxt "Media logger: search"
1246
- msgid "Updated media"
1247
- msgstr "Bijgewerkte media"
1248
-
1249
- #: loggers/SimpleMediaLogger.php:37
1250
- msgctxt "Media logger: search"
1251
- msgid "Deleted media"
1252
- msgstr "Verwijderde media"
1253
-
1254
- #: loggers/SimpleMenuLogger.php:31
1255
- msgctxt "Menu logger: search"
1256
- msgid "Menus"
1257
- msgstr "Menu's"
1258
-
1259
- #: loggers/SimpleMenuLogger.php:33
1260
- msgctxt "Menu updates logger: search"
1261
- msgid "Created menus"
1262
- msgstr "Aangemaakte menu's"
1263
-
1264
- #: loggers/SimpleMenuLogger.php:36
1265
- msgctxt "Menu updates logger: search"
1266
- msgid "Edited menus"
1267
- msgstr "Bewerkte menu's"
1268
-
1269
- #: loggers/SimpleMenuLogger.php:41
1270
- msgctxt "Menu updates logger: search"
1271
- msgid "Deleted menus"
1272
- msgstr "Verwijderede menu's"
1273
-
1274
- #: loggers/SimpleMenuLogger.php:326
1275
- msgctxt "menu logger"
1276
- msgid "%1$s menu item added"
1277
- msgid_plural "%1$s menu items added"
1278
- msgstr[0] "%1$s menu-item toegevoegd"
1279
- msgstr[1] "%1$s menu-items toegevoegd"
1280
-
1281
- #: loggers/SimpleMenuLogger.php:333
1282
- msgctxt "menu logger"
1283
- msgid "%1$s menu item removed"
1284
- msgid_plural "%1$s menu items removed"
1285
- msgstr[0] "%1$s menu-item verwijderd"
1286
- msgstr[1] "%1$s menu-items verwijderd"
1287
-
1288
- #: loggers/SimpleOptionsLogger.php:153
1289
- msgctxt "Options logger: search"
1290
- msgid "Options"
1291
- msgstr "Opties"
1292
-
1293
- #: loggers/SimpleOptionsLogger.php:155
1294
- msgctxt "Options logger: search"
1295
- msgid "Changed options"
1296
- msgstr "Gewijzigde opties"
1297
-
1298
- #: loggers/SimplePluginLogger.php:51
1299
- msgctxt "Plugin was non-silently activated by a user"
1300
- msgid "Activated plugin \"{plugin_name}\""
1301
- msgstr "Plug-in \"{plugin_name}\" geactiveerd"
1302
-
1303
- #: loggers/SimplePluginLogger.php:57
1304
- msgctxt "Plugin was non-silently deactivated by a user"
1305
- msgid "Deactivated plugin \"{plugin_name}\""
1306
- msgstr "Plug-in \"{plugin_name}\" gedeactiveerd"
1307
-
1308
- #: loggers/SimplePluginLogger.php:63
1309
- msgctxt "Plugin was installed"
1310
- msgid "Installed plugin \"{plugin_name}\""
1311
- msgstr "Plug-in \"{plugin_name}\" geïnstalleerd"
1312
-
1313
- #: loggers/SimplePluginLogger.php:69
1314
- msgctxt "Plugin failed to install"
1315
- msgid "Failed to install plugin \"{plugin_name}\""
1316
- msgstr "Installatie plug-in \"{plugin_name}\" mislukt"
1317
-
1318
- #: loggers/SimplePluginLogger.php:75
1319
- msgctxt "Plugin was updated"
1320
- msgid ""
1321
- "Updated plugin \"{plugin_name}\" to version {plugin_version} from "
1322
- "{plugin_prev_version}"
1323
- msgstr ""
1324
- "Plug-in \"{plugin_name}\" bijgewerkt naar versie {plugin_version} van "
1325
- "{plugin_prev_version}"
1326
-
1327
- #: loggers/SimplePluginLogger.php:81
1328
- msgctxt "Plugin update failed"
1329
- msgid "Updated plugin \"{plugin_name}\""
1330
- msgstr "Plug-in \"{plugin_name}\" bijgewerkt"
1331
-
1332
- #: loggers/SimplePluginLogger.php:87
1333
- msgctxt "Plugin file edited"
1334
- msgid "Edited plugin file \"{plugin_edited_file}\""
1335
- msgstr "Plug-in-bestand \"{plugin_edited_file}\" bewerkt"
1336
-
1337
- #: loggers/SimplePluginLogger.php:93
1338
- msgctxt "Plugin files was deleted"
1339
- msgid "Deleted plugin \"{plugin_name}\""
1340
- msgstr "Plug-in \"{plugin_name}\" verwijderd"
1341
-
1342
- #: loggers/SimplePluginLogger.php:100
1343
- msgctxt "Plugin was updated in bulk"
1344
- msgid ""
1345
- "Updated plugin \"{plugin_name}\" to {plugin_version} from "
1346
- "{plugin_prev_version}"
1347
- msgstr ""
1348
- "Plug-in \"{plugin_name}\" bijgewerkt naar versie {plugin_version} van "
1349
- "{plugin_prev_version}"
1350
-
1351
- #: loggers/SimplePluginLogger.php:108
1352
- msgctxt "Plugin logger: search"
1353
- msgid "Plugins"
1354
- msgstr "Plug-ins"
1355
-
1356
- #: loggers/SimplePluginLogger.php:110
1357
- msgctxt "Plugin logger: search"
1358
- msgid "Activated plugins"
1359
- msgstr "Geactiveerde plug-ins"
1360
-
1361
- #: loggers/SimplePluginLogger.php:113
1362
- msgctxt "Plugin logger: search"
1363
- msgid "Deactivated plugins"
1364
- msgstr "Gedeactiveerde plug-ins"
1365
-
1366
- #: loggers/SimplePluginLogger.php:116
1367
- msgctxt "Plugin logger: search"
1368
- msgid "Installed plugins"
1369
- msgstr "Geïnstalleerde plug-ins"
1370
-
1371
- #: loggers/SimplePluginLogger.php:119
1372
- msgctxt "Plugin logger: search"
1373
- msgid "Failed plugin installs"
1374
- msgstr "Mislukte plug-in-installaties"
1375
-
1376
- #: loggers/SimplePluginLogger.php:122
1377
- msgctxt "Plugin logger: search"
1378
- msgid "Updated plugins"
1379
- msgstr "Bijgewerkte plug-ins"
1380
-
1381
- #: loggers/SimplePluginLogger.php:126
1382
- msgctxt "Plugin logger: search"
1383
- msgid "Failed plugin updates"
1384
- msgstr "Mislukte plug-in-updates"
1385
-
1386
- #: loggers/SimplePluginLogger.php:129
1387
- msgctxt "Plugin logger: search"
1388
- msgid "Edited plugin files"
1389
- msgstr "Plug-in-bestanden bewerkt"
1390
-
1391
- #: loggers/SimplePluginLogger.php:132
1392
- msgctxt "Plugin logger: search"
1393
- msgid "Deleted plugins"
1394
- msgstr "Verwijderde plug-ins"
1395
-
1396
- #: loggers/SimplePluginLogger.php:887
1397
- msgctxt "plugin logger - detailed output version"
1398
- msgid "Version"
1399
- msgstr "Versie"
1400
-
1401
- #: loggers/SimplePluginLogger.php:889
1402
- msgctxt "plugin logger - detailed output author"
1403
- msgid "Author"
1404
- msgstr "Auteur"
1405
-
1406
- #: loggers/SimplePluginLogger.php:891
1407
- msgctxt "plugin logger - detailed output author"
1408
- msgid "Requires"
1409
- msgstr "Vereist"
1410
-
1411
- #: loggers/SimplePluginLogger.php:890
1412
- msgctxt "plugin logger - detailed output url"
1413
- msgid "URL"
1414
- msgstr "URL"
1415
-
1416
- #: loggers/SimplePluginLogger.php:892
1417
- msgctxt "plugin logger - detailed output compatible"
1418
- msgid "Compatible up to"
1419
- msgstr "Compatibel tot"
1420
-
1421
- #: loggers/SimplePluginLogger.php:893
1422
- msgctxt "plugin logger - detailed output downloaded"
1423
- msgid "Downloads"
1424
- msgstr "Downloads"
1425
-
1426
- #: loggers/SimplePluginLogger.php:953
1427
- msgctxt "plugin logger: plugin info thickbox title view all info"
1428
- msgid "View plugin info"
1429
- msgstr "Plug-in-informatie bekijken"
1430
-
1431
- #: loggers/SimplePluginLogger.php:968
1432
- msgctxt "plugin logger: plugin info thickbox title"
1433
- msgid "View plugin info"
1434
- msgstr "Plug-in-informatie bekijken"
1435
-
1436
- #: loggers/SimplePluginLogger.php:972
1437
- msgctxt "plugin logger: plugin info thickbox title"
1438
- msgid "View changelog"
1439
- msgstr "Bekijk wijzigingen"
1440
-
1441
- #: loggers/SimplePostLogger.php:38
1442
- msgctxt "Post logger: search"
1443
- msgid "Posts & Pages"
1444
- msgstr "Berichten en pagina's"
1445
-
1446
- #: loggers/SimplePostLogger.php:40
1447
- msgctxt "Post logger: search"
1448
- msgid "Posts created"
1449
- msgstr "Aangemaakte berichten"
1450
-
1451
- #: loggers/SimplePostLogger.php:43
1452
- msgctxt "Post logger: search"
1453
- msgid "Posts updated"
1454
- msgstr "Bijgewerkte berichten"
1455
-
1456
- #: loggers/SimplePostLogger.php:46
1457
- msgctxt "Post logger: search"
1458
- msgid "Posts trashed"
1459
- msgstr "Weggegooide berichten"
1460
-
1461
- #: loggers/SimplePostLogger.php:49
1462
- msgctxt "Post logger: search"
1463
- msgid "Posts deleted"
1464
- msgstr "Verwijderede berichten"
1465
-
1466
- #: loggers/SimplePostLogger.php:52
1467
- msgctxt "Post logger: search"
1468
- msgid "Posts restored"
1469
- msgstr "Herstelde berichten"
1470
-
1471
- #: loggers/SimpleThemeLogger.php:36
1472
- msgctxt "Theme logger: search"
1473
- msgid "Themes & Widgets"
1474
- msgstr "Thema's en widgets"
1475
-
1476
- #: loggers/SimpleThemeLogger.php:38
1477
- msgctxt "Theme logger: search"
1478
- msgid "Switched themes"
1479
- msgstr "Gewisselde thema's"
1480
-
1481
- #: loggers/SimpleThemeLogger.php:41
1482
- msgctxt "Theme logger: search"
1483
- msgid "Changed appearance of themes"
1484
- msgstr "Gewijzigde thema-weergave"
1485
-
1486
- #: loggers/SimpleThemeLogger.php:44
1487
- msgctxt "Theme logger: search"
1488
- msgid "Added widgets"
1489
- msgstr "Toegevoegde widgets"
1490
-
1491
- #: loggers/SimpleThemeLogger.php:47
1492
- msgctxt "Theme logger: search"
1493
- msgid "Removed widgets"
1494
- msgstr "Verwijderde widgets"
1495
-
1496
- #: loggers/SimpleThemeLogger.php:50
1497
- msgctxt "Theme logger: search"
1498
- msgid "Changed widgets order"
1499
- msgstr "Gewijzigde widgetvolgorde"
1500
-
1501
- #: loggers/SimpleThemeLogger.php:53
1502
- msgctxt "Theme logger: search"
1503
- msgid "Edited widgets"
1504
- msgstr "Bijgewerkte widgets"
1505
-
1506
- #: loggers/SimpleThemeLogger.php:56
1507
- msgctxt "Theme logger: search"
1508
- msgid "Background of themes changed"
1509
- msgstr "Gewijzigde thema-achtergrond"
1510
-
1511
- #: loggers/SimpleUserLogger.php:36
1512
- msgctxt "User destroys other login sessions for themself"
1513
- msgid "Logged out from all other sessions"
1514
- msgstr "Uitgelogd van alle andere sessies"
1515
-
1516
- #: loggers/SimpleUserLogger.php:45
1517
- msgctxt "User destroys all login sessions for a user"
1518
- msgid "Logged out \"{user_display_name}\" from all sessions"
1519
- msgstr "\"{user_display_name}\" uitgelogd van alle sessies"
1520
-
1521
- #: templates/settings-statsRowsPerDay.php:36
1522
- msgctxt "stats: date in rows per day chart"
1523
- msgid "M j"
1524
- msgstr "M j"
1525
-
1526
- #~ msgid "Filter"
1527
- #~ msgstr "Filteren"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/simple-history-pl_PL.mo CHANGED
Binary file
languages/simple-history-pl_PL.po CHANGED
@@ -4,327 +4,161 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Simple History\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/simple-history\n"
7
- "POT-Creation-Date: 2014-12-29 08:36+0100\n"
8
- "PO-Revision-Date: 2014-12-29 08:42+0100\n"
9
- "Last-Translator: Mateusz Czardybon <mczardybon@netizens.pl>\n"
10
- "Language-Team: Mateusz Czardybon <mczardybon@netizens.pl>\n"
11
- "Language: pl_PL\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 1.7.1\n"
 
 
 
 
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
- "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
18
- "|| n%100>=20) ? 1 : 2);\n"
19
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
20
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;"
21
  "esc_attr_x:1,2c\n"
22
- "X-Poedit-SourceCharset: UTF-8\n"
23
  "X-Poedit-Basepath: ../\n"
24
- "X-Textdomain-Support: yes\n"
25
- "X-Poedit-SearchPath-0: .\n"
26
 
27
- #: SimpleHistory.php:177
28
- msgctxt ""
29
- "Message visible while waiting for log to load from server the first time"
30
- msgid "Loading history..."
31
- msgstr "Ładowanie zdarzeń..."
32
 
33
- #: SimpleHistory.php:214
34
- msgctxt "page n of n"
35
- msgid "of"
36
- msgstr "z"
37
 
38
- #: SimpleHistory.php:285
39
- msgctxt "API: not enought arguments passed"
40
- msgid "Not enough args specified"
41
- msgstr "Brak potrzebnych argumentów"
42
 
43
- #: SimpleHistory.php:434 SimpleHistory.php:696
44
- msgid "Settings"
45
- msgstr "Ustawienia"
46
 
47
- #: SimpleHistory.php:445
48
- msgid "Log (debug)"
49
- msgstr "Zdarzenia (debug)"
50
 
51
- #: SimpleHistory.php:450
52
- msgid "Styles example (debug)"
53
- msgstr "Przykłady styli (debug)"
54
 
55
- #: SimpleHistory.php:711
56
- msgid "Simple History"
57
- msgstr "Historia zdarzeń"
58
 
59
- #: SimpleHistory.php:787
60
- msgid "Remove all log items?"
61
- msgstr "Czy na pewno chcesz usunąć wszystkie zdarzenia z bazy danych?"
62
 
63
- #: SimpleHistory.php:789
64
- msgid "Go to the first page"
65
- msgstr "Pierwsza strona"
66
 
67
- #: SimpleHistory.php:790
68
- msgid "Go to the previous page"
69
- msgstr "Poprzednia strona"
70
 
71
- #: SimpleHistory.php:791
72
- msgid "Go to the next page"
73
- msgstr "Następna strona"
74
 
75
- #: SimpleHistory.php:792
76
- msgid "Go to the last page"
77
- msgstr "Ostatnia strona"
78
 
79
- #: SimpleHistory.php:793
80
- msgid "Current page"
81
- msgstr "Aktualna strona"
82
-
83
- #: SimpleHistory.php:795
84
- msgid "Oups, the log could not be loaded right now."
85
- msgstr "Ups, zdarzenie nie może być teraz załadowane."
86
 
87
- #: SimpleHistory.php:796
88
- msgid "Your search did not match any history events."
89
- msgstr "Nie ma zdarzeń odpowiadającym Twoim kryteriom wyszukiwania."
90
 
91
- #: SimpleHistory.php:1090 SimpleHistory.php:1193
92
- msgid "Simple History Settings"
93
- msgstr "Historia zdarzeń - ustawienia"
94
 
95
- #: SimpleHistory.php:1124
96
- msgid "No valid callback found"
97
- msgstr "Nie znaleziono odpowiedniej funkcji"
98
 
99
- #: SimpleHistory.php:1178
100
- msgctxt "dashboard menu name"
101
- msgid "Simple History"
102
- msgstr "Historia zdarzeń"
103
 
104
- #: SimpleHistory.php:1214
105
- msgid "Cleared database"
106
- msgstr "Wyczyść bazę danych"
107
 
108
- #: SimpleHistory.php:1241
109
- msgid "Show history"
110
- msgstr "Pokaż zdarzenia"
111
 
112
- #: SimpleHistory.php:1254
113
- msgid "Number of items per page"
114
- msgstr "Liczba elementów na stronie"
115
 
116
- #: SimpleHistory.php:1266
117
- msgid "Clear log"
118
- msgstr "Wyczyść historię"
119
 
120
- #: SimpleHistory.php:1303
121
- msgctxt "history page headline"
122
- msgid "Simple History"
123
- msgstr "Historia zdarzeń"
124
 
125
- #: SimpleHistory.php:1406
126
- msgid "on the dashboard"
127
- msgstr "jako widget w Kokpicie"
128
-
129
- #: SimpleHistory.php:1411
130
- msgid "as a page under the dashboard menu"
131
- msgstr "jako podstronę w menu Kokpit"
132
-
133
- #: SimpleHistory.php:1427
134
- #, php-format
135
- msgid "Items in the database are automatically removed after %1$s days."
136
- msgstr "Zdarzenia będą usuwane automatycznie z bazy danych po %1$s dniach."
137
-
138
- #: SimpleHistory.php:1429
139
- msgid "Items in the database are kept forever."
140
- msgstr "Zdarzenia nigdy nie będą usuwane z bazy danych."
141
-
142
- #: SimpleHistory.php:1433
143
- msgid "Clear log now"
144
- msgstr "Wyczyść zdarzenia"
145
-
146
- #: SimpleHistory.php:1658
147
- #, php-format
148
- msgid "+%1$s more"
149
- msgstr "+%1$s więcej"
150
-
151
- #: SimpleHistory.php:1665
152
- msgid "Loading…"
153
- msgstr "Ładuję..."
154
-
155
- #: SimpleHistory.php:1672
156
- #, php-format
157
- msgid "Showing %1$s more"
158
- msgstr "Pokazuję %1$s więcej"
159
-
160
- #: SimpleHistory.php:1691
161
- msgid "Context data"
162
- msgstr "Dane kontekstowe"
163
-
164
- #: SimpleHistory.php:1692
165
- msgid "This is potentially useful meta data that a logger have saved."
166
- msgstr ""
167
- "To są potencjalnie przydatne informacje dodane podczas zapisywania zdarzenia."
168
-
169
- #: SimpleHistory.php:2029
170
- msgid "No events today so far."
171
- msgstr "Brak zdarzeń z dzisiejszego dnia."
172
-
173
- #: SimpleHistory.php:2033
174
- #, php-format
175
- msgid "%1$d event today from one user."
176
- msgstr "Dziś: %1$d zdarzenie od jednego użytkownika."
177
-
178
- #: SimpleHistory.php:2037
179
- #, php-format
180
- msgid "%1$d events today from %2$d users."
181
- msgstr "Dziś: %1$d zdarzeń od %2$d użytkowników."
182
-
183
- #: SimpleHistory.php:2041
184
- #, php-format
185
- msgid "%1$d events today from one user."
186
- msgstr "Dziś: %1$d zdarzeń od jednego użytkownika."
187
-
188
- #: dropins/SimpleHistoryDonateDropin.php:36
189
- msgid "Donate"
190
- msgstr "Darowizna"
191
-
192
- #: dropins/SimpleHistoryDonateDropin.php:51
193
- msgctxt "donate settings headline"
194
  msgid "Donate"
195
  msgstr "Darowizna"
196
 
197
- #: dropins/SimpleHistoryDonateDropin.php:72
198
- #, php-format
199
- msgid ""
200
- "If you find Simple History useful please <a href=\"%1$s\">donate</a> or <a "
201
- "href=\"%2$s\">buy me something from my Amazon wish list</a>."
202
- msgstr ""
203
- "Jeśli podoba Ci się moja wtyczka i uważasz że jest przydatna, to możesz mnie "
204
- "wesprzeć <a href=\"%1$s\">przekazując darowiznę</a> lub <a href=\"%2$s"
205
- "\">kupując mi coś z listy życzeń na Amazonie</a>."
206
-
207
- #: dropins/SimpleHistoryFilterDropin.php:43
208
- msgid "Filter history"
209
- msgstr "Filtry zdarzeń"
210
-
211
- #: dropins/SimpleHistoryFilterDropin.php:50
212
- msgid "All log levels"
213
- msgstr "Wszystkie poziomy zdarzeń"
214
 
215
- #: dropins/SimpleHistoryFilterDropin.php:64
216
- msgid "All messages"
217
- msgstr "Wszystkie rodzaje zdarzeń"
218
 
219
- #: dropins/SimpleHistoryFilterDropin.php:118
220
- msgid "All users"
221
- msgstr "Wszyscy użytkownicy"
222
 
223
- #: dropins/SimpleHistoryFilterDropin.php:139
224
- msgid "All dates"
225
- msgstr "Wszystkie daty"
226
-
227
- #: dropins/SimpleHistoryFilterDropin.php:153
228
- msgid "Filter"
229
- msgstr "Filtruj"
230
-
231
- #: dropins/SimpleHistoryIpInfoDropin.php:66
232
- msgctxt "IP Info Dropin"
233
- msgid "That IP address does not seem like a public one."
234
- msgstr "Wydaje się, że ten adres IP nie jest adresem publicznym."
235
-
236
- #: dropins/SimpleHistoryIpInfoDropin.php:85
237
- msgctxt "IP Info Dropin"
238
- msgid "IP address"
239
- msgstr "Adres IP"
240
-
241
- #: dropins/SimpleHistoryIpInfoDropin.php:96
242
- msgctxt "IP Info Dropin"
243
- msgid "Hostname"
244
- msgstr "Nazwa hosta"
245
-
246
- #: dropins/SimpleHistoryIpInfoDropin.php:107
247
- #: dropins/SimpleHistoryIpInfoDropin.php:118
248
- msgctxt "IP Info Dropin"
249
- msgid "Network"
250
- msgstr "Sieć"
251
-
252
- #: dropins/SimpleHistoryIpInfoDropin.php:129
253
- msgctxt "IP Info Dropin"
254
- msgid "City"
255
- msgstr "Miasto"
256
-
257
- #: dropins/SimpleHistoryIpInfoDropin.php:140
258
- msgctxt "IP Info Dropin"
259
- msgid "Region"
260
- msgstr "Region"
261
-
262
- #: dropins/SimpleHistoryIpInfoDropin.php:151
263
- msgctxt "IP Info Dropin"
264
- msgid "Country"
265
- msgstr "Kraj"
266
-
267
- #: dropins/SimpleHistoryIpInfoDropin.php:162
268
- #, php-format
269
- msgctxt "IP Info Dropin"
270
- msgid "IP info provided by %1$s ipinfo.io %2$s"
271
- msgstr "Informacje o adresie IP dostarczone przez %1$s ipinfo.io %2$s"
272
-
273
- #: dropins/SimpleHistoryNewRowsNotifier.php:38
274
- msgctxt "New rows notifier: error while checking for new rows"
275
- msgid "An error occured while checking for new log rows"
276
- msgstr "Wystąpił błąd podczas sprawdzania czy są nowe zdarzenia"
277
-
278
- #: dropins/SimpleHistoryNewRowsNotifier.php:80
279
- #, php-format
280
- msgid "1 new row"
281
- msgid_plural "%d new rows"
282
- msgstr[0] "1 nowe zdarzenie"
283
- msgstr[1] "%d nowe zdarzenia"
284
- msgstr[2] "%d nowych zdarzeń"
285
-
286
- #: dropins/SimpleHistoryRSSDropin.php:47
287
- msgctxt "rss settings headline"
288
  msgid "RSS feed"
289
  msgstr "Kanał RSS"
290
 
291
- #: dropins/SimpleHistoryRSSDropin.php:55
292
- msgid "Address"
293
- msgstr "Adres URL"
294
-
295
- #: dropins/SimpleHistoryRSSDropin.php:64
296
- msgid "Regenerate"
297
- msgstr "Resetowanie adresu URL kanału"
298
 
299
- #: dropins/SimpleHistoryRSSDropin.php:81
300
- msgid "Created new secret RSS address"
301
- msgstr "Utworzono nowy sekretny link do kanału RSS"
302
 
303
- #: dropins/SimpleHistoryRSSDropin.php:148
304
- #: dropins/SimpleHistoryRSSDropin.php:256
305
- #, php-format
306
  msgid "History for %s"
307
  msgstr "Historia dla %s"
308
 
309
- #: dropins/SimpleHistoryRSSDropin.php:149
310
- #: dropins/SimpleHistoryRSSDropin.php:257
311
- #, php-format
312
  msgid "WordPress History for %s"
313
  msgstr "Historia WordPressa dla %s"
314
 
315
- #: dropins/SimpleHistoryRSSDropin.php:196
316
- #, php-format
317
- msgid "+%1$s occasion"
318
- msgid_plural "+%1$s occasions"
319
- msgstr[0] "+ 1 wystąpienie"
320
- msgstr[1] "+ %1$s wystąpienia"
321
- msgstr[2] "+ %1$s wystąpień"
322
 
323
- #: dropins/SimpleHistoryRSSDropin.php:260
 
 
 
 
324
  msgid "Wrong RSS secret"
325
  msgstr "Błędny klucz kanału RSS"
326
 
327
- #: dropins/SimpleHistoryRSSDropin.php:261
328
  msgid ""
329
  "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
330
  "settings for current link to the RSS feed."
@@ -332,1156 +166,571 @@ msgstr ""
332
  "Twój sekretny link z dostępem do kanału RSS Historii zdarzeń jest błędny. "
333
  "Przejdź do ustawień WordPressa, żeby zobaczyć aktualny adres tego kanału."
334
 
335
- #: dropins/SimpleHistoryRSSDropin.php:312
336
- msgid ""
337
- "You can generate a new address for the RSS feed. This is useful if you think "
338
- "that the address has fallen into the wrong hands."
339
- msgstr ""
340
- "Możesz wygenerować nowy adres kanału RSS. Ta opcja jest przydatna, jeśli "
341
- "poprzednii link wpadł w niepowołane ręce."
342
 
343
- #: dropins/SimpleHistoryRSSDropin.php:315
344
- msgid "Generate new address"
345
- msgstr "Utwórz nowy adres URL"
346
-
347
- #: dropins/SimpleHistoryRSSDropin.php:343
348
- msgid ""
349
- "Simple History has a RSS feed which you can subscribe to and receive log "
350
- "updates. Make sure you only share the feed with people you trust, since it "
351
- "can contain sensitive or confidential information."
352
- msgstr ""
353
- "Wtyczka Simple History udostępnia kanał RSS, który możesz zasubskrybować i w "
354
- "ten sposób otrzymywać powiadomienia o zdarzeniach. Upewnij się, adres tego "
355
- "kanału znają tylko zaufane osoby, ponieważ może on zawierać dane poufne."
356
-
357
- #: dropins/SimpleHistorySettingsLogtestDropin.php:20
358
- msgid "Test data (debug)"
359
- msgstr "Dane testowe (debug)"
360
 
361
- #: dropins/SimpleHistorySettingsStatsDropin.php:27
362
- msgid "Stats"
363
- msgstr "Statystyki"
364
 
365
- #: index.php:55
366
- #, php-format
367
- msgid ""
368
- "Simple History is a great plugin, but to use it your server must have at "
369
- "least PHP 5.3 installed (you have version %s)."
370
- msgstr ""
371
- "Wtyczka Simple History do prawidłowego działania wymaga serwera z obsługą "
372
- "PHP co najmniej 5.3 (aktualnie jest %s)."
373
 
374
- #: loggers/SimpleCommentsLogger.php:95
375
- msgctxt "A comment was added to the database by a non-logged in internet user"
376
- msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
377
- msgstr "Dodano komentarz do {comment_post_type} \"{comment_post_title}\""
378
 
379
- #: loggers/SimpleCommentsLogger.php:101
380
- msgctxt "A comment was added to the database by a logged in user"
381
- msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
382
- msgstr "Dodano komentarz do {comment_post_type} \"{comment_post_title}\""
383
 
384
- #: loggers/SimpleCommentsLogger.php:107
385
- msgctxt "A comment was approved"
386
  msgid ""
387
- "Approved a comment to \"{comment_post_title}\" by {comment_author} "
388
- "({comment_author_email})"
389
- msgstr ""
390
- "Zatwierdzono komentarz dla \"{comment_post_title}\" dodany przez "
391
- "{comment_author} ({comment_author_email})"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
392
 
393
- #: loggers/SimpleCommentsLogger.php:113
394
- msgctxt "A comment was was unapproved"
395
  msgid ""
396
- "Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
397
- "({comment_author_email})"
398
  msgstr ""
399
- "Odrzucono komentarz \"{comment_post_title}\" dodany przez {comment_author} "
400
- "({comment_author_email})"
401
-
402
- #: loggers/SimpleCommentsLogger.php:119
403
- msgctxt "A comment was marked as spam"
404
- msgid "Marked a comment to post \"{comment_post_title}\" as spam"
405
- msgstr "Komentarz dodany do \"{comment_post_title}\" oznaczono jako spam"
406
 
407
- #: loggers/SimpleCommentsLogger.php:125
408
- msgctxt "A comment was marked moved to the trash"
409
  msgid ""
410
- "Trashed a comment to \"{comment_post_title}\" by {comment_author} "
411
- "({comment_author_email})"
412
  msgstr ""
413
- "Komentarz dodany do \"{comment_post_title}\" przez {comment_author} "
414
- "({comment_author_email}) przeniesiono do Kosza"
415
 
416
- #: loggers/SimpleCommentsLogger.php:131
417
- msgctxt "A comment was restored from the trash"
418
- msgid ""
419
- "Restored a comment to \"{comment_post_title}\" by {comment_author} "
420
- "({comment_author_email}) from the trash"
421
  msgstr ""
422
- "Przywrócono z Kosza komentarz dodany do \"{comment_post_title}\" przez "
423
- "{comment_author} ({comment_author_email})"
424
 
425
- #: loggers/SimpleCommentsLogger.php:137
426
- msgctxt "A comment was deleted"
427
- msgid ""
428
- "Deleted a comment to \"{comment_post_title}\" by {comment_author} "
429
- "({comment_author_email})"
430
- msgstr ""
431
- "Usunięto komentarz dodany do \"{comment_post_title}\" przez {comment_author} "
432
- "({comment_author_email})"
433
 
434
- #: loggers/SimpleCommentsLogger.php:143
435
- msgctxt "A comment was edited"
436
- msgid ""
437
- "Edited a comment to \"{comment_post_title}\" by {comment_author} "
438
- "({comment_author_email})"
439
- msgstr ""
440
- "Edytowano komentarz dodany do \"{comment_post_title}\" przez "
441
- "{comment_author} ({comment_author_email})"
442
 
443
- #: loggers/SimpleCommentsLogger.php:150
444
- msgctxt ""
445
- "A trackback was added to the database by a non-logged in internet user"
446
- msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
447
- msgstr "Dodano trackback do {comment_post_type} \"{comment_post_title}\""
448
 
449
- #: loggers/SimpleCommentsLogger.php:156
450
- msgctxt "A trackback was added to the database by a logged in user"
451
- msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
452
- msgstr "Dodano trackback do {comment_post_type} \"{comment_post_title}\""
453
 
454
- #: loggers/SimpleCommentsLogger.php:162
455
- msgctxt "A trackback was approved"
456
- msgid ""
457
- "Approved a trackback to \"{comment_post_title}\" by {comment_author} "
458
- "({comment_author_email})"
459
- msgstr ""
460
- "Zatwierdzono trackback do \"{comment_post_title}\" dodany przez "
461
- "{comment_author} ({comment_author_email})"
462
 
463
- #: loggers/SimpleCommentsLogger.php:168
464
- msgctxt "A trackback was was unapproved"
465
- msgid ""
466
- "Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
467
- "({comment_author_email})"
468
- msgstr ""
469
- "Odrzucono trackback do \"{comment_post_title}\" dodany przez "
470
- "{comment_author} ({comment_author_email})"
471
 
472
- #: loggers/SimpleCommentsLogger.php:174
473
- msgctxt "A trackback was marked as spam"
474
- msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
475
- msgstr "Trackback dodany do \"{comment_post_title}\" oznaczono jako spam"
476
 
477
- #: loggers/SimpleCommentsLogger.php:180
478
- msgctxt "A trackback was marked moved to the trash"
479
- msgid ""
480
- "Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
481
- "({comment_author_email})"
482
- msgstr ""
483
- "Przeniesiono do Kosza trackback do \"{comment_post_title}\" dodany przez "
484
- "{comment_author} ({comment_author_email})"
485
 
486
- #: loggers/SimpleCommentsLogger.php:186
487
- msgctxt "A trackback was restored from the trash"
488
- msgid ""
489
- "Restored a trackback to \"{comment_post_title}\" by {comment_author} "
490
- "({comment_author_email}) from the trash"
491
- msgstr ""
492
- "Przywrócono z Kosza trackback do \"{comment_post_title}\" dodany przez "
493
- "{comment_author} ({comment_author_email})"
494
 
495
- #: loggers/SimpleCommentsLogger.php:192
496
- msgctxt "A trackback was deleted"
497
- msgid ""
498
- "Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
499
- "({comment_author_email})"
 
 
 
 
 
 
 
 
 
500
  msgstr ""
501
- "Usunięto trackback do \"{comment_post_title}\" dodany przez {comment_author} "
502
- "({comment_author_email})"
503
 
504
- #: loggers/SimpleCommentsLogger.php:198
505
- msgctxt "A trackback was edited"
506
- msgid ""
507
- "Edited a trackback to \"{comment_post_title}\" by {comment_author} "
508
- "({comment_author_email})"
509
  msgstr ""
510
- "Edytowano trackback do \"{comment_post_title}\" dodany przez "
511
- "{comment_author} ({comment_author_email})"
512
 
513
- #: loggers/SimpleCommentsLogger.php:205
514
- msgctxt ""
515
- "A trackback was added to the database by a non-logged in internet user"
516
- msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
517
- msgstr "Dodano pingback do {comment_post_type} \"{comment_post_title}\""
518
 
519
- #: loggers/SimpleCommentsLogger.php:211
520
- msgctxt "A pingback was added to the database by a logged in user"
521
- msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
522
- msgstr "Dodano pingback do {comment_post_type} \"{comment_post_title}\""
523
 
524
- #: loggers/SimpleCommentsLogger.php:217
525
- msgctxt "A pingback was approved"
526
- msgid ""
527
- "Approved a pingback to \"{comment_post_title}\" by "
528
- "\"{comment_author}\"\" ({comment_author_email})"
529
- msgstr ""
530
- "Zatwierdzono pingback do \"{comment_post_title}\" dodany przez "
531
- "\"{comment_author}\"\" ({comment_author_email})"
532
 
533
- #: loggers/SimpleCommentsLogger.php:223
534
- msgctxt "A pingback was was unapproved"
535
- msgid ""
536
- "Unapproved a pingback to \"{comment_post_title}\" by "
537
- "\"{comment_author}\" ({comment_author_email})"
538
- msgstr ""
539
- "Odrzucono pingback do \"{comment_post_title}\" dodany przez "
540
- "\"{comment_author}\" ({comment_author_email})"
541
 
542
- #: loggers/SimpleCommentsLogger.php:229
543
- msgctxt "A pingback was marked as spam"
544
- msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
545
- msgstr "Pingback do wpisu \"{comment_post_title}\" oznaczono jako spam"
546
 
547
- #: loggers/SimpleCommentsLogger.php:235
548
- msgctxt "A pingback was marked moved to the trash"
549
- msgid ""
550
- "Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
551
- "({comment_author_email})"
552
- msgstr ""
553
- "Przeniesiono do Kosza pingback do \"{comment_post_title}\" dodany przez "
554
- "{comment_author} ({comment_author_email})"
555
 
556
- #: loggers/SimpleCommentsLogger.php:241
557
- msgctxt "A pingback was restored from the trash"
558
- msgid ""
559
- "Restored a pingback to \"{comment_post_title}\" by {comment_author} "
560
- "({comment_author_email}) from the trash"
561
- msgstr ""
562
- "Przywrócono z Kosza pingback do \"{comment_post_title}\" dodany przez "
563
- "{comment_author} ({comment_author_email})"
 
 
 
 
 
 
 
564
 
565
- #: loggers/SimpleCommentsLogger.php:247
566
- msgctxt "A pingback was deleted"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
567
  msgid ""
568
- "Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
569
- "({comment_author_email})"
570
  msgstr ""
571
- "Usunięto pingback do \"{comment_post_title}\" dodany przez {comment_author} "
572
- "({comment_author_email})"
573
 
574
- #: loggers/SimpleCommentsLogger.php:253
575
- msgctxt "A pingback was edited"
576
- msgid ""
577
- "Edited a pingback to \"{comment_post_title}\" by {comment_author} "
578
- "({comment_author_email})"
579
- msgstr ""
580
- "Edytowano pingback do \"{comment_post_title}\" dodany przez {comment_author} "
581
- "({comment_author_email})"
582
-
583
- #: loggers/SimpleCommentsLogger.php:263
584
- msgctxt "Comments logger: search"
585
- msgid "Comments"
586
- msgstr "Komentarze"
587
-
588
- #: loggers/SimpleCommentsLogger.php:264
589
- msgctxt "Comments logger: search"
590
- msgid "All comments activity"
591
- msgstr "Wszystkie aktywności związane z komentarzami"
592
-
593
- #: loggers/SimpleCommentsLogger.php:266
594
- msgctxt "Comments logger: search"
595
- msgid "Added comments"
596
- msgstr "Dodanie komentarzy"
597
-
598
- #: loggers/SimpleCommentsLogger.php:274
599
- msgctxt "Comments logger: search"
600
- msgid "Edited comments"
601
- msgstr "Edytowanie komentarzy"
602
-
603
- #: loggers/SimpleCommentsLogger.php:279
604
- msgctxt "Comments logger: search"
605
- msgid "Approved comments"
606
- msgstr "Zatwierdzanie komentarzy"
607
-
608
- #: loggers/SimpleCommentsLogger.php:284
609
- msgctxt "Comments logger: search"
610
- msgid "Held comments"
611
- msgstr "Wstrzymanie komentarzy"
612
-
613
- #: loggers/SimpleCommentsLogger.php:289
614
- msgctxt "Comments logger: search"
615
- msgid "Comments status changed to spam"
616
- msgstr "Oznaczenie komentarzy jako spam"
617
-
618
- #: loggers/SimpleCommentsLogger.php:294
619
- msgctxt "Comments logger: search"
620
- msgid "Trashed comments"
621
- msgstr "Przeniesienie komentarzy do Kosza"
622
-
623
- #: loggers/SimpleCommentsLogger.php:299
624
- msgctxt "Comments logger: search"
625
- msgid "Untrashed comments"
626
- msgstr "Przywrócenie komentarzy z Kosza"
627
-
628
- #: loggers/SimpleCommentsLogger.php:304
629
- msgctxt "Comments logger: search"
630
- msgid "Deleted comments"
631
- msgstr "Usunięcie komentarzy"
632
-
633
- #: loggers/SimpleCommentsLogger.php:599 loggers/SimpleCommentsLogger.php:612
634
- #: loggers/SimpleCommentsLogger.php:626
635
- msgctxt "comments logger - detailed output comment status"
636
- msgid "Status"
637
- msgstr "Status"
638
-
639
- #: loggers/SimpleCommentsLogger.php:601 loggers/SimpleCommentsLogger.php:614
640
- #: loggers/SimpleCommentsLogger.php:628
641
- msgctxt "comments logger - detailed output author"
642
- msgid "Name"
643
- msgstr "Imię"
644
-
645
- #: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
646
- #: loggers/SimpleCommentsLogger.php:629
647
- msgctxt "comments logger - detailed output email"
648
- msgid "Email"
649
- msgstr "E-mail"
650
-
651
- #: loggers/SimpleCommentsLogger.php:603 loggers/SimpleCommentsLogger.php:616
652
- msgctxt "comments logger - detailed output content"
653
- msgid "Content"
654
- msgstr "Treść"
655
-
656
- #: loggers/SimpleCommentsLogger.php:630
657
- msgctxt "comments logger - detailed output content"
658
- msgid "Comment"
659
- msgstr "Komentarz"
660
-
661
- #: loggers/SimpleCommentsLogger.php:682
662
- msgid "Spam"
663
- msgstr "Spam"
664
-
665
- #: loggers/SimpleCommentsLogger.php:684
666
- msgid "Approved"
667
- msgstr "Zatwierdzony"
668
-
669
- #: loggers/SimpleCommentsLogger.php:686
670
- msgid "Pending"
671
- msgstr "Oczekujący"
672
-
673
- #: loggers/SimpleCommentsLogger.php:700
674
- msgid "Trackback"
675
- msgstr "Trackback"
676
-
677
- #: loggers/SimpleCommentsLogger.php:702
678
- msgid "Pingback"
679
- msgstr "Pingback"
680
-
681
- #: loggers/SimpleCommentsLogger.php:704
682
- msgid "Comment"
683
- msgstr "Komentarz"
684
-
685
- #: loggers/SimpleCommentsLogger.php:756
686
- msgctxt "comments logger - edit comment"
687
- msgid "View/Edit"
688
- msgstr "Zobacz/Edytuj"
689
-
690
- #: loggers/SimpleCoreUpdatesLogger.php:29
691
- msgid "Updated WordPress from {prev_version} to {new_version}"
692
- msgstr "Zaktualizowano WordPressa z wersji {prev_version} do {new_version}"
693
-
694
- #: loggers/SimpleCoreUpdatesLogger.php:30
695
- msgid "WordPress auto-updated from {prev_version} to {new_version}"
696
- msgstr ""
697
- "WordPress sam się zaktualizował z wersji {prev_version} do {new_version}"
698
-
699
- #: loggers/SimpleCoreUpdatesLogger.php:34
700
- msgctxt "User logger: search"
701
- msgid "WordPress Core"
702
- msgstr "WordPress"
703
-
704
- #: loggers/SimpleCoreUpdatesLogger.php:36
705
- msgctxt "User logger: search"
706
- msgid "WordPress core updates"
707
- msgstr "Aktualizacje WordPressa"
708
-
709
- #: loggers/SimpleExportLogger.php:23
710
- msgid "Created XML export"
711
- msgstr "Utworzono plik eksportu XML"
712
-
713
- #: loggers/SimpleExportLogger.php:27
714
- msgctxt "Export logger: search"
715
- msgid "Export"
716
- msgstr "Eksport"
717
-
718
- #: loggers/SimpleExportLogger.php:29
719
- msgctxt "Export logger: search"
720
- msgid "Created exports"
721
- msgstr "Utworzenie plików eksportu"
722
-
723
- #: loggers/SimpleLegacyLogger.php:88
724
- #, php-format
725
- msgid "By %s"
726
- msgstr "Przez %s"
727
 
728
- #: loggers/SimpleLegacyLogger.php:93
729
- #, php-format
730
- msgid "%d occasions"
731
- msgstr "%d więcej"
732
 
733
- #: loggers/SimpleLogger.php:192
734
- msgctxt "header output when initiator is the currently logged in user"
735
- msgid "You"
736
- msgstr "Ty"
737
 
738
- #: loggers/SimpleLogger.php:205
739
- #, php-format
740
- msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
741
- msgstr "Usunięto użytkownika (id: %1$s, e-mail: %2$s, login: %3$s)"
742
 
743
- #: loggers/SimpleLogger.php:220
744
- msgid "Anonymous web user"
745
- msgstr "Użytkownik anonimowy"
746
 
747
- #: loggers/SimpleLogger.php:228
748
- #, php-format
749
- msgid "Anonymous user from %1$s"
750
- msgstr "Nieznany użytkownik z %1$s"
751
 
752
- #: loggers/SimpleLogger.php:299
753
- msgid "Just now"
754
- msgstr "Teraz"
755
 
756
- #: loggers/SimpleLogger.php:304
757
- msgid "M j, Y \\a\\t G:i"
758
- msgstr "Y-m-d \\o H:i"
759
 
760
- #: loggers/SimpleLogger.php:312
761
- #, php-format
762
- msgid "%1$s ago"
763
- msgstr "%1$s temu"
764
 
765
- #: loggers/SimpleMediaLogger.php:23
766
- msgid "Created {post_type} \"{attachment_title}\""
767
- msgstr "Utworzono {post_type} \"{attachment_title}\""
768
-
769
- #: loggers/SimpleMediaLogger.php:24
770
- msgid "Edited {post_type} \"{attachment_title}\""
771
- msgstr "Edytowano {post_type} \"{attachment_title}\""
772
-
773
- #: loggers/SimpleMediaLogger.php:25
774
- msgid "Deleted {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
775
- msgstr ""
776
- "Usunięto {post_type} \"{attachment_title}\" (\"{attachment_filename}\")"
777
-
778
- #: loggers/SimpleMediaLogger.php:29
779
- msgctxt "Media logger: search"
780
- msgid "Media"
781
- msgstr "Media"
782
-
783
- #: loggers/SimpleMediaLogger.php:31
784
- msgctxt "Media logger: search"
785
- msgid "Added media"
786
- msgstr "Dodanie medium"
787
-
788
- #: loggers/SimpleMediaLogger.php:34
789
- msgctxt "Media logger: search"
790
- msgid "Updated media"
791
- msgstr "Zaktualizowanie medium"
792
-
793
- #: loggers/SimpleMediaLogger.php:37
794
- msgctxt "Media logger: search"
795
- msgid "Deleted media"
796
- msgstr "Usunięcie medium"
797
-
798
- #: loggers/SimpleMediaLogger.php:81
799
- msgid "Edited {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
800
- msgstr ""
801
- "Edytowano {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
802
-
803
- #: loggers/SimpleMediaLogger.php:85
804
- msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
805
- msgstr ""
806
- "Zaktualizowano {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
807
-
808
- #: loggers/SimpleMediaLogger.php:180
809
- msgid "{attachment_thumb}"
810
- msgstr "{attachment_thumb}"
811
-
812
- #: loggers/SimpleMediaLogger.php:189
813
- msgid "{attachment_size_format}"
814
- msgstr "{attachment_size_format}"
815
-
816
- #: loggers/SimpleMediaLogger.php:190
817
- msgid "{attachment_filetype_extension}"
818
- msgstr "{attachment_filetype_extension}"
819
-
820
- #: loggers/SimpleMediaLogger.php:192
821
- msgid "{full_image_width} × {full_image_height}"
822
- msgstr "{full_image_width} × {full_image_height}"
823
-
824
- #: loggers/SimpleMenuLogger.php:23
825
- msgid "Created menu \"{menu_name}\""
826
- msgstr "Utworzono menu \"{menu_name}\""
827
-
828
- #: loggers/SimpleMenuLogger.php:24
829
- msgid "Edited menu \"{menu_name}\""
830
- msgstr "Edytowano menu \"{menu_name}\""
831
-
832
- #: loggers/SimpleMenuLogger.php:25
833
- msgid "Deleted menu \"{menu_name}\""
834
- msgstr "Usunięto menu \"{menu_name}\""
835
-
836
- #: loggers/SimpleMenuLogger.php:26
837
- msgid "Edited a menu item"
838
- msgstr "Edytowano element menu"
839
-
840
- #: loggers/SimpleMenuLogger.php:27
841
- msgid "Updated menu locations"
842
- msgstr "Zaktualizowano pozycję menu"
843
-
844
- #: loggers/SimpleMenuLogger.php:31
845
- msgctxt "Menu logger: search"
846
- msgid "Menus"
847
- msgstr "Menu"
848
-
849
- #: loggers/SimpleMenuLogger.php:33
850
- msgctxt "Menu updates logger: search"
851
- msgid "Created menus"
852
- msgstr "Utworzenie menu"
853
-
854
- #: loggers/SimpleMenuLogger.php:36
855
- msgctxt "Menu updates logger: search"
856
- msgid "Edited menus"
857
- msgstr "Edytowanie menu"
858
-
859
- #: loggers/SimpleMenuLogger.php:41
860
- msgctxt "Menu updates logger: search"
861
- msgid "Deleted menus"
862
- msgstr "Usunięcie menu"
863
-
864
- #: loggers/SimpleMenuLogger.php:326
865
- #, php-format
866
- msgctxt "menu logger"
867
- msgid "%1$s menu item added"
868
- msgid_plural "%1$s menu items added"
869
- msgstr[0] "%1$s element menu został dodany"
870
- msgstr[1] "%1$s elementy menu zostały dodane"
871
- msgstr[2] "%1$s elementów menu zostało dodanych"
872
-
873
- #: loggers/SimpleMenuLogger.php:333
874
- #, php-format
875
- msgctxt "menu logger"
876
- msgid "%1$s menu item removed"
877
- msgid_plural "%1$s menu items removed"
878
- msgstr[0] "%1$s element menu został usunięty"
879
- msgstr[1] "%1$s elementy menu zostały usunięte"
880
- msgstr[2] "%1$s elementów menu zostało usuniętych"
881
-
882
- #: loggers/SimpleOptionsLogger.php:140
883
- msgid "Updated option \"{option}\""
884
- msgstr "Zaktualizowano opcję \"{option}\""
885
-
886
- #: loggers/SimpleOptionsLogger.php:153
887
- msgctxt "Options logger: search"
888
- msgid "Options"
889
- msgstr "Opcje"
890
-
891
- #: loggers/SimpleOptionsLogger.php:155
892
- msgctxt "Options logger: search"
893
- msgid "Changed options"
894
- msgstr "Zmiana opcji"
895
-
896
- #: loggers/SimpleOptionsLogger.php:242 loggers/SimpleThemeLogger.php:570
897
- msgid "New value"
898
- msgstr "Nowa wartość"
899
-
900
- #: loggers/SimpleOptionsLogger.php:253 loggers/SimpleThemeLogger.php:582
901
- msgid "Old value"
902
- msgstr "Stara wartość"
903
-
904
- #: loggers/SimpleOptionsLogger.php:268 loggers/SimpleOptionsLogger.php:285
905
- msgid "Settings page"
906
- msgstr "Strona ustawień"
907
-
908
- #: loggers/SimplePluginLogger.php:52
909
- msgctxt "Plugin was non-silently activated by a user"
910
- msgid "Activated plugin \"{plugin_name}\""
911
- msgstr "Załączono wtyczkę \"{plugin_name}\""
912
-
913
- #: loggers/SimplePluginLogger.php:58
914
- msgctxt "Plugin was non-silently deactivated by a user"
915
- msgid "Deactivated plugin \"{plugin_name}\""
916
- msgstr "Wyłączono wtyczkę \"{plugin_name}\""
917
-
918
- #: loggers/SimplePluginLogger.php:64
919
- msgctxt "Plugin was installed"
920
- msgid "Installed plugin \"{plugin_name}\""
921
- msgstr "Zainstalowano wtyczkę \"{plugin_name}\""
922
-
923
- #: loggers/SimplePluginLogger.php:70
924
- msgctxt "Plugin failed to install"
925
- msgid "Failed to install plugin \"{plugin_name}\""
926
- msgstr "Nie udało się zainstalować wtyczki \"{plugin_name}\""
927
-
928
- #: loggers/SimplePluginLogger.php:76
929
- msgctxt "Plugin was updated"
930
- msgid ""
931
- "Updated plugin \"{plugin_name}\" to version {plugin_version} from "
932
- "{plugin_prev_version}"
933
  msgstr ""
934
- "Zaktualizowano wtyczkę \"{plugin_name}\" z wersji {plugin_prev_version} do "
935
- "{plugin_version}"
936
 
937
- #: loggers/SimplePluginLogger.php:82
938
- msgctxt "Plugin update failed"
939
- msgid "Updated plugin \"{plugin_name}\""
940
- msgstr "Zaktualizowano wtyczkę \"{plugin_name}\""
941
 
942
- #: loggers/SimplePluginLogger.php:88
943
- msgctxt "Plugin file edited"
944
- msgid "Edited plugin file \"{plugin_edited_file}\""
945
- msgstr "Edytowano plik wtyczki \"{plugin_edited_file}\""
946
 
947
- #: loggers/SimplePluginLogger.php:94
948
- msgctxt "Plugin files was deleted"
949
- msgid "Deleted plugin \"{plugin_name}\""
950
- msgstr "Usunięto wtyczkę \"{plugin_name}\""
951
 
952
- #: loggers/SimplePluginLogger.php:101
953
- msgctxt "Plugin was updated in bulk"
954
- msgid ""
955
- "Updated plugin \"{plugin_name}\" to {plugin_version} from "
956
- "{plugin_prev_version}"
957
- msgstr ""
958
- "Zaktualizowano wtyczkę \"{plugin_name}\" z wersji {plugin_prev_version} do "
959
- "{plugin_version}"
960
-
961
- #: loggers/SimplePluginLogger.php:108
962
- msgctxt "Plugin logger: search"
963
- msgid "Plugins"
964
- msgstr "Wtyczki"
965
-
966
- #: loggers/SimplePluginLogger.php:110
967
- msgctxt "Plugin logger: search"
968
- msgid "Activated plugins"
969
- msgstr "Załączenie wtyczek"
970
-
971
- #: loggers/SimplePluginLogger.php:113
972
- msgctxt "Plugin logger: search"
973
- msgid "Deactivated plugins"
974
- msgstr "Wyłączenie wtyczkek"
975
-
976
- #: loggers/SimplePluginLogger.php:116
977
- msgctxt "Plugin logger: search"
978
- msgid "Installed plugins"
979
- msgstr "Instalacje wtyczek"
980
-
981
- #: loggers/SimplePluginLogger.php:119
982
- msgctxt "Plugin logger: search"
983
- msgid "Failed plugin installs"
984
- msgstr "Nieudane instalacje wtyczek"
985
-
986
- #: loggers/SimplePluginLogger.php:122
987
- msgctxt "Plugin logger: search"
988
- msgid "Updated plugins"
989
- msgstr "Zaktualizowanie wtyczek"
990
-
991
- #: loggers/SimplePluginLogger.php:126
992
- msgctxt "Plugin logger: search"
993
- msgid "Failed plugin updates"
994
- msgstr "Nieudane zaktualizowanie wtyczek"
995
-
996
- #: loggers/SimplePluginLogger.php:129
997
- msgctxt "Plugin logger: search"
998
- msgid "Edited plugin files"
999
- msgstr "Edycja plików wtyczek"
1000
-
1001
- #: loggers/SimplePluginLogger.php:132
1002
- msgctxt "Plugin logger: search"
1003
- msgid "Deleted plugins"
1004
- msgstr "Usunięcie wtyczek"
1005
-
1006
- #: loggers/SimplePluginLogger.php:858
1007
- msgctxt "plugin logger - detailed output version"
1008
- msgid "Version"
1009
- msgstr "Wersja"
1010
-
1011
- #: loggers/SimplePluginLogger.php:860
1012
- msgctxt "plugin logger - detailed output author"
1013
- msgid "Author"
1014
- msgstr "Autor"
1015
-
1016
- #: loggers/SimplePluginLogger.php:861
1017
- msgctxt "plugin logger - detailed output url"
1018
- msgid "URL"
1019
- msgstr "Adres URL"
1020
-
1021
- #: loggers/SimplePluginLogger.php:862
1022
- msgctxt "plugin logger - detailed output author"
1023
- msgid "Requires"
1024
- msgstr "Wymagania"
1025
-
1026
- #: loggers/SimplePluginLogger.php:863
1027
- msgctxt "plugin logger - detailed output compatible"
1028
- msgid "Compatible up to"
1029
- msgstr "Kompatybilna do"
1030
-
1031
- #: loggers/SimplePluginLogger.php:864
1032
- msgctxt "plugin logger - detailed output downloaded"
1033
- msgid "Downloads"
1034
- msgstr "Pobrania"
1035
-
1036
- #: loggers/SimplePostLogger.php:30
1037
- msgid "Created {post_type} \"{post_title}\""
1038
- msgstr "Utworzono {post_type} \"{post_title}\""
1039
-
1040
- #: loggers/SimplePostLogger.php:31
1041
- msgid "Updated {post_type} \"{post_title}\""
1042
- msgstr "Zaktualizowano {post_type} \"{post_title}\""
1043
-
1044
- #: loggers/SimplePostLogger.php:32
1045
- msgid "Restored {post_type} \"{post_title}\" from trash"
1046
- msgstr "Przywrócono {post_type} \"{post_title}\" z Kosza"
1047
-
1048
- #: loggers/SimplePostLogger.php:33 loggers/SimplePostLogger.php:236
1049
- msgid "Deleted {post_type} \"{post_title}\""
1050
- msgstr "Usunięto {post_type} \"{post_title}\""
1051
-
1052
- #: loggers/SimplePostLogger.php:34
1053
- msgid "Moved {post_type} \"{post_title}\" to the trash"
1054
- msgstr "Przeniesiono {post_type} \"{post_title}\" do Kosza"
1055
-
1056
- #: loggers/SimplePostLogger.php:38
1057
- msgctxt "Post logger: search"
1058
- msgid "Posts & Pages"
1059
- msgstr "Wpisy i Strony"
1060
-
1061
- #: loggers/SimplePostLogger.php:40
1062
- msgctxt "Post logger: search"
1063
- msgid "Posts created"
1064
- msgstr "Dodanie wpisów"
1065
-
1066
- #: loggers/SimplePostLogger.php:43
1067
- msgctxt "Post logger: search"
1068
- msgid "Posts updated"
1069
- msgstr "Aktualizacja wpisów"
1070
-
1071
- #: loggers/SimplePostLogger.php:46
1072
- msgctxt "Post logger: search"
1073
- msgid "Posts trashed"
1074
- msgstr "Przeniesienie wpisów do Kosza"
1075
-
1076
- #: loggers/SimplePostLogger.php:49
1077
- msgctxt "Post logger: search"
1078
- msgid "Posts deleted"
1079
- msgstr "Usunięcie wpisów"
1080
-
1081
- #: loggers/SimplePostLogger.php:52
1082
- msgctxt "Post logger: search"
1083
- msgid "Posts restored"
1084
- msgstr "Przywrócenie wpisów z Kosza"
1085
-
1086
- #: loggers/SimplePostLogger.php:232
1087
- msgid "Updated {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
1088
- msgstr ""
1089
- "Zaktualizowano {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
1090
-
1091
- #: loggers/SimplePostLogger.php:240
1092
- msgid "Created {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
1093
- msgstr "Utworzono {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a>"
1094
-
1095
- #: loggers/SimplePostLogger.php:245
1096
- msgid ""
1097
- "Moved {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> to the trash"
1098
  msgstr ""
1099
- "Przeniesiono {post_type} <a href=\"{edit_link}\">\"{post_title}\"</a> do "
1100
- "Kosza"
1101
 
1102
- #: loggers/SimpleThemeLogger.php:26
1103
- msgid "Switched theme to \"{theme_name}\" from \"{prev_theme_name}\""
1104
- msgstr "Przełączono motyw z \"{theme_name}\" na \"{prev_theme_name}\""
1105
 
1106
- #: loggers/SimpleThemeLogger.php:27
1107
- msgid "Customized theme appearance \"{setting_id}\""
1108
- msgstr "Zmieniono ustawienia motywu \"{setting_id}\""
1109
 
1110
- #: loggers/SimpleThemeLogger.php:28
1111
- msgid "Removed widget \"{widget_id_base}\" from sidebar \"{sidebar_id}\""
1112
  msgstr ""
1113
- "Usunięto widżet \"{widget_id_base}\" z panelu bocznego \"{sidebar_id}\""
1114
 
1115
- #: loggers/SimpleThemeLogger.php:29
1116
- msgid "Added widget \"{widget_id_base}\" to sidebar \"{sidebar_id}\""
1117
- msgstr "Dodano widżet \"{widget_id_base}\" do panelu bocznego \"{sidebar_id}\""
1118
 
1119
- #: loggers/SimpleThemeLogger.php:30
1120
- msgid "Changed widget order \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
1121
  msgstr ""
1122
- "Zmienino kolejność widżetu \"{widget_id_base}\" w panelu bocznym "
1123
- "\"{sidebar_id}\""
1124
 
1125
- #: loggers/SimpleThemeLogger.php:31
1126
- msgid "Changed widget \"{widget_id_base}\" in sidebar \"{sidebar_id}\""
1127
- msgstr "Zmienono widżet \"{widget_id_base}\" w panelu bocznym \"{sidebar_id}\""
1128
 
1129
- #: loggers/SimpleThemeLogger.php:32
1130
- msgid "Changed settings for the theme custom background"
1131
- msgstr "Zmieniono ustawienia dotyczące tła motywu"
1132
 
1133
- #: loggers/SimpleThemeLogger.php:36
1134
- msgctxt "Theme logger: search"
1135
- msgid "Themes & Widgets"
1136
- msgstr "Motywy i Widżety"
1137
 
1138
- #: loggers/SimpleThemeLogger.php:38
1139
- msgctxt "Theme logger: search"
1140
- msgid "Switched themes"
1141
- msgstr "Zmiany motywów"
1142
 
1143
- #: loggers/SimpleThemeLogger.php:41
1144
- msgctxt "Theme logger: search"
1145
- msgid "Changed appearance of themes"
1146
- msgstr "Zmiany wyglądu motywów"
1147
 
1148
- #: loggers/SimpleThemeLogger.php:44
1149
- msgctxt "Theme logger: search"
1150
- msgid "Added widgets"
1151
- msgstr "Dodanie widżetów"
1152
 
1153
- #: loggers/SimpleThemeLogger.php:47
1154
- msgctxt "Theme logger: search"
1155
- msgid "Removed widgets"
1156
- msgstr "Usunięcie widżetów"
1157
 
1158
- #: loggers/SimpleThemeLogger.php:50
1159
- msgctxt "Theme logger: search"
1160
- msgid "Changed widgets order"
1161
- msgstr "Zmiana kolejności widżetów"
1162
 
1163
- #: loggers/SimpleThemeLogger.php:53
1164
- msgctxt "Theme logger: search"
1165
- msgid "Edited widgets"
1166
- msgstr "Edycje widżetów"
1167
 
1168
- #: loggers/SimpleThemeLogger.php:56
1169
- msgctxt "Theme logger: search"
1170
- msgid "Background of themes changed"
1171
- msgstr "Zmiany tła motywów"
1172
 
1173
- #: loggers/SimpleThemeLogger.php:532
1174
- msgid "Section"
1175
- msgstr "Sekcja"
1176
 
1177
- #: loggers/SimpleUserLogger.php:23
1178
- msgid ""
1179
- "Failed to login to account with username \"{login_user_login}\" because an "
1180
- "incorrect password was entered"
1181
  msgstr ""
1182
- "Wystąpił błąd logowania użytkownika z loginem \"{login_user_login}\" z "
1183
- "powodu wpisania błędnego hasła"
1184
 
1185
- #: loggers/SimpleUserLogger.php:24
1186
- msgid ""
1187
- "Failed to login with username \"{failed_login_username}\" because no user "
1188
- "with that username exist"
1189
  msgstr ""
1190
- "Wystąpił błąd logowania z wykorzystaniem loginu \"{login_user_login}\" "
1191
- "ponieważ taki nie istnieje"
1192
 
1193
- #: loggers/SimpleUserLogger.php:25
1194
- msgid "Logged in"
1195
- msgstr "Zalogowano"
1196
 
1197
- #: loggers/SimpleUserLogger.php:26
1198
- msgid "Unknown user logged in"
1199
- msgstr "Zalogował się nieznany użytkownik"
1200
 
1201
- #: loggers/SimpleUserLogger.php:27
1202
- msgid "Logged out"
1203
- msgstr "Wylogowano"
1204
 
1205
- #: loggers/SimpleUserLogger.php:28
1206
- msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
1207
- msgstr "Edytowano profil użytkownika {edited_user_login} ({edited_user_email})"
1208
 
1209
- #: loggers/SimpleUserLogger.php:29
1210
- msgid ""
1211
- "Created user {created_user_login} ({created_user_email}) with role "
1212
- "{created_user_role}"
1213
- msgstr ""
1214
- "Utworzono użytkonika {created_user_login} ({created_user_email}) z rolą "
1215
- "{created_user_role}"
1216
-
1217
- #: loggers/SimpleUserLogger.php:30
1218
- msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
1219
- msgstr "Usunięto użytkonika {deleted_user_login} ({deleted_user_email})"
1220
-
1221
- #: loggers/SimpleUserLogger.php:38
1222
- msgctxt "User destroys other login sessions for themself"
1223
- msgid "Logged out from all other sessions"
1224
- msgstr "Wylogowano z pozostałych sesji"
1225
-
1226
- #: loggers/SimpleUserLogger.php:47
1227
- msgctxt "User destroys all login sessions for a user"
1228
- msgid "Logged out \"{user_display_name}\" from all sessions"
1229
- msgstr "Wylogowano użytkownika \"{user_display_name}\" z pozostałch sesji"
1230
-
1231
- #: loggers/SimpleUserLogger.php:55
1232
- msgctxt "User logger: search"
1233
- msgid "Users"
1234
- msgstr "Użytkownicy"
1235
-
1236
- #: loggers/SimpleUserLogger.php:56
1237
- msgctxt "User logger: search"
1238
- msgid "All user activity"
1239
- msgstr "Aktywność użytkowniów"
1240
-
1241
- #: loggers/SimpleUserLogger.php:58
1242
- msgctxt "User logger: search"
1243
- msgid "Successful user logins"
1244
- msgstr "Udane logowania"
1245
-
1246
- #: loggers/SimpleUserLogger.php:62
1247
- msgctxt "User logger: search"
1248
- msgid "Failed user logins"
1249
- msgstr "Nieudane logowania"
1250
-
1251
- #: loggers/SimpleUserLogger.php:66
1252
- msgctxt "User logger: search"
1253
- msgid "User logouts"
1254
- msgstr "Wylogowania"
1255
-
1256
- #: loggers/SimpleUserLogger.php:69
1257
- msgctxt "User logger: search"
1258
- msgid "Created users"
1259
- msgstr "Dodanie użytkowników"
1260
-
1261
- #: loggers/SimpleUserLogger.php:72
1262
- msgctxt "User logger: search"
1263
- msgid "User profile updates"
1264
- msgstr "Aktualizacje profilów użytkowników"
1265
-
1266
- #: loggers/SimpleUserLogger.php:75
1267
- msgctxt "User logger: search"
1268
- msgid "User deletions"
1269
- msgstr "Usunięcie użytkowników"
1270
-
1271
- #: loggers/SimpleUserLogger.php:229
1272
- msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
1273
- msgstr "Edytowano <a href=\"{edit_profile_link}\">Twój profil</a>"
1274
-
1275
- #: loggers/SimpleUserLogger.php:233
1276
- msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
1277
- msgstr "Edytowano <a href=\"{edit_profile_link}\">jego profil</a>"
1278
-
1279
- #: loggers/SimpleUserLogger.php:242
1280
- msgid "Edited your profile"
1281
- msgstr "Edycja Twojego profilu"
1282
-
1283
- #: loggers/SimpleUserLogger.php:253
1284
- msgid ""
1285
- "Edited the profile for user <a href="
1286
- "\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
1287
  msgstr ""
1288
- "Edytowano profil użytkownika <a href="
1289
- "\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
1290
 
1291
- #: templates/settings-statsIntro.php:19
1292
- #, php-format
1293
- msgid "<b>%1$s rows</b> have been logged the last <b>%2$s days</b>"
1294
- msgstr ""
1295
- "<b>%1$s zdarzeń</b> zostało zalogowanych w ostatnich <b>%2$s dniach</b>"
1296
-
1297
- #: templates/settings-statsLogLevels.php:4
1298
- msgid "Log levels"
1299
- msgstr "Poziomy zdarzeń"
1300
-
1301
- #: templates/settings-statsLogLevels.php:6
1302
- msgid "Number of rows logged for each log level."
1303
- msgstr "Liczba zdarzeń zalogowanych dla każdego poziomu logowania."
1304
-
1305
- #: templates/settings-statsLoggers.php:4
1306
- msgid "Loggers"
1307
- msgstr "Moduły logowania zdarzeń"
1308
-
1309
- #: templates/settings-statsRowsPerDay.php:4
1310
- msgid "Rows per day"
1311
- msgstr "Zdarzenia na dzień"
1312
-
1313
- #: templates/settings-statsRowsPerDay.php:36
1314
- msgctxt "stats: date in rows per day chart"
1315
- msgid "M j"
1316
- msgstr "d.m.Y \\o H:i"
1317
 
1318
- #: templates/settings-statsUsers.php:4
1319
- msgid "Users"
1320
- msgstr "Użytkownicy"
 
 
 
 
1321
 
1322
- #: templates/settings-statsUsers.php:6
1323
- msgid "Number of logged items for the 5 users with most logged rows."
 
1324
  msgstr ""
1325
- "Liczba zalogowanych zdarzeń dla 5 użytkowników z największą liczbą zdarzeń."
1326
 
1327
- #: templates/settings-statsUsers.php:7
1328
- msgid "Deleted users are also included."
1329
- msgstr "Usunięci użytkownicy również zostali uwzględnieni."
1330
 
1331
- #~ msgid "added"
1332
- #~ msgstr "dodano"
 
 
 
 
 
1333
 
1334
- #~ msgid "unapproved"
1335
- #~ msgstr "niezatwierdzony"
 
1336
 
1337
- #~ msgid "marked as spam"
1338
- #~ msgstr "oznaczony jako spam"
 
1339
 
1340
- #~ msgid "untrashed"
1341
- #~ msgstr "przywrócono z kosza"
 
1342
 
1343
- #~ msgid "nav_menu_item"
1344
- #~ msgstr "element menu"
 
1345
 
1346
- #~ msgid "user"
1347
- #~ msgstr "użytkownik"
 
1348
 
1349
- #~ msgid "edited"
1350
- #~ msgstr "edytowano"
 
1351
 
1352
- #~ msgid "modified"
1353
- #~ msgstr "zmienono"
 
1354
 
1355
- #~ msgid "upgraded it\\'s database"
1356
- #~ msgstr "zaktualizował swoją bazę danych"
 
1357
 
1358
- #~ msgid "History"
1359
- #~ msgstr "Historia"
 
1360
 
1361
- #~ msgid "failed to log in because they entered the wrong password"
1362
- #~ msgstr ""
1363
- #~ "nie umiał(-a) się zalogować, ponieważ wpisywane hasło było niepoprawne"
1364
 
1365
- #~ msgid "One item"
1366
- #~ msgid_plural "%1$d items"
1367
- #~ msgstr[0] "1 element"
1368
- #~ msgstr[1] "%1$d elementy"
1369
- #~ msgstr[2] "%1$d elementów"
1370
 
1371
- #~ msgid "Clear it now."
1372
- #~ msgstr "Wyczyść teraz."
 
1373
 
1374
- #~ msgid ""
1375
- #~ "\n"
1376
- #~ "\t\t\tPlease\n"
1377
- #~ "\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
1378
- #~ "utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory"
1379
- #~ "\">\n"
1380
- #~ "\t\t\tdonate\n"
1381
- #~ "\t\t\t</a> to support the development of this plugin and to keep it "
1382
- #~ "free.\n"
1383
- #~ "\t\t\tThanks!\n"
1384
- #~ "\t\t\t"
1385
- #~ msgstr ""
1386
- #~ "\n"
1387
- #~ "\t\t\tProsimy\n"
1388
- #~ "\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
1389
- #~ "utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory"
1390
- #~ "\">\n"
1391
- #~ "\t\t\to wsparcie\n"
1392
- #~ "\t\t\t</a> procesu tworzenia wtyczki.\n"
1393
- #~ "\t\t\tDzięki!!\n"
1394
- #~ "\t\t\t"
1395
 
1396
- #~ msgid ""
1397
- #~ "This is a secret RSS feed for Simple History. Only share the link with "
1398
- #~ "people you trust"
1399
- #~ msgstr ""
1400
- #~ "To jest sekretny link do kanału RSS Historii zdarzeń. Nie publikuj go "
1401
- #~ "nigdzie."
1402
 
1403
- #~ msgid "Search"
1404
- #~ msgstr "Szukaj"
 
1405
 
1406
- #~ msgid "File name:"
1407
- #~ msgstr "Nazwa pliku:"
 
1408
 
1409
- #~ msgid "File size:"
1410
- #~ msgstr "Rozmiar pliku:"
 
1411
 
1412
- #~ msgid "enabled"
1413
- #~ msgstr "włączono"
 
1414
 
1415
- #~ msgid "disabled"
1416
- #~ msgstr "wyłączono"
 
1417
 
1418
- #~ msgid "<span class=\"when\">%1$s ago</span> by %2$s"
1419
- #~ msgstr "<span class=\"when\">%1$s temu</span> przez %2$s"
 
1420
 
1421
- #~ msgid "%s at %s"
1422
- #~ msgstr "%s o %s"
 
1423
 
1424
- #~ msgid "Details"
1425
- #~ msgstr "Szczegóły"
 
1426
 
1427
- #~ msgid "+ %d occasions"
1428
- #~ msgstr "+ %d więcej"
 
1429
 
1430
- #~ msgid "%s ago (%s at %s)"
1431
- #~ msgstr "%s temu (%s o %s)"
 
1432
 
1433
- #~ msgid "Show 5 more"
1434
- #~ msgstr "Pokaż 5 więcej"
 
1435
 
1436
- #~ msgid "Show 50 more"
1437
- #~ msgstr "Pokaż 50 więcej"
 
1438
 
1439
- #~ msgid "Show 100 more"
1440
- #~ msgstr "Pokaż 100 więcej"
 
1441
 
1442
- #~ msgid "No matching items found."
1443
- #~ msgstr "Brak pasujących wyników"
 
1444
 
1445
- #~ msgid "Show"
1446
- #~ msgstr "Pokaż"
 
1447
 
1448
- #~ msgid "No history items found."
1449
- #~ msgstr "Nie ma elementów w historii."
 
1450
 
1451
- #~ msgid "General Settings"
1452
- #~ msgstr "Ustawienia ogólne"
 
1453
 
1454
- #~ msgid "Writing Settings"
1455
- #~ msgstr "Ustawienia pisania"
 
1456
 
1457
- #~ msgid "Reading Settings"
1458
- #~ msgstr "Ustawienia czytania"
 
1459
 
1460
- #~ msgid "Discussion Settings"
1461
- #~ msgstr "Ustawienia dyskusji"
 
1462
 
1463
- #~ msgid "Media Settings"
1464
- #~ msgstr "Ustawienia mediów"
 
1465
 
1466
- #~ msgid "Privacy Settings"
1467
- #~ msgstr "Ustawienia prywatności"
 
 
 
1468
 
1469
- #~ msgid "Permalink Settings"
1470
- #~ msgstr "Ustawienia odnośników bezpośrednich"
 
1471
 
1472
- #~ msgid "Log events for the %s plugin."
1473
- #~ msgstr "Loguj zdarzenia dla wtyczki: %s."
 
1474
 
1475
- #~ msgid "Simple History Extender Modules"
1476
- #~ msgstr "Historia zdarzeń - moduły rozszerzeń"
 
1477
 
1478
- #~ msgid ""
1479
- #~ "Activate or deactivate the events you want to log. Read the Help tab if "
1480
- #~ "you want to know which actions are supported and which aren't."
1481
- #~ msgstr ""
1482
- #~ "Zaznacz te zdarzenia, które mają być zapisywane w historii. Otwórz "
1483
- #~ "zakładnkę Pomoc u góry ekranu, aby dowiedzieć się jakie akcje "
1484
- #~ "wspierane w ramach danego rozszerzenia."
 
1485
 
1486
- #~ msgid "Simple History Extender Module"
1487
- #~ msgstr "Historia zdarzeń - moduł rozszerzeń"
 
4
  msgstr ""
5
  "Project-Id-Version: Simple History\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/simple-history\n"
7
+ "POT-Creation-Date: 2013-05-22 13:16:18+00:00\n"
 
 
 
 
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2013-10-10 09:11+0100\n"
12
+ "Last-Translator: Mateusz Czardybon <mczardybon@netizens.pl>\n"
13
+ "Language-Team: Mateusz Czardybon <mczardybon@netizens.pl>\n"
14
+ "X-Generator: Poedit 1.5.7\n"
15
+ "Language: pl_PL\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
+ "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
18
+ "|| n%100>=20) ? 1 : 2;\n"
19
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
20
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;"
21
  "esc_attr_x:1,2c\n"
 
22
  "X-Poedit-Basepath: ../\n"
23
+ "X-Poedit-SearchPath-0: ..\n"
 
24
 
25
+ #: index.php:88 index.php:105
26
+ msgid "added"
27
+ msgstr "dodano"
 
 
28
 
29
+ #: index.php:89
30
+ msgid "approved"
31
+ msgstr "zatwierdzony"
 
32
 
33
+ #: index.php:90
34
+ msgid "unapproved"
35
+ msgstr "niezatwierdzony"
 
36
 
37
+ #: index.php:91 simple-history-extender/class.simple-history-extend.php:92
38
+ msgid "marked as spam"
39
+ msgstr "oznaczony jako spam"
40
 
41
+ #: index.php:92 simple-history-extender/class.simple-history-extend.php:94
42
+ msgid "trashed"
43
+ msgstr "wyrzucono do kosza"
44
 
45
+ #: index.php:93 simple-history-extender/class.simple-history-extend.php:95
46
+ msgid "untrashed"
47
+ msgstr "przywrócono z kosza"
48
 
49
+ #: index.php:94 simple-history-extender/class.simple-history-extend.php:89
50
+ msgid "created"
51
+ msgstr "utworzono"
52
 
53
+ #: index.php:95 simple-history-extender/class.simple-history-extend.php:91
54
+ msgid "deleted"
55
+ msgstr "usunięto"
56
 
57
+ #: index.php:96 simple-history-extender/class.simple-history-extend.php:239
58
+ msgid "updated"
59
+ msgstr "zaktualizowano"
60
 
61
+ #: index.php:97
62
+ msgid "nav_menu_item"
63
+ msgstr "element menu"
64
 
65
+ #: index.php:98 index.php:1770
66
+ msgid "attachment"
67
+ msgstr "załącznik"
68
 
69
+ #: index.php:99 index.php:1851
70
+ msgid "user"
71
+ msgstr "użytkownik"
72
 
73
+ #: index.php:100
74
+ msgid "settings page"
75
+ msgstr "strona z ustawieniami"
 
 
 
 
76
 
77
+ #: index.php:101 simple-history-extender/class.simple-history-extend.php:90
78
+ msgid "edited"
79
+ msgstr "edytowano"
80
 
81
+ #: index.php:102
82
+ msgid "comment"
83
+ msgstr "komentarz"
84
 
85
+ #: index.php:103
86
+ msgid "logged in"
87
+ msgstr "zalogowany"
88
 
89
+ #: index.php:104
90
+ msgid "logged out"
91
+ msgstr "wylogowany"
 
92
 
93
+ #: index.php:106
94
+ msgid "modified"
95
+ msgstr "zmienono"
96
 
97
+ #: index.php:107
98
+ msgid "upgraded it\\'s database"
99
+ msgstr "zaktualizował swoją bazę danych"
100
 
101
+ #: index.php:108
102
+ msgid "plugin"
103
+ msgstr "wtyczka"
104
 
105
+ #: index.php:121 index.php:283 index.php:1078
106
+ msgid "History"
107
+ msgstr "Historia"
108
 
109
+ #: index.php:181
110
+ msgid "WordPress %1$s"
111
+ msgstr "WordPress %1$s"
 
112
 
113
+ #: index.php:194 index.php:299
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  msgid "Donate"
115
  msgstr "Darowizna"
116
 
117
+ #: index.php:269 index.php:290
118
+ msgid "Simple History Settings"
119
+ msgstr "Historia zdarzeń - ustawienia"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
 
121
+ #: index.php:295
122
+ msgid "Show Simple History"
123
+ msgstr "Pokaż historię zdarzeń"
124
 
125
+ #: index.php:296
126
+ msgid "Number of items per page"
127
+ msgstr "Liczba elementów na stronie"
128
 
129
+ #: index.php:297 index.php:2024
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  msgid "RSS feed"
131
  msgstr "Kanał RSS"
132
 
133
+ #: index.php:298
134
+ msgid "Clear log"
135
+ msgstr "Wyczyść historię"
 
 
 
 
136
 
137
+ #: index.php:315
138
+ msgid "failed to log in because they entered the wrong password"
139
+ msgstr "nie umiał(-a) się zalogować, ponieważ wpisywane hasło było niepoprawne"
140
 
141
+ #: index.php:391 index.php:450
 
 
142
  msgid "History for %s"
143
  msgstr "Historia dla %s"
144
 
145
+ #: index.php:392 index.php:451
 
 
146
  msgid "WordPress History for %s"
147
  msgstr "Historia WordPressa dla %s"
148
 
149
+ #: index.php:415
150
+ msgid "By %s"
151
+ msgstr "Przez %s"
 
 
 
 
152
 
153
+ #: index.php:419
154
+ msgid "%d occasions"
155
+ msgstr "%d więcej"
156
+
157
+ #: index.php:454
158
  msgid "Wrong RSS secret"
159
  msgstr "Błędny klucz kanału RSS"
160
 
161
+ #: index.php:455
162
  msgid ""
163
  "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
164
  "settings for current link to the RSS feed."
166
  "Twój sekretny link z dostępem do kanału RSS Historii zdarzeń jest błędny. "
167
  "Przejdź do ustawień WordPressa, żeby zobaczyć aktualny adres tego kanału."
168
 
169
+ #: index.php:534 index.php:1448
170
+ msgid "One item"
171
+ msgid_plural "%1$d items"
172
+ msgstr[0] "1 element"
173
+ msgstr[1] "%1$d elementy"
174
+ msgstr[2] "%1$d elementów"
 
175
 
176
+ #: index.php:597
177
+ msgid "on the dashboard"
178
+ msgstr "jako widget w Kokpicie"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
 
180
+ #: index.php:602
181
+ msgid "as a page under the dashboard menu"
182
+ msgstr "jako podstronę w menu Kokpit"
183
 
184
+ #: index.php:617
185
+ msgid "Cleared database"
186
+ msgstr "Wyczyść bazę danych"
 
 
 
 
 
187
 
188
+ #: index.php:625
189
+ msgid "Items in the database are automatically removed after 60 days."
190
+ msgstr "Zdarzenia będą usuwane automatycznie z bazy danych po 60 dniach."
 
191
 
192
+ #: index.php:627
193
+ msgid "Clear it now."
194
+ msgstr "Wyczyść teraz."
 
195
 
196
+ #: index.php:641
 
197
  msgid ""
198
+ "\n"
199
+ "\t\t\tPlease\n"
200
+ "\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
201
+ "utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory\">\n"
202
+ "\t\t\tdonate\n"
203
+ "\t\t\t</a> to support the development of this plugin and to keep it free.\n"
204
+ "\t\t\tThanks!\n"
205
+ "\t\t\t"
206
+ msgstr ""
207
+ "\n"
208
+ "\t\t\tProsimy\n"
209
+ "\t\t\t<a href=\"http://eskapism.se/sida/donate/?"
210
+ "utm_source=wordpress&utm_medium=settingpage&utm_campaign=simplehistory\">\n"
211
+ "\t\t\to wsparcie\n"
212
+ "\t\t\t</a> procesu tworzenia wtyczki.\n"
213
+ "\t\t\tDzięki!!\n"
214
+ "\t\t\t"
215
+
216
+ #: index.php:675
217
+ msgid "Created new secret RSS address"
218
+ msgstr "Utworzono nowy sekretny link do kanału RSS"
219
 
220
+ #: index.php:686
 
221
  msgid ""
222
+ "This is a secret RSS feed for Simple History. Only share the link with "
223
+ "people you trust"
224
  msgstr ""
225
+ "To jest sekretny link do kanału RSS Historii zdarzeń. Nie publikuj go "
226
+ "nigdzie."
 
 
 
 
 
227
 
228
+ #: index.php:689
 
229
  msgid ""
230
+ "You can <a href='%s'>generate a new address</a> for the RSS feed. This is "
231
+ "useful if you think that the address has fallen into the wrong hands."
232
  msgstr ""
233
+ "Możesz <a href='%s'>wygenerować nowy link</a> kanału RSS. Ta opcja jest "
234
+ "przydatna, jeśli poprzednii link wpadł w niepowołane ręce."
235
 
236
+ #: index.php:740 index.php:756 index.php:788
237
+ msgid "From %1$s on %2$s"
 
 
 
238
  msgstr ""
 
 
239
 
240
+ #: index.php:1195
241
+ msgid "All types"
242
+ msgstr "Wszystkie wydarzenia"
 
 
 
 
 
243
 
244
+ #: index.php:1356 index.php:1360
245
+ msgid "By all users"
246
+ msgstr "Wszyscy użytkownicy"
 
 
 
 
 
247
 
248
+ #: index.php:1414
249
+ msgid "Search"
250
+ msgstr "Szukaj"
 
 
251
 
252
+ #: index.php:1452
253
+ msgid "Go to the first page"
254
+ msgstr "Idź na pierwszą stronę"
 
255
 
256
+ #: index.php:1453
257
+ msgid "Go to the previous page"
258
+ msgstr "Poprzednia strona"
 
 
 
 
 
259
 
260
+ #: index.php:1454
261
+ msgid "Current page"
262
+ msgstr "Aktualna strona"
 
 
 
 
 
263
 
264
+ #: index.php:1455
265
+ msgid "of"
266
+ msgstr "z"
 
267
 
268
+ #: index.php:1456
269
+ msgid "Go to the next page"
270
+ msgstr "Następna strona"
 
 
 
 
 
271
 
272
+ #: index.php:1457
273
+ msgid "Go to the last page"
274
+ msgstr "Ostatnia strona"
 
 
 
 
 
275
 
276
+ #: index.php:1724
277
+ msgid "Unknown or deleted user"
278
+ msgstr "Nieznany lub usunięty użytkownik"
279
+
280
+ #: index.php:1819
281
+ msgid "File name:"
282
+ msgstr "Nazwa pliku:"
283
+
284
+ #: index.php:1820
285
+ msgid "File size:"
286
+ msgstr "Rozmiar pliku:"
287
+
288
+ #: index.php:1822
289
+ msgid "Dimensions:"
290
  msgstr ""
 
 
291
 
292
+ #: index.php:1823
293
+ msgid "Length:"
 
 
 
294
  msgstr ""
 
 
295
 
296
+ #: index.php:1894 simple-history-extender/simple-history-extender.php:274
297
+ msgid "activated"
298
+ msgstr "aktywowano"
 
 
299
 
300
+ #: index.php:1897 simple-history-extender/simple-history-extender.php:274
301
+ msgid "deactivated"
302
+ msgstr "deaktywowano"
 
303
 
304
+ #: index.php:1900
305
+ msgid "enabled"
306
+ msgstr "włączono"
 
 
 
 
 
307
 
308
+ #: index.php:1903
309
+ msgid "disabled"
310
+ msgstr "wyłączono"
 
 
 
 
 
311
 
312
+ #: index.php:1919
313
+ msgid "<span class=\"when\">%1$s ago</span> by %2$s"
314
+ msgstr "<span class=\"when\">%1$s temu</span> przez %2$s"
 
315
 
316
+ #: index.php:1921
317
+ msgid "%s at %s"
318
+ msgstr "%s o %s"
 
 
 
 
 
319
 
320
+ #: index.php:1933 index.php:1981
321
+ msgid "Details"
322
+ msgstr "Szczegóły"
323
+
324
+ #: index.php:1957
325
+ msgid "+ 1 occasion"
326
+ msgstr "+ 1 więcej"
327
+
328
+ #: index.php:1960
329
+ msgid "+ %d occasions"
330
+ msgstr "+ %d więcej"
331
+
332
+ #: index.php:1974
333
+ msgid "%s ago (%s at %s)"
334
+ msgstr "%s temu (%s o %s)"
335
 
336
+ #: index.php:2017
337
+ msgid "Show 5 more"
338
+ msgstr "Pokaż 5 więcej"
339
+
340
+ #: index.php:2018
341
+ msgid "Show 15 more"
342
+ msgstr "Pokaż 15 więcej"
343
+
344
+ #: index.php:2019
345
+ msgid "Show 50 more"
346
+ msgstr "Pokaż 50 więcej"
347
+
348
+ #: index.php:2020
349
+ msgid "Show 100 more"
350
+ msgstr "Pokaż 100 więcej"
351
+
352
+ #: index.php:2023
353
+ msgid "No matching items found."
354
+ msgstr "Brak pasujących wyników"
355
+
356
+ #: index.php:2026
357
+ msgid "Show"
358
+ msgstr "Pokaż"
359
+
360
+ #: index.php:2032
361
+ msgid "Loading..."
362
+ msgstr "Ładowanie..."
363
+
364
+ #: index.php:2051
365
+ msgid "No history items found."
366
+ msgstr "Nie ma elementów w historii."
367
+
368
+ #: index.php:2052
369
  msgid ""
370
+ "Please note that Simple History only records things that happen after this "
371
+ "plugin have been installed."
372
  msgstr ""
 
 
373
 
374
+ #: index.php:2065
375
+ msgid "General Settings"
376
+ msgstr "Ustawienia ogólne"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
377
 
378
+ #: index.php:2066
379
+ msgid "Writing Settings"
380
+ msgstr "Ustawienia pisania"
 
381
 
382
+ #: index.php:2067
383
+ msgid "Reading Settings"
384
+ msgstr "Ustawienia czytania"
 
385
 
386
+ #: index.php:2068
387
+ msgid "Discussion Settings"
388
+ msgstr "Ustawienia dyskusji"
 
389
 
390
+ #: index.php:2069
391
+ msgid "Media Settings"
392
+ msgstr "Ustawienia mediów"
393
 
394
+ #: index.php:2070
395
+ msgid "Privacy Settings"
396
+ msgstr "Ustawienia prywatności"
 
397
 
398
+ #: index.php:2086
399
+ msgid "Permalink Settings"
400
+ msgstr "Ustawienia odnośników bezpośrednich"
401
 
402
+ #: simple-history-extender/class.simple-history-extend.php:68
403
+ msgid "Log events for the %s plugin."
404
+ msgstr "Loguj zdarzenia dla wtyczki: %s."
405
 
406
+ #: simple-history-extender/class.simple-history-extend.php:69
407
+ msgid "Log events for %s."
408
+ msgstr "Loguj wydarzenia dla: %s."
 
409
 
410
+ #: simple-history-extender/class.simple-history-extend.php:93
411
+ msgid "unmarked as spam"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
412
  msgstr ""
 
 
413
 
414
+ #: simple-history-extender/class.simple-history-extend.php:96
415
+ msgid "submitted"
416
+ msgstr ""
 
417
 
418
+ #: simple-history-extender/class.simple-history-extend.php:150
419
+ msgid "The %s module logs the following events:"
420
+ msgstr ""
 
421
 
422
+ #: simple-history-extender/class.simple-history-extend.php:165
423
+ msgid "The %s module does not support the following events:"
424
+ msgstr ""
 
425
 
426
+ #: simple-history-extender/class.simple-history-extend.php:263
427
+ msgid "User"
428
+ msgstr "Użytkownik"
429
+
430
+ #: simple-history-extender/modules/bbpress.php:28
431
+ msgid "BBPress"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
432
  msgstr ""
 
 
433
 
434
+ #: simple-history-extender/modules/bbpress.php:32
435
+ msgid "Creating, editing and deleting a forum, topic, reply."
436
+ msgstr ""
437
 
438
+ #: simple-history-extender/modules/bbpress.php:33
439
+ msgid "Setting the type of a forum to category or forum."
440
+ msgstr ""
441
 
442
+ #: simple-history-extender/modules/bbpress.php:34
443
+ msgid "Setting the status of a forum, topic to open or closed."
444
  msgstr ""
 
445
 
446
+ #: simple-history-extender/modules/bbpress.php:35
447
+ msgid "Setting the forum visibility to public, private or hidden."
448
+ msgstr ""
449
 
450
+ #: simple-history-extender/modules/bbpress.php:36
451
+ msgid "Trashing and untrashing a forum, topic, reply."
452
  msgstr ""
 
 
453
 
454
+ #: simple-history-extender/modules/bbpress.php:37
455
+ msgid "Marking and unmarking a topic, reply as spam."
456
+ msgstr ""
457
 
458
+ #: simple-history-extender/modules/bbpress.php:38
459
+ msgid "Marking and unmarking a topic as sticky."
460
+ msgstr ""
461
 
462
+ #: simple-history-extender/modules/bbpress.php:39
463
+ msgid "Merging and splitting a topic."
464
+ msgstr ""
 
465
 
466
+ #: simple-history-extender/modules/bbpress.php:40
467
+ msgid "Updating, merging and deleting a topic tag."
468
+ msgstr ""
 
469
 
470
+ #: simple-history-extender/modules/bbpress.php:41
471
+ msgid "A user (un)favoriting and (un)subscribing to a topic."
472
+ msgstr ""
 
473
 
474
+ #: simple-history-extender/modules/bbpress.php:42
475
+ msgid "A user saving his/her profile."
476
+ msgstr ""
 
477
 
478
+ #: simple-history-extender/modules/bbpress.php:53
479
+ msgid "closed"
480
+ msgstr ""
 
481
 
482
+ #: simple-history-extender/modules/bbpress.php:54
483
+ msgid "opened"
484
+ msgstr ""
 
485
 
486
+ #: simple-history-extender/modules/bbpress.php:55
487
+ msgid "marked as sticky"
488
+ msgstr ""
 
489
 
490
+ #: simple-history-extender/modules/bbpress.php:56
491
+ msgid "marked as super sticky"
492
+ msgstr ""
 
493
 
494
+ #: simple-history-extender/modules/bbpress.php:57
495
+ msgid "unmarked as sticky"
496
+ msgstr ""
497
 
498
+ #: simple-history-extender/modules/bbpress.php:58
499
+ msgid "set to category type"
 
 
500
  msgstr ""
 
 
501
 
502
+ #: simple-history-extender/modules/bbpress.php:59
503
+ msgid "set to forum type"
 
 
504
  msgstr ""
 
 
505
 
506
+ #: simple-history-extender/modules/bbpress.php:60
507
+ msgid "set to public"
508
+ msgstr ""
509
 
510
+ #: simple-history-extender/modules/bbpress.php:61
511
+ msgid "set to private"
512
+ msgstr ""
513
 
514
+ #: simple-history-extender/modules/bbpress.php:62
515
+ msgid "set to hidden"
516
+ msgstr ""
517
 
518
+ #: simple-history-extender/modules/bbpress.php:63
519
+ msgid "in forum %s merged into %s"
520
+ msgstr ""
521
 
522
+ #: simple-history-extender/modules/bbpress.php:64
523
+ msgid "in forum %s split from reply %s by %s into %s in forum %s"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
524
  msgstr ""
 
 
525
 
526
+ #: simple-history-extender/modules/bbpress.php:131
527
+ msgid "Forum"
528
+ msgstr ""
529
+
530
+ #: simple-history-extender/modules/bbpress.php:141
531
+ msgid "Topic"
532
+ msgstr ""
533
+
534
+ #: simple-history-extender/modules/bbpress.php:150
535
+ msgid "Topic Tag"
536
+ msgstr ""
537
+
538
+ #: simple-history-extender/modules/bbpress.php:161
539
+ msgid "by %s"
540
+ msgstr ""
 
 
 
 
 
 
 
 
 
 
 
541
 
542
+ #: simple-history-extender/modules/bbpress.php:162
543
+ msgid "Reply"
544
+ msgstr ""
545
+
546
+ #: simple-history-extender/modules/bbpress.php:174
547
+ msgid "as child of %s"
548
+ msgstr ""
549
 
550
+ #: simple-history-extender/modules/bbpress.php:235
551
+ #: simple-history-extender/modules/bbpress.php:245
552
+ msgid "in forum %s"
553
  msgstr ""
 
554
 
555
+ #: simple-history-extender/modules/bbpress.php:358
556
+ msgid "favorited"
557
+ msgstr ""
558
 
559
+ #: simple-history-extender/modules/bbpress.php:362
560
+ msgid "unfavorited"
561
+ msgstr ""
562
+
563
+ #: simple-history-extender/modules/bbpress.php:366
564
+ msgid "subscribed"
565
+ msgstr ""
566
 
567
+ #: simple-history-extender/modules/bbpress.php:370
568
+ msgid "unsubscribed"
569
+ msgstr ""
570
 
571
+ #: simple-history-extender/modules/bbpress.php:374
572
+ msgid "profile updated"
573
+ msgstr ""
574
 
575
+ #: simple-history-extender/modules/bbpress.php:378
576
+ msgid "registered"
577
+ msgstr ""
578
 
579
+ #: simple-history-extender/modules/bbpress.php:390
580
+ msgid "changed forum role to %s"
581
+ msgstr ""
582
 
583
+ #: simple-history-extender/modules/bbpress.php:390
584
+ msgid "none"
585
+ msgstr ""
586
 
587
+ #: simple-history-extender/modules/gravityforms.php:28
588
+ msgid "Gravity Forms"
589
+ msgstr ""
590
 
591
+ #: simple-history-extender/modules/gravityforms.php:32
592
+ msgid "Creating, editing and deleting a form."
593
+ msgstr ""
594
 
595
+ #: simple-history-extender/modules/gravityforms.php:33
596
+ msgid "Deleting a field from an existing form."
597
+ msgstr ""
598
 
599
+ #: simple-history-extender/modules/gravityforms.php:34
600
+ msgid "Submitting, editing and deleting an entry."
601
+ msgstr ""
602
 
603
+ #: simple-history-extender/modules/gravityforms.php:35
604
+ msgid "Changing the status of an entry, including read/unread and star/unstar."
605
+ msgstr ""
606
 
607
+ #: simple-history-extender/modules/gravityforms.php:38
608
+ msgid "Duplicating a form."
609
+ msgstr ""
 
 
610
 
611
+ #: simple-history-extender/modules/gravityforms.php:39
612
+ msgid "Setting a form to active/inactive."
613
+ msgstr ""
614
 
615
+ #: simple-history-extender/modules/gravityforms.php:48
616
+ msgid "starred"
617
+ msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
618
 
619
+ #: simple-history-extender/modules/gravityforms.php:49
620
+ msgid "unstarred"
621
+ msgstr ""
 
 
 
622
 
623
+ #: simple-history-extender/modules/gravityforms.php:50
624
+ msgid "marked as read"
625
+ msgstr ""
626
 
627
+ #: simple-history-extender/modules/gravityforms.php:51
628
+ msgid "marked as unread"
629
+ msgstr ""
630
 
631
+ #: simple-history-extender/modules/gravityforms.php:110
632
+ msgid "from %s"
633
+ msgstr ""
634
 
635
+ #: simple-history-extender/modules/gravityforms.php:112
636
+ msgid "from unknown"
637
+ msgstr ""
638
 
639
+ #: simple-history-extender/modules/gravityforms.php:120
640
+ msgid "Form"
641
+ msgstr ""
642
 
643
+ #: simple-history-extender/modules/gravityforms.php:129
644
+ msgid "Form entry"
645
+ msgstr ""
646
 
647
+ #: simple-history-extender/modules/gravityforms.php:150
648
+ msgid "without entries deleted"
649
+ msgstr ""
650
 
651
+ #: simple-history-extender/modules/gravityforms.php:151
652
+ msgid "with %d entries deleted"
653
+ msgstr ""
654
 
655
+ #: simple-history-extender/modules/gravityforms.php:160
656
+ msgid "field %s deleted"
657
+ msgstr ""
658
 
659
+ #: simple-history-extender/modules/gravityforms.php:201
660
+ msgid "restored"
661
+ msgstr ""
662
 
663
+ #: simple-history-extender/modules/gravityforms.php:206
664
+ msgid "changed status"
665
+ msgstr ""
666
 
667
+ #: simple-history-extender/modules/widgets.php:25
668
+ msgid "Widgets"
669
+ msgstr ""
670
 
671
+ #: simple-history-extender/modules/widgets.php:27
672
+ msgid "Log events for the Widgets section of your WP install."
673
+ msgstr ""
674
 
675
+ #: simple-history-extender/modules/widgets.php:30
676
+ msgid "Adding, updating and deleting widgets in/from a sidebar."
677
+ msgstr ""
678
 
679
+ #: simple-history-extender/modules/widgets.php:33
680
+ msgid "Moving widgets between sidebars."
681
+ msgstr ""
682
 
683
+ #: simple-history-extender/modules/widgets.php:34
684
+ msgid "Setting a widget to active/inactive."
685
+ msgstr ""
686
 
687
+ #: simple-history-extender/modules/widgets.php:86
688
+ msgid "removed from sidebar %s"
689
+ msgstr ""
690
 
691
+ #: simple-history-extender/modules/widgets.php:88
692
+ msgid "updated in sidebar %s"
693
+ msgstr ""
694
 
695
+ #: simple-history-extender/modules/widgets.php:90
696
+ msgid "added to sidebar %s"
697
+ msgstr ""
698
 
699
+ #: simple-history-extender/modules/widgets.php:95
700
+ msgid "Widget"
701
+ msgstr ""
702
 
703
+ #: simple-history-extender/simple-history-extender.php:139
704
+ msgid "Settings"
705
+ msgstr "Ustawienia"
706
 
707
+ #: simple-history-extender/simple-history-extender.php:162
708
+ msgid ""
709
+ "The Simple History Extender plugin was deactivated because the Simple "
710
+ "History plugin was not found installed or active."
711
+ msgstr ""
712
 
713
+ #: simple-history-extender/simple-history-extender.php:163
714
+ msgid "The Simple History Extender plugin was deactivated."
715
+ msgstr ""
716
 
717
+ #: simple-history-extender/simple-history-extender.php:167
718
+ msgid "Return"
719
+ msgstr ""
720
 
721
+ #: simple-history-extender/simple-history-extender.php:226
722
+ msgid "Simple History Extender Modules"
723
+ msgstr "Historia zdarzeń - moduły rozszerzeń"
724
 
725
+ #: simple-history-extender/simple-history-extender.php:236
726
+ msgid ""
727
+ "Activate or deactivate the events you want to log. Read the Help tab if you "
728
+ "want to know which actions are supported and which aren't."
729
+ msgstr ""
730
+ "Zaznacz te zdarzenia, które mają być zapisywane w historii. Otwórz zakładnkę "
731
+ "Pomoc u góry ekranu, aby dowiedzieć się jakie akcje są wspierane w ramach "
732
+ "danego rozszerzenia."
733
 
734
+ #: simple-history-extender/simple-history-extender.php:275
735
+ msgid "Simple History Extender Module"
736
+ msgstr "Historia zdarzeń - moduł rozszerzeń"
languages/simple-history-sv_SE.mo CHANGED
Binary file
languages/simple-history-sv_SE.po CHANGED
@@ -4,15 +4,15 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Simple History 2\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
7
- "POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
8
- "PO-Revision-Date: 2015-02-11 13:42+0100\n"
9
  "Last-Translator: Pär Thernström <par.thernstrom@gmail.com>\n"
10
  "Language-Team: \n"
11
  "Language: sv\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 1.7.3\n"
16
  "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
  "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
  "esc_html_x:1,2c\n"
@@ -22,156 +22,133 @@ msgstr ""
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
25
- #: SimpleHistory.php:504 SimpleHistory.php:765
26
  msgid "Settings"
27
  msgstr "Inställningar"
28
 
29
- #: SimpleHistory.php:515
30
  msgid "Log (debug)"
31
  msgstr "Logg (debug)"
32
 
33
- #: SimpleHistory.php:520
34
  msgid "Styles example (debug)"
35
  msgstr "Stilexempel (debug)"
36
 
37
- #. Plugin Name of the plugin/theme
38
- #: SimpleHistory.php:780
39
- msgid "Simple History"
40
- msgstr "Simple History"
41
 
42
- #: SimpleHistory.php:856
43
  msgid "Remove all log items?"
44
  msgstr "Ta bort alla händelser?"
45
 
46
- #: SimpleHistory.php:858
47
  msgid "Go to the first page"
48
  msgstr "Gå till första sidan"
49
 
50
- #: SimpleHistory.php:859
51
  msgid "Go to the previous page"
52
  msgstr "Gå till föregående sida"
53
 
54
- #: SimpleHistory.php:860
55
  msgid "Go to the next page"
56
  msgstr "Gå till nästa sida"
57
 
58
- #: SimpleHistory.php:861
59
  msgid "Go to the last page"
60
  msgstr "Gå till sista sidan"
61
 
62
- #: SimpleHistory.php:862
63
  msgid "Current page"
64
  msgstr "Aktuell sida"
65
 
66
- #: SimpleHistory.php:864
67
  msgid "Oups, the log could not be loaded right now."
68
  msgstr "Hoppsan, historiken kunde inte laddas just nu."
69
 
70
- #: SimpleHistory.php:865
71
  msgid "Your search did not match any history events."
72
  msgstr "Din sökning matchade inte några händelser i historiken."
73
 
74
- #: SimpleHistory.php:1149 SimpleHistory.php:1250
75
  msgid "Simple History Settings"
76
  msgstr "Inställningar för Simple History"
77
 
78
- #: SimpleHistory.php:1183
79
  msgid "No valid callback found"
80
  msgstr "Inget giltigt callback hittades."
81
 
82
- #: SimpleHistory.php:1271
83
  msgid "Cleared database"
84
  msgstr "Databasen rensades"
85
 
86
- #: SimpleHistory.php:1298
87
  msgid "Show history"
88
  msgstr "Visa historik"
89
 
90
- #: SimpleHistory.php:1311
91
  msgid "Number of items per page"
92
  msgstr "Antal händelser per sida"
93
 
94
- #: SimpleHistory.php:1323
95
  msgid "Clear log"
96
  msgstr "Rensa logg"
97
 
98
- #: SimpleHistory.php:1462
99
  msgid "on the dashboard"
100
  msgstr "i panelen"
101
 
102
- #: SimpleHistory.php:1467
103
  msgid "as a page under the dashboard menu"
104
  msgstr "som en sida under panel-menyn"
105
 
106
- #: SimpleHistory.php:1483
107
  msgid "Items in the database are automatically removed after %1$s days."
108
  msgstr "Händelser i databasen tas automatiskt bort efter %1$s dagar."
109
 
110
- #: SimpleHistory.php:1485
111
  msgid "Items in the database are kept forever."
112
  msgstr "Händelser i databasen lagras för evigt."
113
 
114
- #: SimpleHistory.php:1489
115
  msgid "Clear log now"
116
  msgstr "Rensa loggen nu"
117
 
118
- #: SimpleHistory.php:1533
119
- msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
120
- msgstr "Rensade historiken för Simple History. ({num_rows} rader togs bort)."
121
-
122
- #: SimpleHistory.php:1793
123
- msgid "+%1$s similar event"
124
- msgid_plural "+%1$s similar events"
125
- msgstr[0] "+%1$s liknande händelse"
126
- msgstr[1] "+%1$s liknande händelser"
127
 
128
- #: SimpleHistory.php:1800
129
  msgid "Loading…"
130
  msgstr "Laddar historik..."
131
 
132
- #: SimpleHistory.php:1807
133
  msgid "Showing %1$s more"
134
  msgstr "+%1$s fler"
135
 
136
- #: SimpleHistory.php:1826
137
  msgid "Context data"
138
  msgstr "Kontextuell data"
139
 
140
- #: SimpleHistory.php:1827
141
- msgid "This is potentially useful meta data that a logger has saved."
142
  msgstr "Detta eventuellt användbar metadata som en logger har sparat."
143
 
144
- #: SimpleHistory.php:2302
145
  msgid "No events today so far."
146
  msgstr "Inga händelser idag ännu."
147
 
148
- #: SimpleHistory.php:2321
149
- msgid "One event today from one user."
150
- msgstr "En händelse idag från en användare."
151
-
152
- #: SimpleHistory.php:2327
153
- msgid "One event today from one source."
154
- msgstr "En händelse idag från en källa."
155
-
156
- #: SimpleHistory.php:2333
157
- msgid "%1$d events today from one user."
158
- msgstr "%1$d händelser idag från en användare."
159
 
160
- #: SimpleHistory.php:2339
161
  msgid "%1$d events today from %2$d users."
162
  msgstr "%1$d händelser idag från %2$d användare."
163
 
164
- #: SimpleHistory.php:2345 SimpleHistory.php:2351
165
- msgid "%1$d events today from one user and one other source."
166
- msgstr "%1$d händelser idag från en användare och från en annan källa."
167
-
168
- #: SimpleHistory.php:2357
169
- msgid "%1$d events today from one user and %3$d other sources."
170
- msgstr "%1$d händelser idag från en användare och från %3$d andra källor."
171
-
172
- #: SimpleHistory.php:2363
173
- msgid "%1$s events today from %2$d users and %3$d other sources."
174
- msgstr "%1$s händelser idag från %2$d användare och %3$d andra källor."
175
 
176
  #: dropins/SimpleHistoryDonateDropin.php:36
177
  msgid "Donate"
@@ -185,34 +162,29 @@ msgstr ""
185
  "Om Simple History är användbar för dig så <a href=\"%1$s\">donera</a> eller "
186
  "<a href=\"%2$s\">köp mig något från min Amazon wish list</a>."
187
 
188
- #: dropins/SimpleHistoryFilterDropin.php:44
189
  msgid "Filter history"
190
  msgstr "Filtrera historik"
191
 
192
- #: dropins/SimpleHistoryFilterDropin.php:48
193
- #: dropins/SimpleHistoryFilterDropin.php:159
194
- msgid "Search events"
195
- msgstr "Sök händelser"
196
-
197
- #: dropins/SimpleHistoryFilterDropin.php:56
198
  msgid "All log levels"
199
  msgstr "Alla loggnivåer"
200
 
201
- #: dropins/SimpleHistoryFilterDropin.php:70
202
  msgid "All messages"
203
  msgstr "Alla meddelanden"
204
 
205
- #: dropins/SimpleHistoryFilterDropin.php:124
206
  msgid "All users"
207
  msgstr "Alla användare"
208
 
209
- #: dropins/SimpleHistoryFilterDropin.php:145
210
  msgid "All dates"
211
  msgstr "Alla datum"
212
 
213
- #: dropins/SimpleHistoryFilterDropin.php:168
214
- msgid "Search"
215
- msgstr "Sök"
216
 
217
  #: dropins/SimpleHistoryNewRowsNotifier.php:80
218
  msgid "1 new row"
@@ -233,12 +205,12 @@ msgid "Created new secret RSS address"
233
  msgstr "Skapade en ny hemlig RSS-adress"
234
 
235
  #: dropins/SimpleHistoryRSSDropin.php:148
236
- #: dropins/SimpleHistoryRSSDropin.php:259
237
  msgid "History for %s"
238
  msgstr "Historik för %s"
239
 
240
  #: dropins/SimpleHistoryRSSDropin.php:149
241
- #: dropins/SimpleHistoryRSSDropin.php:260
242
  msgid "WordPress History for %s"
243
  msgstr "WordPress-historik för %s"
244
 
@@ -248,11 +220,11 @@ msgid_plural "+%1$s occasions"
248
  msgstr[0] "+%1$s tillfälle"
249
  msgstr[1] "+%1$s tillfällen"
250
 
251
- #: dropins/SimpleHistoryRSSDropin.php:263
252
  msgid "Wrong RSS secret"
253
  msgstr "Fel RSS-lösenord"
254
 
255
- #: dropins/SimpleHistoryRSSDropin.php:264
256
  msgid ""
257
  "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
258
  "settings for current link to the RSS feed."
@@ -260,7 +232,7 @@ msgstr ""
260
  "Ditt RSS-lösenord för RSS-flödet för Simple History är felaktigt. Gå till "
261
  "WordPress-inställningarna för att få en aktuell länk till RSS-flöded."
262
 
263
- #: dropins/SimpleHistoryRSSDropin.php:315
264
  msgid ""
265
  "You can generate a new address for the RSS feed. This is useful if you think "
266
  "that the address has fallen into the wrong hands."
@@ -268,11 +240,11 @@ msgstr ""
268
  "Du kan skapa en ny adress för RSS-flödet. Detta är användbart om du "
269
  "misstänker att adressen kommit i orätta händer."
270
 
271
- #: dropins/SimpleHistoryRSSDropin.php:318
272
  msgid "Generate new address"
273
  msgstr "Skapa ny adress"
274
 
275
- #: dropins/SimpleHistoryRSSDropin.php:346
276
  msgid ""
277
  "Simple History has a RSS feed which you can subscribe to and receive log "
278
  "updates. Make sure you only share the feed with people you trust, since it "
@@ -290,11 +262,7 @@ msgstr "Testdata (debug)"
290
  msgid "Stats"
291
  msgstr "Statistik"
292
 
293
- #: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
294
- msgid "Just now"
295
- msgstr "Just nu"
296
-
297
- #: index.php:59
298
  msgid ""
299
  "Simple History is a great plugin, but to use it your server must have at "
300
  "least PHP 5.3 installed (you have version %s)."
@@ -302,27 +270,27 @@ msgstr ""
302
  "Simple History är en rackarns bra plugin, men för att använda den måste din "
303
  "server ha minst PHP 5.3 installerat (du har version %s)."
304
 
305
- #: loggers/SimpleCommentsLogger.php:685
306
  msgid "Spam"
307
  msgstr "Skräp"
308
 
309
- #: loggers/SimpleCommentsLogger.php:687
310
  msgid "Approved"
311
  msgstr "Godkänd"
312
 
313
- #: loggers/SimpleCommentsLogger.php:689
314
  msgid "Pending"
315
  msgstr "Väntande"
316
 
317
- #: loggers/SimpleCommentsLogger.php:703
318
  msgid "Trackback"
319
  msgstr "Trackback"
320
 
321
- #: loggers/SimpleCommentsLogger.php:705
322
  msgid "Pingback"
323
  msgstr "Pingback"
324
 
325
- #: loggers/SimpleCommentsLogger.php:707
326
  msgid "Comment"
327
  msgstr "Kommentar"
328
 
@@ -347,25 +315,29 @@ msgstr "Av %s"
347
  msgid "%d occasions"
348
  msgstr "%d tillfällen"
349
 
350
- #: loggers/SimpleLogger.php:203
351
  msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
352
  msgstr "Raderad användare (hade id %1$s, epost %2$s, login %3$s)"
353
 
354
- #: loggers/SimpleLogger.php:218
355
  msgid "Anonymous web user"
356
  msgstr "Anonym webbanvändare"
357
 
358
- #: loggers/SimpleLogger.php:226
359
  msgid "Anonymous user from %1$s"
360
  msgstr "Anonym användare från %1$s"
361
 
 
 
 
 
362
  #. translators: Date format for log row header, see http:php.net/date
363
- #: loggers/SimpleLogger.php:301
364
  msgid "M j, Y \\a\\t G:i"
365
  msgstr "M j, Y \\a\\t G:i"
366
 
367
  #. translators: 1: last modified date and time in human time diff-format
368
- #: loggers/SimpleLogger.php:309
369
  msgid "%1$s ago"
370
  msgstr "%1$s sedan"
371
 
@@ -391,19 +363,19 @@ msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
391
  msgstr ""
392
  "Laddade upp {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
393
 
394
- #: loggers/SimpleMediaLogger.php:197
395
  msgid "{attachment_thumb}"
396
  msgstr "{attachment_thumb}"
397
 
398
- #: loggers/SimpleMediaLogger.php:206
399
  msgid "{attachment_size_format}"
400
  msgstr "{attachment_size_format}"
401
 
402
- #: loggers/SimpleMediaLogger.php:207
403
  msgid "{attachment_filetype_extension}"
404
  msgstr "{attachment_filetype_extension}"
405
 
406
- #: loggers/SimpleMediaLogger.php:209
407
  msgid "{full_image_width} × {full_image_height}"
408
  msgstr "{full_image_width} × {full_image_height}"
409
 
@@ -511,7 +483,7 @@ msgstr "Ändrade inställningar för temats anpassade bakgrund"
511
  msgid "Section"
512
  msgstr "Sektion"
513
 
514
- #: loggers/SimpleUserLogger.php:22
515
  msgid ""
516
  "Failed to login to account with username \"{login_user_login}\" because an "
517
  "incorrect password was entered"
@@ -519,32 +491,32 @@ msgstr ""
519
  "Misslyckades att logga in på kontot med användarnamnet \"{login_user_login}\" "
520
  "eftersom ett felaktigt lösenord angavs"
521
 
522
- #: loggers/SimpleUserLogger.php:23
523
  msgid ""
524
  "Failed to login with username \"{failed_login_username}\" because no user "
525
- "with that username exists"
526
  msgstr ""
527
- "Det gick inte att logga in med användarnamn \"{failed_login_username}\" "
528
- "eftersom ingen användare med det användarnamnet existerar"
529
 
530
- #: loggers/SimpleUserLogger.php:24
531
  msgid "Logged in"
532
  msgstr "Loggade in"
533
 
534
- #: loggers/SimpleUserLogger.php:25
535
  msgid "Unknown user logged in"
536
  msgstr "Okänd användare loggade in"
537
 
538
- #: loggers/SimpleUserLogger.php:26
539
  msgid "Logged out"
540
  msgstr "Loggade ut"
541
 
542
- #: loggers/SimpleUserLogger.php:27
543
  msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
544
  msgstr ""
545
  "Redigerade profilen för användaren {edited_user_login} ({edited_user_email})"
546
 
547
- #: loggers/SimpleUserLogger.php:28
548
  msgid ""
549
  "Created user {created_user_login} ({created_user_email}) with role "
550
  "{created_user_role}"
@@ -552,23 +524,23 @@ msgstr ""
552
  "Skapade användare {created_user_login} ({created_user_email}) med rollen "
553
  "{created_user_role}"
554
 
555
- #: loggers/SimpleUserLogger.php:29
556
  msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
557
  msgstr "Raderade användaren {deleted_user_login} ({deleted_user_email})"
558
 
559
- #: loggers/SimpleUserLogger.php:227
560
  msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
561
  msgstr "Redigerade <a href=\"{edit_profile_link}\">din profl</a>"
562
 
563
- #: loggers/SimpleUserLogger.php:231
564
  msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
565
  msgstr "Redigerade <a href=\"{edit_profile_link}\">sin profil</a>"
566
 
567
- #: loggers/SimpleUserLogger.php:240
568
  msgid "Edited your profile"
569
  msgstr "Redigerade din profil"
570
 
571
- #: loggers/SimpleUserLogger.php:251
572
  msgid ""
573
  "Edited the profile for user <a href="
574
  "\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
@@ -624,6 +596,10 @@ msgstr ""
624
  msgid "Deleted users are also included."
625
  msgstr "Raderade användare är också inkluderade."
626
 
 
 
 
 
627
  #. Plugin URI of the plugin/theme
628
  msgid "http://simple-history.com"
629
  msgstr "http://simple-history.com"
@@ -644,177 +620,37 @@ msgstr "Pär Thernström"
644
  msgid "http://simple-history.com/"
645
  msgstr "http://simple-history.com"
646
 
647
- #: SimpleHistory.php:249
648
  msgctxt ""
649
  "Message visible while waiting for log to load from server the first time"
650
  msgid "Loading history..."
651
  msgstr "Laddar historik..."
652
 
653
- #: SimpleHistory.php:286
654
  msgctxt "page n of n"
655
  msgid "of"
656
  msgstr "av"
657
 
658
- #: SimpleHistory.php:357
659
  msgctxt "API: not enought arguments passed"
660
  msgid "Not enough args specified"
661
  msgstr "Inte tillräckligt med arguments specifierade"
662
 
663
- #: SimpleHistory.php:1235
664
  msgctxt "dashboard menu name"
665
  msgid "Simple History"
666
  msgstr "Simple History"
667
 
668
- #: SimpleHistory.php:1359
669
  msgctxt "history page headline"
670
  msgid "Simple History"
671
  msgstr "Simple History"
672
 
673
- #: SimpleHistory.php:1619
674
- msgctxt "simple-history"
675
- msgid "Simple History removed one event that were older than {days} days"
676
- msgid_plural ""
677
- "Simple History removed {num_rows} events that were older than {days} days"
678
- msgstr[0] "Simple History raderade en händelse som var äldre än {days} dagar."
679
- msgstr[1] ""
680
- "Simple History radera {num_rows} händelser som var äldre än {days} dagar"
681
-
682
- #: SimpleHistory.php:1963
683
- msgctxt "Log level in gui"
684
- msgid "emergency"
685
- msgstr "kritiskt"
686
-
687
- #: SimpleHistory.php:1967
688
- msgctxt "Log level in gui"
689
- msgid "alert"
690
- msgstr "alert"
691
-
692
- #: SimpleHistory.php:1971
693
- msgctxt "Log level in gui"
694
- msgid "critical"
695
- msgstr "kritiskt"
696
-
697
- #: SimpleHistory.php:1975
698
- msgctxt "Log level in gui"
699
- msgid "error"
700
- msgstr "error"
701
-
702
- #: SimpleHistory.php:1979
703
- msgctxt "Log level in gui"
704
- msgid "warning"
705
- msgstr "warning"
706
-
707
- #: SimpleHistory.php:1983
708
- msgctxt "Log level in gui"
709
- msgid "notice"
710
- msgstr "notice"
711
-
712
- #: SimpleHistory.php:1987
713
- msgctxt "Log level in gui"
714
- msgid "info"
715
- msgstr "info"
716
-
717
- #: SimpleHistory.php:1991
718
- msgctxt "Log level in gui"
719
- msgid "debug"
720
- msgstr "debug"
721
-
722
- #: SimpleHistory.php:1996
723
- msgctxt "Log level in gui"
724
- msgid "Emergency"
725
- msgstr "Emergency"
726
-
727
- #: SimpleHistory.php:2000
728
- msgctxt "Log level in gui"
729
- msgid "Alert"
730
- msgstr "Alert"
731
-
732
- #: SimpleHistory.php:2004
733
- msgctxt "Log level in gui"
734
- msgid "Critical"
735
- msgstr "Critical"
736
-
737
- #: SimpleHistory.php:2008
738
- msgctxt "Log level in gui"
739
- msgid "Error"
740
- msgstr "Error"
741
-
742
- #: SimpleHistory.php:2012
743
- msgctxt "Log level in gui"
744
- msgid "Warning"
745
- msgstr "Warning"
746
-
747
- #: SimpleHistory.php:2016
748
- msgctxt "Log level in gui"
749
- msgid "Notice"
750
- msgstr "Notice"
751
-
752
- #: SimpleHistory.php:2020
753
- msgctxt "Log level in gui"
754
- msgid "Info"
755
- msgstr "Info"
756
-
757
- #: SimpleHistory.php:2024
758
- msgctxt "Log level in gui"
759
- msgid "Debug"
760
- msgstr "Debug"
761
-
762
  #: dropins/SimpleHistoryDonateDropin.php:51
763
  msgctxt "donate settings headline"
764
  msgid "Donate"
765
  msgstr "Donera"
766
 
767
- #: dropins/SimpleHistoryFilterDropin.php:50
768
- msgctxt "Filter dropin: button to show more search options"
769
- msgid "Show options"
770
- msgstr "Visa alternativ"
771
-
772
- #: dropins/SimpleHistoryFilterDropin.php:160
773
- msgctxt "Filter dropin: button to hide more search options"
774
- msgid "Hide options"
775
- msgstr "Göm alternativ"
776
-
777
- #: dropins/SimpleHistoryIpInfoDropin.php:66
778
- msgctxt "IP Info Dropin"
779
- msgid "That IP address does not seem like a public one."
780
- msgstr "Det IP-numret verkar inte vara publikt."
781
-
782
- #: dropins/SimpleHistoryIpInfoDropin.php:85
783
- msgctxt "IP Info Dropin"
784
- msgid "IP address"
785
- msgstr "IP-adress"
786
-
787
- #: dropins/SimpleHistoryIpInfoDropin.php:96
788
- msgctxt "IP Info Dropin"
789
- msgid "Hostname"
790
- msgstr "Värdnamn"
791
-
792
- #: dropins/SimpleHistoryIpInfoDropin.php:107
793
- #: dropins/SimpleHistoryIpInfoDropin.php:118
794
- msgctxt "IP Info Dropin"
795
- msgid "Network"
796
- msgstr "Nätverk"
797
-
798
- #: dropins/SimpleHistoryIpInfoDropin.php:129
799
- msgctxt "IP Info Dropin"
800
- msgid "City"
801
- msgstr "Stad"
802
-
803
- #: dropins/SimpleHistoryIpInfoDropin.php:140
804
- msgctxt "IP Info Dropin"
805
- msgid "Region"
806
- msgstr "Region"
807
-
808
- #: dropins/SimpleHistoryIpInfoDropin.php:151
809
- msgctxt "IP Info Dropin"
810
- msgid "Country"
811
- msgstr "Land"
812
-
813
- #: dropins/SimpleHistoryIpInfoDropin.php:162
814
- msgctxt "IP Info Dropin"
815
- msgid "IP info provided by %1$s ipinfo.io %2$s"
816
- msgstr "IP-informationen kommer från %1$s ipinfo.io %2$s"
817
-
818
  #: dropins/SimpleHistoryNewRowsNotifier.php:38
819
  msgctxt "New rows notifier: error while checking for new rows"
820
  msgid "An error occured while checking for new log rows"
@@ -825,70 +661,19 @@ msgctxt "rss settings headline"
825
  msgid "RSS feed"
826
  msgstr "RSS-flöde"
827
 
828
- #: dropins/SimpleHistorySidebarDropin.php:31
829
- msgctxt "Sidebar box"
830
- msgid "Simple History is on GitHub"
831
- msgstr "Simple History finns på GitHub"
832
-
833
- #: dropins/SimpleHistorySidebarDropin.php:34
834
- msgctxt "Sidebar box"
835
- msgid ""
836
- "You can star, fork, or report issues with this plugin over at the <a href="
837
- "\"%1$s\">GitHub page</a>."
838
- msgstr ""
839
- "Du kan stjärnmärka, forka, eller rapportera problem med tillägget på dess "
840
- "sida på <a href=\"%1$s\">GitHub</a>."
841
-
842
- #: dropins/SimpleHistorySidebarDropin.php:48
843
- msgctxt "Sidebar box"
844
- msgid "Donate to support development"
845
- msgstr "Donera för att stödja utvecklingen"
846
-
847
- #: dropins/SimpleHistorySidebarDropin.php:51
848
- msgctxt "Sidebar box"
849
- msgid ""
850
- "If you like and use Simple History you should <a href=\"%1$s\">donate to keep "
851
- "this plugin free</a>."
852
- msgstr ""
853
- "Om du gillar och använder Simple History så <a href=\"%1$s\">donera så att "
854
- "tillägget kan fortsätta vara gratis</a>."
855
-
856
- #: dropins/SimpleHistorySidebarDropin.php:65
857
- msgctxt "Sidebar box"
858
- msgid "Review this plugin if you like it"
859
- msgstr "Recensera tillägget om du gillar det"
860
-
861
- #: dropins/SimpleHistorySidebarDropin.php:68
862
- msgctxt "Sidebar box"
863
- msgid ""
864
- "If you like Simple History then please <a href=\"%1$s\">give it a nice review "
865
- "over at wordpress.org</a>."
866
- msgstr ""
867
- "Om du gillar Simple History så <a href=\"%1$s\">ge gärna en positiv recension "
868
- "på wordpress.org</a>."
869
-
870
- #: dropins/SimpleHistorySidebarDropin.php:72
871
- msgctxt "Sidebar box"
872
- msgid ""
873
- "A good review will help new users find this plugin. And it will make the "
874
- "plugin author very happy :)"
875
- msgstr ""
876
- "En bra recension hjälper nya användare att hitta tillägget. Och det kommer "
877
- "göra utvecklaren väldigt glad!"
878
-
879
- #: loggers/SimpleCommentsLogger.php:95
880
  msgctxt "A comment was added to the database by a non-logged in internet user"
881
  msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
882
  msgstr ""
883
  "Lade till en kommentar till {comment_post_type} \"{comment_post_title}\""
884
 
885
- #: loggers/SimpleCommentsLogger.php:101
886
  msgctxt "A comment was added to the database by a logged in user"
887
  msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
888
  msgstr ""
889
  "Lade till en kommentar till {comment_post_type} \"{comment_post_title}\""
890
 
891
- #: loggers/SimpleCommentsLogger.php:107
892
  msgctxt "A comment was approved"
893
  msgid ""
894
  "Approved a comment to \"{comment_post_title}\" by {comment_author} "
@@ -897,7 +682,7 @@ msgstr ""
897
  "Godkände en kommentar till \"{comment_post_title}\" av {comment_author} "
898
  "({comment_author_email})"
899
 
900
- #: loggers/SimpleCommentsLogger.php:113
901
  msgctxt "A comment was was unapproved"
902
  msgid ""
903
  "Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
@@ -906,12 +691,12 @@ msgstr ""
906
  "Godkände inte en kommentar till \"{comment_post_title}\" av {comment_author} "
907
  "({comment_author_email})"
908
 
909
- #: loggers/SimpleCommentsLogger.php:119
910
  msgctxt "A comment was marked as spam"
911
  msgid "Marked a comment to post \"{comment_post_title}\" as spam"
912
  msgstr "Markerade en kommentar till \"{comment_post_title}\" som spam"
913
 
914
- #: loggers/SimpleCommentsLogger.php:125
915
  msgctxt "A comment was marked moved to the trash"
916
  msgid ""
917
  "Trashed a comment to \"{comment_post_title}\" by {comment_author} "
@@ -920,7 +705,7 @@ msgstr ""
920
  "Kastade en kommentar till \"{comment_post_title}\" av {comment_author} "
921
  "({comment_author_email}) i papperskorgen"
922
 
923
- #: loggers/SimpleCommentsLogger.php:131
924
  msgctxt "A comment was restored from the trash"
925
  msgid ""
926
  "Restored a comment to \"{comment_post_title}\" by {comment_author} "
@@ -929,7 +714,7 @@ msgstr ""
929
  "Återställde en kommentar till \"{comment_post_title}\" av {comment_author} "
930
  "({comment_author_email}) från papperskorgen"
931
 
932
- #: loggers/SimpleCommentsLogger.php:137
933
  msgctxt "A comment was deleted"
934
  msgid ""
935
  "Deleted a comment to \"{comment_post_title}\" by {comment_author} "
@@ -938,7 +723,7 @@ msgstr ""
938
  "Raderade en kommentar kommentar till \"{comment_post_title}\" av "
939
  "{comment_author} ({comment_author_email})"
940
 
941
- #: loggers/SimpleCommentsLogger.php:143
942
  msgctxt "A comment was edited"
943
  msgid ""
944
  "Edited a comment to \"{comment_post_title}\" by {comment_author} "
@@ -947,24 +732,24 @@ msgstr ""
947
  "Redigerade en kommentar till \"{comment_post_title}\" av {comment_author} "
948
  "({comment_author_email})"
949
 
950
- #: loggers/SimpleCommentsLogger.php:150
951
  msgctxt "A trackback was added to the database by a non-logged in internet user"
952
  msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
953
  msgstr ""
954
  "Lade till en trackback till {comment_post_type} \"{comment_post_title}\""
955
 
956
- #: loggers/SimpleCommentsLogger.php:205
957
  msgctxt "A trackback was added to the database by a non-logged in internet user"
958
  msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
959
  msgstr "Lade till en pingback till {comment_post_type} \"{comment_post_title}\""
960
 
961
- #: loggers/SimpleCommentsLogger.php:156
962
  msgctxt "A trackback was added to the database by a logged in user"
963
  msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
964
  msgstr ""
965
  "Lade till en trackback till {comment_post_type} \"{comment_post_title}\""
966
 
967
- #: loggers/SimpleCommentsLogger.php:162
968
  msgctxt "A trackback was approved"
969
  msgid ""
970
  "Approved a trackback to \"{comment_post_title}\" by {comment_author} "
@@ -973,7 +758,7 @@ msgstr ""
973
  "Godkände en trackback till \"{comment_post_title}\" av {comment_author} "
974
  "({comment_author_email})"
975
 
976
- #: loggers/SimpleCommentsLogger.php:168
977
  msgctxt "A trackback was was unapproved"
978
  msgid ""
979
  "Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
@@ -982,12 +767,12 @@ msgstr ""
982
  "Godkände inte en trackback till \"{comment_post_title}\" av {comment_author} "
983
  "({comment_author_email})"
984
 
985
- #: loggers/SimpleCommentsLogger.php:174
986
  msgctxt "A trackback was marked as spam"
987
  msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
988
  msgstr "Markerade en trackback till \"{comment_post_title}\" som spam"
989
 
990
- #: loggers/SimpleCommentsLogger.php:180
991
  msgctxt "A trackback was marked moved to the trash"
992
  msgid ""
993
  "Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
@@ -996,7 +781,7 @@ msgstr ""
996
  "Kastade en trackback till \"{comment_post_title}\" av {comment_author} "
997
  "({comment_author_email}) i papperskorgen"
998
 
999
- #: loggers/SimpleCommentsLogger.php:186
1000
  msgctxt "A trackback was restored from the trash"
1001
  msgid ""
1002
  "Restored a trackback to \"{comment_post_title}\" by {comment_author} "
@@ -1005,7 +790,7 @@ msgstr ""
1005
  "Återställde en trackback till \"{comment_post_title}\" av {comment_author} "
1006
  "({comment_author_email}) från papperskorgen"
1007
 
1008
- #: loggers/SimpleCommentsLogger.php:192
1009
  msgctxt "A trackback was deleted"
1010
  msgid ""
1011
  "Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
@@ -1014,7 +799,7 @@ msgstr ""
1014
  "Raderade en trackback till \"{comment_post_title}\" av {comment_author} "
1015
  "({comment_author_email})"
1016
 
1017
- #: loggers/SimpleCommentsLogger.php:198
1018
  msgctxt "A trackback was edited"
1019
  msgid ""
1020
  "Edited a trackback to \"{comment_post_title}\" by {comment_author} "
@@ -1023,12 +808,12 @@ msgstr ""
1023
  "Redigerade en trackback till \"{comment_post_title}\" av {comment_author} "
1024
  "({comment_author_email})"
1025
 
1026
- #: loggers/SimpleCommentsLogger.php:211
1027
  msgctxt "A pingback was added to the database by a logged in user"
1028
  msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
1029
  msgstr "Lade till en pingback till {comment_post_type} \"{comment_post_title}\""
1030
 
1031
- #: loggers/SimpleCommentsLogger.php:217
1032
  msgctxt "A pingback was approved"
1033
  msgid ""
1034
  "Approved a pingback to \"{comment_post_title}\" by "
@@ -1037,7 +822,7 @@ msgstr ""
1037
  "Godkände en pingback till \"{comment_post_title}\" av {comment_author} "
1038
  "({comment_author_email}) från papperskorgen"
1039
 
1040
- #: loggers/SimpleCommentsLogger.php:223
1041
  msgctxt "A pingback was was unapproved"
1042
  msgid ""
1043
  "Unapproved a pingback to \"{comment_post_title}\" by "
@@ -1046,12 +831,12 @@ msgstr ""
1046
  "Ångrade godkännande av en pingack till \"{comment_post_title}\" av "
1047
  "{comment_author} ({comment_author_email})"
1048
 
1049
- #: loggers/SimpleCommentsLogger.php:229
1050
  msgctxt "A pingback was marked as spam"
1051
  msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
1052
  msgstr "Markerade en pingback till \"{comment_post_title}\" som spam"
1053
 
1054
- #: loggers/SimpleCommentsLogger.php:235
1055
  msgctxt "A pingback was marked moved to the trash"
1056
  msgid ""
1057
  "Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
@@ -1060,7 +845,7 @@ msgstr ""
1060
  "Kastade en pingback till \"{comment_post_title}\" av {comment_author} "
1061
  "({comment_author_email}) i papperskorgen"
1062
 
1063
- #: loggers/SimpleCommentsLogger.php:241
1064
  msgctxt "A pingback was restored from the trash"
1065
  msgid ""
1066
  "Restored a pingback to \"{comment_post_title}\" by {comment_author} "
@@ -1069,7 +854,7 @@ msgstr ""
1069
  "Ångrade godkännandet av en kommentar till \"{comment_post_title}\" av "
1070
  "{comment_author} ({comment_author_email})"
1071
 
1072
- #: loggers/SimpleCommentsLogger.php:247
1073
  msgctxt "A pingback was deleted"
1074
  msgid ""
1075
  "Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
@@ -1078,7 +863,7 @@ msgstr ""
1078
  "Raderade en pingback till \"{comment_post_title}\" av {comment_author} "
1079
  "({comment_author_email})"
1080
 
1081
- #: loggers/SimpleCommentsLogger.php:253
1082
  msgctxt "A pingback was edited"
1083
  msgid ""
1084
  "Edited a pingback to \"{comment_post_title}\" by {comment_author} "
@@ -1087,85 +872,85 @@ msgstr ""
1087
  "Redigerade en pingback till \"{comment_post_title}\" av {comment_author} "
1088
  "({comment_author_email})"
1089
 
1090
- #: loggers/SimpleCommentsLogger.php:264
1091
  msgctxt "Comments logger: search"
1092
  msgid "Comments"
1093
  msgstr "Kommentarer"
1094
 
1095
- #: loggers/SimpleCommentsLogger.php:265
1096
  msgctxt "Comments logger: search"
1097
  msgid "All comments activity"
1098
  msgstr "Alla kommentarshändelser"
1099
 
1100
- #: loggers/SimpleCommentsLogger.php:267
1101
  msgctxt "Comments logger: search"
1102
  msgid "Added comments"
1103
  msgstr "Tillagda kommentarer"
1104
 
1105
- #: loggers/SimpleCommentsLogger.php:275
1106
  msgctxt "Comments logger: search"
1107
  msgid "Edited comments"
1108
  msgstr "Redigerade kommentarer"
1109
 
1110
- #: loggers/SimpleCommentsLogger.php:280
1111
  msgctxt "Comments logger: search"
1112
  msgid "Approved comments"
1113
  msgstr "Godkända kommentarer"
1114
 
1115
- #: loggers/SimpleCommentsLogger.php:285
1116
  msgctxt "Comments logger: search"
1117
  msgid "Held comments"
1118
  msgstr "Tillbakahållna kommentar"
1119
 
1120
- #: loggers/SimpleCommentsLogger.php:290
1121
  msgctxt "Comments logger: search"
1122
  msgid "Comments status changed to spam"
1123
  msgstr "Status på kommentar ändrad till spam"
1124
 
1125
- #: loggers/SimpleCommentsLogger.php:295
1126
  msgctxt "Comments logger: search"
1127
  msgid "Trashed comments"
1128
  msgstr "Kastade kommentarer"
1129
 
1130
- #: loggers/SimpleCommentsLogger.php:300
1131
  msgctxt "Comments logger: search"
1132
  msgid "Untrashed comments"
1133
  msgstr "Kommentarer tillbakatagna från papperskorgen"
1134
 
1135
- #: loggers/SimpleCommentsLogger.php:305
1136
  msgctxt "Comments logger: search"
1137
  msgid "Deleted comments"
1138
  msgstr "Borttagna kommentarer"
1139
 
1140
- #: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
1141
- #: loggers/SimpleCommentsLogger.php:629
1142
  msgctxt "comments logger - detailed output comment status"
1143
  msgid "Status"
1144
  msgstr "Status"
1145
 
1146
- #: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
1147
- #: loggers/SimpleCommentsLogger.php:631
1148
  msgctxt "comments logger - detailed output author"
1149
  msgid "Name"
1150
  msgstr "Namn"
1151
 
1152
- #: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
1153
- #: loggers/SimpleCommentsLogger.php:632
1154
  msgctxt "comments logger - detailed output email"
1155
  msgid "Email"
1156
  msgstr "E-post"
1157
 
1158
- #: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
1159
  msgctxt "comments logger - detailed output content"
1160
  msgid "Content"
1161
  msgstr "Innehåll"
1162
 
1163
- #: loggers/SimpleCommentsLogger.php:633
1164
  msgctxt "comments logger - detailed output content"
1165
  msgid "Comment"
1166
  msgstr "Kommentar"
1167
 
1168
- #: loggers/SimpleCommentsLogger.php:759
1169
  msgctxt "comments logger - edit comment"
1170
  msgid "View/Edit"
1171
  msgstr "Visa/Redigera"
@@ -1180,42 +965,42 @@ msgctxt "User logger: search"
1180
  msgid "WordPress core updates"
1181
  msgstr "WordPress core uppdateringar"
1182
 
1183
- #: loggers/SimpleUserLogger.php:54
1184
  msgctxt "User logger: search"
1185
  msgid "Users"
1186
  msgstr "Användare"
1187
 
1188
- #: loggers/SimpleUserLogger.php:55
1189
  msgctxt "User logger: search"
1190
  msgid "All user activity"
1191
  msgstr "All användaraktivitet"
1192
 
1193
- #: loggers/SimpleUserLogger.php:57
1194
  msgctxt "User logger: search"
1195
  msgid "Successful user logins"
1196
  msgstr "Lyckade inloggningar av användare"
1197
 
1198
- #: loggers/SimpleUserLogger.php:61
1199
  msgctxt "User logger: search"
1200
  msgid "Failed user logins"
1201
  msgstr "Misslyckade inloggningar av användare"
1202
 
1203
- #: loggers/SimpleUserLogger.php:65
1204
  msgctxt "User logger: search"
1205
  msgid "User logouts"
1206
  msgstr "Utloggning av användare"
1207
 
1208
- #: loggers/SimpleUserLogger.php:68
1209
  msgctxt "User logger: search"
1210
  msgid "Created users"
1211
  msgstr "Skapade användare"
1212
 
1213
- #: loggers/SimpleUserLogger.php:71
1214
  msgctxt "User logger: search"
1215
  msgid "User profile updates"
1216
  msgstr "Uppdateringar av användarprofiler"
1217
 
1218
- #: loggers/SimpleUserLogger.php:74
1219
  msgctxt "User logger: search"
1220
  msgid "User deletions"
1221
  msgstr "Radering av användare"
@@ -1230,7 +1015,7 @@ msgctxt "Export logger: search"
1230
  msgid "Created exports"
1231
  msgstr "Skapade exporter"
1232
 
1233
- #: loggers/SimpleLogger.php:190
1234
  msgctxt "header output when initiator is the currently logged in user"
1235
  msgid "You"
1236
  msgstr "Du"
@@ -1331,7 +1116,7 @@ msgstr ""
1331
  #: loggers/SimplePluginLogger.php:81
1332
  msgctxt "Plugin update failed"
1333
  msgid "Updated plugin \"{plugin_name}\""
1334
- msgstr "Uppdaterade tillägget \"{plugin_name}\""
1335
 
1336
  #: loggers/SimplePluginLogger.php:87
1337
  msgctxt "Plugin file edited"
@@ -1349,7 +1134,7 @@ msgid ""
1349
  "Updated plugin \"{plugin_name}\" to {plugin_version} from "
1350
  "{plugin_prev_version}"
1351
  msgstr ""
1352
- "Uppdaterade tillägget \"{plugin_name}\" till {plugin_version} från "
1353
  "{plugin_prev_version}"
1354
 
1355
  #: loggers/SimplePluginLogger.php:108
@@ -1397,47 +1182,47 @@ msgctxt "Plugin logger: search"
1397
  msgid "Deleted plugins"
1398
  msgstr "Raderade plugins"
1399
 
1400
- #: loggers/SimplePluginLogger.php:887
1401
  msgctxt "plugin logger - detailed output version"
1402
  msgid "Version"
1403
  msgstr "Version"
1404
 
1405
- #: loggers/SimplePluginLogger.php:889
1406
  msgctxt "plugin logger - detailed output author"
1407
  msgid "Author"
1408
  msgstr "Författare"
1409
 
1410
- #: loggers/SimplePluginLogger.php:891
1411
  msgctxt "plugin logger - detailed output author"
1412
  msgid "Requires"
1413
  msgstr "Kräver"
1414
 
1415
- #: loggers/SimplePluginLogger.php:890
1416
  msgctxt "plugin logger - detailed output url"
1417
  msgid "URL"
1418
  msgstr "URL"
1419
 
1420
- #: loggers/SimplePluginLogger.php:892
1421
  msgctxt "plugin logger - detailed output compatible"
1422
  msgid "Compatible up to"
1423
  msgstr "Kompatibel upp till"
1424
 
1425
- #: loggers/SimplePluginLogger.php:893
1426
  msgctxt "plugin logger - detailed output downloaded"
1427
  msgid "Downloads"
1428
  msgstr "Nedladdningar"
1429
 
1430
- #: loggers/SimplePluginLogger.php:953
1431
  msgctxt "plugin logger: plugin info thickbox title view all info"
1432
  msgid "View plugin info"
1433
  msgstr "Visa information om plugin"
1434
 
1435
- #: loggers/SimplePluginLogger.php:968
1436
  msgctxt "plugin logger: plugin info thickbox title"
1437
  msgid "View plugin info"
1438
  msgstr "Visa information om plugin"
1439
 
1440
- #: loggers/SimplePluginLogger.php:972
1441
  msgctxt "plugin logger: plugin info thickbox title"
1442
  msgid "View changelog"
1443
  msgstr "Visa ändringslogg"
@@ -1512,30 +1297,11 @@ msgctxt "Theme logger: search"
1512
  msgid "Background of themes changed"
1513
  msgstr "Ändrade bakgrunder för teman"
1514
 
1515
- #: loggers/SimpleUserLogger.php:36
1516
- msgctxt "User destroys other login sessions for themself"
1517
- msgid "Logged out from all other sessions"
1518
- msgstr "Loggade ut från alla andra sessioner"
1519
-
1520
- #: loggers/SimpleUserLogger.php:45
1521
- msgctxt "User destroys all login sessions for a user"
1522
- msgid "Logged out \"{user_display_name}\" from all sessions"
1523
- msgstr "Loggade ut \"{user_display_name}\" från alla sessioner"
1524
-
1525
  #: templates/settings-statsRowsPerDay.php:36
1526
  msgctxt "stats: date in rows per day chart"
1527
  msgid "M j"
1528
  msgstr "M j"
1529
 
1530
- #~ msgid "Filter"
1531
- #~ msgstr "Filtrera"
1532
-
1533
- #~ msgid "%1$d events today from one user and %3$d other source."
1534
- #~ msgstr "%1$d händelser idag från en användare och från en annan källa."
1535
-
1536
- #~ msgid "History"
1537
- #~ msgstr "Historik"
1538
-
1539
  #~ msgctxt "dashboard menu name"
1540
  #~ msgid "History"
1541
  #~ msgstr "Historik"
4
  msgstr ""
5
  "Project-Id-Version: Simple History 2\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
7
+ "POT-Creation-Date: 2014-12-17 06:57:05+00:00\n"
8
+ "PO-Revision-Date: 2014-12-17 07:59+0100\n"
9
  "Last-Translator: Pär Thernström <par.thernstrom@gmail.com>\n"
10
  "Language-Team: \n"
11
  "Language: sv\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 1.7.1\n"
16
  "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
  "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
  "esc_html_x:1,2c\n"
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
25
+ #: SimpleHistory.php:423 SimpleHistory.php:667
26
  msgid "Settings"
27
  msgstr "Inställningar"
28
 
29
+ #: SimpleHistory.php:434
30
  msgid "Log (debug)"
31
  msgstr "Logg (debug)"
32
 
33
+ #: SimpleHistory.php:439
34
  msgid "Styles example (debug)"
35
  msgstr "Stilexempel (debug)"
36
 
37
+ #: SimpleHistory.php:682
38
+ msgid "History"
39
+ msgstr "Historik"
 
40
 
41
+ #: SimpleHistory.php:758
42
  msgid "Remove all log items?"
43
  msgstr "Ta bort alla händelser?"
44
 
45
+ #: SimpleHistory.php:760
46
  msgid "Go to the first page"
47
  msgstr "Gå till första sidan"
48
 
49
+ #: SimpleHistory.php:761
50
  msgid "Go to the previous page"
51
  msgstr "Gå till föregående sida"
52
 
53
+ #: SimpleHistory.php:762
54
  msgid "Go to the next page"
55
  msgstr "Gå till nästa sida"
56
 
57
+ #: SimpleHistory.php:763
58
  msgid "Go to the last page"
59
  msgstr "Gå till sista sidan"
60
 
61
+ #: SimpleHistory.php:764
62
  msgid "Current page"
63
  msgstr "Aktuell sida"
64
 
65
+ #: SimpleHistory.php:766
66
  msgid "Oups, the log could not be loaded right now."
67
  msgstr "Hoppsan, historiken kunde inte laddas just nu."
68
 
69
+ #: SimpleHistory.php:767
70
  msgid "Your search did not match any history events."
71
  msgstr "Din sökning matchade inte några händelser i historiken."
72
 
73
+ #: SimpleHistory.php:1061 SimpleHistory.php:1164
74
  msgid "Simple History Settings"
75
  msgstr "Inställningar för Simple History"
76
 
77
+ #: SimpleHistory.php:1095
78
  msgid "No valid callback found"
79
  msgstr "Inget giltigt callback hittades."
80
 
81
+ #: SimpleHistory.php:1185
82
  msgid "Cleared database"
83
  msgstr "Databasen rensades"
84
 
85
+ #: SimpleHistory.php:1212
86
  msgid "Show history"
87
  msgstr "Visa historik"
88
 
89
+ #: SimpleHistory.php:1225
90
  msgid "Number of items per page"
91
  msgstr "Antal händelser per sida"
92
 
93
+ #: SimpleHistory.php:1237
94
  msgid "Clear log"
95
  msgstr "Rensa logg"
96
 
97
+ #: SimpleHistory.php:1457
98
  msgid "on the dashboard"
99
  msgstr "i panelen"
100
 
101
+ #: SimpleHistory.php:1462
102
  msgid "as a page under the dashboard menu"
103
  msgstr "som en sida under panel-menyn"
104
 
105
+ #: SimpleHistory.php:1478
106
  msgid "Items in the database are automatically removed after %1$s days."
107
  msgstr "Händelser i databasen tas automatiskt bort efter %1$s dagar."
108
 
109
+ #: SimpleHistory.php:1480
110
  msgid "Items in the database are kept forever."
111
  msgstr "Händelser i databasen lagras för evigt."
112
 
113
+ #: SimpleHistory.php:1484
114
  msgid "Clear log now"
115
  msgstr "Rensa loggen nu"
116
 
117
+ #: SimpleHistory.php:1709
118
+ msgid "+%1$s more"
119
+ msgstr "+%1$s fler"
 
 
 
 
 
 
120
 
121
+ #: SimpleHistory.php:1716
122
  msgid "Loading…"
123
  msgstr "Laddar historik..."
124
 
125
+ #: SimpleHistory.php:1723
126
  msgid "Showing %1$s more"
127
  msgstr "+%1$s fler"
128
 
129
+ #: SimpleHistory.php:1742
130
  msgid "Context data"
131
  msgstr "Kontextuell data"
132
 
133
+ #: SimpleHistory.php:1743
134
+ msgid "This is potentially useful meta data that a logger have saved."
135
  msgstr "Detta eventuellt användbar metadata som en logger har sparat."
136
 
137
+ #: SimpleHistory.php:2065
138
  msgid "No events today so far."
139
  msgstr "Inga händelser idag ännu."
140
 
141
+ #: SimpleHistory.php:2069
142
+ msgid "%1$d event today from one user."
143
+ msgstr "%1$d händelse idag från en användare."
 
 
 
 
 
 
 
 
144
 
145
+ #: SimpleHistory.php:2073
146
  msgid "%1$d events today from %2$d users."
147
  msgstr "%1$d händelser idag från %2$d användare."
148
 
149
+ #: SimpleHistory.php:2077
150
+ msgid "%1$d events today from one user."
151
+ msgstr "%1$d händelser idag från en användare."
 
 
 
 
 
 
 
 
152
 
153
  #: dropins/SimpleHistoryDonateDropin.php:36
154
  msgid "Donate"
162
  "Om Simple History är användbar för dig så <a href=\"%1$s\">donera</a> eller "
163
  "<a href=\"%2$s\">köp mig något från min Amazon wish list</a>."
164
 
165
+ #: dropins/SimpleHistoryFilterDropin.php:43
166
  msgid "Filter history"
167
  msgstr "Filtrera historik"
168
 
169
+ #: dropins/SimpleHistoryFilterDropin.php:50
 
 
 
 
 
170
  msgid "All log levels"
171
  msgstr "Alla loggnivåer"
172
 
173
+ #: dropins/SimpleHistoryFilterDropin.php:64
174
  msgid "All messages"
175
  msgstr "Alla meddelanden"
176
 
177
+ #: dropins/SimpleHistoryFilterDropin.php:118
178
  msgid "All users"
179
  msgstr "Alla användare"
180
 
181
+ #: dropins/SimpleHistoryFilterDropin.php:139
182
  msgid "All dates"
183
  msgstr "Alla datum"
184
 
185
+ #: dropins/SimpleHistoryFilterDropin.php:153
186
+ msgid "Filter"
187
+ msgstr "Filtrera"
188
 
189
  #: dropins/SimpleHistoryNewRowsNotifier.php:80
190
  msgid "1 new row"
205
  msgstr "Skapade en ny hemlig RSS-adress"
206
 
207
  #: dropins/SimpleHistoryRSSDropin.php:148
208
+ #: dropins/SimpleHistoryRSSDropin.php:256
209
  msgid "History for %s"
210
  msgstr "Historik för %s"
211
 
212
  #: dropins/SimpleHistoryRSSDropin.php:149
213
+ #: dropins/SimpleHistoryRSSDropin.php:257
214
  msgid "WordPress History for %s"
215
  msgstr "WordPress-historik för %s"
216
 
220
  msgstr[0] "+%1$s tillfälle"
221
  msgstr[1] "+%1$s tillfällen"
222
 
223
+ #: dropins/SimpleHistoryRSSDropin.php:260
224
  msgid "Wrong RSS secret"
225
  msgstr "Fel RSS-lösenord"
226
 
227
+ #: dropins/SimpleHistoryRSSDropin.php:261
228
  msgid ""
229
  "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
230
  "settings for current link to the RSS feed."
232
  "Ditt RSS-lösenord för RSS-flödet för Simple History är felaktigt. Gå till "
233
  "WordPress-inställningarna för att få en aktuell länk till RSS-flöded."
234
 
235
+ #: dropins/SimpleHistoryRSSDropin.php:312
236
  msgid ""
237
  "You can generate a new address for the RSS feed. This is useful if you think "
238
  "that the address has fallen into the wrong hands."
240
  "Du kan skapa en ny adress för RSS-flödet. Detta är användbart om du "
241
  "misstänker att adressen kommit i orätta händer."
242
 
243
+ #: dropins/SimpleHistoryRSSDropin.php:315
244
  msgid "Generate new address"
245
  msgstr "Skapa ny adress"
246
 
247
+ #: dropins/SimpleHistoryRSSDropin.php:343
248
  msgid ""
249
  "Simple History has a RSS feed which you can subscribe to and receive log "
250
  "updates. Make sure you only share the feed with people you trust, since it "
262
  msgid "Stats"
263
  msgstr "Statistik"
264
 
265
+ #: index.php:56
 
 
 
 
266
  msgid ""
267
  "Simple History is a great plugin, but to use it your server must have at "
268
  "least PHP 5.3 installed (you have version %s)."
270
  "Simple History är en rackarns bra plugin, men för att använda den måste din "
271
  "server ha minst PHP 5.3 installerat (du har version %s)."
272
 
273
+ #: loggers/SimpleCommentsLogger.php:682
274
  msgid "Spam"
275
  msgstr "Skräp"
276
 
277
+ #: loggers/SimpleCommentsLogger.php:684
278
  msgid "Approved"
279
  msgstr "Godkänd"
280
 
281
+ #: loggers/SimpleCommentsLogger.php:686
282
  msgid "Pending"
283
  msgstr "Väntande"
284
 
285
+ #: loggers/SimpleCommentsLogger.php:700
286
  msgid "Trackback"
287
  msgstr "Trackback"
288
 
289
+ #: loggers/SimpleCommentsLogger.php:702
290
  msgid "Pingback"
291
  msgstr "Pingback"
292
 
293
+ #: loggers/SimpleCommentsLogger.php:704
294
  msgid "Comment"
295
  msgstr "Kommentar"
296
 
315
  msgid "%d occasions"
316
  msgstr "%d tillfällen"
317
 
318
+ #: loggers/SimpleLogger.php:205
319
  msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
320
  msgstr "Raderad användare (hade id %1$s, epost %2$s, login %3$s)"
321
 
322
+ #: loggers/SimpleLogger.php:220
323
  msgid "Anonymous web user"
324
  msgstr "Anonym webbanvändare"
325
 
326
+ #: loggers/SimpleLogger.php:228
327
  msgid "Anonymous user from %1$s"
328
  msgstr "Anonym användare från %1$s"
329
 
330
+ #: loggers/SimpleLogger.php:299
331
+ msgid "Just now"
332
+ msgstr "Just nu"
333
+
334
  #. translators: Date format for log row header, see http:php.net/date
335
+ #: loggers/SimpleLogger.php:304
336
  msgid "M j, Y \\a\\t G:i"
337
  msgstr "M j, Y \\a\\t G:i"
338
 
339
  #. translators: 1: last modified date and time in human time diff-format
340
+ #: loggers/SimpleLogger.php:312
341
  msgid "%1$s ago"
342
  msgstr "%1$s sedan"
343
 
363
  msgstr ""
364
  "Laddade upp {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
365
 
366
+ #: loggers/SimpleMediaLogger.php:180
367
  msgid "{attachment_thumb}"
368
  msgstr "{attachment_thumb}"
369
 
370
+ #: loggers/SimpleMediaLogger.php:189
371
  msgid "{attachment_size_format}"
372
  msgstr "{attachment_size_format}"
373
 
374
+ #: loggers/SimpleMediaLogger.php:190
375
  msgid "{attachment_filetype_extension}"
376
  msgstr "{attachment_filetype_extension}"
377
 
378
+ #: loggers/SimpleMediaLogger.php:192
379
  msgid "{full_image_width} × {full_image_height}"
380
  msgstr "{full_image_width} × {full_image_height}"
381
 
483
  msgid "Section"
484
  msgstr "Sektion"
485
 
486
+ #: loggers/SimpleUserLogger.php:23
487
  msgid ""
488
  "Failed to login to account with username \"{login_user_login}\" because an "
489
  "incorrect password was entered"
491
  "Misslyckades att logga in på kontot med användarnamnet \"{login_user_login}\" "
492
  "eftersom ett felaktigt lösenord angavs"
493
 
494
+ #: loggers/SimpleUserLogger.php:24
495
  msgid ""
496
  "Failed to login with username \"{failed_login_username}\" because no user "
497
+ "with that username exist"
498
  msgstr ""
499
+ "Misslyckades att logga in med användarnamn \"{failed_login_username}\" "
500
+ "eftersom ingen användare med det användarnamnet finns"
501
 
502
+ #: loggers/SimpleUserLogger.php:25
503
  msgid "Logged in"
504
  msgstr "Loggade in"
505
 
506
+ #: loggers/SimpleUserLogger.php:26
507
  msgid "Unknown user logged in"
508
  msgstr "Okänd användare loggade in"
509
 
510
+ #: loggers/SimpleUserLogger.php:27
511
  msgid "Logged out"
512
  msgstr "Loggade ut"
513
 
514
+ #: loggers/SimpleUserLogger.php:28
515
  msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
516
  msgstr ""
517
  "Redigerade profilen för användaren {edited_user_login} ({edited_user_email})"
518
 
519
+ #: loggers/SimpleUserLogger.php:29
520
  msgid ""
521
  "Created user {created_user_login} ({created_user_email}) with role "
522
  "{created_user_role}"
524
  "Skapade användare {created_user_login} ({created_user_email}) med rollen "
525
  "{created_user_role}"
526
 
527
+ #: loggers/SimpleUserLogger.php:30
528
  msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
529
  msgstr "Raderade användaren {deleted_user_login} ({deleted_user_email})"
530
 
531
+ #: loggers/SimpleUserLogger.php:153
532
  msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
533
  msgstr "Redigerade <a href=\"{edit_profile_link}\">din profl</a>"
534
 
535
+ #: loggers/SimpleUserLogger.php:157
536
  msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
537
  msgstr "Redigerade <a href=\"{edit_profile_link}\">sin profil</a>"
538
 
539
+ #: loggers/SimpleUserLogger.php:166
540
  msgid "Edited your profile"
541
  msgstr "Redigerade din profil"
542
 
543
+ #: loggers/SimpleUserLogger.php:177
544
  msgid ""
545
  "Edited the profile for user <a href="
546
  "\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
596
  msgid "Deleted users are also included."
597
  msgstr "Raderade användare är också inkluderade."
598
 
599
+ #. Plugin Name of the plugin/theme
600
+ msgid "Simple History"
601
+ msgstr "Simple History"
602
+
603
  #. Plugin URI of the plugin/theme
604
  msgid "http://simple-history.com"
605
  msgstr "http://simple-history.com"
620
  msgid "http://simple-history.com/"
621
  msgstr "http://simple-history.com"
622
 
623
+ #: SimpleHistory.php:166
624
  msgctxt ""
625
  "Message visible while waiting for log to load from server the first time"
626
  msgid "Loading history..."
627
  msgstr "Laddar historik..."
628
 
629
+ #: SimpleHistory.php:203
630
  msgctxt "page n of n"
631
  msgid "of"
632
  msgstr "av"
633
 
634
+ #: SimpleHistory.php:274
635
  msgctxt "API: not enought arguments passed"
636
  msgid "Not enough args specified"
637
  msgstr "Inte tillräckligt med arguments specifierade"
638
 
639
+ #: SimpleHistory.php:1149
640
  msgctxt "dashboard menu name"
641
  msgid "Simple History"
642
  msgstr "Simple History"
643
 
644
+ #: SimpleHistory.php:1274
645
  msgctxt "history page headline"
646
  msgid "Simple History"
647
  msgstr "Simple History"
648
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
649
  #: dropins/SimpleHistoryDonateDropin.php:51
650
  msgctxt "donate settings headline"
651
  msgid "Donate"
652
  msgstr "Donera"
653
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
654
  #: dropins/SimpleHistoryNewRowsNotifier.php:38
655
  msgctxt "New rows notifier: error while checking for new rows"
656
  msgid "An error occured while checking for new log rows"
661
  msgid "RSS feed"
662
  msgstr "RSS-flöde"
663
 
664
+ #: loggers/SimpleCommentsLogger.php:94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
665
  msgctxt "A comment was added to the database by a non-logged in internet user"
666
  msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
667
  msgstr ""
668
  "Lade till en kommentar till {comment_post_type} \"{comment_post_title}\""
669
 
670
+ #: loggers/SimpleCommentsLogger.php:100
671
  msgctxt "A comment was added to the database by a logged in user"
672
  msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
673
  msgstr ""
674
  "Lade till en kommentar till {comment_post_type} \"{comment_post_title}\""
675
 
676
+ #: loggers/SimpleCommentsLogger.php:106
677
  msgctxt "A comment was approved"
678
  msgid ""
679
  "Approved a comment to \"{comment_post_title}\" by {comment_author} "
682
  "Godkände en kommentar till \"{comment_post_title}\" av {comment_author} "
683
  "({comment_author_email})"
684
 
685
+ #: loggers/SimpleCommentsLogger.php:112
686
  msgctxt "A comment was was unapproved"
687
  msgid ""
688
  "Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
691
  "Godkände inte en kommentar till \"{comment_post_title}\" av {comment_author} "
692
  "({comment_author_email})"
693
 
694
+ #: loggers/SimpleCommentsLogger.php:118
695
  msgctxt "A comment was marked as spam"
696
  msgid "Marked a comment to post \"{comment_post_title}\" as spam"
697
  msgstr "Markerade en kommentar till \"{comment_post_title}\" som spam"
698
 
699
+ #: loggers/SimpleCommentsLogger.php:124
700
  msgctxt "A comment was marked moved to the trash"
701
  msgid ""
702
  "Trashed a comment to \"{comment_post_title}\" by {comment_author} "
705
  "Kastade en kommentar till \"{comment_post_title}\" av {comment_author} "
706
  "({comment_author_email}) i papperskorgen"
707
 
708
+ #: loggers/SimpleCommentsLogger.php:130
709
  msgctxt "A comment was restored from the trash"
710
  msgid ""
711
  "Restored a comment to \"{comment_post_title}\" by {comment_author} "
714
  "Återställde en kommentar till \"{comment_post_title}\" av {comment_author} "
715
  "({comment_author_email}) från papperskorgen"
716
 
717
+ #: loggers/SimpleCommentsLogger.php:136
718
  msgctxt "A comment was deleted"
719
  msgid ""
720
  "Deleted a comment to \"{comment_post_title}\" by {comment_author} "
723
  "Raderade en kommentar kommentar till \"{comment_post_title}\" av "
724
  "{comment_author} ({comment_author_email})"
725
 
726
+ #: loggers/SimpleCommentsLogger.php:142
727
  msgctxt "A comment was edited"
728
  msgid ""
729
  "Edited a comment to \"{comment_post_title}\" by {comment_author} "
732
  "Redigerade en kommentar till \"{comment_post_title}\" av {comment_author} "
733
  "({comment_author_email})"
734
 
735
+ #: loggers/SimpleCommentsLogger.php:149
736
  msgctxt "A trackback was added to the database by a non-logged in internet user"
737
  msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
738
  msgstr ""
739
  "Lade till en trackback till {comment_post_type} \"{comment_post_title}\""
740
 
741
+ #: loggers/SimpleCommentsLogger.php:204
742
  msgctxt "A trackback was added to the database by a non-logged in internet user"
743
  msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
744
  msgstr "Lade till en pingback till {comment_post_type} \"{comment_post_title}\""
745
 
746
+ #: loggers/SimpleCommentsLogger.php:155
747
  msgctxt "A trackback was added to the database by a logged in user"
748
  msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
749
  msgstr ""
750
  "Lade till en trackback till {comment_post_type} \"{comment_post_title}\""
751
 
752
+ #: loggers/SimpleCommentsLogger.php:161
753
  msgctxt "A trackback was approved"
754
  msgid ""
755
  "Approved a trackback to \"{comment_post_title}\" by {comment_author} "
758
  "Godkände en trackback till \"{comment_post_title}\" av {comment_author} "
759
  "({comment_author_email})"
760
 
761
+ #: loggers/SimpleCommentsLogger.php:167
762
  msgctxt "A trackback was was unapproved"
763
  msgid ""
764
  "Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
767
  "Godkände inte en trackback till \"{comment_post_title}\" av {comment_author} "
768
  "({comment_author_email})"
769
 
770
+ #: loggers/SimpleCommentsLogger.php:173
771
  msgctxt "A trackback was marked as spam"
772
  msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
773
  msgstr "Markerade en trackback till \"{comment_post_title}\" som spam"
774
 
775
+ #: loggers/SimpleCommentsLogger.php:179
776
  msgctxt "A trackback was marked moved to the trash"
777
  msgid ""
778
  "Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
781
  "Kastade en trackback till \"{comment_post_title}\" av {comment_author} "
782
  "({comment_author_email}) i papperskorgen"
783
 
784
+ #: loggers/SimpleCommentsLogger.php:185
785
  msgctxt "A trackback was restored from the trash"
786
  msgid ""
787
  "Restored a trackback to \"{comment_post_title}\" by {comment_author} "
790
  "Återställde en trackback till \"{comment_post_title}\" av {comment_author} "
791
  "({comment_author_email}) från papperskorgen"
792
 
793
+ #: loggers/SimpleCommentsLogger.php:191
794
  msgctxt "A trackback was deleted"
795
  msgid ""
796
  "Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
799
  "Raderade en trackback till \"{comment_post_title}\" av {comment_author} "
800
  "({comment_author_email})"
801
 
802
+ #: loggers/SimpleCommentsLogger.php:197
803
  msgctxt "A trackback was edited"
804
  msgid ""
805
  "Edited a trackback to \"{comment_post_title}\" by {comment_author} "
808
  "Redigerade en trackback till \"{comment_post_title}\" av {comment_author} "
809
  "({comment_author_email})"
810
 
811
+ #: loggers/SimpleCommentsLogger.php:210
812
  msgctxt "A pingback was added to the database by a logged in user"
813
  msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
814
  msgstr "Lade till en pingback till {comment_post_type} \"{comment_post_title}\""
815
 
816
+ #: loggers/SimpleCommentsLogger.php:216
817
  msgctxt "A pingback was approved"
818
  msgid ""
819
  "Approved a pingback to \"{comment_post_title}\" by "
822
  "Godkände en pingback till \"{comment_post_title}\" av {comment_author} "
823
  "({comment_author_email}) från papperskorgen"
824
 
825
+ #: loggers/SimpleCommentsLogger.php:222
826
  msgctxt "A pingback was was unapproved"
827
  msgid ""
828
  "Unapproved a pingback to \"{comment_post_title}\" by "
831
  "Ångrade godkännande av en pingack till \"{comment_post_title}\" av "
832
  "{comment_author} ({comment_author_email})"
833
 
834
+ #: loggers/SimpleCommentsLogger.php:228
835
  msgctxt "A pingback was marked as spam"
836
  msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
837
  msgstr "Markerade en pingback till \"{comment_post_title}\" som spam"
838
 
839
+ #: loggers/SimpleCommentsLogger.php:234
840
  msgctxt "A pingback was marked moved to the trash"
841
  msgid ""
842
  "Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
845
  "Kastade en pingback till \"{comment_post_title}\" av {comment_author} "
846
  "({comment_author_email}) i papperskorgen"
847
 
848
+ #: loggers/SimpleCommentsLogger.php:240
849
  msgctxt "A pingback was restored from the trash"
850
  msgid ""
851
  "Restored a pingback to \"{comment_post_title}\" by {comment_author} "
854
  "Ångrade godkännandet av en kommentar till \"{comment_post_title}\" av "
855
  "{comment_author} ({comment_author_email})"
856
 
857
+ #: loggers/SimpleCommentsLogger.php:246
858
  msgctxt "A pingback was deleted"
859
  msgid ""
860
  "Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
863
  "Raderade en pingback till \"{comment_post_title}\" av {comment_author} "
864
  "({comment_author_email})"
865
 
866
+ #: loggers/SimpleCommentsLogger.php:252
867
  msgctxt "A pingback was edited"
868
  msgid ""
869
  "Edited a pingback to \"{comment_post_title}\" by {comment_author} "
872
  "Redigerade en pingback till \"{comment_post_title}\" av {comment_author} "
873
  "({comment_author_email})"
874
 
875
+ #: loggers/SimpleCommentsLogger.php:263
876
  msgctxt "Comments logger: search"
877
  msgid "Comments"
878
  msgstr "Kommentarer"
879
 
880
+ #: loggers/SimpleCommentsLogger.php:264
881
  msgctxt "Comments logger: search"
882
  msgid "All comments activity"
883
  msgstr "Alla kommentarshändelser"
884
 
885
+ #: loggers/SimpleCommentsLogger.php:266
886
  msgctxt "Comments logger: search"
887
  msgid "Added comments"
888
  msgstr "Tillagda kommentarer"
889
 
890
+ #: loggers/SimpleCommentsLogger.php:274
891
  msgctxt "Comments logger: search"
892
  msgid "Edited comments"
893
  msgstr "Redigerade kommentarer"
894
 
895
+ #: loggers/SimpleCommentsLogger.php:279
896
  msgctxt "Comments logger: search"
897
  msgid "Approved comments"
898
  msgstr "Godkända kommentarer"
899
 
900
+ #: loggers/SimpleCommentsLogger.php:284
901
  msgctxt "Comments logger: search"
902
  msgid "Held comments"
903
  msgstr "Tillbakahållna kommentar"
904
 
905
+ #: loggers/SimpleCommentsLogger.php:289
906
  msgctxt "Comments logger: search"
907
  msgid "Comments status changed to spam"
908
  msgstr "Status på kommentar ändrad till spam"
909
 
910
+ #: loggers/SimpleCommentsLogger.php:294
911
  msgctxt "Comments logger: search"
912
  msgid "Trashed comments"
913
  msgstr "Kastade kommentarer"
914
 
915
+ #: loggers/SimpleCommentsLogger.php:299
916
  msgctxt "Comments logger: search"
917
  msgid "Untrashed comments"
918
  msgstr "Kommentarer tillbakatagna från papperskorgen"
919
 
920
+ #: loggers/SimpleCommentsLogger.php:304
921
  msgctxt "Comments logger: search"
922
  msgid "Deleted comments"
923
  msgstr "Borttagna kommentarer"
924
 
925
+ #: loggers/SimpleCommentsLogger.php:599 loggers/SimpleCommentsLogger.php:612
926
+ #: loggers/SimpleCommentsLogger.php:626
927
  msgctxt "comments logger - detailed output comment status"
928
  msgid "Status"
929
  msgstr "Status"
930
 
931
+ #: loggers/SimpleCommentsLogger.php:601 loggers/SimpleCommentsLogger.php:614
932
+ #: loggers/SimpleCommentsLogger.php:628
933
  msgctxt "comments logger - detailed output author"
934
  msgid "Name"
935
  msgstr "Namn"
936
 
937
+ #: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
938
+ #: loggers/SimpleCommentsLogger.php:629
939
  msgctxt "comments logger - detailed output email"
940
  msgid "Email"
941
  msgstr "E-post"
942
 
943
+ #: loggers/SimpleCommentsLogger.php:603 loggers/SimpleCommentsLogger.php:616
944
  msgctxt "comments logger - detailed output content"
945
  msgid "Content"
946
  msgstr "Innehåll"
947
 
948
+ #: loggers/SimpleCommentsLogger.php:630
949
  msgctxt "comments logger - detailed output content"
950
  msgid "Comment"
951
  msgstr "Kommentar"
952
 
953
+ #: loggers/SimpleCommentsLogger.php:756
954
  msgctxt "comments logger - edit comment"
955
  msgid "View/Edit"
956
  msgstr "Visa/Redigera"
965
  msgid "WordPress core updates"
966
  msgstr "WordPress core uppdateringar"
967
 
968
+ #: loggers/SimpleUserLogger.php:35
969
  msgctxt "User logger: search"
970
  msgid "Users"
971
  msgstr "Användare"
972
 
973
+ #: loggers/SimpleUserLogger.php:36
974
  msgctxt "User logger: search"
975
  msgid "All user activity"
976
  msgstr "All användaraktivitet"
977
 
978
+ #: loggers/SimpleUserLogger.php:38
979
  msgctxt "User logger: search"
980
  msgid "Successful user logins"
981
  msgstr "Lyckade inloggningar av användare"
982
 
983
+ #: loggers/SimpleUserLogger.php:42
984
  msgctxt "User logger: search"
985
  msgid "Failed user logins"
986
  msgstr "Misslyckade inloggningar av användare"
987
 
988
+ #: loggers/SimpleUserLogger.php:46
989
  msgctxt "User logger: search"
990
  msgid "User logouts"
991
  msgstr "Utloggning av användare"
992
 
993
+ #: loggers/SimpleUserLogger.php:49
994
  msgctxt "User logger: search"
995
  msgid "Created users"
996
  msgstr "Skapade användare"
997
 
998
+ #: loggers/SimpleUserLogger.php:52
999
  msgctxt "User logger: search"
1000
  msgid "User profile updates"
1001
  msgstr "Uppdateringar av användarprofiler"
1002
 
1003
+ #: loggers/SimpleUserLogger.php:55
1004
  msgctxt "User logger: search"
1005
  msgid "User deletions"
1006
  msgstr "Radering av användare"
1015
  msgid "Created exports"
1016
  msgstr "Skapade exporter"
1017
 
1018
+ #: loggers/SimpleLogger.php:192
1019
  msgctxt "header output when initiator is the currently logged in user"
1020
  msgid "You"
1021
  msgstr "Du"
1116
  #: loggers/SimplePluginLogger.php:81
1117
  msgctxt "Plugin update failed"
1118
  msgid "Updated plugin \"{plugin_name}\""
1119
+ msgstr "Uppdaterade plugin \"{plugin_name}\""
1120
 
1121
  #: loggers/SimplePluginLogger.php:87
1122
  msgctxt "Plugin file edited"
1134
  "Updated plugin \"{plugin_name}\" to {plugin_version} from "
1135
  "{plugin_prev_version}"
1136
  msgstr ""
1137
+ "Uppdaterade plugin \"{plugin_name}\" till {plugin_version} från "
1138
  "{plugin_prev_version}"
1139
 
1140
  #: loggers/SimplePluginLogger.php:108
1182
  msgid "Deleted plugins"
1183
  msgstr "Raderade plugins"
1184
 
1185
+ #: loggers/SimplePluginLogger.php:863
1186
  msgctxt "plugin logger - detailed output version"
1187
  msgid "Version"
1188
  msgstr "Version"
1189
 
1190
+ #: loggers/SimplePluginLogger.php:865
1191
  msgctxt "plugin logger - detailed output author"
1192
  msgid "Author"
1193
  msgstr "Författare"
1194
 
1195
+ #: loggers/SimplePluginLogger.php:867
1196
  msgctxt "plugin logger - detailed output author"
1197
  msgid "Requires"
1198
  msgstr "Kräver"
1199
 
1200
+ #: loggers/SimplePluginLogger.php:866
1201
  msgctxt "plugin logger - detailed output url"
1202
  msgid "URL"
1203
  msgstr "URL"
1204
 
1205
+ #: loggers/SimplePluginLogger.php:868
1206
  msgctxt "plugin logger - detailed output compatible"
1207
  msgid "Compatible up to"
1208
  msgstr "Kompatibel upp till"
1209
 
1210
+ #: loggers/SimplePluginLogger.php:869
1211
  msgctxt "plugin logger - detailed output downloaded"
1212
  msgid "Downloads"
1213
  msgstr "Nedladdningar"
1214
 
1215
+ #: loggers/SimplePluginLogger.php:929
1216
  msgctxt "plugin logger: plugin info thickbox title view all info"
1217
  msgid "View plugin info"
1218
  msgstr "Visa information om plugin"
1219
 
1220
+ #: loggers/SimplePluginLogger.php:944
1221
  msgctxt "plugin logger: plugin info thickbox title"
1222
  msgid "View plugin info"
1223
  msgstr "Visa information om plugin"
1224
 
1225
+ #: loggers/SimplePluginLogger.php:948
1226
  msgctxt "plugin logger: plugin info thickbox title"
1227
  msgid "View changelog"
1228
  msgstr "Visa ändringslogg"
1297
  msgid "Background of themes changed"
1298
  msgstr "Ändrade bakgrunder för teman"
1299
 
 
 
 
 
 
 
 
 
 
 
1300
  #: templates/settings-statsRowsPerDay.php:36
1301
  msgctxt "stats: date in rows per day chart"
1302
  msgid "M j"
1303
  msgstr "M j"
1304
 
 
 
 
 
 
 
 
 
 
1305
  #~ msgctxt "dashboard menu name"
1306
  #~ msgid "History"
1307
  #~ msgstr "Historik"
languages/simple-history.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2015 Simple History
2
  # This file is distributed under the same license as the Simple History package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Simple History 2.0.18\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
7
- "POT-Creation-Date: 2015-01-26 15:41:57+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
@@ -24,156 +24,132 @@ msgstr ""
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
- #: SimpleHistory.php:504 SimpleHistory.php:765
28
  msgid "Settings"
29
  msgstr ""
30
 
31
- #: SimpleHistory.php:515
32
  msgid "Log (debug)"
33
  msgstr ""
34
 
35
- #: SimpleHistory.php:520
36
  msgid "Styles example (debug)"
37
  msgstr ""
38
 
39
- #: SimpleHistory.php:780
40
- #. #-#-#-#-# Simple-History.pot (Simple History 2.0.18) #-#-#-#-#
41
- #. Plugin Name of the plugin/theme
42
- msgid "Simple History"
43
  msgstr ""
44
 
45
- #: SimpleHistory.php:856
46
  msgid "Remove all log items?"
47
  msgstr ""
48
 
49
- #: SimpleHistory.php:858
50
  msgid "Go to the first page"
51
  msgstr ""
52
 
53
- #: SimpleHistory.php:859
54
  msgid "Go to the previous page"
55
  msgstr ""
56
 
57
- #: SimpleHistory.php:860
58
  msgid "Go to the next page"
59
  msgstr ""
60
 
61
- #: SimpleHistory.php:861
62
  msgid "Go to the last page"
63
  msgstr ""
64
 
65
- #: SimpleHistory.php:862
66
  msgid "Current page"
67
  msgstr ""
68
 
69
- #: SimpleHistory.php:864
70
  msgid "Oups, the log could not be loaded right now."
71
  msgstr ""
72
 
73
- #: SimpleHistory.php:865
74
  msgid "Your search did not match any history events."
75
  msgstr ""
76
 
77
- #: SimpleHistory.php:1149 SimpleHistory.php:1250
78
  msgid "Simple History Settings"
79
  msgstr ""
80
 
81
- #: SimpleHistory.php:1183
82
  msgid "No valid callback found"
83
  msgstr ""
84
 
85
- #: SimpleHistory.php:1271
86
  msgid "Cleared database"
87
  msgstr ""
88
 
89
- #: SimpleHistory.php:1298
90
  msgid "Show history"
91
  msgstr ""
92
 
93
- #: SimpleHistory.php:1311
94
  msgid "Number of items per page"
95
  msgstr ""
96
 
97
- #: SimpleHistory.php:1323
98
  msgid "Clear log"
99
  msgstr ""
100
 
101
- #: SimpleHistory.php:1462
102
  msgid "on the dashboard"
103
  msgstr ""
104
 
105
- #: SimpleHistory.php:1467
106
  msgid "as a page under the dashboard menu"
107
  msgstr ""
108
 
109
- #: SimpleHistory.php:1483
110
  msgid "Items in the database are automatically removed after %1$s days."
111
  msgstr ""
112
 
113
- #: SimpleHistory.php:1485
114
  msgid "Items in the database are kept forever."
115
  msgstr ""
116
 
117
- #: SimpleHistory.php:1489
118
  msgid "Clear log now"
119
  msgstr ""
120
 
121
- #: SimpleHistory.php:1533
122
- msgid "The log for Simple History was cleared ({num_rows} rows were removed)."
123
  msgstr ""
124
 
125
- #: SimpleHistory.php:1793
126
- msgid "+%1$s similar event"
127
- msgid_plural "+%1$s similar events"
128
- msgstr[0] ""
129
- msgstr[1] ""
130
-
131
- #: SimpleHistory.php:1800
132
  msgid "Loading…"
133
  msgstr ""
134
 
135
- #: SimpleHistory.php:1807
136
  msgid "Showing %1$s more"
137
  msgstr ""
138
 
139
- #: SimpleHistory.php:1826
140
  msgid "Context data"
141
  msgstr ""
142
 
143
- #: SimpleHistory.php:1827
144
- msgid "This is potentially useful meta data that a logger has saved."
145
  msgstr ""
146
 
147
- #: SimpleHistory.php:2302
148
  msgid "No events today so far."
149
  msgstr ""
150
 
151
- #: SimpleHistory.php:2321
152
- msgid "One event today from one user."
153
- msgstr ""
154
-
155
- #: SimpleHistory.php:2327
156
- msgid "One event today from one source."
157
  msgstr ""
158
 
159
- #: SimpleHistory.php:2333
160
- msgid "%1$d events today from one user."
161
- msgstr ""
162
-
163
- #: SimpleHistory.php:2339
164
  msgid "%1$d events today from %2$d users."
165
  msgstr ""
166
 
167
- #: SimpleHistory.php:2345 SimpleHistory.php:2351
168
- msgid "%1$d events today from one user and one other source."
169
- msgstr ""
170
-
171
- #: SimpleHistory.php:2357
172
- msgid "%1$d events today from one user and %3$d other sources."
173
- msgstr ""
174
-
175
- #: SimpleHistory.php:2363
176
- msgid "%1$s events today from %2$d users and %3$d other sources."
177
  msgstr ""
178
 
179
  #: dropins/SimpleHistoryDonateDropin.php:36
@@ -186,33 +162,28 @@ msgid ""
186
  "href=\"%2$s\">buy me something from my Amazon wish list</a>."
187
  msgstr ""
188
 
189
- #: dropins/SimpleHistoryFilterDropin.php:44
190
  msgid "Filter history"
191
  msgstr ""
192
 
193
- #: dropins/SimpleHistoryFilterDropin.php:48
194
- #: dropins/SimpleHistoryFilterDropin.php:159
195
- msgid "Search events"
196
- msgstr ""
197
-
198
- #: dropins/SimpleHistoryFilterDropin.php:56
199
  msgid "All log levels"
200
  msgstr ""
201
 
202
- #: dropins/SimpleHistoryFilterDropin.php:70
203
  msgid "All messages"
204
  msgstr ""
205
 
206
- #: dropins/SimpleHistoryFilterDropin.php:124
207
  msgid "All users"
208
  msgstr ""
209
 
210
- #: dropins/SimpleHistoryFilterDropin.php:145
211
  msgid "All dates"
212
  msgstr ""
213
 
214
- #: dropins/SimpleHistoryFilterDropin.php:168
215
- msgid "Search"
216
  msgstr ""
217
 
218
  #: dropins/SimpleHistoryNewRowsNotifier.php:80
@@ -234,12 +205,12 @@ msgid "Created new secret RSS address"
234
  msgstr ""
235
 
236
  #: dropins/SimpleHistoryRSSDropin.php:148
237
- #: dropins/SimpleHistoryRSSDropin.php:259
238
  msgid "History for %s"
239
  msgstr ""
240
 
241
  #: dropins/SimpleHistoryRSSDropin.php:149
242
- #: dropins/SimpleHistoryRSSDropin.php:260
243
  msgid "WordPress History for %s"
244
  msgstr ""
245
 
@@ -249,27 +220,27 @@ msgid_plural "+%1$s occasions"
249
  msgstr[0] ""
250
  msgstr[1] ""
251
 
252
- #: dropins/SimpleHistoryRSSDropin.php:263
253
  msgid "Wrong RSS secret"
254
  msgstr ""
255
 
256
- #: dropins/SimpleHistoryRSSDropin.php:264
257
  msgid ""
258
  "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
259
  "settings for current link to the RSS feed."
260
  msgstr ""
261
 
262
- #: dropins/SimpleHistoryRSSDropin.php:315
263
  msgid ""
264
  "You can generate a new address for the RSS feed. This is useful if you "
265
  "think that the address has fallen into the wrong hands."
266
  msgstr ""
267
 
268
- #: dropins/SimpleHistoryRSSDropin.php:318
269
  msgid "Generate new address"
270
  msgstr ""
271
 
272
- #: dropins/SimpleHistoryRSSDropin.php:346
273
  msgid ""
274
  "Simple History has a RSS feed which you can subscribe to and receive log "
275
  "updates. Make sure you only share the feed with people you trust, since it "
@@ -284,37 +255,33 @@ msgstr ""
284
  msgid "Stats"
285
  msgstr ""
286
 
287
- #: dropins/SimpleHistorySidebarDropin.php:159 loggers/SimpleLogger.php:296
288
- msgid "Just now"
289
- msgstr ""
290
-
291
- #: index.php:59
292
  msgid ""
293
  "Simple History is a great plugin, but to use it your server must have at "
294
  "least PHP 5.3 installed (you have version %s)."
295
  msgstr ""
296
 
297
- #: loggers/SimpleCommentsLogger.php:685
298
  msgid "Spam"
299
  msgstr ""
300
 
301
- #: loggers/SimpleCommentsLogger.php:687
302
  msgid "Approved"
303
  msgstr ""
304
 
305
- #: loggers/SimpleCommentsLogger.php:689
306
  msgid "Pending"
307
  msgstr ""
308
 
309
- #: loggers/SimpleCommentsLogger.php:703
310
  msgid "Trackback"
311
  msgstr ""
312
 
313
- #: loggers/SimpleCommentsLogger.php:705
314
  msgid "Pingback"
315
  msgstr ""
316
 
317
- #: loggers/SimpleCommentsLogger.php:707
318
  msgid "Comment"
319
  msgstr ""
320
 
@@ -338,24 +305,28 @@ msgstr ""
338
  msgid "%d occasions"
339
  msgstr ""
340
 
341
- #: loggers/SimpleLogger.php:203
342
  msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
343
  msgstr ""
344
 
345
- #: loggers/SimpleLogger.php:218
346
  msgid "Anonymous web user"
347
  msgstr ""
348
 
349
- #: loggers/SimpleLogger.php:226
350
  msgid "Anonymous user from %1$s"
351
  msgstr ""
352
 
353
- #: loggers/SimpleLogger.php:301
 
 
 
 
354
  #. translators: Date format for log row header, see http:php.net/date
355
  msgid "M j, Y \\a\\t G:i"
356
  msgstr ""
357
 
358
- #: loggers/SimpleLogger.php:309
359
  #. translators: 1: last modified date and time in human time diff-format
360
  msgid "%1$s ago"
361
  msgstr ""
@@ -380,19 +351,19 @@ msgstr ""
380
  msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
381
  msgstr ""
382
 
383
- #: loggers/SimpleMediaLogger.php:197
384
  msgid "{attachment_thumb}"
385
  msgstr ""
386
 
387
- #: loggers/SimpleMediaLogger.php:206
388
  msgid "{attachment_size_format}"
389
  msgstr ""
390
 
391
- #: loggers/SimpleMediaLogger.php:207
392
  msgid "{attachment_filetype_extension}"
393
  msgstr ""
394
 
395
- #: loggers/SimpleMediaLogger.php:209
396
  msgid "{full_image_width} × {full_image_height}"
397
  msgstr ""
398
 
@@ -496,57 +467,57 @@ msgstr ""
496
  msgid "Section"
497
  msgstr ""
498
 
499
- #: loggers/SimpleUserLogger.php:22
500
  msgid ""
501
  "Failed to login to account with username \"{login_user_login}\" because an "
502
  "incorrect password was entered"
503
  msgstr ""
504
 
505
- #: loggers/SimpleUserLogger.php:23
506
  msgid ""
507
  "Failed to login with username \"{failed_login_username}\" because no user "
508
- "with that username exists"
509
  msgstr ""
510
 
511
- #: loggers/SimpleUserLogger.php:24
512
  msgid "Logged in"
513
  msgstr ""
514
 
515
- #: loggers/SimpleUserLogger.php:25
516
  msgid "Unknown user logged in"
517
  msgstr ""
518
 
519
- #: loggers/SimpleUserLogger.php:26
520
  msgid "Logged out"
521
  msgstr ""
522
 
523
- #: loggers/SimpleUserLogger.php:27
524
  msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
525
  msgstr ""
526
 
527
- #: loggers/SimpleUserLogger.php:28
528
  msgid ""
529
  "Created user {created_user_login} ({created_user_email}) with role "
530
  "{created_user_role}"
531
  msgstr ""
532
 
533
- #: loggers/SimpleUserLogger.php:29
534
  msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
535
  msgstr ""
536
 
537
- #: loggers/SimpleUserLogger.php:227
538
  msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
539
  msgstr ""
540
 
541
- #: loggers/SimpleUserLogger.php:231
542
  msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
543
  msgstr ""
544
 
545
- #: loggers/SimpleUserLogger.php:240
546
  msgid "Edited your profile"
547
  msgstr ""
548
 
549
- #: loggers/SimpleUserLogger.php:251
550
  msgid ""
551
  "Edited the profile for user <a "
552
  "href=\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
@@ -599,6 +570,10 @@ msgstr ""
599
  msgid "Deleted users are also included."
600
  msgstr ""
601
 
 
 
 
 
602
  #. Plugin URI of the plugin/theme
603
  msgid "http://simple-history.com"
604
  msgstr ""
@@ -617,174 +592,36 @@ msgstr ""
617
  msgid "http://simple-history.com/"
618
  msgstr ""
619
 
620
- #: SimpleHistory.php:249
621
  msgctxt "Message visible while waiting for log to load from server the first time"
622
  msgid "Loading history..."
623
  msgstr ""
624
 
625
- #: SimpleHistory.php:286
626
  msgctxt "page n of n"
627
  msgid "of"
628
  msgstr ""
629
 
630
- #: SimpleHistory.php:357
631
  msgctxt "API: not enought arguments passed"
632
  msgid "Not enough args specified"
633
  msgstr ""
634
 
635
- #: SimpleHistory.php:1235
636
  msgctxt "dashboard menu name"
637
  msgid "Simple History"
638
  msgstr ""
639
 
640
- #: SimpleHistory.php:1359
641
  msgctxt "history page headline"
642
  msgid "Simple History"
643
  msgstr ""
644
 
645
- #: SimpleHistory.php:1619
646
- msgctxt "simple-history"
647
- msgid "Simple History removed one event that were older than {days} days"
648
- msgid_plural "Simple History removed {num_rows} events that were older than {days} days"
649
- msgstr[0] ""
650
- msgstr[1] ""
651
-
652
- #: SimpleHistory.php:1963
653
- msgctxt "Log level in gui"
654
- msgid "emergency"
655
- msgstr ""
656
-
657
- #: SimpleHistory.php:1967
658
- msgctxt "Log level in gui"
659
- msgid "alert"
660
- msgstr ""
661
-
662
- #: SimpleHistory.php:1971
663
- msgctxt "Log level in gui"
664
- msgid "critical"
665
- msgstr ""
666
-
667
- #: SimpleHistory.php:1975
668
- msgctxt "Log level in gui"
669
- msgid "error"
670
- msgstr ""
671
-
672
- #: SimpleHistory.php:1979
673
- msgctxt "Log level in gui"
674
- msgid "warning"
675
- msgstr ""
676
-
677
- #: SimpleHistory.php:1983
678
- msgctxt "Log level in gui"
679
- msgid "notice"
680
- msgstr ""
681
-
682
- #: SimpleHistory.php:1987
683
- msgctxt "Log level in gui"
684
- msgid "info"
685
- msgstr ""
686
-
687
- #: SimpleHistory.php:1991
688
- msgctxt "Log level in gui"
689
- msgid "debug"
690
- msgstr ""
691
-
692
- #: SimpleHistory.php:1996
693
- msgctxt "Log level in gui"
694
- msgid "Emergency"
695
- msgstr ""
696
-
697
- #: SimpleHistory.php:2000
698
- msgctxt "Log level in gui"
699
- msgid "Alert"
700
- msgstr ""
701
-
702
- #: SimpleHistory.php:2004
703
- msgctxt "Log level in gui"
704
- msgid "Critical"
705
- msgstr ""
706
-
707
- #: SimpleHistory.php:2008
708
- msgctxt "Log level in gui"
709
- msgid "Error"
710
- msgstr ""
711
-
712
- #: SimpleHistory.php:2012
713
- msgctxt "Log level in gui"
714
- msgid "Warning"
715
- msgstr ""
716
-
717
- #: SimpleHistory.php:2016
718
- msgctxt "Log level in gui"
719
- msgid "Notice"
720
- msgstr ""
721
-
722
- #: SimpleHistory.php:2020
723
- msgctxt "Log level in gui"
724
- msgid "Info"
725
- msgstr ""
726
-
727
- #: SimpleHistory.php:2024
728
- msgctxt "Log level in gui"
729
- msgid "Debug"
730
- msgstr ""
731
-
732
  #: dropins/SimpleHistoryDonateDropin.php:51
733
  msgctxt "donate settings headline"
734
  msgid "Donate"
735
  msgstr ""
736
 
737
- #: dropins/SimpleHistoryFilterDropin.php:50
738
- msgctxt "Filter dropin: button to show more search options"
739
- msgid "Show options"
740
- msgstr ""
741
-
742
- #: dropins/SimpleHistoryFilterDropin.php:160
743
- msgctxt "Filter dropin: button to hide more search options"
744
- msgid "Hide options"
745
- msgstr ""
746
-
747
- #: dropins/SimpleHistoryIpInfoDropin.php:66
748
- msgctxt "IP Info Dropin"
749
- msgid "That IP address does not seem like a public one."
750
- msgstr ""
751
-
752
- #: dropins/SimpleHistoryIpInfoDropin.php:85
753
- msgctxt "IP Info Dropin"
754
- msgid "IP address"
755
- msgstr ""
756
-
757
- #: dropins/SimpleHistoryIpInfoDropin.php:96
758
- msgctxt "IP Info Dropin"
759
- msgid "Hostname"
760
- msgstr ""
761
-
762
- #: dropins/SimpleHistoryIpInfoDropin.php:107
763
- #: dropins/SimpleHistoryIpInfoDropin.php:118
764
- msgctxt "IP Info Dropin"
765
- msgid "Network"
766
- msgstr ""
767
-
768
- #: dropins/SimpleHistoryIpInfoDropin.php:129
769
- msgctxt "IP Info Dropin"
770
- msgid "City"
771
- msgstr ""
772
-
773
- #: dropins/SimpleHistoryIpInfoDropin.php:140
774
- msgctxt "IP Info Dropin"
775
- msgid "Region"
776
- msgstr ""
777
-
778
- #: dropins/SimpleHistoryIpInfoDropin.php:151
779
- msgctxt "IP Info Dropin"
780
- msgid "Country"
781
- msgstr ""
782
-
783
- #: dropins/SimpleHistoryIpInfoDropin.php:162
784
- msgctxt "IP Info Dropin"
785
- msgid "IP info provided by %1$s ipinfo.io %2$s"
786
- msgstr ""
787
-
788
  #: dropins/SimpleHistoryNewRowsNotifier.php:38
789
  msgctxt "New rows notifier: error while checking for new rows"
790
  msgid "An error occured while checking for new log rows"
@@ -795,299 +632,256 @@ msgctxt "rss settings headline"
795
  msgid "RSS feed"
796
  msgstr ""
797
 
798
- #: dropins/SimpleHistorySidebarDropin.php:31
799
- msgctxt "Sidebar box"
800
- msgid "Simple History is on GitHub"
801
- msgstr ""
802
-
803
- #: dropins/SimpleHistorySidebarDropin.php:34
804
- msgctxt "Sidebar box"
805
- msgid ""
806
- "You can star, fork, or report issues with this plugin over at the <a "
807
- "href=\"%1$s\">GitHub page</a>."
808
- msgstr ""
809
-
810
- #: dropins/SimpleHistorySidebarDropin.php:48
811
- msgctxt "Sidebar box"
812
- msgid "Donate to support development"
813
- msgstr ""
814
-
815
- #: dropins/SimpleHistorySidebarDropin.php:51
816
- msgctxt "Sidebar box"
817
- msgid ""
818
- "If you like and use Simple History you should <a href=\"%1$s\">donate to "
819
- "keep this plugin free</a>."
820
- msgstr ""
821
-
822
- #: dropins/SimpleHistorySidebarDropin.php:65
823
- msgctxt "Sidebar box"
824
- msgid "Review this plugin if you like it"
825
- msgstr ""
826
-
827
- #: dropins/SimpleHistorySidebarDropin.php:68
828
- msgctxt "Sidebar box"
829
- msgid ""
830
- "If you like Simple History then please <a href=\"%1$s\">give it a nice "
831
- "review over at wordpress.org</a>."
832
- msgstr ""
833
-
834
- #: dropins/SimpleHistorySidebarDropin.php:72
835
- msgctxt "Sidebar box"
836
- msgid ""
837
- "A good review will help new users find this plugin. And it will make the "
838
- "plugin author very happy :)"
839
- msgstr ""
840
-
841
- #: loggers/SimpleCommentsLogger.php:95
842
  msgctxt "A comment was added to the database by a non-logged in internet user"
843
  msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
844
  msgstr ""
845
 
846
- #: loggers/SimpleCommentsLogger.php:101
847
  msgctxt "A comment was added to the database by a logged in user"
848
  msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
849
  msgstr ""
850
 
851
- #: loggers/SimpleCommentsLogger.php:107
852
  msgctxt "A comment was approved"
853
  msgid ""
854
  "Approved a comment to \"{comment_post_title}\" by {comment_author} "
855
  "({comment_author_email})"
856
  msgstr ""
857
 
858
- #: loggers/SimpleCommentsLogger.php:113
859
  msgctxt "A comment was was unapproved"
860
  msgid ""
861
  "Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
862
  "({comment_author_email})"
863
  msgstr ""
864
 
865
- #: loggers/SimpleCommentsLogger.php:119
866
  msgctxt "A comment was marked as spam"
867
  msgid "Marked a comment to post \"{comment_post_title}\" as spam"
868
  msgstr ""
869
 
870
- #: loggers/SimpleCommentsLogger.php:125
871
  msgctxt "A comment was marked moved to the trash"
872
  msgid ""
873
  "Trashed a comment to \"{comment_post_title}\" by {comment_author} "
874
  "({comment_author_email})"
875
  msgstr ""
876
 
877
- #: loggers/SimpleCommentsLogger.php:131
878
  msgctxt "A comment was restored from the trash"
879
  msgid ""
880
  "Restored a comment to \"{comment_post_title}\" by {comment_author} "
881
  "({comment_author_email}) from the trash"
882
  msgstr ""
883
 
884
- #: loggers/SimpleCommentsLogger.php:137
885
  msgctxt "A comment was deleted"
886
  msgid ""
887
  "Deleted a comment to \"{comment_post_title}\" by {comment_author} "
888
  "({comment_author_email})"
889
  msgstr ""
890
 
891
- #: loggers/SimpleCommentsLogger.php:143
892
  msgctxt "A comment was edited"
893
  msgid ""
894
  "Edited a comment to \"{comment_post_title}\" by {comment_author} "
895
  "({comment_author_email})"
896
  msgstr ""
897
 
898
- #: loggers/SimpleCommentsLogger.php:150
899
  msgctxt "A trackback was added to the database by a non-logged in internet user"
900
  msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
901
  msgstr ""
902
 
903
- #: loggers/SimpleCommentsLogger.php:205
904
  msgctxt "A trackback was added to the database by a non-logged in internet user"
905
  msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
906
  msgstr ""
907
 
908
- #: loggers/SimpleCommentsLogger.php:156
909
  msgctxt "A trackback was added to the database by a logged in user"
910
  msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
911
  msgstr ""
912
 
913
- #: loggers/SimpleCommentsLogger.php:162
914
  msgctxt "A trackback was approved"
915
  msgid ""
916
  "Approved a trackback to \"{comment_post_title}\" by {comment_author} "
917
  "({comment_author_email})"
918
  msgstr ""
919
 
920
- #: loggers/SimpleCommentsLogger.php:168
921
  msgctxt "A trackback was was unapproved"
922
  msgid ""
923
  "Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
924
  "({comment_author_email})"
925
  msgstr ""
926
 
927
- #: loggers/SimpleCommentsLogger.php:174
928
  msgctxt "A trackback was marked as spam"
929
  msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
930
  msgstr ""
931
 
932
- #: loggers/SimpleCommentsLogger.php:180
933
  msgctxt "A trackback was marked moved to the trash"
934
  msgid ""
935
  "Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
936
  "({comment_author_email})"
937
  msgstr ""
938
 
939
- #: loggers/SimpleCommentsLogger.php:186
940
  msgctxt "A trackback was restored from the trash"
941
  msgid ""
942
  "Restored a trackback to \"{comment_post_title}\" by {comment_author} "
943
  "({comment_author_email}) from the trash"
944
  msgstr ""
945
 
946
- #: loggers/SimpleCommentsLogger.php:192
947
  msgctxt "A trackback was deleted"
948
  msgid ""
949
  "Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
950
  "({comment_author_email})"
951
  msgstr ""
952
 
953
- #: loggers/SimpleCommentsLogger.php:198
954
  msgctxt "A trackback was edited"
955
  msgid ""
956
  "Edited a trackback to \"{comment_post_title}\" by {comment_author} "
957
  "({comment_author_email})"
958
  msgstr ""
959
 
960
- #: loggers/SimpleCommentsLogger.php:211
961
  msgctxt "A pingback was added to the database by a logged in user"
962
  msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
963
  msgstr ""
964
 
965
- #: loggers/SimpleCommentsLogger.php:217
966
  msgctxt "A pingback was approved"
967
  msgid ""
968
  "Approved a pingback to \"{comment_post_title}\" by \"{comment_author}\"\" "
969
  "({comment_author_email})"
970
  msgstr ""
971
 
972
- #: loggers/SimpleCommentsLogger.php:223
973
  msgctxt "A pingback was was unapproved"
974
  msgid ""
975
  "Unapproved a pingback to \"{comment_post_title}\" by \"{comment_author}\" "
976
  "({comment_author_email})"
977
  msgstr ""
978
 
979
- #: loggers/SimpleCommentsLogger.php:229
980
  msgctxt "A pingback was marked as spam"
981
  msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
982
  msgstr ""
983
 
984
- #: loggers/SimpleCommentsLogger.php:235
985
  msgctxt "A pingback was marked moved to the trash"
986
  msgid ""
987
  "Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
988
  "({comment_author_email})"
989
  msgstr ""
990
 
991
- #: loggers/SimpleCommentsLogger.php:241
992
  msgctxt "A pingback was restored from the trash"
993
  msgid ""
994
  "Restored a pingback to \"{comment_post_title}\" by {comment_author} "
995
  "({comment_author_email}) from the trash"
996
  msgstr ""
997
 
998
- #: loggers/SimpleCommentsLogger.php:247
999
  msgctxt "A pingback was deleted"
1000
  msgid ""
1001
  "Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
1002
  "({comment_author_email})"
1003
  msgstr ""
1004
 
1005
- #: loggers/SimpleCommentsLogger.php:253
1006
  msgctxt "A pingback was edited"
1007
  msgid ""
1008
  "Edited a pingback to \"{comment_post_title}\" by {comment_author} "
1009
  "({comment_author_email})"
1010
  msgstr ""
1011
 
1012
- #: loggers/SimpleCommentsLogger.php:264
1013
  msgctxt "Comments logger: search"
1014
  msgid "Comments"
1015
  msgstr ""
1016
 
1017
- #: loggers/SimpleCommentsLogger.php:265
1018
  msgctxt "Comments logger: search"
1019
  msgid "All comments activity"
1020
  msgstr ""
1021
 
1022
- #: loggers/SimpleCommentsLogger.php:267
1023
  msgctxt "Comments logger: search"
1024
  msgid "Added comments"
1025
  msgstr ""
1026
 
1027
- #: loggers/SimpleCommentsLogger.php:275
1028
  msgctxt "Comments logger: search"
1029
  msgid "Edited comments"
1030
  msgstr ""
1031
 
1032
- #: loggers/SimpleCommentsLogger.php:280
1033
  msgctxt "Comments logger: search"
1034
  msgid "Approved comments"
1035
  msgstr ""
1036
 
1037
- #: loggers/SimpleCommentsLogger.php:285
1038
  msgctxt "Comments logger: search"
1039
  msgid "Held comments"
1040
  msgstr ""
1041
 
1042
- #: loggers/SimpleCommentsLogger.php:290
1043
  msgctxt "Comments logger: search"
1044
  msgid "Comments status changed to spam"
1045
  msgstr ""
1046
 
1047
- #: loggers/SimpleCommentsLogger.php:295
1048
  msgctxt "Comments logger: search"
1049
  msgid "Trashed comments"
1050
  msgstr ""
1051
 
1052
- #: loggers/SimpleCommentsLogger.php:300
1053
  msgctxt "Comments logger: search"
1054
  msgid "Untrashed comments"
1055
  msgstr ""
1056
 
1057
- #: loggers/SimpleCommentsLogger.php:305
1058
  msgctxt "Comments logger: search"
1059
  msgid "Deleted comments"
1060
  msgstr ""
1061
 
1062
- #: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
1063
- #: loggers/SimpleCommentsLogger.php:629
1064
  msgctxt "comments logger - detailed output comment status"
1065
  msgid "Status"
1066
  msgstr ""
1067
 
1068
- #: loggers/SimpleCommentsLogger.php:604 loggers/SimpleCommentsLogger.php:617
1069
- #: loggers/SimpleCommentsLogger.php:631
1070
  msgctxt "comments logger - detailed output author"
1071
  msgid "Name"
1072
  msgstr ""
1073
 
1074
- #: loggers/SimpleCommentsLogger.php:605 loggers/SimpleCommentsLogger.php:618
1075
- #: loggers/SimpleCommentsLogger.php:632
1076
  msgctxt "comments logger - detailed output email"
1077
  msgid "Email"
1078
  msgstr ""
1079
 
1080
- #: loggers/SimpleCommentsLogger.php:606 loggers/SimpleCommentsLogger.php:619
1081
  msgctxt "comments logger - detailed output content"
1082
  msgid "Content"
1083
  msgstr ""
1084
 
1085
- #: loggers/SimpleCommentsLogger.php:633
1086
  msgctxt "comments logger - detailed output content"
1087
  msgid "Comment"
1088
  msgstr ""
1089
 
1090
- #: loggers/SimpleCommentsLogger.php:759
1091
  msgctxt "comments logger - edit comment"
1092
  msgid "View/Edit"
1093
  msgstr ""
@@ -1102,42 +896,42 @@ msgctxt "User logger: search"
1102
  msgid "WordPress core updates"
1103
  msgstr ""
1104
 
1105
- #: loggers/SimpleUserLogger.php:54
1106
  msgctxt "User logger: search"
1107
  msgid "Users"
1108
  msgstr ""
1109
 
1110
- #: loggers/SimpleUserLogger.php:55
1111
  msgctxt "User logger: search"
1112
  msgid "All user activity"
1113
  msgstr ""
1114
 
1115
- #: loggers/SimpleUserLogger.php:57
1116
  msgctxt "User logger: search"
1117
  msgid "Successful user logins"
1118
  msgstr ""
1119
 
1120
- #: loggers/SimpleUserLogger.php:61
1121
  msgctxt "User logger: search"
1122
  msgid "Failed user logins"
1123
  msgstr ""
1124
 
1125
- #: loggers/SimpleUserLogger.php:65
1126
  msgctxt "User logger: search"
1127
  msgid "User logouts"
1128
  msgstr ""
1129
 
1130
- #: loggers/SimpleUserLogger.php:68
1131
  msgctxt "User logger: search"
1132
  msgid "Created users"
1133
  msgstr ""
1134
 
1135
- #: loggers/SimpleUserLogger.php:71
1136
  msgctxt "User logger: search"
1137
  msgid "User profile updates"
1138
  msgstr ""
1139
 
1140
- #: loggers/SimpleUserLogger.php:74
1141
  msgctxt "User logger: search"
1142
  msgid "User deletions"
1143
  msgstr ""
@@ -1152,7 +946,7 @@ msgctxt "Export logger: search"
1152
  msgid "Created exports"
1153
  msgstr ""
1154
 
1155
- #: loggers/SimpleLogger.php:190
1156
  msgctxt "header output when initiator is the currently logged in user"
1157
  msgid "You"
1158
  msgstr ""
@@ -1315,47 +1109,47 @@ msgctxt "Plugin logger: search"
1315
  msgid "Deleted plugins"
1316
  msgstr ""
1317
 
1318
- #: loggers/SimplePluginLogger.php:887
1319
  msgctxt "plugin logger - detailed output version"
1320
  msgid "Version"
1321
  msgstr ""
1322
 
1323
- #: loggers/SimplePluginLogger.php:889
1324
  msgctxt "plugin logger - detailed output author"
1325
  msgid "Author"
1326
  msgstr ""
1327
 
1328
- #: loggers/SimplePluginLogger.php:891
1329
  msgctxt "plugin logger - detailed output author"
1330
  msgid "Requires"
1331
  msgstr ""
1332
 
1333
- #: loggers/SimplePluginLogger.php:890
1334
  msgctxt "plugin logger - detailed output url"
1335
  msgid "URL"
1336
  msgstr ""
1337
 
1338
- #: loggers/SimplePluginLogger.php:892
1339
  msgctxt "plugin logger - detailed output compatible"
1340
  msgid "Compatible up to"
1341
  msgstr ""
1342
 
1343
- #: loggers/SimplePluginLogger.php:893
1344
  msgctxt "plugin logger - detailed output downloaded"
1345
  msgid "Downloads"
1346
  msgstr ""
1347
 
1348
- #: loggers/SimplePluginLogger.php:953
1349
  msgctxt "plugin logger: plugin info thickbox title view all info"
1350
  msgid "View plugin info"
1351
  msgstr ""
1352
 
1353
- #: loggers/SimplePluginLogger.php:968
1354
  msgctxt "plugin logger: plugin info thickbox title"
1355
  msgid "View plugin info"
1356
  msgstr ""
1357
 
1358
- #: loggers/SimplePluginLogger.php:972
1359
  msgctxt "plugin logger: plugin info thickbox title"
1360
  msgid "View changelog"
1361
  msgstr ""
@@ -1430,16 +1224,6 @@ msgctxt "Theme logger: search"
1430
  msgid "Background of themes changed"
1431
  msgstr ""
1432
 
1433
- #: loggers/SimpleUserLogger.php:36
1434
- msgctxt "User destroys other login sessions for themself"
1435
- msgid "Logged out from all other sessions"
1436
- msgstr ""
1437
-
1438
- #: loggers/SimpleUserLogger.php:45
1439
- msgctxt "User destroys all login sessions for a user"
1440
- msgid "Logged out \"{user_display_name}\" from all sessions"
1441
- msgstr ""
1442
-
1443
  #: templates/settings-statsRowsPerDay.php:36
1444
  msgctxt "stats: date in rows per day chart"
1445
  msgid "M j"
1
+ # Copyright (C) 2014 Simple History
2
  # This file is distributed under the same license as the Simple History package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Simple History 2.0.3\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/Simple-History\n"
7
+ "POT-Creation-Date: 2014-12-17 06:57:05+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
+ #: SimpleHistory.php:423 SimpleHistory.php:667
28
  msgid "Settings"
29
  msgstr ""
30
 
31
+ #: SimpleHistory.php:434
32
  msgid "Log (debug)"
33
  msgstr ""
34
 
35
+ #: SimpleHistory.php:439
36
  msgid "Styles example (debug)"
37
  msgstr ""
38
 
39
+ #: SimpleHistory.php:682
40
+ msgid "History"
 
 
41
  msgstr ""
42
 
43
+ #: SimpleHistory.php:758
44
  msgid "Remove all log items?"
45
  msgstr ""
46
 
47
+ #: SimpleHistory.php:760
48
  msgid "Go to the first page"
49
  msgstr ""
50
 
51
+ #: SimpleHistory.php:761
52
  msgid "Go to the previous page"
53
  msgstr ""
54
 
55
+ #: SimpleHistory.php:762
56
  msgid "Go to the next page"
57
  msgstr ""
58
 
59
+ #: SimpleHistory.php:763
60
  msgid "Go to the last page"
61
  msgstr ""
62
 
63
+ #: SimpleHistory.php:764
64
  msgid "Current page"
65
  msgstr ""
66
 
67
+ #: SimpleHistory.php:766
68
  msgid "Oups, the log could not be loaded right now."
69
  msgstr ""
70
 
71
+ #: SimpleHistory.php:767
72
  msgid "Your search did not match any history events."
73
  msgstr ""
74
 
75
+ #: SimpleHistory.php:1061 SimpleHistory.php:1164
76
  msgid "Simple History Settings"
77
  msgstr ""
78
 
79
+ #: SimpleHistory.php:1095
80
  msgid "No valid callback found"
81
  msgstr ""
82
 
83
+ #: SimpleHistory.php:1185
84
  msgid "Cleared database"
85
  msgstr ""
86
 
87
+ #: SimpleHistory.php:1212
88
  msgid "Show history"
89
  msgstr ""
90
 
91
+ #: SimpleHistory.php:1225
92
  msgid "Number of items per page"
93
  msgstr ""
94
 
95
+ #: SimpleHistory.php:1237
96
  msgid "Clear log"
97
  msgstr ""
98
 
99
+ #: SimpleHistory.php:1457
100
  msgid "on the dashboard"
101
  msgstr ""
102
 
103
+ #: SimpleHistory.php:1462
104
  msgid "as a page under the dashboard menu"
105
  msgstr ""
106
 
107
+ #: SimpleHistory.php:1478
108
  msgid "Items in the database are automatically removed after %1$s days."
109
  msgstr ""
110
 
111
+ #: SimpleHistory.php:1480
112
  msgid "Items in the database are kept forever."
113
  msgstr ""
114
 
115
+ #: SimpleHistory.php:1484
116
  msgid "Clear log now"
117
  msgstr ""
118
 
119
+ #: SimpleHistory.php:1709
120
+ msgid "+%1$s more"
121
  msgstr ""
122
 
123
+ #: SimpleHistory.php:1716
 
 
 
 
 
 
124
  msgid "Loading…"
125
  msgstr ""
126
 
127
+ #: SimpleHistory.php:1723
128
  msgid "Showing %1$s more"
129
  msgstr ""
130
 
131
+ #: SimpleHistory.php:1742
132
  msgid "Context data"
133
  msgstr ""
134
 
135
+ #: SimpleHistory.php:1743
136
+ msgid "This is potentially useful meta data that a logger have saved."
137
  msgstr ""
138
 
139
+ #: SimpleHistory.php:2065
140
  msgid "No events today so far."
141
  msgstr ""
142
 
143
+ #: SimpleHistory.php:2069
144
+ msgid "%1$d event today from one user."
 
 
 
 
145
  msgstr ""
146
 
147
+ #: SimpleHistory.php:2073
 
 
 
 
148
  msgid "%1$d events today from %2$d users."
149
  msgstr ""
150
 
151
+ #: SimpleHistory.php:2077
152
+ msgid "%1$d events today from one user."
 
 
 
 
 
 
 
 
153
  msgstr ""
154
 
155
  #: dropins/SimpleHistoryDonateDropin.php:36
162
  "href=\"%2$s\">buy me something from my Amazon wish list</a>."
163
  msgstr ""
164
 
165
+ #: dropins/SimpleHistoryFilterDropin.php:43
166
  msgid "Filter history"
167
  msgstr ""
168
 
169
+ #: dropins/SimpleHistoryFilterDropin.php:50
 
 
 
 
 
170
  msgid "All log levels"
171
  msgstr ""
172
 
173
+ #: dropins/SimpleHistoryFilterDropin.php:64
174
  msgid "All messages"
175
  msgstr ""
176
 
177
+ #: dropins/SimpleHistoryFilterDropin.php:118
178
  msgid "All users"
179
  msgstr ""
180
 
181
+ #: dropins/SimpleHistoryFilterDropin.php:139
182
  msgid "All dates"
183
  msgstr ""
184
 
185
+ #: dropins/SimpleHistoryFilterDropin.php:153
186
+ msgid "Filter"
187
  msgstr ""
188
 
189
  #: dropins/SimpleHistoryNewRowsNotifier.php:80
205
  msgstr ""
206
 
207
  #: dropins/SimpleHistoryRSSDropin.php:148
208
+ #: dropins/SimpleHistoryRSSDropin.php:256
209
  msgid "History for %s"
210
  msgstr ""
211
 
212
  #: dropins/SimpleHistoryRSSDropin.php:149
213
+ #: dropins/SimpleHistoryRSSDropin.php:257
214
  msgid "WordPress History for %s"
215
  msgstr ""
216
 
220
  msgstr[0] ""
221
  msgstr[1] ""
222
 
223
+ #: dropins/SimpleHistoryRSSDropin.php:260
224
  msgid "Wrong RSS secret"
225
  msgstr ""
226
 
227
+ #: dropins/SimpleHistoryRSSDropin.php:261
228
  msgid ""
229
  "Your RSS secret for Simple History RSS feed is wrong. Please see WordPress "
230
  "settings for current link to the RSS feed."
231
  msgstr ""
232
 
233
+ #: dropins/SimpleHistoryRSSDropin.php:312
234
  msgid ""
235
  "You can generate a new address for the RSS feed. This is useful if you "
236
  "think that the address has fallen into the wrong hands."
237
  msgstr ""
238
 
239
+ #: dropins/SimpleHistoryRSSDropin.php:315
240
  msgid "Generate new address"
241
  msgstr ""
242
 
243
+ #: dropins/SimpleHistoryRSSDropin.php:343
244
  msgid ""
245
  "Simple History has a RSS feed which you can subscribe to and receive log "
246
  "updates. Make sure you only share the feed with people you trust, since it "
255
  msgid "Stats"
256
  msgstr ""
257
 
258
+ #: index.php:56
 
 
 
 
259
  msgid ""
260
  "Simple History is a great plugin, but to use it your server must have at "
261
  "least PHP 5.3 installed (you have version %s)."
262
  msgstr ""
263
 
264
+ #: loggers/SimpleCommentsLogger.php:682
265
  msgid "Spam"
266
  msgstr ""
267
 
268
+ #: loggers/SimpleCommentsLogger.php:684
269
  msgid "Approved"
270
  msgstr ""
271
 
272
+ #: loggers/SimpleCommentsLogger.php:686
273
  msgid "Pending"
274
  msgstr ""
275
 
276
+ #: loggers/SimpleCommentsLogger.php:700
277
  msgid "Trackback"
278
  msgstr ""
279
 
280
+ #: loggers/SimpleCommentsLogger.php:702
281
  msgid "Pingback"
282
  msgstr ""
283
 
284
+ #: loggers/SimpleCommentsLogger.php:704
285
  msgid "Comment"
286
  msgstr ""
287
 
305
  msgid "%d occasions"
306
  msgstr ""
307
 
308
+ #: loggers/SimpleLogger.php:205
309
  msgid "Deleted user (had id %1$s, email %2$s, login %3$s)"
310
  msgstr ""
311
 
312
+ #: loggers/SimpleLogger.php:220
313
  msgid "Anonymous web user"
314
  msgstr ""
315
 
316
+ #: loggers/SimpleLogger.php:228
317
  msgid "Anonymous user from %1$s"
318
  msgstr ""
319
 
320
+ #: loggers/SimpleLogger.php:299
321
+ msgid "Just now"
322
+ msgstr ""
323
+
324
+ #: loggers/SimpleLogger.php:304
325
  #. translators: Date format for log row header, see http:php.net/date
326
  msgid "M j, Y \\a\\t G:i"
327
  msgstr ""
328
 
329
+ #: loggers/SimpleLogger.php:312
330
  #. translators: 1: last modified date and time in human time diff-format
331
  msgid "%1$s ago"
332
  msgstr ""
351
  msgid "Uploaded {post_type} <a href=\"{edit_link}\">\"{attachment_title}\"</a>"
352
  msgstr ""
353
 
354
+ #: loggers/SimpleMediaLogger.php:180
355
  msgid "{attachment_thumb}"
356
  msgstr ""
357
 
358
+ #: loggers/SimpleMediaLogger.php:189
359
  msgid "{attachment_size_format}"
360
  msgstr ""
361
 
362
+ #: loggers/SimpleMediaLogger.php:190
363
  msgid "{attachment_filetype_extension}"
364
  msgstr ""
365
 
366
+ #: loggers/SimpleMediaLogger.php:192
367
  msgid "{full_image_width} × {full_image_height}"
368
  msgstr ""
369
 
467
  msgid "Section"
468
  msgstr ""
469
 
470
+ #: loggers/SimpleUserLogger.php:23
471
  msgid ""
472
  "Failed to login to account with username \"{login_user_login}\" because an "
473
  "incorrect password was entered"
474
  msgstr ""
475
 
476
+ #: loggers/SimpleUserLogger.php:24
477
  msgid ""
478
  "Failed to login with username \"{failed_login_username}\" because no user "
479
+ "with that username exist"
480
  msgstr ""
481
 
482
+ #: loggers/SimpleUserLogger.php:25
483
  msgid "Logged in"
484
  msgstr ""
485
 
486
+ #: loggers/SimpleUserLogger.php:26
487
  msgid "Unknown user logged in"
488
  msgstr ""
489
 
490
+ #: loggers/SimpleUserLogger.php:27
491
  msgid "Logged out"
492
  msgstr ""
493
 
494
+ #: loggers/SimpleUserLogger.php:28
495
  msgid "Edited the profile for user {edited_user_login} ({edited_user_email})"
496
  msgstr ""
497
 
498
+ #: loggers/SimpleUserLogger.php:29
499
  msgid ""
500
  "Created user {created_user_login} ({created_user_email}) with role "
501
  "{created_user_role}"
502
  msgstr ""
503
 
504
+ #: loggers/SimpleUserLogger.php:30
505
  msgid "Deleted user {deleted_user_login} ({deleted_user_email})"
506
  msgstr ""
507
 
508
+ #: loggers/SimpleUserLogger.php:153
509
  msgid "Edited <a href=\"{edit_profile_link}\">your profile</a>"
510
  msgstr ""
511
 
512
+ #: loggers/SimpleUserLogger.php:157
513
  msgid "Edited <a href=\"{edit_profile_link}\">their profile</a>"
514
  msgstr ""
515
 
516
+ #: loggers/SimpleUserLogger.php:166
517
  msgid "Edited your profile"
518
  msgstr ""
519
 
520
+ #: loggers/SimpleUserLogger.php:177
521
  msgid ""
522
  "Edited the profile for user <a "
523
  "href=\"{edit_profile_link}\">{edited_user_login} ({edited_user_email})</a>"
570
  msgid "Deleted users are also included."
571
  msgstr ""
572
 
573
+ #. Plugin Name of the plugin/theme
574
+ msgid "Simple History"
575
+ msgstr ""
576
+
577
  #. Plugin URI of the plugin/theme
578
  msgid "http://simple-history.com"
579
  msgstr ""
592
  msgid "http://simple-history.com/"
593
  msgstr ""
594
 
595
+ #: SimpleHistory.php:166
596
  msgctxt "Message visible while waiting for log to load from server the first time"
597
  msgid "Loading history..."
598
  msgstr ""
599
 
600
+ #: SimpleHistory.php:203
601
  msgctxt "page n of n"
602
  msgid "of"
603
  msgstr ""
604
 
605
+ #: SimpleHistory.php:274
606
  msgctxt "API: not enought arguments passed"
607
  msgid "Not enough args specified"
608
  msgstr ""
609
 
610
+ #: SimpleHistory.php:1149
611
  msgctxt "dashboard menu name"
612
  msgid "Simple History"
613
  msgstr ""
614
 
615
+ #: SimpleHistory.php:1274
616
  msgctxt "history page headline"
617
  msgid "Simple History"
618
  msgstr ""
619
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
620
  #: dropins/SimpleHistoryDonateDropin.php:51
621
  msgctxt "donate settings headline"
622
  msgid "Donate"
623
  msgstr ""
624
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
625
  #: dropins/SimpleHistoryNewRowsNotifier.php:38
626
  msgctxt "New rows notifier: error while checking for new rows"
627
  msgid "An error occured while checking for new log rows"
632
  msgid "RSS feed"
633
  msgstr ""
634
 
635
+ #: loggers/SimpleCommentsLogger.php:94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
636
  msgctxt "A comment was added to the database by a non-logged in internet user"
637
  msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
638
  msgstr ""
639
 
640
+ #: loggers/SimpleCommentsLogger.php:100
641
  msgctxt "A comment was added to the database by a logged in user"
642
  msgid "Added a comment to {comment_post_type} \"{comment_post_title}\""
643
  msgstr ""
644
 
645
+ #: loggers/SimpleCommentsLogger.php:106
646
  msgctxt "A comment was approved"
647
  msgid ""
648
  "Approved a comment to \"{comment_post_title}\" by {comment_author} "
649
  "({comment_author_email})"
650
  msgstr ""
651
 
652
+ #: loggers/SimpleCommentsLogger.php:112
653
  msgctxt "A comment was was unapproved"
654
  msgid ""
655
  "Unapproved a comment to \"{comment_post_title}\" by {comment_author} "
656
  "({comment_author_email})"
657
  msgstr ""
658
 
659
+ #: loggers/SimpleCommentsLogger.php:118
660
  msgctxt "A comment was marked as spam"
661
  msgid "Marked a comment to post \"{comment_post_title}\" as spam"
662
  msgstr ""
663
 
664
+ #: loggers/SimpleCommentsLogger.php:124
665
  msgctxt "A comment was marked moved to the trash"
666
  msgid ""
667
  "Trashed a comment to \"{comment_post_title}\" by {comment_author} "
668
  "({comment_author_email})"
669
  msgstr ""
670
 
671
+ #: loggers/SimpleCommentsLogger.php:130
672
  msgctxt "A comment was restored from the trash"
673
  msgid ""
674
  "Restored a comment to \"{comment_post_title}\" by {comment_author} "
675
  "({comment_author_email}) from the trash"
676
  msgstr ""
677
 
678
+ #: loggers/SimpleCommentsLogger.php:136
679
  msgctxt "A comment was deleted"
680
  msgid ""
681
  "Deleted a comment to \"{comment_post_title}\" by {comment_author} "
682
  "({comment_author_email})"
683
  msgstr ""
684
 
685
+ #: loggers/SimpleCommentsLogger.php:142
686
  msgctxt "A comment was edited"
687
  msgid ""
688
  "Edited a comment to \"{comment_post_title}\" by {comment_author} "
689
  "({comment_author_email})"
690
  msgstr ""
691
 
692
+ #: loggers/SimpleCommentsLogger.php:149
693
  msgctxt "A trackback was added to the database by a non-logged in internet user"
694
  msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
695
  msgstr ""
696
 
697
+ #: loggers/SimpleCommentsLogger.php:204
698
  msgctxt "A trackback was added to the database by a non-logged in internet user"
699
  msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
700
  msgstr ""
701
 
702
+ #: loggers/SimpleCommentsLogger.php:155
703
  msgctxt "A trackback was added to the database by a logged in user"
704
  msgid "Added a trackback to {comment_post_type} \"{comment_post_title}\""
705
  msgstr ""
706
 
707
+ #: loggers/SimpleCommentsLogger.php:161
708
  msgctxt "A trackback was approved"
709
  msgid ""
710
  "Approved a trackback to \"{comment_post_title}\" by {comment_author} "
711
  "({comment_author_email})"
712
  msgstr ""
713
 
714
+ #: loggers/SimpleCommentsLogger.php:167
715
  msgctxt "A trackback was was unapproved"
716
  msgid ""
717
  "Unapproved a trackback to \"{comment_post_title}\" by {comment_author} "
718
  "({comment_author_email})"
719
  msgstr ""
720
 
721
+ #: loggers/SimpleCommentsLogger.php:173
722
  msgctxt "A trackback was marked as spam"
723
  msgid "Marked a trackback to post \"{comment_post_title}\" as spam"
724
  msgstr ""
725
 
726
+ #: loggers/SimpleCommentsLogger.php:179
727
  msgctxt "A trackback was marked moved to the trash"
728
  msgid ""
729
  "Trashed a trackback to \"{comment_post_title}\" by {comment_author} "
730
  "({comment_author_email})"
731
  msgstr ""
732
 
733
+ #: loggers/SimpleCommentsLogger.php:185
734
  msgctxt "A trackback was restored from the trash"
735
  msgid ""
736
  "Restored a trackback to \"{comment_post_title}\" by {comment_author} "
737
  "({comment_author_email}) from the trash"
738
  msgstr ""
739
 
740
+ #: loggers/SimpleCommentsLogger.php:191
741
  msgctxt "A trackback was deleted"
742
  msgid ""
743
  "Deleted a trackback to \"{comment_post_title}\" by {comment_author} "
744
  "({comment_author_email})"
745
  msgstr ""
746
 
747
+ #: loggers/SimpleCommentsLogger.php:197
748
  msgctxt "A trackback was edited"
749
  msgid ""
750
  "Edited a trackback to \"{comment_post_title}\" by {comment_author} "
751
  "({comment_author_email})"
752
  msgstr ""
753
 
754
+ #: loggers/SimpleCommentsLogger.php:210
755
  msgctxt "A pingback was added to the database by a logged in user"
756
  msgid "Added a pingback to {comment_post_type} \"{comment_post_title}\""
757
  msgstr ""
758
 
759
+ #: loggers/SimpleCommentsLogger.php:216
760
  msgctxt "A pingback was approved"
761
  msgid ""
762
  "Approved a pingback to \"{comment_post_title}\" by \"{comment_author}\"\" "
763
  "({comment_author_email})"
764
  msgstr ""
765
 
766
+ #: loggers/SimpleCommentsLogger.php:222
767
  msgctxt "A pingback was was unapproved"
768
  msgid ""
769
  "Unapproved a pingback to \"{comment_post_title}\" by \"{comment_author}\" "
770
  "({comment_author_email})"
771
  msgstr ""
772
 
773
+ #: loggers/SimpleCommentsLogger.php:228
774
  msgctxt "A pingback was marked as spam"
775
  msgid "Marked a pingback to post \"{comment_post_title}\" as spam"
776
  msgstr ""
777
 
778
+ #: loggers/SimpleCommentsLogger.php:234
779
  msgctxt "A pingback was marked moved to the trash"
780
  msgid ""
781
  "Trashed a pingback to \"{comment_post_title}\" by {comment_author} "
782
  "({comment_author_email})"
783
  msgstr ""
784
 
785
+ #: loggers/SimpleCommentsLogger.php:240
786
  msgctxt "A pingback was restored from the trash"
787
  msgid ""
788
  "Restored a pingback to \"{comment_post_title}\" by {comment_author} "
789
  "({comment_author_email}) from the trash"
790
  msgstr ""
791
 
792
+ #: loggers/SimpleCommentsLogger.php:246
793
  msgctxt "A pingback was deleted"
794
  msgid ""
795
  "Deleted a pingback to \"{comment_post_title}\" by {comment_author} "
796
  "({comment_author_email})"
797
  msgstr ""
798
 
799
+ #: loggers/SimpleCommentsLogger.php:252
800
  msgctxt "A pingback was edited"
801
  msgid ""
802
  "Edited a pingback to \"{comment_post_title}\" by {comment_author} "
803
  "({comment_author_email})"
804
  msgstr ""
805
 
806
+ #: loggers/SimpleCommentsLogger.php:263
807
  msgctxt "Comments logger: search"
808
  msgid "Comments"
809
  msgstr ""
810
 
811
+ #: loggers/SimpleCommentsLogger.php:264
812
  msgctxt "Comments logger: search"
813
  msgid "All comments activity"
814
  msgstr ""
815
 
816
+ #: loggers/SimpleCommentsLogger.php:266
817
  msgctxt "Comments logger: search"
818
  msgid "Added comments"
819
  msgstr ""
820
 
821
+ #: loggers/SimpleCommentsLogger.php:274
822
  msgctxt "Comments logger: search"
823
  msgid "Edited comments"
824
  msgstr ""
825
 
826
+ #: loggers/SimpleCommentsLogger.php:279
827
  msgctxt "Comments logger: search"
828
  msgid "Approved comments"
829
  msgstr ""
830
 
831
+ #: loggers/SimpleCommentsLogger.php:284
832
  msgctxt "Comments logger: search"
833
  msgid "Held comments"
834
  msgstr ""
835
 
836
+ #: loggers/SimpleCommentsLogger.php:289
837
  msgctxt "Comments logger: search"
838
  msgid "Comments status changed to spam"
839
  msgstr ""
840
 
841
+ #: loggers/SimpleCommentsLogger.php:294
842
  msgctxt "Comments logger: search"
843
  msgid "Trashed comments"
844
  msgstr ""
845
 
846
+ #: loggers/SimpleCommentsLogger.php:299
847
  msgctxt "Comments logger: search"
848
  msgid "Untrashed comments"
849
  msgstr ""
850
 
851
+ #: loggers/SimpleCommentsLogger.php:304
852
  msgctxt "Comments logger: search"
853
  msgid "Deleted comments"
854
  msgstr ""
855
 
856
+ #: loggers/SimpleCommentsLogger.php:599 loggers/SimpleCommentsLogger.php:612
857
+ #: loggers/SimpleCommentsLogger.php:626
858
  msgctxt "comments logger - detailed output comment status"
859
  msgid "Status"
860
  msgstr ""
861
 
862
+ #: loggers/SimpleCommentsLogger.php:601 loggers/SimpleCommentsLogger.php:614
863
+ #: loggers/SimpleCommentsLogger.php:628
864
  msgctxt "comments logger - detailed output author"
865
  msgid "Name"
866
  msgstr ""
867
 
868
+ #: loggers/SimpleCommentsLogger.php:602 loggers/SimpleCommentsLogger.php:615
869
+ #: loggers/SimpleCommentsLogger.php:629
870
  msgctxt "comments logger - detailed output email"
871
  msgid "Email"
872
  msgstr ""
873
 
874
+ #: loggers/SimpleCommentsLogger.php:603 loggers/SimpleCommentsLogger.php:616
875
  msgctxt "comments logger - detailed output content"
876
  msgid "Content"
877
  msgstr ""
878
 
879
+ #: loggers/SimpleCommentsLogger.php:630
880
  msgctxt "comments logger - detailed output content"
881
  msgid "Comment"
882
  msgstr ""
883
 
884
+ #: loggers/SimpleCommentsLogger.php:756
885
  msgctxt "comments logger - edit comment"
886
  msgid "View/Edit"
887
  msgstr ""
896
  msgid "WordPress core updates"
897
  msgstr ""
898
 
899
+ #: loggers/SimpleUserLogger.php:35
900
  msgctxt "User logger: search"
901
  msgid "Users"
902
  msgstr ""
903
 
904
+ #: loggers/SimpleUserLogger.php:36
905
  msgctxt "User logger: search"
906
  msgid "All user activity"
907
  msgstr ""
908
 
909
+ #: loggers/SimpleUserLogger.php:38
910
  msgctxt "User logger: search"
911
  msgid "Successful user logins"
912
  msgstr ""
913
 
914
+ #: loggers/SimpleUserLogger.php:42
915
  msgctxt "User logger: search"
916
  msgid "Failed user logins"
917
  msgstr ""
918
 
919
+ #: loggers/SimpleUserLogger.php:46
920
  msgctxt "User logger: search"
921
  msgid "User logouts"
922
  msgstr ""
923
 
924
+ #: loggers/SimpleUserLogger.php:49
925
  msgctxt "User logger: search"
926
  msgid "Created users"
927
  msgstr ""
928
 
929
+ #: loggers/SimpleUserLogger.php:52
930
  msgctxt "User logger: search"
931
  msgid "User profile updates"
932
  msgstr ""
933
 
934
+ #: loggers/SimpleUserLogger.php:55
935
  msgctxt "User logger: search"
936
  msgid "User deletions"
937
  msgstr ""
946
  msgid "Created exports"
947
  msgstr ""
948
 
949
+ #: loggers/SimpleLogger.php:192
950
  msgctxt "header output when initiator is the currently logged in user"
951
  msgid "You"
952
  msgstr ""
1109
  msgid "Deleted plugins"
1110
  msgstr ""
1111
 
1112
+ #: loggers/SimplePluginLogger.php:863
1113
  msgctxt "plugin logger - detailed output version"
1114
  msgid "Version"
1115
  msgstr ""
1116
 
1117
+ #: loggers/SimplePluginLogger.php:865
1118
  msgctxt "plugin logger - detailed output author"
1119
  msgid "Author"
1120
  msgstr ""
1121
 
1122
+ #: loggers/SimplePluginLogger.php:867
1123
  msgctxt "plugin logger - detailed output author"
1124
  msgid "Requires"
1125
  msgstr ""
1126
 
1127
+ #: loggers/SimplePluginLogger.php:866
1128
  msgctxt "plugin logger - detailed output url"
1129
  msgid "URL"
1130
  msgstr ""
1131
 
1132
+ #: loggers/SimplePluginLogger.php:868
1133
  msgctxt "plugin logger - detailed output compatible"
1134
  msgid "Compatible up to"
1135
  msgstr ""
1136
 
1137
+ #: loggers/SimplePluginLogger.php:869
1138
  msgctxt "plugin logger - detailed output downloaded"
1139
  msgid "Downloads"
1140
  msgstr ""
1141
 
1142
+ #: loggers/SimplePluginLogger.php:929
1143
  msgctxt "plugin logger: plugin info thickbox title view all info"
1144
  msgid "View plugin info"
1145
  msgstr ""
1146
 
1147
+ #: loggers/SimplePluginLogger.php:944
1148
  msgctxt "plugin logger: plugin info thickbox title"
1149
  msgid "View plugin info"
1150
  msgstr ""
1151
 
1152
+ #: loggers/SimplePluginLogger.php:948
1153
  msgctxt "plugin logger: plugin info thickbox title"
1154
  msgid "View changelog"
1155
  msgstr ""
1224
  msgid "Background of themes changed"
1225
  msgstr ""
1226
 
 
 
 
 
 
 
 
 
 
 
1227
  #: templates/settings-statsRowsPerDay.php:36
1228
  msgctxt "stats: date in rows per day chart"
1229
  msgid "M j"
loggers/SimpleCommentsLogger.php CHANGED
@@ -15,7 +15,6 @@ class SimpleCommentsLogger extends SimpleLogger
15
  // Add option to not show spam comments, because to much things getting logged
16
  #add_filter("simple_history/log_query_sql_where", array($this, "maybe_modify_log_query_sql_where"));
17
  add_filter("simple_history/log_query_inner_where", array($this, "maybe_modify_log_query_sql_where"));
18
- add_filter("simple_history/quick_stats_where", array($this, "maybe_modify_log_query_sql_where"));
19
 
20
  }
21
 
@@ -25,9 +24,9 @@ class SimpleCommentsLogger extends SimpleLogger
25
  * @param string $where sql query where
26
  */
27
  function maybe_modify_log_query_sql_where($where) {
28
-
29
  $include_spam = false;
30
-
31
  /**
32
  * Filter option to include spam or not in the gui
33
  * By default spam is not included, because it can fill the log
@@ -45,29 +44,29 @@ class SimpleCommentsLogger extends SimpleLogger
45
 
46
  $where .= sprintf('
47
  AND id NOT IN (
48
-
49
  SELECT id
50
- # , c1.history_id, c2.history_id
51
  FROM %1$s AS h
52
 
53
- INNER JOIN %2$s AS c1
54
- ON c1.history_id = h.id
55
- AND c1.key = "_message_key"
56
  AND c1.value IN (
57
- "comment_deleted",
58
- "pingback_deleted",
59
  "trackback_deleted",
60
- "anon_comment_added",
61
- "anon_pingback_added",
62
  "anon_trackback_added"
63
  )
64
 
65
- INNER JOIN %2$s AS c2
66
- ON c2.history_id = h.id
67
- AND c2.key = "comment_approved"
68
  AND c2.value = "spam"
69
 
70
- WHERE logger = "%3$s"
71
 
72
  )
73
  ', $this->db_table, $this->db_table_contexts, $this->slug);
@@ -80,12 +79,12 @@ class SimpleCommentsLogger extends SimpleLogger
80
 
81
  /**
82
  * Get array with information about this logger
83
- *
84
  * @return array
85
  */
86
  function getInfo() {
87
 
88
- $arr_info = array(
89
  "name" => "Comments Logger",
90
  "description" => "Logs comments, and modifications to them",
91
  "capability" => "moderate_comments",
@@ -99,49 +98,49 @@ class SimpleCommentsLogger extends SimpleLogger
99
  ),
100
 
101
  'user_comment_added' => _x(
102
- 'Added a comment to {comment_post_type} "{comment_post_title}"',
103
  'A comment was added to the database by a logged in user',
104
  'simple-history'
105
  ),
106
 
107
  'comment_status_approve' => _x(
108
- 'Approved a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
109
  'A comment was approved',
110
  'simple-history'
111
  ),
112
 
113
  'comment_status_hold' => _x(
114
- 'Unapproved a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
115
  'A comment was was unapproved',
116
  'simple-history'
117
  ),
118
 
119
  'comment_status_spam' => _x(
120
- 'Marked a comment to post "{comment_post_title}" as spam',
121
  'A comment was marked as spam',
122
  'simple-history'
123
  ),
124
 
125
  'comment_status_trash' => _x(
126
- 'Trashed a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
127
  'A comment was marked moved to the trash',
128
  'simple-history'
129
  ),
130
 
131
  'comment_untrashed' => _x(
132
- 'Restored a comment to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
133
  'A comment was restored from the trash',
134
  'simple-history'
135
  ),
136
 
137
  'comment_deleted' => _x(
138
- 'Deleted a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
139
  'A comment was deleted',
140
  'simple-history'
141
  ),
142
 
143
  'comment_edited' => _x(
144
- 'Edited a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
145
  'A comment was edited',
146
  'simple-history'
147
  ),
@@ -154,49 +153,49 @@ class SimpleCommentsLogger extends SimpleLogger
154
  ),
155
 
156
  'user_trackback_added' => _x(
157
- 'Added a trackback to {comment_post_type} "{comment_post_title}"',
158
  'A trackback was added to the database by a logged in user',
159
  'simple-history'
160
  ),
161
 
162
  'trackback_status_approve' => _x(
163
- 'Approved a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
164
  'A trackback was approved',
165
  'simple-history'
166
  ),
167
 
168
  'trackback_status_hold' => _x(
169
- 'Unapproved a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
170
  'A trackback was was unapproved',
171
  'simple-history'
172
  ),
173
 
174
  'trackback_status_spam' => _x(
175
- 'Marked a trackback to post "{comment_post_title}" as spam',
176
  'A trackback was marked as spam',
177
  'simple-history'
178
  ),
179
 
180
  'trackback_status_trash' => _x(
181
- 'Trashed a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
182
  'A trackback was marked moved to the trash',
183
  'simple-history'
184
  ),
185
 
186
  'trackback_untrashed' => _x(
187
- 'Restored a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
188
  'A trackback was restored from the trash',
189
  'simple-history'
190
  ),
191
 
192
  'trackback_deleted' => _x(
193
- 'Deleted a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
194
  'A trackback was deleted',
195
  'simple-history'
196
  ),
197
 
198
  'trackback_edited' => _x(
199
- 'Edited a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
200
  'A trackback was edited',
201
  'simple-history'
202
  ),
@@ -209,49 +208,49 @@ class SimpleCommentsLogger extends SimpleLogger
209
  ),
210
 
211
  'user_pingback_added' => _x(
212
- 'Added a pingback to {comment_post_type} "{comment_post_title}"',
213
  'A pingback was added to the database by a logged in user',
214
  'simple-history'
215
  ),
216
 
217
  'pingback_status_approve' => _x(
218
- 'Approved a pingback to "{comment_post_title}" by "{comment_author}"" ({comment_author_email})',
219
  'A pingback was approved',
220
  'simple-history'
221
  ),
222
 
223
  'pingback_status_hold' => _x(
224
- 'Unapproved a pingback to "{comment_post_title}" by "{comment_author}" ({comment_author_email})',
225
  'A pingback was was unapproved',
226
  'simple-history'
227
  ),
228
 
229
  'pingback_status_spam' => _x(
230
- 'Marked a pingback to post "{comment_post_title}" as spam',
231
  'A pingback was marked as spam',
232
  'simple-history'
233
  ),
234
 
235
  'pingback_status_trash' => _x(
236
- 'Trashed a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
237
  'A pingback was marked moved to the trash',
238
  'simple-history'
239
  ),
240
 
241
  'pingback_untrashed' => _x(
242
- 'Restored a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
243
  'A pingback was restored from the trash',
244
  'simple-history'
245
  ),
246
 
247
  'pingback_deleted' => _x(
248
- 'Deleted a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
249
  'A pingback was deleted',
250
  'simple-history'
251
  ),
252
 
253
  'pingback_edited' => _x(
254
- 'Edited a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
255
  'A pingback was edited',
256
  'simple-history'
257
  ),
@@ -313,7 +312,7 @@ class SimpleCommentsLogger extends SimpleLogger
313
  ) // labels
314
 
315
  );
316
-
317
  return $arr_info;
318
 
319
  }
@@ -347,12 +346,12 @@ class SimpleCommentsLogger extends SimpleLogger
347
  */
348
  add_action( "edit_comment", array( $this, 'on_edit_comment'), 10, 1 );
349
 
350
-
351
  }
352
 
353
  /**
354
  * Get comments context
355
- *
356
  * @param int $comment_ID
357
  * @return mixed array with context if comment found, false if comment not found
358
  */
@@ -384,11 +383,6 @@ class SimpleCommentsLogger extends SimpleLogger
384
  "comment_post_type" => $comment_parent_post->post_type,
385
  );
386
 
387
- // Note: comment type is empty for normal comments
388
- if (empty( $context["comment_type"] ) ) {
389
- $context["comment_type"] = "comment";
390
- }
391
-
392
  return $context;
393
 
394
  }
@@ -403,7 +397,7 @@ class SimpleCommentsLogger extends SimpleLogger
403
  $this->infoMessage(
404
  "{$context["comment_type"]}_edited",
405
  $context
406
- );
407
 
408
  }
409
 
@@ -427,7 +421,7 @@ class SimpleCommentsLogger extends SimpleLogger
427
  $this->infoMessage(
428
  "{$context["comment_type"]}_deleted",
429
  $context
430
- );
431
 
432
  }
433
 
@@ -441,7 +435,7 @@ class SimpleCommentsLogger extends SimpleLogger
441
  $this->infoMessage(
442
  "{$context["comment_type"]}_untrashed",
443
  $context
444
- );
445
 
446
  }
447
 
@@ -452,7 +446,7 @@ class SimpleCommentsLogger extends SimpleLogger
452
  * @param string|bool $comment_status The comment status. Possible values include 'hold',
453
  * 'approve', 'spam', 'trash', or false.
454
  * do_action( 'wp_set_comment_status', $comment_id, $comment_status );
455
- */
456
  public function on_wp_set_comment_status($comment_ID, $comment_status) {
457
 
458
  $context = $this->get_context_for_comment($comment_ID);
@@ -487,7 +481,7 @@ class SimpleCommentsLogger extends SimpleLogger
487
  public function on_comment_post($comment_ID, $comment_approved) {
488
 
489
  $context = $this->get_context_for_comment($comment_ID);
490
-
491
  if ( ! $context ) {
492
  return;
493
  }
@@ -495,14 +489,14 @@ class SimpleCommentsLogger extends SimpleLogger
495
  $comment_data = get_comment( $comment_ID );
496
 
497
  $message = "";
498
-
499
  if ( $comment_data->user_id ) {
500
-
501
  // comment was from a logged in user
502
  $message = "user_{$context["comment_type"]}_added";
503
 
504
  } else {
505
-
506
  // comment was from a non-logged in user
507
  $message = "anon_{$context["comment_type"]}_added";
508
  $context["_initiator"] = SimpleLoggerLogInitiators::WEB_USER;
@@ -515,6 +509,16 @@ class SimpleCommentsLogger extends SimpleLogger
515
 
516
  }
517
 
 
 
 
 
 
 
 
 
 
 
518
  $this->infoMessage(
519
  $message,
520
  $context
@@ -528,17 +532,11 @@ class SimpleCommentsLogger extends SimpleLogger
528
  * and link to comment
529
  */
530
  public function getLogRowPlainTextOutput($row) {
531
-
532
  $message = $row->message;
533
  $context = $row->context;
534
  $message_key = $context["_message_key"];
535
 
536
- // Message is untranslated here, so get translated text
537
- // Can't call parent __FUNCTION__ because it will interpolate too, which we don't want
538
- if ( ! empty( $message_key ) ) {
539
- $message = $this->messages[ $message_key ]["translated_text"];
540
- }
541
-
542
  // Wrap links around {comment_post_title}
543
  $comment_post_ID = isset( $context["comment_post_ID"] ) ? (int) $context["comment_post_ID"] : null;
544
  if ( $comment_post_ID && $comment_post = get_post( $comment_post_ID ) ) {
@@ -546,7 +544,7 @@ class SimpleCommentsLogger extends SimpleLogger
546
  $edit_post_link = get_edit_post_link( $comment_post_ID );
547
 
548
  if ( $edit_post_link ) {
549
-
550
  $message = str_replace(
551
  '"{comment_post_title}"',
552
  "<a href='{$edit_post_link}'>\"{comment_post_title}\"</a>",
@@ -554,10 +552,9 @@ class SimpleCommentsLogger extends SimpleLogger
554
  );
555
 
556
  }
557
-
558
  }
559
 
560
-
561
  return $this->interpolate($message, $context);
562
 
563
  }
@@ -571,8 +568,8 @@ class SimpleCommentsLogger extends SimpleLogger
571
  $context = $row->context;
572
  $message_key = $context["_message_key"];
573
  $output = "";
574
- #print_r($row);exit;
575
- /*
576
  if ( 'spam' !== $commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching
577
  if ( '0' == $commentdata['comment_approved'] ) { // comment not spam, but not auto-approved
578
  wp_notify_moderator( $comment_ID );
@@ -589,7 +586,7 @@ class SimpleCommentsLogger extends SimpleLogger
589
  $comment_text = wp_trim_words( $comment_text, 20 );
590
  $comment_text = wpautop( $comment_text );
591
  }
592
-
593
  // Keys to show
594
  $arr_plugin_keys = array();
595
  $comment_type = isset( $context["comment_type"] ) ? $context["comment_type"] : "";
@@ -624,7 +621,7 @@ class SimpleCommentsLogger extends SimpleLogger
624
 
625
  case "comment";
626
  default;
627
-
628
  $arr_plugin_keys = array(
629
  "comment_status" => _x("Status", "comments logger - detailed output comment status", "simple-history"),
630
  #"comment_type" => _x("Comment type", "comments logger - detailed output comment type", "simple-history"),
@@ -646,7 +643,7 @@ class SimpleCommentsLogger extends SimpleLogger
646
  $output .= "<table class='SimpleHistoryLogitem__keyValueTable'>";
647
 
648
  foreach ( $arr_plugin_keys as $key => $desc ) {
649
-
650
  switch ( $key ) {
651
 
652
  case "comment_content":
@@ -658,18 +655,18 @@ class SimpleCommentsLogger extends SimpleLogger
658
  case "comment_author":
659
  case "trackback_author":
660
  case "pingback_author":
661
-
662
  $desc_output = "";
663
 
664
  $desc_output .= esc_html( $context[ $key ] );
665
 
666
  /*
667
  if ( isset( $context["comment_author_email"] ) ) {
668
-
669
  $gravatar_email = $context["comment_author_email"];
670
  $avatar = $this->simpleHistory->get_avatar( $gravatar_email, 14, "blank" );
671
  $desc_output .= "<span class='SimpleCommentsLogger__gravatar'>{$avatar}</span>";
672
-
673
  }
674
  */
675
 
@@ -738,17 +735,17 @@ class SimpleCommentsLogger extends SimpleLogger
738
 
739
  // Add link to edit comment
740
  $comment_ID = isset( $context["comment_ID"] ) && is_numeric( $context["comment_ID"] ) ? (int) $context["comment_ID"] : false;
741
-
742
  if ( $comment_ID ) {
743
-
744
  // http://site.local/wp/wp-admin/comment.php?action=editcomment&c=
745
  $edit_comment_link = get_edit_comment_link( $comment_ID );
746
-
747
  // Edit link sometimes does not contain comment ID
748
  // Probably because comment has been removed or something
749
  // So only continue if link does not end with "=""
750
  if ( $edit_comment_link && $edit_comment_link[strlen($edit_comment_link)-1] !== "=" ) {
751
-
752
  $output .= sprintf(
753
  '
754
  <tr>
15
  // Add option to not show spam comments, because to much things getting logged
16
  #add_filter("simple_history/log_query_sql_where", array($this, "maybe_modify_log_query_sql_where"));
17
  add_filter("simple_history/log_query_inner_where", array($this, "maybe_modify_log_query_sql_where"));
 
18
 
19
  }
20
 
24
  * @param string $where sql query where
25
  */
26
  function maybe_modify_log_query_sql_where($where) {
27
+
28
  $include_spam = false;
29
+
30
  /**
31
  * Filter option to include spam or not in the gui
32
  * By default spam is not included, because it can fill the log
44
 
45
  $where .= sprintf('
46
  AND id NOT IN (
47
+
48
  SELECT id
49
+ # , c1.history_id, c2.history_id
50
  FROM %1$s AS h
51
 
52
+ INNER JOIN %2$s AS c1
53
+ ON c1.history_id = h.id
54
+ AND c1.key = "_message_key"
55
  AND c1.value IN (
56
+ "comment_deleted",
57
+ "pingback_deleted",
58
  "trackback_deleted",
59
+ "anon_comment_added",
60
+ "anon_pingback_added",
61
  "anon_trackback_added"
62
  )
63
 
64
+ INNER JOIN %2$s AS c2
65
+ ON c2.history_id = h.id
66
+ AND c2.key = "comment_approved"
67
  AND c2.value = "spam"
68
 
69
+ WHERE logger = "%3$s"
70
 
71
  )
72
  ', $this->db_table, $this->db_table_contexts, $this->slug);
79
 
80
  /**
81
  * Get array with information about this logger
82
+ *
83
  * @return array
84
  */
85
  function getInfo() {
86
 
87
+ $arr_info = array(
88
  "name" => "Comments Logger",
89
  "description" => "Logs comments, and modifications to them",
90
  "capability" => "moderate_comments",
98
  ),
99
 
100
  'user_comment_added' => _x(
101
+ 'Added a comment to {comment_post_type} "{comment_post_title}"',
102
  'A comment was added to the database by a logged in user',
103
  'simple-history'
104
  ),
105
 
106
  'comment_status_approve' => _x(
107
+ 'Approved a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
108
  'A comment was approved',
109
  'simple-history'
110
  ),
111
 
112
  'comment_status_hold' => _x(
113
+ 'Unapproved a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
114
  'A comment was was unapproved',
115
  'simple-history'
116
  ),
117
 
118
  'comment_status_spam' => _x(
119
+ 'Marked a comment to post "{comment_post_title}" as spam',
120
  'A comment was marked as spam',
121
  'simple-history'
122
  ),
123
 
124
  'comment_status_trash' => _x(
125
+ 'Trashed a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
126
  'A comment was marked moved to the trash',
127
  'simple-history'
128
  ),
129
 
130
  'comment_untrashed' => _x(
131
+ 'Restored a comment to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
132
  'A comment was restored from the trash',
133
  'simple-history'
134
  ),
135
 
136
  'comment_deleted' => _x(
137
+ 'Deleted a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
138
  'A comment was deleted',
139
  'simple-history'
140
  ),
141
 
142
  'comment_edited' => _x(
143
+ 'Edited a comment to "{comment_post_title}" by {comment_author} ({comment_author_email})',
144
  'A comment was edited',
145
  'simple-history'
146
  ),
153
  ),
154
 
155
  'user_trackback_added' => _x(
156
+ 'Added a trackback to {comment_post_type} "{comment_post_title}"',
157
  'A trackback was added to the database by a logged in user',
158
  'simple-history'
159
  ),
160
 
161
  'trackback_status_approve' => _x(
162
+ 'Approved a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
163
  'A trackback was approved',
164
  'simple-history'
165
  ),
166
 
167
  'trackback_status_hold' => _x(
168
+ 'Unapproved a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
169
  'A trackback was was unapproved',
170
  'simple-history'
171
  ),
172
 
173
  'trackback_status_spam' => _x(
174
+ 'Marked a trackback to post "{comment_post_title}" as spam',
175
  'A trackback was marked as spam',
176
  'simple-history'
177
  ),
178
 
179
  'trackback_status_trash' => _x(
180
+ 'Trashed a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
181
  'A trackback was marked moved to the trash',
182
  'simple-history'
183
  ),
184
 
185
  'trackback_untrashed' => _x(
186
+ 'Restored a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
187
  'A trackback was restored from the trash',
188
  'simple-history'
189
  ),
190
 
191
  'trackback_deleted' => _x(
192
+ 'Deleted a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
193
  'A trackback was deleted',
194
  'simple-history'
195
  ),
196
 
197
  'trackback_edited' => _x(
198
+ 'Edited a trackback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
199
  'A trackback was edited',
200
  'simple-history'
201
  ),
208
  ),
209
 
210
  'user_pingback_added' => _x(
211
+ 'Added a pingback to {comment_post_type} "{comment_post_title}"',
212
  'A pingback was added to the database by a logged in user',
213
  'simple-history'
214
  ),
215
 
216
  'pingback_status_approve' => _x(
217
+ 'Approved a pingback to "{comment_post_title}" by "{comment_author}"" ({comment_author_email})',
218
  'A pingback was approved',
219
  'simple-history'
220
  ),
221
 
222
  'pingback_status_hold' => _x(
223
+ 'Unapproved a pingback to "{comment_post_title}" by "{comment_author}" ({comment_author_email})',
224
  'A pingback was was unapproved',
225
  'simple-history'
226
  ),
227
 
228
  'pingback_status_spam' => _x(
229
+ 'Marked a pingback to post "{comment_post_title}" as spam',
230
  'A pingback was marked as spam',
231
  'simple-history'
232
  ),
233
 
234
  'pingback_status_trash' => _x(
235
+ 'Trashed a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
236
  'A pingback was marked moved to the trash',
237
  'simple-history'
238
  ),
239
 
240
  'pingback_untrashed' => _x(
241
+ 'Restored a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email}) from the trash',
242
  'A pingback was restored from the trash',
243
  'simple-history'
244
  ),
245
 
246
  'pingback_deleted' => _x(
247
+ 'Deleted a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
248
  'A pingback was deleted',
249
  'simple-history'
250
  ),
251
 
252
  'pingback_edited' => _x(
253
+ 'Edited a pingback to "{comment_post_title}" by {comment_author} ({comment_author_email})',
254
  'A pingback was edited',
255
  'simple-history'
256
  ),
312
  ) // labels
313
 
314
  );
315
+
316
  return $arr_info;
317
 
318
  }
346
  */
347
  add_action( "edit_comment", array( $this, 'on_edit_comment'), 10, 1 );
348
 
349
+
350
  }
351
 
352
  /**
353
  * Get comments context
354
+ *
355
  * @param int $comment_ID
356
  * @return mixed array with context if comment found, false if comment not found
357
  */
383
  "comment_post_type" => $comment_parent_post->post_type,
384
  );
385
 
 
 
 
 
 
386
  return $context;
387
 
388
  }
397
  $this->infoMessage(
398
  "{$context["comment_type"]}_edited",
399
  $context
400
+ );
401
 
402
  }
403
 
421
  $this->infoMessage(
422
  "{$context["comment_type"]}_deleted",
423
  $context
424
+ );
425
 
426
  }
427
 
435
  $this->infoMessage(
436
  "{$context["comment_type"]}_untrashed",
437
  $context
438
+ );
439
 
440
  }
441
 
446
  * @param string|bool $comment_status The comment status. Possible values include 'hold',
447
  * 'approve', 'spam', 'trash', or false.
448
  * do_action( 'wp_set_comment_status', $comment_id, $comment_status );
449
+ */
450
  public function on_wp_set_comment_status($comment_ID, $comment_status) {
451
 
452
  $context = $this->get_context_for_comment($comment_ID);
481
  public function on_comment_post($comment_ID, $comment_approved) {
482
 
483
  $context = $this->get_context_for_comment($comment_ID);
484
+
485
  if ( ! $context ) {
486
  return;
487
  }
489
  $comment_data = get_comment( $comment_ID );
490
 
491
  $message = "";
492
+
493
  if ( $comment_data->user_id ) {
494
+
495
  // comment was from a logged in user
496
  $message = "user_{$context["comment_type"]}_added";
497
 
498
  } else {
499
+
500
  // comment was from a non-logged in user
501
  $message = "anon_{$context["comment_type"]}_added";
502
  $context["_initiator"] = SimpleLoggerLogInitiators::WEB_USER;
509
 
510
  }
511
 
512
+ // @TODO: group comments by comment_type comment | trackback | pingback
513
+ // OR: different messages for different comment types?
514
+ /*
515
+ if ( isset( $comment_data["comment_type"] ) ) {
516
+
517
+ $comment_type = $comment_data["comment_type"];
518
+
519
+ }
520
+ */
521
+
522
  $this->infoMessage(
523
  $message,
524
  $context
532
  * and link to comment
533
  */
534
  public function getLogRowPlainTextOutput($row) {
535
+
536
  $message = $row->message;
537
  $context = $row->context;
538
  $message_key = $context["_message_key"];
539
 
 
 
 
 
 
 
540
  // Wrap links around {comment_post_title}
541
  $comment_post_ID = isset( $context["comment_post_ID"] ) ? (int) $context["comment_post_ID"] : null;
542
  if ( $comment_post_ID && $comment_post = get_post( $comment_post_ID ) ) {
544
  $edit_post_link = get_edit_post_link( $comment_post_ID );
545
 
546
  if ( $edit_post_link ) {
547
+
548
  $message = str_replace(
549
  '"{comment_post_title}"',
550
  "<a href='{$edit_post_link}'>\"{comment_post_title}\"</a>",
552
  );
553
 
554
  }
555
+
556
  }
557
 
 
558
  return $this->interpolate($message, $context);
559
 
560
  }
568
  $context = $row->context;
569
  $message_key = $context["_message_key"];
570
  $output = "";
571
+
572
+ /*
573
  if ( 'spam' !== $commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching
574
  if ( '0' == $commentdata['comment_approved'] ) { // comment not spam, but not auto-approved
575
  wp_notify_moderator( $comment_ID );
586
  $comment_text = wp_trim_words( $comment_text, 20 );
587
  $comment_text = wpautop( $comment_text );
588
  }
589
+
590
  // Keys to show
591
  $arr_plugin_keys = array();
592
  $comment_type = isset( $context["comment_type"] ) ? $context["comment_type"] : "";
621
 
622
  case "comment";
623
  default;
624
+
625
  $arr_plugin_keys = array(
626
  "comment_status" => _x("Status", "comments logger - detailed output comment status", "simple-history"),
627
  #"comment_type" => _x("Comment type", "comments logger - detailed output comment type", "simple-history"),
643
  $output .= "<table class='SimpleHistoryLogitem__keyValueTable'>";
644
 
645
  foreach ( $arr_plugin_keys as $key => $desc ) {
646
+
647
  switch ( $key ) {
648
 
649
  case "comment_content":
655
  case "comment_author":
656
  case "trackback_author":
657
  case "pingback_author":
658
+
659
  $desc_output = "";
660
 
661
  $desc_output .= esc_html( $context[ $key ] );
662
 
663
  /*
664
  if ( isset( $context["comment_author_email"] ) ) {
665
+
666
  $gravatar_email = $context["comment_author_email"];
667
  $avatar = $this->simpleHistory->get_avatar( $gravatar_email, 14, "blank" );
668
  $desc_output .= "<span class='SimpleCommentsLogger__gravatar'>{$avatar}</span>";
669
+
670
  }
671
  */
672
 
735
 
736
  // Add link to edit comment
737
  $comment_ID = isset( $context["comment_ID"] ) && is_numeric( $context["comment_ID"] ) ? (int) $context["comment_ID"] : false;
738
+
739
  if ( $comment_ID ) {
740
+
741
  // http://site.local/wp/wp-admin/comment.php?action=editcomment&c=
742
  $edit_comment_link = get_edit_comment_link( $comment_ID );
743
+
744
  // Edit link sometimes does not contain comment ID
745
  // Probably because comment has been removed or something
746
  // So only continue if link does not end with "=""
747
  if ( $edit_comment_link && $edit_comment_link[strlen($edit_comment_link)-1] !== "=" ) {
748
+
749
  $output .= sprintf(
750
  '
751
  <tr>
loggers/SimpleCoreUpdatesLogger.php CHANGED
@@ -27,7 +27,7 @@ class SimpleCoreUpdatesLogger extends SimpleLogger
27
  "capability" => "update_core",
28
  "messages" => array(
29
  'core_updated' => __('Updated WordPress from {prev_version} to {new_version}', 'simple-history'),
30
- 'core_auto_updated' => __('WordPress auto-updated to {new_version} from {prev_version}', 'simple-history')
31
  ),
32
  "labels" => array(
33
  "search" => array(
27
  "capability" => "update_core",
28
  "messages" => array(
29
  'core_updated' => __('Updated WordPress from {prev_version} to {new_version}', 'simple-history'),
30
+ 'core_auto_updated' => __('WordPress auto-updated from {prev_version} to {new_version}', 'simple-history')
31
  ),
32
  "labels" => array(
33
  "search" => array(
loggers/SimpleLogger.php CHANGED
@@ -8,7 +8,8 @@
8
  *
9
  * @link https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md PSR-3 specification
10
  */
11
- class SimpleLogger {
 
12
 
13
  /**
14
  * Unique slug for this logger
@@ -45,10 +46,10 @@ class SimpleLogger {
45
  public function __construct($simpleHistory) {
46
 
47
  global $wpdb;
48
-
49
  $this->db_table = $wpdb->prefix . SimpleHistory::DBTABLE;
50
  $this->db_table_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
51
-
52
  $this->simpleHistory = $simpleHistory;
53
 
54
  }
@@ -63,13 +64,13 @@ class SimpleLogger {
63
 
64
  /**
65
  * Get array with information about this logger
66
- *
67
  * @return array
68
  */
69
  function getInfo() {
70
 
71
  $arr_info = array(
72
-
73
  // The logger slug. Defaulting to the class name is nice and logical I think
74
  "slug" => __CLASS__,
75
 
@@ -77,13 +78,13 @@ class SimpleLogger {
77
  // an admin what your logger is used for
78
  "name" => "SimpleLogger",
79
  "description" => "The built in logger for Simple History",
80
-
81
  // Capability required to view log entries from this logger
82
  "capability" => "edit_pages",
83
  "messages" => array(
84
  // No pre-defined variants
85
  // when adding messages __() or _x() must be used
86
- ),
87
 
88
  );
89
 
@@ -105,11 +106,12 @@ class SimpleLogger {
105
  }
106
 
107
  /**
108
- * Interpolates context values into the message placeholders.
109
- */
110
- function interpolate($message, $context = array()) {
 
111
 
112
- if (!is_array($context)) {
113
  return $message;
114
  }
115
 
@@ -131,84 +133,80 @@ class SimpleLogger {
131
  * @return string HTML
132
  */
133
  function getLogRowHeaderOutput($row) {
134
-
135
  // HTML for initiator
136
  $initiator_html = "";
137
-
138
  $initiator = $row->initiator;
139
  $context = $row->context;
140
 
141
- switch ($initiator) {
142
 
143
  case "wp":
144
  $initiator_html .= '<strong class="SimpleHistoryLogitem__inlineDivided">WordPress</strong> ';
145
  break;
146
 
147
- case "wp_cli":
148
- $initiator_html .= '<strong class="SimpleHistoryLogitem__inlineDivided">WP-CLI</strong> ';
149
- break;
150
-
151
  // wp_user = wordpress uses, but user may have been deleted since log entry was added
152
  case "wp_user":
153
 
154
- $user_id = isset($row->context["_user_id"]) ? $row->context["_user_id"] : null;
155
 
156
- if ($user_id > 0 && $user = get_user_by("id", $user_id)) {
157
 
158
  // Sender is user and user still exists
159
- $is_current_user = ($user_id == get_current_user_id()) ? true : false;
160
 
161
  // get user role, as done in user-edit.php
162
- $user_roles = array_intersect(array_values($user->roles), array_keys(get_editable_roles()));
163
- $user_role = array_shift($user_roles);
164
  $user_display_name = $user->display_name;
165
 
166
  $tmpl_initiator_html = '
167
  <strong class="SimpleHistoryLogitem__inlineDivided">%3$s</strong>
168
  <span class="SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__headerEmail">%2$s</span>
169
- ' ;
170
 
171
  // If user who logged this is the currently logged in user
172
  // we replace name and email with just "You"
173
  if ($is_current_user) {
174
  $tmpl_initiator_html = '
175
  <strong class="SimpleHistoryLogitem__inlineDivided">%5$s</strong>
176
- ' ;
177
  }
178
 
179
  /**
180
- * Filter the format for the user output
181
- *
182
- * @since 2.0
183
- *
184
- * @param string $format.
185
- */
186
- $tmpl_initiator_html = apply_filters("simple_history/header_initiator_html_existing_user", $tmpl_initiator_html);
187
 
188
  $initiator_html .= sprintf(
189
  $tmpl_initiator_html,
190
- esc_html($user->user_login), // 1
191
- esc_html($user->user_email), // 2
192
- esc_html($user_display_name), // 3
193
- $user_role, // 4
194
- _x("You", "header output when initiator is the currently logged in user", "simple-history") // 5
195
  );
196
 
197
  } else if ($user_id > 0) {
198
-
199
  // Sender was a user, but user is deleted now
200
  // output all info we have
201
  // _user_id
202
  // _username
203
  // _user_login
204
  // _user_email
205
- $initiator_html .= sprintf(
206
- '<strong class="SimpleHistoryLogitem__inlineDivided">' .
207
- __('Deleted user (had id %1$s, email %2$s, login %3$s)', "simple-history") .
208
- '</strong>',
209
- esc_html($context["_user_id"]),
210
- esc_html($context["_user_email"]),
211
- esc_html($context["_user_login"])
212
  );
213
 
214
  }
@@ -217,19 +215,19 @@ class SimpleLogger {
217
 
218
  case "web_user":
219
 
220
- if (empty($context["_server_remote_addr"])) {
221
 
222
- $initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided'>" . __("Anonymous web user", "simple-history") . "</strong> ";
223
 
224
  } else {
225
 
226
- $iplookup_link = sprintf('https://ipinfo.io/%1$s', esc_attr($context["_server_remote_addr"]));
227
 
228
  $initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__anonUserWithIp'>";
229
- $initiator_html .= sprintf(
230
- __('Anonymous user from %1$s', "simple-history"),
231
- "<a target='_blank' href={$iplookup_link} class='SimpleHistoryLogitem__anonUserWithIp__theIp'>" . esc_attr($context["_server_remote_addr"]) . "</a>"
232
- );
233
  $initiator_html .= "</strong> ";
234
 
235
  // $initiator_html .= "<strong>" . __("<br><br>Unknown user from {$context["_server_remote_addr"]}") . "</strong>";
@@ -251,66 +249,67 @@ class SimpleLogger {
251
  break;
252
 
253
  default:
254
- $initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided'>" . esc_html($initiator) . "</strong>";
255
 
256
  }
257
 
258
  /**
259
- * Filter generated html for the initiator row header html
260
- *
261
- * @since 2.0
262
- *
263
- * @param string $initiator_html
264
- * @param object $row Log row
265
- */
266
  $initiator_html = apply_filters("simple_history/row_header_initiator_output", $initiator_html, $row);
267
 
 
268
  // HTML for date
269
  // Date (should...) always exist
270
  // http://developers.whatwg.org/text-level-semantics.html#the-time-element
271
  $date_html = "";
272
  $str_when = "";
273
  $date_datetime = new DateTime($row->date);
274
-
275
  /**
276
- * Filter how many seconds as most that can pass since an
277
- * event occured to show "nn minutes ago" (human diff time-format) instead of exact date
278
- *
279
- * @since 2.0
280
- *
281
- * @param int $time_ago_max_time Seconds
282
- */
283
  $time_ago_max_time = DAY_IN_SECONDS * 2;
284
  $time_ago_max_time = apply_filters("simple_history/header_time_ago_max_time", $time_ago_max_time);
285
 
286
  /**
287
- * Filter how many seconds as most that can pass since an
288
- * event occured to show "just now" instead of exact date
289
- *
290
- * @since 2.0
291
- *
292
- * @param int $time_ago_max_time Seconds
293
- */
294
  $time_ago_just_now_max_time = 30;
295
  $time_ago_just_now_max_time = apply_filters("simple_history/header_just_now_max_time", $time_ago_just_now_max_time);
296
 
297
- if (time() - $date_datetime->getTimestamp() <= $time_ago_just_now_max_time) {
298
 
299
  // show "just now" if event is very recent
300
  $str_when = __("Just now", "simple-history");
301
 
302
- } else if (time() - $date_datetime->getTimestamp() > $time_ago_max_time) {
303
-
304
  /* translators: Date format for log row header, see http://php.net/date */
305
- $datef = __('M j, Y \a\t G:i', "simple-history");
306
- $str_when = date_i18n($datef, $date_datetime->getTimestamp());
307
 
308
  } else {
309
-
310
  // Show "nn minutes ago" when event is xx seconds ago or earlier
311
- $date_human_time_diff = human_time_diff($date_datetime->getTimestamp(), time());
312
  /* translators: 1: last modified date and time in human time diff-format */
313
- $str_when = sprintf(__('%1$s ago', 'simple-history'), $date_human_time_diff);
314
 
315
  }
316
 
@@ -331,10 +330,10 @@ class SimpleLogger {
331
  // SimpleHistoryLogitem--loglevel-warning
332
  /*
333
  $level_html = sprintf(
334
- '<span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%1$s</span>',
335
- $row->level
336
  );
337
- */
338
 
339
  // Glue together final result
340
  $template = '%1$s%2$s';
@@ -350,13 +349,13 @@ class SimpleLogger {
350
  );
351
 
352
  /**
353
- * Filter generated html for the log row header
354
- *
355
- * @since 2.0
356
- *
357
- * @param string $html
358
- * @param object $row Log row
359
- */
360
  $html = apply_filters("simple_history/row_header_output", $html, $row);
361
 
362
  return $html;
@@ -380,41 +379,38 @@ class SimpleLogger {
380
  * Jessie James: Edited post "About the company"
381
  */
382
  public function getLogRowPlainTextOutput($row) {
383
-
384
  $message = $row->message;
385
  $message_key = $row->context["_message_key"];
386
 
387
  // Message is translated here, but translation must be added in
388
  // plain text before
389
 
390
- if (empty( $message_key )) {
391
 
392
- // Message key did not exist, so check if we should translate using textdomain
393
- if ( ! empty( $row->context["_gettext_domain"] ) ) {
394
- $message = __( $message, $row->context["_gettext_domain"] );
395
- }
396
 
397
  } else {
398
 
399
- $message = $this->messages[$message_key]["translated_text"];
400
-
401
  }
 
 
402
 
403
- $html = $this->interpolate($message, $row->context);
404
-
405
- // All messages are escaped by default.
406
  // If you need unescaped output override this method
407
  // in your own logger
408
  $html = esc_html($html);
409
 
410
  /**
411
- * Filter generated output for plain text output
412
- *
413
- * @since 2.0
414
- *
415
- * @param string $html
416
- * @param object $row Log row
417
- */
418
  $html = apply_filters("simple_history/row_plain_text_output", $html, $row);
419
 
420
  return $html;
@@ -433,40 +429,40 @@ class SimpleLogger {
433
 
434
  $initiator = $row->initiator;
435
 
436
- switch ($initiator) {
437
 
438
  // wp_user = wordpress uses, but user may have been deleted since log entry was added
439
  case "wp_user":
440
 
441
  $user_id = isset($row->context["_user_id"]) ? $row->context["_user_id"] : null;
442
 
443
- if ($user_id > 0 && $user = get_user_by("id", $user_id)) {
444
 
445
  // Sender was user
446
- $sender_image_html = $this->simpleHistory->get_avatar($user->user_email, $sender_image_size);
447
 
448
  } else if ($user_id > 0) {
449
-
450
  // Sender was a user, but user is deleted now
451
- $sender_image_html = $this->simpleHistory->get_avatar("", $sender_image_size);
452
 
453
  } else {
454
 
455
- $sender_image_html = $this->simpleHistory->get_avatar("", $sender_image_size);
456
 
457
- }
458
 
459
  break;
460
 
461
  }
462
  /**
463
- * Filter generated output for row image (sender image)
464
- *
465
- * @since 2.0
466
- *
467
- * @param string $sender_image_html
468
- * @param object $row Log row
469
- */
470
  $sender_image_html = apply_filters("simple_history/row_sender_image_output", $sender_image_html, $row);
471
 
472
  return $sender_image_html;
@@ -478,7 +474,7 @@ class SimpleLogger {
478
  * Example usage is if a user has uploaded an image then a
479
  * thumbnail of that image can bo outputed here
480
  *
481
- * @param object $row
482
  * @return string HTML-formatted output
483
  */
484
  public function getLogRowDetailsOutput($row) {
@@ -486,19 +482,20 @@ class SimpleLogger {
486
  $html = "";
487
 
488
  /**
489
- * Filter generated output for details
490
- *
491
- * @since 2.0
492
- *
493
- * @param string $html
494
- * @param object $row Log row
495
- */
496
  $html = apply_filters("simple_history/row_details_output", $html, $row);
497
 
498
  return $html;
499
 
500
  }
501
 
 
502
  /**
503
  * System is unusable.
504
  *
@@ -506,12 +503,13 @@ class SimpleLogger {
506
  * @param array $context
507
  * @return null
508
  */
509
- public static function emergency($message, array $context = array()) {
 
510
 
511
  return $this->log(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
512
 
513
  }
514
-
515
  /**
516
  * System is unusable.
517
  *
@@ -519,50 +517,18 @@ class SimpleLogger {
519
  * @param array $context
520
  * @return null
521
  */
522
- public function emergencyMessage($message, array $context = array()) {
523
-
524
- return $this->logByMessageKey(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
525
-
526
- }
527
 
528
- /**
529
- * Log with message
530
- * Called from infoMessage(), errorMessage(), and so on
531
- *
532
- * Call like this:
533
- *
534
- * return $this->logByMessageKey(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
535
- */
536
- private function logByMessageKey($SimpleLoggerLogLevelsLevel, $messageKey, $context) {
537
-
538
- // When logging by message then the key must exist
539
- if ( ! isset( $this->messages[ $messageKey ]["untranslated_text"] ) ) {
540
- return;
541
- }
542
-
543
- /**
544
- * Filter so plugins etc. can shortut logging
545
- *
546
- * @since 2.0.20
547
- *
548
- * @param true yes, we default to do the logging
549
- * @param string logger slug
550
- * @param string messageKey
551
- * @param string log level
552
- * @param array context
553
- * @return bool false to abort logging
554
- */
555
- $doLog = apply_filters("simple_history/simple_logger/log_message_key", true, $this->slug, $messageKey, $SimpleLoggerLogLevelsLevel, $context);
556
-
557
- if ( ! $doLog ) {
558
  return;
559
  }
560
 
561
- $context["_message_key"] = $messageKey;
562
- $message = $this->messages[ $messageKey ]["untranslated_text"];
563
-
564
- $this->log( $SimpleLoggerLogLevelsLevel, $message, $context );
565
 
 
 
566
  }
567
 
568
 
@@ -573,9 +539,10 @@ class SimpleLogger {
573
  * @param array $context
574
  * @return null
575
  */
576
- public static function alert($message, array $context = array()) {
 
577
  return $this->log(SimpleLoggerLogLevels::ALERT, $message, $context);
578
-
579
  }
580
 
581
  /**
@@ -585,12 +552,21 @@ class SimpleLogger {
585
  * @param array $context
586
  * @return null
587
  */
588
- public function alertMessage($message, array $context = array()) {
 
589
 
590
- return $this->logByMessageKey(SimpleLoggerLogLevels::ALERT, $message, $context);
 
 
591
 
 
 
 
 
 
592
  }
593
 
 
594
  /**
595
  * Critical conditions.
596
  *
@@ -600,7 +576,8 @@ class SimpleLogger {
600
  * @param array $context
601
  * @return null
602
  */
603
- public static function critical($message, array $context = array()) {
 
604
 
605
  return $this->log(SimpleLoggerLogLevels::CRITICAL, $message, $context);
606
 
@@ -613,19 +590,21 @@ class SimpleLogger {
613
  * @param array $context
614
  * @return null
615
  */
616
- public function criticalMessage($message, array $context = array()) {
 
617
 
618
- if (!isset($this->messages[$message]["untranslated_text"])) {
619
  return;
620
  }
621
 
622
  $context["_message_key"] = $message;
623
- $message = $this->messages[$message]["untranslated_text"];
624
 
625
  $this->log(SimpleLoggerLogLevels::CRITICAL, $message, $context);
626
-
627
  }
628
 
 
629
  /**
630
  * Runtime errors that do not require immediate action but should typically
631
  * be logged and monitored.
@@ -634,10 +613,11 @@ class SimpleLogger {
634
  * @param array $context
635
  * @return null
636
  */
637
- public function error($message, array $context = array()) {
 
638
 
639
  return $this->log(SimpleLoggerLogLevels::ERROR, $message, $context);
640
-
641
  }
642
 
643
  /**
@@ -648,12 +628,21 @@ class SimpleLogger {
648
  * @param array $context
649
  * @return null
650
  */
651
- public function errorMessage($message, array $context = array()) {
 
 
 
 
 
652
 
653
- return $this->logByMessageKey(SimpleLoggerLogLevels::ERROR, $message, $context);
 
654
 
 
 
655
  }
656
 
 
657
  /**
658
  * Exceptional occurrences that are not errors.
659
  *
@@ -664,12 +653,13 @@ class SimpleLogger {
664
  * @param array $context
665
  * @return null
666
  */
667
- public function warning($message, array $context = array()) {
668
-
 
669
  return $this->log(SimpleLoggerLogLevels::WARNING, $message, $context);
670
 
671
  }
672
-
673
  /**
674
  * Exceptional occurrences that are not errors.
675
  *
@@ -677,12 +667,21 @@ class SimpleLogger {
677
  * @param array $context
678
  * @return null
679
  */
680
- public function warningMessage($message, array $context = array()) {
 
 
 
 
 
681
 
682
- return $this->logByMessageKey(SimpleLoggerLogLevels::WARNING, $message, $context);
 
683
 
 
 
684
  }
685
 
 
686
  /**
687
  * Normal but significant events.
688
  *
@@ -690,12 +689,13 @@ class SimpleLogger {
690
  * @param array $context
691
  * @return null
692
  */
693
- public function notice($message, array $context = array()) {
 
694
 
695
  return $this->log(SimpleLoggerLogLevels::NOTICE, $message, $context);
696
 
697
  }
698
-
699
  /**
700
  * Normal but significant events.
701
  *
@@ -703,12 +703,21 @@ class SimpleLogger {
703
  * @param array $context
704
  * @return null
705
  */
706
- public function noticeMessage($message, array $context = array()) {
 
 
 
 
 
707
 
708
- return $this->logByMessageKey(SimpleLoggerLogLevels::NOTICE, $message, $context);
 
709
 
 
 
710
  }
711
 
 
712
  /**
713
  * Interesting events.
714
  *
@@ -718,10 +727,11 @@ class SimpleLogger {
718
  * @param array $context
719
  * @return null
720
  */
721
- public function info($message, array $context = array()) {
 
722
 
723
  return $this->log(SimpleLoggerLogLevels::INFO, $message, $context);
724
-
725
  }
726
 
727
  /**
@@ -733,12 +743,20 @@ class SimpleLogger {
733
  * @param array $context
734
  * @return null
735
  */
736
- public function infoMessage($message, array $context = array()) {
 
737
 
738
- return $this->logByMessageKey(SimpleLoggerLogLevels::INFO, $message, $context);
 
 
739
 
740
- }
 
741
 
 
 
 
 
742
  /**
743
  * Detailed debug information.
744
  *
@@ -746,10 +764,11 @@ class SimpleLogger {
746
  * @param array $context
747
  * @return null
748
  */
749
- public function debug($message, array $context = array()) {
 
750
 
751
  return $this->log(SimpleLoggerLogLevels::DEBUG, $message, $context);
752
-
753
  }
754
 
755
  /**
@@ -759,12 +778,20 @@ class SimpleLogger {
759
  * @param array $context
760
  * @return null
761
  */
762
- public function debugMessage($message, array $context = array()) {
 
 
 
 
 
763
 
764
- return $this->logByMessageKey(SimpleLoggerLogLevels::DEBUG, $message, $context);
 
765
 
 
 
766
  }
767
-
768
  /**
769
  * Logs with an arbitrary level.
770
  *
@@ -773,45 +800,21 @@ class SimpleLogger {
773
  * @param array $context
774
  * @return null
775
  */
776
- public function log($level, $message, array $context = array()) {
777
-
 
778
  global $wpdb;
779
 
780
- // Check if $message is a translated message, and if so then fetch original
781
- $sh_latest_translations = $this->simpleHistory->gettextLatestTranslations;
782
-
783
- if ( ! empty( $sh_latest_translations ) ) {
784
-
785
- if ( isset( $sh_latest_translations[ $message ] ) ) {
786
-
787
- // Translation of this phrase was found, so use original phrase instead of translated one
788
-
789
- // Store textdomain since it's required to translate
790
- $context["_gettext_domain"] = $sh_latest_translations[$message]["domain"];
791
-
792
- // These are good to keep when debugging
793
- // $context["_gettext_org_message"] = $sh_latest_translations[$message]["text"];
794
- // $context["_gettext_translated_message"] = $sh_latest_translations[$message]["translation"];
795
-
796
- $message = $sh_latest_translations[ $message ]["text"];
797
- }
798
-
799
- }
800
-
801
  /**
802
- * Filter arguments passed to log funtion
803
- *
804
- * @since 2.0
805
- *
806
- * @param string $level
807
- * @param string $message
808
- * @param array $context
809
- * @param object SimpleLogger object
810
- */
811
- apply_filters("simple_history/log_arguments", $level, $message, $context, $this);
812
- $context = apply_filters("simple_history/log_argument/context", $context, $level, $message, $this);
813
- $level = apply_filters("simple_history/log_argument/level", $level, $context, $message, $this);
814
- $message = apply_filters("simple_history/log_argument/message", $message, $level, $context, $this);
815
 
816
  /* Store date at utc or local time?
817
  * Some info here:
@@ -819,7 +822,7 @@ class SimpleLogger {
819
  * UNIX timestamp = no timezone = UTC
820
  * anything is better than now() anyway!
821
  * WP seems to use the local time, so I will go with that too I think
822
- * GMT/UTC-time is: date_i18n($timezone_format, false, 'gmt'));
823
  * local time is: date_i18n($timezone_format));
824
  */
825
  $localtime = current_time("mysql", 1);
@@ -827,14 +830,14 @@ class SimpleLogger {
827
  $db_table = $wpdb->prefix . SimpleHistory::DBTABLE;
828
 
829
  /**
830
- * Filter db table used for simple history events
831
- *
832
- * @since 2.0
833
- *
834
- * @param string $db_table
835
- */
836
  $db_table = apply_filters("simple_history/db_table", $db_table);
837
-
838
  $data = array(
839
  "logger" => $this->slug,
840
  "level" => $level,
@@ -844,23 +847,23 @@ class SimpleLogger {
844
 
845
  // Allow date to be override
846
  // Date must be in format 'Y-m-d H:i:s'
847
- if (isset($context["_date"])) {
848
  $data["date"] = $context["_date"];
849
  unset($context["_date"]);
850
  }
851
 
852
  // Add occasions id
853
- $occasions_id = null;
854
- if (isset($context["_occasionsID"])) {
855
 
856
  // Minimize risk of similar loggers logging same messages and such and resulting in same occasions id
857
  // by always adding logger slug
858
  $occasions_data = array(
859
  "_occasionsID" => $context["_occasionsID"],
860
- "_loggerSlug" => $this->slug,
861
  );
862
- $occasions_id = md5(json_encode($occasions_data));
863
- unset($context["_occasionsID"]);
864
 
865
  } else {
866
 
@@ -871,7 +874,7 @@ class SimpleLogger {
871
  unset($occasions_data["date"]);
872
 
873
  //sf_d($occasions_data);exit;
874
- $occasions_id = md5(json_encode($occasions_data));
875
 
876
  }
877
 
@@ -880,12 +883,12 @@ class SimpleLogger {
880
  // Log event type, defaults to other if not set
881
  /*
882
  if ( isset( $context["_type"] ) ) {
883
- $data["type"] = $context["_type"];
884
- unset( $context["_type"] );
885
  } else {
886
- $data["type"] = SimpleLoggerLogTypes::OTHER;
887
  }
888
- */
889
 
890
  // Log initiator, defaults to current user if exists, or other if not user exist
891
  if ( isset( $context["_initiator"] ) ) {
@@ -893,22 +896,21 @@ class SimpleLogger {
893
  // Manually set in context
894
  $data["initiator"] = $context["_initiator"];
895
  unset( $context["_initiator"] );
896
-
897
  } else {
 
 
898
 
899
- // No initiator set, try to determine
900
-
901
- // Default to other
902
  $data["initiator"] = SimpleLoggerLogInitiators::OTHER;
903
-
904
  // Check if user is responsible.
905
  if ( function_exists("wp_get_current_user") ) {
906
 
907
  $current_user = wp_get_current_user();
908
 
909
- if ( isset( $current_user->ID ) && $current_user->ID ) {
910
 
911
- $data["initiator"] = SimpleLoggerLogInitiators::WP_USER;
912
  $context["_user_id"] = $current_user->ID;
913
  $context["_user_login"] = $current_user->user_login;
914
  $context["_user_email"] = $current_user->user_email;
@@ -922,79 +924,60 @@ class SimpleLogger {
922
 
923
  // Seems to be wp cron running and doing this
924
  $data["initiator"] = SimpleLoggerLogInitiators::WORDPRESS;
925
- $context["_wp_cron_running"] = true;
926
-
927
- }
928
-
929
- // If running as CLI and WP_CLI_PHP_USED is set then it is WP CLI that is doing it
930
- // How to log this? Is this a user, is it WordPress, or what?
931
- // I'm thinking:
932
- // - it is a user that is manually doing this, on purpose, with intent, so not auto wordpress
933
- // - it is a specific user, but we don't know who
934
- // - sounds like a special case, set initiator to wp_cli
935
- if ( isset( $_SERVER["WP_CLI_PHP_USED"] ) && "cli" == php_sapi_name() ) {
936
-
937
- $data["initiator"] = SimpleLoggerLogInitiators::WP_CLI;
938
 
939
  }
940
 
941
  }
942
 
943
- // Detect XML-RPC calls and append to context, if not already there
944
- if ( defined("XMLRPC_REQUEST") && XMLRPC_REQUEST && ! isset( $context["_xmlrpc_request"] ) ) {
945
-
946
- $context["_xmlrpc_request"] = true;
947
-
948
- }
949
-
950
  /**
951
- * Filter data to be saved to db
952
- *
953
- * @since 2.0
954
- *
955
- * @param array $data
956
- */
957
  $data = apply_filters("simple_history/log_insert_data", $data);
958
 
959
  // Insert data into db
960
  // sf_d($db_table, '$db_table');exit;
961
- $result = $wpdb->insert($db_table, $data);
962
 
963
  // Only save context if able to store row
964
- if (false === $result) {
965
 
966
  $history_inserted_id = null;
967
 
968
  } else {
969
-
970
- $history_inserted_id = $wpdb->insert_id;
971
 
972
  $db_table_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
973
 
974
  /**
975
- * Filter table name for contexts
976
- *
977
- * @since 2.0
978
- *
979
- * @param string $db_table_contexts
980
- */
981
  $db_table_contexts = apply_filters("simple_history/logger_db_table_contexts", $db_table_contexts);
982
 
983
- if (!is_array($context)) {
984
  $context = array();
985
  }
986
 
987
  // Append user id to context, if not already added
988
- if (!isset($context["_user_id"])) {
989
-
990
  // wp_get_current_user is ont available early
991
  // http://codex.wordpress.org/Function_Reference/wp_get_current_user
992
  // https://core.trac.wordpress.org/ticket/14024
993
- if (function_exists("wp_get_current_user")) {
994
 
995
  $current_user = wp_get_current_user();
996
 
997
- if (isset($current_user->ID) && $current_user->ID) {
998
  $context["_user_id"] = $current_user->ID;
999
  $context["_user_login"] = $current_user->user_login;
1000
  $context["_user_email"] = $current_user->user_email;
@@ -1003,63 +986,21 @@ class SimpleLogger {
1003
  }
1004
 
1005
  }
1006
-
1007
- // Add remote addr to context
1008
  // Good to always have
1009
- if (!isset($context["_server_remote_addr"])) {
1010
-
1011
  $context["_server_remote_addr"] = $_SERVER["REMOTE_ADDR"];
1012
-
1013
- // If web server is behind a load balancer then the ip address will always be the same
1014
- // See bug report: https://wordpress.org/support/topic/use-x-forwarded-for-http-header-when-logging-remote_addr?replies=1#post-6422981
1015
- // Note that the x-forwarded-for header can contain multiple ips
1016
- // Also note that the header can be faked
1017
- // Ref: http://stackoverflow.com/questions/753645/how-do-i-get-the-correct-ip-from-http-x-forwarded-for-if-it-contains-multiple-ip
1018
- // Ref: http://blackbe.lt/advanced-method-to-obtain-the-client-ip-in-php/
1019
-
1020
- // Check for IP in lots of headers
1021
- // Based on code found here:
1022
- // http://blackbe.lt/advanced-method-to-obtain-the-client-ip-in-php/
1023
- $ip_keys = array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED');
1024
-
1025
- foreach ($ip_keys as $key) {
1026
-
1027
- if (array_key_exists($key, $_SERVER) === true) {
1028
-
1029
- // Loop through all IPs
1030
- $ip_loop_num = 0;
1031
- foreach (explode(',', $_SERVER[$key]) as $ip) {
1032
-
1033
- // trim for safety measures
1034
- $ip = trim($ip);
1035
-
1036
- // attempt to validate IP
1037
- if ($this->validate_ip($ip)) {
1038
-
1039
- // valid, add to context, with loop index appended so we can store many IPs
1040
- $key_lower = strtolower($key);
1041
- $context["_server_{$key_lower}_{$ip_loop_num}"] = $ip;
1042
-
1043
- }
1044
-
1045
- $ip_loop_num++;
1046
-
1047
- }
1048
-
1049
- }
1050
-
1051
- }
1052
-
1053
  }
1054
 
1055
  // Append http referer
1056
  // Also good to always have!
1057
- if (!isset($context["_server_http_referer"]) && isset($_SERVER["HTTP_REFERER"])) {
1058
  $context["_server_http_referer"] = $_SERVER["HTTP_REFERER"];
1059
  }
1060
 
1061
  // Insert all context values into db
1062
- foreach ($context as $key => $value) {
1063
 
1064
  $data = array(
1065
  "history_id" => $history_inserted_id,
@@ -1067,74 +1008,59 @@ class SimpleLogger {
1067
  "value" => $value,
1068
  );
1069
 
1070
- $result = $wpdb->insert($db_table_contexts, $data);
1071
 
1072
  }
1073
 
1074
  }
1075
-
1076
  $this->lastInsertID = $history_inserted_id;
1077
 
1078
- $this->simpleHistory->get_cache_incrementor(true);
1079
-
1080
  // Return $this so we can chain methods
1081
  return $this;
1082
 
1083
  } // log
1084
 
1085
- /**
1086
- * Ensures an ip address is both a valid IP and does not fall within
1087
- * a private network range.
1088
- */
1089
- function validate_ip($ip) {
1090
-
1091
- if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4|FILTER_FLAG_NO_PRIV_RANGE|FILTER_FLAG_NO_RES_RANGE) === false) {
1092
- return false;
1093
- }
1094
-
1095
- return true;
1096
-
1097
- }
1098
-
1099
  /**
1100
  * Override this to add CSS in <head> for your logger.
1101
- * The CSS that you output will only be outputed
1102
  * on pages where Simple History is used.
1103
  */
1104
  function adminCSS() {
1105
  /*
1106
- ?>
1107
- <style>
1108
- body {
1109
- border: 2px solid red;
1110
- }
1111
- </style>
1112
- <?php
1113
- */
1114
  }
1115
 
1116
  /**
1117
  * Override this to add JavaScript in the footer for your logger.
1118
- * The JS that you output will only be outputed
1119
  * on pages where Simple History is used.
1120
  */
1121
  function adminJS() {
1122
  /*
1123
- ?>
1124
- <script>
1125
- console.log("This is outputed in the footer");
1126
- </script>
1127
- <?php
1128
- */
1129
  }
1130
-
1131
  }
1132
 
1133
  /**
1134
  * Describes log initiator, i.e. who caused to log event to happend
1135
  */
1136
- class SimpleLoggerLogInitiators {
1137
-
 
1138
  // A wordpress user that at the log event created did exist in the wp database
1139
  // May have been deleted when the log is viewed
1140
  const WP_USER = 'wp_user';
@@ -1147,13 +1073,11 @@ class SimpleLoggerLogInitiators {
1147
  // WordPress core or plugins updated automatically via wp-cron
1148
  const WORDPRESS = "wp";
1149
 
1150
- // WP CLI / terminal
1151
- const WP_CLI = "wp_cli";
1152
-
1153
  // I dunno
1154
  const OTHER = 'other';
1155
  }
1156
 
 
1157
  /**
1158
  * Describes log event type
1159
  * Based on the CRUD-types
@@ -1161,7 +1085,8 @@ class SimpleLoggerLogInitiators {
1161
  * More may be added later on if needed
1162
  * Note: not in use at the moment
1163
  */
1164
- class SimpleLoggerLogTypes {
 
1165
  const CREATE = 'create';
1166
  const READ = 'read';
1167
  const UPDATE = 'update';
@@ -1172,7 +1097,8 @@ class SimpleLoggerLogTypes {
1172
  /**
1173
  * Describes log levels
1174
  */
1175
- class SimpleLoggerLogLevels {
 
1176
  const EMERGENCY = 'emergency';
1177
  const ALERT = 'alert';
1178
  const CRITICAL = 'critical';
@@ -1182,3 +1108,4 @@ class SimpleLoggerLogLevels {
1182
  const INFO = 'info';
1183
  const DEBUG = 'debug';
1184
  }
 
8
  *
9
  * @link https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md PSR-3 specification
10
  */
11
+ class SimpleLogger
12
+ {
13
 
14
  /**
15
  * Unique slug for this logger
46
  public function __construct($simpleHistory) {
47
 
48
  global $wpdb;
49
+
50
  $this->db_table = $wpdb->prefix . SimpleHistory::DBTABLE;
51
  $this->db_table_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
52
+
53
  $this->simpleHistory = $simpleHistory;
54
 
55
  }
64
 
65
  /**
66
  * Get array with information about this logger
67
+ *
68
  * @return array
69
  */
70
  function getInfo() {
71
 
72
  $arr_info = array(
73
+
74
  // The logger slug. Defaulting to the class name is nice and logical I think
75
  "slug" => __CLASS__,
76
 
78
  // an admin what your logger is used for
79
  "name" => "SimpleLogger",
80
  "description" => "The built in logger for Simple History",
81
+
82
  // Capability required to view log entries from this logger
83
  "capability" => "edit_pages",
84
  "messages" => array(
85
  // No pre-defined variants
86
  // when adding messages __() or _x() must be used
87
+ )
88
 
89
  );
90
 
106
  }
107
 
108
  /**
109
+ * Interpolates context values into the message placeholders.
110
+ */
111
+ function interpolate($message, $context = array())
112
+ {
113
 
114
+ if ( ! is_array($context) ) {
115
  return $message;
116
  }
117
 
133
  * @return string HTML
134
  */
135
  function getLogRowHeaderOutput($row) {
136
+
137
  // HTML for initiator
138
  $initiator_html = "";
139
+
140
  $initiator = $row->initiator;
141
  $context = $row->context;
142
 
143
+ switch ( $initiator ) {
144
 
145
  case "wp":
146
  $initiator_html .= '<strong class="SimpleHistoryLogitem__inlineDivided">WordPress</strong> ';
147
  break;
148
 
 
 
 
 
149
  // wp_user = wordpress uses, but user may have been deleted since log entry was added
150
  case "wp_user":
151
 
152
+ $user_id = isset( $row->context["_user_id"] ) ? $row->context["_user_id"] : null;
153
 
154
+ if ( $user_id > 0 && $user = get_user_by("id", $user_id) ) {
155
 
156
  // Sender is user and user still exists
157
+ $is_current_user = ( $user_id == get_current_user_id() ) ? true : false;
158
 
159
  // get user role, as done in user-edit.php
160
+ $user_roles = array_intersect( array_values( $user->roles ), array_keys( get_editable_roles() ) );
161
+ $user_role = array_shift( $user_roles );
162
  $user_display_name = $user->display_name;
163
 
164
  $tmpl_initiator_html = '
165
  <strong class="SimpleHistoryLogitem__inlineDivided">%3$s</strong>
166
  <span class="SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__headerEmail">%2$s</span>
167
+ ';
168
 
169
  // If user who logged this is the currently logged in user
170
  // we replace name and email with just "You"
171
  if ($is_current_user) {
172
  $tmpl_initiator_html = '
173
  <strong class="SimpleHistoryLogitem__inlineDivided">%5$s</strong>
174
+ ';
175
  }
176
 
177
  /**
178
+ * Filter the format for the user output
179
+ *
180
+ * @since 2.0
181
+ *
182
+ * @param string $format.
183
+ */
184
+ $$tmpl_initiator_html = apply_filters("simple_history/header_initiator_html_existing_user", $tmpl_initiator_html);
185
 
186
  $initiator_html .= sprintf(
187
  $tmpl_initiator_html,
188
+ esc_html( $user->user_login ), // 1
189
+ esc_html( $user->user_email ), // 2
190
+ esc_html( $user_display_name ), // 3
191
+ $user_role, // 4
192
+ _x("You", "header output when initiator is the currently logged in user", "simple-history") // 5
193
  );
194
 
195
  } else if ($user_id > 0) {
196
+
197
  // Sender was a user, but user is deleted now
198
  // output all info we have
199
  // _user_id
200
  // _username
201
  // _user_login
202
  // _user_email
203
+ $initiator_html .= sprintf(
204
+ '<strong class="SimpleHistoryLogitem__inlineDivided">' .
205
+ __('Deleted user (had id %1$s, email %2$s, login %3$s)', "simple-history") .
206
+ '</strong>',
207
+ esc_html( $context["_user_id"] ),
208
+ esc_html( $context["_user_email"] ),
209
+ esc_html( $context["_user_login"] )
210
  );
211
 
212
  }
215
 
216
  case "web_user":
217
 
218
+ if ( empty( $context["_server_remote_addr"] ) ) {
219
 
220
+ $initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided'>" . __("Anonymous web user") . "</strong> ";
221
 
222
  } else {
223
 
224
+ $iplookup_link = sprintf('https://ipinfo.io/%1$s', esc_attr( $context["_server_remote_addr"] ));
225
 
226
  $initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided SimpleHistoryLogitem__anonUserWithIp'>";
227
+ $initiator_html .= sprintf(
228
+ __('Anonymous user from %1$s', "simple-history"),
229
+ "<a target='_blank' href={$iplookup_link} class='SimpleHistoryLogitem__anonUserWithIp__theIp'>" . esc_attr( $context["_server_remote_addr"] ) . "</a>"
230
+ );
231
  $initiator_html .= "</strong> ";
232
 
233
  // $initiator_html .= "<strong>" . __("<br><br>Unknown user from {$context["_server_remote_addr"]}") . "</strong>";
249
  break;
250
 
251
  default:
252
+ $initiator_html .= "<strong class='SimpleHistoryLogitem__inlineDivided'>" . esc_html( $initiator ) . "</strong>";
253
 
254
  }
255
 
256
  /**
257
+ * Filter generated html for the initiator row header html
258
+ *
259
+ * @since 2.0
260
+ *
261
+ * @param string $initiator_html
262
+ * @param object $row Log row
263
+ */
264
  $initiator_html = apply_filters("simple_history/row_header_initiator_output", $initiator_html, $row);
265
 
266
+
267
  // HTML for date
268
  // Date (should...) always exist
269
  // http://developers.whatwg.org/text-level-semantics.html#the-time-element
270
  $date_html = "";
271
  $str_when = "";
272
  $date_datetime = new DateTime($row->date);
273
+
274
  /**
275
+ * Filter how many seconds as most that can pass since an
276
+ * event occured to show "nn minutes ago" (human diff time-format) instead of exact date
277
+ *
278
+ * @since 2.0
279
+ *
280
+ * @param int $time_ago_max_time Seconds
281
+ */
282
  $time_ago_max_time = DAY_IN_SECONDS * 2;
283
  $time_ago_max_time = apply_filters("simple_history/header_time_ago_max_time", $time_ago_max_time);
284
 
285
  /**
286
+ * Filter how many seconds as most that can pass since an
287
+ * event occured to show "just now" instead of exact date
288
+ *
289
+ * @since 2.0
290
+ *
291
+ * @param int $time_ago_max_time Seconds
292
+ */
293
  $time_ago_just_now_max_time = 30;
294
  $time_ago_just_now_max_time = apply_filters("simple_history/header_just_now_max_time", $time_ago_just_now_max_time);
295
 
296
+ if ( time() - $date_datetime->getTimestamp() <= $time_ago_just_now_max_time ) {
297
 
298
  // show "just now" if event is very recent
299
  $str_when = __("Just now", "simple-history");
300
 
301
+ } else if ( time() - $date_datetime->getTimestamp() > $time_ago_max_time ) {
302
+
303
  /* translators: Date format for log row header, see http://php.net/date */
304
+ $datef = __( 'M j, Y \a\t G:i', "simple-history" );
305
+ $str_when = date_i18n( $datef, $date_datetime->getTimestamp() );
306
 
307
  } else {
308
+
309
  // Show "nn minutes ago" when event is xx seconds ago or earlier
310
+ $date_human_time_diff = human_time_diff( $date_datetime->getTimestamp(), time() );
311
  /* translators: 1: last modified date and time in human time diff-format */
312
+ $str_when = sprintf( __( '%1$s ago', 'simple-history' ), $date_human_time_diff );
313
 
314
  }
315
 
330
  // SimpleHistoryLogitem--loglevel-warning
331
  /*
332
  $level_html = sprintf(
333
+ '<span class="SimpleHistoryLogitem--logleveltag SimpleHistoryLogitem--logleveltag-%1$s">%1$s</span>',
334
+ $row->level
335
  );
336
+ */
337
 
338
  // Glue together final result
339
  $template = '%1$s%2$s';
349
  );
350
 
351
  /**
352
+ * Filter generated html for the log row header
353
+ *
354
+ * @since 2.0
355
+ *
356
+ * @param string $html
357
+ * @param object $row Log row
358
+ */
359
  $html = apply_filters("simple_history/row_header_output", $html, $row);
360
 
361
  return $html;
379
  * Jessie James: Edited post "About the company"
380
  */
381
  public function getLogRowPlainTextOutput($row) {
382
+
383
  $message = $row->message;
384
  $message_key = $row->context["_message_key"];
385
 
386
  // Message is translated here, but translation must be added in
387
  // plain text before
388
 
389
+ if ( empty( $message_key ) ) {
390
 
391
+ // Leave message alone
 
 
 
392
 
393
  } else {
394
 
395
+ $message = $this->messages[ $message_key ]["translated_text"];
396
+
397
  }
398
+
399
+ $html = $this->interpolate( $message, $row->context );
400
 
401
+ // All messages are escaped by default.
 
 
402
  // If you need unescaped output override this method
403
  // in your own logger
404
  $html = esc_html($html);
405
 
406
  /**
407
+ * Filter generated output for plain text output
408
+ *
409
+ * @since 2.0
410
+ *
411
+ * @param string $html
412
+ * @param object $row Log row
413
+ */
414
  $html = apply_filters("simple_history/row_plain_text_output", $html, $row);
415
 
416
  return $html;
429
 
430
  $initiator = $row->initiator;
431
 
432
+ switch ( $initiator ) {
433
 
434
  // wp_user = wordpress uses, but user may have been deleted since log entry was added
435
  case "wp_user":
436
 
437
  $user_id = isset($row->context["_user_id"]) ? $row->context["_user_id"] : null;
438
 
439
+ if ( $user_id > 0 && $user = get_user_by("id", $user_id) ) {
440
 
441
  // Sender was user
442
+ $sender_image_html = $this->simpleHistory->get_avatar( $user->user_email, $sender_image_size );
443
 
444
  } else if ($user_id > 0) {
445
+
446
  // Sender was a user, but user is deleted now
447
+ $sender_image_html = $this->simpleHistory->get_avatar( "", $sender_image_size );
448
 
449
  } else {
450
 
451
+ $sender_image_html = $this->simpleHistory->get_avatar( "", $sender_image_size );
452
 
453
+ }
454
 
455
  break;
456
 
457
  }
458
  /**
459
+ * Filter generated output for row image (sender image)
460
+ *
461
+ * @since 2.0
462
+ *
463
+ * @param string $sender_image_html
464
+ * @param object $row Log row
465
+ */
466
  $sender_image_html = apply_filters("simple_history/row_sender_image_output", $sender_image_html, $row);
467
 
468
  return $sender_image_html;
474
  * Example usage is if a user has uploaded an image then a
475
  * thumbnail of that image can bo outputed here
476
  *
477
+ * @param object $row
478
  * @return string HTML-formatted output
479
  */
480
  public function getLogRowDetailsOutput($row) {
482
  $html = "";
483
 
484
  /**
485
+ * Filter generated output for details
486
+ *
487
+ * @since 2.0
488
+ *
489
+ * @param string $html
490
+ * @param object $row Log row
491
+ */
492
  $html = apply_filters("simple_history/row_details_output", $html, $row);
493
 
494
  return $html;
495
 
496
  }
497
 
498
+
499
  /**
500
  * System is unusable.
501
  *
503
  * @param array $context
504
  * @return null
505
  */
506
+ public static function emergency($message, array $context = array())
507
+ {
508
 
509
  return $this->log(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
510
 
511
  }
512
+
513
  /**
514
  * System is unusable.
515
  *
517
  * @param array $context
518
  * @return null
519
  */
520
+ public function emergencyMessage($message, array $context = array())
521
+ {
 
 
 
522
 
523
+ if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
524
  return;
525
  }
526
 
527
+ $context["_message_key"] = $message;
528
+ $message = $this->messages[ $message ]["untranslated_text"];
 
 
529
 
530
+ $this->log(SimpleLoggerLogLevels::EMERGENCY, $message, $context);
531
+
532
  }
533
 
534
 
539
  * @param array $context
540
  * @return null
541
  */
542
+ public static function alert($message, array $context = array())
543
+ {
544
  return $this->log(SimpleLoggerLogLevels::ALERT, $message, $context);
545
+
546
  }
547
 
548
  /**
552
  * @param array $context
553
  * @return null
554
  */
555
+ public function alertMessage($message, array $context = array())
556
+ {
557
 
558
+ if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
559
+ return;
560
+ }
561
 
562
+ $context["_message_key"] = $message;
563
+ $message = $this->messages[ $message ]["untranslated_text"];
564
+
565
+ $this->log(SimpleLoggerLogLevels::ALERT, $message, $context);
566
+
567
  }
568
 
569
+
570
  /**
571
  * Critical conditions.
572
  *
576
  * @param array $context
577
  * @return null
578
  */
579
+ public static function critical($message, array $context = array())
580
+ {
581
 
582
  return $this->log(SimpleLoggerLogLevels::CRITICAL, $message, $context);
583
 
590
  * @param array $context
591
  * @return null
592
  */
593
+ public function criticalMessage($message, array $context = array())
594
+ {
595
 
596
+ if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
597
  return;
598
  }
599
 
600
  $context["_message_key"] = $message;
601
+ $message = $this->messages[ $message ]["untranslated_text"];
602
 
603
  $this->log(SimpleLoggerLogLevels::CRITICAL, $message, $context);
604
+
605
  }
606
 
607
+
608
  /**
609
  * Runtime errors that do not require immediate action but should typically
610
  * be logged and monitored.
613
  * @param array $context
614
  * @return null
615
  */
616
+ public function error($message, array $context = array())
617
+ {
618
 
619
  return $this->log(SimpleLoggerLogLevels::ERROR, $message, $context);
620
+
621
  }
622
 
623
  /**
628
  * @param array $context
629
  * @return null
630
  */
631
+ public function errorMessage($message, array $context = array())
632
+ {
633
+
634
+ if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
635
+ return;
636
+ }
637
 
638
+ $context["_message_key"] = $message;
639
+ $message = $this->messages[ $message ]["untranslated_text"];
640
 
641
+ $this->log(SimpleLoggerLogLevels::ERROR, $message, $context);
642
+
643
  }
644
 
645
+
646
  /**
647
  * Exceptional occurrences that are not errors.
648
  *
653
  * @param array $context
654
  * @return null
655
  */
656
+ public function warning($message, array $context = array())
657
+ {
658
+
659
  return $this->log(SimpleLoggerLogLevels::WARNING, $message, $context);
660
 
661
  }
662
+
663
  /**
664
  * Exceptional occurrences that are not errors.
665
  *
667
  * @param array $context
668
  * @return null
669
  */
670
+ public function warningMessage($message, array $context = array())
671
+ {
672
+
673
+ if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
674
+ return;
675
+ }
676
 
677
+ $context["_message_key"] = $message;
678
+ $message = $this->messages[ $message ]["untranslated_text"];
679
 
680
+ $this->log(SimpleLoggerLogLevels::WARNING, $message, $context);
681
+
682
  }
683
 
684
+
685
  /**
686
  * Normal but significant events.
687
  *
689
  * @param array $context
690
  * @return null
691
  */
692
+ public function notice($message, array $context = array())
693
+ {
694
 
695
  return $this->log(SimpleLoggerLogLevels::NOTICE, $message, $context);
696
 
697
  }
698
+
699
  /**
700
  * Normal but significant events.
701
  *
703
  * @param array $context
704
  * @return null
705
  */
706
+ public function noticeMessage($message, array $context = array())
707
+ {
708
+
709
+ if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
710
+ return;
711
+ }
712
 
713
+ $context["_message_key"] = $message;
714
+ $message = $this->messages[ $message ]["untranslated_text"];
715
 
716
+ $this->log(SimpleLoggerLogLevels::NOTICE, $message, $context);
717
+
718
  }
719
 
720
+
721
  /**
722
  * Interesting events.
723
  *
727
  * @param array $context
728
  * @return null
729
  */
730
+ public function info($message, array $context = array())
731
+ {
732
 
733
  return $this->log(SimpleLoggerLogLevels::INFO, $message, $context);
734
+
735
  }
736
 
737
  /**
743
  * @param array $context
744
  * @return null
745
  */
746
+ public function infoMessage($message, array $context = array())
747
+ {
748
 
749
+ if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
750
+ return;
751
+ }
752
 
753
+ $context["_message_key"] = $message;
754
+ $message = $this->messages[ $message ]["untranslated_text"];
755
 
756
+ $this->log(SimpleLoggerLogLevels::INFO, $message, $context);
757
+
758
+ }
759
+
760
  /**
761
  * Detailed debug information.
762
  *
764
  * @param array $context
765
  * @return null
766
  */
767
+ public function debug($message, array $context = array())
768
+ {
769
 
770
  return $this->log(SimpleLoggerLogLevels::DEBUG, $message, $context);
771
+
772
  }
773
 
774
  /**
778
  * @param array $context
779
  * @return null
780
  */
781
+ public function debugMessage($message, array $context = array())
782
+ {
783
+
784
+ if ( ! isset( $this->messages[ $message ]["untranslated_text"] ) ) {
785
+ return;
786
+ }
787
 
788
+ $context["_message_key"] = $message;
789
+ $message = $this->messages[ $message ]["untranslated_text"];
790
 
791
+ $this->log(SimpleLoggerLogLevels::DEBUG, $message, $context);
792
+
793
  }
794
+
795
  /**
796
  * Logs with an arbitrary level.
797
  *
800
  * @param array $context
801
  * @return null
802
  */
803
+ public function log($level, $message, array $context = array())
804
+ {
805
+
806
  global $wpdb;
807
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
808
  /**
809
+ * Filter arguments passed to log funtion
810
+ *
811
+ * @since 2.0
812
+ *
813
+ * @param string $level
814
+ * @param string $message
815
+ * @param array $context
816
+ */
817
+ apply_filters("simple_history/log_arguments", $level, $message, $context);
 
 
 
 
818
 
819
  /* Store date at utc or local time?
820
  * Some info here:
822
  * UNIX timestamp = no timezone = UTC
823
  * anything is better than now() anyway!
824
  * WP seems to use the local time, so I will go with that too I think
825
+ * GMT/UTC-time is: date_i18n($timezone_format, false, 'gmt'));
826
  * local time is: date_i18n($timezone_format));
827
  */
828
  $localtime = current_time("mysql", 1);
830
  $db_table = $wpdb->prefix . SimpleHistory::DBTABLE;
831
 
832
  /**
833
+ * Filter db table used for simple history events
834
+ *
835
+ * @since 2.0
836
+ *
837
+ * @param string $db_table
838
+ */
839
  $db_table = apply_filters("simple_history/db_table", $db_table);
840
+
841
  $data = array(
842
  "logger" => $this->slug,
843
  "level" => $level,
847
 
848
  // Allow date to be override
849
  // Date must be in format 'Y-m-d H:i:s'
850
+ if ( isset( $context["_date"] ) ) {
851
  $data["date"] = $context["_date"];
852
  unset($context["_date"]);
853
  }
854
 
855
  // Add occasions id
856
+ $occasions_id = null;
857
+ if ( isset( $context["_occasionsID"] ) ) {
858
 
859
  // Minimize risk of similar loggers logging same messages and such and resulting in same occasions id
860
  // by always adding logger slug
861
  $occasions_data = array(
862
  "_occasionsID" => $context["_occasionsID"],
863
+ "_loggerSlug" => $this->slug
864
  );
865
+ $occasions_id = md5( json_encode($occasions_data) );
866
+ unset( $context["_occasionsID"] );
867
 
868
  } else {
869
 
874
  unset($occasions_data["date"]);
875
 
876
  //sf_d($occasions_data);exit;
877
+ $occasions_id = md5( json_encode($occasions_data) );
878
 
879
  }
880
 
883
  // Log event type, defaults to other if not set
884
  /*
885
  if ( isset( $context["_type"] ) ) {
886
+ $data["type"] = $context["_type"];
887
+ unset( $context["_type"] );
888
  } else {
889
+ $data["type"] = SimpleLoggerLogTypes::OTHER;
890
  }
891
+ */
892
 
893
  // Log initiator, defaults to current user if exists, or other if not user exist
894
  if ( isset( $context["_initiator"] ) ) {
896
  // Manually set in context
897
  $data["initiator"] = $context["_initiator"];
898
  unset( $context["_initiator"] );
899
+
900
  } else {
901
+
902
+ // No initiator set.
903
 
 
 
 
904
  $data["initiator"] = SimpleLoggerLogInitiators::OTHER;
905
+
906
  // Check if user is responsible.
907
  if ( function_exists("wp_get_current_user") ) {
908
 
909
  $current_user = wp_get_current_user();
910
 
911
+ if ( isset( $current_user->ID ) && $current_user->ID) {
912
 
913
+ $data["initiator"] = SimpleLoggerLogInitiators::WP_USER;;
914
  $context["_user_id"] = $current_user->ID;
915
  $context["_user_login"] = $current_user->user_login;
916
  $context["_user_email"] = $current_user->user_email;
924
 
925
  // Seems to be wp cron running and doing this
926
  $data["initiator"] = SimpleLoggerLogInitiators::WORDPRESS;
927
+ $context["_wordpress_cron_running"] = true;
 
 
 
 
 
 
 
 
 
 
 
 
928
 
929
  }
930
 
931
  }
932
 
 
 
 
 
 
 
 
933
  /**
934
+ * Filter data to be saved to db
935
+ *
936
+ * @since 2.0
937
+ *
938
+ * @param array $data
939
+ */
940
  $data = apply_filters("simple_history/log_insert_data", $data);
941
 
942
  // Insert data into db
943
  // sf_d($db_table, '$db_table');exit;
944
+ $result = $wpdb->insert( $db_table, $data );
945
 
946
  // Only save context if able to store row
947
+ if ( false === $result ) {
948
 
949
  $history_inserted_id = null;
950
 
951
  } else {
952
+
953
+ $history_inserted_id = $wpdb->insert_id;
954
 
955
  $db_table_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
956
 
957
  /**
958
+ * Filter table name for contexts
959
+ *
960
+ * @since 2.0
961
+ *
962
+ * @param string $db_table_contexts
963
+ */
964
  $db_table_contexts = apply_filters("simple_history/logger_db_table_contexts", $db_table_contexts);
965
 
966
+ if ( ! is_array($context) ) {
967
  $context = array();
968
  }
969
 
970
  // Append user id to context, if not already added
971
+ if ( ! isset( $context["_user_id"] ) ) {
972
+
973
  // wp_get_current_user is ont available early
974
  // http://codex.wordpress.org/Function_Reference/wp_get_current_user
975
  // https://core.trac.wordpress.org/ticket/14024
976
+ if ( function_exists("wp_get_current_user") ) {
977
 
978
  $current_user = wp_get_current_user();
979
 
980
+ if ( isset( $current_user->ID ) && $current_user->ID) {
981
  $context["_user_id"] = $current_user->ID;
982
  $context["_user_login"] = $current_user->user_login;
983
  $context["_user_email"] = $current_user->user_email;
986
  }
987
 
988
  }
989
+
990
+ // Append remote addr to context
991
  // Good to always have
992
+ if ( ! isset( $context["_server_remote_addr"] ) ) {
 
993
  $context["_server_remote_addr"] = $_SERVER["REMOTE_ADDR"];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
994
  }
995
 
996
  // Append http referer
997
  // Also good to always have!
998
+ if ( ! isset( $context["_server_http_referer"] ) && isset( $_SERVER["HTTP_REFERER"] ) ) {
999
  $context["_server_http_referer"] = $_SERVER["HTTP_REFERER"];
1000
  }
1001
 
1002
  // Insert all context values into db
1003
+ foreach ( $context as $key => $value ) {
1004
 
1005
  $data = array(
1006
  "history_id" => $history_inserted_id,
1008
  "value" => $value,
1009
  );
1010
 
1011
+ $result = $wpdb->insert( $db_table_contexts, $data );
1012
 
1013
  }
1014
 
1015
  }
1016
+
1017
  $this->lastInsertID = $history_inserted_id;
1018
 
 
 
1019
  // Return $this so we can chain methods
1020
  return $this;
1021
 
1022
  } // log
1023
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1024
  /**
1025
  * Override this to add CSS in <head> for your logger.
1026
+ * The CSS that you output will only be outputed
1027
  * on pages where Simple History is used.
1028
  */
1029
  function adminCSS() {
1030
  /*
1031
+ ?>
1032
+ <style>
1033
+ body {
1034
+ border: 2px solid red;
1035
+ }
1036
+ </style>
1037
+ <?php
1038
+ */
1039
  }
1040
 
1041
  /**
1042
  * Override this to add JavaScript in the footer for your logger.
1043
+ * The JS that you output will only be outputed
1044
  * on pages where Simple History is used.
1045
  */
1046
  function adminJS() {
1047
  /*
1048
+ ?>
1049
+ <script>
1050
+ console.log("This is outputed in the footer");
1051
+ </script>
1052
+ <?php
1053
+ */
1054
  }
1055
+
1056
  }
1057
 
1058
  /**
1059
  * Describes log initiator, i.e. who caused to log event to happend
1060
  */
1061
+ class SimpleLoggerLogInitiators
1062
+ {
1063
+
1064
  // A wordpress user that at the log event created did exist in the wp database
1065
  // May have been deleted when the log is viewed
1066
  const WP_USER = 'wp_user';
1073
  // WordPress core or plugins updated automatically via wp-cron
1074
  const WORDPRESS = "wp";
1075
 
 
 
 
1076
  // I dunno
1077
  const OTHER = 'other';
1078
  }
1079
 
1080
+
1081
  /**
1082
  * Describes log event type
1083
  * Based on the CRUD-types
1085
  * More may be added later on if needed
1086
  * Note: not in use at the moment
1087
  */
1088
+ class SimpleLoggerLogTypes
1089
+ {
1090
  const CREATE = 'create';
1091
  const READ = 'read';
1092
  const UPDATE = 'update';
1097
  /**
1098
  * Describes log levels
1099
  */
1100
+ class SimpleLoggerLogLevels
1101
+ {
1102
  const EMERGENCY = 'emergency';
1103
  const ALERT = 'alert';
1104
  const CRITICAL = 'critical';
1108
  const INFO = 'info';
1109
  const DEBUG = 'debug';
1110
  }
1111
+
loggers/SimpleMediaLogger.php CHANGED
@@ -10,12 +10,12 @@ class SimpleMediaLogger extends SimpleLogger
10
 
11
  /**
12
  * Get array with information about this logger
13
- *
14
  * @return array
15
  */
16
  function getInfo() {
17
 
18
- $arr_info = array(
19
  "name" => "Media/Attachments Logger",
20
  "description" => "Logs media uploads and edits",
21
  "capability" => "edit_pages",
@@ -30,28 +30,26 @@ class SimpleMediaLogger extends SimpleLogger
30
  "options" => array(
31
  _x("Added media", "Media logger: search", "simple-history") => array(
32
  "attachment_created"
33
- ),
34
  _x("Updated media", "Media logger: search", "simple-history") => array(
35
  "attachment_updated"
36
- ),
37
  _x("Deleted media", "Media logger: search", "simple-history") => array(
38
  "attachment_deleted"
39
- ),
40
  )
41
  ) // end search array
42
  ) // end labels
43
  );
44
-
45
  return $arr_info;
46
 
47
  }
48
 
49
  public function loaded() {
50
-
51
  add_action("admin_init", array($this, "on_admin_init"));
52
 
53
- add_action( 'xmlrpc_call_success_mw_newMediaObject', array($this, "on_mw_newMediaObject"), 10, 2 );
54
-
55
  }
56
 
57
  function on_admin_init() {
@@ -62,45 +60,11 @@ class SimpleMediaLogger extends SimpleLogger
62
 
63
  }
64
 
65
- /**
66
- * Filter that fires after a new attachment has been added via the XML-RPC MovableType API.
67
- *
68
- * @since 2.0.21
69
- *
70
- * @param int $id ID of the new attachment.
71
- * @param array $args An array of arguments to add the attachment.
72
- */
73
- function on_mw_newMediaObject($attachment_id, $args) {
74
-
75
- $attachment_post = get_post( $attachment_id );
76
- $filename = esc_html( wp_basename( $attachment_post->guid ) );
77
- $mime = get_post_mime_type( $attachment_post );
78
- $file = get_attached_file( $attachment_id );
79
- $file_size = false;
80
-
81
- if ( file_exists( $file ) ) {
82
- $file_size = filesize( $file );
83
- }
84
-
85
- $this->infoMessage(
86
- 'attachment_created',
87
- array(
88
- "post_type" => get_post_type( $attachment_post ),
89
- "attachment_id" => $attachment_id,
90
- "attachment_title" => get_the_title( $attachment_post ),
91
- "attachment_filename" => $filename,
92
- "attachment_mime" => $mime,
93
- "attachment_filesize" => $file_size
94
- )
95
- );
96
-
97
- }
98
-
99
  /**
100
  * Modify plain output to inlcude link to post
101
  */
102
  public function getLogRowPlainTextOutput($row) {
103
-
104
  $message = $row->message;
105
  $context = $row->context;
106
  $message_key = $context["_message_key"];
@@ -108,7 +72,7 @@ class SimpleMediaLogger extends SimpleLogger
108
  $attachment_id = $context["attachment_id"];
109
  $attachment_post = get_post( $attachment_id );
110
  $attachment_is_available = is_a($attachment_post, "WP_Post");
111
-
112
  // Only link to attachment if it is still available
113
  if ( $attachment_is_available ) {
114
 
@@ -119,23 +83,16 @@ class SimpleMediaLogger extends SimpleLogger
119
  } else if ( "attachment_created" == $message_key ) {
120
 
121
  $message = __('Uploaded {post_type} <a href="{edit_link}">"{attachment_title}"</a>', "simple-history");
122
-
123
  }
124
 
125
- $context["post_type"] = esc_html( $context["post_type"] );
126
- $context["attachment_filename"] = esc_html( $context["attachment_filename"] );
127
- $context["edit_link"] = get_edit_post_link( $attachment_id );
128
-
129
- $message = $this->interpolate($message, $context);
130
-
131
- } else {
132
-
133
- // Attachment post is not available, attachment has probably been deleted
134
- $message = parent::getLogRowPlainTextOutput( $row );
135
-
136
  }
137
 
138
- return $message;
 
 
 
 
139
 
140
  }
141
 
@@ -148,16 +105,12 @@ class SimpleMediaLogger extends SimpleLogger
148
  $message_key = $context["_message_key"];
149
  $output = "";
150
 
151
- $attachment_id = $context["attachment_id"];
152
- $attachment_post = get_post( $attachment_id );
153
- $attachment_is_available = is_a($attachment_post, "WP_Post");
154
-
155
  if ( "attachment_updated" == $message_key ) {
156
-
157
  // Attachment is changed = don't show thumbs and all
158
 
159
  } else if ( "attachment_deleted" == $message_key ) {
160
-
161
  // Attachment is deleted = don't show thumbs and all
162
 
163
  } else if ( "attachment_created" == $message_key ) {
@@ -193,9 +146,9 @@ class SimpleMediaLogger extends SimpleLogger
193
  if ( $full_image_width && $full_image_height ) {
194
 
195
  $context["full_image_width"] = $full_image_width;
196
- $context["full_image_height"] = $full_image_height;
197
  $context["attachment_thumb"] = sprintf('<div class="SimpleHistoryLogitemThumbnail"><img src="%1$s"></div>', $thumb_src[0] );
198
-
199
  }
200
 
201
  } else if ($is_audio) {
@@ -211,28 +164,22 @@ class SimpleMediaLogger extends SimpleLogger
211
  } else {
212
 
213
  // use wordpress icon for other media types
214
- if ( $attachment_is_available ) {
215
- $context["attachment_thumb"] = wp_get_attachment_image( $attachment_id, null, true );
216
- }
217
- /*else {
218
- // Add icon for deleted media?
219
- $context["attachment_thumb"] = "thumb";
220
- }*/
221
 
222
  }
223
-
224
  $context["attachment_size_format"] = size_format( $row->context["attachment_filesize"] );
225
  $context["attachment_filetype_extension"] = strtoupper( $filetype["ext"] );
226
 
227
  if ( ! empty( $context["attachment_thumb"] ) ) {
228
-
229
- if ( $is_image ) {
230
- $message .= "<a class='SimpleHistoryLogitemThumbnailLink' href='".$edit_link."'>";
231
  }
232
-
233
  $message .= __('{attachment_thumb}', 'simple-history');
234
-
235
- if ( $is_image ) {
236
  $message .= "</a>";
237
  }
238
 
@@ -242,7 +189,7 @@ class SimpleMediaLogger extends SimpleLogger
242
  $message .= "<span class='SimpleHistoryLogitem__inlineDivided'>" . __('{attachment_size_format}', "simple-history") . "</span> ";
243
  $message .= "<span class='SimpleHistoryLogitem__inlineDivided'>" . __('{attachment_filetype_extension}', "simple-history") . "</span>";
244
  if ($full_image_width && $full_image_height) {
245
- $message .= " <span class='SimpleHistoryLogitem__inlineDivided'>" . __('{full_image_width} × {full_image_height}', "simple-history") . "</span>";
246
  }
247
  //$message .= " <span class='SimpleHistoryLogitem__inlineDivided'>" . sprintf( __('<a href="%1$s">Edit attachment</a>'), $edit_link ) . "</span>";
248
  $message .= "</p>";
@@ -269,7 +216,7 @@ class SimpleMediaLogger extends SimpleLogger
269
  if ( file_exists( $file ) ) {
270
  $file_size = filesize( $file );
271
  }
272
-
273
  $this->infoMessage(
274
  'attachment_created',
275
  array(
@@ -283,7 +230,7 @@ class SimpleMediaLogger extends SimpleLogger
283
  );
284
 
285
  }
286
-
287
  /**
288
  * An attachmet is changed
289
  * is this only being called if the title of the attachment is changed?!
@@ -291,7 +238,7 @@ class SimpleMediaLogger extends SimpleLogger
291
  * @param int $attachment_id
292
  */
293
  function on_edit_attachment($attachment_id) {
294
-
295
  $attachment_post = get_post( $attachment_id );
296
  $filename = esc_html( wp_basename( $attachment_post->guid ) );
297
  $mime = get_post_mime_type( $attachment_post );
@@ -310,11 +257,11 @@ class SimpleMediaLogger extends SimpleLogger
310
 
311
  }
312
 
313
- /**
314
  * Called when an attachment is deleted
315
  */
316
  function on_delete_attachment($attachment_id) {
317
-
318
  $attachment_post = get_post( $attachment_id );
319
  $filename = esc_html( wp_basename( $attachment_post->guid ) );
320
  $mime = get_post_mime_type( $attachment_post );
10
 
11
  /**
12
  * Get array with information about this logger
13
+ *
14
  * @return array
15
  */
16
  function getInfo() {
17
 
18
+ $arr_info = array(
19
  "name" => "Media/Attachments Logger",
20
  "description" => "Logs media uploads and edits",
21
  "capability" => "edit_pages",
30
  "options" => array(
31
  _x("Added media", "Media logger: search", "simple-history") => array(
32
  "attachment_created"
33
+ ),
34
  _x("Updated media", "Media logger: search", "simple-history") => array(
35
  "attachment_updated"
36
+ ),
37
  _x("Deleted media", "Media logger: search", "simple-history") => array(
38
  "attachment_deleted"
39
+ ),
40
  )
41
  ) // end search array
42
  ) // end labels
43
  );
44
+
45
  return $arr_info;
46
 
47
  }
48
 
49
  public function loaded() {
50
+
51
  add_action("admin_init", array($this, "on_admin_init"));
52
 
 
 
53
  }
54
 
55
  function on_admin_init() {
60
 
61
  }
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  /**
64
  * Modify plain output to inlcude link to post
65
  */
66
  public function getLogRowPlainTextOutput($row) {
67
+
68
  $message = $row->message;
69
  $context = $row->context;
70
  $message_key = $context["_message_key"];
72
  $attachment_id = $context["attachment_id"];
73
  $attachment_post = get_post( $attachment_id );
74
  $attachment_is_available = is_a($attachment_post, "WP_Post");
75
+
76
  // Only link to attachment if it is still available
77
  if ( $attachment_is_available ) {
78
 
83
  } else if ( "attachment_created" == $message_key ) {
84
 
85
  $message = __('Uploaded {post_type} <a href="{edit_link}">"{attachment_title}"</a>', "simple-history");
86
+
87
  }
88
 
 
 
 
 
 
 
 
 
 
 
 
89
  }
90
 
91
+ $context["post_type"] = esc_html( $context["post_type"] );
92
+ $context["attachment_filename"] = esc_html( $context["attachment_filename"] );
93
+ $context["edit_link"] = get_edit_post_link( $attachment_id );
94
+
95
+ return $this->interpolate($message, $context);
96
 
97
  }
98
 
105
  $message_key = $context["_message_key"];
106
  $output = "";
107
 
 
 
 
 
108
  if ( "attachment_updated" == $message_key ) {
109
+
110
  // Attachment is changed = don't show thumbs and all
111
 
112
  } else if ( "attachment_deleted" == $message_key ) {
113
+
114
  // Attachment is deleted = don't show thumbs and all
115
 
116
  } else if ( "attachment_created" == $message_key ) {
146
  if ( $full_image_width && $full_image_height ) {
147
 
148
  $context["full_image_width"] = $full_image_width;
149
+ $context["full_image_height"] = $full_image_width;
150
  $context["attachment_thumb"] = sprintf('<div class="SimpleHistoryLogitemThumbnail"><img src="%1$s"></div>', $thumb_src[0] );
151
+
152
  }
153
 
154
  } else if ($is_audio) {
164
  } else {
165
 
166
  // use wordpress icon for other media types
167
+ $context["attachment_thumb"] = wp_get_attachment_image( $attachment_id, null, true );
 
 
 
 
 
 
168
 
169
  }
170
+
171
  $context["attachment_size_format"] = size_format( $row->context["attachment_filesize"] );
172
  $context["attachment_filetype_extension"] = strtoupper( $filetype["ext"] );
173
 
174
  if ( ! empty( $context["attachment_thumb"] ) ) {
175
+
176
+ if ($is_image) {
177
+ $message .= "<a href='".$edit_link."'>";
178
  }
179
+
180
  $message .= __('{attachment_thumb}', 'simple-history');
181
+
182
+ if ($is_image) {
183
  $message .= "</a>";
184
  }
185
 
189
  $message .= "<span class='SimpleHistoryLogitem__inlineDivided'>" . __('{attachment_size_format}', "simple-history") . "</span> ";
190
  $message .= "<span class='SimpleHistoryLogitem__inlineDivided'>" . __('{attachment_filetype_extension}', "simple-history") . "</span>";
191
  if ($full_image_width && $full_image_height) {
192
+ $message .= " <span class='SimpleHistoryLogitem__inlineDivided'>" . __('{full_image_width} × {full_image_height}') . "</span>";
193
  }
194
  //$message .= " <span class='SimpleHistoryLogitem__inlineDivided'>" . sprintf( __('<a href="%1$s">Edit attachment</a>'), $edit_link ) . "</span>";
195
  $message .= "</p>";
216
  if ( file_exists( $file ) ) {
217
  $file_size = filesize( $file );
218
  }
219
+
220
  $this->infoMessage(
221
  'attachment_created',
222
  array(
230
  );
231
 
232
  }
233
+
234
  /**
235
  * An attachmet is changed
236
  * is this only being called if the title of the attachment is changed?!
238
  * @param int $attachment_id
239
  */
240
  function on_edit_attachment($attachment_id) {
241
+
242
  $attachment_post = get_post( $attachment_id );
243
  $filename = esc_html( wp_basename( $attachment_post->guid ) );
244
  $mime = get_post_mime_type( $attachment_post );
257
 
258
  }
259
 
260
+ /**
261
  * Called when an attachment is deleted
262
  */
263
  function on_delete_attachment($attachment_id) {
264
+
265
  $attachment_post = get_post( $attachment_id );
266
  $filename = esc_html( wp_basename( $attachment_post->guid ) );
267
  $mime = get_post_mime_type( $attachment_post );
loggers/SimpleOptionsLogger.php CHANGED
@@ -202,14 +202,14 @@ class SimpleOptionsLogger extends SimpleLogger
202
  return;
203
  }
204
 
205
- $this->debugMessage( 'option_updated', array(
206
- 'option' => $option,
207
- 'old_value' => $old_value,
208
- 'new_value' => $new_value,
209
- 'REQUEST_URI' => $_SERVER['REQUEST_URI'],
210
- 'referer' => wp_get_referer(),
211
- 'option_page' => $option_page,
212
- '$_REQUEST' => print_r($_REQUEST, true),
213
  ) );
214
 
215
 
@@ -240,7 +240,7 @@ class SimpleOptionsLogger extends SimpleLogger
240
  </tr>
241
  ',
242
  __("New value", "simple-history"),
243
- esc_html( mb_strimwidth( $context["new_value"], 0, 250, "..." ) )
244
  );
245
 
246
  $output .= sprintf(
@@ -251,7 +251,7 @@ class SimpleOptionsLogger extends SimpleLogger
251
  </tr>
252
  ',
253
  __("Old value", "simple-history"),
254
- esc_html( mb_strimwidth( $context["old_value"], 0, 250, "..." ) )
255
  );
256
  }
257
 
202
  return;
203
  }
204
 
205
+ $this->debugMessage( "option_updated", array(
206
+ "option" => $option,
207
+ "old_value" => $old_value,
208
+ "new_value" => $new_value,
209
+ "REQUEST_URI" => $_SERVER["REQUEST_URI"],
210
+ "referer" => wp_get_referer(),
211
+ "option_page" => $option_page,
212
+ "$_REQUEST" => print_r($_REQUEST, true),
213
  ) );
214
 
215
 
240
  </tr>
241
  ',
242
  __("New value", "simple-history"),
243
+ esc_html( $context["new_value"] )
244
  );
245
 
246
  $output .= sprintf(
251
  </tr>
252
  ',
253
  __("Old value", "simple-history"),
254
+ esc_html( $context["old_value"] )
255
  );
256
  }
257
 
loggers/SimplePluginLogger.php CHANGED
@@ -147,15 +147,7 @@ class SimplePluginLogger extends SimpleLogger
147
 
148
  //do_action( 'current_screen', $current_screen );
149
  // The first hook where current screen is available
150
- //add_action( 'current_screen', array( $this, "save_versions_before_update" ) );
151
-
152
- /**
153
- * At least the plugin bulk upgrades fires this action before upgrade
154
- * We use it to fetch the current version of all plugins, before they are upgraded
155
- */
156
- add_filter( 'upgrader_pre_install', array( $this, "save_versions_before_update"), 10, 2);
157
-
158
- // Clear our transient after an update is done
159
  add_action( 'delete_site_transient_update_plugins', array( $this, "remove_saved_versions" ) );
160
 
161
  // Fires after a plugin has been activated.
@@ -168,6 +160,7 @@ class SimplePluginLogger extends SimpleLogger
168
  // this hook does not fire.
169
  add_action( 'deactivated_plugin', array( $this, "on_deactivated_plugin" ), 10, 2 );
170
 
 
171
  // Fires after the upgrades has done it's thing
172
  // Check hook extra for upgrader initiator
173
  //add_action( 'upgrader_post_install', array( $this, "on_upgrader_post_install" ), 10, 3 );
@@ -190,16 +183,6 @@ class SimplePluginLogger extends SimpleLogger
190
 
191
  }
192
 
193
- function save_versions_before_update($bool, $hook_extra) {
194
-
195
- $plugins = get_plugins();
196
-
197
- update_option( $this->slug . "_plugin_info_before_update", SimpleHistory::json_encode( $plugins ) );
198
-
199
- return $bool;
200
-
201
- }
202
-
203
  /**
204
  * Detect plugin being deleted
205
  * When WP is done deleting a plugin it sets a transient called plugins_delete_result:
@@ -269,7 +252,7 @@ class SimplePluginLogger extends SimpleLogger
269
  * Save all plugin information before a plugin is updated or removed.
270
  * This way we can know both the old (pre updated/removed) and the current version of the plugin
271
  */
272
- /*public function save_versions_before_update() {
273
 
274
  $current_screen = get_current_screen();
275
  $request_uri = $_SERVER["SCRIPT_NAME"];
@@ -303,7 +286,6 @@ class SimplePluginLogger extends SimpleLogger
303
  }
304
 
305
  }
306
- */
307
 
308
  /**
309
  * when plugin updates are done wp_clean_plugins_cache() is called,
@@ -377,24 +359,13 @@ class SimplePluginLogger extends SimpleLogger
377
  }
378
 
379
  /**
380
- * Called when plugins is updated or installed
 
381
  */
382
  function on_upgrader_process_complete( $plugin_upgrader_instance, $arr_data ) {
383
 
384
- // Can't use get_plugins() here to get version of plugins updated from
385
- // Tested that, and it will get the new version (and that's the correct answer I guess. but too bad for us..)
386
- // $plugs = get_plugins();
387
- // $context["_debug_get_plugins"] = SimpleHistory::json_encode( $plugs );
388
  /*
389
-
390
- Try with these instead:
391
- $current = get_site_transient( 'update_plugins' );
392
- add_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'), 10, 4);
393
-
394
- */
395
-
396
- /*
397
-
398
  # WordPress core update
399
 
400
  $arr_data:
147
 
148
  //do_action( 'current_screen', $current_screen );
149
  // The first hook where current screen is available
150
+ add_action( 'current_screen', array( $this, "save_versions_before_update" ) );
 
 
 
 
 
 
 
 
151
  add_action( 'delete_site_transient_update_plugins', array( $this, "remove_saved_versions" ) );
152
 
153
  // Fires after a plugin has been activated.
160
  // this hook does not fire.
161
  add_action( 'deactivated_plugin', array( $this, "on_deactivated_plugin" ), 10, 2 );
162
 
163
+
164
  // Fires after the upgrades has done it's thing
165
  // Check hook extra for upgrader initiator
166
  //add_action( 'upgrader_post_install', array( $this, "on_upgrader_post_install" ), 10, 3 );
183
 
184
  }
185
 
 
 
 
 
 
 
 
 
 
 
186
  /**
187
  * Detect plugin being deleted
188
  * When WP is done deleting a plugin it sets a transient called plugins_delete_result:
252
  * Save all plugin information before a plugin is updated or removed.
253
  * This way we can know both the old (pre updated/removed) and the current version of the plugin
254
  */
255
+ public function save_versions_before_update() {
256
 
257
  $current_screen = get_current_screen();
258
  $request_uri = $_SERVER["SCRIPT_NAME"];
286
  }
287
 
288
  }
 
289
 
290
  /**
291
  * when plugin updates are done wp_clean_plugins_cache() is called,
359
  }
360
 
361
  /**
362
+ * Called when a single plugin is updated or installed
363
+ * (not bulk)
364
  */
365
  function on_upgrader_process_complete( $plugin_upgrader_instance, $arr_data ) {
366
 
 
 
 
 
367
  /*
368
+
 
 
 
 
 
 
 
 
369
  # WordPress core update
370
 
371
  $arr_data:
loggers/SimplePostLogger.php CHANGED
@@ -1,74 +1,5 @@
1
  <?php
2
 
3
- /*
4
- - vid start av app: login, körs titt som tätt
5
- - XMLRPC_REQUEST": true
6
- do_action( 'xmlrpc_call', 'wp.editPost' );
7
-
8
- * All built-in XML-RPC methods use the action xmlrpc_call, with a parameter
9
- * equal to the method's name, e.g., wp.getUsersBlogs, wp.newPost, etc.
10
- do_action( 'xmlrpc_call', 'wp.getUsersBlogs' );
11
- */
12
-
13
-
14
-
15
- /**
16
- * Fires after a new category has been successfully created via XML-RPC.
17
- *
18
- * @since 3.4.0
19
- *
20
- * @param int $cat_id ID of the new category.
21
- * @param array $args An array of new category arguments.
22
- */
23
- # do_action( 'xmlrpc_call_success_wp_newCategory', $cat_id, $args );
24
-
25
-
26
- /**
27
- * Fires after a category has been successfully deleted via XML-RPC.
28
- *
29
- * @since 3.4.0
30
- *
31
- * @param int $category_id ID of the deleted category.
32
- * @param array $args An array of arguments to delete the category.
33
- */
34
- # do_action( 'xmlrpc_call_success_wp_deleteCategory', $category_id, $args );
35
-
36
-
37
- /**
38
- * Fires after a comment has been successfully deleted via XML-RPC.
39
- *
40
- * @since 3.4.0
41
- *
42
- * @param int $comment_ID ID of the deleted comment.
43
- * @param array $args An array of arguments to delete the comment.
44
- */
45
- # do_action( 'xmlrpc_call_success_wp_deleteComment', $comment_ID, $args );
46
-
47
-
48
- /**
49
- * Fires after a comment has been successfully updated via XML-RPC.
50
- *
51
- * @since 3.4.0
52
- *
53
- * @param int $comment_ID ID of the updated comment.
54
- * @param array $args An array of arguments to update the comment.
55
- */
56
- # do_action( 'xmlrpc_call_success_wp_editComment', $comment_ID, $args );
57
-
58
-
59
- /**
60
- * Fires after a new comment has been successfully created via XML-RPC.
61
- *
62
- * @since 3.4.0
63
- *
64
- * @param int $comment_ID ID of the new comment.
65
- * @param array $args An array of new comment arguments.
66
- */
67
- # do_action( 'xmlrpc_call_success_wp_newComment', $comment_ID, $args );
68
-
69
-
70
-
71
-
72
  /**
73
  * Logs changes to posts and pages, including custom post types
74
  */
@@ -82,89 +13,8 @@ class SimplePostLogger extends SimpleLogger
82
 
83
  add_action("admin_init", array($this, "on_admin_init"));
84
 
85
- $this->add_xml_rpc_hooks();
86
-
87
  }
88
 
89
- /**
90
- * Filters to XML RPC calls needs to be added early, admin_init is to late
91
- */
92
- function add_xml_rpc_hooks() {
93
-
94
- // Debug: log all XML-RPC requests
95
- /*
96
- add_action("xmlrpc_call", function($method) {
97
- SimpleLogger()->debug("XML-RPC call for method '{method}'", array("method" => $method));
98
- }, 10, 1);
99
- */
100
-
101
- add_action('xmlrpc_call_success_blogger_newPost', array($this, "on_xmlrpc_newPost"), 10, 2);
102
- add_action('xmlrpc_call_success_mw_newPost', array($this, "on_xmlrpc_newPost"), 10,2 );
103
-
104
- add_action('xmlrpc_call_success_blogger_editPost', array($this, "on_xmlrpc_editPost"), 10, 2);
105
- add_action('xmlrpc_call_success_mw_editPost', array($this, "on_xmlrpc_editPost"), 10, 2);
106
-
107
- add_action('xmlrpc_call_success_blogger_deletePost', array($this, "on_xmlrpc_deletePost"), 10, 2);
108
- add_action('xmlrpc_call_success_wp_deletePage', array($this, "on_xmlrpc_deletePost"), 10, 2);
109
-
110
- add_action("xmlrpc_call", array($this, "on_xmlrpc_call"), 10, 1);
111
-
112
- }
113
-
114
- function on_xmlrpc_call($method) {
115
-
116
- $arr_methods_to_act_on = array(
117
- "wp.deletePost"
118
- );
119
-
120
- $raw_post_data = null;
121
- $message = null;
122
- $context = array();
123
-
124
- if ( in_array( $method, $arr_methods_to_act_on ) ) {
125
-
126
- // Setup common stuff
127
- $raw_post_data = file_get_contents("php://input");
128
- $context["wp.deletePost.xmldata"] = $this->simpleHistory->json_encode( $raw_post_data );
129
- $message = new IXR_Message( $raw_post_data );
130
-
131
- if ( ! $message->parse() ) {
132
- return;
133
- }
134
-
135
- $context["wp.deletePost.xmlrpc_message"] = $this->simpleHistory->json_encode( $message );
136
- $context["wp.deletePost.xmlrpc_message.messageType"] = $this->simpleHistory->json_encode( $message->messageType );
137
- $context["wp.deletePost.xmlrpc_message.methodName"] = $this->simpleHistory->json_encode( $message->methodName );
138
- $context["wp.deletePost.xmlrpc_message.messageParams"] = $this->simpleHistory->json_encode( $message->params );
139
-
140
- // Actions for delete post
141
- if ( "wp.deletePost" == $method ) {
142
-
143
- // 4 params, where the last is the post id
144
- if ( ! isset( $message->params[3] ) ) {
145
- return;
146
- }
147
-
148
- $post_ID = $message->params[3];
149
-
150
- $post = get_post( $post_ID );
151
-
152
- $context = array(
153
- "post_id" => $post->ID,
154
- "post_type" => get_post_type( $post ),
155
- "post_title" => get_the_title( $post )
156
- );
157
-
158
- $this->infoMessage( "post_trashed", $context );
159
-
160
-
161
- } // if delete post
162
-
163
- }
164
-
165
- }
166
-
167
-
168
  /**
169
  * Get array with information about this logger
170
  *
@@ -220,85 +70,19 @@ class SimplePostLogger extends SimpleLogger
220
 
221
  }
222
 
223
- /**
224
- * Fires after a post has been successfully deleted via the XML-RPC Blogger API.
225
- *
226
- * @since 2.0.21
227
- *
228
- * @param int $post_ID ID of the deleted post.
229
- * @param array $args An array of arguments to delete the post.
230
- */
231
- function on_xmlrpc_deletePost($post_ID, $args) {
232
-
233
- $post = get_post( $post_ID );
234
-
235
- $context = array(
236
- "post_id" => $post->ID,
237
- "post_type" => get_post_type( $post ),
238
- "post_title" => get_the_title( $post )
239
- );
240
-
241
- $this->infoMessage( "post_deleted", $context );
242
-
243
- }
244
-
245
- /**
246
- * Fires after a post has been successfully updated via the XML-RPC API.
247
- *
248
- * @since 2.0.21
249
- *
250
- * @param int $post_ID ID of the updated post.
251
- * @param array $args An array of arguments for the post to edit.
252
- */
253
- function on_xmlrpc_editPost($post_ID, $args) {
254
-
255
- $post = get_post( $post_ID );
256
-
257
- $context = array(
258
- "post_id" => $post->ID,
259
- "post_type" => get_post_type( $post ),
260
- "post_title" => get_the_title( $post )
261
- );
262
-
263
- $this->infoMessage( "post_updated", $context );
264
-
265
- }
266
-
267
- /**
268
- * Fires after a new post has been successfully created via the XML-RPC API.
269
- *
270
- * @since 2.0.21
271
- *
272
- * @param int $post_ID ID of the new post.
273
- * @param array $args An array of new post arguments.
274
- */
275
- function on_xmlrpc_newPost($post_ID, $args) {
276
-
277
- $post = get_post( $post_ID );
278
-
279
- $context = array(
280
- "post_id" => $post->ID,
281
- "post_type" => get_post_type( $post ),
282
- "post_title" => get_the_title( $post )
283
- );
284
-
285
- $this->infoMessage( "post_created", $context );
286
-
287
- }
288
-
289
  /**
290
  * Called when a post is restored from the trash
291
  */
292
  function on_untrash_post($post_id) {
293
 
294
- $post = get_post( $post_id );
295
 
296
- $this->infoMessage(
297
- "post_restored",
298
  array(
299
  "post_id" => $post_id,
300
- "post_type" => get_post_type( $post ),
301
- "post_title" => get_the_title( $post )
302
  )
303
  );
304
 
@@ -449,7 +233,7 @@ class SimplePostLogger extends SimpleLogger
449
 
450
  } else if ( "post_deleted" == $message_key ) {
451
 
452
- $message = __('Deleted {post_type} "{post_title}"', 'simple-history');
453
 
454
  } else if ( "post_created" == $message_key ) {
455
 
1
  <?php
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  /**
4
  * Logs changes to posts and pages, including custom post types
5
  */
13
 
14
  add_action("admin_init", array($this, "on_admin_init"));
15
 
 
 
16
  }
17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  /**
19
  * Get array with information about this logger
20
  *
70
 
71
  }
72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  /**
74
  * Called when a post is restored from the trash
75
  */
76
  function on_untrash_post($post_id) {
77
 
78
+ $post = get_post($post_id);
79
 
80
+ $this->info(
81
+ $this->messages["post_restored"],
82
  array(
83
  "post_id" => $post_id,
84
+ "post_type" => get_post_type($post),
85
+ "post_title" => get_the_title($post)
86
  )
87
  );
88
 
233
 
234
  } else if ( "post_deleted" == $message_key ) {
235
 
236
+ $message = __('Deleted {post_type} "{post_title}"');
237
 
238
  } else if ( "post_created" == $message_key ) {
239
 
loggers/SimpleThemeLogger.php CHANGED
@@ -29,7 +29,7 @@ class SimpleThemeLogger extends SimpleLogger
29
  'widget_added' => __('Added widget "{widget_id_base}" to sidebar "{sidebar_id}"', "simple-history"),
30
  'widget_order_changed' => __('Changed widget order "{widget_id_base}" in sidebar "{sidebar_id}"', "simple-history"),
31
  'widget_edited' => __('Changed widget "{widget_id_base}" in sidebar "{sidebar_id}"', "simple-history"),
32
- "custom_background_changed" => __("Changed settings for the theme custom background", "simple-history")
33
  ),
34
  "labels" => array(
35
  "search" => array(
@@ -605,7 +605,6 @@ return;
605
 
606
  $context = $row->context;
607
  $message_key = $context["_message_key"];
608
- $message = $row->message;
609
  $output = "";
610
 
611
  // Widget changed or added or removed
@@ -617,10 +616,7 @@ return;
617
 
618
  if ( $widget && $sidebar ) {
619
 
620
- // Translate message first
621
- $message = $this->messages[ $message_key ]["translated_text"];
622
-
623
- $message = $this->interpolate( $message, array(
624
  "widget_id_base" => $widget->name,
625
  "sidebar_id" => $sidebar["name"],
626
  ) );
@@ -632,9 +628,9 @@ return;
632
 
633
  }
634
 
635
- // Fallback to default/parent output if nothing was added to output
636
  if ( ! $output ) {
637
-
638
  $output .= parent::getLogRowPlainTextOutput($row);
639
 
640
  }
29
  'widget_added' => __('Added widget "{widget_id_base}" to sidebar "{sidebar_id}"', "simple-history"),
30
  'widget_order_changed' => __('Changed widget order "{widget_id_base}" in sidebar "{sidebar_id}"', "simple-history"),
31
  'widget_edited' => __('Changed widget "{widget_id_base}" in sidebar "{sidebar_id}"', "simple-history"),
32
+ "custom_background_changed" => __("Changed settings for the theme custom background", "simple_history")
33
  ),
34
  "labels" => array(
35
  "search" => array(
605
 
606
  $context = $row->context;
607
  $message_key = $context["_message_key"];
 
608
  $output = "";
609
 
610
  // Widget changed or added or removed
616
 
617
  if ( $widget && $sidebar ) {
618
 
619
+ $message = $this->interpolate( $row->message, array(
 
 
 
620
  "widget_id_base" => $widget->name,
621
  "sidebar_id" => $sidebar["name"],
622
  ) );
628
 
629
  }
630
 
631
+ // Fallback to default/parent output
632
  if ( ! $output ) {
633
+
634
  $output .= parent::getLogRowPlainTextOutput($row);
635
 
636
  }
loggers/SimpleUserLogger.php CHANGED
@@ -3,7 +3,8 @@
3
  /**
4
  * Logs changes to user logins (and logouts)
5
  */
6
- class SimpleUserLogger extends SimpleLogger {
 
7
 
8
  public $slug = __CLASS__;
9
 
@@ -20,7 +21,7 @@ class SimpleUserLogger extends SimpleLogger {
20
  "capability" => "edit_users",
21
  "messages" => array(
22
  'user_login_failed' => __('Failed to login to account with username "{login_user_login}" because an incorrect password was entered', "simple-history"),
23
- 'user_unknown_login_failed' => __('Failed to login with username "{failed_login_username}" because no user with that username exists', "simple-history"),
24
  'user_logged_in' => __('Logged in', "simple-history"),
25
  'user_unknown_logged_in' => __("Unknown user logged in", "simple-history"),
26
  'user_logged_out' => __("Logged out", "simple-history"),
@@ -32,7 +33,7 @@ class SimpleUserLogger extends SimpleLogger {
32
  Text used in admin:
33
  Log Out of All Other Sessions
34
  Left your account logged in at a public computer? Lost your phone? This will log you out everywhere except your current browser
35
- */
36
  'user_session_destroy_others' => _x(
37
  'Logged out from all other sessions',
38
  'User destroys other login sessions for themself',
@@ -41,7 +42,7 @@ class SimpleUserLogger extends SimpleLogger {
41
  /*
42
  Text used in admin:
43
  'Log %s out of all sessions' ), $profileuser->display_name );
44
- */
45
  'user_session_destroy_everywhere' => _x(
46
  'Logged out "{user_display_name}" from all sessions',
47
  'User destroys all login sessions for a user',
@@ -56,29 +57,29 @@ class SimpleUserLogger extends SimpleLogger {
56
  "options" => array(
57
  _x("Successful user logins", "User logger: search", "simple-history") => array(
58
  "user_logged_in",
59
- "user_unknown_logged_in",
60
  ),
61
  _x("Failed user logins", "User logger: search", "simple-history") => array(
62
  'user_login_failed',
63
- 'user_unknown_login_failed',
64
  ),
65
- _x('User logouts', 'User logger: search', 'simple-history') => array(
66
- "user_logged_out",
67
  ),
68
- _x('Created users', 'User logger: search', 'simple-history') => array(
69
- "user_created",
70
  ),
71
  _x("User profile updates", "User logger: search", "simple-history") => array(
72
- "user_updated_profile",
73
- ),
74
- _x('User deletions', 'User logger: search', 'simple-history') => array(
75
- "user_deleted",
76
  ),
 
 
 
77
 
78
- ),
79
- ), // end search
80
 
81
- ), // end labels
82
 
83
  );
84
  #sf_d($arr_info);exit;
@@ -92,14 +93,14 @@ class SimpleUserLogger extends SimpleLogger {
92
  public function loaded() {
93
 
94
  // Plain logins and logouts
95
- add_action("wp_login", array($this, "on_wp_login"), 10, 3);
96
- add_action("wp_logout", array($this, "on_wp_logout"));
97
 
98
  // Failed login attempt to username that exists
99
  add_action("wp_authenticate_user", array($this, "on_wp_authenticate_user"), 10, 2);
100
 
101
  // Failed to login to user that did not exist (perhaps brute force)
102
- add_filter('authenticate', array($this, "on_authenticate"), 10, 3);
103
 
104
  // User is changed
105
  add_action("profile_update", array($this, "on_profile_update"), 10, 2);
@@ -108,13 +109,14 @@ class SimpleUserLogger extends SimpleLogger {
108
  add_action("user_register", array($this, "on_user_register"), 10, 2);
109
 
110
  // User is deleted
111
- add_action('delete_user', array($this, "on_delete_user"), 10, 2);
112
 
113
  // User sessions is destroyed. AJAX call that we hook onto early.
114
  add_action("wp_ajax_destroy-sessions", array($this, "on_destroy_user_session"), 0);
115
 
116
  }
117
 
 
118
  /**
119
  * Called when user dessions are destroyed from admin
120
  * Can be called for current logged in user = destroy all other sessions
@@ -127,31 +129,31 @@ class SimpleUserLogger extends SimpleLogger {
127
 
128
  /*
129
  Post params:
130
- nonce: a14df12195
131
- user_id: 1
132
- action: destroy-sessions
133
- */
134
 
135
- $user = get_userdata((int) $_POST['user_id']);
136
 
137
- if ($user) {
138
- if (!current_user_can('edit_user', $user->ID)) {
139
  $user = false;
140
- } elseif (!wp_verify_nonce($_POST['nonce'], 'update-user_' . $user->ID)) {
141
  $user = false;
142
  }
143
  }
144
 
145
- if (!$user) {
146
  // Could not log out user sessions. Please try again.
147
  return;
148
  }
149
 
150
- $sessions = WP_Session_Tokens::get_instance($user->ID);
151
 
152
  $context = array();
153
 
154
- if ($user->ID === get_current_user_id()) {
155
 
156
  $this->infoMessage("user_session_destroy_others");
157
 
@@ -176,11 +178,11 @@ class SimpleUserLogger extends SimpleLogger {
176
  */
177
  public function on_delete_user($user_id, $reassign) {
178
 
179
- $wp_user_to_delete = get_userdata($user_id);
180
 
181
  // wp_user->roles (array) - the roles the user is part of.
182
  $role = null;
183
- if (is_array($wp_user_to_delete->roles) && !empty($wp_user_to_delete->roles[0])) {
184
  $role = $wp_user_to_delete->roles[0];
185
  }
186
 
@@ -208,20 +210,20 @@ class SimpleUserLogger extends SimpleLogger {
208
  $output = parent::getLogRowPlainTextOutput($row);
209
  $current_user_id = get_current_user_id();
210
 
211
- if ("user_updated_profile" == $context["_message_key"]) {
212
 
213
- $wp_user = get_user_by("id", $context["edited_user_id"]);
214
 
215
  // If edited_user_id and _user_id is the same then a user edited their own profile
216
  // Note: it's not the same thing as the currently logged in user (but.. it can be!)
217
- if ($context["edited_user_id"] === $context["_user_id"]) {
218
 
219
  if ($wp_user) {
220
 
221
- $context["edit_profile_link"] = get_edit_user_link($wp_user->ID);
222
 
223
  // User still exist, so link to their profile
224
- if ($current_user_id === $context["_user_id"]) {
225
 
226
  // User that is viewing the log is the same as the edited user
227
  $msg = __('Edited <a href="{edit_profile_link}">your profile</a>', "simple-history");
@@ -249,7 +251,7 @@ class SimpleUserLogger extends SimpleLogger {
249
  // Edited user still exist, so link to their profile
250
  $context["edit_profile_link"] = get_edit_user_link($wp_user->ID);
251
  $msg = __('Edited the profile for user <a href="{edit_profile_link}">{edited_user_login} ({edited_user_email})</a>', "simple-history");
252
- $output = $this->interpolate($msg, $context);
253
 
254
  } else {
255
 
@@ -259,57 +261,94 @@ class SimpleUserLogger extends SimpleLogger {
259
 
260
  }
261
 
262
- }// if user_updated_profile
263
 
264
  return $output;
265
  }
266
 
 
267
  /**
268
- * User logs in
269
  *
270
- * @param string $user_login
271
- * @param object $user
272
  */
273
- function on_wp_login($user_login, $user) {
274
 
275
- $context = array(
276
- "user_login" => $user_login
277
- );
278
 
279
- if ( isset( $user_login ) ) {
 
 
 
 
 
 
 
 
 
 
 
280
 
281
- $user_obj = get_user_by( "login", $user_login );
282
-
283
- } else if ( isset( $user ) && isset( $user->ID ) ) {
284
-
285
- $user_obj = get_user_by( "id", $user->ID );
 
 
 
 
 
 
 
 
 
 
286
 
287
  }
288
 
289
- if ( is_a( $user_obj, "WP_User" ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
 
291
  $context = array(
292
- "user_id" => $user_obj->ID,
293
- "user_email" => $user_obj->user_email,
294
- "user_login" => $user_obj->user_login,
295
  );
296
 
297
  // Override some data that is usually set automagically by Simple History
298
  // Because wp_get_current_user() does not return any data yet at this point
299
  $context["_initiator"] = SimpleLoggerLogInitiators::WP_USER;
300
- $context["_user_id"] = $user_obj->ID;
301
- $context["_user_login"] = $user_obj->user_login;
302
- $context["_user_email"] = $user_obj->user_email;
303
  $context["server_http_user_agent"] = $_SERVER["HTTP_USER_AGENT"];
304
 
305
  $this->infoMessage("user_logged_in", $context);
306
 
307
  } else {
308
 
309
- // Could not get any info about the user logging in
310
- $this->warningMessage("user_unknown_logged_in", $context);
 
 
311
  }
312
-
313
  }
314
 
315
  /**
@@ -327,11 +366,10 @@ class SimpleUserLogger extends SimpleLogger {
327
  */
328
  function on_profile_update($user_id) {
329
 
330
- if (!$user_id || !is_numeric($user_id)) {
331
  return;
332
- }
333
 
334
- $wp_user_edited = get_userdata($user_id);
335
 
336
  $context = array(
337
  "edited_user_id" => $wp_user_edited->ID,
@@ -349,15 +387,14 @@ class SimpleUserLogger extends SimpleLogger {
349
  */
350
  function on_user_register($user_id) {
351
 
352
- if (!$user_id || !is_numeric($user_id)) {
353
  return;
354
- }
355
 
356
- $wp_user_added = get_userdata($user_id);
357
 
358
  // wp_user->roles (array) - the roles the user is part of.
359
  $role = null;
360
- if (is_array($wp_user_added->roles) && !empty($wp_user_added->roles[0])) {
361
  $role = $wp_user_added->roles[0];
362
  }
363
 
@@ -373,66 +410,19 @@ class SimpleUserLogger extends SimpleLogger {
373
 
374
  }
375
 
376
- /**
377
- * Log failed login attempt to username that exists
378
- *
379
- * @param object $user user object that was tried to gain access to
380
- * @param string password used
381
- */
382
- function on_wp_authenticate_user($user, $password) {
383
-
384
- // Only log failed attempts
385
- if (!wp_check_password($password, $user->user_pass, $user->ID)) {
386
-
387
- // Overwrite some vars that Simple History set automagically
388
- $context = array(
389
- "_initiator" => SimpleLoggerLogInitiators::WEB_USER,
390
- "_user_id" => null,
391
- "_user_login" => null,
392
- "_user_email" => null,
393
- "login_user_id" => $user->ID,
394
- "login_user_email" => $user->user_email,
395
- "login_user_login" => $user->user_login,
396
- "server_http_user_agent" => $_SERVER["HTTP_USER_AGENT"],
397
- //"_occasionsID" => __CLASS__ . '/' . __FUNCTION__ . "/failed_user_login/userid:{$user->ID}"
398
- "_occasionsID" => __CLASS__ . '/failed_user_login',
399
- );
400
-
401
- /**
402
- * Maybe store password too
403
- * Default is to not do this because of privacy and security
404
- *
405
- * @since 2.0
406
- *
407
- * @param bool $log_password
408
- */
409
- $log_password = false;
410
- $log_password = apply_filters("simple_history/comments_logger/log_failed_password", $log_password);
411
- if ($log_password) {
412
- $context["login_user_password"] = $password;
413
- }
414
-
415
- $this->warningMessage("user_login_failed", $context);
416
-
417
- }
418
-
419
- return $user;
420
-
421
- }
422
-
423
  /**
424
  * Attempt to login to user that does not exist
425
  */
426
  function on_authenticate($user, $username, $password) {
427
 
428
  // Don't log empty usernames
429
- if (!trim($username)) {
430
  return $user;
431
  }
432
 
433
  // If username is not a user in the system then this
434
  // is consideraded a failed login attempt
435
- $wp_user = get_user_by("login", $username);
436
 
437
  if (false === $wp_user) {
438
 
@@ -442,11 +432,7 @@ class SimpleUserLogger extends SimpleLogger {
442
  "server_http_user_agent" => $_SERVER["HTTP_USER_AGENT"],
443
  // count all failed logins to unknown users as the same occasions,
444
  // to prevent log being flooded with login/hack attempts
445
- // "_occasionsID" => __CLASS__ . '/' . __FUNCTION__
446
- // Use same occasionsID as for failed login attempts to existing users,
447
- // because log can flood otherwise if hacker is rotating existing and non-existing usernames
448
- //"_occasionsID" => __CLASS__ . '/' . __FUNCTION__ . "/failed_user_login/userid:{$user->ID}"
449
- "_occasionsID" => __CLASS__ . '/failed_user_login',
450
  );
451
 
452
  /**
@@ -469,6 +455,7 @@ class SimpleUserLogger extends SimpleLogger {
469
 
470
  return $user;
471
 
 
472
  }
473
 
474
  }
3
  /**
4
  * Logs changes to user logins (and logouts)
5
  */
6
+ class SimpleUserLogger extends SimpleLogger
7
+ {
8
 
9
  public $slug = __CLASS__;
10
 
21
  "capability" => "edit_users",
22
  "messages" => array(
23
  'user_login_failed' => __('Failed to login to account with username "{login_user_login}" because an incorrect password was entered', "simple-history"),
24
+ 'user_unknown_login_failed' => __('Failed to login with username "{failed_login_username}" because no user with that username exist', "simple-history"),
25
  'user_logged_in' => __('Logged in', "simple-history"),
26
  'user_unknown_logged_in' => __("Unknown user logged in", "simple-history"),
27
  'user_logged_out' => __("Logged out", "simple-history"),
33
  Text used in admin:
34
  Log Out of All Other Sessions
35
  Left your account logged in at a public computer? Lost your phone? This will log you out everywhere except your current browser
36
+ */
37
  'user_session_destroy_others' => _x(
38
  'Logged out from all other sessions',
39
  'User destroys other login sessions for themself',
42
  /*
43
  Text used in admin:
44
  'Log %s out of all sessions' ), $profileuser->display_name );
45
+ */
46
  'user_session_destroy_everywhere' => _x(
47
  'Logged out "{user_display_name}" from all sessions',
48
  'User destroys all login sessions for a user',
57
  "options" => array(
58
  _x("Successful user logins", "User logger: search", "simple-history") => array(
59
  "user_logged_in",
60
+ "user_unknown_logged_in"
61
  ),
62
  _x("Failed user logins", "User logger: search", "simple-history") => array(
63
  'user_login_failed',
64
+ 'user_unknown_login_failed'
65
  ),
66
+ _x('User logouts', 'User logger: search', 'simple-history') => array(
67
+ "user_logged_out"
68
  ),
69
+ _x('Created users', 'User logger: search', 'simple-history') => array(
70
+ "user_created"
71
  ),
72
  _x("User profile updates", "User logger: search", "simple-history") => array(
73
+ "user_updated_profile"
 
 
 
74
  ),
75
+ _x('User deletions', 'User logger: search', 'simple-history') => array(
76
+ "user_deleted"
77
+ )
78
 
79
+ )
80
+ ) // end search
81
 
82
+ ) // end labels
83
 
84
  );
85
  #sf_d($arr_info);exit;
93
  public function loaded() {
94
 
95
  // Plain logins and logouts
96
+ add_action("wp_login", array($this, "on_wp_login" ), 10, 3 );
97
+ add_action("wp_logout", array($this, "on_wp_logout" ) );
98
 
99
  // Failed login attempt to username that exists
100
  add_action("wp_authenticate_user", array($this, "on_wp_authenticate_user"), 10, 2);
101
 
102
  // Failed to login to user that did not exist (perhaps brute force)
103
+ add_filter( 'authenticate', array($this, "on_authenticate"), 10, 3);
104
 
105
  // User is changed
106
  add_action("profile_update", array($this, "on_profile_update"), 10, 2);
109
  add_action("user_register", array($this, "on_user_register"), 10, 2);
110
 
111
  // User is deleted
112
+ add_action( 'delete_user', array($this, "on_delete_user"), 10, 2 );
113
 
114
  // User sessions is destroyed. AJAX call that we hook onto early.
115
  add_action("wp_ajax_destroy-sessions", array($this, "on_destroy_user_session"), 0);
116
 
117
  }
118
 
119
+
120
  /**
121
  * Called when user dessions are destroyed from admin
122
  * Can be called for current logged in user = destroy all other sessions
129
 
130
  /*
131
  Post params:
132
+ nonce: a14df12195
133
+ user_id: 1
134
+ action: destroy-sessions
135
+ */
136
 
137
+ $user = get_userdata( (int) $_POST['user_id'] );
138
 
139
+ if ( $user ) {
140
+ if ( ! current_user_can( 'edit_user', $user->ID ) ) {
141
  $user = false;
142
+ } elseif ( ! wp_verify_nonce( $_POST['nonce'], 'update-user_' . $user->ID ) ) {
143
  $user = false;
144
  }
145
  }
146
 
147
+ if ( ! $user ) {
148
  // Could not log out user sessions. Please try again.
149
  return;
150
  }
151
 
152
+ $sessions = WP_Session_Tokens::get_instance( $user->ID );
153
 
154
  $context = array();
155
 
156
+ if ( $user->ID === get_current_user_id() ) {
157
 
158
  $this->infoMessage("user_session_destroy_others");
159
 
178
  */
179
  public function on_delete_user($user_id, $reassign) {
180
 
181
+ $wp_user_to_delete = get_userdata( $user_id );
182
 
183
  // wp_user->roles (array) - the roles the user is part of.
184
  $role = null;
185
+ if ( is_array( $wp_user_to_delete->roles ) && ! empty( $wp_user_to_delete->roles[0] ) ) {
186
  $role = $wp_user_to_delete->roles[0];
187
  }
188
 
210
  $output = parent::getLogRowPlainTextOutput($row);
211
  $current_user_id = get_current_user_id();
212
 
213
+ if ( "user_updated_profile" == $context["_message_key"]) {
214
 
215
+ $wp_user = get_user_by( "id", $context["edited_user_id"] );
216
 
217
  // If edited_user_id and _user_id is the same then a user edited their own profile
218
  // Note: it's not the same thing as the currently logged in user (but.. it can be!)
219
+ if ( $context["edited_user_id"] === $context["_user_id"] ) {
220
 
221
  if ($wp_user) {
222
 
223
+ $context["edit_profile_link"] = get_edit_user_link( $wp_user->ID );
224
 
225
  // User still exist, so link to their profile
226
+ if ( $current_user_id === $context["_user_id"] ) {
227
 
228
  // User that is viewing the log is the same as the edited user
229
  $msg = __('Edited <a href="{edit_profile_link}">your profile</a>', "simple-history");
251
  // Edited user still exist, so link to their profile
252
  $context["edit_profile_link"] = get_edit_user_link($wp_user->ID);
253
  $msg = __('Edited the profile for user <a href="{edit_profile_link}">{edited_user_login} ({edited_user_email})</a>', "simple-history");
254
+ $output = $this->interpolate( $msg, $context );
255
 
256
  } else {
257
 
261
 
262
  }
263
 
264
+ } // if user_updated_profile
265
 
266
  return $output;
267
  }
268
 
269
+
270
  /**
271
+ * Log failed login attempt to username that exists
272
  *
273
+ * @param object $user user object that was tried to gain access to
274
+ * @param string password used
275
  */
276
+ function on_wp_authenticate_user($user, $password) {
277
 
278
+ // Only log failed attempts
279
+ if ( ! wp_check_password($password, $user->user_pass, $user->ID) ) {
 
280
 
281
+ // Overwrite some vars that Simple History set automagically
282
+ $context = array(
283
+ "_initiator" => SimpleLoggerLogInitiators::WEB_USER,
284
+ "_user_id" => null,
285
+ "_user_login" => null,
286
+ "_user_email" => null,
287
+ "login_user_id" => $user->ID,
288
+ "login_user_email" => $user->user_email,
289
+ "login_user_login" => $user->user_login,
290
+ "server_http_user_agent" => $_SERVER["HTTP_USER_AGENT"],
291
+ "_occasionsID" => __CLASS__ . '/' . __FUNCTION__ . "/failed_user_login/userid:{$user->ID}"
292
+ );
293
 
294
+ /**
295
+ * Maybe store password too
296
+ * Default is to not do this because of privacy and security
297
+ *
298
+ * @since 2.0
299
+ *
300
+ * @param bool $log_password
301
+ */
302
+ $log_password = false;
303
+ $log_password = apply_filters("simple_history/comments_logger/log_failed_password", $log_password);
304
+ if ($log_password) {
305
+ $context["login_user_password"] = $password;
306
+ }
307
+
308
+ $this->warningMessage("user_login_failed", $context);
309
 
310
  }
311
 
312
+ return $user;
313
+
314
+ }
315
+
316
+ /**
317
+ * User logs in
318
+ *
319
+ * @param string $user_login
320
+ * @param object $user
321
+ */
322
+ function on_wp_login($user_login, $user) {
323
+
324
+ $context = array();
325
+
326
+ if ( $user->ID ) {
327
 
328
  $context = array(
329
+ "user_id" => $user->ID,
330
+ "user_email" => $user->user_email,
331
+ "user_login" => $user->user_login
332
  );
333
 
334
  // Override some data that is usually set automagically by Simple History
335
  // Because wp_get_current_user() does not return any data yet at this point
336
  $context["_initiator"] = SimpleLoggerLogInitiators::WP_USER;
337
+ $context["_user_id"] = $user->ID;
338
+ $context["_user_login"] = $user->user_login;
339
+ $context["_user_email"] = $user->user_email;
340
  $context["server_http_user_agent"] = $_SERVER["HTTP_USER_AGENT"];
341
 
342
  $this->infoMessage("user_logged_in", $context);
343
 
344
  } else {
345
 
346
+ // when does this happen?
347
+ $this->warningMessage("user_unknown_logged_in", $context );
348
+
349
+
350
  }
351
+
352
  }
353
 
354
  /**
366
  */
367
  function on_profile_update($user_id) {
368
 
369
+ if ( ! $user_id || ! is_numeric($user_id))
370
  return;
 
371
 
372
+ $wp_user_edited = get_userdata( $user_id );
373
 
374
  $context = array(
375
  "edited_user_id" => $wp_user_edited->ID,
387
  */
388
  function on_user_register($user_id) {
389
 
390
+ if ( ! $user_id || ! is_numeric($user_id))
391
  return;
 
392
 
393
+ $wp_user_added = get_userdata( $user_id );
394
 
395
  // wp_user->roles (array) - the roles the user is part of.
396
  $role = null;
397
+ if ( is_array( $wp_user_added->roles ) && ! empty( $wp_user_added->roles[0] ) ) {
398
  $role = $wp_user_added->roles[0];
399
  }
400
 
410
 
411
  }
412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
413
  /**
414
  * Attempt to login to user that does not exist
415
  */
416
  function on_authenticate($user, $username, $password) {
417
 
418
  // Don't log empty usernames
419
+ if ( ! trim($username)) {
420
  return $user;
421
  }
422
 
423
  // If username is not a user in the system then this
424
  // is consideraded a failed login attempt
425
+ $wp_user = get_user_by( "login", $username );
426
 
427
  if (false === $wp_user) {
428
 
432
  "server_http_user_agent" => $_SERVER["HTTP_USER_AGENT"],
433
  // count all failed logins to unknown users as the same occasions,
434
  // to prevent log being flooded with login/hack attempts
435
+ "_occasionsID" => __CLASS__ . '/' . __FUNCTION__
 
 
 
 
436
  );
437
 
438
  /**
455
 
456
  return $user;
457
 
458
+
459
  }
460
 
461
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ 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.1
7
- Stable tag: 2.0.21
8
 
9
  View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
10
 
@@ -76,15 +76,9 @@ if ( function_exists("SimpleLogger") ) {
76
 
77
  #### Translations/Languages
78
 
79
- So far Simple History is translated to:
80
 
81
- * Swedish
82
- * German
83
- * Polish
84
- * Danish
85
- * Dutch
86
-
87
- I'm looking for translations of Simple History in more languages! If you're interested please check out the [localization](https://developer.wordpress.org/plugins/internationalization/localization/) part of the Plugin Handbook for info on how to translate plugins. When you're done with your translation email it to me at par.thernstrom@gmail.com, or [add a pull request](https://github.com/bonny/WordPress-Simple-History/).
88
 
89
  #### Contribute at GitHub
90
 
@@ -107,113 +101,12 @@ initiated by a specific user.
107
 
108
  3. Events have context with extra details - Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
109
 
110
- 4. Click on the IP address of an entry to view the location of for example a failed login attempt.
111
 
112
  == Changelog ==
113
 
114
- = 2.0.21 (February 2015) =
115
-
116
- - Added: Updates via XML RPC are now logged, for example when using the WordPress app for iOS or Android. Supported actions for now is post/page created, edited, deleted, and media uploads.
117
- - Added: `_xmlrpc_request` is added to context of event when an event is initiated through a XML-RPC all.
118
- - Changed: RSS feed now has loglevel of event prepended to the title.
119
- - Changed: Options logger now only shows the first 250 chars of new and old option values. Really long values could make the log look strange.
120
- - Added: If constant SIMPLE_HISTORY_LOG_DEBUG is defined and true automatically adds $_GET, $_POST, and more info to each logged event. Mostly useful for the developer, but maybe some of you are a bit paranoid and want it too.
121
- - Updated: German translation updated.
122
-
123
- = 2.0.20 (February 2015) =
124
-
125
- - Added: changes via [WP-CLI](http://wp-cli.org) is now detected (was previously shown as "other").
126
- - Added: severity level (info, warning, debug, etc.) of event is includes in the RSS output.
127
- - Changed the way user login is logged. Should fix https://github.com/bonny/WordPress-Simple-History/issues/40 + possible more related issues.
128
- - Added: filter `simple_history/simple_logger/log_message_key` added, that can be used to shortcut log messages. See [example file](https://github.com/bonny/WordPress-Simple-History/blob/master/examples.php) for usage. Fixes https://wordpress.org/support/topic/stop-logging-certain-types-of-activity.
129
- - Added: now uses object caching at some places. Should speed up some parts of the plugin for users with caching enabled.
130
- - Fixed: IP info popup can now be closed with `esc`.
131
- - Fixed: works better on small screens (like mobile phones) + misc other style related fixes.
132
-
133
- = 2.0.19 (February 2015) =
134
-
135
- - Added: Dutch translation by [https://github.com/niknetniko](https://github.com/niknetniko). Thanks!
136
- - Changed: better compatibilty with plugins like [WP User Avatar](https://wordpress.org/plugins/wp-user-avatar/).
137
- - Updated: German translation update.
138
-
139
- = 2.0.18 (January 2015) =
140
-
141
- - Fixed: really correctly show the version number of the previous version!
142
-
143
- = 2.0.17 (January 2015) =
144
-
145
- - Added: messages added using for example `SimpleLogger()->info( __("My log message") )` that have translations now auto translated the message back to english before storing the message (together with the text domain). Then upon retrieval it uses the english message + the text domain to translate the message to the currently selected language. This makes it easier to make multilingual log entries. (Yeah, I know its hard to understand what the heck this does, but it's something good and cool, trust me!)
146
- - Added: A sidebar with text contents on the history page.
147
- - Changed: Search now shows only the search box by default, with a link to show all search options.
148
- - Fixed: Search is now available at the dashboard again. Hooray!
149
- - Fixed: Old entries were not cleared automatically. Now it correctly removes old events, so your database will not risk growing to large.
150
- - Fixed: Quick stats could show two messages sometimes.
151
- - Fixed: When headers like `HTTP_X_FORWARDED_FOR` exists all valid IPs in that header is now stored.
152
- - Fixed: Plugin updates via third party software like [InfiniteWP](http://infinitewp.com/) should now correctly show the version number of the previous version.
153
- - Updated: German translation updated.
154
- - Notice: Do you read these messages? Then you must love this plugin! Come on then, [go and give it a nice review](https://wordpress.org/support/view/plugin-reviews/simple-history).
155
-
156
- = 2.0.16 (January 2015) =
157
-
158
- - Fixed: Use the [X-Forwarded-For header](http://en.wikipedia.org/wiki/X-Forwarded-For), if it is set, to determine remote IP address. Should now correctly store IP addresses for servers behind load balancers or for clients going through proxies. Fixes https://wordpress.org/support/topic/use-x-forwarded-for-http-header-when-logging-remote_addr.
159
- - Changed: Failed login attempts from unknown and known users are now grouped together. This change was made because a hacker could make many login attempts to a site and rotate the logins, so they would try with both existing and non existing user names, which would make the log flood with failed login attempts.
160
- - Changed: use "n similar events" instead of "n more", to more cleary mark that the grouped events are not necessary exactly the same kind.
161
- - Changed: Quick stats text changed, to also include other sources. Previous behavior was to only include events from WordPress users, but now also events from anonymous users and WordPress (like from WP-Cron) are included.
162
-
163
- = 2.0.15 (January 2015) =
164
-
165
- - Fixed: Widget changes where not always translated.
166
- - Fixed: More RSS fixes to make feed valid. Maybe even for real this time.
167
- - Updated: German translation updated.
168
-
169
- = 2.0.14 (January 2015) =
170
-
171
- - Added: Danish translation added. Thanks [ThomasDK81](https://github.com/ThomasDK81)!
172
- - Misc translation fixes, for example the log levels where not translateable (it may be a good idea to keep the original English ones however because they are the ones that are common in other software).
173
-
174
- = 2.0.13 (January 2015) =
175
-
176
- - Fixed: RSS feed is now valid according to http://validator.w3.org/. Fixes https://wordpress.org/support/topic/a-feed-which-was-valid-under-v206-is-no-longer-under-v209-latest.
177
- - Translation fixes. Thanks [ThomasDK81](https://github.com/ThomasDK81)!
178
-
179
- = 2.0.12 (January 2015) =
180
-
181
- - Fixed: Deleted attachments did not get translations.
182
- - Fixed: A notice when showing details for a deleted attachment.
183
-
184
- = 2.0.11 (January 2015) =
185
-
186
- - Fixed: Comments where not logged correctly.
187
- - Fixed: Comments where not translated correctly.
188
- - Updated: German translation updated.
189
-
190
- = 2.0.10 (January 2015) =
191
-
192
- - Updated: Polish translation updated. Thanks [https://github.com/m-czardybon](m-czardybon)!
193
- - Updated: German translation updated. Thanks [http://klein-aber-fein.de/](Ralph)!
194
- - Updated: Swedish translation updated.
195
-
196
- = 2.0.9 (December 2014) =
197
-
198
- - Actually enable IP address lookup for all users. Sorry for missing to do that! ;)
199
-
200
- = 2.0.8 (December 2014) =
201
-
202
- - Added: IP addresses can now be clicked to view IP address info from [ipinfo.io](http://ipinfo.io). This will get you the location and network of an IP address and help you determine from where for example a failed login attempt originates from. [See screenshot of IP address info in action](http://glui.me/?d=y89nbgmvmfnxl4r/ip%20address%20information%20popup.png/).
203
- - Added: new action `simple_history/admin_footer`, to output HTML and JavaScript in footer on pages that belong to Simple History
204
- - Added: new trigger for JavaScript: `SimpleHistory:logReloadStart`. Fired when the log starts to reload, like when using the pagination or using the filter function.
205
- - Fixed: use Mustache-inspired template tags instead of Underscore default ones, because they don't work with PHP with asp_tags on.
206
- - Updated: Swedish translation updated
207
-
208
- = 2.0.7 (December 2014) =
209
-
210
- - Fix: no message when restoring page from trash
211
- - Fix: use correct width for media attachment
212
- - Add: filter `simple_history/logrowhtmloutput/classes`, to modify HTML classes added to each log row item
213
-
214
  = 2.0.6 (November 2014) =
215
 
216
- - Added: [WordPress 4.1 added the feature to log out a user from all their sessions](http://codex.wordpress.org/Version_4.1#Users). Simple History now logs when a user is logged out from all their sessions except the current browser, or if an admin destroys all sessions for a user. [View screenshot of new session logout log item](https://dl.dropboxusercontent.com/s/k4cmfmncekmfiib/2014-12-simple-history-changelog-user-sessions.png)
217
 
218
  - Added: filter to shortcut loading of a dropin. Example that completely skips loading the RSS-feed-dropin:
219
  `add_filter("simple_history/dropin/load_dropin_SimpleHistoryRSSDropin", "__return_false");`
@@ -257,25 +150,6 @@ I've spend hundreds of hours making this update, so if you use it and like it pl
257
  - Users see different logs depending on their capability, for example an administrator will see what plugins have been installed, but an editor will not see any plugin related logs
258
  - Much much more.
259
 
260
- = 1.3.11 =
261
- - Don't use deprecated function get_commentdata(). Fixes https://wordpress.org/support/topic/get_commentdata-function-is-deprecated.
262
- - Don't use mysql_query() directly. Fixes https://wordpress.org/support/topic/deprecated-mysql-warning.
263
- - Beta testers wanted! I'm working on the next version of Simple History and now I need some beta testers. If you want to try out the shiny new and cool version please download the [v2 branch](https://github.com/bonny/WordPress-Simple-History/tree/v2) over at GitHub. Thanks!
264
-
265
- = 1.3.10 =
266
- - Fix: correct usage of "its"
267
- - Fix: removed serif font in log. Fixes https://wordpress.org/support/topic/two-irritations-and-pleas-for-change.
268
-
269
- = 1.3.9 =
270
- - Fixed strict standards warning
271
- - Tested on WordPress 4.0
272
-
273
- = 1.3.8 =
274
- - Added filter for rss feed: `simple_history/rss_feed_show`. Fixes more things in this thread: http://wordpress.org/support/topic/more-rss-feed-items.
275
-
276
- = 1.3.7 =
277
- - Added filter for rss feed: `simple_history/rss_feed_args`. Fixes http://wordpress.org/support/topic/more-rss-feed-items.
278
-
279
  = 1.3.6 =
280
  - Added Polish translation
281
  - Added correct XML encoding and header
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.1
7
+ Stable tag: 2.0.6
8
 
9
  View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
10
 
76
 
77
  #### Translations/Languages
78
 
79
+ I'm looking for translations of Simple History!
80
 
81
+ Check out the [localization](https://developer.wordpress.org/plugins/internationalization/localization/) part of the Plugin Handbook for info on how to translate plugins. When you're done with your translation email it to me at par.thernstrom@gmail.com, or [add a pull request](https://github.com/bonny/WordPress-Simple-History/tree/v2).
 
 
 
 
 
 
82
 
83
  #### Contribute at GitHub
84
 
101
 
102
  3. Events have context with extra details - Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
103
 
 
104
 
105
  == Changelog ==
106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  = 2.0.6 (November 2014) =
108
 
109
+ - Added: [WordPress 4.1 added the feature to log out a user from all their sessions](http://codex.wordpress.org/Version_4.1#Users). Simple History now logs when a user is logged out from all their sessions except the current browser, or if an admin destroys all sessions for a user. [View screenshot of new session logout log item](http://glui.me/?d=k4cmfmncekmfiib/2014-12-simple-history-changelog-user-sessions.png/)
110
 
111
  - Added: filter to shortcut loading of a dropin. Example that completely skips loading the RSS-feed-dropin:
112
  `add_filter("simple_history/dropin/load_dropin_SimpleHistoryRSSDropin", "__return_false");`
150
  - Users see different logs depending on their capability, for example an administrator will see what plugins have been installed, but an editor will not see any plugin related logs
151
  - Much much more.
152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  = 1.3.6 =
154
  - Added Polish translation
155
  - Added correct XML encoding and header
screenshot-1.png CHANGED
Binary file
screenshot-2.png CHANGED
Binary file
screenshot-3.png CHANGED
Binary file
screenshot-4.png DELETED
Binary file
templates/settings-statsForGeeks.php CHANGED
@@ -100,9 +100,9 @@ echo "<p class='hide-if-no-js'><button class='button js-SimpleHistoryShowsStatsF
100
  echo "
101
  <thead>
102
  <tr>
103
- <th>Name + Slug</th>
 
104
  <th>Description</th>
105
- <th>Messages</th>
106
  <th>Capability</th>
107
  <th>Rows count</th>
108
  </tr>
@@ -143,36 +143,23 @@ echo "<p class='hide-if-no-js'><button class='button js-SimpleHistoryShowsStatsF
143
  }
144
 
145
  $logger_info = $logger->getInfo();
146
- $logger_messages = $logger_info["messages"];
147
-
148
- $html_logger_messages = "";
149
- foreach ($logger_messages as $message_key => $message) {
150
- $html_logger_messages .= sprintf('<li>%1$s</li>', esc_html($message));
151
- }
152
- if ($html_logger_messages) {
153
- $html_logger_messages = "<ul>{$html_logger_messages}</ul>";
154
- }
155
 
156
  printf(
157
  '
158
  <tr class="%6$s">
159
- <td>
160
- <p><strong>%3$s</strong>
161
- <br><code>%2$s</code></p>
162
- </td>
163
- <td><p>%4$s</p></td>
164
- <td>%7$s</td>
165
- <td><p>%5$s</p></td>
166
- <td><p>%1$s</p></td>
167
  </tr>
168
  ',
169
  $one_logger_count->count,
170
  $one_logger_slug,
171
  esc_html( $logger_info["name"]),
172
- esc_html( $logger_info["description"]), // 4
173
  esc_html( $logger_info["capability"]),
174
- $loopnum % 2 ? " alt " : "", // 6
175
- $html_logger_messages // 7
176
  );
177
 
178
  $loopnum++;
100
  echo "
101
  <thead>
102
  <tr>
103
+ <th>Slug</th>
104
+ <th>Name</th>
105
  <th>Description</th>
 
106
  <th>Capability</th>
107
  <th>Rows count</th>
108
  </tr>
143
  }
144
 
145
  $logger_info = $logger->getInfo();
 
 
 
 
 
 
 
 
 
146
 
147
  printf(
148
  '
149
  <tr class="%6$s">
150
+ <td>%2$s</td>
151
+ <td>%3$s</td>
152
+ <td>%4$s</td>
153
+ <td>%5$s</td>
154
+ <td>%1$s</td>
 
 
 
155
  </tr>
156
  ',
157
  $one_logger_count->count,
158
  $one_logger_slug,
159
  esc_html( $logger_info["name"]),
160
+ esc_html( $logger_info["description"]),
161
  esc_html( $logger_info["capability"]),
162
+ $loopnum % 2 ? " alt " : "" // 6
 
163
  );
164
 
165
  $loopnum++;