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 | 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 +4 -2
- connectors/posts.php +14 -14
- connectors/updraftplus.php +6 -6
- connectors/wptimecapsule.php +76 -0
- includes/admin.php +68 -67
- includes/connector.php +23 -21
- includes/connectors.php +2 -1
- includes/db.php +30 -30
- includes/install.php +77 -79
- includes/query.php +41 -29
- languages/mainwp-child-reports-fr_FR.mo +0 -0
- languages/mainwp-child-reports-fr_FR.po +847 -585
- mainwp-child-reports.php +23 -23
- readme.txt +12 -3
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 |
-
|
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 |
-
|
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, $
|
34 |
self::log(
|
35 |
$message,
|
36 |
-
compact('destination', 'status', 'type', '
|
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
|
101 |
-
|
102 |
-
$
|
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 |
-
|
|
|
|
|
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 |
-
|
|
|
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 |
-
|
453 |
-
|
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 =
|
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 =
|
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 |
-
|
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 =
|
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 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
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:
|
5 |
-
"PO-Revision-Date:
|
6 |
-
"Last-Translator:
|
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.
|
13 |
-
"X-Poedit-Basepath:
|
14 |
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
16 |
-
#:
|
17 |
-
msgid "
|
18 |
msgstr ""
|
19 |
-
"Stream requiert une version PHP supérieur à 5.3. Le plugin n'est "
|
20 |
-
"présentement PAS ACTIF."
|
21 |
|
22 |
-
#:
|
23 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
msgid "Installed"
|
28 |
msgstr "Installé"
|
29 |
|
30 |
-
#:
|
31 |
msgid "Activated"
|
32 |
msgstr "Activée"
|
33 |
|
34 |
-
#:
|
35 |
msgid "Deactivated"
|
36 |
msgstr "Désactivé"
|
37 |
|
38 |
-
#:
|
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 |
-
#:
|
54 |
msgid "Themes"
|
55 |
msgstr "Thème"
|
56 |
|
57 |
-
#:
|
58 |
-
|
59 |
-
|
60 |
-
msgstr "%s: %s %s Installé"
|
61 |
|
62 |
-
#:
|
63 |
-
|
64 |
-
|
65 |
-
msgstr "%s: %s %s Mis à jour"
|
66 |
|
67 |
-
#:
|
|
|
|
|
|
|
|
|
68 |
#, php-format
|
69 |
-
msgid "\"%s\" plugin
|
70 |
-
msgstr "Le plugin \"%s\" a été
|
71 |
|
72 |
-
#:
|
73 |
#, php-format
|
74 |
-
msgid "\"%s\"
|
75 |
-
msgstr "Le
|
|
|
|
|
|
|
|
|
|
|
76 |
|
77 |
-
#:
|
78 |
#, php-format
|
79 |
msgid "\"%s\" theme activated"
|
80 |
msgstr "Le thème \"%s\" a été activé"
|
81 |
|
82 |
-
#:
|
83 |
#, php-format
|
84 |
-
msgid "
|
85 |
-
msgstr "
|
86 |
|
87 |
-
#:
|
88 |
#, php-format
|
89 |
-
msgid "
|
90 |
-
msgstr "
|
91 |
|
92 |
-
#:
|
93 |
-
|
94 |
-
|
95 |
-
|
|
|
96 |
|
97 |
-
#:
|
98 |
-
#: ../connectors/settings.php:51
|
99 |
msgid "Media"
|
100 |
msgstr "Médias"
|
101 |
|
102 |
-
#:
|
103 |
-
msgid "Attached"
|
104 |
-
msgstr "Attaché"
|
105 |
-
|
106 |
-
#: ../connectors/media.php:40
|
107 |
msgid "Uploaded"
|
108 |
msgstr "Téléversé"
|
109 |
|
110 |
-
#:
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
-
#:
|
118 |
-
msgid "
|
119 |
-
msgstr "
|
120 |
|
121 |
-
#:
|
122 |
-
msgid "
|
123 |
-
msgstr "
|
124 |
|
125 |
-
#:
|
|
|
|
|
|
|
|
|
126 |
msgid "Edit Media"
|
127 |
msgstr "Média édité"
|
128 |
|
129 |
-
#:
|
130 |
-
#: ../connectors/taxonomies.php:86
|
131 |
msgid "View"
|
132 |
msgstr "Vue"
|
133 |
|
134 |
-
#:
|
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 |
-
#:
|
150 |
#, php-format
|
151 |
msgid "Deleted \"%s\""
|
152 |
-
msgstr "\"%s\"
|
153 |
|
154 |
-
#:
|
155 |
#, php-format
|
156 |
msgid "Edited image \"%s\""
|
157 |
-
msgstr "Image \"%s\"
|
158 |
|
159 |
-
#:
|
160 |
msgid "Menus"
|
161 |
-
msgstr ""
|
162 |
|
163 |
-
#:
|
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 |
-
#:
|
173 |
#, php-format
|
174 |
msgid "Created new menu \"%s\""
|
175 |
msgstr "Menu \"%s\" a été créé"
|
176 |
|
177 |
-
#:
|
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 |
-
#:
|
197 |
-
msgid "
|
198 |
-
msgstr "
|
199 |
|
200 |
-
#:
|
201 |
-
|
202 |
-
|
203 |
-
msgstr "%s mis à jour"
|
204 |
|
205 |
-
#:
|
206 |
-
msgid "
|
207 |
-
msgstr "
|
208 |
|
209 |
-
#:
|
210 |
-
|
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 |
-
#:
|
261 |
-
msgid "
|
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 |
-
#:
|
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 |
-
#:
|
464 |
-
msgid "
|
465 |
-
msgstr "
|
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 |
-
#:
|
476 |
-
|
477 |
-
|
|
|
|
|
478 |
|
479 |
-
#:
|
480 |
-
msgid "
|
481 |
-
msgstr "
|
482 |
|
483 |
-
#:
|
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 |
-
#:
|
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 |
-
#:
|
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 |
-
#:
|
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 |
-
#:
|
546 |
msgid "Added"
|
547 |
msgstr "Ajouter"
|
548 |
|
549 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
550 |
msgid "Sorted"
|
551 |
msgstr "Classer"
|
552 |
|
553 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
554 |
msgid "Edit Widget Area"
|
555 |
msgstr "Modifier la zone de widget"
|
556 |
|
557 |
-
#:
|
558 |
-
|
559 |
-
|
560 |
-
msgstr "L'utilisateur \"%s\" a été désactivé de \"%s\""
|
561 |
|
562 |
-
#:
|
563 |
-
|
564 |
-
|
565 |
-
msgstr "L'utilisateur \"%s\" a été ajouté de \"%s\""
|
566 |
|
567 |
-
#:
|
568 |
-
|
569 |
-
|
570 |
-
msgstr "L'utilisateur \"%s\" a été supprimé de \"%s\""
|
571 |
|
572 |
-
#:
|
573 |
-
|
574 |
-
|
575 |
-
msgstr "Mis à jour \"%s\" dans \"%s\""
|
576 |
|
577 |
-
#:
|
578 |
-
|
579 |
-
|
580 |
-
msgstr "\"%s\" widgets ont été réordonné"
|
581 |
|
582 |
-
#:
|
583 |
-
msgid "
|
584 |
msgstr ""
|
585 |
|
586 |
-
#:
|
587 |
-
msgid "
|
588 |
-
msgstr "
|
589 |
|
590 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
591 |
msgid ""
|
592 |
-
"Are you sure you want to delete all
|
593 |
-
"database? This cannot be undone."
|
594 |
msgstr ""
|
595 |
-
"Êtes-vous sûr de vouloir supprimer tous les enregistrements d
|
596 |
"flux de la base de données? Cela ne peut pas être annulée."
|
597 |
|
598 |
-
#:
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
msgid "Stream Feed URL"
|
604 |
-
msgstr "URL RSS Stream"
|
605 |
-
|
606 |
-
#: ../includes/feeds.php:69
|
607 |
msgid ""
|
608 |
-
"
|
609 |
-
"
|
610 |
-
"compromised, you can use the link below to generate a new one. "
|
611 |
msgstr ""
|
612 |
-
"
|
613 |
-
"
|
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 |
-
#:
|
618 |
-
|
619 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
620 |
|
621 |
-
#:
|
622 |
-
|
623 |
-
|
|
|
624 |
|
625 |
-
#:
|
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 |
-
#:
|
634 |
-
msgid "
|
635 |
-
msgstr "
|
|
|
|
|
|
|
|
|
636 |
|
637 |
-
#:
|
638 |
msgid "Records per page"
|
639 |
msgstr "Registres par page"
|
640 |
|
641 |
-
#:
|
642 |
msgid "Date"
|
643 |
-
msgstr ""
|
644 |
|
645 |
-
#:
|
646 |
msgid "Summary"
|
647 |
msgstr "Sommaire"
|
648 |
|
649 |
-
#:
|
650 |
msgid "Author"
|
651 |
msgstr "Auteur"
|
652 |
|
653 |
-
#:
|
654 |
msgid "Connector"
|
655 |
msgstr "Connecteur"
|
656 |
|
657 |
-
#:
|
658 |
msgid "Context"
|
659 |
msgstr "Contexte"
|
660 |
|
661 |
-
#:
|
662 |
msgid "Action"
|
663 |
msgstr "Action"
|
664 |
|
665 |
-
#:
|
666 |
msgid "IP Address"
|
667 |
msgstr "Adresse IP"
|
668 |
|
669 |
-
#:
|
670 |
-
msgid "ID"
|
671 |
msgstr ""
|
672 |
|
673 |
-
#:
|
674 |
-
|
675 |
-
|
676 |
-
|
|
|
|
|
|
|
|
|
|
|
677 |
|
678 |
-
#:
|
679 |
msgid "authors"
|
680 |
msgstr "auteurs"
|
681 |
|
682 |
-
#:
|
683 |
msgid "connectors"
|
684 |
msgstr "connecteurs"
|
685 |
|
686 |
-
#:
|
687 |
msgid "contexts"
|
688 |
msgstr "contextes"
|
689 |
|
690 |
-
#:
|
691 |
msgid "actions"
|
692 |
msgstr "actions"
|
693 |
|
694 |
-
#:
|
695 |
msgid "Filter"
|
696 |
msgstr "Filtre"
|
697 |
|
698 |
-
#:
|
699 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
700 |
msgstr ""
|
701 |
|
702 |
-
#:
|
703 |
-
msgid "
|
704 |
-
|
|
|
|
|
705 |
|
706 |
-
#:
|
707 |
-
msgid "
|
708 |
-
msgstr "
|
709 |
|
710 |
-
#:
|
711 |
-
msgid "
|
712 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
713 |
|
714 |
-
#:
|
715 |
-
msgid "
|
716 |
-
msgstr "
|
717 |
|
718 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
719 |
msgid ""
|
720 |
-
"
|
721 |
-
"
|
|
|
|
|
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 |
-
#:
|
728 |
-
|
729 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
730 |
|
731 |
-
#:
|
732 |
#, php-format
|
733 |
msgid ""
|
734 |
-
"
|
735 |
-
"
|
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 |
-
|
743 |
-
|
744 |
-
msgstr "Visualiser le profil"
|
745 |
|
746 |
-
|
747 |
-
|
748 |
-
msgstr "Voir Codex"
|
749 |
|
750 |
-
|
751 |
-
|
752 |
-
msgstr "Actif"
|
753 |
|
754 |
-
|
755 |
-
|
756 |
-
msgstr "Garder les données pour"
|
757 |
|
758 |
-
|
759 |
-
|
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 |
-
|
767 |
-
|
768 |
-
msgstr "jours"
|
769 |
|
770 |
-
|
771 |
-
|
772 |
-
msgstr "Supprimer toutes les données"
|
773 |
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
780 |
|
781 |
-
|
782 |
-
|
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 d’activité 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.
|
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 |
-
|
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:
|
10 |
-
Stable tag: 1.
|
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.
|
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
|