FEEDZY RSS Feeds Lite - Version 3.0.1

Version Description

  • 05/01/2017 =
  • Fixed html markup error which was breaking user websites
Download this release

Release Info

Developer codeinwp
Plugin Icon 128x128 FEEDZY RSS Feeds Lite
Version 3.0.1
Comparing to
See all releases

Code changes from version 3.0.0 to 3.0.1

CHANGELOG.md CHANGED
@@ -1,4 +1,8 @@
1
 
 
 
 
2
- Fixed html markup error
3
 
4
 
5
 
6
- Release 3.0.0 version
1
 
2
+
3
+
4
+
5
+
6
 
7
 
8
 
 
css/feedzy-rss-feeds.css CHANGED
@@ -2,7 +2,7 @@
2
  * feedzy-rss-feeds.css
3
  * Feedzy RSS Feed
4
  * Copyright: (c) 2016 Themeisle, themeisle.com
5
- * Version: 3.0.0
6
  * Plugin Name: FEEDZY RSS Feeds
7
  * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
8
  * Author: Themeisle
@@ -218,8 +218,8 @@ i.mce-i-feedzy-icon {
218
 
219
  .feedzy-rss .feedzy-style1 .rss_image a span {
220
  display: inline-block;
 
221
  border-radius: 50%;
222
- left: 0px;
223
  }
224
 
225
  .feedzy-rss .feedzy-style1 .rss_item:hover .rss_image a {
2
  * feedzy-rss-feeds.css
3
  * Feedzy RSS Feed
4
  * Copyright: (c) 2016 Themeisle, themeisle.com
5
+ * Version: 3.0.1
6
  * Plugin Name: FEEDZY RSS Feeds
7
  * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
8
  * Author: Themeisle
218
 
219
  .feedzy-rss .feedzy-style1 .rss_image a span {
220
  display: inline-block;
221
+ left: 0;
222
  border-radius: 50%;
 
223
  }
224
 
225
  .feedzy-rss .feedzy-style1 .rss_item:hover .rss_image a {
feedzy-rss-feed.php CHANGED
@@ -15,12 +15,12 @@
15
  * Plugin Name: Feedzy RSS Feeds Lite
16
  * Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
17
  * Description: This is a short description of what the plugin does. It's displayed in the WordPress admin area.
18
- * Version: 3.0.0
19
  * Author: Themeisle
20
  * Author URI: http://themeisle.com
21
  * License: GPL-2.0+
22
  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
23
- * Text Domain: feedzy_rss_translate
24
  * Domain Path: /languages
25
  */
26
 
15
  * Plugin Name: Feedzy RSS Feeds Lite
16
  * Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
17
  * Description: This is a short description of what the plugin does. It's displayed in the WordPress admin area.
18
+ * Version: 3.0.1
19
  * Author: Themeisle
20
  * Author URI: http://themeisle.com
21
  * License: GPL-2.0+
22
  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
23
+ * Text Domain: feedzy-rss-feeds
24
  * Domain Path: /languages
25
  */
26
 
includes/abstract/feedzy-rss-feeds-admin-abstract.php CHANGED
@@ -48,7 +48,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
48
  */
49
  public function feedzy_default_error_notice( $error, $feedURL ) {
50
  error_log( 'Feedzy RSS Feeds - related feed: ' . print_r( $feedURL ) . ' - Error message: ' . $this->feedzy_array_obj_string( $error ) );
51
- return '<div id="message" class="error" data-error"' . esc_attr( $this->feedzy_array_obj_string( $error ) ) . '"><p>' . __( 'Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy_rss_translate' ) . '</p></div>';
52
  }
53
 
54
  /**
@@ -556,14 +556,14 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
556
  }
557
  if ( $authorName ) {
558
  $domain = parse_url( $newLink );
559
- $contentMeta .= __( 'by', 'feedzy_rss_translate' ) . ' <a href="http://' . $domain['host'] . '" target="' . $sc['target'] . '" title="' . $domain['host'] . '" >' . $authorName . '</a> ';
560
  }
561
  }
562
 
563
  if ( $metaArgs['date'] ) {
564
- $contentMeta .= __( 'on', 'feedzy_rss_translate' ) . ' ' . date_i18n( $metaArgs['date_format'], $item->get_date( 'U' ) );
565
  $contentMeta .= ' ';
566
- $contentMeta .= __( 'at', 'feedzy_rss_translate' ) . ' ' . date_i18n( $metaArgs['time_format'], $item->get_date( 'U' ) );
567
  }
568
  }
569
  $contentMeta = apply_filters( 'feedzy_meta_output', $contentMeta, $feedURL );
@@ -678,7 +678,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
678
  </li>
679
  ';
680
  }
681
- $content .= '</ul>';
682
 
683
  $content = apply_filters( 'feedzy_global_output', $content, $sc, $feed_title, $feed_items );
684
 
48
  */
49
  public function feedzy_default_error_notice( $error, $feedURL ) {
50
  error_log( 'Feedzy RSS Feeds - related feed: ' . print_r( $feedURL ) . ' - Error message: ' . $this->feedzy_array_obj_string( $error ) );
51
+ return '<div id="message" class="error" data-error"' . esc_attr( $this->feedzy_array_obj_string( $error ) ) . '"><p>' . __( 'Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy-rss-feeds' ) . '</p></div>';
52
  }
53
 
54
  /**
556
  }
557
  if ( $authorName ) {
558
  $domain = parse_url( $newLink );
559
+ $contentMeta .= __( 'by', 'feedzy-rss-feeds' ) . ' <a href="http://' . $domain['host'] . '" target="' . $sc['target'] . '" title="' . $domain['host'] . '" >' . $authorName . '</a> ';
560
  }
561
  }
562
 
563
  if ( $metaArgs['date'] ) {
564
+ $contentMeta .= __( 'on', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $metaArgs['date_format'], $item->get_date( 'U' ) );
565
  $contentMeta .= ' ';
566
+ $contentMeta .= __( 'at', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $metaArgs['time_format'], $item->get_date( 'U' ) );
567
  }
568
  }
569
  $contentMeta = apply_filters( 'feedzy_meta_output', $contentMeta, $feedURL );
678
  </li>
679
  ';
680
  }
681
+ $content .= '</ul> </div>';
682
 
683
  $content = apply_filters( 'feedzy_global_output', $content, $sc, $feed_title, $feed_items );
684
 
includes/admin/feedzy-rss-feeds-admin.php CHANGED
@@ -115,8 +115,8 @@ class Feedzy_Rss_Feeds_Admin extends Feedzy_Rss_Feeds_Admin_Abstract {
115
 
116
  if ( strpos( $file, 'feedzy-rss-feed.php' ) !== false ) {
117
  $new_links = array(
118
- 'doc' => '<a href="http://docs.themeisle.com/article/277-feedzy-rss-feeds-hooks" target="_blank" title="' . __( 'Documentation and examples', 'feedzy_rss_translate' ) . '">' . __( 'Documentation and examples', 'feedzy_rss_translate' ) . '</a>',
119
- 'more_plugins' => '<a href="http://themeisle.com/wordpress-plugins/" target="_blank" title="' . __( 'More Plugins', 'feedzy_rss_translate' ) . '">' . __( 'More Plugins', 'feedzy_rss_translate' ) . '</a>',
120
  );
121
 
122
  $links = array_merge( $links, $new_links );
115
 
116
  if ( strpos( $file, 'feedzy-rss-feed.php' ) !== false ) {
117
  $new_links = array(
118
+ 'doc' => '<a href="http://docs.themeisle.com/article/277-feedzy-rss-feeds-hooks" target="_blank" title="' . __( 'Documentation and examples', 'feedzy-rss-feeds' ) . '">' . __( 'Documentation and examples', 'feedzy-rss-feeds' ) . '</a>',
119
+ 'more_plugins' => '<a href="http://themeisle.com/wordpress-plugins/" target="_blank" title="' . __( 'More Plugins', 'feedzy-rss-feeds' ) . '">' . __( 'More Plugins', 'feedzy-rss-feeds' ) . '</a>',
120
  );
121
 
122
  $links = array_merge( $links, $new_links );
includes/admin/feedzy-rss-feeds-ui-lang.php CHANGED
@@ -50,12 +50,12 @@ class Feedzy_Rss_Feeds_Ui_Lang {
50
  $this->strings = array(
51
  'popup_url' => wp_nonce_url( 'admin-ajax.php', 'feedzy_ajax_token', 'feedzy_request_form_token' ),
52
  'pro_url' => ' https://themeisle.com/plugins/feedzy-rss-feeds/',
53
- 'plugin_label' => __( 'Feedzy Lite', 'feedzy_rss_translate' ),
54
- 'plugin_title' => __( 'Insert Feedzy RSS Feeds Shortcode', 'feedzy_rss_translate' ),
55
- 'image_button' => __( 'Use Image', 'feedzy_rss_translate' ),
56
- 'insert_button' => __( 'Insert Shortcode', 'feedzy_rss_translate' ),
57
- 'cancel_button' => __( 'Cancel', 'feedzy_rss_translate' ),
58
- 'pro_button' => __( 'Get Feedzy RSS Feeds Premium', 'feedzy_rss_translate' ),
59
  );
60
  }
61
 
@@ -105,35 +105,35 @@ class Feedzy_Rss_Feeds_Ui_Lang {
105
  public static function get_form_elements() {
106
  $elements = array(
107
  'section_feed' => array(
108
- 'title' => __( 'Feed Source', 'feedzy_rss_translate' ),
109
  'elements' => array(
110
  'feeds' => array(
111
- 'label' => __( 'The feed(s) URL (comma-separated list).', 'feedzy_rss_translate' ) . ' ' . __( 'Check feed before insert.', 'feedzy_rss_translate' ),
112
- 'placeholder' => __( 'Feed URL', 'feedzy_rss_translate' ),
113
  'type' => 'text',
114
  'value' => '',
115
  ),
116
  'max' => array(
117
- 'label' => __( 'Number of items to display.', 'feedzy_rss_translate' ),
118
- 'placeholder' => __( '(eg: 5)', 'feedzy_rss_translate' ),
119
  'type' => 'text',
120
  'value' => '',
121
  ),
122
  'feed_title' => array(
123
- 'label' => __( 'Should we display the RSS title?', 'feedzy_rss_translate' ),
124
  'type' => 'select',
125
  'value' => '',
126
  'opts' => array(
127
  'auto' => array(
128
- 'label' => __( 'Auto', 'feedzy_rss_translate' ),
129
  'value' => '',
130
  ),
131
  'yes' => array(
132
- 'label' => __( 'Yes', 'feedzy_rss_translate' ),
133
  'value' => 'yes',
134
  ),
135
  'no' => array(
136
- 'label' => __( 'No', 'feedzy_rss_translate' ),
137
  'value' => 'no',
138
  ),
139
  ),
@@ -141,190 +141,190 @@ class Feedzy_Rss_Feeds_Ui_Lang {
141
  ),
142
  ),
143
  'section_item' => array(
144
- 'title' => __( 'Item Options', 'feedzy_rss_translate' ),
145
  'elements' => array(
146
  'target' => array(
147
- 'label' => __( 'Links may be opened in the same window or a new tab.', 'feedzy_rss_translate' ),
148
  'type' => 'select',
149
  'value' => '',
150
  'opts' => array(
151
  'auto' => array(
152
- 'label' => __( 'Auto', 'feedzy_rss_translate' ),
153
  'value' => '',
154
  ),
155
  '_blank' => array(
156
- 'label' => __( '_blank', 'feedzy_rss_translate' ),
157
  'value' => '_blank',
158
  ),
159
  '_self' => array(
160
- 'label' => __( '_self', 'feedzy_rss_translate' ),
161
  'value' => '_self',
162
  ),
163
  '_parent' => array(
164
- 'label' => __( '_parent', 'feedzy_rss_translate' ),
165
  'value' => '_parent',
166
  ),
167
  '_top' => array(
168
- 'label' => __( '_top', 'feedzy_rss_translate' ),
169
  'value' => '_top',
170
  ),
171
  'framename' => array(
172
- 'label' => __( 'framename', 'feedzy_rss_translate' ),
173
  'value' => 'framename',
174
  ),
175
  ),
176
  ),
177
  'title' => array(
178
- 'label' => __( 'Trim the title of the item after X characters.', 'feedzy_rss_translate' ),
179
- 'placeholder' => __( '(eg: 160)', 'feedzy_rss_translate' ),
180
  'type' => 'text',
181
  'value' => '',
182
  ),
183
  'meta' => array(
184
- 'label' => __( 'Should we display the date of publication and the author name?', 'feedzy_rss_translate' ),
185
  'type' => 'select',
186
  'value' => '',
187
  'opts' => array(
188
  'auto' => array(
189
- 'label' => __( 'Auto', 'feedzy_rss_translate' ),
190
  'value' => '',
191
  ),
192
  'yes' => array(
193
- 'label' => __( 'Yes', 'feedzy_rss_translate' ),
194
  'value' => 'yes',
195
  ),
196
  'no' => array(
197
- 'label' => __( 'No', 'feedzy_rss_translate' ),
198
  'value' => 'no',
199
  ),
200
  ),
201
  ),
202
  'summary' => array(
203
- 'label' => __( 'Should we display a description (abstract) of the retrieved item?', 'feedzy_rss_translate' ),
204
  'type' => 'select',
205
  'value' => '',
206
  'opts' => array(
207
  'auto' => array(
208
- 'label' => __( 'Auto', 'feedzy_rss_translate' ),
209
  'value' => '',
210
  ),
211
  'yes' => array(
212
- 'label' => __( 'Yes', 'feedzy_rss_translate' ),
213
  'value' => 'yes',
214
  ),
215
  'no' => array(
216
- 'label' => __( 'No', 'feedzy_rss_translate' ),
217
  'value' => 'no',
218
  ),
219
  ),
220
  ),
221
  'summarylength' => array(
222
- 'label' => __( 'Crop description (summary) of the element after X characters.', 'feedzy_rss_translate' ),
223
  'type' => 'text',
224
- 'placeholder' => __( '(eg: 160)', 'feedzy_rss_translate' ),
225
  'value' => '',
226
  ),
227
  'keywords_title' => array(
228
- 'label' => __( 'Only display item if title contains specific keyword(s) (comma-separated list/case sensitive).', 'feedzy_rss_translate' ),
229
- 'placeholder' => __( '(eg: news, sports etc.)', 'feedzy_rss_translate' ),
230
  'type' => 'text',
231
  'value' => '',
232
  ),
233
  ),
234
  ),
235
  'section_image' => array(
236
- 'title' => __( 'Item Image Options', 'feedzy_rss_translate' ),
237
  'elements' => array(
238
  'thumb' => array(
239
- 'label' => __( 'Should we display the first image of the content if it is available?', 'feedzy_rss_translate' ),
240
  'type' => 'select',
241
  'value' => '',
242
  'opts' => array(
243
  'auto' => array(
244
- 'label' => __( 'Auto', 'feedzy_rss_translate' ),
245
  'value' => '',
246
  ),
247
  'yes' => array(
248
- 'label' => __( 'Yes', 'feedzy_rss_translate' ),
249
  'value' => 'yes',
250
  ),
251
  'no' => array(
252
- 'label' => __( 'No', 'feedzy_rss_translate' ),
253
  'value' => 'no',
254
  ),
255
  ),
256
  ),
257
  'default' => array(
258
- 'label' => __( 'Default thumbnail URL if no image is found.', 'feedzy_rss_translate' ),
259
- 'placeholder' => __( 'Image URL', 'feedzy_rss_translate' ),
260
  'type' => 'file',
261
  'value' => '',
262
  'button' => array(
263
- 'button_text' => __( 'Select from Gallery', 'feedzy_rss_translate' ),
264
  ),
265
  ),
266
  'size' => array(
267
- 'label' => __( 'Thumblails dimension. Do not include "px". Eg: 150', 'feedzy_rss_translate' ),
268
- 'placeholder' => __( '(eg: 150)', 'feedzy_rss_translate' ),
269
  'type' => 'text',
270
  'value' => '',
271
  ),
272
  ),
273
  ),
274
  'section_pro' => array(
275
- 'title' => __( 'PRO Options', 'feedzy_rss_translate' ),
276
- 'description' => __( 'Get access to more options and customizations with full version of Feedzy RSS Feeds . Use existing templates or extend them and make them your own.', 'feedzy_rss_translate' ) . '<br/>' . '<a href=" https://themeisle.com/plugins/feedzy-rss-feeds/" target="_blank"><small>' . __( 'See more features of Feedzy RSS Feeds ', 'feedzy_rss_translate' ) . '</small></a>',
277
  'elements' => array(
278
  'price' => array(
279
- 'label' => __( 'Should we display the price from the feed if it is available?', 'feedzy_rss_translate' ) . '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy_rss_translate' ) . '</small>',
280
  'type' => 'select',
281
  'disabled' => true,
282
  'value' => '',
283
  'opts' => array(
284
  'auto' => array(
285
- 'label' => __( 'Auto', 'feedzy_rss_translate' ),
286
  'value' => '',
287
  ),
288
  'yes' => array(
289
- 'label' => __( 'Yes', 'feedzy_rss_translate' ),
290
  'value' => 'yes',
291
  ),
292
  'no' => array(
293
- 'label' => __( 'No', 'feedzy_rss_translate' ),
294
  'value' => 'no',
295
  ),
296
  ),
297
  ),
298
  'referral_url' => array(
299
- 'label' => __( 'Referral URL parameters (w/o "?").', 'feedzy_rss_translate' ) . '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy_rss_translate' ) . '</small>',
300
- 'placeholder' => __( '(eg. promo_code=feedzy_is_awesome)', 'feedzy_rss_translate' ),
301
  'type' => 'text',
302
  'disabled' => true,
303
  'value' => '',
304
  ),
305
  'columns' => array(
306
- 'label' => __( 'How many columns we should use to display the feed items', 'feedzy_rss_translate' ) . '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy_rss_translate' ) . '</small>',
307
- 'placeholder' => __( '(eg. 1, 2, ..., 6)', 'feedzy_rss_translate' ),
308
  'type' => 'number',
309
  'disabled' => true,
310
  'value' => '1',
311
  ),
312
  'template' => array(
313
- 'label' => __( 'Template to use when displaying the feed.', 'feedzy_rss_translate' ) . '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy_rss_translate' ) . '</small>',
314
  'type' => 'radio',
315
  'disabled' => true,
316
  'value' => '',
317
  'opts' => array(
318
  'auto' => array(
319
- 'label' => __( 'Default', 'feedzy_rss_translate' ),
320
  'value' => 'default',
321
  ),
322
  'yes' => array(
323
- 'label' => __( 'Style 1', 'feedzy_rss_translate' ),
324
  'value' => 'style1',
325
  ),
326
  'no' => array(
327
- 'label' => __( 'Style 2', 'feedzy_rss_translate' ),
328
  'value' => 'style2',
329
  ),
330
  ),
50
  $this->strings = array(
51
  'popup_url' => wp_nonce_url( 'admin-ajax.php', 'feedzy_ajax_token', 'feedzy_request_form_token' ),
52
  'pro_url' => ' https://themeisle.com/plugins/feedzy-rss-feeds/',
53
+ 'plugin_label' => __( 'Feedzy Lite', 'feedzy-rss-feeds' ),
54
+ 'plugin_title' => __( 'Insert Feedzy RSS Feeds Shortcode', 'feedzy-rss-feeds' ),
55
+ 'image_button' => __( 'Use Image', 'feedzy-rss-feeds' ),
56
+ 'insert_button' => __( 'Insert Shortcode', 'feedzy-rss-feeds' ),
57
+ 'cancel_button' => __( 'Cancel', 'feedzy-rss-feeds' ),
58
+ 'pro_button' => __( 'Get Feedzy RSS Feeds Premium', 'feedzy-rss-feeds' ),
59
  );
60
  }
61
 
105
  public static function get_form_elements() {
106
  $elements = array(
107
  'section_feed' => array(
108
+ 'title' => __( 'Feed Source', 'feedzy-rss-feeds' ),
109
  'elements' => array(
110
  'feeds' => array(
111
+ 'label' => __( 'The feed(s) URL (comma-separated list).', 'feedzy-rss-feeds' ) . ' ' . __( 'Check feed before insert.', 'feedzy-rss-feeds' ),
112
+ 'placeholder' => __( 'Feed URL', 'feedzy-rss-feeds' ),
113
  'type' => 'text',
114
  'value' => '',
115
  ),
116
  'max' => array(
117
+ 'label' => __( 'Number of items to display.', 'feedzy-rss-feeds' ),
118
+ 'placeholder' => __( '(eg: 5)', 'feedzy-rss-feeds' ),
119
  'type' => 'text',
120
  'value' => '',
121
  ),
122
  'feed_title' => array(
123
+ 'label' => __( 'Should we display the RSS title?', 'feedzy-rss-feeds' ),
124
  'type' => 'select',
125
  'value' => '',
126
  'opts' => array(
127
  'auto' => array(
128
+ 'label' => __( 'Auto', 'feedzy-rss-feeds' ),
129
  'value' => '',
130
  ),
131
  'yes' => array(
132
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
133
  'value' => 'yes',
134
  ),
135
  'no' => array(
136
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
137
  'value' => 'no',
138
  ),
139
  ),
141
  ),
142
  ),
143
  'section_item' => array(
144
+ 'title' => __( 'Item Options', 'feedzy-rss-feeds' ),
145
  'elements' => array(
146
  'target' => array(
147
+ 'label' => __( 'Links may be opened in the same window or a new tab.', 'feedzy-rss-feeds' ),
148
  'type' => 'select',
149
  'value' => '',
150
  'opts' => array(
151
  'auto' => array(
152
+ 'label' => __( 'Auto', 'feedzy-rss-feeds' ),
153
  'value' => '',
154
  ),
155
  '_blank' => array(
156
+ 'label' => __( '_blank', 'feedzy-rss-feeds' ),
157
  'value' => '_blank',
158
  ),
159
  '_self' => array(
160
+ 'label' => __( '_self', 'feedzy-rss-feeds' ),
161
  'value' => '_self',
162
  ),
163
  '_parent' => array(
164
+ 'label' => __( '_parent', 'feedzy-rss-feeds' ),
165
  'value' => '_parent',
166
  ),
167
  '_top' => array(
168
+ 'label' => __( '_top', 'feedzy-rss-feeds' ),
169
  'value' => '_top',
170
  ),
171
  'framename' => array(
172
+ 'label' => __( 'framename', 'feedzy-rss-feeds' ),
173
  'value' => 'framename',
174
  ),
175
  ),
176
  ),
177
  'title' => array(
178
+ 'label' => __( 'Trim the title of the item after X characters.', 'feedzy-rss-feeds' ),
179
+ 'placeholder' => __( '(eg: 160)', 'feedzy-rss-feeds' ),
180
  'type' => 'text',
181
  'value' => '',
182
  ),
183
  'meta' => array(
184
+ 'label' => __( 'Should we display the date of publication and the author name?', 'feedzy-rss-feeds' ),
185
  'type' => 'select',
186
  'value' => '',
187
  'opts' => array(
188
  'auto' => array(
189
+ 'label' => __( 'Auto', 'feedzy-rss-feeds' ),
190
  'value' => '',
191
  ),
192
  'yes' => array(
193
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
194
  'value' => 'yes',
195
  ),
196
  'no' => array(
197
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
198
  'value' => 'no',
199
  ),
200
  ),
201
  ),
202
  'summary' => array(
203
+ 'label' => __( 'Should we display a description (abstract) of the retrieved item?', 'feedzy-rss-feeds' ),
204
  'type' => 'select',
205
  'value' => '',
206
  'opts' => array(
207
  'auto' => array(
208
+ 'label' => __( 'Auto', 'feedzy-rss-feeds' ),
209
  'value' => '',
210
  ),
211
  'yes' => array(
212
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
213
  'value' => 'yes',
214
  ),
215
  'no' => array(
216
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
217
  'value' => 'no',
218
  ),
219
  ),
220
  ),
221
  'summarylength' => array(
222
+ 'label' => __( 'Crop description (summary) of the element after X characters.', 'feedzy-rss-feeds' ),
223
  'type' => 'text',
224
+ 'placeholder' => __( '(eg: 160)', 'feedzy-rss-feeds' ),
225
  'value' => '',
226
  ),
227
  'keywords_title' => array(
228
+ 'label' => __( 'Only display item if title contains specific keyword(s) (comma-separated list/case sensitive).', 'feedzy-rss-feeds' ),
229
+ 'placeholder' => __( '(eg: news, sports etc.)', 'feedzy-rss-feeds' ),
230
  'type' => 'text',
231
  'value' => '',
232
  ),
233
  ),
234
  ),
235
  'section_image' => array(
236
+ 'title' => __( 'Item Image Options', 'feedzy-rss-feeds' ),
237
  'elements' => array(
238
  'thumb' => array(
239
+ 'label' => __( 'Should we display the first image of the content if it is available?', 'feedzy-rss-feeds' ),
240
  'type' => 'select',
241
  'value' => '',
242
  'opts' => array(
243
  'auto' => array(
244
+ 'label' => __( 'Auto', 'feedzy-rss-feeds' ),
245
  'value' => '',
246
  ),
247
  'yes' => array(
248
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
249
  'value' => 'yes',
250
  ),
251
  'no' => array(
252
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
253
  'value' => 'no',
254
  ),
255
  ),
256
  ),
257
  'default' => array(
258
+ 'label' => __( 'Default thumbnail URL if no image is found.', 'feedzy-rss-feeds' ),
259
+ 'placeholder' => __( 'Image URL', 'feedzy-rss-feeds' ),
260
  'type' => 'file',
261
  'value' => '',
262
  'button' => array(
263
+ 'button_text' => __( 'Select from Gallery', 'feedzy-rss-feeds' ),
264
  ),
265
  ),
266
  'size' => array(
267
+ 'label' => __( 'Thumblails dimension. Do not include "px". Eg: 150', 'feedzy-rss-feeds' ),
268
+ 'placeholder' => __( '(eg: 150)', 'feedzy-rss-feeds' ),
269
  'type' => 'text',
270
  'value' => '',
271
  ),
272
  ),
273
  ),
274
  'section_pro' => array(
275
+ 'title' => __( 'PRO Options', 'feedzy-rss-feeds' ),
276
+ 'description' => __( 'Get access to more options and customizations with full version of Feedzy RSS Feeds . Use existing templates or extend them and make them your own.', 'feedzy-rss-feeds' ) . '<br/>' . '<a href=" https://themeisle.com/plugins/feedzy-rss-feeds/" target="_blank"><small>' . __( 'See more features of Feedzy RSS Feeds ', 'feedzy-rss-feeds' ) . '</small></a>',
277
  'elements' => array(
278
  'price' => array(
279
+ 'label' => __( 'Should we display the price from the feed if it is available?', 'feedzy-rss-feeds' ) . '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy-rss-feeds' ) . '</small>',
280
  'type' => 'select',
281
  'disabled' => true,
282
  'value' => '',
283
  'opts' => array(
284
  'auto' => array(
285
+ 'label' => __( 'Auto', 'feedzy-rss-feeds' ),
286
  'value' => '',
287
  ),
288
  'yes' => array(
289
+ 'label' => __( 'Yes', 'feedzy-rss-feeds' ),
290
  'value' => 'yes',
291
  ),
292
  'no' => array(
293
+ 'label' => __( 'No', 'feedzy-rss-feeds' ),
294
  'value' => 'no',
295
  ),
296
  ),
297
  ),
298
  'referral_url' => array(
299
+ 'label' => __( 'Referral URL parameters (w/o "?").', 'feedzy-rss-feeds' ) . '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy-rss-feeds' ) . '</small>',
300
+ 'placeholder' => __( '(eg. promo_code=feedzy_is_awesome)', 'feedzy-rss-feeds' ),
301
  'type' => 'text',
302
  'disabled' => true,
303
  'value' => '',
304
  ),
305
  'columns' => array(
306
+ 'label' => __( 'How many columns we should use to display the feed items', 'feedzy-rss-feeds' ) . '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy-rss-feeds' ) . '</small>',
307
+ 'placeholder' => __( '(eg. 1, 2, ..., 6)', 'feedzy-rss-feeds' ),
308
  'type' => 'number',
309
  'disabled' => true,
310
  'value' => '1',
311
  ),
312
  'template' => array(
313
+ 'label' => __( 'Template to use when displaying the feed.', 'feedzy-rss-feeds' ) . '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy-rss-feeds' ) . '</small>',
314
  'type' => 'radio',
315
  'disabled' => true,
316
  'value' => '',
317
  'opts' => array(
318
  'auto' => array(
319
+ 'label' => __( 'Default', 'feedzy-rss-feeds' ),
320
  'value' => 'default',
321
  ),
322
  'yes' => array(
323
+ 'label' => __( 'Style 1', 'feedzy-rss-feeds' ),
324
  'value' => 'style1',
325
  ),
326
  'no' => array(
327
+ 'label' => __( 'Style 2', 'feedzy-rss-feeds' ),
328
  'value' => 'style2',
329
  ),
330
  ),
includes/admin/feedzy-wp-widget.php CHANGED
@@ -44,7 +44,7 @@ class feedzy_wp_widget extends WP_Widget {
44
  * @param Feedzy_Rss_Feeds_Admin $plugin_admin The Feedzy_Rss_Feeds_Admin object.
45
  */
46
  public function __construct( $plugin_admin ) {
47
- parent::__construct( false, $name = __( 'Feedzy RSS Feeds', 'feedzy_rss_translate' ) );
48
  $this->plugin_admin = $plugin_admin;
49
  self::$instance = $this;
50
 
@@ -88,11 +88,11 @@ class feedzy_wp_widget extends WP_Widget {
88
  public function form( $instance ) {
89
  $instance = wp_parse_args( $instance, $this->get_widget_defaults() );
90
  $widget_form = '<p>
91
- <label for="' . $this->get_field_id( 'title' ) . '">' . __( 'Widget Title', 'feedzy_rss_translate' ) . '</label>
92
  <input class="widefat" id="' . $this->get_field_id( 'title' ) . '" name="' . $this->get_field_name( 'title' ) . '" type="text" value="' . esc_attr( $instance['title'] ) . '" />
93
  </p>
94
  <p>
95
- <label for="' . $this->get_field_id( 'textarea' ) . '">' . __( 'Intro text', 'feedzy_rss_translate' ) . '</label>
96
  <textarea class="widefat" id="' . $this->get_field_id( 'textarea' ) . '" name="' . $this->get_field_name( 'textarea' ) . '">' . esc_attr( $instance['textarea'] ) . '</textarea>
97
  </p>';
98
  foreach ( Feedzy_Rss_Feeds_Ui_Lang::get_form_elements() as $key_section => $section ) {
44
  * @param Feedzy_Rss_Feeds_Admin $plugin_admin The Feedzy_Rss_Feeds_Admin object.
45
  */
46
  public function __construct( $plugin_admin ) {
47
+ parent::__construct( false, $name = __( 'Feedzy RSS Feeds', 'feedzy-rss-feeds' ) );
48
  $this->plugin_admin = $plugin_admin;
49
  self::$instance = $this;
50
 
88
  public function form( $instance ) {
89
  $instance = wp_parse_args( $instance, $this->get_widget_defaults() );
90
  $widget_form = '<p>
91
+ <label for="' . $this->get_field_id( 'title' ) . '">' . __( 'Widget Title', 'feedzy-rss-feeds' ) . '</label>
92
  <input class="widefat" id="' . $this->get_field_id( 'title' ) . '" name="' . $this->get_field_name( 'title' ) . '" type="text" value="' . esc_attr( $instance['title'] ) . '" />
93
  </p>
94
  <p>
95
+ <label for="' . $this->get_field_id( 'textarea' ) . '">' . __( 'Intro text', 'feedzy-rss-feeds' ) . '</label>
96
  <textarea class="widefat" id="' . $this->get_field_id( 'textarea' ) . '" name="' . $this->get_field_name( 'textarea' ) . '">' . esc_attr( $instance['textarea'] ) . '</textarea>
97
  </p>';
98
  foreach ( Feedzy_Rss_Feeds_Ui_Lang::get_form_elements() as $key_section => $section ) {
includes/feedzy-rss-feeds-i18n.php CHANGED
@@ -35,7 +35,7 @@ class Feedzy_Rss_Feeds_i18n {
35
  public function load_plugin_textdomain() {
36
 
37
  load_plugin_textdomain(
38
- 'feedzy_rss_translate',
39
  false,
40
  dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
41
  );
35
  public function load_plugin_textdomain() {
36
 
37
  load_plugin_textdomain(
38
+ 'feedzy-rss-feeds',
39
  false,
40
  dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
41
  );
includes/feedzy-rss-feeds.php CHANGED
@@ -69,7 +69,7 @@ class Feedzy_Rss_Feeds {
69
  public function __construct() {
70
 
71
  $this->plugin_name = 'feedzy-rss-feeds';
72
- $this->version = '3.0.0';
73
 
74
  $this->load_dependencies();
75
  $this->set_locale();
69
  public function __construct() {
70
 
71
  $this->plugin_name = 'feedzy-rss-feeds';
72
+ $this->version = '3.0.1';
73
 
74
  $this->load_dependencies();
75
  $this->set_locale();
languages/{feedzy_rss_translate-de_DE.mo → feedzy-rss-feeds-de_DE.mo} RENAMED
File without changes
languages/{feedzy_rss_translate-de_DE.po → feedzy-rss-feeds-de_DE.po} RENAMED
File without changes
languages/{feedzy_rss_translate-es_ES.mo → feedzy-rss-feeds-es_ES.mo} RENAMED
File without changes
languages/{feedzy_rss_translate-es_ES.po → feedzy-rss-feeds-es_ES.po} RENAMED
File without changes
languages/{feedzy_rss_translate-fr_FR.mo → feedzy-rss-feeds-fr_FR.mo} RENAMED
File without changes
languages/{feedzy_rss_translate-fr_FR.po → feedzy-rss-feeds-fr_FR.po} RENAMED
@@ -21,150 +21,150 @@ msgstr ""
21
  "X-Textdomain-Support: yes"
22
 
23
  #: feedzy-rss-feeds-functions.php:26
24
- #@ feedzy_rss_translate
25
  msgid "Sorry, this feed is currently unavailable or does not exists anymore."
26
  msgstr "Désolé, ce flux est actuellement indisponible ou n'existe plus."
27
 
28
  #: feedzy-rss-feeds-shortcode.php:228
29
- #@ feedzy_rss_translate
30
  msgid "on"
31
  msgstr "le"
32
 
33
  #: feedzy-rss-feeds-shortcode.php:230
34
- #@ feedzy_rss_translate
35
  msgid "at"
36
  msgstr "à"
37
 
38
  #: feedzy-rss-feed.php:52
39
- #@ feedzy_rss_translate
40
  msgid "Documentation and examples"
41
  msgstr "Documentation et exemples"
42
 
43
  #: feedzy-rss-feed.php:53
44
- #@ feedzy_rss_translate
45
  msgid "More b*web Plugins"
46
  msgstr "Plus de plugins b*web"
47
 
48
  #: feedzy-rss-feeds-ui-lang.php:19
49
- #@ feedzy_rss_translate
50
  msgid "Insert FEEDZY RSS Feeds Shortcode"
51
  msgstr "Insérer un shortcode FEEDZY RSS Feeds"
52
 
53
  #: feedzy-rss-feeds-ui-lang.php:21
54
  #: feedzy-rss-feeds-widget.php:69
55
- #@ feedzy_rss_translate
56
  msgid "Number of items to display."
57
  msgstr "Nombre d’éléments à remonter."
58
 
59
  #: feedzy-rss-feeds-ui-lang.php:23
60
  #: feedzy-rss-feeds-widget.php:73
61
- #@ feedzy_rss_translate
62
  msgid "Links may be opened in the same window or a new tab."
63
  msgstr "Les liens peuvent être ouverts dans la même fenêtre ou dans un nouvel onglet."
64
 
65
  #: feedzy-rss-feeds-ui-lang.php:24
66
  #: feedzy-rss-feeds-widget.php:84
67
- #@ feedzy_rss_translate
68
  msgid "Trim the title of the item after X characters."
69
  msgstr "Rogner le titre de l’élément après X caractères."
70
 
71
  #: feedzy-rss-feeds-ui-lang.php:25
72
  #: feedzy-rss-feeds-widget.php:89
73
- #@ feedzy_rss_translate
74
  msgid "Should we display the date of publication and the author name?"
75
  msgstr "Doit-on afficher la date de publication ainsi que le nom de l’auteur de l’élément ?"
76
 
77
  #: feedzy-rss-feeds-ui-lang.php:26
78
  #: feedzy-rss-feeds-widget.php:93
79
- #@ feedzy_rss_translate
80
  msgid "Should we display a description (abstract) of the retrieved item?"
81
  msgstr "Doit-on afficher la description (le résumé) de l’élément ?"
82
 
83
  #: feedzy-rss-feeds-ui-lang.php:27
84
  #: feedzy-rss-feeds-widget.php:96
85
- #@ feedzy_rss_translate
86
  msgid "Crop description (summary) of the element after X characters."
87
  msgstr "Rogner la description (le résumé) de l’élément après X caractères."
88
 
89
  #: feedzy-rss-feeds-ui-lang.php:28
90
  #: feedzy-rss-feeds-widget.php:100
91
- #@ feedzy_rss_translate
92
  msgid "Should we display the first image of the content if it is available?"
93
  msgstr "Doit-on afficher la première image du contenu si elle est disponible ?"
94
 
95
  #: feedzy-rss-feeds-ui-lang.php:29
96
  #: feedzy-rss-feeds-widget.php:123
97
- #@ feedzy_rss_translate
98
  msgid "Default thumbnail URL if no image is found."
99
  msgstr "URL de la miniature par défaut si aucune image n’est trouvée."
100
 
101
  #: feedzy-rss-feeds-ui-lang.php:30
102
  #: feedzy-rss-feeds-widget.php:127
103
- #@ feedzy_rss_translate
104
  msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
105
  msgstr "Dimensions de la miniature. Ne pas inclure “px”. Ex : 150"
106
 
107
  #: feedzy-rss-feeds-ui-lang.php:31
108
  #: feedzy-rss-feeds-widget.php:131
109
- #@ feedzy_rss_translate
110
  msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
111
  msgstr "Afficher un élément seulement si son titre contient l’un des mots clés spécifiés (liste séparée par des virgules/sensible à la case)"
112
 
113
  #: feedzy-rss-feeds-ui-lang.php:32
114
- #@ feedzy_rss_translate
115
  msgid "Do not specify"
116
  msgstr "Ne pas préciser"
117
 
118
  #: feedzy-rss-feeds-ui-lang.php:33
119
  #: feedzy-rss-feeds-widget.php:111
120
- #@ feedzy_rss_translate
121
  msgid "No"
122
  msgstr "Non"
123
 
124
  #: feedzy-rss-feeds-ui-lang.php:34
125
  #: feedzy-rss-feeds-widget.php:112
126
- #@ feedzy_rss_translate
127
  msgid "Yes"
128
  msgstr "Oui"
129
 
130
  #: feedzy-rss-feeds-ui-lang.php:20
131
  #: feedzy-rss-feeds-widget.php:65
132
- #@ feedzy_rss_translate
133
  msgid "The feed(s) URL (comma-separated list)."
134
  msgstr "URL(s) du(des) flux RSS (liste séparée par des virgules)."
135
 
136
  #: feedzy-rss-feeds-ui-lang.php:22
137
- #@ feedzy_rss_translate
138
  msgid "Should we display the RSS title?"
139
  msgstr "Doit-on afficher le titre du flux RSS ?"
140
 
141
  #. translators: plugin header field 'Name'
142
  #: feedzy-rss-feed.php:0
143
- #@ feedzy_rss_translate
144
  msgid "FEEDZY RSS Feeds by b*web"
145
  msgstr ""
146
 
147
  #. translators: plugin header field 'Description'
148
  #: feedzy-rss-feed.php:0
149
- #@ feedzy_rss_translate
150
  msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
151
  msgstr "FEEDZY RSS Feeds est un petit plugin léger, rapide et très simple d'utilisation qui vous permet d'agréger des flux RSS dans votre site WordPress grâce à des shortcodes entièrement paramétrables."
152
 
153
  #. translators: plugin header field 'Author'
154
  #: feedzy-rss-feed.php:0
155
- #@ feedzy_rss_translate
156
  msgid "Brice CAPOBIANCO"
157
  msgstr ""
158
 
159
  #. translators: plugin header field 'AuthorURI'
160
  #: feedzy-rss-feed.php:0
161
- #@ feedzy_rss_translate
162
  msgid "http://b-website.com/"
163
  msgstr ""
164
 
165
  #. translators: plugin header field 'PluginURI'
166
  #: feedzy-rss-feed.php:0
167
- #@ feedzy_rss_translate
168
  msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
169
  msgstr "http://b-website.com/feedzy-rss-feeds-plugin-wordpress-gratuit-utilisant-simplepie"
170
 
@@ -174,12 +174,12 @@ msgid "Feedzy RSS Feeds"
174
  msgstr ""
175
 
176
  #: feedzy-rss-feeds-widget.php:57
177
- #@ feedzy_rss_translate
178
  msgid "Widget Title"
179
  msgstr "Titre du Widget"
180
 
181
  #: feedzy-rss-feeds-widget.php:61
182
- #@ feedzy_rss_translate
183
  msgid "Intro text"
184
  msgstr "Texte d'intro"
185
 
@@ -189,29 +189,29 @@ msgid "Donate to this plugin &#187;"
189
  msgstr ""
190
 
191
  #: feedzy-rss-feeds-shortcode.php:211
192
- #@ feedzy_rss_translate
193
  msgid "Posted"
194
  msgstr "Posté"
195
 
196
  #: feedzy-rss-feeds-shortcode.php:222
197
- #@ feedzy_rss_translate
198
  msgid "by"
199
  msgstr "par"
200
 
201
  #. translators: plugin header field 'Version'
202
  #: feedzy-rss-feed.php:0
203
- #@ feedzy_rss_translate
204
  msgid "2.7"
205
  msgstr ""
206
 
207
  #: feedzy-rss-feeds-ui-lang.php:20
208
- #@ feedzy_rss_translate
209
  msgid "If your feed is not valid, it won't work."
210
  msgstr "Si votre flux n'est pas valide, cela ne fonctionnera pas."
211
 
212
  #: feedzy-rss-feeds-ui-lang.php:35
213
  #: feedzy-rss-feeds-widget.php:113
214
- #@ feedzy_rss_translate
215
  msgid "Auto"
216
  msgstr ""
217
 
21
  "X-Textdomain-Support: yes"
22
 
23
  #: feedzy-rss-feeds-functions.php:26
24
+ #@ feedzy-rss-feeds
25
  msgid "Sorry, this feed is currently unavailable or does not exists anymore."
26
  msgstr "Désolé, ce flux est actuellement indisponible ou n'existe plus."
27
 
28
  #: feedzy-rss-feeds-shortcode.php:228
29
+ #@ feedzy-rss-feeds
30
  msgid "on"
31
  msgstr "le"
32
 
33
  #: feedzy-rss-feeds-shortcode.php:230
34
+ #@ feedzy-rss-feeds
35
  msgid "at"
36
  msgstr "à"
37
 
38
  #: feedzy-rss-feed.php:52
39
+ #@ feedzy-rss-feeds
40
  msgid "Documentation and examples"
41
  msgstr "Documentation et exemples"
42
 
43
  #: feedzy-rss-feed.php:53
44
+ #@ feedzy-rss-feeds
45
  msgid "More b*web Plugins"
46
  msgstr "Plus de plugins b*web"
47
 
48
  #: feedzy-rss-feeds-ui-lang.php:19
49
+ #@ feedzy-rss-feeds
50
  msgid "Insert FEEDZY RSS Feeds Shortcode"
51
  msgstr "Insérer un shortcode FEEDZY RSS Feeds"
52
 
53
  #: feedzy-rss-feeds-ui-lang.php:21
54
  #: feedzy-rss-feeds-widget.php:69
55
+ #@ feedzy-rss-feeds
56
  msgid "Number of items to display."
57
  msgstr "Nombre d’éléments à remonter."
58
 
59
  #: feedzy-rss-feeds-ui-lang.php:23
60
  #: feedzy-rss-feeds-widget.php:73
61
+ #@ feedzy-rss-feeds
62
  msgid "Links may be opened in the same window or a new tab."
63
  msgstr "Les liens peuvent être ouverts dans la même fenêtre ou dans un nouvel onglet."
64
 
65
  #: feedzy-rss-feeds-ui-lang.php:24
66
  #: feedzy-rss-feeds-widget.php:84
67
+ #@ feedzy-rss-feeds
68
  msgid "Trim the title of the item after X characters."
69
  msgstr "Rogner le titre de l’élément après X caractères."
70
 
71
  #: feedzy-rss-feeds-ui-lang.php:25
72
  #: feedzy-rss-feeds-widget.php:89
73
+ #@ feedzy-rss-feeds
74
  msgid "Should we display the date of publication and the author name?"
75
  msgstr "Doit-on afficher la date de publication ainsi que le nom de l’auteur de l’élément ?"
76
 
77
  #: feedzy-rss-feeds-ui-lang.php:26
78
  #: feedzy-rss-feeds-widget.php:93
79
+ #@ feedzy-rss-feeds
80
  msgid "Should we display a description (abstract) of the retrieved item?"
81
  msgstr "Doit-on afficher la description (le résumé) de l’élément ?"
82
 
83
  #: feedzy-rss-feeds-ui-lang.php:27
84
  #: feedzy-rss-feeds-widget.php:96
85
+ #@ feedzy-rss-feeds
86
  msgid "Crop description (summary) of the element after X characters."
87
  msgstr "Rogner la description (le résumé) de l’élément après X caractères."
88
 
89
  #: feedzy-rss-feeds-ui-lang.php:28
90
  #: feedzy-rss-feeds-widget.php:100
91
+ #@ feedzy-rss-feeds
92
  msgid "Should we display the first image of the content if it is available?"
93
  msgstr "Doit-on afficher la première image du contenu si elle est disponible ?"
94
 
95
  #: feedzy-rss-feeds-ui-lang.php:29
96
  #: feedzy-rss-feeds-widget.php:123
97
+ #@ feedzy-rss-feeds
98
  msgid "Default thumbnail URL if no image is found."
99
  msgstr "URL de la miniature par défaut si aucune image n’est trouvée."
100
 
101
  #: feedzy-rss-feeds-ui-lang.php:30
102
  #: feedzy-rss-feeds-widget.php:127
103
+ #@ feedzy-rss-feeds
104
  msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
105
  msgstr "Dimensions de la miniature. Ne pas inclure “px”. Ex : 150"
106
 
107
  #: feedzy-rss-feeds-ui-lang.php:31
108
  #: feedzy-rss-feeds-widget.php:131
109
+ #@ feedzy-rss-feeds
110
  msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
111
  msgstr "Afficher un élément seulement si son titre contient l’un des mots clés spécifiés (liste séparée par des virgules/sensible à la case)"
112
 
113
  #: feedzy-rss-feeds-ui-lang.php:32
114
+ #@ feedzy-rss-feeds
115
  msgid "Do not specify"
116
  msgstr "Ne pas préciser"
117
 
118
  #: feedzy-rss-feeds-ui-lang.php:33
119
  #: feedzy-rss-feeds-widget.php:111
120
+ #@ feedzy-rss-feeds
121
  msgid "No"
122
  msgstr "Non"
123
 
124
  #: feedzy-rss-feeds-ui-lang.php:34
125
  #: feedzy-rss-feeds-widget.php:112
126
+ #@ feedzy-rss-feeds
127
  msgid "Yes"
128
  msgstr "Oui"
129
 
130
  #: feedzy-rss-feeds-ui-lang.php:20
131
  #: feedzy-rss-feeds-widget.php:65
132
+ #@ feedzy-rss-feeds
133
  msgid "The feed(s) URL (comma-separated list)."
134
  msgstr "URL(s) du(des) flux RSS (liste séparée par des virgules)."
135
 
136
  #: feedzy-rss-feeds-ui-lang.php:22
137
+ #@ feedzy-rss-feeds
138
  msgid "Should we display the RSS title?"
139
  msgstr "Doit-on afficher le titre du flux RSS ?"
140
 
141
  #. translators: plugin header field 'Name'
142
  #: feedzy-rss-feed.php:0
143
+ #@ feedzy-rss-feeds
144
  msgid "FEEDZY RSS Feeds by b*web"
145
  msgstr ""
146
 
147
  #. translators: plugin header field 'Description'
148
  #: feedzy-rss-feed.php:0
149
+ #@ feedzy-rss-feeds
150
  msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
151
  msgstr "FEEDZY RSS Feeds est un petit plugin léger, rapide et très simple d'utilisation qui vous permet d'agréger des flux RSS dans votre site WordPress grâce à des shortcodes entièrement paramétrables."
152
 
153
  #. translators: plugin header field 'Author'
154
  #: feedzy-rss-feed.php:0
155
+ #@ feedzy-rss-feeds
156
  msgid "Brice CAPOBIANCO"
157
  msgstr ""
158
 
159
  #. translators: plugin header field 'AuthorURI'
160
  #: feedzy-rss-feed.php:0
161
+ #@ feedzy-rss-feeds
162
  msgid "http://b-website.com/"
163
  msgstr ""
164
 
165
  #. translators: plugin header field 'PluginURI'
166
  #: feedzy-rss-feed.php:0
167
+ #@ feedzy-rss-feeds
168
  msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
169
  msgstr "http://b-website.com/feedzy-rss-feeds-plugin-wordpress-gratuit-utilisant-simplepie"
170
 
174
  msgstr ""
175
 
176
  #: feedzy-rss-feeds-widget.php:57
177
+ #@ feedzy-rss-feeds
178
  msgid "Widget Title"
179
  msgstr "Titre du Widget"
180
 
181
  #: feedzy-rss-feeds-widget.php:61
182
+ #@ feedzy-rss-feeds
183
  msgid "Intro text"
184
  msgstr "Texte d'intro"
185
 
189
  msgstr ""
190
 
191
  #: feedzy-rss-feeds-shortcode.php:211
192
+ #@ feedzy-rss-feeds
193
  msgid "Posted"
194
  msgstr "Posté"
195
 
196
  #: feedzy-rss-feeds-shortcode.php:222
197
+ #@ feedzy-rss-feeds
198
  msgid "by"
199
  msgstr "par"
200
 
201
  #. translators: plugin header field 'Version'
202
  #: feedzy-rss-feed.php:0
203
+ #@ feedzy-rss-feeds
204
  msgid "2.7"
205
  msgstr ""
206
 
207
  #: feedzy-rss-feeds-ui-lang.php:20
208
+ #@ feedzy-rss-feeds
209
  msgid "If your feed is not valid, it won't work."
210
  msgstr "Si votre flux n'est pas valide, cela ne fonctionnera pas."
211
 
212
  #: feedzy-rss-feeds-ui-lang.php:35
213
  #: feedzy-rss-feeds-widget.php:113
214
+ #@ feedzy-rss-feeds
215
  msgid "Auto"
216
  msgstr ""
217
 
languages/{feedzy_rss_translate-ja.mo → feedzy-rss-feeds-ja.mo} RENAMED
File without changes
languages/{feedzy_rss_translate-ja.po → feedzy-rss-feeds-ja.po} RENAMED
@@ -17,136 +17,136 @@ msgstr ""
17
  "Language: fr_FR\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
 
20
- # @ feedzy_rss_translate
21
  #: feedzy-rss-feeds-shortcode.php:120
22
  msgid "Sorry, this feed is currently unavailable or does not exists anymore."
23
  msgstr "このフィードは現在利用できないか存在しません。"
24
 
25
- # @ feedzy_rss_translate
26
  #: feedzy-rss-feeds-shortcode.php:298
27
  msgid "on"
28
  msgstr "on"
29
 
30
- # @ feedzy_rss_translate
31
  #: feedzy-rss-feeds-shortcode.php:298
32
  msgid "at"
33
  msgstr "at"
34
 
35
- # @ feedzy_rss_translate
36
  #: feedzy-rss-feed.php:37
37
  msgid "Documentation and examples"
38
  msgstr "ドキュメントと例"
39
 
40
- # @ feedzy_rss_translate
41
  #: feedzy-rss-feed.php:38
42
  msgid "More b*web Plugins"
43
  msgstr "他の b*web プラグイン"
44
 
45
- # @ feedzy_rss_translate
46
  #: feedzy-rss-feeds-ui-lang.php:19
47
  msgid "Insert FEEDZY RSS Feeds Shortcode"
48
  msgstr "FEEDZY RSSフィード ショートコードを追加"
49
 
50
- # @ feedzy_rss_translate
51
  #: feedzy-rss-feeds-ui-lang.php:21 feedzy-rss-feeds-widget.php:69
52
  msgid "Number of items to display."
53
  msgstr "表示数:"
54
 
55
- # @ feedzy_rss_translate
56
  #: feedzy-rss-feeds-ui-lang.php:23 feedzy-rss-feeds-widget.php:73
57
  msgid "Links may be opened in the same window or a new tab."
58
  msgstr "リンク先の開き方:"
59
 
60
- # @ feedzy_rss_translate
61
  #: feedzy-rss-feeds-ui-lang.php:24 feedzy-rss-feeds-widget.php:84
62
  msgid "Trim the title of the item after X characters."
63
  msgstr "タイトルの切り取り文字数:"
64
 
65
- # @ feedzy_rss_translate
66
  #: feedzy-rss-feeds-ui-lang.php:25 feedzy-rss-feeds-widget.php:89
67
  msgid "Should we display the date of publication and the author name?"
68
  msgstr "公開日と著作者を表示:"
69
 
70
- # @ feedzy_rss_translate
71
  #: feedzy-rss-feeds-ui-lang.php:26 feedzy-rss-feeds-widget.php:93
72
  msgid "Should we display a description (abstract) of the retrieved item?"
73
  msgstr "詳細を表示:"
74
 
75
- # @ feedzy_rss_translate
76
  #: feedzy-rss-feeds-ui-lang.php:27 feedzy-rss-feeds-widget.php:96
77
  msgid "Crop description (summary) of the element after X characters."
78
  msgstr "詳細の切り取り文字数:"
79
 
80
- # @ feedzy_rss_translate
81
  #: feedzy-rss-feeds-ui-lang.php:28 feedzy-rss-feeds-widget.php:101
82
  msgid "Should we display the first image of the content if it is available?"
83
  msgstr "最初の画像を表示:"
84
 
85
- # @ feedzy_rss_translate
86
  #: feedzy-rss-feeds-ui-lang.php:29 feedzy-rss-feeds-widget.php:104
87
  msgid "Default thumbnail URL if no image is found."
88
  msgstr "画像がない場合のデフォルトサムネイル:"
89
 
90
- # @ feedzy_rss_translate
91
  #: feedzy-rss-feeds-ui-lang.php:30 feedzy-rss-feeds-widget.php:108
92
  msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
93
  msgstr "サムネイルのサイズ(\"px\"はなし 例:150):"
94
 
95
- # @ feedzy_rss_translate
96
  #: feedzy-rss-feeds-ui-lang.php:31 feedzy-rss-feeds-widget.php:112
97
  msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
98
  msgstr "特定なキーワードがタイトルに含まれる項目のみ表示 (複数指定時は大文字小文字を意識してカンマ区切り):"
99
 
100
- # @ feedzy_rss_translate
101
  #: feedzy-rss-feeds-ui-lang.php:32
102
  msgid "Do not specify"
103
  msgstr "指定しない"
104
 
105
- # @ feedzy_rss_translate
106
  #: feedzy-rss-feeds-ui-lang.php:33
107
  msgid "No"
108
  msgstr "しない"
109
 
110
- # @ feedzy_rss_translate
111
  #: feedzy-rss-feeds-ui-lang.php:34
112
  msgid "Yes"
113
  msgstr "する"
114
 
115
- # @ feedzy_rss_translate
116
  #: feedzy-rss-feeds-ui-lang.php:20 feedzy-rss-feeds-widget.php:65
117
  msgid "The feed(s) URL (comma-separated list)."
118
  msgstr "フィードアドレス (複数指定する場合はカンマ区切り):"
119
 
120
- # @ feedzy_rss_translate
121
  #: feedzy-rss-feeds-ui-lang.php:22
122
  msgid "Should we display the RSS title?"
123
  msgstr "タイトルを表示:"
124
 
125
- # @ feedzy_rss_translate
126
  #. translators: plugin header field 'Name'
127
  #: feedzy-rss-feed.php:0
128
  msgid "FEEDZY RSS Feeds by b*web"
129
  msgstr "FEEDZY RSS Feeds by b*web"
130
 
131
- # @ feedzy_rss_translate
132
  #. translators: plugin header field 'Description'
133
  #: feedzy-rss-feed.php:0
134
  msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
135
  msgstr "FEEDZY RSS Feeds は小さく軽いプラグインです。高速で使い方も簡単。あなたのワードプレスサイトにシンプルなショートコードによるRSSフィードの収集機能を追加します。"
136
 
137
- # @ feedzy_rss_translate
138
  #. translators: plugin header field 'Author'
139
  #: feedzy-rss-feed.php:0
140
  msgid "Brice CAPOBIANCO"
141
  msgstr "Brice CAPOBIANCO"
142
 
143
- # @ feedzy_rss_translate
144
  #. translators: plugin header field 'AuthorURI'
145
  #: feedzy-rss-feed.php:0
146
  msgid "http://b-website.com/"
147
  msgstr "http://b-website.com/"
148
 
149
- # @ feedzy_rss_translate
150
  #. translators: plugin header field 'PluginURI'
151
  #: feedzy-rss-feed.php:0
152
  msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
@@ -157,12 +157,12 @@ msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
157
  msgid "Feedzy RSS Feeds"
158
  msgstr "Feedzy RSS フィード"
159
 
160
- # @ feedzy_rss_translate
161
  #: feedzy-rss-feeds-widget.php:57
162
  msgid "Widget Title"
163
  msgstr "タイトル"
164
 
165
- # @ feedzy_rss_translate
166
  #: feedzy-rss-feeds-widget.php:61
167
  msgid "Intro text"
168
  msgstr "イントロテキスト"
@@ -172,18 +172,18 @@ msgstr "イントロテキスト"
172
  msgid "Donate to this plugin &#187;"
173
  msgstr "このプラグインに寄付 &#187;"
174
 
175
- # @ feedzy_rss_translate
176
  #. translators: plugin header field 'Version'
177
  #: feedzy-rss-feed.php:0
178
  msgid "2.2"
179
  msgstr "2.2"
180
 
181
- # @ feedzy_rss_translate
182
  #: feedzy-rss-feeds-shortcode.php:289
183
  msgid "Posted"
184
  msgstr "投稿日"
185
 
186
- # @ feedzy_rss_translate
187
  #: feedzy-rss-feeds-shortcode.php:294
188
  msgid "by"
189
  msgstr "by"
17
  "Language: fr_FR\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
 
20
+ # @ feedzy-rss-feeds
21
  #: feedzy-rss-feeds-shortcode.php:120
22
  msgid "Sorry, this feed is currently unavailable or does not exists anymore."
23
  msgstr "このフィードは現在利用できないか存在しません。"
24
 
25
+ # @ feedzy-rss-feeds
26
  #: feedzy-rss-feeds-shortcode.php:298
27
  msgid "on"
28
  msgstr "on"
29
 
30
+ # @ feedzy-rss-feeds
31
  #: feedzy-rss-feeds-shortcode.php:298
32
  msgid "at"
33
  msgstr "at"
34
 
35
+ # @ feedzy-rss-feeds
36
  #: feedzy-rss-feed.php:37
37
  msgid "Documentation and examples"
38
  msgstr "ドキュメントと例"
39
 
40
+ # @ feedzy-rss-feeds
41
  #: feedzy-rss-feed.php:38
42
  msgid "More b*web Plugins"
43
  msgstr "他の b*web プラグイン"
44
 
45
+ # @ feedzy-rss-feeds
46
  #: feedzy-rss-feeds-ui-lang.php:19
47
  msgid "Insert FEEDZY RSS Feeds Shortcode"
48
  msgstr "FEEDZY RSSフィード ショートコードを追加"
49
 
50
+ # @ feedzy-rss-feeds
51
  #: feedzy-rss-feeds-ui-lang.php:21 feedzy-rss-feeds-widget.php:69
52
  msgid "Number of items to display."
53
  msgstr "表示数:"
54
 
55
+ # @ feedzy-rss-feeds
56
  #: feedzy-rss-feeds-ui-lang.php:23 feedzy-rss-feeds-widget.php:73
57
  msgid "Links may be opened in the same window or a new tab."
58
  msgstr "リンク先の開き方:"
59
 
60
+ # @ feedzy-rss-feeds
61
  #: feedzy-rss-feeds-ui-lang.php:24 feedzy-rss-feeds-widget.php:84
62
  msgid "Trim the title of the item after X characters."
63
  msgstr "タイトルの切り取り文字数:"
64
 
65
+ # @ feedzy-rss-feeds
66
  #: feedzy-rss-feeds-ui-lang.php:25 feedzy-rss-feeds-widget.php:89
67
  msgid "Should we display the date of publication and the author name?"
68
  msgstr "公開日と著作者を表示:"
69
 
70
+ # @ feedzy-rss-feeds
71
  #: feedzy-rss-feeds-ui-lang.php:26 feedzy-rss-feeds-widget.php:93
72
  msgid "Should we display a description (abstract) of the retrieved item?"
73
  msgstr "詳細を表示:"
74
 
75
+ # @ feedzy-rss-feeds
76
  #: feedzy-rss-feeds-ui-lang.php:27 feedzy-rss-feeds-widget.php:96
77
  msgid "Crop description (summary) of the element after X characters."
78
  msgstr "詳細の切り取り文字数:"
79
 
80
+ # @ feedzy-rss-feeds
81
  #: feedzy-rss-feeds-ui-lang.php:28 feedzy-rss-feeds-widget.php:101
82
  msgid "Should we display the first image of the content if it is available?"
83
  msgstr "最初の画像を表示:"
84
 
85
+ # @ feedzy-rss-feeds
86
  #: feedzy-rss-feeds-ui-lang.php:29 feedzy-rss-feeds-widget.php:104
87
  msgid "Default thumbnail URL if no image is found."
88
  msgstr "画像がない場合のデフォルトサムネイル:"
89
 
90
+ # @ feedzy-rss-feeds
91
  #: feedzy-rss-feeds-ui-lang.php:30 feedzy-rss-feeds-widget.php:108
92
  msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
93
  msgstr "サムネイルのサイズ(\"px\"はなし 例:150):"
94
 
95
+ # @ feedzy-rss-feeds
96
  #: feedzy-rss-feeds-ui-lang.php:31 feedzy-rss-feeds-widget.php:112
97
  msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
98
  msgstr "特定なキーワードがタイトルに含まれる項目のみ表示 (複数指定時は大文字小文字を意識してカンマ区切り):"
99
 
100
+ # @ feedzy-rss-feeds
101
  #: feedzy-rss-feeds-ui-lang.php:32
102
  msgid "Do not specify"
103
  msgstr "指定しない"
104
 
105
+ # @ feedzy-rss-feeds
106
  #: feedzy-rss-feeds-ui-lang.php:33
107
  msgid "No"
108
  msgstr "しない"
109
 
110
+ # @ feedzy-rss-feeds
111
  #: feedzy-rss-feeds-ui-lang.php:34
112
  msgid "Yes"
113
  msgstr "する"
114
 
115
+ # @ feedzy-rss-feeds
116
  #: feedzy-rss-feeds-ui-lang.php:20 feedzy-rss-feeds-widget.php:65
117
  msgid "The feed(s) URL (comma-separated list)."
118
  msgstr "フィードアドレス (複数指定する場合はカンマ区切り):"
119
 
120
+ # @ feedzy-rss-feeds
121
  #: feedzy-rss-feeds-ui-lang.php:22
122
  msgid "Should we display the RSS title?"
123
  msgstr "タイトルを表示:"
124
 
125
+ # @ feedzy-rss-feeds
126
  #. translators: plugin header field 'Name'
127
  #: feedzy-rss-feed.php:0
128
  msgid "FEEDZY RSS Feeds by b*web"
129
  msgstr "FEEDZY RSS Feeds by b*web"
130
 
131
+ # @ feedzy-rss-feeds
132
  #. translators: plugin header field 'Description'
133
  #: feedzy-rss-feed.php:0
134
  msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
135
  msgstr "FEEDZY RSS Feeds は小さく軽いプラグインです。高速で使い方も簡単。あなたのワードプレスサイトにシンプルなショートコードによるRSSフィードの収集機能を追加します。"
136
 
137
+ # @ feedzy-rss-feeds
138
  #. translators: plugin header field 'Author'
139
  #: feedzy-rss-feed.php:0
140
  msgid "Brice CAPOBIANCO"
141
  msgstr "Brice CAPOBIANCO"
142
 
143
+ # @ feedzy-rss-feeds
144
  #. translators: plugin header field 'AuthorURI'
145
  #: feedzy-rss-feed.php:0
146
  msgid "http://b-website.com/"
147
  msgstr "http://b-website.com/"
148
 
149
+ # @ feedzy-rss-feeds
150
  #. translators: plugin header field 'PluginURI'
151
  #: feedzy-rss-feed.php:0
152
  msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
157
  msgid "Feedzy RSS Feeds"
158
  msgstr "Feedzy RSS フィード"
159
 
160
+ # @ feedzy-rss-feeds
161
  #: feedzy-rss-feeds-widget.php:57
162
  msgid "Widget Title"
163
  msgstr "タイトル"
164
 
165
+ # @ feedzy-rss-feeds
166
  #: feedzy-rss-feeds-widget.php:61
167
  msgid "Intro text"
168
  msgstr "イントロテキスト"
172
  msgid "Donate to this plugin &#187;"
173
  msgstr "このプラグインに寄付 &#187;"
174
 
175
+ # @ feedzy-rss-feeds
176
  #. translators: plugin header field 'Version'
177
  #: feedzy-rss-feed.php:0
178
  msgid "2.2"
179
  msgstr "2.2"
180
 
181
+ # @ feedzy-rss-feeds
182
  #: feedzy-rss-feeds-shortcode.php:289
183
  msgid "Posted"
184
  msgstr "投稿日"
185
 
186
+ # @ feedzy-rss-feeds
187
  #: feedzy-rss-feeds-shortcode.php:294
188
  msgid "by"
189
  msgstr "by"
languages/{feedzy_rss_translate-sr_RS.mo → feedzy-rss-feeds-sr_RS.mo} RENAMED
File without changes
languages/{feedzy_rss_translate-sr_RS.po → feedzy-rss-feeds-sr_RS.po} RENAMED
@@ -21,154 +21,154 @@ msgstr ""
21
  "X-Textdomain-Support: yes"
22
 
23
  #: feedzy-rss-feeds-shortcode.php:120
24
- #@ feedzy_rss_translate
25
  msgid "Sorry, this feed is currently unavailable or does not exists anymore."
26
  msgstr "Žao nam je, ovo polje trenutno nije dostupno ili više ne postoji."
27
 
28
  #: feedzy-rss-feeds-shortcode.php:298
29
- #@ feedzy_rss_translate
30
  msgid "on"
31
  msgstr "na"
32
 
33
  #: feedzy-rss-feeds-shortcode.php:298
34
- #@ feedzy_rss_translate
35
  msgid "at"
36
  msgstr "u"
37
 
38
  #: feedzy-rss-feed.php:37
39
- #@ feedzy_rss_translate
40
  msgid "Documentation and examples"
41
  msgstr "Dokumentacija i primeri"
42
 
43
  #: feedzy-rss-feed.php:38
44
- #@ feedzy_rss_translate
45
  msgid "More b*web Plugins"
46
  msgstr "Više b*web Plugin-ova"
47
 
48
  #: feedzy-rss-feeds-ui-lang.php:19
49
- #@ feedzy_rss_translate
50
  msgid "Insert FEEDZY RSS Feeds Shortcode"
51
  msgstr "Unesite FEEDZY RSS Feeds Shortcode"
52
 
53
  #: feedzy-rss-feeds-ui-lang.php:21
54
  #: feedzy-rss-feeds-widget.php:69
55
- #@ feedzy_rss_translate
56
  msgid "Number of items to display."
57
  msgstr "Broj stavki za prikazivanje"
58
 
59
  #: feedzy-rss-feeds-ui-lang.php:23
60
  #: feedzy-rss-feeds-widget.php:73
61
- #@ feedzy_rss_translate
62
  msgid "Links may be opened in the same window or a new tab."
63
  msgstr "Linkovi mogu biti otvoreni u istom prozoru ili u novom tabulatoru."
64
 
65
  #: feedzy-rss-feeds-ui-lang.php:24
66
  #: feedzy-rss-feeds-widget.php:84
67
- #@ feedzy_rss_translate
68
  msgid "Trim the title of the item after X characters."
69
  msgstr "Skratite naslov stavke posle X karaktera."
70
 
71
  #: feedzy-rss-feeds-ui-lang.php:25
72
  #: feedzy-rss-feeds-widget.php:89
73
- #@ feedzy_rss_translate
74
  msgid "Should we display the date of publication and the author name?"
75
  msgstr "Treba li da prikažemo datum publikacije i ime autora?"
76
 
77
  #: feedzy-rss-feeds-ui-lang.php:26
78
  #: feedzy-rss-feeds-widget.php:93
79
- #@ feedzy_rss_translate
80
  msgid "Should we display a description (abstract) of the retrieved item?"
81
  msgstr "Treba li da prikažemo opis (siže) dobavljene stavke?"
82
 
83
  #: feedzy-rss-feeds-ui-lang.php:27
84
  #: feedzy-rss-feeds-widget.php:96
85
- #@ feedzy_rss_translate
86
  msgid "Crop description (summary) of the element after X characters."
87
  msgstr "Kropuj opis (siže) elementa posle X karaktera."
88
 
89
  #: feedzy-rss-feeds-ui-lang.php:28
90
  #: feedzy-rss-feeds-widget.php:101
91
- #@ feedzy_rss_translate
92
  msgid "Should we display the first image of the content if it is available?"
93
  msgstr "Treba li da prikažemo prvu sliku sadržaja ako je raspoloživa?"
94
 
95
  #: feedzy-rss-feeds-ui-lang.php:29
96
  #: feedzy-rss-feeds-widget.php:104
97
- #@ feedzy_rss_translate
98
  msgid "Default thumbnail URL if no image is found."
99
  msgstr "URL podrazumevane sličice ako nije pronađena nijedna slika."
100
 
101
  #: feedzy-rss-feeds-ui-lang.php:30
102
  #: feedzy-rss-feeds-widget.php:108
103
- #@ feedzy_rss_translate
104
  msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
105
  msgstr "Dimenzije sličice. Nemojte unositi \"px\". Npr. 150"
106
 
107
  #: feedzy-rss-feeds-ui-lang.php:31
108
  #: feedzy-rss-feeds-widget.php:112
109
- #@ feedzy_rss_translate
110
  msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
111
  msgstr "Prikaži stavku samo ako naslov sadrži specifične ključne reči (odvojene zarezima/osetljive na velika i mala slova)."
112
 
113
  #: feedzy-rss-feeds-ui-lang.php:32
114
- #@ feedzy_rss_translate
115
  msgid "Do not specify"
116
  msgstr "Nemoj određivati"
117
 
118
  #: feedzy-rss-feeds-ui-lang.php:33
119
- #@ feedzy_rss_translate
120
  msgid "No"
121
  msgstr "Ne"
122
 
123
  #: feedzy-rss-feeds-ui-lang.php:34
124
- #@ feedzy_rss_translate
125
  msgid "Yes"
126
  msgstr "Da"
127
 
128
  #: feedzy-rss-feeds-ui-lang.php:20
129
  #: feedzy-rss-feeds-widget.php:65
130
- #@ feedzy_rss_translate
131
  msgid "The feed(s) URL (comma-separated list)."
132
  msgstr "URL feed-ova (odvojenih zarezima ako je lista)."
133
 
134
  #: feedzy-rss-feeds-ui-lang.php:22
135
- #@ feedzy_rss_translate
136
  msgid "Should we display the RSS title?"
137
  msgstr "Treba li da prikažemo RSS naslov?"
138
 
139
  #. translators: plugin header field 'Name'
140
  #: feedzy-rss-feed.php:0
141
- #@ feedzy_rss_translate
142
  msgid "FEEDZY RSS Feeds by b*web"
143
  msgstr "FEEDZY RSS Feeds, autor b*web"
144
 
145
  #. translators: plugin header field 'Description'
146
  #: feedzy-rss-feed.php:0
147
- #@ feedzy_rss_translate
148
  msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
149
  msgstr "FEEDZY RSS Feeds je mali i lagan plugin. Brz i jednostavan za upotrebu, sakuplja RSS feed-ove na vaš WordPress site uz pomoć jednostavnih shortcode-ova."
150
 
151
  #. translators: plugin header field 'Author'
152
  #: feedzy-rss-feed.php:0
153
- #@ feedzy_rss_translate
154
  msgid "Brice CAPOBIANCO"
155
  msgstr "Brice CAPOBIANCO"
156
 
157
  #. translators: plugin header field 'AuthorURI'
158
  #: feedzy-rss-feed.php:0
159
- #@ feedzy_rss_translate
160
  msgid "http://b-website.com/"
161
  msgstr "http://b-website.com/"
162
 
163
  #. translators: plugin header field 'PluginURI'
164
  #: feedzy-rss-feed.php:0
165
- #@ feedzy_rss_translate
166
  msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
167
  msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
168
 
169
  #. translators: plugin header field 'Version'
170
  #: feedzy-rss-feed.php:0
171
- #@ feedzy_rss_translate
172
  msgid "2.2.1"
173
  msgstr ""
174
 
@@ -178,12 +178,12 @@ msgid "Donate to this plugin &#187;"
178
  msgstr ""
179
 
180
  #: feedzy-rss-feeds-shortcode.php:289
181
- #@ feedzy_rss_translate
182
  msgid "Posted"
183
  msgstr "Objavljeno"
184
 
185
  #: feedzy-rss-feeds-shortcode.php:294
186
- #@ feedzy_rss_translate
187
  msgid "by"
188
  msgstr "po"
189
 
@@ -193,12 +193,12 @@ msgid "Feedzy RSS Feeds"
193
  msgstr ""
194
 
195
  #: feedzy-rss-feeds-widget.php:57
196
- #@ feedzy_rss_translate
197
  msgid "Widget Title"
198
  msgstr "dodatak Naslov"
199
 
200
  #: feedzy-rss-feeds-widget.php:61
201
- #@ feedzy_rss_translate
202
  msgid "Intro text"
203
  msgstr "Uvodni tekst"
204
 
21
  "X-Textdomain-Support: yes"
22
 
23
  #: feedzy-rss-feeds-shortcode.php:120
24
+ #@ feedzy-rss-feeds
25
  msgid "Sorry, this feed is currently unavailable or does not exists anymore."
26
  msgstr "Žao nam je, ovo polje trenutno nije dostupno ili više ne postoji."
27
 
28
  #: feedzy-rss-feeds-shortcode.php:298
29
+ #@ feedzy-rss-feeds
30
  msgid "on"
31
  msgstr "na"
32
 
33
  #: feedzy-rss-feeds-shortcode.php:298
34
+ #@ feedzy-rss-feeds
35
  msgid "at"
36
  msgstr "u"
37
 
38
  #: feedzy-rss-feed.php:37
39
+ #@ feedzy-rss-feeds
40
  msgid "Documentation and examples"
41
  msgstr "Dokumentacija i primeri"
42
 
43
  #: feedzy-rss-feed.php:38
44
+ #@ feedzy-rss-feeds
45
  msgid "More b*web Plugins"
46
  msgstr "Više b*web Plugin-ova"
47
 
48
  #: feedzy-rss-feeds-ui-lang.php:19
49
+ #@ feedzy-rss-feeds
50
  msgid "Insert FEEDZY RSS Feeds Shortcode"
51
  msgstr "Unesite FEEDZY RSS Feeds Shortcode"
52
 
53
  #: feedzy-rss-feeds-ui-lang.php:21
54
  #: feedzy-rss-feeds-widget.php:69
55
+ #@ feedzy-rss-feeds
56
  msgid "Number of items to display."
57
  msgstr "Broj stavki za prikazivanje"
58
 
59
  #: feedzy-rss-feeds-ui-lang.php:23
60
  #: feedzy-rss-feeds-widget.php:73
61
+ #@ feedzy-rss-feeds
62
  msgid "Links may be opened in the same window or a new tab."
63
  msgstr "Linkovi mogu biti otvoreni u istom prozoru ili u novom tabulatoru."
64
 
65
  #: feedzy-rss-feeds-ui-lang.php:24
66
  #: feedzy-rss-feeds-widget.php:84
67
+ #@ feedzy-rss-feeds
68
  msgid "Trim the title of the item after X characters."
69
  msgstr "Skratite naslov stavke posle X karaktera."
70
 
71
  #: feedzy-rss-feeds-ui-lang.php:25
72
  #: feedzy-rss-feeds-widget.php:89
73
+ #@ feedzy-rss-feeds
74
  msgid "Should we display the date of publication and the author name?"
75
  msgstr "Treba li da prikažemo datum publikacije i ime autora?"
76
 
77
  #: feedzy-rss-feeds-ui-lang.php:26
78
  #: feedzy-rss-feeds-widget.php:93
79
+ #@ feedzy-rss-feeds
80
  msgid "Should we display a description (abstract) of the retrieved item?"
81
  msgstr "Treba li da prikažemo opis (siže) dobavljene stavke?"
82
 
83
  #: feedzy-rss-feeds-ui-lang.php:27
84
  #: feedzy-rss-feeds-widget.php:96
85
+ #@ feedzy-rss-feeds
86
  msgid "Crop description (summary) of the element after X characters."
87
  msgstr "Kropuj opis (siže) elementa posle X karaktera."
88
 
89
  #: feedzy-rss-feeds-ui-lang.php:28
90
  #: feedzy-rss-feeds-widget.php:101
91
+ #@ feedzy-rss-feeds
92
  msgid "Should we display the first image of the content if it is available?"
93
  msgstr "Treba li da prikažemo prvu sliku sadržaja ako je raspoloživa?"
94
 
95
  #: feedzy-rss-feeds-ui-lang.php:29
96
  #: feedzy-rss-feeds-widget.php:104
97
+ #@ feedzy-rss-feeds
98
  msgid "Default thumbnail URL if no image is found."
99
  msgstr "URL podrazumevane sličice ako nije pronađena nijedna slika."
100
 
101
  #: feedzy-rss-feeds-ui-lang.php:30
102
  #: feedzy-rss-feeds-widget.php:108
103
+ #@ feedzy-rss-feeds
104
  msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
105
  msgstr "Dimenzije sličice. Nemojte unositi \"px\". Npr. 150"
106
 
107
  #: feedzy-rss-feeds-ui-lang.php:31
108
  #: feedzy-rss-feeds-widget.php:112
109
+ #@ feedzy-rss-feeds
110
  msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
111
  msgstr "Prikaži stavku samo ako naslov sadrži specifične ključne reči (odvojene zarezima/osetljive na velika i mala slova)."
112
 
113
  #: feedzy-rss-feeds-ui-lang.php:32
114
+ #@ feedzy-rss-feeds
115
  msgid "Do not specify"
116
  msgstr "Nemoj određivati"
117
 
118
  #: feedzy-rss-feeds-ui-lang.php:33
119
+ #@ feedzy-rss-feeds
120
  msgid "No"
121
  msgstr "Ne"
122
 
123
  #: feedzy-rss-feeds-ui-lang.php:34
124
+ #@ feedzy-rss-feeds
125
  msgid "Yes"
126
  msgstr "Da"
127
 
128
  #: feedzy-rss-feeds-ui-lang.php:20
129
  #: feedzy-rss-feeds-widget.php:65
130
+ #@ feedzy-rss-feeds
131
  msgid "The feed(s) URL (comma-separated list)."
132
  msgstr "URL feed-ova (odvojenih zarezima ako je lista)."
133
 
134
  #: feedzy-rss-feeds-ui-lang.php:22
135
+ #@ feedzy-rss-feeds
136
  msgid "Should we display the RSS title?"
137
  msgstr "Treba li da prikažemo RSS naslov?"
138
 
139
  #. translators: plugin header field 'Name'
140
  #: feedzy-rss-feed.php:0
141
+ #@ feedzy-rss-feeds
142
  msgid "FEEDZY RSS Feeds by b*web"
143
  msgstr "FEEDZY RSS Feeds, autor b*web"
144
 
145
  #. translators: plugin header field 'Description'
146
  #: feedzy-rss-feed.php:0
147
+ #@ feedzy-rss-feeds
148
  msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
149
  msgstr "FEEDZY RSS Feeds je mali i lagan plugin. Brz i jednostavan za upotrebu, sakuplja RSS feed-ove na vaš WordPress site uz pomoć jednostavnih shortcode-ova."
150
 
151
  #. translators: plugin header field 'Author'
152
  #: feedzy-rss-feed.php:0
153
+ #@ feedzy-rss-feeds
154
  msgid "Brice CAPOBIANCO"
155
  msgstr "Brice CAPOBIANCO"
156
 
157
  #. translators: plugin header field 'AuthorURI'
158
  #: feedzy-rss-feed.php:0
159
+ #@ feedzy-rss-feeds
160
  msgid "http://b-website.com/"
161
  msgstr "http://b-website.com/"
162
 
163
  #. translators: plugin header field 'PluginURI'
164
  #: feedzy-rss-feed.php:0
165
+ #@ feedzy-rss-feeds
166
  msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
167
  msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
168
 
169
  #. translators: plugin header field 'Version'
170
  #: feedzy-rss-feed.php:0
171
+ #@ feedzy-rss-feeds
172
  msgid "2.2.1"
173
  msgstr ""
174
 
178
  msgstr ""
179
 
180
  #: feedzy-rss-feeds-shortcode.php:289
181
+ #@ feedzy-rss-feeds
182
  msgid "Posted"
183
  msgstr "Objavljeno"
184
 
185
  #: feedzy-rss-feeds-shortcode.php:294
186
+ #@ feedzy-rss-feeds
187
  msgid "by"
188
  msgstr "po"
189
 
193
  msgstr ""
194
 
195
  #: feedzy-rss-feeds-widget.php:57
196
+ #@ feedzy-rss-feeds
197
  msgid "Widget Title"
198
  msgstr "dodatak Naslov"
199
 
200
  #: feedzy-rss-feeds-widget.php:61
201
+ #@ feedzy-rss-feeds
202
  msgid "Intro text"
203
  msgstr "Uvodni tekst"
204
 
languages/{feedzy_rss_translate.pot → feedzy-rss-feeds.pot} RENAMED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the GPL-2.0+.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Feedzy RSS Feeds Lite 3.0.0\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/feedzy-rss-feeds/issues\n"
7
- "POT-Creation-Date: 2017-01-03 11:20:13+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
2
  # This file is distributed under the GPL-2.0+.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Feedzy RSS Feeds Lite 3.0.1\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/feedzy-rss-feeds/issues\n"
7
+ "POT-Creation-Date: 2017-01-05 11:01:55+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
readme.txt CHANGED
@@ -128,6 +128,9 @@ You have to check first if your feed is valid. Please test it here: https://vali
128
 
129
  == Changelog ==
130
 
 
 
 
131
  = 3.0.0 - 10/11/2016 =
132
  * Refactored code base from 2.8.1 to OOP style
133
  * Added support for PRO version
128
 
129
  == Changelog ==
130
 
131
+ = 3.0.1 - 05/01/2017 =
132
+ * Fixed html markup error which was breaking user websites
133
+
134
  = 3.0.0 - 10/11/2016 =
135
  * Refactored code base from 2.8.1 to OOP style
136
  * Added support for PRO version
vendor/themeisle/inc/base.php ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! class_exists( "THEMEISLE_SDK" ) ) :
3
+ class THEMEISLE_SDK {
4
+
5
+ /**
6
+ * @var string $product_slug Should contain the product slug
7
+ */
8
+ public $product_slug;
9
+
10
+ /**
11
+ * @var string $product_version Should contain the product version string
12
+ */
13
+ public $product_version;
14
+
15
+ /**
16
+ * @var string $product_name Should contain the product name string
17
+ */
18
+ public $product_name;
19
+
20
+ /**
21
+ * @var string $store_url Should contain the store url to check agains updates
22
+ */
23
+ public $store_url;
24
+
25
+ /**
26
+ * @var string $store_name Should contain the store name to check agains updates
27
+ */
28
+ public $store_name;
29
+
30
+ /**
31
+ * @var string $product_type Should contain the product type, either theme or plugin
32
+ */
33
+ public $product_type;
34
+
35
+ /**
36
+ * @var bool $wordpress_available Either is available on wordpress or not
37
+ */
38
+ public $wordpress_available;
39
+
40
+ /**
41
+ * @var bool $activation Either is requiring license activation or not
42
+ */
43
+ public $paid;
44
+
45
+ /**
46
+ * @var bool $product_data Product metadata and basename file for plugins
47
+ */
48
+ public $product_data;
49
+
50
+ public function __construct( $data = array() ) {
51
+ $data = $data["product_data"];
52
+ $args = wp_parse_args( $data, array(
53
+ 'store_url' => '',
54
+ 'store_name' => '',
55
+ 'product_slug' => '',
56
+ 'product_type' => 'theme',
57
+ 'wordpress_available' => false,
58
+ 'paid' => false,
59
+ ) );
60
+ $this->product_slug = $args['product_slug'];
61
+ $this->store_url = $args['store_url'];
62
+ $this->store_name = $args['store_name'];
63
+ $this->paid = ( bool ) $args['paid'] ;
64
+ $this->wordpress_available = ( bool ) $args['wordpress_available'] ;
65
+ $this->product_type = in_array( $args['product_type'], array(
66
+ 'theme',
67
+ 'plugin'
68
+ ) ) ? $args['product_type'] : "";
69
+ if ( empty( $this->product_type ) ) {
70
+ return false;
71
+ }
72
+ if ( $this->product_type === "theme" ) {
73
+ $this->product_data = wp_get_theme( $this->product_slug );
74
+ $this->product_version = $this->product_data->get( "Version" );
75
+ $this->product_name = $this->product_data->get( "Name" );
76
+
77
+ }
78
+ if ( $this->product_type === 'plugin' ) {
79
+ $this->product_data = $this->get_plugin_data( $this->product_slug );
80
+ $this->product_version = $this->product_data["data"]['Version'];
81
+ $this->product_name = $this->product_data["data"]['Name'];
82
+ }
83
+ if ( ! $this->wordpress_available ) {
84
+ $logger = new THEMEISLE_LOGGER( $this->product_slug, $this->product_version );
85
+ $logger->start();
86
+ $licenser = new THEMEISLE_LICENSE( $this->product_name, $this->product_slug, $this->product_version, $this->product_type, $this->paid, $this->store_url, $this->product_data, $this->store_name );
87
+ $licenser->enable();
88
+ }
89
+
90
+ }
91
+
92
+ /**
93
+ * @param string $slug Slug of the plugin to get the information for
94
+ *
95
+ * @return mixed $metadata The plugin metadata
96
+ */
97
+ private function get_plugin_data( $slug ) {
98
+ if ( ! function_exists( 'get_plugins' ) ) {
99
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
100
+ }
101
+ $plugins = get_plugins();
102
+ foreach ( $plugins as $plugin_file => $plugin_data ) {
103
+ if ( strpos( $plugin_file, $slug ) !== false ) {
104
+ return array( "basename" => $plugin_file, "data" => $plugin_data );
105
+ }
106
+ }
107
+
108
+ }
109
+
110
+ }
111
+ endif;
vendor/themeisle/inc/license.php ADDED
@@ -0,0 +1,633 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! class_exists( 'THEMEISLE_LICENSE' ) ) :
3
+ /**
4
+ * Class THEMEISLE_LICENSE
5
+ *
6
+ * Used to update the themeisle products
7
+ */
8
+ class THEMEISLE_LICENSE extends THEMEISLE_SDK {
9
+
10
+ /**
11
+ * @var string $license_key The license key string
12
+ */
13
+ public $license_key;
14
+ /**
15
+ * @var string $store_url The store url where to check against the updates
16
+ */
17
+ public $store_url;
18
+ /**
19
+ * @var string $store_name The store name where to check against the updates
20
+ */
21
+ public $store_name;
22
+ /**
23
+ * @var string $product_type Either theme or plugin
24
+ */
25
+ public $product_type;
26
+ /**
27
+ * @var bool $paid Either it's a paid or free product
28
+ */
29
+ public $paid;
30
+ /**
31
+ * @var string $product_name The current product name
32
+ */
33
+ public $product_name;
34
+ /**
35
+ * @var string $product_slug The current product slug
36
+ */
37
+ public $product_slug;
38
+ /**
39
+ * @var string $product_version The current product version
40
+ */
41
+ public $product_version;
42
+ /**
43
+ * @var string $product_data The product metadata as well as the basename for plugins
44
+ */
45
+ public $product_data;
46
+
47
+ /**
48
+ * @var string $product_key The key used for transients
49
+ */
50
+ public $product_key;
51
+
52
+ /**
53
+ * @var string $product_normalized The normalized product name
54
+ */
55
+ public $product_normalized;
56
+
57
+ /**
58
+ * @var bool $do_check This ensures that the custom API request only runs on the second time that WP fires the update check
59
+ */
60
+ private $do_check = false;
61
+
62
+ public function __construct( $product_name, $product_slug, $product_version, $product_type, $paid, $store_url, $product_data, $store_name ) {
63
+ $this->product_version = $product_version;
64
+ $this->product_slug = $product_slug;
65
+ $this->product_name = $product_name;
66
+ $this->product_type = $product_type;
67
+ $this->store_url = $store_url;
68
+ $this->store_name = $store_name;
69
+ $this->paid = $paid;
70
+ $this->product_data = $product_data;
71
+ $this->product_key = $this->product_slug . '-update-response';
72
+ $this->product_normalized = THEMEISLE_LOGGER::key_ready_name( $this->product_slug );
73
+ if ( ! $this->paid ) {
74
+ $this->license_key = "free";
75
+ } else {
76
+ do_action($this->product_normalized . '_license_upgrade');
77
+ $license_data = get_option( $this->product_normalized . '_license_data', '' );
78
+ if ( $license_data !== '' ) {
79
+ $this->license_key = isset( $license_data->key ) ? $license_data->key : get_option( $this->product_normalized . '_license', '' );
80
+ } else {
81
+ $this->license_key = get_option( $this->product_normalized . '_license', '' );
82
+ }
83
+ $this->register_license_hooks();
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Register license hooks for the themeisle products
89
+ */
90
+ public function register_license_hooks() {
91
+ add_action( 'admin_init', array( $this, 'register_settings' ) );
92
+ add_action( 'admin_init', array( $this, 'activate_license' ) );
93
+ add_action( 'admin_init', array( $this, 'product_valid' ), 99999999 );
94
+ add_action( 'admin_notices', array( $this, 'show_notice' ) );
95
+ }
96
+
97
+ /**
98
+ * Register the setting for the license of the product
99
+ *
100
+ * @return bool
101
+ */
102
+ public function register_settings() {
103
+ if ( ! is_admin() ) {
104
+ return false;
105
+ }
106
+ add_settings_field(
107
+ $this->product_normalized . '_license',
108
+ $this->product_name . " license",
109
+ array( $this, 'license_view' ),
110
+ 'general'
111
+ );
112
+ }
113
+
114
+ /**
115
+ * The license view field
116
+ */
117
+ public function license_view() {
118
+ $status = $this->get_license_status();
119
+ $value = $this->license_key;
120
+ echo '<p ><input ' . ( ( $status === 'valid' ) ? ( 'style="border:1px solid #7ad03a; "' ) : '' ) . ' type="text" id="' . $this->product_normalized . '_license" name="' . $this->product_normalized . '_license" value="' . $value . '" /><a ' . ( ( $status === 'valid' ) ? ( 'style="color:#fff;background: #7ad03a; display: inline-block;text-decoration: none;font-size: 13px;line-height: 26px;height: 26px; margin-left:5px; padding: 0 10px 1px; -webkit-border-radius: 3px;border-radius: 3px; ">Valid' ) : ( 'style="color:#fff;background: #dd3d36; display: inline-block;text-decoration: none;font-size: 13px;line-height: 26px;height: 26px; margin-left:5px; padding: 0 10px 1px; -webkit-border-radius: 3px;border-radius: 3px; ">Invalid' ) ) . ' </a>&nbsp;&nbsp;&nbsp;<button name="' . $this->product_normalized . '_btn_trigger" ' . ( ( $status === 'valid' ) ? ( ' class="button button-primary">Deactivate' ) : ( ' class="button button-primary" value="yes" type="submit" >Activate' ) ) . ' </button></p><p class="description">Enter your license from <a href="' . $this->store_url . '">' . $this->store_name . '</a> purchase history in order to get ' . $this->product_type. ' updates</p>';
121
+
122
+ }
123
+
124
+ /** Return the license status
125
+ *
126
+ * @return mixed|void
127
+ */
128
+ public function get_license_status() {
129
+ $license_data = get_option( $this->product_normalized . '_license_data', '' );
130
+ if ( $license_data !== '' ) {
131
+ return isset( $license_data->license ) ? $license_data->license : get_option( $this->product_normalized . '_license_status', '' );
132
+ } else {
133
+ return get_option( $this->product_normalized . '_license_status', '' );
134
+ }
135
+
136
+ }
137
+
138
+ /**
139
+ * Check if the license is active or not
140
+ *
141
+ * @return bool
142
+ */
143
+ public function check_activation() {
144
+ $license_data = get_option( $this->product_normalized . '_license_data', '' );
145
+ if ( $license_data !== '' ) {
146
+ return isset( $license_data->error ) ? ( $license_data->error == 'no_activations_left' ) : false;
147
+ }
148
+
149
+ return false;
150
+ }
151
+
152
+ /**
153
+ * Check if the license is about to expire in the next month
154
+ *
155
+ * @return bool
156
+ */
157
+ function check_expiration() {
158
+ $license_data = get_option( $this->product_normalized . '_license_data', '' );
159
+ if ( $license_data !== '' ) {
160
+ if ( isset( $license_data->expires ) ) {
161
+ if ( strtotime( $license_data->expires ) - time() < 30 * 24 * 3600 ) {
162
+ return true;
163
+ }
164
+ }
165
+ }
166
+
167
+ return false;
168
+ }
169
+
170
+ /**
171
+ * Return the renew url from the store used
172
+ * @return string
173
+ */
174
+ function renew_url() {
175
+ $license_data = get_option( $this->product_normalized . '_license_data', '' );
176
+ if ( $license_data !== '' ) {
177
+ if ( isset( $license_data->download_id ) && isset( $license_data->key ) ) {
178
+ return $this->store_url . "/checkout/?edd_license_key=" . $license_data->key . "&download_id=" . $license_data->download_id;
179
+ }
180
+ }
181
+
182
+ return $this->store_url;
183
+ }
184
+
185
+ /**
186
+ * Check if we hide the notificatin nag or not
187
+ *
188
+ * @param $hide
189
+ *
190
+ * @return bool
191
+ */
192
+ function check_hide( $hide ) {
193
+ if ( isset( $_GET[ $this->product_normalized . '_hide_' . $hide ] ) ) {
194
+ if ( $_GET[ $this->product_normalized . '_hide_' . $hide ] === 'yes' ) {
195
+ update_option( $this->product_normalized . '_hide_' . $hide, "yes" );
196
+ return false;
197
+ }
198
+ } else {
199
+ $license = get_option( $this->product_normalized . '_hide_' . $hide, '' );;
200
+ if ( $license === 'yes' ) {
201
+ return false;
202
+ }
203
+ }
204
+
205
+ return true;
206
+ }
207
+
208
+ /**
209
+ * Show the admin notice regarding the license status
210
+ *
211
+ * @return bool
212
+ */
213
+ function show_notice() {
214
+ if ( ! is_admin() ) {
215
+ return false;
216
+ }
217
+ global $wp;
218
+ $status = $this->get_license_status();
219
+ $admin_url = admin_url( "options-general.php" );
220
+ if ( $status != 'valid' ) {
221
+ if ( $this->check_activation() ) {
222
+ if ( $this->check_hide( 'activation' ) ) {
223
+ ?>
224
+ <div class="error">
225
+ <p><strong>No activations left for <?php echo $this->product_name; ?> !!!. You need to
226
+ upgrade your plan in order to use <?php echo $this->product_name; ?> on more
227
+ websites. Please ask the <a href="<?php echo $this->store_url; ?>"
228
+ target="_blank"><?php echo $this->store_name; ?> </a>
229
+ Staff for more details.</strong>| <a
230
+ href="<?php echo add_query_arg( $this->product_normalized . "_activation", "yes" ); ?> ">Hide
231
+ Notice</a></p>
232
+ </div>
233
+ <?php
234
+ return false;
235
+ }
236
+ }
237
+ ?>
238
+ <?php if ( $this->check_hide( 'valid' ) ): ?>
239
+ <div class="error">
240
+ <p><strong>In order to benefit from updates and support
241
+ for <?php echo $this->product_name; ?> <?php echo $this->product_type; ?>, please add
242
+ your license code from your <a
243
+ href="<?php echo $this->store_url; ?>" target="_blank">purchase history</a> and
244
+ validate it <a
245
+ href="<?php echo admin_url( "options-general.php" ); ?>#<?php echo $this->product_normalized; ?>_license">here</a>
246
+ </strong>| <a
247
+ href="<?php echo add_query_arg( $this->product_normalized . "_hide_valid", "yes" ); ?> ">Hide
248
+ Notice</a></p>
249
+ </div>
250
+ <?php endif; ?>
251
+ <?php
252
+ } else {
253
+ if ( $this->check_expiration() ) {
254
+ if ( $this->check_hide( 'expiration' ) ) {
255
+ ?>
256
+ <div class="update-nag">
257
+ <p><strong>Your license is about to expire
258
+ for <?php echo $this->product_name; ?> <?php echo $this->product_type; ?> !!!.
259
+ You can go to <a
260
+ href="<?php echo $this->renew_url(); ?>"
261
+ target="_blank"><?php echo $this->store_name; ?></a> and renew it.</strong>| <a
262
+ href="<?php echo add_query_arg( $this->product_normalized . "_hide_expiration", "yes" ); ?> ">Hide
263
+ Notice</a></p>
264
+ </div>
265
+ <?php
266
+ }
267
+ }
268
+ }
269
+ }
270
+
271
+ public function product_valid( $force = false ) {
272
+ if ( false === ( $license = get_transient( $this->product_normalized . '_license_data' ) ) ) {
273
+ $license = $this->check_license();
274
+ set_transient( $this->product_normalized . '_license_data', $license, 12 * HOUR_IN_SECONDS );
275
+ update_option( $this->product_normalized . '_license_data', $license );
276
+ }
277
+
278
+ }
279
+
280
+ /**
281
+ * Check the license status
282
+ * @return array|mixed|object|stdClass
283
+ */
284
+ public function check_license() {
285
+ $status = $this->get_license_status();
286
+ if ( $status != "valid" ) {
287
+ $license_data = new stdClass();
288
+ $license_data->license = "invalid";
289
+
290
+ return $license_data;
291
+ }
292
+ $license = trim( $this->license_key );
293
+ $api_params = array(
294
+ 'edd_action' => 'check_license',
295
+ 'license' => $license,
296
+ 'item_name' => urlencode( $this->product_name ),
297
+ 'url' => urlencode(home_url())
298
+ );
299
+ // Call the custom API.
300
+ $response = wp_remote_get( add_query_arg( $api_params, $this->store_url ), array(
301
+ 'timeout' => 15,
302
+ 'sslverify' => false
303
+ ) );
304
+ if ( is_wp_error( $response ) ) {
305
+ $license_data = new stdClass();
306
+ $license_data->license = "valid";
307
+
308
+ } else {
309
+ $license_data = json_decode( wp_remote_retrieve_body( $response ) );
310
+ if ( ! is_object( $license_data ) ) {
311
+ $license_data = new stdClass();
312
+ $license_data->license = "valid";
313
+ }
314
+ }
315
+ $license_old = get_option( $this->product_normalized . '_license_data', '' );
316
+ if ( isset( $license_old->hide_valid ) ) {
317
+ $license_data->hide_valid = true;
318
+ }
319
+ if ( ! isset( $license_data->key ) ) {
320
+ $license_data->key = isset( $license_old->key ) ? $license_old->key : "";
321
+ }
322
+ if ( isset( $license_old->hide_expiration ) ) {
323
+ $license_data->hide_expiration = true;
324
+ }
325
+ if ( isset( $license_old->hide_activation ) ) {
326
+ $license_data->hide_activation = true;
327
+ }
328
+
329
+ return $license_data;
330
+
331
+ }
332
+
333
+ /**
334
+ * Activate the license remotely
335
+ */
336
+ function activate_license() {
337
+ // listen for our activate button to be clicked
338
+ if ( isset( $_POST[ $this->product_normalized . '_btn_trigger' ] ) ) {
339
+ $status = $this->get_license_status();
340
+ // retrieve the license from the database
341
+ $license = $_POST[ $this->product_normalized . '_license' ];
342
+ if ( $status != "valid" ) {
343
+ // data to send in our API request
344
+ $api_params = array(
345
+ 'edd_action' => 'activate_license',
346
+ 'license' => $license,
347
+ 'item_name' => urlencode( $this->product_name ),
348
+ 'url' => urlencode(home_url())
349
+ );
350
+ } else {
351
+ $api_params = array(
352
+ 'edd_action' => 'deactivate_license',
353
+ 'license' => $license,
354
+ 'item_name' => urlencode( $this->product_name ),
355
+ 'url' => urlencode(home_url())
356
+ );
357
+ }
358
+ // Call the custom API.
359
+ $response = wp_remote_get( add_query_arg( $api_params, $this->store_url ) );
360
+ // make sure the response came back okay
361
+ if ( is_wp_error( $response ) ) {
362
+ $license_data = new stdClass();
363
+ $license_data->license = ( $status != "valid" ) ? "valid" : "invalid";
364
+
365
+ } else {
366
+ $license_data = json_decode( wp_remote_retrieve_body( $response ) );
367
+ if ( ! is_object( $license_data ) ) {
368
+ $license_data = new stdClass();
369
+ $license_data->license = ( $status != "valid" ) ? "valid" : "invalid";
370
+ }
371
+ }
372
+ if ( ! isset( $license_data->key ) ) {
373
+ $license_data->key = $license;
374
+ }
375
+ if ( isset( $license_data->plan ) ) {
376
+ update_option( $this->product_normalized . '_license_plan', $license_data->plan );
377
+ }
378
+ update_option( $this->product_normalized . '_license_data', $license_data );
379
+ delete_transient( $this->product_normalized . '_license_data' );
380
+ set_transient( $this->product_normalized . '_license_data', $license_data, 12 * HOUR_IN_SECONDS );
381
+
382
+ }
383
+ }
384
+
385
+ /**
386
+ * Enable the license system
387
+ */
388
+ public function enable() {
389
+ if ( $this->product_type == 'plugin' ) {
390
+ add_filter( 'pre_set_site_transient_update_plugins', array(
391
+ $this,
392
+ 'pre_set_site_transient_update_plugins_filter'
393
+ ) );
394
+ add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
395
+ add_filter( 'http_request_args', array( $this, 'http_request_args' ), 10, 2 );
396
+ }
397
+ if ( $this->product_type == 'theme' ) {
398
+ add_filter( 'site_transient_update_themes', array( &$this, 'theme_update_transient' ) );
399
+ add_filter( 'delete_site_transient_update_themes', array( &$this, 'delete_theme_update_transient' ) );
400
+ add_action( 'load-update-core.php', array( &$this, 'delete_theme_update_transient' ) );
401
+ add_action( 'load-themes.php', array( &$this, 'delete_theme_update_transient' ) );
402
+ add_action( 'load-themes.php', array( &$this, 'load_themes_screen' ) );
403
+
404
+ }
405
+
406
+ }
407
+
408
+ /**
409
+ * Load the Themes screen
410
+ */
411
+ function load_themes_screen() {
412
+ add_thickbox();
413
+ add_action( 'admin_notices', array( &$this, 'update_nag' ) );
414
+ }
415
+
416
+ /**
417
+ * Alter the nag for themes update
418
+ */
419
+ function update_nag() {
420
+ $theme = wp_get_theme( $this->product_slug );
421
+ $api_response = get_transient( $this->product_key );
422
+ if ( false === $api_response ) {
423
+ return;
424
+ }
425
+ $update_url = wp_nonce_url( 'update.php?action=upgrade-theme&amp;theme=' . urlencode( $this->product_slug ), 'upgrade-theme_' . $this->product_slug );
426
+ $update_onclick = ' onclick="if ( confirm(\'' . esc_js( __( "Updating this theme will lose any customizations you have made. 'Cancel' to stop, 'OK' to update." ) ) . '\') ) {return true;}return false;"';
427
+ if ( version_compare( $this->product_version, $api_response->new_version, '<' ) ) {
428
+ echo '<div id="update-nag">';
429
+ printf( '<strong>%1$s %2$s</strong> is available. <a href="%3$s" class="thickbox" title="%4s">Check out what\'s new</a> or <a href="%5$s"%6$s>update now</a>.',
430
+ $theme->get( 'Name' ),
431
+ $api_response->new_version,
432
+ '#TB_inline?width=640&amp;inlineId=' . $this->product_version . '_changelog',
433
+ $theme->get( 'Name' ),
434
+ $update_url,
435
+ $update_onclick
436
+ );
437
+ echo '</div>';
438
+ echo '<div id="' . $this->product_slug . '_' . 'changelog" style="display:none;">';
439
+ echo wpautop( $api_response->sections['changelog'] );
440
+ echo '</div>';
441
+ }
442
+ }
443
+
444
+ /**
445
+ * @param mixed $value the transient data
446
+ *
447
+ * @return mixed
448
+ */
449
+ function theme_update_transient( $value ) {
450
+ $update_data = $this->check_for_update();
451
+ if ( $update_data ) {
452
+ $value->response[ $this->product_slug ] = $update_data;
453
+ }
454
+
455
+ return $value;
456
+ }
457
+
458
+ /**
459
+ * Delete the update transient
460
+ */
461
+ function delete_theme_update_transient() {
462
+ delete_transient( $this->product_key );
463
+ }
464
+
465
+ /**
466
+ * Check for updates
467
+ *
468
+ * @return array|bool Either the update data or false in case of failure
469
+ */
470
+ function check_for_update() {
471
+ $theme = wp_get_theme( $this->product_slug );
472
+ $update_data = get_transient( $this->product_key );
473
+ if ( false === $update_data ) {
474
+ $failed = false;
475
+ if ( empty( $this->license_key ) ) {
476
+ return false;
477
+ }
478
+ $api_params = array(
479
+ 'edd_action' => 'get_version',
480
+ 'version' => $this->product_version,
481
+ 'license' => $this->license_key,
482
+ 'name' => $this->product_name,
483
+ 'slug' => $this->product_slug,
484
+ 'author' => $this->store_name,
485
+ 'url' => urlencode(home_url())
486
+ );
487
+ $response = wp_remote_post( $this->store_url, array(
488
+ 'timeout' => 15,
489
+ 'sslverify' => false,
490
+ 'body' => $api_params
491
+ ) );
492
+ // make sure the response was successful
493
+ if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
494
+ $failed = true;
495
+ }
496
+ $update_data = json_decode( wp_remote_retrieve_body( $response ) );
497
+ if ( ! is_object( $update_data ) ) {
498
+ $failed = true;
499
+ }
500
+ // if the response failed, try again in 30 minutes
501
+ if ( $failed ) {
502
+ $data = new stdClass;
503
+ $data->new_version = $this->product_version;
504
+ set_transient( $this->product_key, $data, strtotime( '+30 minutes' ) );
505
+
506
+ return false;
507
+ }
508
+ // if the status is 'ok', return the update arguments
509
+ if ( ! $failed ) {
510
+ $update_data->sections = maybe_unserialize( $update_data->sections );
511
+ set_transient( $this->product_key, $update_data, strtotime( '+12 hours' ) );
512
+ }
513
+ }
514
+ if ( version_compare( $this->product_version, $update_data->new_version, '>=' ) ) {
515
+ return false;
516
+ }
517
+
518
+ return (array) $update_data;
519
+ }
520
+
521
+ /**
522
+ * Check for Updates at the defined API endpoint and modify the update array.
523
+ *
524
+ * This function dives into the update API just when WordPress creates its update array,
525
+ * then adds a custom API call and injects the custom plugin data retrieved from the API.
526
+ * It is reassembled from parts of the native WordPress plugin update code.
527
+ * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
528
+ *
529
+ * @uses api_request()
530
+ *
531
+ * @param array $_transient_data Update array build by WordPress.
532
+ *
533
+ * @return array Modified update array with custom plugin data.
534
+ */
535
+ public function pre_set_site_transient_update_plugins_filter( $_transient_data ) {
536
+ if ( empty( $_transient_data ) || ! $this->do_check ) {
537
+ $this->do_check = true;
538
+
539
+ return $_transient_data;
540
+ }
541
+ $api_response = $this->api_request();
542
+ if ( false !== $api_response && is_object( $api_response ) && isset( $api_response->new_version ) ) {
543
+ if ( version_compare( $this->product_version, $api_response->new_version, '<' ) ) {
544
+ $_transient_data->response[ $this->product_data["basename"] ] = $api_response;
545
+ }
546
+ }
547
+
548
+ return $_transient_data;
549
+ }
550
+
551
+ /**
552
+ * Calls the API and, if successfull, returns the object delivered by the API.
553
+ *
554
+ * @uses get_bloginfo()
555
+ * @uses wp_remote_post()
556
+ * @uses is_wp_error()
557
+ *
558
+ * @param string $_action The requested action.
559
+ * @param array $_data Parameters for the API action.
560
+ *
561
+ * @return false||object
562
+ */
563
+ private function api_request( $_action = "", $_data = "" ) {
564
+ if ( empty( $this->license_key ) ) {
565
+ return;
566
+ }
567
+ $api_params = array(
568
+ 'edd_action' => 'get_version',
569
+ 'license' => $this->license_key,
570
+ 'name' => urlencode( $this->product_name ),
571
+ 'slug' => urlencode( $this->product_slug ),
572
+ 'author' => $this->store_name,
573
+ 'url' => urlencode(home_url())
574
+ );
575
+ $request = wp_remote_post( $this->store_url, array(
576
+ 'timeout' => 15,
577
+ 'sslverify' => false,
578
+ 'body' => $api_params
579
+ ) );
580
+ if ( ! is_wp_error( $request ) ):
581
+ $request = json_decode( wp_remote_retrieve_body( $request ) );
582
+ if ( $request && isset( $request->sections ) ) {
583
+ $request->sections = maybe_unserialize( $request->sections );
584
+ }
585
+
586
+ return $request;
587
+ else:
588
+ return false;
589
+ endif;
590
+ }
591
+
592
+ /**
593
+ * Updates information on the "View version x.x details" page with custom data.
594
+ *
595
+ * @uses api_request()
596
+ *
597
+ * @param mixed $_data
598
+ * @param string $_action
599
+ * @param object $_args
600
+ *
601
+ * @return object $_data
602
+ */
603
+ public function plugins_api_filter( $_data, $_action = '', $_args = null ) {
604
+ if ( ( $_action != 'plugin_information' ) || ! isset( $_args->slug ) || ( $_args->slug != $this->product_slug ) ) {
605
+ return $_data;
606
+ }
607
+ $api_response = $this->api_request();
608
+ if ( false !== $api_response ) {
609
+ $_data = $api_response;
610
+ }
611
+
612
+ return $_data;
613
+ }
614
+
615
+ /**
616
+ * Disable SSL verification in order to prevent download update failures
617
+ *
618
+ * @param array $args
619
+ * @param string $url
620
+ *
621
+ * @return object $array
622
+ */
623
+ function http_request_args( $args, $url ) {
624
+ // If it is an https request and we are performing a package download, disable ssl verification
625
+ if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
626
+ $args['sslverify'] = false;
627
+ }
628
+
629
+ return $args;
630
+ }
631
+
632
+ }
633
+ endif;
vendor/themeisle/inc/log.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! class_exists( "THEMEISLE_LOGGER" ) ) :
3
+ /**
4
+ * Class THEMEISLE_LOGGER
5
+ *
6
+ * Send the statistics to the Themeisle Endpoint
7
+ */
8
+ /**
9
+ * Class THEMEISLE_LOGGER
10
+ */
11
+ class THEMEISLE_LOGGER {
12
+
13
+ /**
14
+ * @var string $logging_url Url where to send the logs
15
+ */
16
+ private $logging_url = 'http://mirror.themeisle.com';
17
+
18
+ /**
19
+ * @var string $product_slug Slug of the product
20
+ */
21
+ private $product_slug;
22
+
23
+ /**
24
+ * @var string $product_version Version of the product
25
+ */
26
+ private $product_version;
27
+
28
+ /**
29
+ * @var string $product_cron Cron name handler
30
+ */
31
+ private $product_cron;
32
+
33
+ public function __construct( $slug, $version ) {
34
+ $this->product_slug = $slug;
35
+ $this->product_version = $version;
36
+ $this->product_cron = self::key_ready_name( $this->product_slug ) . "_log_activity";
37
+ }
38
+
39
+ /**
40
+ * @param string $string the String to be normalized for cron handler
41
+ *
42
+ * @return string $name the normalized string
43
+ */
44
+ static function key_ready_name( $string ) {
45
+ return str_replace( "-", "_", strtolower( trim( $string ) ) );
46
+ }
47
+
48
+ /**
49
+ * Start the cron to send the log. It will randomize the interval in order to not send all the logs at the same time.
50
+ */
51
+ public function start() {
52
+ if ( ! wp_next_scheduled( $this->product_cron ) ) {
53
+ wp_schedule_single_event( time() + ( rand( 15, 24 ) * 3600 ), $this->product_cron );
54
+ }
55
+ add_action( $this->product_cron, array( $this, "send_log" ) );
56
+ }
57
+
58
+ /**
59
+ * Send the statistics to the api endpoint
60
+ */
61
+ public function send_log() {
62
+ wp_remote_post( $this->logging_url, array(
63
+ 'method' => 'POST',
64
+ 'timeout' => 3,
65
+ 'redirection' => 5,
66
+ 'headers' => array( "X-ThemeIsle-Event" => "log_site" ),
67
+ 'body' => array(
68
+ 'site' => get_site_url(),
69
+ 'product' => $this->product_slug,
70
+ 'version' => $this->product_version
71
+ ),
72
+ ) );
73
+ }
74
+
75
+ }
76
+ endif;
vendor/themeisle/load.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Themeisle SDK
4
+ *
5
+ * @version 1.0.0
6
+ *
7
+ *
8
+ */
9
+ /**
10
+ * Themeisle SDK Version
11
+ *
12
+ * @var string
13
+ */
14
+ $this_themeisle_sdk_version = "1.2.0";
15
+ /**
16
+ * Themeisle SDK Path
17
+ *
18
+ * @var string
19
+ */
20
+ $this_themeisle_sdk_path = dirname( __FILE__ );
21
+ global $themeisle_sdk_products;
22
+ if ( ! isset( $themeisle_sdk_products ) ) {
23
+ $themeisle_sdk_products = array();
24
+ }
25
+ //load the product details
26
+ $themeisle_sdk_products[] = array(
27
+ "version" => $this_themeisle_sdk_version,
28
+ "sdk_path" => $this_themeisle_sdk_path
29
+ );
30
+ // load the latest sdk version from the active Themeisle products
31
+ if ( ! function_exists( "themeisle_sdk_load" ) ) :
32
+ function themeisle_sdk_load() {
33
+ global $themeisle_sdk_products;
34
+ global $this_themeisle_sdk_version;
35
+ $max_version = reset( $themeisle_sdk_products );
36
+ if ( ! isset ( $max_version ["version"] ) ) {
37
+ $max_version = $this_themeisle_sdk_version;
38
+ } else{
39
+ $max_version = $max_version["version"];
40
+ }
41
+
42
+ $path_to_load = "";
43
+ foreach ( $themeisle_sdk_products as $product ) {
44
+ if ( version_compare( $product["version"], $max_version ) >= 0 ) {
45
+ $path_to_load = $product["sdk_path"];
46
+ $max_version = $product['version'];
47
+ }
48
+ }
49
+ include $path_to_load . "/start.php";
50
+ foreach ( $themeisle_sdk_products as $registered_product ) {
51
+ ${$registered_product["product_data"]["product_slug"] . "_themeisle_sdk"} = new THEMEISLE_SDK( $registered_product );
52
+ }
53
+ }
54
+ endif;
55
+ //register the product which will use the sdk
56
+ if ( ! function_exists( "themeisle_sdk_register" ) ) :
57
+ function themeisle_sdk_register( $array ) {
58
+ global $themeisle_sdk_products;
59
+ foreach ( $themeisle_sdk_products as $key => $product ) {
60
+ if ( strpos( $product["sdk_path"], $array["product_slug"] ) !== false ) {
61
+ $themeisle_sdk_products[ $key ]["product_data"] = $array;
62
+ }
63
+ }
64
+ }
65
+ endif;
66
+ add_action( "wp_loaded", "themeisle_sdk_load" );
vendor/themeisle/start.php ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <?php
2
+ include dirname( __FILE__ ) . '/inc/base.php';
3
+ include dirname( __FILE__ ) . '/inc/license.php';
4
+ include dirname( __FILE__ ) . '/inc/log.php';