MainWP Child Reports - Version 1.9.1

Version Description

  • 11-13-2018 =
  • Fixed: an issue with missing data fields
  • Updated: WooCommerce order notes excluded from showing as comments
  • Updated: translation files
Download this release

Release Info

Developer mainwp
Plugin Icon 128x128 MainWP Child Reports
Version 1.9.1
Comparing to
See all releases

Code changes from version 1.8 to 1.9.1

connectors/comments.php CHANGED
@@ -4,7 +4,7 @@ class MainWP_WP_Stream_Connector_Comments extends MainWP_WP_Stream_Connector {
4
 
5
  public static $name = 'comments';
6
 
7
- public static $actions = array(
8
  'wp_insert_comment',
9
  'edit_comment',
10
  'delete_comment',
@@ -309,9 +309,11 @@ class MainWP_WP_Stream_Connector_Comments extends MainWP_WP_Stream_Connector {
309
  }
310
 
311
  public static function get_ignored_comment_types() {
 
 
312
  return apply_filters(
313
  'mainwp_wp_stream_comment_exclude_comment_types',
314
- array()
315
  );
316
  }
317
 
4
 
5
  public static $name = 'comments';
6
 
7
+ public static $actions = array(
8
  'wp_insert_comment',
9
  'edit_comment',
10
  'delete_comment',
309
  }
310
 
311
  public static function get_ignored_comment_types() {
312
+ $comment_types[] = 'order_note';
313
+ $comment_types[] = 'action_log';
314
  return apply_filters(
315
  'mainwp_wp_stream_comment_exclude_comment_types',
316
+ $comment_types
317
  );
318
  }
319
 
connectors/posts.php CHANGED
@@ -16,7 +16,7 @@ class MainWP_WP_Stream_Connector_Posts extends MainWP_WP_Stream_Connector {
16
  public static function get_action_labels() {
17
  return array(
18
  'updated' => __( 'Updated', 'mainwp-child-reports' ),
19
- 'autosave' => __( 'Auto save', 'mainwp-child-reports' ),
20
  'created' => __( 'Created', 'mainwp-child-reports' ),
21
  'trashed' => __( 'Trashed', 'mainwp-child-reports' ),
22
  'untrashed' => __( 'Restored', 'mainwp-child-reports' ),
@@ -140,9 +140,9 @@ class MainWP_WP_Stream_Connector_Posts extends MainWP_WP_Stream_Connector {
140
  '"%1$s" %2$s updated',
141
  '1: Post title, 2: Post type singular name',
142
  'mainwp_child_reports'
143
- );
144
- if (defined( 'DOING_AUTOSAVE' ) )
145
- $action = 'autosave';
146
  }
147
 
148
  if ( empty( $action ) ) {
@@ -168,26 +168,26 @@ class MainWP_WP_Stream_Connector_Posts extends MainWP_WP_Stream_Connector {
168
  }
169
 
170
  $post_type_name = strtolower( self::get_post_type_name( $post->post_type ) );
171
-
172
  if ($action == 'updated' && ($post->post_type == 'page' || $post->post_type == 'post')) {
173
- $report_settings = get_option('mainwp_wp_stream', array());
174
- $minutes = is_array($report_settings) && isset($report_settings['general_period_of_time']) ? $report_settings['general_period_of_time'] : 30;
175
- if (!empty($minutes) && intval($minutes) > 0) {
176
  $args = array();
177
  $args['object_id'] = $post->ID;
178
  $date_from = time() - $minutes * 60;
179
- $args['datetime_from'] = date( 'Y-m-d H:i:s', $date_from );
180
  $args['context'] = $post->post_type;
181
- $args['action'] = 'updated';
182
- $args['records_per_page'] = 9999;
183
  $args['orderby'] = 'created';
184
- $args['order'] = 'desc';
185
- $items = mainwp_wp_stream_query( $args );
186
  if (count($items) > 0)
187
  return;
188
  }
189
  }
190
-
191
  self::log(
192
  $message,
193
  array(
16
  public static function get_action_labels() {
17
  return array(
18
  'updated' => __( 'Updated', 'mainwp-child-reports' ),
19
+ 'autosave' => __( 'Auto save', 'mainwp-child-reports' ),
20
  'created' => __( 'Created', 'mainwp-child-reports' ),
21
  'trashed' => __( 'Trashed', 'mainwp-child-reports' ),
22
  'untrashed' => __( 'Restored', 'mainwp-child-reports' ),
140
  '"%1$s" %2$s updated',
141
  '1: Post title, 2: Post type singular name',
142
  'mainwp_child_reports'
143
+ );
144
+ if (defined( 'DOING_AUTOSAVE' ) )
145
+ $action = 'autosave';
146
  }
147
 
148
  if ( empty( $action ) ) {
168
  }
169
 
170
  $post_type_name = strtolower( self::get_post_type_name( $post->post_type ) );
171
+
172
  if ($action == 'updated' && ($post->post_type == 'page' || $post->post_type == 'post')) {
173
+ $report_settings = get_option('mainwp_wp_stream', array());
174
+ $minutes = is_array($report_settings) && isset($report_settings['general_period_of_time']) ? $report_settings['general_period_of_time'] : 30;
175
+ if (!empty($minutes) && intval($minutes) > 0) {
176
  $args = array();
177
  $args['object_id'] = $post->ID;
178
  $date_from = time() - $minutes * 60;
179
+ $args['datetime_from'] = date( 'Y-m-d H:i:s', $date_from );
180
  $args['context'] = $post->post_type;
181
+ $args['action'] = 'updated';
182
+ $args['records_per_page'] = 9999;
183
  $args['orderby'] = 'created';
184
+ $args['order'] = 'desc';
185
+ $items = mainwp_wp_stream_query( $args );
186
  if (count($items) > 0)
187
  return;
188
  }
189
  }
190
+
191
  self::log(
192
  $message,
193
  array(
connectors/updraftplus.php CHANGED
@@ -5,7 +5,7 @@ class MainWP_WP_Stream_Connector_Updraftplus extends MainWP_WP_Stream_Connector
5
  public static $name = 'updraftplus_backups';
6
 
7
  public static $actions = array(
8
- 'updraftplus_backup',
9
  );
10
 
11
  public static function get_label() {
@@ -14,7 +14,7 @@ class MainWP_WP_Stream_Connector_Updraftplus extends MainWP_WP_Stream_Connector
14
 
15
  public static function get_action_labels() {
16
  return array(
17
- 'updraftplus_backup' => __( 'Updraftplus Backup', 'default' ),
18
  );
19
  }
20
 
@@ -29,13 +29,13 @@ class MainWP_WP_Stream_Connector_Updraftplus extends MainWP_WP_Stream_Connector
29
  }
30
  return $links;
31
  }
32
-
33
- public static function callback_updraftplus_backup($destination, $message, $status, $type, $backup_date) {
34
  self::log(
35
  $message,
36
- compact('destination', 'status', 'type', 'backup_date'),
37
  0,
38
  array( 'updraftplus_backups' => 'updraftplus_backup' )
39
  );
40
- }
41
  }
5
  public static $name = 'updraftplus_backups';
6
 
7
  public static $actions = array(
8
+ 'updraftplus_backup',
9
  );
10
 
11
  public static function get_label() {
14
 
15
  public static function get_action_labels() {
16
  return array(
17
+ 'updraftplus_backup' => __( 'Updraftplus Backup', 'default' ),
18
  );
19
  }
20
 
29
  }
30
  return $links;
31
  }
32
+
33
+ public static function callback_updraftplus_backup($destination, $message, $status, $type, $backup_time) {
34
  self::log(
35
  $message,
36
+ compact('destination', 'status', 'type', 'backup_time'),
37
  0,
38
  array( 'updraftplus_backups' => 'updraftplus_backup' )
39
  );
40
+ }
41
  }
connectors/wptimecapsule.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( class_exists( 'MainWP_WP_Stream_Connector' ) ) {
3
+ class MainWP_WP_Stream_Connector_Wptimecapsule extends MainWP_WP_Stream_Connector {
4
+
5
+ /**
6
+ * Connector slug
7
+ *
8
+ * @var string
9
+ */
10
+ public static $name = 'wptimecapsule_backups';
11
+
12
+ /**
13
+ * Actions registered for this connector
14
+ *
15
+ * @var array
16
+ */
17
+ public static $actions = array(
18
+ 'mainwp_wptimecapsule_backup',
19
+ );
20
+
21
+ /**
22
+ * Return translated connector label
23
+ *
24
+ * @return string Translated connector label
25
+ */
26
+ public static function get_label() {
27
+ return __( 'WP Time Capsule', 'mainwp-child' );
28
+ }
29
+
30
+ /**
31
+ * Return translated action labels
32
+ *
33
+ * @return array Action label translations
34
+ */
35
+ public static function get_action_labels() {
36
+ return array(
37
+ 'mainwp_wptimecapsule_backup' => __( 'WP Time Capsule Backup', 'mainwp-child' ),
38
+ );
39
+ }
40
+
41
+ /**
42
+ * Return translated context labels
43
+ *
44
+ * @return array Context label translations
45
+ */
46
+ public static function get_context_labels() {
47
+ return array(
48
+ 'wptimecapsule_backups' => __( 'WP Time Capsule Backups', 'mainwp-child' ),
49
+ );
50
+ }
51
+
52
+ /**
53
+ * Add action links to Stream drop row in admin list screen
54
+ *
55
+ * @filter wp_stream_action_links_{connector}
56
+ *
57
+ * @param array $links Previous links registered
58
+ * @param int $record Stream record
59
+ *
60
+ * @return array Action links
61
+ */
62
+ public static function action_links( $links, $record ) {
63
+ return $links;
64
+ }
65
+
66
+ public static function callback_mainwp_wptimecapsule_backup( $message, $type, $backup_time ) {
67
+ self::log(
68
+ $message,
69
+ compact( 'type', 'backup_time' ),
70
+ 0,
71
+ array( 'wptimecapsule_backups' => 'mainwp_wptimecapsule_backup' )
72
+ );
73
+ }
74
+ }
75
+ }
76
+
includes/admin.php CHANGED
@@ -11,7 +11,7 @@ class MainWP_WP_Stream_Admin {
11
 
12
  const ADMIN_BODY_CLASS = 'mainwp_wp_stream_screen';
13
  const RECORDS_PAGE_SLUG = 'mainwp-reports-page';
14
- const SETTINGS_PAGE_SLUG = 'mainwp_wp_stream_settings';
15
  const ADMIN_PARENT_PAGE = 'options-general.php';
16
  const VIEW_CAP = 'view_stream';
17
  const SETTINGS_CAP = 'manage_options';
@@ -26,7 +26,7 @@ class MainWP_WP_Stream_Admin {
26
 
27
  // Register settings page
28
  if (get_option('mainwp_creport_branding_stream_hide') !== "hide") {
29
- add_filter( 'mainwp-child-init-subpages', array( __CLASS__, 'init_subpages' ) );
30
  }
31
 
32
  // Admin notices
@@ -58,12 +58,12 @@ class MainWP_WP_Stream_Admin {
58
 
59
  // Ajax author's name by ID
60
  add_action( 'wp_ajax_mainwp_wp_stream_get_filter_value_by_id', array( __CLASS__, 'get_filter_value_by_id' ) );
61
-
62
- add_filter('updraftplus_save_last_backup', array( __CLASS__, 'hookUpdraftplusSaveLastBackup' ));
63
  // hmbkp_backup_complete
64
- add_action('mainwp_child_reports_log', array( __CLASS__, 'hook_reports_log' ), 10, 1);
65
  }
66
-
67
  public static function get_branding_title() {
68
  if (self::$brandingTitle === null) {
69
  $cancelled_branding = ( get_option( 'mainwp_child_branding_disconnected' ) === 'yes' ) && ! get_option( 'mainwp_branding_preserve_branding' );
@@ -72,7 +72,7 @@ class MainWP_WP_Stream_Admin {
72
  self::$brandingTitle = stripslashes( $branding_header['name'] );
73
  } else {
74
  self::$brandingTitle = '';
75
- }
76
  }
77
  return self::$brandingTitle;
78
  }
@@ -86,22 +86,22 @@ class MainWP_WP_Stream_Admin {
86
  break;
87
  case 'child_reports_settings_reset':
88
  printf( '<div class="updated"><p>%s</p></div>', __( 'All site settings have been successfully reset.', 'mainwp-child-reports' ) );
89
- break;
90
- }
91
  }
92
-
93
- public static function hookUpdraftplusSaveLastBackup($last_backup) {
94
-
95
  if (!is_array($last_backup))
96
  return $last_backup;
97
 
98
- if (isset($last_backup['backup_time'])) {
99
  if (empty($last_backup['success']))
100
- return false;
101
-
102
- $date = $last_backup['backup_time'];
103
  $backup = $last_backup['backup_array'];
104
-
105
  $message = "";
106
  $backup_type = "";
107
  if (isset($backup['db'])) {
@@ -118,8 +118,8 @@ class MainWP_WP_Stream_Admin {
118
  $backup_type .= "themes, ";
119
  }
120
 
121
- $message = rtrim($message, ', ');
122
- $message = "Updraftplus backup " . $message ." finished";
123
 
124
  $backup_type = rtrim($backup_type, ', ');
125
 
@@ -129,18 +129,20 @@ class MainWP_WP_Stream_Admin {
129
  } else if (isset($backup['themes-size'])) {
130
  $size = $backup['themes-size'];
131
  }
132
- $destination = "";
133
- do_action("updraftplus_backup", $destination , $message, __('Finished', 'mainwp-child-reports'), $backup_type, $date);
 
 
134
  }
135
  return $last_backup;
136
  }
137
-
138
- public static function hook_reports_log($ext_name = '') {
139
  do_action('mainwp_child_log', $ext_name);
140
  }
141
 
142
- static function get_record_meta_data($record, $meta_key) {
143
-
144
  if (empty($record))
145
  return "";
146
  $value = "";
@@ -148,23 +150,23 @@ class MainWP_WP_Stream_Admin {
148
  $meta = $record->meta;
149
  if (isset($meta[$meta_key])) {
150
  $value = $meta[$meta_key];
151
- $value = current($value);
152
  if ($meta_key == "author_meta") {
153
- $value = unserialize($value);
154
- $value = $value['display_name'];
155
  }
156
 
157
- }
158
  }
159
- return $value;
160
  }
161
-
162
  public static function init_subpages($subPages = array()) {
163
  if ( is_network_admin() && ! is_plugin_active_for_network( MAINWP_WP_STREAM_PLUGIN ) ) {
164
  return $subPages;
165
- }
166
 
167
- $branding_text = MainWP_WP_Stream_Admin::get_branding_title();
168
  if (empty($branding_text)) {
169
  $branding_text = 'Child Reports';
170
  } else {
@@ -173,9 +175,9 @@ class MainWP_WP_Stream_Admin {
173
 
174
  $subPages[] = array('title' => $branding_text, 'slug' => 'reports-page' , 'callback' => array( __CLASS__, 'render_reports_page' ) , 'load_callback' => array( __CLASS__, 'register_list_table' ));
175
  $subPages[] = array('title' => $branding_text . ' Settings', 'slug' => 'reports-settings' , 'callback' => array( __CLASS__, 'render_reports_settings' ) );
176
- return $subPages;
177
  }
178
-
179
  public static function admin_enqueue_scripts( $hook ) {
180
  // wp_register_script( 'select2', MAINWP_WP_STREAM_URL . 'ui/select2/select2.min.js', array( 'jquery' ), '3.4.5', true );
181
  // wp_register_style( 'select2', MAINWP_WP_STREAM_URL . 'ui/select2/select2.css', array(), '3.4.5' );
@@ -191,22 +193,22 @@ class MainWP_WP_Stream_Admin {
191
  }
192
 
193
  wp_enqueue_style( 'mainwp-wp-stream-admin', MAINWP_WP_STREAM_URL . 'ui/admin.css', array(), MainWP_WP_Stream::VERSION );
194
-
195
  //$script_screens = array( 'plugins.php', 'user-edit.php', 'user-new.php', 'profile.php' );
196
 
197
  if ( 'index.php' === $hook ) {
198
-
199
  } elseif ( in_array( $hook, self::$screen_id ) || $hook == 'settings_page_mainwp-reports-page' ) {
200
  wp_register_script( 'child-report-select2', MAINWP_WP_STREAM_URL . 'ui/select2/select2.min.js', array( 'jquery' ), '3.4.5', true );
201
  wp_register_style( 'child-report-select2', MAINWP_WP_STREAM_URL . 'ui/select2/select2.css', array(), '3.4.5' );
202
-
203
  wp_enqueue_script( 'child-report-select2' );
204
  wp_enqueue_style( 'child-report-select2' );
205
 
206
  wp_enqueue_script( 'timeago' );
207
  wp_enqueue_script( 'timeago-locale' );
208
 
209
- wp_enqueue_script( 'mainwp-wp-stream-admin', MAINWP_WP_STREAM_URL . 'ui/admin.js', array( 'jquery', 'child-report-select2', 'heartbeat' ), MainWP_WP_Stream::VERSION );
210
  wp_localize_script(
211
  'mainwp-wp-stream-admin',
212
  'mainwp_wp_stream',
@@ -223,13 +225,13 @@ class MainWP_WP_Stream_Admin {
223
  'current_query' => json_encode( $_GET ),
224
  'current_query_count' => count( $_GET ),
225
  'filters' => self::$list_table ? self::$list_table->get_filters() : false,
226
- 'locale' => esc_js( $locale )
227
  )
228
- );
229
  }
230
  }
231
 
232
-
233
  public static function admin_body_class( $classes ) {
234
  if ( isset( $_GET['page'] ) && false !== strpos( $_GET['page'], self::RECORDS_PAGE_SLUG ) ) {
235
  $classes .= sprintf( ' %s ', self::ADMIN_BODY_CLASS );
@@ -276,7 +278,7 @@ class MainWP_WP_Stream_Admin {
276
 
277
  return;
278
  }
279
-
280
  public static function register_list_table() {
281
  require_once MAINWP_WP_STREAM_INC_DIR . 'list-table.php';
282
  $param = array();
@@ -286,11 +288,11 @@ class MainWP_WP_Stream_Admin {
286
  self::$list_table = new MainWP_WP_Stream_List_Table( $param );
287
  }
288
 
289
- public static function render_reports_page() {
290
  do_action('mainwp-child-pageheader', 'reports-page');
291
  self::$list_table->prepare_items();
292
  echo '<div class="mainwp_child_reports_wrap">';
293
- self::$list_table->display();
294
  echo '</div>';
295
  do_action('mainwp-child-pagefooter', 'reports-page');
296
  }
@@ -300,7 +302,7 @@ class MainWP_WP_Stream_Admin {
300
  $option_key = MainWP_WP_Stream_Settings::$option_key;
301
  $form_action = apply_filters( 'mainwp_wp_stream_settings_form_action', admin_url( 'options.php' ) );
302
  $sections = MainWP_WP_Stream_Settings::get_fields();
303
- //settings_errors();
304
  do_action('mainwp-child-pageheader', 'reports-settings')
305
  ?>
306
  <div class="postbox">
@@ -311,31 +313,31 @@ class MainWP_WP_Stream_Admin {
311
  foreach ( $sections as $section => $data ) {
312
  $i++;
313
  settings_fields( $option_key );
314
- do_settings_sections( $option_key );
315
  }
316
  submit_button();
317
  ?>
318
  </form>
319
  </div>
320
  </div>
321
-
322
  <?php
323
  do_action('mainwp-child-pagefooter', 'reports-settings');
324
  }
325
-
326
  public static function ajax_reset_reports() {
327
  check_ajax_referer( 'stream_nonce', 'mainwp_wp_stream_nonce' );
328
 
329
  if ( current_user_can( self::SETTINGS_CAP ) ) {
330
- self::erase_stream_records();
331
- MainWP_WP_Stream_Install::check_to_copy_data();
332
- wp_redirect(
333
  add_query_arg(
334
  array(
335
- 'page' => 'mainwp-reports-settings',
336
  'message' => 'child_reports_data_erased'
337
  ),
338
- admin_url( 'options-general.php' )
339
  )
340
  );
341
  exit;
@@ -425,34 +427,33 @@ class MainWP_WP_Stream_Admin {
425
  $options = MainWP_WP_Stream_Settings::get_options();
426
  }
427
 
428
- $days = $options['general_records_ttl'];
429
-
430
  if (empty($days))
431
  return;
432
-
433
  $date = new DateTime( 'now', $timezone = new DateTimeZone( 'UTC' ) );
434
 
435
  $date->sub( DateInterval::createFromDateString( "$days days" ) );
436
 
437
- $where = $wpdb->prepare( ' AND `stream`.`created` < %s', $date->format( 'Y-m-d H:i:s' ) );
 
438
 
439
  if ( is_multisite() && ! is_plugin_active_for_network( MAINWP_WP_STREAM_PLUGIN ) ) {
440
  $where .= $wpdb->prepare( ' AND `blog_id` = %d', get_current_blog_id() );
441
  }
442
-
443
- $wpdb->query(
444
- $wpdb->prepare(
445
- "DELETE `stream`, `context`, `meta`
446
  FROM {$wpdb->mainwp_reports} AS `stream`
447
  LEFT JOIN {$wpdb->mainwp_reportscontext} AS `context`
448
  ON `context`.`record_id` = `stream`.`ID`
449
  LEFT JOIN {$wpdb->mainwp_reportsmeta} AS `meta`
450
  ON `meta`.`record_id` = `stream`.`ID`
451
  WHERE `stream`.`type` = %s
452
- $where;",
453
- 'stream'
454
- )
455
- );
 
456
  }
457
 
458
  private static function _role_can_view_stream( $role ) {
@@ -510,7 +511,7 @@ class MainWP_WP_Stream_Admin {
510
  }
511
 
512
  check_ajax_referer( 'mainwp_creport_filters_user_search_nonce', 'nonce' );
513
-
514
  switch ( mainwp_wp_stream_filter_input( INPUT_GET, 'filter' ) ) {
515
  case 'author':
516
  $users = array_merge(
11
 
12
  const ADMIN_BODY_CLASS = 'mainwp_wp_stream_screen';
13
  const RECORDS_PAGE_SLUG = 'mainwp-reports-page';
14
+ const SETTINGS_PAGE_SLUG = 'mainwp_wp_stream_settings';
15
  const ADMIN_PARENT_PAGE = 'options-general.php';
16
  const VIEW_CAP = 'view_stream';
17
  const SETTINGS_CAP = 'manage_options';
26
 
27
  // Register settings page
28
  if (get_option('mainwp_creport_branding_stream_hide') !== "hide") {
29
+ add_filter( 'mainwp-child-init-subpages', array( __CLASS__, 'init_subpages' ) );
30
  }
31
 
32
  // Admin notices
58
 
59
  // Ajax author's name by ID
60
  add_action( 'wp_ajax_mainwp_wp_stream_get_filter_value_by_id', array( __CLASS__, 'get_filter_value_by_id' ) );
61
+
62
+ add_filter('updraftplus_save_last_backup', array( __CLASS__, 'hookUpdraftplusSaveLastBackup' ));
63
  // hmbkp_backup_complete
64
+ add_action('mainwp_child_reports_log', array( __CLASS__, 'hook_reports_log' ), 10, 1);
65
  }
66
+
67
  public static function get_branding_title() {
68
  if (self::$brandingTitle === null) {
69
  $cancelled_branding = ( get_option( 'mainwp_child_branding_disconnected' ) === 'yes' ) && ! get_option( 'mainwp_branding_preserve_branding' );
72
  self::$brandingTitle = stripslashes( $branding_header['name'] );
73
  } else {
74
  self::$brandingTitle = '';
75
+ }
76
  }
77
  return self::$brandingTitle;
78
  }
86
  break;
87
  case 'child_reports_settings_reset':
88
  printf( '<div class="updated"><p>%s</p></div>', __( 'All site settings have been successfully reset.', 'mainwp-child-reports' ) );
89
+ break;
90
+ }
91
  }
92
+
93
+ public static function hookUpdraftplusSaveLastBackup($last_backup) {
94
+
95
  if (!is_array($last_backup))
96
  return $last_backup;
97
 
98
+ if (isset($last_backup['backup_time'])) {
99
  if (empty($last_backup['success']))
100
+ return $last_backup;
101
+
102
+ $backup_time = $last_backup['backup_time'];
103
  $backup = $last_backup['backup_array'];
104
+
105
  $message = "";
106
  $backup_type = "";
107
  if (isset($backup['db'])) {
118
  $backup_type .= "themes, ";
119
  }
120
 
121
+ $message = rtrim($message, ', ');
122
+ $message = "Updraftplus backup " . $message ." finished";
123
 
124
  $backup_type = rtrim($backup_type, ', ');
125
 
129
  } else if (isset($backup['themes-size'])) {
130
  $size = $backup['themes-size'];
131
  }
132
+ $destination = "";
133
+
134
+ // to logging updraftplus backup
135
+ do_action("updraftplus_backup", $destination , $message, __('Finished', 'mainwp-child-reports'), $backup_type, $backup_time);
136
  }
137
  return $last_backup;
138
  }
139
+
140
+ public static function hook_reports_log($ext_name = '') {
141
  do_action('mainwp_child_log', $ext_name);
142
  }
143
 
144
+ static function get_record_meta_data($record, $meta_key) {
145
+
146
  if (empty($record))
147
  return "";
148
  $value = "";
150
  $meta = $record->meta;
151
  if (isset($meta[$meta_key])) {
152
  $value = $meta[$meta_key];
153
+ $value = current($value);
154
  if ($meta_key == "author_meta") {
155
+ $value = unserialize($value);
156
+ $value = $value['display_name'];
157
  }
158
 
159
+ }
160
  }
161
+ return $value;
162
  }
163
+
164
  public static function init_subpages($subPages = array()) {
165
  if ( is_network_admin() && ! is_plugin_active_for_network( MAINWP_WP_STREAM_PLUGIN ) ) {
166
  return $subPages;
167
+ }
168
 
169
+ $branding_text = MainWP_WP_Stream_Admin::get_branding_title();
170
  if (empty($branding_text)) {
171
  $branding_text = 'Child Reports';
172
  } else {
175
 
176
  $subPages[] = array('title' => $branding_text, 'slug' => 'reports-page' , 'callback' => array( __CLASS__, 'render_reports_page' ) , 'load_callback' => array( __CLASS__, 'register_list_table' ));
177
  $subPages[] = array('title' => $branding_text . ' Settings', 'slug' => 'reports-settings' , 'callback' => array( __CLASS__, 'render_reports_settings' ) );
178
+ return $subPages;
179
  }
180
+
181
  public static function admin_enqueue_scripts( $hook ) {
182
  // wp_register_script( 'select2', MAINWP_WP_STREAM_URL . 'ui/select2/select2.min.js', array( 'jquery' ), '3.4.5', true );
183
  // wp_register_style( 'select2', MAINWP_WP_STREAM_URL . 'ui/select2/select2.css', array(), '3.4.5' );
193
  }
194
 
195
  wp_enqueue_style( 'mainwp-wp-stream-admin', MAINWP_WP_STREAM_URL . 'ui/admin.css', array(), MainWP_WP_Stream::VERSION );
196
+
197
  //$script_screens = array( 'plugins.php', 'user-edit.php', 'user-new.php', 'profile.php' );
198
 
199
  if ( 'index.php' === $hook ) {
200
+
201
  } elseif ( in_array( $hook, self::$screen_id ) || $hook == 'settings_page_mainwp-reports-page' ) {
202
  wp_register_script( 'child-report-select2', MAINWP_WP_STREAM_URL . 'ui/select2/select2.min.js', array( 'jquery' ), '3.4.5', true );
203
  wp_register_style( 'child-report-select2', MAINWP_WP_STREAM_URL . 'ui/select2/select2.css', array(), '3.4.5' );
204
+
205
  wp_enqueue_script( 'child-report-select2' );
206
  wp_enqueue_style( 'child-report-select2' );
207
 
208
  wp_enqueue_script( 'timeago' );
209
  wp_enqueue_script( 'timeago-locale' );
210
 
211
+ wp_enqueue_script( 'mainwp-wp-stream-admin', MAINWP_WP_STREAM_URL . 'ui/admin.js', array( 'jquery', 'child-report-select2', 'heartbeat' ), MainWP_WP_Stream::VERSION );
212
  wp_localize_script(
213
  'mainwp-wp-stream-admin',
214
  'mainwp_wp_stream',
225
  'current_query' => json_encode( $_GET ),
226
  'current_query_count' => count( $_GET ),
227
  'filters' => self::$list_table ? self::$list_table->get_filters() : false,
228
+ 'locale' => esc_js( $locale )
229
  )
230
+ );
231
  }
232
  }
233
 
234
+
235
  public static function admin_body_class( $classes ) {
236
  if ( isset( $_GET['page'] ) && false !== strpos( $_GET['page'], self::RECORDS_PAGE_SLUG ) ) {
237
  $classes .= sprintf( ' %s ', self::ADMIN_BODY_CLASS );
278
 
279
  return;
280
  }
281
+
282
  public static function register_list_table() {
283
  require_once MAINWP_WP_STREAM_INC_DIR . 'list-table.php';
284
  $param = array();
288
  self::$list_table = new MainWP_WP_Stream_List_Table( $param );
289
  }
290
 
291
+ public static function render_reports_page() {
292
  do_action('mainwp-child-pageheader', 'reports-page');
293
  self::$list_table->prepare_items();
294
  echo '<div class="mainwp_child_reports_wrap">';
295
+ self::$list_table->display();
296
  echo '</div>';
297
  do_action('mainwp-child-pagefooter', 'reports-page');
298
  }
302
  $option_key = MainWP_WP_Stream_Settings::$option_key;
303
  $form_action = apply_filters( 'mainwp_wp_stream_settings_form_action', admin_url( 'options.php' ) );
304
  $sections = MainWP_WP_Stream_Settings::get_fields();
305
+ //settings_errors();
306
  do_action('mainwp-child-pageheader', 'reports-settings')
307
  ?>
308
  <div class="postbox">
313
  foreach ( $sections as $section => $data ) {
314
  $i++;
315
  settings_fields( $option_key );
316
+ do_settings_sections( $option_key );
317
  }
318
  submit_button();
319
  ?>
320
  </form>
321
  </div>
322
  </div>
323
+
324
  <?php
325
  do_action('mainwp-child-pagefooter', 'reports-settings');
326
  }
327
+
328
  public static function ajax_reset_reports() {
329
  check_ajax_referer( 'stream_nonce', 'mainwp_wp_stream_nonce' );
330
 
331
  if ( current_user_can( self::SETTINGS_CAP ) ) {
332
+ self::erase_stream_records();
333
+ MainWP_WP_Stream_Install::check_to_copy_data();
334
+ wp_redirect(
335
  add_query_arg(
336
  array(
337
+ 'page' => 'mainwp-reports-settings',
338
  'message' => 'child_reports_data_erased'
339
  ),
340
+ admin_url( 'options-general.php' )
341
  )
342
  );
343
  exit;
427
  $options = MainWP_WP_Stream_Settings::get_options();
428
  }
429
 
430
+ $days = !isset($options['general_records_ttl']) ? 180 : intval($options['general_records_ttl']);
431
+
432
  if (empty($days))
433
  return;
434
+
435
  $date = new DateTime( 'now', $timezone = new DateTimeZone( 'UTC' ) );
436
 
437
  $date->sub( DateInterval::createFromDateString( "$days days" ) );
438
 
439
+ $where = " AND (`stream`.`created` < STR_TO_DATE(" . $wpdb->prepare('%s', $date->format( 'Y-m-d H:i:s' )) . ", '%Y-%m-%d %H:%i:%s')) ";
440
+ //$where = $wpdb->prepare( ' AND `stream`.`created` < %s', $date->format( 'Y-m-d H:i:s' ) );
441
 
442
  if ( is_multisite() && ! is_plugin_active_for_network( MAINWP_WP_STREAM_PLUGIN ) ) {
443
  $where .= $wpdb->prepare( ' AND `blog_id` = %d', get_current_blog_id() );
444
  }
445
+ $sql = "DELETE `stream`, `context`, `meta`
 
 
 
446
  FROM {$wpdb->mainwp_reports} AS `stream`
447
  LEFT JOIN {$wpdb->mainwp_reportscontext} AS `context`
448
  ON `context`.`record_id` = `stream`.`ID`
449
  LEFT JOIN {$wpdb->mainwp_reportsmeta} AS `meta`
450
  ON `meta`.`record_id` = `stream`.`ID`
451
  WHERE `stream`.`type` = %s
452
+ {$where};" ;
453
+
454
+
455
+
456
+ $wpdb->query( $sql );
457
  }
458
 
459
  private static function _role_can_view_stream( $role ) {
511
  }
512
 
513
  check_ajax_referer( 'mainwp_creport_filters_user_search_nonce', 'nonce' );
514
+
515
  switch ( mainwp_wp_stream_filter_input( INPUT_GET, 'filter' ) ) {
516
  case 'author':
517
  $users = array_merge(
includes/connector.php CHANGED
@@ -51,18 +51,18 @@ abstract class MainWP_WP_Stream_Connector {
51
  if ( count( $contexts ) == 0 ){
52
  return ;
53
  }
54
-
55
  $created_timestamp = null;
56
-
57
  if (is_array($contexts) && is_array($args)) {
58
  if (isset($contexts['plugins']) && !empty($contexts['plugins']) ) {
59
- if (isset($args['slug']) && ( $args['slug'] == 'mainwp-child/mainwp-child.php' || $args['slug'] == 'mainwp-child-reports/mainwp-child-reports.php' )) {
60
  $hide_child_plugins = get_option('mainwp_creport_hide_child_plugins', 'yes');
61
  if ($hide_child_plugins == 'yes') {
62
  return false;
63
  } else {
64
- $branding_text = MainWP_WP_Stream_Admin::get_branding_title();
65
- if (!empty($branding_text)) {
66
  if ($args['slug'] == 'mainwp-child/mainwp-child.php') {
67
  $args['name'] = $branding_text;
68
  } else {
@@ -74,18 +74,20 @@ abstract class MainWP_WP_Stream_Connector {
74
  }
75
 
76
  $created_timestamp = 0;
77
- $child_context = '';
78
 
79
- if ( isset($contexts['backwpup_backups']) ) {
80
  $child_context = 'backwpup_backups';
81
- } elseif ( isset($contexts['backupwordpress_backups']) ) {
82
- $child_context = 'backupwordpress_backups';
83
- } elseif ( isset($contexts['backupbuddy_backups']) ) {
84
- $child_context = 'backupbuddy_backups';
85
- } elseif ( isset($contexts['wordfence_scans']) ) {
86
- $child_context = 'wordfence_scans';
87
- } elseif ( isset($contexts['updraftplus_backups']) ) {
88
- $child_context = 'updraftplus_backups';
 
 
89
  }
90
 
91
  if ( !empty($child_context) ) {
@@ -97,18 +99,18 @@ abstract class MainWP_WP_Stream_Connector {
97
  }
98
  }
99
 
100
- if (empty($created_timestamp) )
101
- return;
102
 
103
  $saved_item = MainWP_WP_Stream_Log::get_instance()->get_log( array( 'context' => $child_context, 'created' => date("Y-m-d H:i:s", $created_timestamp ) ) );
104
 
105
  if ($saved_item)
106
- return;
107
  }
108
  }
109
-
110
  $class = get_called_class();
111
-
112
  return MainWP_WP_Stream_Log::get_instance()->log(
113
  $class::$name,
114
  $message,
@@ -116,7 +118,7 @@ abstract class MainWP_WP_Stream_Connector {
116
  $object_id,
117
  $contexts,
118
  $user_id,
119
- $created_timestamp
120
  );
121
  }
122
 
51
  if ( count( $contexts ) == 0 ){
52
  return ;
53
  }
54
+
55
  $created_timestamp = null;
56
+
57
  if (is_array($contexts) && is_array($args)) {
58
  if (isset($contexts['plugins']) && !empty($contexts['plugins']) ) {
59
+ if (isset($args['slug']) && ( $args['slug'] == 'mainwp-child/mainwp-child.php' || $args['slug'] == 'mainwp-child-reports/mainwp-child-reports.php' )) {
60
  $hide_child_plugins = get_option('mainwp_creport_hide_child_plugins', 'yes');
61
  if ($hide_child_plugins == 'yes') {
62
  return false;
63
  } else {
64
+ $branding_text = MainWP_WP_Stream_Admin::get_branding_title();
65
+ if (!empty($branding_text)) {
66
  if ($args['slug'] == 'mainwp-child/mainwp-child.php') {
67
  $args['name'] = $branding_text;
68
  } else {
74
  }
75
 
76
  $created_timestamp = 0;
77
+ $child_context = '';
78
 
79
+ if ( isset($contexts['backwpup_backups']) ) {
80
  $child_context = 'backwpup_backups';
81
+ } elseif ( isset($contexts['backupwordpress_backups']) ) {
82
+ $child_context = 'backupwordpress_backups';
83
+ } elseif ( isset($contexts['backupbuddy_backups']) ) {
84
+ $child_context = 'backupbuddy_backups';
85
+ } elseif ( isset($contexts['wordfence_scans']) ) {
86
+ $child_context = 'wordfence_scans';
87
+ } elseif ( isset($contexts['updraftplus_backups']) ) {
88
+ $child_context = 'updraftplus_backups';
89
+ } elseif ( isset($contexts['wptimecapsule_backups']) ) {
90
+ $child_context = 'wptimecapsule_backups';
91
  }
92
 
93
  if ( !empty($child_context) ) {
99
  }
100
  }
101
 
102
+ if (empty($created_timestamp) )
103
+ return;
104
 
105
  $saved_item = MainWP_WP_Stream_Log::get_instance()->get_log( array( 'context' => $child_context, 'created' => date("Y-m-d H:i:s", $created_timestamp ) ) );
106
 
107
  if ($saved_item)
108
+ return;
109
  }
110
  }
111
+
112
  $class = get_called_class();
113
+
114
  return MainWP_WP_Stream_Log::get_instance()->log(
115
  $class::$name,
116
  $message,
118
  $object_id,
119
  $contexts,
120
  $user_id,
121
+ $created_timestamp
122
  );
123
  }
124
 
includes/connectors.php CHANGED
@@ -31,7 +31,8 @@ class MainWP_WP_Stream_Connectors {
31
  'backwpup',
32
  'backupbuddy',
33
  'wordfence',
34
- 'maintenance'
 
35
  );
36
  $classes = array();
37
  foreach ( $connectors as $connector ) {
31
  'backwpup',
32
  'backupbuddy',
33
  'wordfence',
34
+ 'maintenance',
35
+ 'wptimecapsule'
36
  );
37
  $classes = array();
38
  foreach ( $connectors as $connector ) {
includes/db.php CHANGED
@@ -13,7 +13,7 @@ class MainWP_WP_Stream_DB {
13
  public function __construct() {
14
  global $wpdb;
15
 
16
- $prefix = apply_filters( 'mainwp_wp_stream_db_tables_prefix', $wpdb->base_prefix );
17
 
18
  self::$table = $prefix . 'mainwp_stream';
19
  self::$table_meta = $prefix . 'mainwp_stream_meta';
@@ -114,65 +114,65 @@ class MainWP_WP_Stream_DB {
114
  return $result;
115
  }
116
 
117
-
118
  public function get_report( $args = array() ) {
119
  if (!is_array($args))
120
  return false;
121
  global $wpdb;
122
- $where = "";
123
- $left_join = "";
124
  if (isset($args['context'])) {
125
- $left_join = " LEFT JOIN " . self::$table_context . " AS `context` ON `stream`.`ID` = `context`.`record_id` " ;
126
  }
127
-
128
  foreach ($args as $key => $value) {
129
  if ($key == 'context') {
130
- $where .= $wpdb->prepare( ' `context`.`context` = %s AND ', $value);
131
- } else
132
- $where .= $wpdb->prepare( ' `stream`.`' . $key . '` = %s AND ', $value);
133
- }
134
-
135
  $where = rtrim($where, "AND ");
136
-
137
- if (!empty($where)) {
138
- $where .= " AND blog_id = " . apply_filters( 'blog_id_logged', is_network_admin() ? 0 : get_current_blog_id() );
139
- $result = $wpdb->get_row( 'SELECT `stream`.* FROM ' . self::$table . ' AS `stream` ' . $left_join . ' WHERE ' . $where );
140
  return $result;
141
  }
142
  return false;
143
  }
144
-
145
- public function delete_report( $args = array() ) {
146
  if (!is_array($args))
147
- return false;
148
-
149
  global $wpdb;
150
  $sql = "";
151
-
152
  foreach ($args as $key => $value) {
153
- $sql .= $key ." = " . $value . " AND ";
154
  }
155
-
156
  $sql = rtrim($sql, "AND ");
157
-
158
  if ( ! empty( $sql ) ) {
159
  $sql .= " AND blog_id = " . apply_filters( 'blog_id_logged', is_network_admin() ? 0 : get_current_blog_id() );
160
-
161
  $sql = $wpdb->prepare( 'SELECT ID FROM ' . self::$table . ' WHERE %s ', $sql );
162
- $record_id = $wpdb->get_var( $sql );
163
- if ($record_id) {
164
  $sql = $wpdb->prepare( 'DELETE FROM ' . self::$table . ' WHERE %s ', $sql );
165
- $wpdb->query( $sql );
166
  $sql = $wpdb->prepare( 'DELETE FROM ' . self::$table_context . ' WHERE record_id = %d ', $record_id );
167
- $wpdb->query( $sql );
168
  $sql = $wpdb->prepare( 'DELETE FROM ' . self::$table_meta . ' WHERE record_id = %d ', $record_id );
169
- $wpdb->query( $sql );
170
  return true;
171
  }
172
  }
173
  return false;
174
  }
175
-
176
  public function insert_meta( $record_id, $key, $val ) {
177
  global $wpdb;
178
 
13
  public function __construct() {
14
  global $wpdb;
15
 
16
+ $prefix = $wpdb->prefix;
17
 
18
  self::$table = $prefix . 'mainwp_stream';
19
  self::$table_meta = $prefix . 'mainwp_stream_meta';
114
  return $result;
115
  }
116
 
117
+
118
  public function get_report( $args = array() ) {
119
  if (!is_array($args))
120
  return false;
121
  global $wpdb;
122
+ $where = "";
123
+ $left_join = "";
124
  if (isset($args['context'])) {
125
+ $left_join = " LEFT JOIN " . self::$table_context . " AS `context` ON `stream`.`ID` = `context`.`record_id` " ;
126
  }
127
+
128
  foreach ($args as $key => $value) {
129
  if ($key == 'context') {
130
+ $where .= $wpdb->prepare( ' `context`.`context` = %s AND ', $value);
131
+ } else
132
+ $where .= $wpdb->prepare( ' `stream`.`' . $key . '` = %s AND ', $value);
133
+ }
134
+
135
  $where = rtrim($where, "AND ");
136
+
137
+ if (!empty($where)) {
138
+ $where .= " AND blog_id = " . apply_filters( 'blog_id_logged', is_network_admin() ? 0 : get_current_blog_id() );
139
+ $result = $wpdb->get_row( 'SELECT `stream`.* FROM ' . self::$table . ' AS `stream` ' . $left_join . ' WHERE ' . $where );
140
  return $result;
141
  }
142
  return false;
143
  }
144
+
145
+ public function delete_report( $args = array() ) {
146
  if (!is_array($args))
147
+ return false;
148
+
149
  global $wpdb;
150
  $sql = "";
151
+
152
  foreach ($args as $key => $value) {
153
+ $sql .= $key ." = " . $value . " AND ";
154
  }
155
+
156
  $sql = rtrim($sql, "AND ");
157
+
158
  if ( ! empty( $sql ) ) {
159
  $sql .= " AND blog_id = " . apply_filters( 'blog_id_logged', is_network_admin() ? 0 : get_current_blog_id() );
160
+
161
  $sql = $wpdb->prepare( 'SELECT ID FROM ' . self::$table . ' WHERE %s ', $sql );
162
+ $record_id = $wpdb->get_var( $sql );
163
+ if ($record_id) {
164
  $sql = $wpdb->prepare( 'DELETE FROM ' . self::$table . ' WHERE %s ', $sql );
165
+ $wpdb->query( $sql );
166
  $sql = $wpdb->prepare( 'DELETE FROM ' . self::$table_context . ' WHERE record_id = %d ', $record_id );
167
+ $wpdb->query( $sql );
168
  $sql = $wpdb->prepare( 'DELETE FROM ' . self::$table_meta . ' WHERE record_id = %d ', $record_id );
169
+ $wpdb->query( $sql );
170
  return true;
171
  }
172
  }
173
  return false;
174
  }
175
+
176
  public function insert_meta( $record_id, $key, $val ) {
177
  global $wpdb;
178
 
includes/install.php CHANGED
@@ -19,7 +19,7 @@ class MainWP_WP_Stream_Install {
19
  private static $instance = false;
20
 
21
  public static $import_connectors;
22
-
23
  public static function get_instance() {
24
  if ( empty( self::$instance ) ) {
25
  self::$instance = new self();
@@ -33,10 +33,8 @@ class MainWP_WP_Stream_Install {
33
 
34
  self::$current = MainWP_WP_Stream::VERSION;
35
  self::$db_version = self::get_db_version();
36
-
37
- $prefix = $wpdb->base_prefix;
38
 
39
- self::$table_prefix = apply_filters( 'mainwp_wp_stream_db_tables_prefix', $prefix );
40
  self::$import_connectors = array('comment', 'editor', 'installer', 'media', 'menus', 'posts', 'users', 'widgets');
41
  self::check();
42
  }
@@ -44,53 +42,53 @@ class MainWP_WP_Stream_Install {
44
  private static function check() {
45
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
46
  return;
47
- }
48
-
49
- global $wpdb;
50
-
51
  if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "mainwp_stream'" ) !== $wpdb->prefix . "mainwp_stream" ||
52
- $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "mainwp_stream_meta'" ) !== $wpdb->prefix . "mainwp_stream_meta"
53
  ) {
54
- self::$db_version = false;
55
- } else {
56
- if (false === get_option('mainwp_creport_first_time_activated')) {
57
  $sql = "SELECT MIN( created ) AS first_time " .
58
- "FROM {$wpdb->prefix}mainwp_stream " .
59
- "WHERE created != '0000-00-00 00:00:00'";
60
- $result = $wpdb->get_results( $sql, ARRAY_A );
61
  $time = time();
62
  if (isset($result[0]) && !empty($result[0]['first_time'])) {
63
- $time = strtotime( $result[0]['first_time'] );
64
- }
65
  update_option('mainwp_creport_first_time_activated', $time);
66
  }
67
  }
68
-
69
  if ( empty( self::$db_version ) ) {
70
- self::install( self::$current );
71
- self::copy_stream_db();
72
- } elseif ( version_compare( self::$db_version, self::$current, '!=') ) {
73
- self::check_updates();
74
- update_site_option( self::KEY, self::$current );
75
- }
76
-
77
  if ('yes' == get_option('mainwp_child_reports_check_to_copy_data', false)) {
78
- add_action( 'all_admin_notices', array( __CLASS__, 'update_notice_hook' ) );
79
  }
80
  }
81
-
82
- public static function check_to_copy_data() {
83
- $stream_db_version = get_site_option( 'wp_stream_db' ); // store db version of the plugin stream 1.4.9
84
  update_option('mainwp_child_reports_check_to_copy_data', 'yes');
85
  return;
86
  }
87
-
88
  public static function copy_stream_db() {
89
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
90
  return;
91
- }
92
- $stream_db_version = get_site_option( 'wp_stream_db' ); // store db version of the plugin stream 1.4.9
93
- if (version_compare($stream_db_version, '1.4.9', '='))
94
  self::copy_stream_149_db();
95
  else if (version_compare($stream_db_version, '3.0' , '>=')) {
96
  self::copy_stream_300_db();
@@ -98,19 +96,19 @@ class MainWP_WP_Stream_Install {
98
  update_option('mainwp_child_reports_copied_data_ok', 'yes');
99
  update_option('mainwp_child_reports_check_to_copy_data', '');
100
  }
101
-
102
  public static function copy_stream_149_db() {
103
- global $wpdb;
104
  if ( is_multisite() ) {
105
  return;
106
- }
107
- if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream'" ) !== $wpdb->prefix . "stream" )
108
  return;
109
- if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream_context'" ) !== $wpdb->prefix . "stream_context" )
110
  return;
111
- if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream_meta'" ) !== $wpdb->prefix . "stream_meta" )
112
  return;
113
-
114
  $sql = "SELECT * FROM {$wpdb->prefix}stream";
115
 
116
  $blog_stream = $wpdb->get_results( $sql, ARRAY_A );
@@ -118,7 +116,7 @@ class MainWP_WP_Stream_Install {
118
  foreach ( $blog_stream as $key => $stream_entry ) {
119
  $prev_entry_id = $stream_entry['ID'];
120
 
121
- unset( $stream_entry['ID'] );
122
 
123
  $wpdb->insert( $wpdb->prefix . 'mainwp_stream', $stream_entry );
124
  $stream_entry_id = $wpdb->insert_id;
@@ -145,17 +143,17 @@ class MainWP_WP_Stream_Install {
145
  $wpdb->insert( $wpdb->prefix . 'mainwp_stream_meta', $stream_meta );
146
  }
147
  }
148
-
149
  }
150
-
151
  public static function copy_stream_300_db() {
152
  global $wpdb;
153
  if ( is_multisite() ) {
154
  return;
155
  }
156
- if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream'" ) !== $wpdb->prefix . "stream" )
157
  return;
158
- if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream_meta'" ) !== $wpdb->prefix . "stream_meta" )
159
  return;
160
 
161
  $timeout = 20 * 60 * 60; /*20 minutes*/
@@ -164,26 +162,26 @@ class MainWP_WP_Stream_Install {
164
  @ini_set( 'memory_limit', $mem );
165
  @set_time_limit( $timeout );
166
  @ini_set( 'max_execution_time', $timeout );
167
-
168
  $sql = "SELECT * FROM {$wpdb->prefix}stream";
169
 
170
  $blog_stream = $wpdb->get_results( $sql, ARRAY_A );
171
  $printed_connector = array();
172
-
173
  foreach ( $blog_stream as $key => $stream_entry ) {
174
-
175
  if (!in_array($stream_entry['connector'], self::$import_connectors)) {
176
  continue;
177
  }
178
-
179
  if ('users' == $stream_entry['connector'] && 'login' == $stream_entry['action']) {
180
  continue;
181
  }
182
-
183
- $prev_entry_id = $stream_entry['ID'];
184
-
185
  $insert_entry = array(
186
- 'site_id' => $stream_entry['site_id'],
187
  'blog_id' => $stream_entry['blog_id'],
188
  'object_id' => $stream_entry['object_id'],
189
  'author' => $stream_entry['user_id'],
@@ -196,17 +194,17 @@ class MainWP_WP_Stream_Install {
196
  'created' => $stream_entry['created'],
197
  'ip' => $stream_entry['ip']
198
  );
199
-
200
  $wpdb->insert( $wpdb->prefix . 'mainwp_stream', $insert_entry );
201
  $stream_entry_id = $wpdb->insert_id;
202
-
203
- $insert_context = array(
204
  'record_id' => $stream_entry_id,
205
  'context' => $stream_entry['context'],
206
  'action' => $stream_entry['action'],
207
  'connector' => $stream_entry['connector']
208
  );
209
- $wpdb->insert( $wpdb->prefix . 'mainwp_stream_context', $insert_context );
210
 
211
  $sql = "SELECT * FROM {$wpdb->prefix}stream_meta WHERE record_id = $prev_entry_id";
212
 
@@ -225,31 +223,31 @@ class MainWP_WP_Stream_Install {
225
  // if ( ! current_user_can( WP_Stream_Admin::VIEW_CAP ) ) {
226
  // return;
227
  // }
228
-
229
  if ( ! isset( $_REQUEST['mainwp_wp_stream_update'] ) ) {
230
  self::prompt_copy_data();
231
- } else {
232
  check_admin_referer( 'mainwp_wp_stream_update_db' );
233
- if ( isset( $_REQUEST['mainwp_reports_copy_db_submit'] ) ) {
234
- self::copy_stream_db();
235
-
236
  } else if ( isset( $_REQUEST['mainwp_reports_continue_submit'] ) ) {
237
  update_option('mainwp_child_reports_check_to_copy_data', '');
238
  }
239
  }
240
-
241
  if ('yes' == get_option('mainwp_child_reports_copied_data_ok')) {
242
- self::prompt_copy_data_status();
243
  }
244
  }
245
-
246
  public static function prompt_copy_data() {
247
  ?>
248
  <div class="updated">
249
  <form method="post" action="<?php echo esc_url( remove_query_arg( 'message' ) ) ?>">
250
  <?php wp_nonce_field( 'mainwp_wp_stream_update_db' ) ?>
251
  <input type="hidden" name="mainwp_wp_stream_update" value="not_update_and_continue"/>
252
- <p><strong><?php esc_html_e( 'Do you want to import logs from the Stream plugin?', 'mainwp-child-reports' ) ?></strong></p>
253
  <p class="submit">
254
  <?php submit_button( esc_html__( 'Yes', 'mainwp-child-reports' ), 'primary', 'mainwp_reports_copy_db_submit', false ) ?>
255
  <?php submit_button( esc_html__( 'No', 'mainwp-child-reports' ), 'primary', 'mainwp_reports_continue_submit', false ) ?>
@@ -258,16 +256,16 @@ class MainWP_WP_Stream_Install {
258
  </div>
259
  <?php
260
  }
261
-
262
- public static function prompt_copy_data_status() {
263
  printf( '<div class="updated"><p>%s</p></div>', __( 'Logs have been successfully imported.', 'mainwp-child-reports' ) );
264
- delete_option('mainwp_child_reports_copied_data_ok');
265
  }
266
-
267
  public static function get_db_version() {
268
 
269
  $version = get_site_option( self::KEY );
270
-
271
  return $version;
272
  }
273
 
@@ -276,7 +274,7 @@ class MainWP_WP_Stream_Install {
276
 
277
  require_once ABSPATH . 'wp-admin/includes/upgrade.php';
278
 
279
- $prefix = self::$table_prefix;
280
 
281
  $sql = "CREATE TABLE {$prefix}mainwp_stream (
282
  ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
@@ -364,18 +362,18 @@ class MainWP_WP_Stream_Install {
364
 
365
  public static function check_updates() {
366
  global $wpdb;
367
-
368
  require_once ABSPATH . 'wp-admin/includes/upgrade.php';
369
  $current_version = self::get_db_version();
370
-
371
  $prefix = self::$table_prefix;
372
-
373
  if (version_compare($current_version, '0.0.4', '<')) {
374
- $wpdb->query( "ALTER TABLE {$prefix}mainwp_stream_meta CHANGE `meta_value` `meta_value` TEXT " . ( !empty($wpdb->charset) ? "CHARACTER SET " . $wpdb->charset : "" ) . ( !empty($wpdb->collate) ? " COLLATE " . $wpdb->collate : "" ) . " NOT NULL;");
375
  if ( $wpdb->get_var( "SHOW INDEX FROM {$prefix}mainwp_stream_meta WHERE column_name = 'meta_value'")) {
376
  $wpdb->query( "ALTER TABLE {$prefix}mainwp_stream_meta DROP INDEX meta_value");
377
  }
378
- }
379
-
380
- }
381
  }
19
  private static $instance = false;
20
 
21
  public static $import_connectors;
22
+
23
  public static function get_instance() {
24
  if ( empty( self::$instance ) ) {
25
  self::$instance = new self();
33
 
34
  self::$current = MainWP_WP_Stream::VERSION;
35
  self::$db_version = self::get_db_version();
 
 
36
 
37
+ self::$table_prefix = $wpdb->prefix;
38
  self::$import_connectors = array('comment', 'editor', 'installer', 'media', 'menus', 'posts', 'users', 'widgets');
39
  self::check();
40
  }
42
  private static function check() {
43
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
44
  return;
45
+ }
46
+
47
+ global $wpdb;
48
+
49
  if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "mainwp_stream'" ) !== $wpdb->prefix . "mainwp_stream" ||
50
+ $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "mainwp_stream_meta'" ) !== $wpdb->prefix . "mainwp_stream_meta"
51
  ) {
52
+ self::$db_version = false;
53
+ } else {
54
+ if (false === get_option('mainwp_creport_first_time_activated')) {
55
  $sql = "SELECT MIN( created ) AS first_time " .
56
+ "FROM {$wpdb->prefix}mainwp_stream " .
57
+ "WHERE created != '0000-00-00 00:00:00'";
58
+ $result = $wpdb->get_results( $sql, ARRAY_A );
59
  $time = time();
60
  if (isset($result[0]) && !empty($result[0]['first_time'])) {
61
+ $time = strtotime( $result[0]['first_time'] );
62
+ }
63
  update_option('mainwp_creport_first_time_activated', $time);
64
  }
65
  }
66
+
67
  if ( empty( self::$db_version ) ) {
68
+ self::install( self::$current );
69
+ self::copy_stream_db();
70
+ } elseif ( version_compare( self::$db_version, self::$current, '!=') ) {
71
+ self::check_updates();
72
+ update_site_option( self::KEY, self::$current );
73
+ }
74
+
75
  if ('yes' == get_option('mainwp_child_reports_check_to_copy_data', false)) {
76
+ add_action( 'all_admin_notices', array( __CLASS__, 'update_notice_hook' ) );
77
  }
78
  }
79
+
80
+ public static function check_to_copy_data() {
81
+ $stream_db_version = get_site_option( 'wp_stream_db' ); // store db version of the plugin stream 1.4.9
82
  update_option('mainwp_child_reports_check_to_copy_data', 'yes');
83
  return;
84
  }
85
+
86
  public static function copy_stream_db() {
87
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
88
  return;
89
+ }
90
+ $stream_db_version = get_site_option( 'wp_stream_db' ); // store db version of the plugin stream 1.4.9
91
+ if (version_compare($stream_db_version, '1.4.9', '='))
92
  self::copy_stream_149_db();
93
  else if (version_compare($stream_db_version, '3.0' , '>=')) {
94
  self::copy_stream_300_db();
96
  update_option('mainwp_child_reports_copied_data_ok', 'yes');
97
  update_option('mainwp_child_reports_check_to_copy_data', '');
98
  }
99
+
100
  public static function copy_stream_149_db() {
101
+ global $wpdb;
102
  if ( is_multisite() ) {
103
  return;
104
+ }
105
+ if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream'" ) !== $wpdb->prefix . "stream" )
106
  return;
107
+ if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream_context'" ) !== $wpdb->prefix . "stream_context" )
108
  return;
109
+ if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream_meta'" ) !== $wpdb->prefix . "stream_meta" )
110
  return;
111
+
112
  $sql = "SELECT * FROM {$wpdb->prefix}stream";
113
 
114
  $blog_stream = $wpdb->get_results( $sql, ARRAY_A );
116
  foreach ( $blog_stream as $key => $stream_entry ) {
117
  $prev_entry_id = $stream_entry['ID'];
118
 
119
+ unset( $stream_entry['ID'] );
120
 
121
  $wpdb->insert( $wpdb->prefix . 'mainwp_stream', $stream_entry );
122
  $stream_entry_id = $wpdb->insert_id;
143
  $wpdb->insert( $wpdb->prefix . 'mainwp_stream_meta', $stream_meta );
144
  }
145
  }
146
+
147
  }
148
+
149
  public static function copy_stream_300_db() {
150
  global $wpdb;
151
  if ( is_multisite() ) {
152
  return;
153
  }
154
+ if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream'" ) !== $wpdb->prefix . "stream" )
155
  return;
156
+ if ( $wpdb->get_var( "SHOW TABLES LIKE '" . $wpdb->prefix . "stream_meta'" ) !== $wpdb->prefix . "stream_meta" )
157
  return;
158
 
159
  $timeout = 20 * 60 * 60; /*20 minutes*/
162
  @ini_set( 'memory_limit', $mem );
163
  @set_time_limit( $timeout );
164
  @ini_set( 'max_execution_time', $timeout );
165
+
166
  $sql = "SELECT * FROM {$wpdb->prefix}stream";
167
 
168
  $blog_stream = $wpdb->get_results( $sql, ARRAY_A );
169
  $printed_connector = array();
170
+
171
  foreach ( $blog_stream as $key => $stream_entry ) {
172
+
173
  if (!in_array($stream_entry['connector'], self::$import_connectors)) {
174
  continue;
175
  }
176
+
177
  if ('users' == $stream_entry['connector'] && 'login' == $stream_entry['action']) {
178
  continue;
179
  }
180
+
181
+ $prev_entry_id = $stream_entry['ID'];
182
+
183
  $insert_entry = array(
184
+ 'site_id' => $stream_entry['site_id'],
185
  'blog_id' => $stream_entry['blog_id'],
186
  'object_id' => $stream_entry['object_id'],
187
  'author' => $stream_entry['user_id'],
194
  'created' => $stream_entry['created'],
195
  'ip' => $stream_entry['ip']
196
  );
197
+
198
  $wpdb->insert( $wpdb->prefix . 'mainwp_stream', $insert_entry );
199
  $stream_entry_id = $wpdb->insert_id;
200
+
201
+ $insert_context = array(
202
  'record_id' => $stream_entry_id,
203
  'context' => $stream_entry['context'],
204
  'action' => $stream_entry['action'],
205
  'connector' => $stream_entry['connector']
206
  );
207
+ $wpdb->insert( $wpdb->prefix . 'mainwp_stream_context', $insert_context );
208
 
209
  $sql = "SELECT * FROM {$wpdb->prefix}stream_meta WHERE record_id = $prev_entry_id";
210
 
223
  // if ( ! current_user_can( WP_Stream_Admin::VIEW_CAP ) ) {
224
  // return;
225
  // }
226
+
227
  if ( ! isset( $_REQUEST['mainwp_wp_stream_update'] ) ) {
228
  self::prompt_copy_data();
229
+ } else {
230
  check_admin_referer( 'mainwp_wp_stream_update_db' );
231
+ if ( isset( $_REQUEST['mainwp_reports_copy_db_submit'] ) ) {
232
+ self::copy_stream_db();
233
+
234
  } else if ( isset( $_REQUEST['mainwp_reports_continue_submit'] ) ) {
235
  update_option('mainwp_child_reports_check_to_copy_data', '');
236
  }
237
  }
238
+
239
  if ('yes' == get_option('mainwp_child_reports_copied_data_ok')) {
240
+ self::prompt_copy_data_status();
241
  }
242
  }
243
+
244
  public static function prompt_copy_data() {
245
  ?>
246
  <div class="updated">
247
  <form method="post" action="<?php echo esc_url( remove_query_arg( 'message' ) ) ?>">
248
  <?php wp_nonce_field( 'mainwp_wp_stream_update_db' ) ?>
249
  <input type="hidden" name="mainwp_wp_stream_update" value="not_update_and_continue"/>
250
+ <p><strong><?php esc_html_e( 'Do you want to import logs from the Stream plugin?', 'mainwp-child-reports' ) ?></strong></p>
251
  <p class="submit">
252
  <?php submit_button( esc_html__( 'Yes', 'mainwp-child-reports' ), 'primary', 'mainwp_reports_copy_db_submit', false ) ?>
253
  <?php submit_button( esc_html__( 'No', 'mainwp-child-reports' ), 'primary', 'mainwp_reports_continue_submit', false ) ?>
256
  </div>
257
  <?php
258
  }
259
+
260
+ public static function prompt_copy_data_status() {
261
  printf( '<div class="updated"><p>%s</p></div>', __( 'Logs have been successfully imported.', 'mainwp-child-reports' ) );
262
+ delete_option('mainwp_child_reports_copied_data_ok');
263
  }
264
+
265
  public static function get_db_version() {
266
 
267
  $version = get_site_option( self::KEY );
268
+
269
  return $version;
270
  }
271
 
274
 
275
  require_once ABSPATH . 'wp-admin/includes/upgrade.php';
276
 
277
+ $prefix = $wpdb->prefix;
278
 
279
  $sql = "CREATE TABLE {$prefix}mainwp_stream (
280
  ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
362
 
363
  public static function check_updates() {
364
  global $wpdb;
365
+
366
  require_once ABSPATH . 'wp-admin/includes/upgrade.php';
367
  $current_version = self::get_db_version();
368
+
369
  $prefix = self::$table_prefix;
370
+
371
  if (version_compare($current_version, '0.0.4', '<')) {
372
+ $wpdb->query( "ALTER TABLE {$prefix}mainwp_stream_meta CHANGE `meta_value` `meta_value` TEXT " . ( !empty($wpdb->charset) ? "CHARACTER SET " . $wpdb->charset : "" ) . ( !empty($wpdb->collate) ? " COLLATE " . $wpdb->collate : "" ) . " NOT NULL;");
373
  if ( $wpdb->get_var( "SHOW INDEX FROM {$prefix}mainwp_stream_meta WHERE column_name = 'meta_value'")) {
374
  $wpdb->query( "ALTER TABLE {$prefix}mainwp_stream_meta DROP INDEX meta_value");
375
  }
376
+ }
377
+
378
+ }
379
  }
includes/query.php CHANGED
@@ -65,7 +65,7 @@ class MainWP_WP_Stream_Query {
65
  );
66
 
67
  $args = wp_parse_args( $args, $defaults );
68
-
69
  $args = apply_filters( 'mainwp_wp_stream_query_args', $args );
70
 
71
  if ( true === $args['hide_excluded'] ) {
@@ -122,12 +122,12 @@ class MainWP_WP_Stream_Query {
122
  if ( $args['visibility'] ) {
123
  $where .= $wpdb->prepare( " AND $wpdb->mainwp_reports.visibility = %s", $args['visibility'] );
124
  }
125
-
126
- if (isset($args['hide_child_reports']) && $args['hide_child_reports']) {
127
  $child_record_ids = array();
128
- $sql_meta = "SELECT record_id FROM $wpdb->mainwp_reportsmeta WHERE meta_key = 'slug' AND (meta_value = 'mainwp-child/mainwp-child.php' OR meta_value = 'mainwp-child-reports/mainwp-child-reports.php')";
129
- $ret = $wpdb->get_results( $sql_meta, 'ARRAY_A' );
130
-
131
  if (is_array($ret) && count($ret)> 0) {
132
  foreach($ret as $val) {
133
  $child_record_ids[] = $val['record_id'];
@@ -135,14 +135,14 @@ class MainWP_WP_Stream_Query {
135
  }
136
  if (count($child_record_ids) > 0) {
137
  $where .= " AND $wpdb->mainwp_reports.ID NOT IN (" . implode(",", $child_record_ids). ") ";
138
- }
139
  }
140
-
141
  /**
142
  * PARSE DATE FILTERS
143
  */
144
  if ( isset( $args['date'] ) && !empty( $args['date'] ) ) {
145
- $date = get_gmt_from_date( date( 'Y-m-d H:i:s', strtotime( $args['date'] ) ) );
146
  $where .= " AND (DATE($wpdb->mainwp_reports.created) = STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
147
  } else {
148
  if ( isset($args['date_from']) && !empty($args['date_from']) ) {
@@ -150,14 +150,14 @@ class MainWP_WP_Stream_Query {
150
  $where .= " AND ($wpdb->mainwp_reports.created >= STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
151
  }
152
  if ( isset($args['date_to']) && !empty($args['date_to']) ) {
153
- $date = get_gmt_from_date( date( 'Y-m-d H:i:s', strtotime( $args['date_to'] ) ) );
154
  $where .= " AND ($wpdb->mainwp_reports.created <= STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
155
- }
156
  if ( isset($args['datetime_from']) && !empty($args['datetime_from']) ) {
157
  $date = get_gmt_from_date( date( 'Y-m-d H:i:s', strtotime( $args['datetime_from'] ) ) );
158
- $where .= " AND ($wpdb->mainwp_reports.created >= STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
159
  }
160
- }
161
 
162
  /**
163
  * PARSE __IN PARAM FAMILY
@@ -167,10 +167,10 @@ class MainWP_WP_Stream_Query {
167
  }
168
 
169
  if ( $args['created_greater_than'] ) {
170
- $date = date( 'Y-m-d H:i:s', $args['created_greater_than'] );
171
  $where .= " AND ($wpdb->mainwp_reports.created > STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
172
  }
173
-
174
  if ( $args['record__in'] ) {
175
  $record__in = array_filter( (array) $args['record__in'], 'is_numeric' );
176
  if ( ! empty( $record__in ) ) {
@@ -331,26 +331,38 @@ class MainWP_WP_Stream_Query {
331
  WHERE 1=1 $where
332
  $orderby
333
  $limits";
334
-
335
  $sql = apply_filters( 'mainwp_wp_stream_query', $sql, $args );
336
-
337
  //error_log($sql);
338
-
339
  $results = $wpdb->get_results( $sql );
340
 
341
  if ( 'with-meta' === $fields && is_array( $results ) && $results ) {
342
  $ids = array_map( 'absint', wp_list_pluck( $results, 'ID' ) );
343
- $sql_meta = sprintf(
344
- "SELECT * FROM $wpdb->mainwp_reportsmeta WHERE record_id IN ( %s )",
345
- implode( ',', $ids )
346
- );
347
-
348
- $meta = $wpdb->get_results( $sql_meta );
349
- $ids_f = array_flip( $ids );
350
-
351
- foreach ( $meta as $meta_record ) {
352
- $results[ $ids_f[ $meta_record->record_id ] ]->meta[ $meta_record->meta_key ][] = $meta_record->meta_value;
353
- }
 
 
 
 
 
 
 
 
 
 
 
 
354
  }
355
 
356
  return $results;
65
  );
66
 
67
  $args = wp_parse_args( $args, $defaults );
68
+
69
  $args = apply_filters( 'mainwp_wp_stream_query_args', $args );
70
 
71
  if ( true === $args['hide_excluded'] ) {
122
  if ( $args['visibility'] ) {
123
  $where .= $wpdb->prepare( " AND $wpdb->mainwp_reports.visibility = %s", $args['visibility'] );
124
  }
125
+
126
+ if (isset($args['hide_child_reports']) && $args['hide_child_reports']) {
127
  $child_record_ids = array();
128
+ $sql_meta = "SELECT record_id FROM $wpdb->mainwp_reportsmeta WHERE meta_key = 'slug' AND (meta_value = 'mainwp-child/mainwp-child.php' OR meta_value = 'mainwp-child-reports/mainwp-child-reports.php')";
129
+ $ret = $wpdb->get_results( $sql_meta, 'ARRAY_A' );
130
+
131
  if (is_array($ret) && count($ret)> 0) {
132
  foreach($ret as $val) {
133
  $child_record_ids[] = $val['record_id'];
135
  }
136
  if (count($child_record_ids) > 0) {
137
  $where .= " AND $wpdb->mainwp_reports.ID NOT IN (" . implode(",", $child_record_ids). ") ";
138
+ }
139
  }
140
+
141
  /**
142
  * PARSE DATE FILTERS
143
  */
144
  if ( isset( $args['date'] ) && !empty( $args['date'] ) ) {
145
+ $date = get_gmt_from_date( date( 'Y-m-d H:i:s', strtotime( $args['date'] ) ) );
146
  $where .= " AND (DATE($wpdb->mainwp_reports.created) = STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
147
  } else {
148
  if ( isset($args['date_from']) && !empty($args['date_from']) ) {
150
  $where .= " AND ($wpdb->mainwp_reports.created >= STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
151
  }
152
  if ( isset($args['date_to']) && !empty($args['date_to']) ) {
153
+ $date = get_gmt_from_date( date( 'Y-m-d H:i:s', strtotime( $args['date_to'] ) ) );
154
  $where .= " AND ($wpdb->mainwp_reports.created <= STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
155
+ }
156
  if ( isset($args['datetime_from']) && !empty($args['datetime_from']) ) {
157
  $date = get_gmt_from_date( date( 'Y-m-d H:i:s', strtotime( $args['datetime_from'] ) ) );
158
+ $where .= " AND ($wpdb->mainwp_reports.created >= STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
159
  }
160
+ }
161
 
162
  /**
163
  * PARSE __IN PARAM FAMILY
167
  }
168
 
169
  if ( $args['created_greater_than'] ) {
170
+ $date = date( 'Y-m-d H:i:s', $args['created_greater_than'] );
171
  $where .= " AND ($wpdb->mainwp_reports.created > STR_TO_DATE(" . $wpdb->prepare('%s', $date) . ", '%Y-%m-%d %H:%i:%s'))";
172
  }
173
+
174
  if ( $args['record__in'] ) {
175
  $record__in = array_filter( (array) $args['record__in'], 'is_numeric' );
176
  if ( ! empty( $record__in ) ) {
331
  WHERE 1=1 $where
332
  $orderby
333
  $limits";
334
+
335
  $sql = apply_filters( 'mainwp_wp_stream_query', $sql, $args );
336
+
337
  //error_log($sql);
338
+
339
  $results = $wpdb->get_results( $sql );
340
 
341
  if ( 'with-meta' === $fields && is_array( $results ) && $results ) {
342
  $ids = array_map( 'absint', wp_list_pluck( $results, 'ID' ) );
343
+ // to fix issue long query
344
+ $start_slice = 0;
345
+ $max_slice = 100;
346
+
347
+ while( $start_slice <= count($ids)) {
348
+ $slice_ids = array_slice($ids, $start_slice, $max_slice);
349
+ $start_slice += $max_slice;
350
+
351
+ if (!empty($slice_ids)) {
352
+ $sql_meta = sprintf(
353
+ "SELECT * FROM $wpdb->mainwp_reportsmeta WHERE record_id IN ( %s )",
354
+ implode( ',', $slice_ids )
355
+ );
356
+
357
+ $meta = $wpdb->get_results( $sql_meta );
358
+ $ids_f = array_flip( $ids );
359
+
360
+ foreach ( $meta as $meta_record ) {
361
+ $results[ $ids_f[ $meta_record->record_id ] ]->meta[ $meta_record->meta_key ][] = $meta_record->meta_value;
362
+ }
363
+ }
364
+ }
365
+ // end
366
  }
367
 
368
  return $results;
languages/mainwp-child-reports-fr_FR.mo CHANGED
Binary file
languages/mainwp-child-reports-fr_FR.po CHANGED
@@ -1,783 +1,1045 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Stream\n"
4
- "POT-Creation-Date: 2013-12-19 16:09+0100\n"
5
- "PO-Revision-Date: 2013-12-21 22:34-0500\n"
6
- "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: fr_FR\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.6.3\n"
13
- "X-Poedit-Basepath: .\n"
14
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
- #: ../stream.php:131
17
- msgid "Stream requires PHP version 5.3+, plugin is currently NOT ACTIVE."
18
  msgstr ""
19
- "Stream requiert une version PHP supérieur à 5.3. Le plugin n'est "
20
- "présentement PAS ACTIF."
21
 
22
- #: ../connectors/installer.php:32
23
- msgid "Installer"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
- #: ../connectors/installer.php:42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  msgid "Installed"
28
  msgstr "Installé"
29
 
30
- #: ../connectors/installer.php:43
31
  msgid "Activated"
32
  msgstr "Activée"
33
 
34
- #: ../connectors/installer.php:44 ../connectors/widgets.php:40
35
  msgid "Deactivated"
36
  msgstr "Désactivé"
37
 
38
- #: ../connectors/installer.php:45 ../connectors/media.php:42
39
- #: ../connectors/menus.php:39 ../connectors/posts.php:39
40
- #: ../connectors/taxonomies.php:58 ../connectors/users.php:54
41
- #: ../connectors/widgets.php:39
42
- msgid "Deleted"
43
- msgstr "Supprimé"
44
-
45
- #: ../connectors/installer.php:46
46
- msgid "Edited"
47
- msgstr "Édité"
48
-
49
- #: ../connectors/installer.php:57
50
  msgid "Plugins"
51
- msgstr ""
52
 
53
- #: ../connectors/installer.php:58
54
  msgid "Themes"
55
  msgstr "Thème"
56
 
57
- #: ../connectors/installer.php:87
58
- #, php-format
59
- msgid "Installed %s: %s %s"
60
- msgstr "%s: %s %s Installé"
61
 
62
- #: ../connectors/installer.php:115
63
- #, php-format
64
- msgid "Updated %s: %s to %s"
65
- msgstr "%s: %s %s Mis à jour"
66
 
67
- #: ../connectors/installer.php:143
 
 
 
 
68
  #, php-format
69
- msgid "\"%s\" plugin activated %s"
70
- msgstr "Le plugin \"%s\" a été activé %s"
71
 
72
- #: ../connectors/installer.php:155
73
  #, php-format
74
- msgid "\"%s\" plugin deactivated %s"
75
- msgstr "Le plugin \"%s\" a été désactivé %s"
 
 
 
 
 
76
 
77
- #: ../connectors/installer.php:165
78
  #, php-format
79
  msgid "\"%s\" theme activated"
80
  msgstr "Le thème \"%s\" a été activé"
81
 
82
- #: ../connectors/installer.php:180
83
  #, php-format
84
- msgid "\"%s\" theme deleted"
85
- msgstr "Le thème \"%s\" a été supprimé"
86
 
87
- #: ../connectors/installer.php:209
88
  #, php-format
89
- msgid "\"%s\" plugin deleted"
90
- msgstr "Le plugin \"%s\" a été supprimé"
91
 
92
- #: ../connectors/installer.php:248
93
- #, php-format
94
- msgid "Edited %s: %s"
95
- msgstr "%s: %s a été supprimé"
 
96
 
97
- #: ../connectors/media.php:29 ../connectors/media.php:55
98
- #: ../connectors/settings.php:51
99
  msgid "Media"
100
  msgstr "Médias"
101
 
102
- #: ../connectors/media.php:39
103
- msgid "Attached"
104
- msgstr "Attaché"
105
-
106
- #: ../connectors/media.php:40
107
  msgid "Uploaded"
108
  msgstr "Téléversé"
109
 
110
- #: ../connectors/media.php:41 ../connectors/menus.php:38
111
- #: ../connectors/posts.php:36 ../connectors/settings.php:35
112
- #: ../connectors/taxonomies.php:57 ../connectors/users.php:52
113
- #: ../connectors/widgets.php:41
114
- msgid "Updated"
115
- msgstr "Mis à jour"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
 
117
- #: ../connectors/media.php:43 ../connectors/menus.php:40
118
- msgid "Assigned"
119
- msgstr "Assigné"
120
 
121
- #: ../connectors/media.php:44 ../connectors/menus.php:41
122
- msgid "Unassigned"
123
- msgstr "Désassigné"
124
 
125
- #: ../connectors/media.php:70
 
 
 
 
126
  msgid "Edit Media"
127
  msgstr "Média édité"
128
 
129
- #: ../connectors/media.php:73 ../connectors/posts.php:70
130
- #: ../connectors/taxonomies.php:86
131
  msgid "View"
132
  msgstr "Vue"
133
 
134
- #: ../connectors/media.php:87
135
- #, php-format
136
- msgid "Attached \"%s\" to \"%s\""
137
- msgstr "\"%s\" to \"%s\" a été attaché"
138
-
139
- #: ../connectors/media.php:89
140
- #, php-format
141
- msgid "Added \"%s\" to Media library"
142
- msgstr "\"%s\" a été ajouté à la bibliothèque médias"
143
-
144
- #: ../connectors/media.php:111
145
  #, php-format
146
  msgid "Updated \"%s\""
147
  msgstr "\"%s\" mis à jour"
148
 
149
- #: ../connectors/media.php:131 ../connectors/menus.php:122
150
  #, php-format
151
  msgid "Deleted \"%s\""
152
- msgstr "\"%s\" Supprimé"
153
 
154
- #: ../connectors/media.php:146
155
  #, php-format
156
  msgid "Edited image \"%s\""
157
- msgstr "Image \"%s\" mis à jour"
158
 
159
- #: ../connectors/menus.php:27 ../connectors/menus.php:52
160
  msgid "Menus"
161
- msgstr ""
162
 
163
- #: ../connectors/menus.php:37 ../connectors/posts.php:37
164
- #: ../connectors/taxonomies.php:56 ../connectors/users.php:53
165
- msgid "Created"
166
- msgstr "Créé"
167
-
168
- #: ../connectors/menus.php:74
169
  msgid "Edit Menu"
170
  msgstr "Modifier menu"
171
 
172
- #: ../connectors/menus.php:88
173
  #, php-format
174
  msgid "Created new menu \"%s\""
175
  msgstr "Menu \"%s\" a été créé"
176
 
177
- #: ../connectors/menus.php:106
178
- #, php-format
179
- msgid "Updated menu \"%s\""
180
- msgstr "Menu \"%s\" mis à jour"
181
-
182
- #: ../connectors/menus.php:157
183
- #, php-format
184
- msgid "\"%s\" has been unassigned from \"%s\""
185
- msgstr "\"%s\" a été désassigné de \"%s\""
186
-
187
- #: ../connectors/menus.php:161
188
- #, php-format
189
- msgid "\"%s\" has been assigned to \"%s\""
190
- msgstr "\"%s\" a été assigné à \"%s\""
191
-
192
- #: ../connectors/posts.php:26
193
  msgid "Posts"
194
  msgstr "Articles"
195
 
196
- #: ../connectors/posts.php:38
197
- msgid "Trashed"
198
- msgstr "Mis à la corbeil"
199
 
200
- #: ../connectors/posts.php:67
201
- #, php-format
202
- msgid "Edit %s"
203
- msgstr "%s mis à jour"
204
 
205
- #: ../connectors/posts.php:74
206
- msgid "Revision"
207
- msgstr "Révisé"
208
 
209
- #: ../connectors/posts.php:96
210
- #, php-format
211
- msgid "\"%s\" %s drafted"
212
- msgstr "\"%s\" %s brouillon"
213
-
214
- #: ../connectors/posts.php:100 ../connectors/posts.php:104
215
- #, php-format
216
- msgid "\"%s\" %s published"
217
- msgstr "\"%s\" %s publié"
218
-
219
- #: ../connectors/posts.php:107
220
- #, php-format
221
- msgid "\"%s\" %s unpublished"
222
- msgstr "\"%s\" %s dépublié"
223
-
224
- #: ../connectors/posts.php:110
225
- #, php-format
226
- msgid "\"%s\" %s trashed"
227
- msgstr "\"%s\" %s mis à la corbeil"
228
-
229
- #: ../connectors/posts.php:114 ../connectors/taxonomies.php:141
230
- #, php-format
231
- msgid "\"%s\" %s updated"
232
- msgstr "\"%s\" %s mis à jour"
233
-
234
- #: ../connectors/posts.php:171
235
- #, php-format
236
- msgid "\"%s\" %s deleted from trash"
237
- msgstr "\"%s\" %s supprimé de la corbeil"
238
-
239
- #: ../connectors/settings.php:25 ../connectors/settings.php:46
240
- #: ../includes/admin.php:68 ../includes/admin.php:162
241
- msgid "Settings"
242
- msgstr "Paramètres"
243
-
244
- #: ../connectors/settings.php:47 ../includes/settings.php:53
245
- msgid "General"
246
- msgstr "Général"
247
-
248
- #: ../connectors/settings.php:48
249
- msgid "Writing"
250
- msgstr "Écriture"
251
-
252
- #: ../connectors/settings.php:49
253
- msgid "Reading"
254
- msgstr "Lecture"
255
-
256
- #: ../connectors/settings.php:50
257
- msgid "Discussion"
258
  msgstr ""
259
 
260
- #: ../connectors/settings.php:52
261
- msgid "Permalinks"
262
- msgstr "Permaliens"
263
-
264
- #: ../connectors/settings.php:64
265
- msgid "Site Title"
266
- msgstr "Titre du site"
267
-
268
- #: ../connectors/settings.php:65
269
- msgid "Tagline"
270
- msgstr "Slogan"
271
-
272
- #: ../connectors/settings.php:66
273
- msgid "WordPress Address (URL)"
274
- msgstr "Adresse WordPress (URL)"
275
-
276
- #: ../connectors/settings.php:67
277
- msgid "Site Address (URL)"
278
- msgstr "Adresse du site (URL)"
279
-
280
- #: ../connectors/settings.php:68
281
- msgid "E-mail Address"
282
- msgstr "Adresse courriel"
283
-
284
- #: ../connectors/settings.php:69
285
- msgid "Membership"
286
- msgstr "Abonnement"
287
-
288
- #: ../connectors/settings.php:70
289
- msgid "New User Default Role"
290
- msgstr "Nouveau rôle par défaut des utilisateurs"
291
-
292
- #: ../connectors/settings.php:71
293
- msgid "Timezone"
294
- msgstr "Fuseau horaire"
295
-
296
- #: ../connectors/settings.php:72
297
- msgid "Date Format"
298
- msgstr "Format de la date"
299
-
300
- #: ../connectors/settings.php:73
301
- msgid "Time Format"
302
- msgstr "Format de l'heure"
303
-
304
- #: ../connectors/settings.php:74
305
- msgid "Week Starts On"
306
- msgstr "La semaine commence le"
307
-
308
- #: ../connectors/settings.php:76 ../connectors/settings.php:77
309
- msgid "Formatting"
310
- msgstr "Mise en forme"
311
-
312
- #: ../connectors/settings.php:78
313
- msgid "Default Post Category"
314
- msgstr "Catégorie par défaut des articles"
315
-
316
- #: ../connectors/settings.php:79
317
- msgid "Default Post Format"
318
- msgstr "Type d'article par défaut"
319
-
320
- #: ../connectors/settings.php:80
321
- msgid "Mail Server Address"
322
- msgstr "Nom du serveur de courriel"
323
-
324
- #: ../connectors/settings.php:81
325
- msgid "Mail Server Login Name"
326
- msgstr "Nom d'utilisateur du serveur de courriel"
327
-
328
- #: ../connectors/settings.php:82
329
- msgid "Mail Server Password"
330
- msgstr "Mot de passe du serveur de courriel"
331
-
332
- #: ../connectors/settings.php:83
333
- msgid "Default Mail Category"
334
- msgstr "Catégorie du courriel par défaut"
335
-
336
- #: ../connectors/settings.php:84
337
- msgid "Update Services"
338
- msgstr "Mis à jour des services"
339
-
340
- #: ../connectors/settings.php:86 ../connectors/settings.php:87
341
- #: ../connectors/settings.php:88
342
- msgid "Front page displays"
343
- msgstr "Page d'accueil du site"
344
-
345
- #: ../connectors/settings.php:89
346
- msgid "Blog pages show at most"
347
- msgstr "La page de blog affiche par défaut"
348
-
349
- #: ../connectors/settings.php:90
350
- msgid "Syndication feeds show the most recent"
351
- msgstr "Les flux RSS affiche par défaut"
352
-
353
- #: ../connectors/settings.php:91
354
- msgid "For each article in a feed, show"
355
- msgstr "Pour tous les articles dans un flux, afficher"
356
-
357
- #: ../connectors/settings.php:92
358
- msgid "Search Engine Visibility"
359
- msgstr "Affichage dans les moteurs de recherche"
360
-
361
- #: ../connectors/settings.php:94 ../connectors/settings.php:95
362
- #: ../connectors/settings.php:96
363
- msgid "Default article settings"
364
- msgstr "Paramètres par défaut des articles"
365
-
366
- #: ../connectors/settings.php:97 ../connectors/settings.php:98
367
- #: ../connectors/settings.php:99 ../connectors/settings.php:100
368
- #: ../connectors/settings.php:101 ../connectors/settings.php:102
369
- #: ../connectors/settings.php:103 ../connectors/settings.php:104
370
- #: ../connectors/settings.php:105 ../connectors/settings.php:106
371
- msgid "Other comment settings"
372
- msgstr "Autres paramètres des commentaires"
373
-
374
- #: ../connectors/settings.php:107 ../connectors/settings.php:108
375
- msgid "E-mail me whenever"
376
- msgstr "Envoyé moi un courriel dès que"
377
-
378
- #: ../connectors/settings.php:109 ../connectors/settings.php:110
379
- msgid "Before a comment appears"
380
- msgstr "Un commentaire apparaît"
381
-
382
- #: ../connectors/settings.php:111 ../connectors/settings.php:112
383
- msgid "Comment Moderation"
384
- msgstr "Commentaire en attente de modération"
385
-
386
- #: ../connectors/settings.php:113
387
- msgid "Comment Blacklist"
388
- msgstr "Commentaire mis en liste noir"
389
-
390
- #: ../connectors/settings.php:114
391
- msgid "Avatar Display"
392
- msgstr "Affichage de la photo de l'utilisateur"
393
-
394
- #: ../connectors/settings.php:115
395
- msgid "Avatar Maximum Rating"
396
- msgstr "Photo ayant une évaluation maximale"
397
-
398
- #: ../connectors/settings.php:116
399
- msgid "Default Avatar"
400
- msgstr "Photo par défaut"
401
-
402
- #: ../connectors/settings.php:118 ../connectors/settings.php:119
403
- #: ../connectors/settings.php:120
404
- msgid "Thumbnail Image Size"
405
- msgstr "Taille des vignettes par défaut"
406
-
407
- #: ../connectors/settings.php:121 ../connectors/settings.php:122
408
- msgid "Medium Image Size"
409
- msgstr "Image de taille médium"
410
-
411
- #: ../connectors/settings.php:123 ../connectors/settings.php:124
412
- msgid "Large Image Size"
413
- msgstr "Image de taille large"
414
-
415
- #: ../connectors/settings.php:125
416
- msgid "Uploading Files Organization"
417
- msgstr "Téléversement des fichiers de l'organisation"
418
-
419
- #: ../connectors/settings.php:127
420
- msgid "Permalink Structure"
421
- msgstr "Struture des permaliens"
422
-
423
- #: ../connectors/settings.php:128
424
- msgid "Category base"
425
- msgstr "Structure des Catégories"
426
-
427
- #: ../connectors/settings.php:129
428
- msgid "Tag base"
429
- msgstr "Structure des Mots clés"
430
-
431
- #: ../connectors/settings.php:161
432
- #, php-format
433
- msgid "Edit %s Settings"
434
- msgstr "Mis à jour %s des paramètres"
435
-
436
- #: ../connectors/settings.php:207
437
- #, php-format
438
- msgid "\"%s\" setting was updated"
439
- msgstr "Le paramètre \"%s\" a été mis à jour"
440
-
441
- #: ../connectors/taxonomies.php:46
442
- msgid "Taxonomies"
443
  msgstr ""
444
 
445
- #: ../connectors/taxonomies.php:85
446
- msgid "Edit"
447
- msgstr "Modifier"
448
-
449
- #: ../connectors/taxonomies.php:101
450
- #, php-format
451
- msgid "\"%s\" %s created"
452
- msgstr "\"%s\" %s créé"
453
-
454
- #: ../connectors/taxonomies.php:117
455
- #, php-format
456
- msgid "\"%s\" %s deleted"
457
- msgstr "\"%s\" %s supprimé"
458
-
459
- #: ../connectors/users.php:42 ../connectors/users.php:70
460
  msgid "Users"
461
  msgstr "Utilisateurs"
462
 
463
- #: ../connectors/users.php:55
464
- msgid "Password Reset"
465
- msgstr "Mot de passe remis à zéro"
466
-
467
- #: ../connectors/users.php:56
468
- msgid "Forgot Password"
469
- msgstr "Mot de passe oublié"
470
-
471
- #: ../connectors/users.php:57
472
- msgid "Login"
473
- msgstr "Connexion"
474
 
475
- #: ../connectors/users.php:58
476
- msgid "Logout"
477
- msgstr "Déconnexion"
 
 
478
 
479
- #: ../connectors/users.php:59
480
- msgid "Failed Login"
481
- msgstr "Tentative de connexion échoué"
482
 
483
- #: ../connectors/users.php:85
484
- msgid "Edit Profile"
485
- msgstr "Modifier le profil"
486
-
487
- #: ../connectors/users.php:131
488
  msgid "New user registration"
489
  msgstr "Nouvel utilisateur enregistré"
490
 
491
- #: ../connectors/users.php:134
492
- #, php-format
493
- msgid "New user account created for %s (%s)"
494
- msgstr "Un nouveau compte utilisateur a été créé pour %s (%s)"
495
-
496
- #: ../connectors/users.php:159
497
  #, php-format
498
  msgid "%s's profile was updated"
499
  msgstr "Le profil de %s a été mis à jour"
500
 
501
- #: ../connectors/users.php:182
502
- #, php-format
503
- msgid "%s's role was changed from %s to %s"
504
- msgstr "Le rôle de %s a été changé de %s à %s"
505
-
506
- #: ../connectors/users.php:202
507
- #, php-format
508
- msgid "%s's password was reset"
509
- msgstr "Le mot de passe de %s a été remis à zéro"
510
-
511
- #: ../connectors/users.php:226
512
- #, php-format
513
- msgid "%s's password was requested to be reset"
514
- msgstr "L'utilisateur %s à demandé que son mot de passe soit remis à zéro"
515
-
516
- #: ../connectors/users.php:245
517
- #, php-format
518
- msgid "%s logged in"
519
- msgstr "L'utilisateur %s s'est connecté"
520
-
521
- #: ../connectors/users.php:269
522
- #, php-format
523
- msgid "%s logged out"
524
- msgstr "L'utilisateur %s s'est déconnecté"
525
-
526
- #: ../connectors/users.php:307
527
- #, php-format
528
- msgid "%s's account was deleted (%s)"
529
- msgstr "Le compte de %s a été supprimé (%s)"
530
-
531
- #: ../connectors/users.php:312
532
  #, php-format
533
  msgid "User account #%d was deleted"
534
  msgstr "Le compte utilisateur #%d à été supprimé"
535
 
536
- #: ../connectors/users.php:340
537
- #, php-format
538
- msgid "Invalid login attempt for %s"
539
- msgstr "Tentative de connection invalide pour %s"
540
-
541
- #: ../connectors/widgets.php:28 ../connectors/widgets.php:53
542
  msgid "Widgets"
543
- msgstr ""
544
 
545
- #: ../connectors/widgets.php:38
546
  msgid "Added"
547
  msgstr "Ajouter"
548
 
549
- #: ../connectors/widgets.php:42
 
 
 
 
 
 
 
 
 
 
 
 
550
  msgid "Sorted"
551
  msgstr "Classer"
552
 
553
- #: ../connectors/widgets.php:69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
554
  msgid "Edit Widget Area"
555
  msgstr "Modifier la zone de widget"
556
 
557
- #: ../connectors/widgets.php:95
558
- #, php-format
559
- msgid "\"%s\" from \"%s\" has been deactivated"
560
- msgstr "L'utilisateur \"%s\" a été désactivé de \"%s\""
561
 
562
- #: ../connectors/widgets.php:131
563
- #, php-format
564
- msgid "\"%s\" has been added to \"%s\""
565
- msgstr "L'utilisateur \"%s\" a été ajouté de \"%s\""
566
 
567
- #: ../connectors/widgets.php:138
568
- #, php-format
569
- msgid "\"%s\" has been deleted from \"%s\""
570
- msgstr "L'utilisateur \"%s\" a été supprimé de \"%s\""
571
 
572
- #: ../connectors/widgets.php:187
573
- #, php-format
574
- msgid "Updated \"%s\" in \"%s\""
575
- msgstr "Mis à jour \"%s\" dans \"%s\""
576
 
577
- #: ../connectors/widgets.php:234
578
- #, php-format
579
- msgid "\"%s\" widgets were reordered"
580
- msgstr "\"%s\" widgets ont été réordonné"
581
 
582
- #: ../includes/admin.php:56 ../includes/admin.php:57
583
- msgid "Stream"
584
  msgstr ""
585
 
586
- #: ../includes/admin.php:67 ../includes/admin.php:178
587
- msgid "Stream Settings"
588
- msgstr "Paramètres Stream"
589
 
590
- #: ../includes/admin.php:96
 
 
 
 
 
 
 
 
 
591
  msgid ""
592
- "Are you sure you want to delete all Stream activity records from the "
593
- "database? This cannot be undone."
594
  msgstr ""
595
- "Êtes-vous sûr de vouloir supprimer tous les enregistrements d'activité de "
596
  "flux de la base de données? Cela ne peut pas être annulée."
597
 
598
- #: ../includes/admin.php:227
599
- msgid "Stream Records"
600
- msgstr "Registre Stream"
601
-
602
- #: ../includes/feeds.php:66
603
- msgid "Stream Feed URL"
604
- msgstr "URL RSS Stream"
605
-
606
- #: ../includes/feeds.php:69
607
  msgid ""
608
- "This is a private URL for you to access a feed of Stream Records. Consider "
609
- "this key a secret and do not share it with other users. If your key has been "
610
- "compromised, you can use the link below to generate a new one. "
611
  msgstr ""
612
- "Il s'agit d'une URL privée pour vous d'accéder à une alimentation "
613
- "d'enregistrement Stream. Considérez cette clé secrète et de ne pas le "
614
- "partager avec d'autres utilisateurs. Si votre clé a été compromise, vous "
615
- "pouvez utiliser le lien ci-dessous pour en générer un nouveau."
616
 
617
- #: ../includes/feeds.php:70
618
- msgid "Generate New Key"
619
- msgstr "Générer une nouvelle clé"
 
 
 
 
 
 
 
 
 
620
 
621
- #: ../includes/feeds.php:83
622
- msgid "Access Denied"
623
- msgstr "Accès refusé"
 
624
 
625
- #: ../includes/feeds.php:84
626
- msgid ""
627
- "You don't have permission to view this feed, please contact your site "
628
- "Administrator."
629
  msgstr ""
630
- "Vous n'avez pas la permission de voir ce flux, s'il vous plaît contactez "
631
- "votre administrateur du site."
632
 
633
- #: ../includes/feeds.php:140
634
- msgid "Stream Feed"
635
- msgstr "Flux Stream"
 
 
 
 
636
 
637
- #: ../includes/list-table.php:18
638
  msgid "Records per page"
639
  msgstr "Registres par page"
640
 
641
- #: ../includes/list-table.php:37
642
  msgid "Date"
643
- msgstr ""
644
 
645
- #: ../includes/list-table.php:38
646
  msgid "Summary"
647
  msgstr "Sommaire"
648
 
649
- #: ../includes/list-table.php:39
650
  msgid "Author"
651
  msgstr "Auteur"
652
 
653
- #: ../includes/list-table.php:40
654
  msgid "Connector"
655
  msgstr "Connecteur"
656
 
657
- #: ../includes/list-table.php:41
658
  msgid "Context"
659
  msgstr "Contexte"
660
 
661
- #: ../includes/list-table.php:42
662
  msgid "Action"
663
  msgstr "Action"
664
 
665
- #: ../includes/list-table.php:43
666
  msgid "IP Address"
667
  msgstr "Adresse IP"
668
 
669
- #: ../includes/list-table.php:44
670
- msgid "ID"
671
  msgstr ""
672
 
673
- #: ../includes/list-table.php:119
674
- #, php-format
675
- msgid "%s ago"
676
- msgstr "il y a %s"
 
 
 
 
 
677
 
678
- #: ../includes/list-table.php:241
679
  msgid "authors"
680
  msgstr "auteurs"
681
 
682
- #: ../includes/list-table.php:249
683
  msgid "connectors"
684
  msgstr "connecteurs"
685
 
686
- #: ../includes/list-table.php:257
687
  msgid "contexts"
688
  msgstr "contextes"
689
 
690
- #: ../includes/list-table.php:265
691
  msgid "actions"
692
  msgstr "actions"
693
 
694
- #: ../includes/list-table.php:277
695
  msgid "Filter"
696
  msgstr "Filtre"
697
 
698
- #: ../includes/list-table.php:283
699
- msgid "<option value=\"\"></option>"
 
 
 
 
 
 
 
 
 
700
  msgstr ""
701
 
702
- #: ../includes/list-table.php:309
703
- msgid "Search Records"
704
- msgstr "Rechercher les registres"
 
 
705
 
706
- #: ../includes/list-table.php:329
707
- msgid "Date start"
708
- msgstr "Date de début"
709
 
710
- #: ../includes/list-table.php:331
711
- msgid "Date end"
712
- msgstr "Date de fin"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
713
 
714
- #: ../includes/settings.php:57
715
- msgid "Role Access"
716
- msgstr "Accèes aux rôles suivant:"
717
 
718
- #: ../includes/settings.php:59
 
 
 
 
 
719
  msgid ""
720
- "Users from the selected roles above will have permission to view Stream "
721
- "Records. However, only site Administrators can access Stream Settings."
 
 
722
  msgstr ""
723
- "Les utilisateurs des rôles sélectionnés ci-dessus auront la permission de "
724
- "voir les données enregisté par Stream. Cependant, seuls les administrateurs "
725
- "du site peuvent accéder aux paramètres Stream."
726
 
727
- #: ../includes/settings.php:65
728
- msgid "Private Feeds"
729
- msgstr "RSS privés"
 
 
 
 
 
 
730
 
731
- #: ../includes/settings.php:67
732
  #, php-format
733
  msgid ""
734
- "Users from the selected roles above will be given a private Feed URL in "
735
- "their %sUser Profile%s. Please %sflush rewrite rules%s on your site after "
736
- "changing this setting."
737
  msgstr ""
738
- "Les utilisateurs des rôles sélectionnés ci-dessus seront donnés un flux "
739
- "privé URL dans leur %sProfil Utilisateur%s. N'oublier pas de %svider la "
740
- "cache des permaliens%s après avoir modifié ce paramètre."
741
 
742
- #: ../includes/settings.php:67
743
- msgid "View Profile"
744
- msgstr "Visualiser le profil"
745
 
746
- #: ../includes/settings.php:67
747
- msgid "View Codex"
748
- msgstr "Voir Codex"
749
 
750
- #: ../includes/settings.php:68
751
- msgid "Enabled"
752
- msgstr "Actif"
753
 
754
- #: ../includes/settings.php:73
755
- msgid "Keep Records for"
756
- msgstr "Garder les données pour"
757
 
758
- #: ../includes/settings.php:76
759
- msgid ""
760
- "Maximum number of days to keep activity records. Leave blank to keep records "
761
- "forever."
762
- msgstr ""
763
- "Le nombre maximum de jours de tenir des registres d'activité. Laissez vide "
764
- "pour conserver des dossiers pour toujours."
765
 
766
- #: ../includes/settings.php:78
767
- msgid "days"
768
- msgstr "jours"
769
 
770
- #: ../includes/settings.php:82
771
- msgid "Delete All Records"
772
- msgstr "Supprimer toutes les données"
773
 
774
- #: ../includes/settings.php:85
775
- msgid ""
776
- "Warning: Clicking this will delete all activity records from the database."
777
- msgstr ""
778
- "Avertissement: la confirmation de cette boîte entraînera la suppression de "
779
- "tous les entrées de la base de donnée."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
780
 
781
- #: ../includes/settings.php:236
782
- msgid "Reset Stream Database"
783
- msgstr "Remise à zéro de la base de donnée"
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Stream\n"
4
+ "POT-Creation-Date: 2018-10-24 11:15+0200\n"
5
+ "PO-Revision-Date: 2018-10-24 11:28+0200\n"
6
+ "Last-Translator: FreePixel <contact@freepixel.net>\n"
7
  "Language-Team: \n"
8
  "Language: fr_FR\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.1.1\n"
13
+ "X-Poedit-Basepath: mainwp-child-reports\n"
14
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
15
+ "X-Poedit-KeywordsList: __;_e;esc_html__\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-SearchPath-0: mainwp-child-reports.php\n"
18
+ "X-Poedit-SearchPath-1: includes/admin.php\n"
19
+ "X-Poedit-SearchPath-2: includes/class-wp-stream-author.php\n"
20
+ "X-Poedit-SearchPath-3: includes/connector.php\n"
21
+ "X-Poedit-SearchPath-4: includes/connectors.php\n"
22
+ "X-Poedit-SearchPath-5: includes/context-query.php\n"
23
+ "X-Poedit-SearchPath-6: includes/dashboard.php\n"
24
+ "X-Poedit-SearchPath-7: includes/date-interval.php\n"
25
+ "X-Poedit-SearchPath-8: includes/db.php\n"
26
+ "X-Poedit-SearchPath-9: includes/filter-input.php\n"
27
+ "X-Poedit-SearchPath-10: includes/functions.php\n"
28
+ "X-Poedit-SearchPath-11: includes/install.php\n"
29
+ "X-Poedit-SearchPath-12: includes/list-table.php\n"
30
+ "X-Poedit-SearchPath-13: includes/live-update.php\n"
31
+ "X-Poedit-SearchPath-14: includes/log.php\n"
32
+ "X-Poedit-SearchPath-15: includes/network.php\n"
33
+ "X-Poedit-SearchPath-16: includes/query.php\n"
34
+ "X-Poedit-SearchPath-17: includes/settings.php\n"
35
+ "X-Poedit-SearchPath-18: includes/vendor/Carbon.php\n"
36
+ "X-Poedit-SearchPath-19: connectors/backupbuddy.php\n"
37
+ "X-Poedit-SearchPath-20: connectors/backupwordpress.php\n"
38
+ "X-Poedit-SearchPath-21: connectors/backwpup.php\n"
39
+ "X-Poedit-SearchPath-22: connectors/comments.php\n"
40
+ "X-Poedit-SearchPath-23: connectors/editor.php\n"
41
+ "X-Poedit-SearchPath-24: connectors/installer.php\n"
42
+ "X-Poedit-SearchPath-25: connectors/maintenance.php\n"
43
+ "X-Poedit-SearchPath-26: connectors/media.php\n"
44
+ "X-Poedit-SearchPath-27: connectors/menus.php\n"
45
+ "X-Poedit-SearchPath-28: connectors/posts.php\n"
46
+ "X-Poedit-SearchPath-29: connectors/updraftplus.php\n"
47
+ "X-Poedit-SearchPath-30: connectors/users.php\n"
48
+ "X-Poedit-SearchPath-31: connectors/widgets.php\n"
49
+ "X-Poedit-SearchPath-32: connectors/wordfence.php\n"
50
+ "X-Poedit-SearchPath-33: connectors/wptimecapsule.php\n"
51
+
52
+ #: connectors/backupbuddy.php:12
53
+ msgid "BackupBuddy"
54
+ msgstr "BackupBuddy"
55
+
56
+ #: connectors/backupbuddy.php:17
57
+ msgid "BackupBuddy Backup"
58
+ msgstr "Sauvegarde BackupBuddy"
59
+
60
+ #: connectors/backupbuddy.php:23
61
+ msgid "BackupBuddy Backups"
62
+ msgstr "Sauvegardes BackupBuddy"
63
+
64
+ #: connectors/backupwordpress.php:12
65
+ msgid "BackupWordPress"
66
+ msgstr "BackUpWordPress"
67
+
68
+ #: connectors/backupwordpress.php:17
69
+ msgid "BackupWordPress Backup"
70
+ msgstr "Sauvegarde BackupWordPress"
71
+
72
+ #: connectors/backupwordpress.php:23
73
+ msgid "BackupWordPress Backups"
74
+ msgstr "Sauvegardes BackupWordPress"
75
+
76
+ #: connectors/backwpup.php:27
77
+ msgid "BackWPup"
78
+ msgstr "BackWPup"
79
+
80
+ #: connectors/backwpup.php:37
81
+ msgid "BackWPup Backup"
82
+ msgstr "Sauvegarde BackWPup"
83
+
84
+ #: connectors/backwpup.php:48
85
+ msgid "BackWPup Backups"
86
+ msgstr "Sauvegardes BackWPup"
87
+
88
+ #: connectors/comments.php:17 connectors/comments.php:39
89
+ msgid "Comments"
90
+ msgstr "Commentaires"
91
+
92
+ #: connectors/comments.php:22 connectors/menus.php:19 connectors/posts.php:20
93
+ #: connectors/users.php:24 connectors/widgets.php:25
94
+ msgid "Created"
95
+ msgstr "Créé"
96
+
97
+ #: connectors/comments.php:23 connectors/installer.php:35
98
+ msgid "Edited"
99
+ msgstr "Édité"
100
 
101
+ #: connectors/comments.php:24
102
+ msgid "Replied"
103
  msgstr ""
 
 
104
 
105
+ #: connectors/comments.php:25
106
+ msgid "Approved"
107
+ msgstr "Approuvé"
108
+
109
+ #: connectors/comments.php:26
110
+ msgid "Unapproved"
111
+ msgstr ""
112
+
113
+ #: connectors/comments.php:27 connectors/posts.php:21
114
+ msgid "Trashed"
115
+ msgstr "Mis à la corbeil"
116
+
117
+ #: connectors/comments.php:28 connectors/posts.php:22
118
+ msgid "Restored"
119
+ msgstr "Restauré"
120
+
121
+ #: connectors/comments.php:29
122
+ msgid "Marked as Spam"
123
+ msgstr ""
124
+
125
+ #: connectors/comments.php:31 connectors/installer.php:34
126
+ #: connectors/media.php:22 connectors/menus.php:21 connectors/posts.php:23
127
+ #: connectors/users.php:25 connectors/widgets.php:26
128
+ msgid "Deleted"
129
+ msgstr "Supprimé"
130
+
131
+ #: connectors/comments.php:47
132
+ msgid "Comment"
133
+ msgstr "Commentaire"
134
+
135
+ #: connectors/comments.php:48
136
+ #, fuzzy
137
+ msgid "Trackback"
138
  msgstr ""
139
+ "Les commentaires sont désactivés mais vous pouvez laisser un lien de suivi: "
140
+ "<a class=\"trackback-link\" href=\"%s\" title=\"Trackback URL for your post"
141
+ "\" rel=\"trackback\">Trackback URL</a>."
142
+
143
+ #: connectors/comments.php:49
144
+ #, fuzzy
145
+ msgid "Pingback"
146
+ msgstr "Pingback : "
147
+
148
+ #: connectors/comments.php:74
149
+ msgid "Edit"
150
+ msgstr "Modifier"
151
 
152
+ #: connectors/comments.php:77
153
+ msgid "Unapprove"
154
+ msgstr "Non approuvé"
155
+
156
+ #: connectors/comments.php:85
157
+ msgid "Approve"
158
+ msgstr "Approuver"
159
+
160
+ #: connectors/comments.php:106
161
+ msgid "Guest"
162
+ msgstr "Invité"
163
+
164
+ #: connectors/comments.php:138 connectors/comments.php:192
165
+ #: connectors/comments.php:218 connectors/comments.php:244
166
+ #: connectors/comments.php:270 connectors/comments.php:296
167
+ #, fuzzy
168
+ msgid "a post"
169
+ msgstr "Post"
170
+
171
+ #: connectors/comments.php:139
172
+ msgid "approved automatically"
173
+ msgstr ""
174
+
175
+ #: connectors/comments.php:139
176
+ #, fuzzy
177
+ msgid "pending approval"
178
+ msgstr "validation en attente"
179
+
180
+ #: connectors/comments.php:146
181
+ msgid "automatically marked as spam by Akismet"
182
+ msgstr ""
183
+
184
+ #: connectors/editor.php:18
185
+ msgid "Theme Editor"
186
+ msgstr "Éditeur de thème"
187
+
188
+ #: connectors/editor.php:23 connectors/installer.php:36 connectors/media.php:21
189
+ #: connectors/menus.php:20 connectors/posts.php:18 connectors/users.php:23
190
+ #: connectors/widgets.php:29
191
+ msgid "Updated"
192
+ msgstr "Mis à jour"
193
+
194
+ #: connectors/editor.php:48
195
+ #, fuzzy, php-format
196
+ #| msgid "\"%s\" %s updated"
197
+ msgid "\"%1$s\" in \"%2$s\" updated"
198
+ msgstr "\"%s\" %s mis à jour"
199
+
200
+ #: connectors/editor.php:57
201
+ msgid "Edit File"
202
+ msgstr "Modifier le fichier"
203
+
204
+ #: connectors/editor.php:65
205
+ msgid "Edit Theme"
206
+ msgstr "Modifier le thème"
207
+
208
+ #: connectors/installer.php:26
209
+ msgid "Installer"
210
+ msgstr "Installateur"
211
+
212
+ #: connectors/installer.php:31
213
  msgid "Installed"
214
  msgstr "Installé"
215
 
216
+ #: connectors/installer.php:32
217
  msgid "Activated"
218
  msgstr "Activée"
219
 
220
+ #: connectors/installer.php:33 connectors/widgets.php:27
221
  msgid "Deactivated"
222
  msgstr "Désactivé"
223
 
224
+ #: connectors/installer.php:42
 
 
 
 
 
 
 
 
 
 
 
225
  msgid "Plugins"
226
+ msgstr "Extensions"
227
 
228
+ #: connectors/installer.php:43
229
  msgid "Themes"
230
  msgstr "Thème"
231
 
232
+ #: connectors/installer.php:44
233
+ msgid "WordPress"
234
+ msgstr "WordPress"
 
235
 
236
+ #: connectors/installer.php:53
237
+ msgid "About"
238
+ msgstr "A propos"
 
239
 
240
+ #: connectors/installer.php:55
241
+ msgid "View Release Notes"
242
+ msgstr ""
243
+
244
+ #: connectors/installer.php:150 connectors/installer.php:448
245
  #, php-format
246
+ msgid "\"%s\" plugin deleted"
247
+ msgstr "Le plugin \"%s\" a été supprimé"
248
 
249
+ #: connectors/installer.php:165 connectors/installer.php:413
250
  #, php-format
251
+ msgid "\"%s\" theme deleted"
252
+ msgstr "Le thème \"%s\" a été supprimé"
253
+
254
+ #: connectors/installer.php:355 connectors/installer.php:371
255
+ #: connectors/installer.php:445
256
+ msgid "network wide"
257
+ msgstr ""
258
 
259
+ #: connectors/installer.php:388
260
  #, php-format
261
  msgid "\"%s\" theme activated"
262
  msgstr "Le thème \"%s\" a été activé"
263
 
264
+ #: connectors/installer.php:515
265
  #, php-format
266
+ msgid "WordPress auto-updated to %s"
267
+ msgstr ""
268
 
269
+ #: connectors/installer.php:517
270
  #, php-format
271
+ msgid "WordPress updated to %s"
272
+ msgstr ""
273
 
274
+ #: connectors/maintenance.php:12 connectors/maintenance.php:17
275
+ #: connectors/maintenance.php:23
276
+ #, fuzzy
277
+ msgid "Maintenance"
278
+ msgstr "Maintenance"
279
 
280
+ #: connectors/media.php:15
 
281
  msgid "Media"
282
  msgstr "Médias"
283
 
284
+ #: connectors/media.php:20
 
 
 
 
285
  msgid "Uploaded"
286
  msgstr "Téléversé"
287
 
288
+ #: connectors/media.php:28
289
+ #, fuzzy
290
+ msgid "Image"
291
+ msgstr "Image"
292
+
293
+ #: connectors/media.php:29
294
+ msgid "Audio"
295
+ msgstr "Audio"
296
+
297
+ #: connectors/media.php:30
298
+ msgid "Video"
299
+ msgstr "Vidéo"
300
+
301
+ #: connectors/media.php:31
302
+ msgid "Document"
303
+ msgstr "Document"
304
+
305
+ #: connectors/media.php:32
306
+ msgid "Spreadsheet"
307
+ msgstr "Tableur"
308
+
309
+ #: connectors/media.php:33
310
+ #, fuzzy
311
+ #| msgid "Deactivated"
312
+ msgid "Interactive"
313
+ msgstr "Interactif"
314
 
315
+ #: connectors/media.php:34
316
+ msgid "Text"
317
+ msgstr "Texte"
318
 
319
+ #: connectors/media.php:35
320
+ msgid "Archive"
321
+ msgstr "Archiver"
322
 
323
+ #: connectors/media.php:36
324
+ msgid "Code"
325
+ msgstr "Code"
326
+
327
+ #: connectors/media.php:60
328
  msgid "Edit Media"
329
  msgstr "Média édité"
330
 
331
+ #: connectors/media.php:63
 
332
  msgid "View"
333
  msgstr "Vue"
334
 
335
+ #: connectors/media.php:72
 
 
 
 
 
 
 
 
 
 
336
  #, php-format
337
  msgid "Updated \"%s\""
338
  msgstr "\"%s\" mis à jour"
339
 
340
+ #: connectors/media.php:88
341
  #, php-format
342
  msgid "Deleted \"%s\""
343
+ msgstr "\"%s\" supprimé"
344
 
345
+ #: connectors/media.php:106
346
  #, php-format
347
  msgid "Edited image \"%s\""
348
+ msgstr "Image \"%s\" mise à jour"
349
 
350
+ #: connectors/menus.php:14
351
  msgid "Menus"
352
+ msgstr "Menus"
353
 
354
+ #: connectors/menus.php:49
 
 
 
 
 
355
  msgid "Edit Menu"
356
  msgstr "Modifier menu"
357
 
358
+ #: connectors/menus.php:60
359
  #, php-format
360
  msgid "Created new menu \"%s\""
361
  msgstr "Menu \"%s\" a été créé"
362
 
363
+ #: connectors/posts.php:13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
364
  msgid "Posts"
365
  msgstr "Articles"
366
 
367
+ #: connectors/posts.php:19
368
+ msgid "Auto save"
369
+ msgstr "Enregistrement automatique"
370
 
371
+ #: connectors/posts.php:247
372
+ msgid "Post"
373
+ msgstr "Publication"
 
374
 
375
+ #: connectors/updraftplus.php:12
376
+ msgid "Updraftplus"
377
+ msgstr "UpdraftPlus"
378
 
379
+ #: connectors/updraftplus.php:17
380
+ msgid "Updraftplus Backup"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
381
  msgstr ""
382
 
383
+ #: connectors/updraftplus.php:23
384
+ msgid "Updraftplus Backups"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
385
  msgstr ""
386
 
387
+ #: connectors/users.php:18 connectors/users.php:35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
388
  msgid "Users"
389
  msgstr "Utilisateurs"
390
 
391
+ #: connectors/users.php:36
392
+ msgid "Sessions"
393
+ msgstr "Sessions"
 
 
 
 
 
 
 
 
394
 
395
+ #: connectors/users.php:37
396
+ #, fuzzy
397
+ #| msgid "Edit Profile"
398
+ msgid "Profiles"
399
+ msgstr "Profils BuddyPress"
400
 
401
+ #: connectors/users.php:44
402
+ msgid "Edit User"
403
+ msgstr "Modifier l’utilisateur"
404
 
405
+ #: connectors/users.php:79
 
 
 
 
406
  msgid "New user registration"
407
  msgstr "Nouvel utilisateur enregistré"
408
 
409
+ #: connectors/users.php:104
 
 
 
 
 
410
  #, php-format
411
  msgid "%s's profile was updated"
412
  msgstr "Le profil de %s a été mis à jour"
413
 
414
+ #: connectors/users.php:155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
415
  #, php-format
416
  msgid "User account #%d was deleted"
417
  msgstr "Le compte utilisateur #%d à été supprimé"
418
 
419
+ #: connectors/widgets.php:17
 
 
 
 
 
420
  msgid "Widgets"
421
+ msgstr "Widgets"
422
 
423
+ #: connectors/widgets.php:22
424
  msgid "Added"
425
  msgstr "Ajouter"
426
 
427
+ #: connectors/widgets.php:23
428
+ msgid "Removed"
429
+ msgstr "Retiré"
430
+
431
+ #: connectors/widgets.php:24
432
+ msgid "Moved"
433
+ msgstr "Déplacé"
434
+
435
+ #: connectors/widgets.php:28
436
+ msgid "Reactivated"
437
+ msgstr "Réactivé"
438
+
439
+ #: connectors/widgets.php:30
440
  msgid "Sorted"
441
  msgstr "Classer"
442
 
443
+ #: connectors/widgets.php:43
444
+ #, fuzzy
445
+ #| msgid "Widgets"
446
+ msgid "Inactive Widgets"
447
+ msgstr "Widgets"
448
+
449
+ #: connectors/widgets.php:44
450
+ #, fuzzy
451
+ #| msgid "Widgets"
452
+ msgid "Orphaned Widgets"
453
+ msgstr "Widgets"
454
+
455
+ #: connectors/widgets.php:45
456
+ msgid "Unknown"
457
+ msgstr "Inconnu"
458
+
459
+ #: connectors/widgets.php:55
460
  msgid "Edit Widget Area"
461
  msgstr "Modifier la zone de widget"
462
 
463
+ #: connectors/wordfence.php:12
464
+ msgid "Wordfence"
465
+ msgstr "Wordfence"
 
466
 
467
+ #: connectors/wordfence.php:17 connectors/wordfence.php:23
468
+ msgid "Wordfence scan"
469
+ msgstr ""
 
470
 
471
+ #: connectors/wptimecapsule.php:27
472
+ msgid "WP Time Capsule"
473
+ msgstr ""
 
474
 
475
+ #: connectors/wptimecapsule.php:37
476
+ msgid "WP Time Capsule Backup"
477
+ msgstr ""
 
478
 
479
+ #: connectors/wptimecapsule.php:48
480
+ msgid "WP Time Capsule Backups"
481
+ msgstr ""
 
482
 
483
+ #: includes/admin.php:85
484
+ msgid "All records have been successfully erased."
485
  msgstr ""
486
 
487
+ #: includes/admin.php:88
488
+ msgid "All site settings have been successfully reset."
489
+ msgstr ""
490
 
491
+ #: includes/admin.php:135
492
+ #, fuzzy
493
+ msgid "Finished"
494
+ msgstr "Terminé"
495
+
496
+ #: includes/admin.php:217
497
+ #, fuzzy
498
+ #| msgid ""
499
+ #| "Are you sure you want to delete all Stream activity records from the "
500
+ #| "database? This cannot be undone."
501
  msgid ""
502
+ "Are you sure you want to delete all MainWP Child Reports activity records "
503
+ "from the database? This cannot be undone."
504
  msgstr ""
505
+ "Êtes-vous sûr de vouloir supprimer tous les enregistrements dactivité de "
506
  "flux de la base de données? Cela ne peut pas être annulée."
507
 
508
+ #: includes/admin.php:218
509
+ #, fuzzy
510
+ #| msgid ""
511
+ #| "Are you sure you want to delete all Stream activity records from the "
512
+ #| "database? This cannot be undone."
 
 
 
 
513
  msgid ""
514
+ "Are you sure you want to reset all site settings to default? This cannot be "
515
+ "undone."
 
516
  msgstr ""
517
+ "Êtes-vous sûr de vouloir supprimer tous les enregistrements d’activité de "
518
+ "flux de la base de données? Cela ne peut pas être annulée."
 
 
519
 
520
+ #: includes/admin.php:219
521
+ #, fuzzy
522
+ #| msgid ""
523
+ #| "Are you sure you want to delete all Stream activity records from the "
524
+ #| "database? This cannot be undone."
525
+ msgid ""
526
+ "Are you sure you want to uninstall and deactivate MainWP Child Reports? This "
527
+ "will delete all MainWP Child Reports tables from the database and cannot be "
528
+ "undone."
529
+ msgstr ""
530
+ "Êtes-vous sûr de vouloir supprimer tous les enregistrements d’activité de "
531
+ "flux de la base de données? Cela ne peut pas être annulée."
532
 
533
+ #: includes/connectors.php:69
534
+ #, php-format
535
+ msgid "%s class wasn't loaded because it doesn't extends the %s class."
536
+ msgstr ""
537
 
538
+ #: includes/filter-input.php:49
539
+ msgid "Invalid use, type must be one of INPUT_* family."
 
 
540
  msgstr ""
 
 
541
 
542
+ #: includes/filter-input.php:65
543
+ msgid "Filter not supported."
544
+ msgstr "Filtre non pris en charge."
545
+
546
+ #: includes/install.php:263
547
+ msgid "Logs have been successfully imported."
548
+ msgstr ""
549
 
550
+ #: includes/list-table.php:22
551
  msgid "Records per page"
552
  msgstr "Registres par page"
553
 
554
+ #: includes/list-table.php:46
555
  msgid "Date"
556
+ msgstr "Date"
557
 
558
+ #: includes/list-table.php:47
559
  msgid "Summary"
560
  msgstr "Sommaire"
561
 
562
+ #: includes/list-table.php:48
563
  msgid "Author"
564
  msgstr "Auteur"
565
 
566
+ #: includes/list-table.php:49
567
  msgid "Connector"
568
  msgstr "Connecteur"
569
 
570
+ #: includes/list-table.php:50
571
  msgid "Context"
572
  msgstr "Contexte"
573
 
574
+ #: includes/list-table.php:51
575
  msgid "Action"
576
  msgstr "Action"
577
 
578
+ #: includes/list-table.php:52
579
  msgid "IP Address"
580
  msgstr "Adresse IP"
581
 
582
+ #: includes/list-table.php:53
583
+ msgid "Record ID"
584
  msgstr ""
585
 
586
+ #: includes/list-table.php:197
587
+ msgid "View all records for this object"
588
+ msgstr ""
589
+
590
+ #: includes/list-table.php:420
591
+ #, fuzzy
592
+ #| msgid "Updated"
593
+ msgid "dates"
594
+ msgstr "Dates"
595
 
596
+ #: includes/list-table.php:429
597
  msgid "authors"
598
  msgstr "auteurs"
599
 
600
+ #: includes/list-table.php:435
601
  msgid "connectors"
602
  msgstr "connecteurs"
603
 
604
+ #: includes/list-table.php:440
605
  msgid "contexts"
606
  msgstr "contextes"
607
 
608
+ #: includes/list-table.php:445
609
  msgid "actions"
610
  msgstr "actions"
611
 
612
+ #: includes/list-table.php:467
613
  msgid "Filter"
614
  msgstr "Filtre"
615
 
616
+ #: includes/list-table.php:535
617
+ msgid "All Time"
618
+ msgstr "Tout le temps"
619
+
620
+ #: includes/network.php:69
621
+ #, fuzzy
622
+ msgid "Network Admin"
623
+ msgstr "Admin Réseau"
624
+
625
+ #: includes/network.php:115
626
+ msgid "These settings apply to all sites on the network."
627
  msgstr ""
628
 
629
+ #: includes/network.php:118
630
+ msgid ""
631
+ "These default settings will apply to new sites created on the network. These "
632
+ "settings do not alter existing sites."
633
+ msgstr ""
634
 
635
+ #: includes/network.php:181
636
+ msgid "Enable Site Access"
637
+ msgstr "Activer l’accès au site"
638
 
639
+ #: includes/network.php:182
640
+ msgid "Enabled"
641
+ msgstr "Actif"
642
+
643
+ #: includes/network.php:184
644
+ msgid ""
645
+ "When site access is disabled MainWP Child Reports can only be accessed from "
646
+ "the network administration."
647
+ msgstr ""
648
+
649
+ #: includes/network.php:200
650
+ msgid "Reset Site Settings"
651
+ msgstr "Réinitialiser les réglages du site"
652
+
653
+ #: includes/network.php:203
654
+ msgid "Warning: Clicking this will override all site settings with defaults."
655
+ msgstr ""
656
+ "Avertissement : un clic sur cette option remplacera tous les paramètres du "
657
+ "site avec les valeurs par défaut."
658
 
659
+ #: includes/network.php:278
660
+ msgid "Settings saved."
661
+ msgstr "Réglages sauvegardés."
662
 
663
+ #: includes/network.php:322
664
+ msgid "sites"
665
+ msgstr "sites"
666
+
667
+ #: includes/settings.php:93
668
+ #, php-format
669
  msgid ""
670
+ "ID: %d\n"
671
+ "User: %s\n"
672
+ "Email: %s\n"
673
+ "Role: %s"
674
  msgstr ""
 
 
 
675
 
676
+ #: mainwp-child-reports.php:110
677
+ #, fuzzy
678
+ #| msgid "Stream requires PHP version 5.3+, plugin is currently NOT ACTIVE."
679
+ msgid ""
680
+ "MainWP Child Report requires PHP version 5.3+, plugin is currently NOT "
681
+ "ACTIVE."
682
+ msgstr ""
683
+ "Stream requiert une version PHP supérieur à 5.3. Le plugin n’est "
684
+ "présentement PAS ACTIF."
685
 
686
+ #: mainwp-child-reports.php:160 mainwp-child-reports.php:162
687
  #, php-format
688
  msgid ""
689
+ "Please <a href=\"%s\">uninstall</a> the MainWP Child Reports plugin and "
690
+ "activate it again."
 
691
  msgstr ""
 
 
 
692
 
693
+ #~ msgid "Installed %s: %s %s"
694
+ #~ msgstr "%s: %s %s Installé"
 
695
 
696
+ #~ msgid "Updated %s: %s to %s"
697
+ #~ msgstr "%s: %s %s Mis à jour"
 
698
 
699
+ #~ msgid "\"%s\" plugin activated %s"
700
+ #~ msgstr "Le plugin \"%s\" a été activé %s"
 
701
 
702
+ #~ msgid "\"%s\" plugin deactivated %s"
703
+ #~ msgstr "Le plugin \"%s\" a été désactivé %s"
 
704
 
705
+ #~ msgid "Edited %s: %s"
706
+ #~ msgstr "%s: %s a été supprimé"
 
 
 
 
 
707
 
708
+ #~ msgid "Attached"
709
+ #~ msgstr "Attaché"
 
710
 
711
+ #~ msgid "Assigned"
712
+ #~ msgstr "Assigné"
 
713
 
714
+ #~ msgid "Unassigned"
715
+ #~ msgstr "Désassigné"
716
+
717
+ #~ msgid "Attached \"%s\" to \"%s\""
718
+ #~ msgstr "\"%s\" to \"%s\" a été attaché"
719
+
720
+ #~ msgid "Added \"%s\" to Media library"
721
+ #~ msgstr "\"%s\" a été ajouté à la bibliothèque médias"
722
+
723
+ #~ msgid "Updated menu \"%s\""
724
+ #~ msgstr "Menu \"%s\" mis à jour"
725
+
726
+ #~ msgid "\"%s\" has been unassigned from \"%s\""
727
+ #~ msgstr "\"%s\" a été désassigné de \"%s\""
728
+
729
+ #~ msgid "\"%s\" has been assigned to \"%s\""
730
+ #~ msgstr "\"%s\" a été assigné à \"%s\""
731
+
732
+ #~ msgid "\"%s\" %s drafted"
733
+ #~ msgstr "\"%s\" %s brouillon"
734
+
735
+ #~ msgid "\"%s\" %s published"
736
+ #~ msgstr "\"%s\" %s publié"
737
+
738
+ #~ msgid "\"%s\" %s unpublished"
739
+ #~ msgstr "\"%s\" %s dépublié"
740
+
741
+ #~ msgid "\"%s\" %s trashed"
742
+ #~ msgstr "\"%s\" %s mis à la corbeil"
743
+
744
+ #~ msgid "\"%s\" %s deleted from trash"
745
+ #~ msgstr "\"%s\" %s supprimé de la corbeil"
746
+
747
+ #~ msgid "General"
748
+ #~ msgstr "Général"
749
+
750
+ #~ msgid "Writing"
751
+ #~ msgstr "Écriture"
752
+
753
+ #~ msgid "Reading"
754
+ #~ msgstr "Lecture"
755
+
756
+ #~ msgid "Discussion"
757
+ #~ msgstr "Discussion"
758
+
759
+ #~ msgid "Permalinks"
760
+ #~ msgstr "Permaliens"
761
+
762
+ #~ msgid "Site Title"
763
+ #~ msgstr "Titre du site"
764
+
765
+ #~ msgid "Tagline"
766
+ #~ msgstr "Slogan"
767
+
768
+ #~ msgid "WordPress Address (URL)"
769
+ #~ msgstr "Adresse WordPress (URL)"
770
+
771
+ #~ msgid "Site Address (URL)"
772
+ #~ msgstr "Adresse du site (URL)"
773
+
774
+ #~ msgid "E-mail Address"
775
+ #~ msgstr "Adresse courriel"
776
+
777
+ #~ msgid "Membership"
778
+ #~ msgstr "Abonnement"
779
+
780
+ #~ msgid "New User Default Role"
781
+ #~ msgstr "Nouveau rôle par défaut des utilisateurs"
782
+
783
+ #~ msgid "Timezone"
784
+ #~ msgstr "Fuseau horaire"
785
+
786
+ #~ msgid "Date Format"
787
+ #~ msgstr "Format de la date"
788
+
789
+ #~ msgid "Time Format"
790
+ #~ msgstr "Format de l'heure"
791
+
792
+ #~ msgid "Week Starts On"
793
+ #~ msgstr "La semaine commence le"
794
+
795
+ #~ msgid "Formatting"
796
+ #~ msgstr "Mise en forme"
797
+
798
+ #~ msgid "Default Post Category"
799
+ #~ msgstr "Catégorie par défaut des articles"
800
+
801
+ #~ msgid "Default Post Format"
802
+ #~ msgstr "Type d'article par défaut"
803
+
804
+ #~ msgid "Mail Server Address"
805
+ #~ msgstr "Nom du serveur de courriel"
806
+
807
+ #~ msgid "Mail Server Login Name"
808
+ #~ msgstr "Nom d'utilisateur du serveur de courriel"
809
+
810
+ #~ msgid "Mail Server Password"
811
+ #~ msgstr "Mot de passe du serveur de courriel"
812
+
813
+ #~ msgid "Default Mail Category"
814
+ #~ msgstr "Catégorie du courriel par défaut"
815
+
816
+ #~ msgid "Update Services"
817
+ #~ msgstr "Mis à jour des services"
818
+
819
+ #~ msgid "Front page displays"
820
+ #~ msgstr "Page d'accueil du site"
821
+
822
+ #~ msgid "Blog pages show at most"
823
+ #~ msgstr "La page de blog affiche par défaut"
824
+
825
+ #~ msgid "Syndication feeds show the most recent"
826
+ #~ msgstr "Les flux RSS affiche par défaut"
827
+
828
+ #~ msgid "For each article in a feed, show"
829
+ #~ msgstr "Pour tous les articles dans un flux, afficher"
830
+
831
+ #~ msgid "Search Engine Visibility"
832
+ #~ msgstr "Affichage dans les moteurs de recherche"
833
+
834
+ #~ msgid "Default article settings"
835
+ #~ msgstr "Paramètres par défaut des articles"
836
+
837
+ #~ msgid "Other comment settings"
838
+ #~ msgstr "Autres paramètres des commentaires"
839
+
840
+ #~ msgid "E-mail me whenever"
841
+ #~ msgstr "Envoyé moi un courriel dès que"
842
+
843
+ #~ msgid "Before a comment appears"
844
+ #~ msgstr "Un commentaire apparaît"
845
+
846
+ #~ msgid "Comment Moderation"
847
+ #~ msgstr "Commentaire en attente de modération"
848
+
849
+ #~ msgid "Avatar Display"
850
+ #~ msgstr "Affichage de la photo de l'utilisateur"
851
+
852
+ #~ msgid "Avatar Maximum Rating"
853
+ #~ msgstr "Photo ayant une évaluation maximale"
854
+
855
+ #~ msgid "Default Avatar"
856
+ #~ msgstr "Photo par défaut"
857
+
858
+ #~ msgid "Thumbnail Image Size"
859
+ #~ msgstr "Taille des vignettes par défaut"
860
+
861
+ #~ msgid "Medium Image Size"
862
+ #~ msgstr "Image de taille médium"
863
+
864
+ #~ msgid "Large Image Size"
865
+ #~ msgstr "Image de taille large"
866
+
867
+ #~ msgid "Uploading Files Organization"
868
+ #~ msgstr "Téléversement des fichiers de l'organisation"
869
+
870
+ #~ msgid "Permalink Structure"
871
+ #~ msgstr "Struture des permaliens"
872
+
873
+ #~ msgid "Category base"
874
+ #~ msgstr "Structure des Catégories"
875
+
876
+ #~ msgid "Tag base"
877
+ #~ msgstr "Structure des Mots clés"
878
+
879
+ #~ msgid "Edit %s Settings"
880
+ #~ msgstr "Mis à jour %s des paramètres"
881
+
882
+ #~ msgid "\"%s\" setting was updated"
883
+ #~ msgstr "Le paramètre \"%s\" a été mis à jour"
884
+
885
+ #~ msgid "Taxonomies"
886
+ #~ msgstr "Taxinomies"
887
+
888
+ #~ msgid "\"%s\" %s created"
889
+ #~ msgstr "\"%s\" %s créé"
890
+
891
+ #~ msgid "\"%s\" %s deleted"
892
+ #~ msgstr "\"%s\" %s supprimé"
893
+
894
+ #~ msgid "Password Reset"
895
+ #~ msgstr "Mot de passe remis à zéro"
896
+
897
+ #~ msgid "Forgot Password"
898
+ #~ msgstr "Mot de passe oublié"
899
+
900
+ #~ msgid "Login"
901
+ #~ msgstr "Connexion"
902
+
903
+ #~ msgid "Logout"
904
+ #~ msgstr "Déconnexion"
905
+
906
+ #~ msgid "Failed Login"
907
+ #~ msgstr "Tentative de connexion échoué"
908
+
909
+ #~ msgid "New user account created for %s (%s)"
910
+ #~ msgstr "Un nouveau compte utilisateur a été créé pour %s (%s)"
911
+
912
+ #~ msgid "%s's role was changed from %s to %s"
913
+ #~ msgstr "Le rôle de %s a été changé de %s à %s"
914
+
915
+ #~ msgid "%s's password was reset"
916
+ #~ msgstr "Le mot de passe de %s a été remis à zéro"
917
+
918
+ #~ msgid "%s's password was requested to be reset"
919
+ #~ msgstr "L'utilisateur %s à demandé que son mot de passe soit remis à zéro"
920
+
921
+ #~ msgid "%s logged in"
922
+ #~ msgstr "L'utilisateur %s s'est connecté"
923
+
924
+ #~ msgid "%s logged out"
925
+ #~ msgstr "L'utilisateur %s s'est déconnecté"
926
+
927
+ #~ msgid "%s's account was deleted (%s)"
928
+ #~ msgstr "Le compte de %s a été supprimé (%s)"
929
+
930
+ #~ msgid "Invalid login attempt for %s"
931
+ #~ msgstr "Tentative de connection invalide pour %s"
932
+
933
+ #~ msgid "\"%s\" from \"%s\" has been deactivated"
934
+ #~ msgstr "L'utilisateur \"%s\" a été désactivé de \"%s\""
935
+
936
+ #~ msgid "\"%s\" has been added to \"%s\""
937
+ #~ msgstr "L'utilisateur \"%s\" a été ajouté de \"%s\""
938
+
939
+ #~ msgid "\"%s\" has been deleted from \"%s\""
940
+ #~ msgstr "L'utilisateur \"%s\" a été supprimé de \"%s\""
941
+
942
+ #~ msgid "Updated \"%s\" in \"%s\""
943
+ #~ msgstr "Mis à jour \"%s\" dans \"%s\""
944
+
945
+ #~ msgid "\"%s\" widgets were reordered"
946
+ #~ msgstr "\"%s\" widgets ont été réordonné"
947
+
948
+ #~ msgid "Stream"
949
+ #~ msgstr "Flux"
950
+
951
+ #~ msgid "Stream Records"
952
+ #~ msgstr "Registre Stream"
953
+
954
+ #~ msgid "Stream Feed URL"
955
+ #~ msgstr "URL RSS Stream"
956
+
957
+ #~ msgid ""
958
+ #~ "This is a private URL for you to access a feed of Stream Records. "
959
+ #~ "Consider this key a secret and do not share it with other users. If your "
960
+ #~ "key has been compromised, you can use the link below to generate a new "
961
+ #~ "one. "
962
+ #~ msgstr ""
963
+ #~ "Il s'agit d'une URL privée pour vous d'accéder à une alimentation "
964
+ #~ "d'enregistrement Stream. Considérez cette clé secrète et de ne pas le "
965
+ #~ "partager avec d'autres utilisateurs. Si votre clé a été compromise, vous "
966
+ #~ "pouvez utiliser le lien ci-dessous pour en générer un nouveau. "
967
+
968
+ #~ msgid "Generate New Key"
969
+ #~ msgstr "Générer une nouvelle clé"
970
+
971
+ #~ msgid "Access Denied"
972
+ #~ msgstr "Accès refusé"
973
+
974
+ #~ msgid ""
975
+ #~ "You don't have permission to view this feed, please contact your site "
976
+ #~ "Administrator."
977
+ #~ msgstr ""
978
+ #~ "Vous n'avez pas la permission de voir ce flux, s'il vous plaît contactez "
979
+ #~ "votre administrateur du site."
980
+
981
+ #~ msgid "Stream Feed"
982
+ #~ msgstr "Flux Stream"
983
+
984
+ #~ msgid "ID"
985
+ #~ msgstr "ID"
986
+
987
+ #~ msgid "%s ago"
988
+ #~ msgstr "il y a %s"
989
+
990
+ #~ msgid "<option value=\"\"></option>"
991
+ #~ msgstr "<option value=\"\"></option>"
992
+
993
+ #~ msgid "Search Records"
994
+ #~ msgstr "Rechercher les registres"
995
+
996
+ #~ msgid "Date start"
997
+ #~ msgstr "Date de début"
998
+
999
+ #~ msgid "Date end"
1000
+ #~ msgstr "Date de fin"
1001
+
1002
+ #~ msgid ""
1003
+ #~ "Users from the selected roles above will have permission to view Stream "
1004
+ #~ "Records. However, only site Administrators can access Stream Settings."
1005
+ #~ msgstr ""
1006
+ #~ "Les utilisateurs des rôles sélectionnés ci-dessus auront la permission de "
1007
+ #~ "voir les données enregisté par Stream. Cependant, seuls les "
1008
+ #~ "administrateurs du site peuvent accéder aux paramètres Stream."
1009
+
1010
+ #~ msgid "Private Feeds"
1011
+ #~ msgstr "RSS privés"
1012
+
1013
+ #~ msgid ""
1014
+ #~ "Users from the selected roles above will be given a private Feed URL in "
1015
+ #~ "their %sUser Profile%s. Please %sflush rewrite rules%s on your site after "
1016
+ #~ "changing this setting."
1017
+ #~ msgstr ""
1018
+ #~ "Les utilisateurs des rôles sélectionnés ci-dessus seront donnés un flux "
1019
+ #~ "privé URL dans leur %sProfil Utilisateur%s. N'oublier pas de %svider la "
1020
+ #~ "cache des permaliens%s après avoir modifié ce paramètre."
1021
+
1022
+ #~ msgid "View Profile"
1023
+ #~ msgstr "Visualiser le profil"
1024
+
1025
+ #~ msgid "View Codex"
1026
+ #~ msgstr "Voir Codex"
1027
+
1028
+ #~ msgid "Keep Records for"
1029
+ #~ msgstr "Garder les données pour"
1030
+
1031
+ #~ msgid ""
1032
+ #~ "Maximum number of days to keep activity records. Leave blank to keep "
1033
+ #~ "records forever."
1034
+ #~ msgstr ""
1035
+ #~ "Le nombre maximum de jours de tenir des registres d'activité. Laissez "
1036
+ #~ "vide pour conserver des dossiers pour toujours."
1037
+
1038
+ #~ msgid "days"
1039
+ #~ msgstr "jours"
1040
+
1041
+ #~ msgid "Delete All Records"
1042
+ #~ msgstr "Supprimer toutes les données"
1043
 
1044
+ #~ msgid "Reset Stream Database"
1045
+ #~ msgstr "Remise à zéro de la base de donnée"
 
mainwp-child-reports.php CHANGED
@@ -5,7 +5,7 @@
5
  Description: The MainWP Child Report plugin tracks Child sites for the MainWP Client Reports Extension. The plugin is only useful if you are using MainWP and the Client Reports Extension.
6
  Author: MainWP
7
  Author URI: https://mainwp.com
8
- Version: 1.8
9
  */
10
 
11
  /**
@@ -37,13 +37,13 @@ class MainWP_WP_Stream {
37
  public $network = null;
38
 
39
  public static $notices = array();
40
-
41
  private function __construct() {
42
  define( 'MAINWP_WP_STREAM_PLUGIN', plugin_basename( __FILE__ ) );
43
  define( 'MAINWP_WP_STREAM_DIR', plugin_dir_path( __FILE__ ) );
44
  define( 'MAINWP_WP_STREAM_URL', plugin_dir_url( __FILE__ ) );
45
  define( 'MAINWP_WP_STREAM_INC_DIR', MAINWP_WP_STREAM_DIR . 'includes/' );
46
-
47
  require_once MAINWP_WP_STREAM_INC_DIR . 'functions.php';
48
  // Load filters polyfill
49
  require_once MAINWP_WP_STREAM_INC_DIR . 'filter-input.php';
@@ -83,7 +83,7 @@ class MainWP_WP_Stream {
83
  require_once MAINWP_WP_STREAM_INC_DIR . 'query.php';
84
  require_once MAINWP_WP_STREAM_INC_DIR . 'context-query.php';
85
  $this->plugin_slug = plugin_basename( __FILE__ );
86
-
87
  require_once MAINWP_WP_STREAM_INC_DIR . 'admin.php';
88
  add_action( 'plugins_loaded', array( 'MainWP_WP_Stream_Admin', 'load' ) );
89
 
@@ -97,12 +97,12 @@ class MainWP_WP_Stream {
97
  require_once MAINWP_WP_STREAM_INC_DIR . 'live-update.php';
98
  add_action( 'plugins_loaded', array( 'MainWP_WP_Stream_Live_Update', 'load' ) );
99
  add_filter( 'plugin_row_meta', array( &$this, 'plugin_row_meta' ), 10, 2 );
100
- // branding proccess
101
  $cancelled_branding = ( get_option( 'mainwp_child_branding_disconnected' ) === 'yes' ) && ! get_option( 'mainwp_branding_preserve_branding' );
102
- if ( !$cancelled_branding ) {
103
- add_filter( 'all_plugins', array( $this, 'branding_child_plugin' ) );
104
- }
105
-
106
  }
107
 
108
  static function fail_php_version() {
@@ -117,11 +117,11 @@ class MainWP_WP_Stream {
117
  public static function install() {
118
  // Install plugin tables
119
  require_once MAINWP_WP_STREAM_INC_DIR . 'install.php';
120
- $update = MainWP_WP_Stream_Install::get_instance();
121
  }
122
 
123
  public function verify_database_present() {
124
-
125
  if ( apply_filters( 'mainwp_wp_stream_no_tables', false ) ) {
126
  return;
127
  }
@@ -169,9 +169,9 @@ class MainWP_WP_Stream {
169
  if ( ! empty( $uninstall_message ) ) {
170
  self::notice( $uninstall_message );
171
  }
172
- }
173
  }
174
-
175
  static function update_activation_hook() {
176
  MainWP_WP_Stream_Admin::register_update_hook( dirname( plugin_basename( __FILE__ ) ), array( __CLASS__, 'install' ), self::VERSION );
177
  }
@@ -212,7 +212,7 @@ class MainWP_WP_Stream {
212
 
213
  return self::$instance;
214
  }
215
-
216
  public function branding_child_plugin( $plugins ) {
217
  if ( 'T' === get_option( 'mainwp_branding_child_hide' ) ) {
218
  foreach ( $plugins as $key => $value ) {
@@ -232,12 +232,12 @@ class MainWP_WP_Stream {
232
  return $plugins;
233
  }
234
  }
235
-
236
  public function plugin_row_meta( $plugin_meta, $plugin_file ) {
237
  if ( $this->plugin_slug !== $plugin_file ) {
238
  return $plugin_meta;
239
  }
240
-
241
  if ( ! self::is_branding() ) {
242
  return $plugin_meta;
243
  }
@@ -253,7 +253,7 @@ class MainWP_WP_Stream {
253
 
254
  return $plugin_meta;
255
  }
256
-
257
  public static function is_branding() {
258
  $cancelled_branding = ( get_option( 'mainwp_child_branding_disconnected' ) === 'yes' ) && ! get_option( 'mainwp_branding_preserve_branding' );
259
  if ( $cancelled_branding ) {
@@ -272,7 +272,7 @@ class MainWP_WP_Stream {
272
 
273
  return false;
274
  }
275
-
276
 
277
  public function update_child_header( $plugins, $header ) {
278
  $plugin_key = '';
@@ -283,21 +283,21 @@ class MainWP_WP_Stream {
283
  $plugin_data = $value;
284
  }
285
  }
286
-
287
- if ( ! empty( $plugin_key ) ) {
288
- $plugin_data['Name'] = stripslashes( $header['name'] . " reports" );
289
  $plugin_data['Description'] = stripslashes( $header['description'] );
290
  $plugin_data['Author'] = stripslashes( $header['author'] );
291
  $plugin_data['AuthorURI'] = stripslashes( $header['authoruri'] );
292
  if ( ! empty( $header['pluginuri'] ) ) {
293
  $plugin_data['PluginURI'] = stripslashes( $header['pluginuri'] );
294
- }
295
  $plugins[ $plugin_key ] = $plugin_data;
296
  }
297
 
298
  return $plugins;
299
  }
300
-
301
  }
302
 
303
  if ( MainWP_WP_Stream::is_valid_php_version() ) {
5
  Description: The MainWP Child Report plugin tracks Child sites for the MainWP Client Reports Extension. The plugin is only useful if you are using MainWP and the Client Reports Extension.
6
  Author: MainWP
7
  Author URI: https://mainwp.com
8
+ Version: 1.9.1
9
  */
10
 
11
  /**
37
  public $network = null;
38
 
39
  public static $notices = array();
40
+
41
  private function __construct() {
42
  define( 'MAINWP_WP_STREAM_PLUGIN', plugin_basename( __FILE__ ) );
43
  define( 'MAINWP_WP_STREAM_DIR', plugin_dir_path( __FILE__ ) );
44
  define( 'MAINWP_WP_STREAM_URL', plugin_dir_url( __FILE__ ) );
45
  define( 'MAINWP_WP_STREAM_INC_DIR', MAINWP_WP_STREAM_DIR . 'includes/' );
46
+
47
  require_once MAINWP_WP_STREAM_INC_DIR . 'functions.php';
48
  // Load filters polyfill
49
  require_once MAINWP_WP_STREAM_INC_DIR . 'filter-input.php';
83
  require_once MAINWP_WP_STREAM_INC_DIR . 'query.php';
84
  require_once MAINWP_WP_STREAM_INC_DIR . 'context-query.php';
85
  $this->plugin_slug = plugin_basename( __FILE__ );
86
+
87
  require_once MAINWP_WP_STREAM_INC_DIR . 'admin.php';
88
  add_action( 'plugins_loaded', array( 'MainWP_WP_Stream_Admin', 'load' ) );
89
 
97
  require_once MAINWP_WP_STREAM_INC_DIR . 'live-update.php';
98
  add_action( 'plugins_loaded', array( 'MainWP_WP_Stream_Live_Update', 'load' ) );
99
  add_filter( 'plugin_row_meta', array( &$this, 'plugin_row_meta' ), 10, 2 );
100
+ // branding proccess
101
  $cancelled_branding = ( get_option( 'mainwp_child_branding_disconnected' ) === 'yes' ) && ! get_option( 'mainwp_branding_preserve_branding' );
102
+ if ( !$cancelled_branding ) {
103
+ add_filter( 'all_plugins', array( $this, 'branding_child_plugin' ) );
104
+ }
105
+
106
  }
107
 
108
  static function fail_php_version() {
117
  public static function install() {
118
  // Install plugin tables
119
  require_once MAINWP_WP_STREAM_INC_DIR . 'install.php';
120
+ MainWP_WP_Stream_Install::get_instance();
121
  }
122
 
123
  public function verify_database_present() {
124
+
125
  if ( apply_filters( 'mainwp_wp_stream_no_tables', false ) ) {
126
  return;
127
  }
169
  if ( ! empty( $uninstall_message ) ) {
170
  self::notice( $uninstall_message );
171
  }
172
+ }
173
  }
174
+
175
  static function update_activation_hook() {
176
  MainWP_WP_Stream_Admin::register_update_hook( dirname( plugin_basename( __FILE__ ) ), array( __CLASS__, 'install' ), self::VERSION );
177
  }
212
 
213
  return self::$instance;
214
  }
215
+
216
  public function branding_child_plugin( $plugins ) {
217
  if ( 'T' === get_option( 'mainwp_branding_child_hide' ) ) {
218
  foreach ( $plugins as $key => $value ) {
232
  return $plugins;
233
  }
234
  }
235
+
236
  public function plugin_row_meta( $plugin_meta, $plugin_file ) {
237
  if ( $this->plugin_slug !== $plugin_file ) {
238
  return $plugin_meta;
239
  }
240
+
241
  if ( ! self::is_branding() ) {
242
  return $plugin_meta;
243
  }
253
 
254
  return $plugin_meta;
255
  }
256
+
257
  public static function is_branding() {
258
  $cancelled_branding = ( get_option( 'mainwp_child_branding_disconnected' ) === 'yes' ) && ! get_option( 'mainwp_branding_preserve_branding' );
259
  if ( $cancelled_branding ) {
272
 
273
  return false;
274
  }
275
+
276
 
277
  public function update_child_header( $plugins, $header ) {
278
  $plugin_key = '';
283
  $plugin_data = $value;
284
  }
285
  }
286
+
287
+ if ( ! empty( $plugin_key ) ) {
288
+ $plugin_data['Name'] = stripslashes( $header['name'] . " reports" );
289
  $plugin_data['Description'] = stripslashes( $header['description'] );
290
  $plugin_data['Author'] = stripslashes( $header['author'] );
291
  $plugin_data['AuthorURI'] = stripslashes( $header['authoruri'] );
292
  if ( ! empty( $header['pluginuri'] ) ) {
293
  $plugin_data['PluginURI'] = stripslashes( $header['pluginuri'] );
294
+ }
295
  $plugins[ $plugin_key ] = $plugin_data;
296
  }
297
 
298
  return $plugins;
299
  }
300
+
301
  }
302
 
303
  if ( MainWP_WP_Stream::is_valid_php_version() ) {
readme.txt CHANGED
@@ -6,8 +6,8 @@ Author: mainwp
6
  Author URI: https://mainwp.com
7
  Plugin URI: https://mainwp.com
8
  Requires at least: 3.6
9
- Tested up to: 4.9.8
10
- Stable tag: 1.8
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
@@ -16,7 +16,7 @@ The MainWP Child Report plugin tracks changes to Child sites for the Client Repo
16
 
17
  == Description ==
18
 
19
- **Note: This plugin requires PHP 5.3 or higher to be activated and is only useful if you are using [MainWP](https://wordpress.org/plugins/mainwp/) and the [MainWP Client Reports Extension](https://mainwp.com/extension/client-reports/).**
20
 
21
  Install the [MainWP Child Plugin](https://wordpress.org/plugins/mainwp-child/) plugin first.
22
 
@@ -36,6 +36,15 @@ Credit to the [Stream Plugin](https://wordpress.org/plugins/stream/) which the M
36
 
37
  == Changelog ==
38
 
 
 
 
 
 
 
 
 
 
39
  = 1.8 - 8-2-2018 =
40
  * Fixed: an issue with logging plugin installations
41
  * Fixed: an issue with displaying double records
6
  Author URI: https://mainwp.com
7
  Plugin URI: https://mainwp.com
8
  Requires at least: 3.6
9
+ Tested up to: 5.0
10
+ Stable tag: 1.9.1
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
16
 
17
  == Description ==
18
 
19
+ **Note: This plugin requires PHP 5.4 or higher to be activated and is only useful if you are using [MainWP](https://wordpress.org/plugins/mainwp/) and the [MainWP Client Reports Extension](https://mainwp.com/extension/client-reports/).**
20
 
21
  Install the [MainWP Child Plugin](https://wordpress.org/plugins/mainwp-child/) plugin first.
22
 
36
 
37
  == Changelog ==
38
 
39
+ = 1.9.1 - 11-13-2018 =
40
+ * Fixed: an issue with missing data fields
41
+ * Updated: WooCommerce order notes excluded from showing as comments
42
+ * Updated: translation files
43
+
44
+ = 1.9 - 9-4-2018 =
45
+ * Fixed: an issue with recording UpdraftPlus backups
46
+ * Added: support for recording WPTC backups
47
+
48
  = 1.8 - 8-2-2018 =
49
  * Fixed: an issue with logging plugin installations
50
  * Fixed: an issue with displaying double records