Version Description
Download this release
Release Info
| Developer | briKou |
| Plugin | |
| Version | 2.0 |
| Comparing to | |
| See all releases | |
Code changes from version 1.7.1 to 2.0
- feedzy-rss-feed.php +17 -325
- feedzy-rss-feeds-shortcode.php +310 -0
- feedzy-rss-feeds-widget.php +186 -0
- readme.txt → js/readme.txt +15 -6
- langs/feedzy_rss_translate-fr_FR.mo +0 -0
- langs/feedzy_rss_translate-fr_FR.po +199 -173
feedzy-rss-feed.php
CHANGED
|
@@ -5,7 +5,7 @@
|
|
| 5 |
* Description: 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.
|
| 6 |
* Author: Brice CAPOBIANCO
|
| 7 |
* Author URI: http://b-website.com/
|
| 8 |
-
* Version:
|
| 9 |
* Text Domain: feedzy_rss_translate
|
| 10 |
* Domain Path: /langs
|
| 11 |
*/
|
|
@@ -28,36 +28,35 @@ if ( !defined('ABSPATH') ) {
|
|
| 28 |
/***************************************************************
|
| 29 |
* Load plugin textdomain
|
| 30 |
***************************************************************/
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
$loaded = load_plugin_textdomain( 'feedzy_rss_translate', false, $path);
|
| 35 |
-
}
|
| 36 |
-
add_action('init', 'feedzy_rss_load_textdomain');
|
| 37 |
}
|
|
|
|
| 38 |
|
| 39 |
|
| 40 |
/***************************************************************
|
| 41 |
* Add custom meta link on plugin list page
|
| 42 |
***************************************************************/
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
$links[] = '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7Z6YVM63739Y8" target="_blank" title="'. __( 'Donate', 'feedzy_rss_translate' ) .'"><strong>'. __( 'Donate', 'feedzy_rss_translate' ) .'</strong></a>';
|
| 50 |
-
}
|
| 51 |
-
return $links;
|
| 52 |
}
|
| 53 |
-
|
| 54 |
}
|
|
|
|
| 55 |
|
| 56 |
|
| 57 |
/***************************************************************
|
| 58 |
* Load plugin files
|
| 59 |
***************************************************************/
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
|
| 63 |
/***************************************************************
|
|
@@ -77,313 +76,6 @@ add_action('init', 'feedzy_register_custom_style');
|
|
| 77 |
add_action('wp_footer', 'feedzy_print_custom_style');
|
| 78 |
|
| 79 |
|
| 80 |
-
/***************************************************************
|
| 81 |
-
* Get an image from the feed
|
| 82 |
-
***************************************************************/
|
| 83 |
-
if (!function_exists('feedzy_returnImage')) {
|
| 84 |
-
function feedzy_returnImage ($text) {
|
| 85 |
-
$text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
|
| 86 |
-
$pattern = "/<img[^>]+\>/i";
|
| 87 |
-
preg_match($pattern, $text, $matches);
|
| 88 |
-
$text = $matches[0];
|
| 89 |
-
return $text;
|
| 90 |
-
}
|
| 91 |
-
}
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
/***************************************************************
|
| 95 |
-
* Filter out image url which we got from previous returnImage() function
|
| 96 |
-
***************************************************************/
|
| 97 |
-
if (!function_exists('feedzy_scrapeImage')) {
|
| 98 |
-
function feedzy_scrapeImage($text) {
|
| 99 |
-
$pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/';
|
| 100 |
-
preg_match($pattern, $text, $link);
|
| 101 |
-
$link = $link[1];
|
| 102 |
-
$link = urldecode($link);
|
| 103 |
-
return $link;
|
| 104 |
-
}
|
| 105 |
-
}
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
/***************************************************************
|
| 109 |
-
* Main shortcode function
|
| 110 |
-
***************************************************************/
|
| 111 |
-
if (!function_exists('feedzy_rss')) {
|
| 112 |
-
|
| 113 |
-
function feedzy_rss($atts, $content = "") {
|
| 114 |
-
|
| 115 |
-
global $feedzyStyle;
|
| 116 |
-
$feedzyStyle = true;
|
| 117 |
-
//Retrieve & extract shorcode parameters
|
| 118 |
-
extract(shortcode_atts(array(
|
| 119 |
-
"feeds" => '', //comma separated feeds url
|
| 120 |
-
"max" => '5', //number of feeds items (0 for unlimited)
|
| 121 |
-
"feed_title" => 'yes', //display feed title yes/no
|
| 122 |
-
"target" => '_blank', //_blank, _self
|
| 123 |
-
"title" => '', //strip title after X char
|
| 124 |
-
"meta" => 'yes', //yes, no
|
| 125 |
-
"summary" => 'yes', //strip title
|
| 126 |
-
"summarylength" => '', //strip summary after X char
|
| 127 |
-
"thumb" => 'yes', //yes, no
|
| 128 |
-
"default" => '', //default thumb URL if no image found (only if thumb is set to yes)
|
| 129 |
-
"size" => '', //thumbs pixel size
|
| 130 |
-
"keywords_title" => '' //only display item if title contains specific keywords (comma-separated list/case sensitive)
|
| 131 |
-
), $atts));
|
| 132 |
-
$count = 0;
|
| 133 |
-
|
| 134 |
-
if ($max == '0') {
|
| 135 |
-
$max = '999';
|
| 136 |
-
} else if (empty($max) || !ctype_digit($max)) {
|
| 137 |
-
$max = '5';
|
| 138 |
-
}
|
| 139 |
-
|
| 140 |
-
if (empty($size) || !ctype_digit($size))
|
| 141 |
-
$size = '150';
|
| 142 |
-
|
| 143 |
-
if (!empty($title) && !ctype_digit($title))
|
| 144 |
-
$title = '';
|
| 145 |
-
|
| 146 |
-
if (!empty($keywords_title))
|
| 147 |
-
$keywords_title = array_map('trim', explode(',', $keywords_title));
|
| 148 |
-
|
| 149 |
-
if (!empty($summarylength) && !ctype_digit($summarylength))
|
| 150 |
-
$summarylength = '';
|
| 151 |
-
|
| 152 |
-
if (!empty($default)) {
|
| 153 |
-
$default = $default;
|
| 154 |
-
} else {
|
| 155 |
-
$default = plugins_url('img/feedzy-default.jpg', __FILE__);
|
| 156 |
-
}
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
if (!class_exists('SimplePie'))
|
| 161 |
-
require_once(ABSPATH . WPINC . '/class-feed.php');
|
| 162 |
-
|
| 163 |
-
if (!empty($feeds)) {
|
| 164 |
-
|
| 165 |
-
$feedURL = explode(',', $feeds);
|
| 166 |
-
$feedURL = array_splice($feedURL, 0, 3);
|
| 167 |
-
if (count($feedURL) === 1) {
|
| 168 |
-
$feedURL = $feedURL[0];
|
| 169 |
-
};
|
| 170 |
-
}
|
| 171 |
-
|
| 172 |
-
//Process SimplePie
|
| 173 |
-
$feed = new SimplePie();
|
| 174 |
-
$feed->set_feed_url($feedURL);
|
| 175 |
-
$feed->enable_cache(true);
|
| 176 |
-
$feed->enable_order_by_date(true);
|
| 177 |
-
$feed->set_cache_class('WP_Feed_Cache');
|
| 178 |
-
$feed->set_file_class('WP_SimplePie_File');
|
| 179 |
-
$feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', 7200, $feedURL));
|
| 180 |
-
do_action_ref_array('wp_feed_options', array($feed, $feedURL));
|
| 181 |
-
$feed->strip_comments(true);
|
| 182 |
-
$feed->strip_htmltags(false);
|
| 183 |
-
$feed->init();
|
| 184 |
-
$feed->handle_content_type();
|
| 185 |
-
|
| 186 |
-
if ($feed->error()) {
|
| 187 |
-
|
| 188 |
-
$content .= '<div id="message" class="error"><p>' . __('Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy_rss_translate') . '</p></div>';
|
| 189 |
-
}
|
| 190 |
-
|
| 191 |
-
$content .= '<div class="feedzy-rss">';
|
| 192 |
-
|
| 193 |
-
if ($feed_title == 'yes') {
|
| 194 |
-
|
| 195 |
-
$content .= '<div class="rss_header">';
|
| 196 |
-
$content .= '<h2><a href="' . $feed->get_permalink() . '">' . $feed->get_title() . '</a> <span> ' . $feed->get_description() . '</span></h2>';
|
| 197 |
-
$content .= '</div>';
|
| 198 |
-
}
|
| 199 |
-
|
| 200 |
-
//Loop through RSS feed
|
| 201 |
-
foreach ($feed->get_items() as $item) {
|
| 202 |
-
|
| 203 |
-
$continue = true;
|
| 204 |
-
//Check if keywords are in title
|
| 205 |
-
if (!empty($keywords_title)) {
|
| 206 |
-
$continue = false;
|
| 207 |
-
foreach ($keywords_title as $keyword) {
|
| 208 |
-
if (strpos($item->get_title(), $keyword) !== false) {
|
| 209 |
-
$continue = true;
|
| 210 |
-
}
|
| 211 |
-
}
|
| 212 |
-
}
|
| 213 |
-
|
| 214 |
-
if ($continue == true) {
|
| 215 |
-
|
| 216 |
-
//Count items
|
| 217 |
-
if ($count >= $max)
|
| 218 |
-
break;
|
| 219 |
-
$count++;
|
| 220 |
-
|
| 221 |
-
//Fetch image thumbnail
|
| 222 |
-
if ($thumb == 'yes') {
|
| 223 |
-
$thethumbnail = "";
|
| 224 |
-
|
| 225 |
-
if ($enclosure = $item->get_enclosure()) {
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
//item thumb
|
| 229 |
-
if ($thumbnail = $enclosure->get_thumbnail()) {
|
| 230 |
-
|
| 231 |
-
$thethumbnail = $thumbnail;
|
| 232 |
-
}
|
| 233 |
-
|
| 234 |
-
//media:thumbnail
|
| 235 |
-
if (isset($enclosure->thumbnails)) {
|
| 236 |
-
|
| 237 |
-
foreach ((array) $enclosure->thumbnails as $thumbnail) {
|
| 238 |
-
|
| 239 |
-
$thethumbnail = $thumbnail;
|
| 240 |
-
}
|
| 241 |
-
}
|
| 242 |
-
|
| 243 |
-
//enclosure
|
| 244 |
-
if ($thumbnail = $enclosure->embed()) {
|
| 245 |
-
|
| 246 |
-
$pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/iU';
|
| 247 |
-
|
| 248 |
-
if (preg_match($pattern, $thumbnail, $matches)) {
|
| 249 |
-
|
| 250 |
-
$thethumbnail = $matches[0];
|
| 251 |
-
}
|
| 252 |
-
}
|
| 253 |
-
|
| 254 |
-
//media:content
|
| 255 |
-
foreach ((array) $enclosure->get_link() as $thumbnail) {
|
| 256 |
-
|
| 257 |
-
$pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/iU';
|
| 258 |
-
$imgsrc = $thumbnail;
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
if (preg_match($pattern, $imgsrc, $matches)) {
|
| 262 |
-
|
| 263 |
-
$thethumbnail = $matches[0];
|
| 264 |
-
;
|
| 265 |
-
break;
|
| 266 |
-
}
|
| 267 |
-
}
|
| 268 |
-
}
|
| 269 |
-
|
| 270 |
-
//description image
|
| 271 |
-
if (empty($thethumbnail)) {
|
| 272 |
-
|
| 273 |
-
$feedDescription = $item->get_description();
|
| 274 |
-
$image = feedzy_returnImage($feedDescription);
|
| 275 |
-
$thethumbnail = feedzy_scrapeImage($image);
|
| 276 |
-
}
|
| 277 |
-
|
| 278 |
-
//content image
|
| 279 |
-
if (empty($thethumbnail)) {
|
| 280 |
-
|
| 281 |
-
$feedDescription = $item->get_content();
|
| 282 |
-
$image = feedzy_returnImage($feedDescription);
|
| 283 |
-
$thethumbnail = feedzy_scrapeImage($image);
|
| 284 |
-
}
|
| 285 |
-
}
|
| 286 |
-
|
| 287 |
-
//Padding ratio based on image size
|
| 288 |
-
$paddinTop = number_format((15 / 150) * $size, 0);
|
| 289 |
-
$paddinBottom = number_format((25 / 150) * $size, 0);
|
| 290 |
-
|
| 291 |
-
//Build element DOM
|
| 292 |
-
$content .= '<div class="rss_item" style="padding: ' . $paddinTop . 'px 0 ' . $paddinBottom . 'px">';
|
| 293 |
-
if ($thumb == 'yes') {
|
| 294 |
-
|
| 295 |
-
$contentThumb = '';
|
| 296 |
-
|
| 297 |
-
$contentThumb .= '<div class="rss_image" style="width:' . $size . 'px; height:' . $size . 'px;">';
|
| 298 |
-
$contentThumb .= '<a href="' . $item->get_permalink() . '" target="' . $target . '" title="' . $item->get_title() . '" >';
|
| 299 |
-
|
| 300 |
-
if (!empty($thethumbnail)) {
|
| 301 |
-
$contentThumb .= '<span style="width:' . $size . 'px; height:' . $size . 'px; background-image: none, url(' . $thethumbnail . '), url(' . $default . ');" alt="' . $item->get_title() . '"></span/>';
|
| 302 |
-
} else if (empty($thethumbnail)) {
|
| 303 |
-
$contentThumb .= '<span style="width:' . $size . 'px; height:' . $size . 'px; background-image:url(' . $default . ');" alt="' . $item->get_title() . '"></span/>';
|
| 304 |
-
}
|
| 305 |
-
|
| 306 |
-
$contentThumb .= '</a>';
|
| 307 |
-
$contentThumb .= '</div>';
|
| 308 |
-
|
| 309 |
-
//Filter: feedzy_thumb_output
|
| 310 |
-
$content .= apply_filters( 'feedzy_thumb_output', $contentThumb );
|
| 311 |
-
|
| 312 |
-
}
|
| 313 |
-
|
| 314 |
-
$contentTitle = '';
|
| 315 |
-
$contentTitle .= '<span class="title"><a href="' . $item->get_permalink() . '" target="' . $target . '">';
|
| 316 |
-
|
| 317 |
-
if (is_numeric($title) && strlen($item->get_title()) > $title) {
|
| 318 |
-
|
| 319 |
-
$contentTitle .= preg_replace('/\s+?(\S+)?$/', '', substr($item->get_title(), 0, $title)) . '...';
|
| 320 |
-
} else {
|
| 321 |
-
|
| 322 |
-
$contentTitle .= $item->get_title();
|
| 323 |
-
}
|
| 324 |
-
|
| 325 |
-
$contentTitle .= '</a></span>';
|
| 326 |
-
|
| 327 |
-
//Filter: feedzy_title_output
|
| 328 |
-
$content .= apply_filters( 'feedzy_title_output', $contentTitle );
|
| 329 |
-
|
| 330 |
-
$content .= '<div class="rss_content">';
|
| 331 |
-
|
| 332 |
-
if ($meta == 'yes') {
|
| 333 |
-
|
| 334 |
-
$contentMeta = '';
|
| 335 |
-
$contentMeta .= '<small>' . __('Posted by', 'feedzy_rss_translate') . ' ';
|
| 336 |
-
|
| 337 |
-
if ($author = $item->get_author()) {
|
| 338 |
-
|
| 339 |
-
$domain = parse_url($item->get_permalink());
|
| 340 |
-
$contentMeta .= '<a href="http://' . $domain["host"] . '" target="' . $target . '" title="' . $domain["host"] . '" >' . $author->get_name() . ' </a>';
|
| 341 |
-
}
|
| 342 |
-
|
| 343 |
-
$contentMeta .= __('on', 'feedzy_rss_translate') . ' ' . $item->get_date(get_option('date_format')) . ' ' . __('at', 'feedzy_rss_translate') . ' ' . $item->get_date(get_option('time_format'));
|
| 344 |
-
$contentMeta .= '</small>';
|
| 345 |
-
|
| 346 |
-
//Filter: feedzy_meta_output
|
| 347 |
-
$content .= apply_filters( 'feedzy_meta_output', $contentMeta );
|
| 348 |
-
|
| 349 |
-
}
|
| 350 |
-
if ($summary == 'yes') {
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
$contentSummary = '';
|
| 354 |
-
$contentSummary .= '<p>';
|
| 355 |
-
|
| 356 |
-
$description = trim(strip_tags($item->get_description()));
|
| 357 |
-
$description = trim(chop($description, '[…]'));
|
| 358 |
-
|
| 359 |
-
if (is_numeric($summarylength) && strlen($description) > $summarylength) {
|
| 360 |
-
|
| 361 |
-
$contentSummary .= preg_replace('/\s+?(\S+)?$/', '', substr($description, 0, $summarylength)) . ' […]';
|
| 362 |
-
} else {
|
| 363 |
-
|
| 364 |
-
$contentSummary .= $description . ' […]';
|
| 365 |
-
}
|
| 366 |
-
|
| 367 |
-
$contentSummary .= '</p>';
|
| 368 |
-
|
| 369 |
-
//Filter: feedzy_summary_output
|
| 370 |
-
$content .= apply_filters( 'feedzy_summary_output', $contentSummary, $item->get_permalink() );
|
| 371 |
-
|
| 372 |
-
}
|
| 373 |
-
$content .= '</div>';
|
| 374 |
-
$content .= '</div>';
|
| 375 |
-
} //endContinue
|
| 376 |
-
} //endforeach
|
| 377 |
-
|
| 378 |
-
$content .= '</div>';
|
| 379 |
-
return apply_filters( 'feedzy_global_output', $content );
|
| 380 |
-
}
|
| 381 |
-
|
| 382 |
-
//end of feedzy_rss
|
| 383 |
-
add_shortcode('feedzy-rss', 'feedzy_rss');
|
| 384 |
-
}
|
| 385 |
-
|
| 386 |
-
|
| 387 |
/***************************************************************
|
| 388 |
* Insert cover picture to main rss feed content
|
| 389 |
***************************************************************/
|
| 5 |
* Description: 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.
|
| 6 |
* Author: Brice CAPOBIANCO
|
| 7 |
* Author URI: http://b-website.com/
|
| 8 |
+
* Version: 2.0
|
| 9 |
* Text Domain: feedzy_rss_translate
|
| 10 |
* Domain Path: /langs
|
| 11 |
*/
|
| 28 |
/***************************************************************
|
| 29 |
* Load plugin textdomain
|
| 30 |
***************************************************************/
|
| 31 |
+
function feedzy_rss_load_textdomain() {
|
| 32 |
+
$path = dirname(plugin_basename( __FILE__ )) . '/langs/';
|
| 33 |
+
$loaded = load_plugin_textdomain( 'feedzy_rss_translate', false, $path);
|
|
|
|
|
|
|
|
|
|
| 34 |
}
|
| 35 |
+
add_action('init', 'feedzy_rss_load_textdomain');
|
| 36 |
|
| 37 |
|
| 38 |
/***************************************************************
|
| 39 |
* Add custom meta link on plugin list page
|
| 40 |
***************************************************************/
|
| 41 |
+
function feedzy_meta_links( $links, $file ) {
|
| 42 |
+
if ( strpos( $file, 'feedzy-rss-feed.php' ) !== false ) {
|
| 43 |
+
$links[0] = '<a href="http://b-website.com/" target="_blank"><img src="' . plugins_url('img/icon-bweb.svg', __FILE__ ) . '" style="margin-bottom: -4px; width: 18px;" alt="b*web"/></a> '. $links[0];
|
| 44 |
+
$links[] = '<a href="http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie" target="_blank" title="'. __( 'Documentation and examples', 'feedzy_rss_translate' ) .'"><strong style="color:#db3939">'. __( 'Documentation and examples', 'feedzy_rss_translate' ) .'</strong></a>';
|
| 45 |
+
$links[] = '<a href="http://b-website.com/category/plugins" target="_blank" title="'. __( 'More b*web Plugins', 'feedzy_rss_translate' ) .'">'. __( 'More b*web Plugins', 'feedzy_rss_translate' ) .'</a>';
|
| 46 |
+
$links[] = '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7Z6YVM63739Y8" target="_blank" title="'. __( 'Donate', 'feedzy_rss_translate' ) .'"><strong>'. __( 'Donate', 'feedzy_rss_translate' ) .'</strong></a>';
|
|
|
|
|
|
|
|
|
|
| 47 |
}
|
| 48 |
+
return $links;
|
| 49 |
}
|
| 50 |
+
add_filter( 'plugin_row_meta', 'feedzy_meta_links', 10, 2 );
|
| 51 |
|
| 52 |
|
| 53 |
/***************************************************************
|
| 54 |
* Load plugin files
|
| 55 |
***************************************************************/
|
| 56 |
+
$feedzyFiles = array( 'shortcode', 'widget','ui');
|
| 57 |
+
foreach( $feedzyFiles as $feedzyFile ){
|
| 58 |
+
require_once( plugin_dir_path( __FILE__ ) . 'feedzy-rss-feeds-' . $feedzyFile . '.php' );
|
| 59 |
+
}
|
| 60 |
|
| 61 |
|
| 62 |
/***************************************************************
|
| 76 |
add_action('wp_footer', 'feedzy_print_custom_style');
|
| 77 |
|
| 78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
/***************************************************************
|
| 80 |
* Insert cover picture to main rss feed content
|
| 81 |
***************************************************************/
|
feedzy-rss-feeds-shortcode.php
ADDED
|
@@ -0,0 +1,310 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/***************************************************************
|
| 3 |
+
* Get an image from the feed
|
| 4 |
+
***************************************************************/
|
| 5 |
+
function feedzy_returnImage ($text) {
|
| 6 |
+
$text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
|
| 7 |
+
$pattern = "/<img[^>]+\>/i";
|
| 8 |
+
preg_match($pattern, $text, $matches);
|
| 9 |
+
$text = $matches[0];
|
| 10 |
+
return $text;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
/***************************************************************
|
| 15 |
+
* Filter out image url which we got from previous returnImage() function
|
| 16 |
+
***************************************************************/
|
| 17 |
+
function feedzy_scrapeImage($text) {
|
| 18 |
+
$pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/';
|
| 19 |
+
preg_match($pattern, $text, $link);
|
| 20 |
+
$link = $link[1];
|
| 21 |
+
$link = urldecode($link);
|
| 22 |
+
return $link;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
/***************************************************************
|
| 27 |
+
* Main shortcode function
|
| 28 |
+
***************************************************************/
|
| 29 |
+
function feedzy_rss($atts, $content = "") {
|
| 30 |
+
|
| 31 |
+
global $feedzyStyle;
|
| 32 |
+
$feedzyStyle = true;
|
| 33 |
+
$count = 0;
|
| 34 |
+
|
| 35 |
+
//Retrieve & extract shorcode parameters
|
| 36 |
+
extract(shortcode_atts(array(
|
| 37 |
+
"feeds" => '', //comma separated feeds url
|
| 38 |
+
"max" => '5', //number of feeds items (0 for unlimited)
|
| 39 |
+
"feed_title" => 'yes', //display feed title yes/no
|
| 40 |
+
"target" => '_blank', //_blank, _self
|
| 41 |
+
"title" => '', //strip title after X char
|
| 42 |
+
"meta" => 'yes', //yes, no
|
| 43 |
+
"summary" => 'yes', //strip title
|
| 44 |
+
"summarylength" => '', //strip summary after X char
|
| 45 |
+
"thumb" => 'yes', //yes, no
|
| 46 |
+
"default" => '', //default thumb URL if no image found (only if thumb is set to yes)
|
| 47 |
+
"size" => '', //thumbs pixel size
|
| 48 |
+
"keywords_title" => '' //only display item if title contains specific keywords (comma-separated list/case sensitive)
|
| 49 |
+
), $atts));
|
| 50 |
+
|
| 51 |
+
if ($max == '0') {
|
| 52 |
+
$max = '999';
|
| 53 |
+
} else if (empty($max) || !ctype_digit($max)) {
|
| 54 |
+
$max = '5';
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
if (empty($size) || !ctype_digit($size))
|
| 58 |
+
$size = '150';
|
| 59 |
+
|
| 60 |
+
if (!empty($title) && !ctype_digit($title))
|
| 61 |
+
$title = '';
|
| 62 |
+
|
| 63 |
+
if (!empty($keywords_title))
|
| 64 |
+
$keywords_title = array_map('trim', explode(',', $keywords_title));
|
| 65 |
+
|
| 66 |
+
if (!empty($summarylength) && !ctype_digit($summarylength))
|
| 67 |
+
$summarylength = '';
|
| 68 |
+
|
| 69 |
+
if (!empty($default)) {
|
| 70 |
+
$default = $default;
|
| 71 |
+
} else {
|
| 72 |
+
$default = plugins_url('img/feedzy-default.jpg', __FILE__);
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
if (!class_exists('SimplePie'))
|
| 78 |
+
require_once(ABSPATH . WPINC . '/class-feed.php');
|
| 79 |
+
|
| 80 |
+
if (!empty($feeds)) {
|
| 81 |
+
|
| 82 |
+
$feedURL = explode(',', $feeds);
|
| 83 |
+
$feedURL = array_splice($feedURL, 0, 3);
|
| 84 |
+
if (count($feedURL) === 1) {
|
| 85 |
+
$feedURL = $feedURL[0];
|
| 86 |
+
};
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
//Load SimplePie Instance
|
| 90 |
+
$feed = new SimplePie();
|
| 91 |
+
$feed->set_feed_url($feedURL);
|
| 92 |
+
$feed->enable_cache(true);
|
| 93 |
+
$feed->enable_order_by_date(true);
|
| 94 |
+
$feed->set_cache_class('WP_Feed_Cache');
|
| 95 |
+
$feed->set_file_class('WP_SimplePie_File');
|
| 96 |
+
$feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', 7200, $feedURL));
|
| 97 |
+
do_action_ref_array('wp_feed_options', array($feed, $feedURL));
|
| 98 |
+
$feed->strip_comments(true);
|
| 99 |
+
$feed->strip_htmltags(false);
|
| 100 |
+
$feed->init();
|
| 101 |
+
$feed->handle_content_type();
|
| 102 |
+
|
| 103 |
+
if ($feed->error()) {
|
| 104 |
+
|
| 105 |
+
$content .= '<div id="message" class="error"><p>' . __('Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy_rss_translate') . '</p></div>';
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
$content .= '<div class="feedzy-rss">';
|
| 109 |
+
|
| 110 |
+
if ($feed_title == 'yes') {
|
| 111 |
+
|
| 112 |
+
$content .= '<div class="rss_header">';
|
| 113 |
+
$content .= '<h2><a href="' . $feed->get_permalink() . '">' . $feed->get_title() . '</a> <span> ' . $feed->get_description() . '</span></h2>';
|
| 114 |
+
$content .= '</div>';
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
//Loop through RSS feed
|
| 118 |
+
foreach ($feed->get_items() as $item) {
|
| 119 |
+
|
| 120 |
+
$continue = true;
|
| 121 |
+
//Check if keywords are in title
|
| 122 |
+
if (!empty($keywords_title)) {
|
| 123 |
+
$continue = false;
|
| 124 |
+
foreach ($keywords_title as $keyword) {
|
| 125 |
+
if (strpos($item->get_title(), $keyword) !== false) {
|
| 126 |
+
$continue = true;
|
| 127 |
+
}
|
| 128 |
+
}
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
if ($continue == true) {
|
| 132 |
+
|
| 133 |
+
//Count items
|
| 134 |
+
if ($count >= $max)
|
| 135 |
+
break;
|
| 136 |
+
$count++;
|
| 137 |
+
|
| 138 |
+
//Fetch image thumbnail
|
| 139 |
+
if ($thumb == 'yes') {
|
| 140 |
+
$thethumbnail = "";
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
if ($enclosures = $item->get_enclosures()) {
|
| 144 |
+
|
| 145 |
+
foreach( (array) $enclosures as $enclosure){
|
| 146 |
+
|
| 147 |
+
//item thumb
|
| 148 |
+
if ($thumbnail = $enclosure->get_thumbnail()) {
|
| 149 |
+
|
| 150 |
+
$thethumbnail = $thumbnail;
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
//media:thumbnail
|
| 154 |
+
if (isset($enclosure->thumbnails)) {
|
| 155 |
+
|
| 156 |
+
foreach ((array) $enclosure->thumbnails as $thumbnail) {
|
| 157 |
+
|
| 158 |
+
$thethumbnail = $thumbnail;
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
//enclosure
|
| 163 |
+
if ($thumbnail = $enclosure->embed()) {
|
| 164 |
+
|
| 165 |
+
$pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/iU';
|
| 166 |
+
|
| 167 |
+
if (preg_match($pattern, $thumbnail, $matches)) {
|
| 168 |
+
|
| 169 |
+
$thethumbnail = $matches[0];
|
| 170 |
+
}
|
| 171 |
+
}
|
| 172 |
+
|
| 173 |
+
//media:content
|
| 174 |
+
foreach ( (array) $enclosure->get_link() as $thumbnail) {
|
| 175 |
+
|
| 176 |
+
$pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/iU';
|
| 177 |
+
$imgsrc = $thumbnail;
|
| 178 |
+
|
| 179 |
+
|
| 180 |
+
if (preg_match($pattern, $imgsrc, $matches)) {
|
| 181 |
+
|
| 182 |
+
$thethumbnail = $matches[0];
|
| 183 |
+
break;
|
| 184 |
+
}
|
| 185 |
+
}
|
| 186 |
+
|
| 187 |
+
//break loop if thumbnail found
|
| 188 |
+
if ( ! empty( $thethumbnail ) )
|
| 189 |
+
break;
|
| 190 |
+
|
| 191 |
+
}
|
| 192 |
+
|
| 193 |
+
}
|
| 194 |
+
|
| 195 |
+
|
| 196 |
+
//content image
|
| 197 |
+
if (empty($thethumbnail)) {
|
| 198 |
+
|
| 199 |
+
$feedDescription = $item->get_content();
|
| 200 |
+
$image = feedzy_returnImage($feedDescription);
|
| 201 |
+
$thethumbnail = feedzy_scrapeImage($image);
|
| 202 |
+
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
//description image
|
| 206 |
+
if ( empty( $thethumbnail ) ) {
|
| 207 |
+
|
| 208 |
+
$feedDescription = $item->get_description();
|
| 209 |
+
$image = feedzy_returnImage($feedDescription);
|
| 210 |
+
$thethumbnail = feedzy_scrapeImage($image);
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
}
|
| 214 |
+
|
| 215 |
+
//Padding ratio based on image size
|
| 216 |
+
$paddinTop = number_format((15 / 150) * $size, 0);
|
| 217 |
+
$paddinBottom = number_format((25 / 150) * $size, 0);
|
| 218 |
+
|
| 219 |
+
//Build element DOM
|
| 220 |
+
$content .= '<div class="rss_item" style="padding: ' . $paddinTop . 'px 0 ' . $paddinBottom . 'px">';
|
| 221 |
+
if ($thumb == 'yes') {
|
| 222 |
+
|
| 223 |
+
$contentThumb = '';
|
| 224 |
+
|
| 225 |
+
$contentThumb .= '<div class="rss_image" style="width:' . $size . 'px; height:' . $size . 'px;">';
|
| 226 |
+
$contentThumb .= '<a href="' . $item->get_permalink() . '" target="' . $target . '" title="' . $item->get_title() . '" >';
|
| 227 |
+
|
| 228 |
+
if (!empty($thethumbnail)) {
|
| 229 |
+
$contentThumb .= '<span style="width:' . $size . 'px; height:' . $size . 'px; background-image: none, url(' . $thethumbnail . '), url(' . $default . ');" alt="' . $item->get_title() . '"></span/>';
|
| 230 |
+
} else if (empty($thethumbnail)) {
|
| 231 |
+
$contentThumb .= '<span style="width:' . $size . 'px; height:' . $size . 'px; background-image:url(' . $default . ');" alt="' . $item->get_title() . '"></span/>';
|
| 232 |
+
}
|
| 233 |
+
|
| 234 |
+
$contentThumb .= '</a>';
|
| 235 |
+
$contentThumb .= '</div>';
|
| 236 |
+
|
| 237 |
+
//Filter: feedzy_thumb_output
|
| 238 |
+
$content .= apply_filters( 'feedzy_thumb_output', $contentThumb );
|
| 239 |
+
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
$contentTitle = '';
|
| 243 |
+
$contentTitle .= '<span class="title"><a href="' . $item->get_permalink() . '" target="' . $target . '">';
|
| 244 |
+
|
| 245 |
+
if (is_numeric($title) && strlen($item->get_title()) > $title) {
|
| 246 |
+
|
| 247 |
+
$contentTitle .= preg_replace('/\s+?(\S+)?$/', '', substr($item->get_title(), 0, $title)) . '...';
|
| 248 |
+
} else {
|
| 249 |
+
|
| 250 |
+
$contentTitle .= $item->get_title();
|
| 251 |
+
}
|
| 252 |
+
|
| 253 |
+
$contentTitle .= '</a></span>';
|
| 254 |
+
|
| 255 |
+
//Filter: feedzy_title_output
|
| 256 |
+
$content .= apply_filters( 'feedzy_title_output', $contentTitle );
|
| 257 |
+
|
| 258 |
+
$content .= '<div class="rss_content">';
|
| 259 |
+
|
| 260 |
+
if ($meta == 'yes') {
|
| 261 |
+
|
| 262 |
+
$contentMeta = '';
|
| 263 |
+
$contentMeta .= '<small>' . __('Posted by', 'feedzy_rss_translate') . ' ';
|
| 264 |
+
|
| 265 |
+
if ($author = $item->get_author()) {
|
| 266 |
+
|
| 267 |
+
$domain = parse_url($item->get_permalink());
|
| 268 |
+
$contentMeta .= '<a href="http://' . $domain["host"] . '" target="' . $target . '" title="' . $domain["host"] . '" >' . $author->get_name() . ' </a>';
|
| 269 |
+
}
|
| 270 |
+
|
| 271 |
+
$contentMeta .= __('on', 'feedzy_rss_translate') . ' ' . $item->get_date(get_option('date_format')) . ' ' . __('at', 'feedzy_rss_translate') . ' ' . $item->get_date(get_option('time_format'));
|
| 272 |
+
$contentMeta .= '</small>';
|
| 273 |
+
|
| 274 |
+
//Filter: feedzy_meta_output
|
| 275 |
+
$content .= apply_filters( 'feedzy_meta_output', $contentMeta );
|
| 276 |
+
|
| 277 |
+
}
|
| 278 |
+
if ($summary == 'yes') {
|
| 279 |
+
|
| 280 |
+
|
| 281 |
+
$contentSummary = '';
|
| 282 |
+
$contentSummary .= '<p>';
|
| 283 |
+
|
| 284 |
+
$description = trim(strip_tags($item->get_description()));
|
| 285 |
+
$description = trim(chop($description, '[…]'));
|
| 286 |
+
|
| 287 |
+
if (is_numeric($summarylength) && strlen($description) > $summarylength) {
|
| 288 |
+
|
| 289 |
+
$contentSummary .= preg_replace('/\s+?(\S+)?$/', '', substr($description, 0, $summarylength)) . ' […]';
|
| 290 |
+
} else {
|
| 291 |
+
|
| 292 |
+
$contentSummary .= $description . ' […]';
|
| 293 |
+
}
|
| 294 |
+
|
| 295 |
+
$contentSummary .= '</p>';
|
| 296 |
+
|
| 297 |
+
//Filter: feedzy_summary_output
|
| 298 |
+
$content .= apply_filters( 'feedzy_summary_output', $contentSummary, $item->get_permalink() );
|
| 299 |
+
|
| 300 |
+
}
|
| 301 |
+
$content .= '</div>';
|
| 302 |
+
$content .= '</div>';
|
| 303 |
+
} //endContinue
|
| 304 |
+
} //endforeach
|
| 305 |
+
|
| 306 |
+
$content .= '</div>';
|
| 307 |
+
return apply_filters( 'feedzy_global_output', $content );
|
| 308 |
+
|
| 309 |
+
}//end of feedzy_rss
|
| 310 |
+
add_shortcode('feedzy-rss', 'feedzy_rss');
|
feedzy-rss-feeds-widget.php
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/***************************************************************
|
| 3 |
+
* Load the Widget options
|
| 4 |
+
***************************************************************/
|
| 5 |
+
add_action('widgets_init', create_function('', 'return register_widget("feedzy_wp_widget");'));
|
| 6 |
+
class feedzy_wp_widget extends WP_Widget {
|
| 7 |
+
|
| 8 |
+
// constructor
|
| 9 |
+
function feedzy_wp_widget() {
|
| 10 |
+
parent::WP_Widget(false, $name = __('Feedzy RSS Feeds', 'feedzy_wp_widget') );
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
// widget form creation
|
| 14 |
+
function form($instance) {
|
| 15 |
+
|
| 16 |
+
// Check values
|
| 17 |
+
if( $instance) {
|
| 18 |
+
$title = esc_attr($instance['title']);
|
| 19 |
+
$textarea = esc_attr($instance['textarea']);
|
| 20 |
+
$feeds = esc_attr($instance['feeds']);
|
| 21 |
+
$max = esc_attr($instance['max']);
|
| 22 |
+
$target = esc_attr($instance['target']);
|
| 23 |
+
$titlelength = esc_attr($instance['titlelength']);
|
| 24 |
+
$meta = esc_attr($instance['meta']);
|
| 25 |
+
$summary = esc_attr($instance['summary']);
|
| 26 |
+
$summarylength = esc_attr($instance['summarylength']);
|
| 27 |
+
$thumb = esc_attr($instance['thumb']);
|
| 28 |
+
$default = esc_attr($instance['default']);
|
| 29 |
+
$size = esc_attr($instance['size']);
|
| 30 |
+
$keywords_title = esc_attr($instance['keywords_title']);
|
| 31 |
+
} else {
|
| 32 |
+
$title = '';
|
| 33 |
+
$textarea = '';
|
| 34 |
+
$feeds = '';
|
| 35 |
+
$max = '';
|
| 36 |
+
$target = '';
|
| 37 |
+
$titlelength = '';
|
| 38 |
+
$meta = '';
|
| 39 |
+
$summary = '';
|
| 40 |
+
$summarylength = '';
|
| 41 |
+
$thumb = '';
|
| 42 |
+
$default = '';
|
| 43 |
+
$size = '';
|
| 44 |
+
$keywords_title = '';
|
| 45 |
+
}
|
| 46 |
+
?>
|
| 47 |
+
|
| 48 |
+
<p>
|
| 49 |
+
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Widget Title', 'feedzy_rss_translate'); ?></label>
|
| 50 |
+
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
|
| 51 |
+
</p>
|
| 52 |
+
<p>
|
| 53 |
+
<label for="<?php echo $this->get_field_id('textarea'); ?>"><?php _e('Intro text', 'feedzy_rss_translate'); ?></label>
|
| 54 |
+
<textarea class="widefat" id="<?php echo $this->get_field_id('textarea'); ?>" name="<?php echo $this->get_field_name('textarea'); ?>"><?php echo $textarea; ?></textarea>
|
| 55 |
+
</p>
|
| 56 |
+
<p>
|
| 57 |
+
<label for="<?php echo $this->get_field_id('feeds'); ?>"><?php _e('The feed(s) URL (comma-separated list).', 'feedzy_rss_translate'); ?></label>
|
| 58 |
+
<input class="widefat" id="<?php echo $this->get_field_id('feeds'); ?>" name="<?php echo $this->get_field_name('feeds'); ?>" type="text" value="<?php echo $feeds; ?>" />
|
| 59 |
+
</p>
|
| 60 |
+
<p>
|
| 61 |
+
<label for="<?php echo $this->get_field_id('max'); ?>"><?php _e('Number of items to display.', 'feedzy_rss_translate'); ?></label>
|
| 62 |
+
<input class="widefat" id="<?php echo $this->get_field_id('max'); ?>" name="<?php echo $this->get_field_name('max'); ?>" type="text" value="<?php echo $max; ?>" />
|
| 63 |
+
</p>
|
| 64 |
+
<p>
|
| 65 |
+
<label for="<?php echo $this->get_field_id('target'); ?>"><?php _e('Links may be opened in the same window or a new tab.', 'feedzy_rss_translate'); ?></label>
|
| 66 |
+
<select name="<?php echo $this->get_field_name('target'); ?>" id="<?php echo $this->get_field_id('target'); ?>" class="widefat">
|
| 67 |
+
<?php
|
| 68 |
+
$options = array('_blank', '_parent', '_self', '_top', 'framename');
|
| 69 |
+
foreach ($options as $option) {
|
| 70 |
+
echo '<option value="' . $option . '" id="' . $option . '"', $target == $option ? ' selected="selected"' : '', '>', $option, '</option>';
|
| 71 |
+
}
|
| 72 |
+
?>
|
| 73 |
+
</select>
|
| 74 |
+
</p>
|
| 75 |
+
<p>
|
| 76 |
+
<label for="<?php echo $this->get_field_id('titlelength'); ?>"><?php _e('Trim the title of the item after X characters.', 'feedzy_rss_translate'); ?></label>
|
| 77 |
+
<input class="widefat" id="<?php echo $this->get_field_id('titlelength'); ?>" name="<?php echo $this->get_field_name('titlelength'); ?>" type="text" value="<?php echo $titlelength; ?>" />
|
| 78 |
+
</p>
|
| 79 |
+
<p>
|
| 80 |
+
<input id="<?php echo $this->get_field_id('meta'); ?>" name="<?php echo $this->get_field_name('meta'); ?>" type="checkbox" value="1" <?php checked( '1', $meta ); ?> />
|
| 81 |
+
<label for="<?php echo $this->get_field_id('meta'); ?>"><?php _e('Should we display the date of publication and the author name?', 'feedzy_rss_translate'); ?></label>
|
| 82 |
+
</p>
|
| 83 |
+
<p>
|
| 84 |
+
<input id="<?php echo $this->get_field_id('summary'); ?>" name="<?php echo $this->get_field_name('summary'); ?>" type="checkbox" value="1" <?php checked( '1', $summary ); ?> />
|
| 85 |
+
<label for="<?php echo $this->get_field_id('summary'); ?>"><?php _e('Should we display a description (abstract) of the retrieved item?', 'feedzy_rss_translate'); ?></label>
|
| 86 |
+
</p>
|
| 87 |
+
<p>
|
| 88 |
+
<label for="<?php echo $this->get_field_id('summarylength'); ?>"><?php _e('Crop description (summary) of the element after X characters.', 'feedzy_rss_translate'); ?></label>
|
| 89 |
+
<input class="widefat" id="<?php echo $this->get_field_id('summarylength'); ?>" name="<?php echo $this->get_field_name('summarylength'); ?>" type="text" value="<?php echo $summarylength; ?>" />
|
| 90 |
+
</p>
|
| 91 |
+
<p>
|
| 92 |
+
<input id="<?php echo $this->get_field_id('thumb'); ?>" name="<?php echo $this->get_field_name('thumb'); ?>" type="checkbox" value="1" <?php checked( '1', $thumb ); ?> />
|
| 93 |
+
<label for="<?php echo $this->get_field_id('thumb'); ?>"><?php _e('Should we display the first image of the content if it is available?', 'feedzy_rss_translate'); ?></label>
|
| 94 |
+
</p>
|
| 95 |
+
<p>
|
| 96 |
+
<label for="<?php echo $this->get_field_id('default'); ?>"><?php _e('Default thumbnail URL if no image is found.', 'feedzy_rss_translate'); ?></label>
|
| 97 |
+
<input class="widefat" id="<?php echo $this->get_field_id('default'); ?>" name="<?php echo $this->get_field_name('default'); ?>" type="text" value="<?php echo $default; ?>" />
|
| 98 |
+
</p>
|
| 99 |
+
<p>
|
| 100 |
+
<label for="<?php echo $this->get_field_id('size'); ?>"><?php _e('Thumblails dimension. Do not include "px". Eg: 150', 'feedzy_rss_translate'); ?></label>
|
| 101 |
+
<input class="widefat" id="<?php echo $this->get_field_id('size'); ?>" name="<?php echo $this->get_field_name('size'); ?>" type="text" value="<?php echo $size; ?>" />
|
| 102 |
+
</p>
|
| 103 |
+
<p>
|
| 104 |
+
<label for="<?php echo $this->get_field_id('keywords_title'); ?>"><?php _e('Only display item if title contains specific keyword(s) (comma-separated list/case sensitive).', 'feedzy_rss_translate'); ?></label>
|
| 105 |
+
<input class="widefat" id="<?php echo $this->get_field_id('keywords_title'); ?>" name="<?php echo $this->get_field_name('keywords_title'); ?>" type="text" value="<?php echo $keywords_title; ?>" />
|
| 106 |
+
</p>
|
| 107 |
+
|
| 108 |
+
<?php
|
| 109 |
+
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
// update widget
|
| 113 |
+
function update($new_instance, $old_instance) {
|
| 114 |
+
$instance = $old_instance;
|
| 115 |
+
$instance['title'] = strip_tags($new_instance['title']);
|
| 116 |
+
if ( current_user_can('unfiltered_html') ) {
|
| 117 |
+
$instance['textarea'] = $new_instance['textarea'];
|
| 118 |
+
} else {
|
| 119 |
+
$instance['textarea'] = stripslashes( wp_filter_post_kses( addslashes($new_instance['textarea']) ) );
|
| 120 |
+
}
|
| 121 |
+
$instance['feeds'] = strip_tags($new_instance['feeds']);
|
| 122 |
+
$instance['max'] = strip_tags($new_instance['max']);
|
| 123 |
+
$instance['target'] = strip_tags($new_instance['target']);
|
| 124 |
+
$instance['titlelength'] = strip_tags($new_instance['titlelength']);
|
| 125 |
+
$instance['meta'] = strip_tags($new_instance['meta']);
|
| 126 |
+
$instance['summary'] = strip_tags($new_instance['summary']);
|
| 127 |
+
$instance['summarylength'] = strip_tags($new_instance['summarylength']);
|
| 128 |
+
$instance['thumb'] = strip_tags($new_instance['thumb']);
|
| 129 |
+
$instance['default'] = strip_tags($new_instance['default']);
|
| 130 |
+
$instance['size'] = strip_tags($new_instance['size']);
|
| 131 |
+
$instance['keywords_title'] = strip_tags($new_instance['keywords_title']);
|
| 132 |
+
return $instance;
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
// display widget
|
| 136 |
+
function widget($args, $instance) {
|
| 137 |
+
|
| 138 |
+
extract( $args );
|
| 139 |
+
|
| 140 |
+
$title = apply_filters('widget_title', $instance['title']);
|
| 141 |
+
$textarea = apply_filters( 'widget_textarea', empty( $instance['textarea'] ) ? '' : $instance['textarea'], $instance );
|
| 142 |
+
|
| 143 |
+
echo $before_widget;
|
| 144 |
+
|
| 145 |
+
// Display the widget body
|
| 146 |
+
echo '<div class="widget-text feedzy_wp_widget_box">';
|
| 147 |
+
|
| 148 |
+
// Check if title is set
|
| 149 |
+
if ( $title )
|
| 150 |
+
echo $before_title . $title . $after_title;
|
| 151 |
+
|
| 152 |
+
// Check if text intro is set
|
| 153 |
+
if( isset( $instance['textarea'] ) && !empty( $instance['textarea'] ) )
|
| 154 |
+
echo '<p class="feedzy-widget-intro">' . wpautop($textarea) . '</p>';
|
| 155 |
+
|
| 156 |
+
|
| 157 |
+
$items = array('meta', 'summary', 'thumb');
|
| 158 |
+
foreach($items as $item){
|
| 159 |
+
if($instance[$item] == true){
|
| 160 |
+
$instance[$item] = 'yes';
|
| 161 |
+
} else {
|
| 162 |
+
$instance[$item] = 'no';
|
| 163 |
+
}
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
echo feedzy_rss( array(
|
| 167 |
+
"feeds" => $instance['feeds'],
|
| 168 |
+
"max" => $instance['max'],
|
| 169 |
+
"feed_title" => 'no',
|
| 170 |
+
"target" => $instance['target'],
|
| 171 |
+
"title" => $instance['titlelength'],
|
| 172 |
+
"meta" => $instance['meta'],
|
| 173 |
+
"summary" => $instance['summary'],
|
| 174 |
+
"summarylength" => $instance['summarylength'],
|
| 175 |
+
"thumb" => $instance['thumb'],
|
| 176 |
+
"default" => $instance['default'],
|
| 177 |
+
"size" => $instance['size'],
|
| 178 |
+
"keywords_title" => $instance['keywords_title']
|
| 179 |
+
) );
|
| 180 |
+
|
| 181 |
+
echo '</div>';
|
| 182 |
+
|
| 183 |
+
echo $after_widget;
|
| 184 |
+
|
| 185 |
+
}
|
| 186 |
+
}
|
readme.txt → js/readme.txt
RENAMED
|
@@ -3,23 +3,23 @@ Contributors: briKou
|
|
| 3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7Z6YVM63739Y8
|
| 4 |
Tags: RSS, SimplePie, shortcode, feed, thumbnail, image, rss feeds, aggregator, tinyMCE, WYSIWYG, MCE, UI, flux, plugin, WordPress
|
| 5 |
Requires at least: 3.7
|
| 6 |
-
Tested up to: 4.
|
| 7 |
-
Stable tag:
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
| 11 |
|
| 12 |
-
FEEDZY RSS Feeds is a small
|
| 13 |
|
| 14 |
== Description ==
|
| 15 |
|
| 16 |
-
FEEDZY RSS Feeds is a small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes.
|
| 17 |
|
| 18 |
-
The plugin uses the SimplePie CLASS
|
| 19 |
|
| 20 |
FEEDZY RSS Feeds therefore supports any additional library and uses only the bare minimum to ensure good performance (minimalistic CSS + cache).
|
| 21 |
|
| 22 |
-
You may use this plugin in your widgets and your pages and reuse the shortcode several times within the same page.
|
| 23 |
|
| 24 |
By activating this plugin, your cover picture will be inserted into your RSS feeds. By doing so, you'll make it will easier for external sites to retrieve images from your feeds.
|
| 25 |
|
|
@@ -94,10 +94,19 @@ Yes it is.
|
|
| 94 |
|
| 95 |
1. Simple example
|
| 96 |
2. Inserting a shortcode in the WYSIWYG
|
|
|
|
|
|
|
| 97 |
|
| 98 |
|
| 99 |
== Changelog ==
|
| 100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
= 1.7.1 =
|
| 102 |
* Fix typo in PHP which cause issue on fetching images
|
| 103 |
|
| 3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7Z6YVM63739Y8
|
| 4 |
Tags: RSS, SimplePie, shortcode, feed, thumbnail, image, rss feeds, aggregator, tinyMCE, WYSIWYG, MCE, UI, flux, plugin, WordPress
|
| 5 |
Requires at least: 3.7
|
| 6 |
+
Tested up to: 4.1
|
| 7 |
+
Stable tag: 2.0
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
| 11 |
|
| 12 |
+
FEEDZY RSS Feeds is a small & lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your site with shortcodes & widgets.
|
| 13 |
|
| 14 |
== Description ==
|
| 15 |
|
| 16 |
+
FEEDZY RSS Feeds is a small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets.
|
| 17 |
|
| 18 |
+
The plugin uses the SimplePie php CLASS natively included in WordPress. SimplePie is a RSS parser that can read the information contained in a feed, process it, and finally display it.
|
| 19 |
|
| 20 |
FEEDZY RSS Feeds therefore supports any additional library and uses only the bare minimum to ensure good performance (minimalistic CSS + cache).
|
| 21 |
|
| 22 |
+
You may use this plugin in your widgets and your pages and reuse the shortcode + widget several times within the same page.
|
| 23 |
|
| 24 |
By activating this plugin, your cover picture will be inserted into your RSS feeds. By doing so, you'll make it will easier for external sites to retrieve images from your feeds.
|
| 25 |
|
| 94 |
|
| 95 |
1. Simple example
|
| 96 |
2. Inserting a shortcode in the WYSIWYG
|
| 97 |
+
3. Widget admin
|
| 98 |
+
4. Widget render
|
| 99 |
|
| 100 |
|
| 101 |
== Changelog ==
|
| 102 |
|
| 103 |
+
= 2.0 =
|
| 104 |
+
* Widget added
|
| 105 |
+
* Translation update
|
| 106 |
+
* Better plugin file structure
|
| 107 |
+
* Improve image fetching with multiple enclosures
|
| 108 |
+
* Tested on WP 4.1 with success!
|
| 109 |
+
|
| 110 |
= 1.7.1 =
|
| 111 |
* Fix typo in PHP which cause issue on fetching images
|
| 112 |
|
langs/feedzy_rss_translate-fr_FR.mo
CHANGED
|
Binary file
|
langs/feedzy_rss_translate-fr_FR.po
CHANGED
|
@@ -1,173 +1,199 @@
|
|
| 1 |
-
msgid ""
|
| 2 |
-
msgstr ""
|
| 3 |
-
"Project-Id-Version: FEEDZY RSS Feeds by b*web v1.
|
| 4 |
-
"Report-Msgid-Bugs-To: \n"
|
| 5 |
-
"POT-Creation-Date: \n"
|
| 6 |
-
"PO-Revision-Date: 2014-
|
| 7 |
-
"Last-Translator: superadminopl <brice.capobianco@openlog.fr>\n"
|
| 8 |
-
"Language-Team: \n"
|
| 9 |
-
"MIME-Version: 1.0\n"
|
| 10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
| 11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
| 12 |
-
"Plural-Forms: nplurals=2; plural=n>1;\n"
|
| 13 |
-
"X-Generator: CSL v1.x\n"
|
| 14 |
-
"X-Poedit-Language: French\n"
|
| 15 |
-
"X-Poedit-Country: FRANCE\n"
|
| 16 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
| 17 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
| 18 |
-
"X-Poedit-Basepath: \n"
|
| 19 |
-
"X-Poedit-Bookmarks: \n"
|
| 20 |
-
"X-Poedit-SearchPath-0: .\n"
|
| 21 |
-
"X-Textdomain-Support: yes"
|
| 22 |
-
|
| 23 |
-
#: feedzy-rss-
|
| 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-
|
| 29 |
-
#@ feedzy_rss_translate
|
| 30 |
-
msgid "Posted by"
|
| 31 |
-
msgstr "Publié par"
|
| 32 |
-
|
| 33 |
-
#: feedzy-rss-
|
| 34 |
-
#@ feedzy_rss_translate
|
| 35 |
-
msgid "on"
|
| 36 |
-
msgstr "le"
|
| 37 |
-
|
| 38 |
-
#: feedzy-rss-
|
| 39 |
-
#@ feedzy_rss_translate
|
| 40 |
-
msgid "at"
|
| 41 |
-
msgstr "à"
|
| 42 |
-
|
| 43 |
-
#: feedzy-rss-feed.php:
|
| 44 |
-
#@ feedzy_rss_translate
|
| 45 |
-
msgid "Documentation and examples"
|
| 46 |
-
msgstr "Documentation and exemples"
|
| 47 |
-
|
| 48 |
-
#: feedzy-rss-feed.php:
|
| 49 |
-
#@ feedzy_rss_translate
|
| 50 |
-
msgid "More b*web Plugins"
|
| 51 |
-
msgstr "Plus de plugins b*web"
|
| 52 |
-
|
| 53 |
-
#: feedzy-rss-feed.php:
|
| 54 |
-
#@ feedzy_rss_translate
|
| 55 |
-
msgid "Donate"
|
| 56 |
-
msgstr "Faire un don"
|
| 57 |
-
|
| 58 |
-
#: feedzy-rss-feeds-ui-lang.php:11
|
| 59 |
-
#@ feedzy_rss_translate
|
| 60 |
-
msgid "Insert FEEDZY RSS Feeds Shortcode"
|
| 61 |
-
msgstr "Insérer un shortcode FEEDZY RSS Feeds"
|
| 62 |
-
|
| 63 |
-
#: feedzy-rss-feeds-ui-lang.php:13
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
#: feedzy-rss-feeds-
|
| 89 |
-
#@ feedzy_rss_translate
|
| 90 |
-
msgid "
|
| 91 |
-
msgstr "
|
| 92 |
-
|
| 93 |
-
#: feedzy-rss-feeds-ui-lang.php:
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
#: feedzy-rss-feeds-
|
| 119 |
-
#@ feedzy_rss_translate
|
| 120 |
-
msgid "
|
| 121 |
-
msgstr "
|
| 122 |
-
|
| 123 |
-
#: feedzy-rss-feeds-ui-lang.php:
|
| 124 |
-
#@ feedzy_rss_translate
|
| 125 |
-
msgid "
|
| 126 |
-
msgstr "
|
| 127 |
-
|
| 128 |
-
#: feedzy-rss-feeds-ui-lang.php:
|
| 129 |
-
#@ feedzy_rss_translate
|
| 130 |
-
msgid "
|
| 131 |
-
msgstr "
|
| 132 |
-
|
| 133 |
-
#: feedzy-rss-feeds-ui-lang.php:
|
| 134 |
-
#@ feedzy_rss_translate
|
| 135 |
-
msgid "
|
| 136 |
-
msgstr "
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
#: feedzy-rss-
|
| 140 |
-
#@ feedzy_rss_translate
|
| 141 |
-
msgid "
|
| 142 |
-
msgstr ""
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
msgid ""
|
| 2 |
+
msgstr ""
|
| 3 |
+
"Project-Id-Version: FEEDZY RSS Feeds by b*web v1.7.1\n"
|
| 4 |
+
"Report-Msgid-Bugs-To: \n"
|
| 5 |
+
"POT-Creation-Date: \n"
|
| 6 |
+
"PO-Revision-Date: 2014-12-16 17:37:04+0000\n"
|
| 7 |
+
"Last-Translator: superadminopl <brice.capobianco@openlog.fr>\n"
|
| 8 |
+
"Language-Team: \n"
|
| 9 |
+
"MIME-Version: 1.0\n"
|
| 10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 12 |
+
"Plural-Forms: nplurals=2; plural=n>1;\n"
|
| 13 |
+
"X-Generator: CSL v1.x\n"
|
| 14 |
+
"X-Poedit-Language: French\n"
|
| 15 |
+
"X-Poedit-Country: FRANCE\n"
|
| 16 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
| 17 |
+
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
| 18 |
+
"X-Poedit-Basepath: \n"
|
| 19 |
+
"X-Poedit-Bookmarks: \n"
|
| 20 |
+
"X-Poedit-SearchPath-0: .\n"
|
| 21 |
+
"X-Textdomain-Support: yes"
|
| 22 |
+
|
| 23 |
+
#: feedzy-rss-feeds-shortcode.php:105
|
| 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:252
|
| 29 |
+
#@ feedzy_rss_translate
|
| 30 |
+
msgid "Posted by"
|
| 31 |
+
msgstr "Publié par"
|
| 32 |
+
|
| 33 |
+
#: feedzy-rss-feeds-shortcode.php:260
|
| 34 |
+
#@ feedzy_rss_translate
|
| 35 |
+
msgid "on"
|
| 36 |
+
msgstr "le"
|
| 37 |
+
|
| 38 |
+
#: feedzy-rss-feeds-shortcode.php:260
|
| 39 |
+
#@ feedzy_rss_translate
|
| 40 |
+
msgid "at"
|
| 41 |
+
msgstr "à"
|
| 42 |
+
|
| 43 |
+
#: feedzy-rss-feed.php:44
|
| 44 |
+
#@ feedzy_rss_translate
|
| 45 |
+
msgid "Documentation and examples"
|
| 46 |
+
msgstr "Documentation and exemples"
|
| 47 |
+
|
| 48 |
+
#: feedzy-rss-feed.php:45
|
| 49 |
+
#@ feedzy_rss_translate
|
| 50 |
+
msgid "More b*web Plugins"
|
| 51 |
+
msgstr "Plus de plugins b*web"
|
| 52 |
+
|
| 53 |
+
#: feedzy-rss-feed.php:46
|
| 54 |
+
#@ feedzy_rss_translate
|
| 55 |
+
msgid "Donate"
|
| 56 |
+
msgstr "Faire un don"
|
| 57 |
+
|
| 58 |
+
#: feedzy-rss-feeds-ui-lang.php:11
|
| 59 |
+
#@ feedzy_rss_translate
|
| 60 |
+
msgid "Insert FEEDZY RSS Feeds Shortcode"
|
| 61 |
+
msgstr "Insérer un shortcode FEEDZY RSS Feeds"
|
| 62 |
+
|
| 63 |
+
#: feedzy-rss-feeds-ui-lang.php:13
|
| 64 |
+
#: feedzy-rss-feeds-widget.php:61
|
| 65 |
+
#@ feedzy_rss_translate
|
| 66 |
+
msgid "Number of items to display."
|
| 67 |
+
msgstr "Nombre d’éléments à remonter."
|
| 68 |
+
|
| 69 |
+
#: feedzy-rss-feeds-ui-lang.php:15
|
| 70 |
+
#: feedzy-rss-feeds-widget.php:65
|
| 71 |
+
#@ feedzy_rss_translate
|
| 72 |
+
msgid "Links may be opened in the same window or a new tab."
|
| 73 |
+
msgstr "Les liens peuvent être ouverts dans la même fenêtre ou dans un nouvel onglet."
|
| 74 |
+
|
| 75 |
+
#: feedzy-rss-feeds-ui-lang.php:16
|
| 76 |
+
#: feedzy-rss-feeds-widget.php:76
|
| 77 |
+
#@ feedzy_rss_translate
|
| 78 |
+
msgid "Trim the title of the item after X characters."
|
| 79 |
+
msgstr "Rogner le titre de l’élément après X caractères."
|
| 80 |
+
|
| 81 |
+
#: feedzy-rss-feeds-ui-lang.php:17
|
| 82 |
+
#: feedzy-rss-feeds-widget.php:81
|
| 83 |
+
#@ feedzy_rss_translate
|
| 84 |
+
msgid "Should we display the date of publication and the author name?"
|
| 85 |
+
msgstr "Doit-on afficher la date de publication ainsi que le nom de l’auteur de l’élément ?"
|
| 86 |
+
|
| 87 |
+
#: feedzy-rss-feeds-ui-lang.php:18
|
| 88 |
+
#: feedzy-rss-feeds-widget.php:85
|
| 89 |
+
#@ feedzy_rss_translate
|
| 90 |
+
msgid "Should we display a description (abstract) of the retrieved item?"
|
| 91 |
+
msgstr "Doit-on afficher la description (le résumé) de l’élément ?"
|
| 92 |
+
|
| 93 |
+
#: feedzy-rss-feeds-ui-lang.php:19
|
| 94 |
+
#: feedzy-rss-feeds-widget.php:88
|
| 95 |
+
#@ feedzy_rss_translate
|
| 96 |
+
msgid "Crop description (summary) of the element after X characters."
|
| 97 |
+
msgstr "Rogner la description (le résumé) de l’élément après X caractères."
|
| 98 |
+
|
| 99 |
+
#: feedzy-rss-feeds-ui-lang.php:20
|
| 100 |
+
#: feedzy-rss-feeds-widget.php:93
|
| 101 |
+
#@ feedzy_rss_translate
|
| 102 |
+
msgid "Should we display the first image of the content if it is available?"
|
| 103 |
+
msgstr "Doit-on afficher la première image du contenu si elle est disponible ?"
|
| 104 |
+
|
| 105 |
+
#: feedzy-rss-feeds-ui-lang.php:21
|
| 106 |
+
#: feedzy-rss-feeds-widget.php:96
|
| 107 |
+
#@ feedzy_rss_translate
|
| 108 |
+
msgid "Default thumbnail URL if no image is found."
|
| 109 |
+
msgstr "URL de la miniature par défaut si aucune image n’est trouvée."
|
| 110 |
+
|
| 111 |
+
#: feedzy-rss-feeds-ui-lang.php:22
|
| 112 |
+
#: feedzy-rss-feeds-widget.php:100
|
| 113 |
+
#@ feedzy_rss_translate
|
| 114 |
+
msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
|
| 115 |
+
msgstr "Dimensions de la miniature. Ne pas inclure “px”. Ex : 150"
|
| 116 |
+
|
| 117 |
+
#: feedzy-rss-feeds-ui-lang.php:23
|
| 118 |
+
#: feedzy-rss-feeds-widget.php:104
|
| 119 |
+
#@ feedzy_rss_translate
|
| 120 |
+
msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
|
| 121 |
+
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)"
|
| 122 |
+
|
| 123 |
+
#: feedzy-rss-feeds-ui-lang.php:24
|
| 124 |
+
#@ feedzy_rss_translate
|
| 125 |
+
msgid "Do not specify"
|
| 126 |
+
msgstr "Ne pas préciser"
|
| 127 |
+
|
| 128 |
+
#: feedzy-rss-feeds-ui-lang.php:25
|
| 129 |
+
#@ feedzy_rss_translate
|
| 130 |
+
msgid "No"
|
| 131 |
+
msgstr "Non"
|
| 132 |
+
|
| 133 |
+
#: feedzy-rss-feeds-ui-lang.php:26
|
| 134 |
+
#@ feedzy_rss_translate
|
| 135 |
+
msgid "Yes"
|
| 136 |
+
msgstr "Oui"
|
| 137 |
+
|
| 138 |
+
#: feedzy-rss-feeds-ui-lang.php:12
|
| 139 |
+
#: feedzy-rss-feeds-widget.php:57
|
| 140 |
+
#@ feedzy_rss_translate
|
| 141 |
+
msgid "The feed(s) URL (comma-separated list)."
|
| 142 |
+
msgstr "URL(s) du(des) flux RSS (liste séparée par des virgules)."
|
| 143 |
+
|
| 144 |
+
#: feedzy-rss-feeds-ui-lang.php:14
|
| 145 |
+
#@ feedzy_rss_translate
|
| 146 |
+
msgid "Should we display the RSS title?"
|
| 147 |
+
msgstr "Doit-on afficher le titre du flux RSS ?"
|
| 148 |
+
|
| 149 |
+
#. translators: plugin header field 'Name'
|
| 150 |
+
#: feedzy-rss-feed.php:0
|
| 151 |
+
#@ feedzy_rss_translate
|
| 152 |
+
msgid "FEEDZY RSS Feeds by b*web"
|
| 153 |
+
msgstr ""
|
| 154 |
+
|
| 155 |
+
#. translators: plugin header field 'Description'
|
| 156 |
+
#: feedzy-rss-feed.php:0
|
| 157 |
+
#@ feedzy_rss_translate
|
| 158 |
+
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."
|
| 159 |
+
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."
|
| 160 |
+
|
| 161 |
+
#. translators: plugin header field 'Author'
|
| 162 |
+
#: feedzy-rss-feed.php:0
|
| 163 |
+
#@ feedzy_rss_translate
|
| 164 |
+
msgid "Brice CAPOBIANCO"
|
| 165 |
+
msgstr ""
|
| 166 |
+
|
| 167 |
+
#. translators: plugin header field 'AuthorURI'
|
| 168 |
+
#: feedzy-rss-feed.php:0
|
| 169 |
+
#@ feedzy_rss_translate
|
| 170 |
+
msgid "http://b-website.com/"
|
| 171 |
+
msgstr ""
|
| 172 |
+
|
| 173 |
+
#. translators: plugin header field 'PluginURI'
|
| 174 |
+
#: feedzy-rss-feed.php:0
|
| 175 |
+
#@ feedzy_rss_translate
|
| 176 |
+
msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
|
| 177 |
+
msgstr "http://b-website.com/feedzy-rss-feeds-plugin-wordpress-gratuit-utilisant-simplepie"
|
| 178 |
+
|
| 179 |
+
#. translators: plugin header field 'Version'
|
| 180 |
+
#: feedzy-rss-feed.php:0
|
| 181 |
+
#@ feedzy_rss_translate
|
| 182 |
+
msgid "1.7.1"
|
| 183 |
+
msgstr ""
|
| 184 |
+
|
| 185 |
+
#: feedzy-rss-feeds-widget.php:10
|
| 186 |
+
#@ feedzy_wp_widget
|
| 187 |
+
msgid "Feedzy RSS Feeds"
|
| 188 |
+
msgstr ""
|
| 189 |
+
|
| 190 |
+
#: feedzy-rss-feeds-widget.php:49
|
| 191 |
+
#@ feedzy_rss_translate
|
| 192 |
+
msgid "Widget Title"
|
| 193 |
+
msgstr "Titre du Widget"
|
| 194 |
+
|
| 195 |
+
#: feedzy-rss-feeds-widget.php:53
|
| 196 |
+
#@ feedzy_rss_translate
|
| 197 |
+
msgid "Intro text"
|
| 198 |
+
msgstr "Texte d'intro"
|
| 199 |
+
|
