Pastebin is 300% more awesome when you are logged in. Sign Up, it's FREE!
Guest

Bloggroll RSS widget upgrade

By: ryanhellyer on Sep 12th, 2012  |  syntax: PHP  |  size: 22.13 KB  |  hits: 64  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2. /*
  3. Plugin Name: Blogroll Widget with RSS Feeds
  4. Description: Displays the recent posts of your blogroll links via RSS Feeds in a customizable sidebar widget
  5. Plugin URI:  http://www.officetrend.de/2684/wordpress-plugin-blogroll-widget-with-rss-feeds/
  6. Version:     2.0
  7. Author:      Tanja Preu&szlig;e
  8. Author URI:  http://www.officetrend.de/
  9.  
  10.     This program is free software; you can redistribute it and/or modify
  11.     it under the terms of the GNU General Public License as published by
  12.     the Free Software Foundation; either version 2 of the License, or
  13.     (at your option) any later version.
  14.  
  15.     This program is distributed in the hope that it will be useful,
  16.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.     GNU General Public License for more details.
  19. */
  20.  
  21. Class Blogroll_Widget_RSS Extends WP_Widget {
  22.  
  23.         function Blogroll_Widget_RSS() {
  24.                 if (function_exists('load_plugin_textdomain'))
  25.         load_plugin_textdomain('blogroll-widget-rss', PLUGINDIR.'/'.dirname(plugin_basename(__FILE__)).'/languages', dirname(plugin_basename(__FILE__)).'/languages');
  26.  
  27.                 $widget_ops = array('classname' => 'blogroll_widget_rss',
  28.                                                 'description' => __( 'The recent posts of your blogroll links', 'blogroll-widget-rss') );
  29.                 $control_ops = array( 'width' => 400);
  30.                 $this->WP_Widget ( 'blogroll_widet_rss', 'Blogroll Widget with RSS Feeds', $widget_ops, $control_ops);
  31.         }
  32.        
  33.         function widget($args, $instance) {
  34.                 extract($args);
  35.                
  36.                 echo $before_widget;
  37.                
  38.                 $title = empty($instance['title']) ? '&nbsp;' : apply_filters('widget_title', $instance['title']);
  39.                 if ( !empty( $title ) ) { echo $before_title . $title . $after_title; };
  40.  
  41.                 $blogroll_rss_widget = get_transient( 'blogroll-rss-widget' );
  42.                 if ( false === $blogroll_rss_widget ) {
  43.                         ob_start();
  44.        
  45.                         $category = isset($instance['category']) ? $instance['category'] : false;
  46.        
  47.                         $item_order = empty( $instance['item_order'] ) ? 'link_name ASC' : $instance['item_order'];    
  48.                         $show_image = empty( $instance['show_image'] ) ? 'show-no-images' : $instance['show_image'];
  49.                         $show_link = $instance['show_link'] ? '1' : '0';
  50.                         $show_link_nf = $instance['show_link_nf'] ? '1' : '0';
  51.                         $shorten_feedlink = $instance['shorten_feedlink'] ? '1' : '0';
  52.                         $feed_link_nf = $instance['show_link_nf'] ? '1' : '0';
  53.                         $show_summary = $instance['show_summary'] ? '1' : '0';
  54.                        
  55.                         if ( !$show_items = (int) $instance['show_items'] )
  56.                                 $show_items = -1;
  57.                         elseif ( $show_items < -1 )
  58.                                 $show_items = -1;
  59.                                
  60.                         if ( !$thumb_size = (int) $instance['thumb_size'] )
  61.                                 $thumb_size = 50;
  62.                         elseif ( $thumb_size < 10 )
  63.                                 $thumb_size = 50;
  64.                                
  65.                         if ( !$feed_items = (int) $instance['feed_items'] )
  66.                                 $feed_items = 1;
  67.                         elseif ( $feed_items > 10 )
  68.                                 $feed_items = 10;
  69.                         elseif ( $feed_items < 1 )
  70.                                 $feed_items = 1;
  71.                        
  72.                         if ( !$s_f_length = (int) $instance['s_f_length'] )
  73.                                 $s_f_length = 20;
  74.                         elseif ( $s_f_length < 1 )
  75.                                 $s_f_length = 1;
  76.                                
  77.                         if ( !$summary_length = (int) $instance['summary_length'] )
  78.                                 $summary_length = 100;
  79.                         else if ( $summary_length < 10 )
  80.                                 $summary_length = 10;
  81.                         else if ( $summary_length > 999 )
  82.                                 $summary_length = 999; 
  83.  
  84.                         // Load the widget
  85.                         show_blogroll_widget_rss( $instance );
  86.                        
  87.                         $blogroll_rss_widget = ob_get_contents(); // Grab widget contents from buffer
  88.                         ob_end_clean();
  89.                         set_transient( 'blogroll-rss-widget', $blogroll_rss_widget, 60 * 3 ); // Store widget contents in transient
  90.                 }
  91.  
  92.                 // Finally, display the widget contents
  93.                 echo $blogroll_rss_widget;
  94.  
  95.                 echo $after_widget;
  96.         }
  97.        
  98.         function update($new_instance, $old_instance) {
  99.                 $instance = $old_instance;
  100.                 $new_instance = wp_parse_args( (array) $new_instance, array(
  101.                         'title' => '',
  102.                         'show_items' => -1,
  103.                         'category' => false,
  104.                         'item_order' => 'link_name ASC',
  105.                         'show_image' => 'show-no-images',
  106.                         'thumb_size' => 50,
  107.                         'show_link' => 0,
  108.                         'show_link_nf' => 0,
  109.                         'feed_items' => 1,
  110.                         'shorten_feedlink' => 0,
  111.                         's_f_length' => 20,
  112.                         'feed_link_nf' => 0,
  113.                         'show_summary' => 0,
  114.                         'summary_length' => 100 ) );
  115.                 $instance['title'] = strip_tags($new_instance['title']);
  116.                 $instance['show_items'] = (int) $new_instance['show_items'];
  117.                 $instance['category'] = intval($new_instance['category']);
  118.                 $instance['item_order'] = htmlspecialchars($new_instance['item_order']);
  119.                 $instance['show_image'] = htmlspecialchars($new_instance['show_image']);
  120.                 $instance['thumb_size'] = (int) $new_instance['thumb_size'];
  121.                 $instance['show_link'] = $new_instance['show_link'] ? 1 : 0;
  122.                 $instance['show_link_nf'] = $new_instance['show_link_nf'] ? 1 : 0;
  123.                 $instance['feed_items'] = (int) $new_instance['feed_items'];
  124.                 $instance['shorten_feedlink'] = $new_instance['shorten_feedlink'] ? 1 : 0;
  125.                 $instance['s_f_length'] = (int) $new_instance['s_f_length'];
  126.                 $instance['feed_link_nf'] = $new_instance['feed_link_nf'] ? 1 : 0;
  127.                 $instance['show_summary'] = $new_instance['show_summary'] ? 1 : 0;                             
  128.                 $instance['summary_length'] = (int) $new_instance['summary_length'];
  129.                
  130.                 return $instance;
  131.         }
  132.  
  133.         function form($instance) {                     
  134.                 $instance = wp_parse_args( (array) $instance, array(
  135.                         'title' => '',
  136.                         'show_items' => -1,
  137.                         'category' => false,
  138.                         'item_order' => 'link_name ASC',
  139.                         'show_image' => 'show-no-images',
  140.                         'show_link' => 0,
  141.                         'thumb_size' => 50,
  142.                         'show_link_nf' => 0,
  143.                         'feed_items' => 1,
  144.                         'shorten_feedlink' => 0,
  145.                         's_f_length' => 20,
  146.                         'feed_link_nf' => 0,
  147.                         'show_summary' => 0,
  148.                         'summary_length' => 100 ) );
  149.                 $title = strip_tags($instance['title']);
  150.                 $link_cats = get_terms( 'link_category');
  151.                 $item_order = htmlspecialchars($instance['item_order']);
  152.                 $show_image = htmlspecialchars($instance['show_image']);
  153.                 $show_link = $instance['show_link'] ? 'checked="checked"' : '';
  154.                 $show_link_nf = $instance['show_link_nf'] ? 'checked="checked"' : '';
  155.                 $shorten_feedlink = $instance['shorten_feedlink'] ? 'checked="checked"' : '';
  156.                 $feed_link_nf = $instance['feed_link_nf'] ? 'checked="checked"' : '';
  157.                 $show_summary = $instance['show_summary'] ? 'checked="checked"' : '';
  158.                
  159.                 if ( !$show_items = (int) $instance['show_items'] )
  160.                         $show_items = -1;
  161.         elseif ( $show_items < -1 )
  162.                         $show_items = -1;
  163.        
  164.         if ( !$thumb_size = (int) $instance['thumb_size'] )
  165.                         $thumb_size = 50;
  166.         elseif ( $thumb_size < 10 )
  167.                         $thumb_size = 50;
  168.                
  169.                 if ( !$feed_items = (int) $instance['feed_items'] )
  170.                         $feed_items = 1;
  171.         elseif ( $feed_items > 10 )
  172.                         $feed_items = 10;
  173.                  elseif ( $feed_items < 1 )
  174.                         $feed_items = 1;
  175.                
  176.                 if ( !$s_f_length = (int) $instance['s_f_length'] )
  177.                         $s_f_length = 20;
  178.                 elseif ( $s_f_length < 1 )
  179.                         $s_f_length = 1;
  180.                        
  181.         if ( !$summary_length = (int) $instance['summary_length'] )
  182.                         $summary_length = 100;
  183.                 else if ( $summary_length < 10 )
  184.                         $summary_length = 10;
  185.                 else if ( $summary_length > 999 )
  186.                         $summary_length = 999;
  187.  
  188. ?>
  189.                 <p>
  190.                         <small><?php _e('Make sure, that you have entered the right RSS Addresses to your links in the Links Subpanel. Otherwise this plugin will not work correctly. No item is shown when a wrong or no RSS Address is entered!', 'blogroll-widget-rss');?></small>
  191.                 </p>
  192.                
  193.                 <p style="border-bottom:1px solid #DFDFDF;"><strong><?php _e('Widget Settings:', 'blogroll-widget-rss');?></strong></p>
  194.                
  195.                 <p>
  196.                         <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:', 'blogroll-widget-rss');?></label>
  197.                         <input id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $instance['title']; ?>" size="50" />
  198.                 </p>
  199.                
  200.                 <p>
  201.                         <label for="<?php echo $this->get_field_id('show_items'); ?>"><?php _e('Display items:', 'blogroll-widget-rss');?></label>
  202.                     <input id="<?php echo $this->get_field_id('show_items'); ?>" name="<?php echo $this->get_field_name('show_items'); ?>" type="text" value="<?php echo $show_items; ?>" size="3" />
  203.                         <span class="description"><small><?php _e(' (-1 will display all items)', 'blogroll-widget-rss'); ?></small></span>
  204.                 </p>
  205.                
  206.                 <p>
  207.                         <?php _e('Display items from link category:', 'blogroll-widget-rss');?>
  208.                         <label for="<?php echo $this->get_field_id('category'); ?>" class="screen-reader-text"><?php _e('Select Link Category', 'blogroll-widget-rss'); ?></label>
  209.                         <select style="width: 150px;" id="<?php echo $this->get_field_id('category'); ?>" name="<?php echo $this->get_field_name('category'); ?>">
  210.                         <option value=""><?php _e('All Links', 'blogroll-widget-rss'); ?></option>
  211.                                 <?php
  212.                                 foreach ( $link_cats as $link_cat ) {
  213.                                         echo '<option value="' . intval($link_cat->term_id) . '"'
  214.                                                 . ( $link_cat->term_id == $instance['category'] ? ' selected="selected"' : '' )
  215.                                                 . '>' . $link_cat->name . "</option>\n";
  216.                                 }
  217.                                 ?>
  218.                         </select>
  219.                 </p>
  220.                
  221.                 <p>
  222.                         <?php _e('Item order:', 'blogroll-widget-rss');?>
  223.                         <label for="<?php echo $this->get_field_id('item_order'); ?>" class="screen-reader-text"><?php _e('Select Item Order', 'blogroll-widget-rss'); ?></label>
  224.                         <select id="<?php echo $this->get_field_id('item_order'); ?>" name="<?php echo $this->get_field_name('item_order'); ?>">
  225.                                 <option value="link_name ASC"<?php echo ($item_order === 'link_name ASC' ? ' selected="selected"' : '' ); ?>><?php _e('Link Name Ascending', 'blogroll-widget-rss'); ?></option>
  226.                                 <option value="link_name DESC"<?php echo ($item_order === 'link_name DESC' ? ' selected="selected"' : '' ); ?>><?php _e('Link Name Descending', 'blogroll-widget-rss'); ?></option>
  227.                                 <option value="link_id ASC"<?php echo ($item_order === 'link_id ASC' ? ' selected="selected"' : '' ); ?>><?php _e('Link ID Ascending', 'blogroll-widget-rss'); ?></option>
  228.                                 <option value="link_id DESC"<?php echo ($item_order === 'link_id DESC' ? ' selected="selected"' : '' ); ?>><?php _e('Link ID Descending', 'blogroll-widget-rss'); ?></option>
  229.                                 <option value="rand()"<?php echo ($item_order === 'rand()' ? ' selected="selected"' : '' ); ?>><?php _e('Random Order', 'blogroll-widget-rss'); ?></option>
  230.                         </select>
  231.                         <span class="description"><br /><small>&nbsp;&nbsp;&nbsp;<?php _e('("Random Order" is recommended for less than all items)', 'blogroll-widget-rss'); ?></small></span>
  232.                 </p>
  233.                
  234.                 <p style="border-bottom:1px solid #DFDFDF;"><strong><?php _e('Items Configuration:', 'blogroll-widget-rss'); ?></strong></p>
  235.                
  236.                 <table width="400">
  237.                         <tr>
  238.                         <td colspan="2">
  239.                                 <p>
  240.                                         <?php _e('Show link images:', 'blogroll-widget-rss');?>
  241.                                         <label for="<?php echo $this->get_field_id('show_image'); ?>" class="screen-reader-text"><?php _e('Select if you want to show images', 'blogroll-widget-rss'); ?></label>
  242.                                         <select id="<?php echo $this->get_field_id('show_image'); ?>" name="<?php echo $this->get_field_name('show_image'); ?>">
  243.                                                 <option value="show-no-images"<?php echo ($show_image === 'show-no-images' ? ' selected="selected"' : '' ); ?>><?php _e('Show no images', 'blogroll-widget-rss'); ?></option>
  244.                                                 <option value="show-my-own-images"<?php echo ($show_image === 'show-my-own-images' ? ' selected="selected"' : '' ); ?>><?php _e('Show my own images', 'blogroll-widget-rss'); ?></option>
  245.                                                 <option value="create-thumbnails"<?php echo ($show_image === 'create-thumbnails' ? ' selected="selected"' : '' ); ?>><?php _e('Create and show thumbnails (not recommended!)', 'blogroll-widget-rss'); ?></option>
  246.                                         </select>
  247.                                 </p>
  248.                                
  249.                                 <p style="padding-left:25px;">
  250.                                         <input id="<?php echo $this->get_field_id('thumb_size'); ?>" name="<?php echo $this->get_field_name('thumb_size'); ?>" type="text" value="<?php echo $thumb_size; ?>" size="3" />
  251.                                         <label for="<?php echo $this->get_field_id('thumb_size'); ?>"><?php _e('Pixel (image size)', 'blogroll-widget-rss');?></label>
  252.                                 </p>
  253.                         </td>
  254.                         </tr>
  255.                        
  256.                         <tr>
  257.                         <td colspan="2">
  258.                                 <p style="margin-left:10px; margin-right:10px; border-bottom:1px dotted #DFDFDF;"></p>
  259.                         </td>
  260.                         </tr>
  261.                        
  262.                         <tr>
  263.                         <td width="55%">
  264.                                 <p>
  265.                                         <input class="checkbox" type="checkbox" <?php echo $show_link; ?> id="<?php echo $this->get_field_id( 'show_link' ); ?>" name="<?php echo $this->get_field_name( 'show_link' ); ?>" />
  266.                                         <label for="<?php echo $this->get_field_id( 'show_link' ); ?>"><?php _e('Show blogroll links ?', 'blogroll-widget-rss'); ?></label>
  267.                                 </p>
  268.                         </td>
  269.                         <td width="45%">
  270.                                 <p>
  271.                                         <input class="checkbox" type="checkbox" <?php echo $show_link_nf; ?> id="<?php echo $this->get_field_id( 'show_link_nf' ); ?>" name="<?php echo $this->get_field_name( 'show_link_nf' ); ?>" />
  272.                                         <label for="<?php echo $this->get_field_id( 'show_link_nf' ); ?>"><?php _e('Add rel="nofollow" ?', 'blogroll-widget-rss'); ?></label>
  273.                                 </p>
  274.                         </td>
  275.                         </tr>
  276.                        
  277.                         <tr>
  278.                         <td colspan="2">
  279.                                 <p style="margin-left:10px; margin-right:10px; border-bottom:1px dotted #DFDFDF;"></p>
  280.                         </td>
  281.                         </tr>
  282.                        
  283.                         <tr>
  284.                         <td width="55%">
  285.                                 <p>
  286.                                         <label for="<?php echo $this->get_field_id('feed_items'); ?>"><?php _e('Display feed post links:', 'blogroll-widget-rss');?></label>
  287.                                         <input id="<?php echo $this->get_field_id('feed_items'); ?>" name="<?php echo $this->get_field_name('feed_items'); ?>" type="text" value="<?php echo $feed_items; ?>" size="2" />
  288.                                         <span class="description"><small><br /><?php _e('(between 1 and 10)', 'blogroll-widget-rss'); ?></small></span>
  289.                                 </p>
  290.                                 <p>
  291.                                         <input class="checkbox" type="checkbox" <?php echo $shorten_feedlink; ?> id="<?php echo $this->get_field_id( 'shorten_feedlink' ); ?>" name="<?php echo $this->get_field_name( 'shorten_feedlink' ); ?>" />
  292.                                         <label for="<?php echo $this->get_field_id( 'shorten_feedlink' ); ?>"><?php _e('Shorten feed post link text ?', 'blogroll-widget-rss'); ?></label>
  293.                                 </p>
  294.                         </td>
  295.                         <td width="45%">
  296.                                 <p>
  297.                                         <input class="checkbox" type="checkbox" <?php echo $feed_link_nf; ?> id="<?php echo $this->get_field_id( 'feed_link_nf' ); ?>" name="<?php echo $this->get_field_name( 'feed_link_nf' ); ?>" />
  298.                                         <label for="<?php echo $this->get_field_id( 'feed_link_nf' ); ?>"><?php _e('Add rel="nofollow" ?', 'blogroll-widget-rss'); ?></label>
  299.                                 </p>
  300.                                 <br />
  301.                                 <p>
  302.                                         <label for="<?php echo $this->get_field_id('s_f_length'); ?>"><?php _e('shorten to', 'blogroll-widget-rss');?></label>
  303.                                         <input id="<?php echo $this->get_field_id('s_f_length'); ?>" name="<?php echo $this->get_field_name('s_f_length'); ?>" type="text" value="<?php echo $s_f_length; ?>" size="2" />
  304.                                         <?php _e('characters', 'blogroll-widget-rss');?>
  305.                                 </p>
  306.                         </td>
  307.                         </tr>
  308.                        
  309.                         <tr>
  310.                         <td colspan="2">
  311.                                 <p style="margin-left:10px; margin-right:10px; border-bottom:1px dotted #DFDFDF;"></p>
  312.                         </td>
  313.                         </tr>
  314.                        
  315.                         <tr>
  316.                         <td width="55%">
  317.                                 <p>
  318.                                         <input class="checkbox" type="checkbox" <?php echo $show_summary; ?> id="<?php echo $this->get_field_id( 'show_summary' ); ?>" name="<?php echo $this->get_field_name( 'show_summary' ); ?>" />
  319.                                         <label for="<?php echo $this->get_field_id( 'show_summary' ); ?>"><?php _e('Show feed post excerpts ?', 'blogroll-widget-rss'); ?></label>
  320.                                 </p>
  321.                         </td>
  322.                         <td width="45%">
  323.                                 <p>
  324.                                         <input id="<?php echo $this->get_field_id('summary_length'); ?>" name="<?php echo $this->get_field_name('summary_length'); ?>" type="text" value="<?php echo $summary_length; ?>" size="3" />
  325.                                         <label for="<?php echo $this->get_field_id('summary_length'); ?>"><?php _e('Characters for excerpts', 'blogroll-widget-rss'); ?></label>
  326.                                         <span class="description"><small><?php _e('(between 10 and 999)', 'blogroll-widget-rss'); ?></small></span>
  327.                                 </p>
  328.                         </td>
  329.                         </tr>
  330.                        
  331.                         <tr>
  332.                         <td colspan="2">
  333.                                 <p style="margin-left:10px; margin-right:10px; border-bottom:1px dotted #DFDFDF;"></p>
  334.                         </td>
  335.                         </tr>
  336.                        
  337.                 </table>
  338.                
  339. <?php
  340.         }
  341. }
  342.  
  343. add_action('widgets_init', create_function('', 'return register_widget("Blogroll_Widget_RSS");'));
  344.  
  345. function br_w_r_shorten($string, $length) {
  346.         $suffix = '...';
  347.         $short_desc = trim(str_replace(array("\r","\n", "\t"), ' ', strip_tags($string)));
  348.         $desc = trim(substr($short_desc, 0, $length));
  349.         $lastchar = substr($desc, -1, 1);
  350.         if ($lastchar == '.' || $lastchar == '!' || $lastchar == '?') $suffix='';
  351.         $desc .= $suffix;
  352.         return $desc;
  353. }
  354.  
  355. function br_w_r_t_shorten($string, $length) {
  356.         $suffix = '...';
  357.         $short_tit = trim(str_replace(array("\r","\n", "\t"), ' ', strip_tags($string)));
  358.         $tit = trim(substr($short_tit, 0, $length));
  359.         $lastchar = substr($tit, -1, 1);
  360.         if ($lastchar == '.' || $lastchar == '!' || $lastchar == '?') $suffix='';
  361.         $tit .= $suffix;
  362.         return $tit;
  363. }
  364.  
  365. function show_blogroll_widget_rss( $args = array() ) {
  366.         $default_args = array (
  367.                 'show_items' => -1 ,
  368.                 'category' => false,
  369.                 'item_order' => 'link_name ASC',
  370.                 'show_image' => 'show-no-images',
  371.                 'thumb_size' => 50,
  372.                 'show_link' => 0,
  373.                 'show_link_nf' => 0,
  374.                 'feed_items' => 1,
  375.                 'shorten_feedlink' => 0,
  376.                 's_f_length' => 20,
  377.                 'feed_link_nf' => 0,
  378.                 'show_summary' => 0,
  379.                 'summary_length' => 100);
  380.         $args = wp_parse_args( $args, $default_args );
  381.         extract( $args );
  382.        
  383.         $show_items = (int) $show_items;
  384.         $thumb_size = (int) $thumb_size;
  385.         $show_link = (int) $show_link;
  386.         $show_link_nf = (int) $show_link_nf;          
  387.         $feed_items = (int) $feed_items;
  388.         $shorten_feedlink = (int) $shorten_feedlink;
  389.         $s_f_length = (int) $s_f_length;
  390.         $feed_link_nf = (int) $feed_link_nf;
  391.         $show_summary = (int) $show_summary;
  392.         $summary_length = (int) $summary_length;
  393.        
  394.         global $wpdb;
  395.                
  396.         if ( $category != 0 )
  397.                 $qu_cat_t = " AND tt.term_id = $category ";
  398.                
  399.         $queryString = "
  400.                 SELECT * FROM $wpdb->links
  401.                 INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id)
  402.                 INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id
  403.                 WHERE $wpdb->links.link_visible = 'Y'
  404.                  AND $wpdb->links.link_rss != ''
  405.                  AND tt.taxonomy = 'link_category'
  406.                  $qu_cat_t
  407.                 Order by $item_order";
  408.         if ( $show_items != -1)
  409.                 $queryString .= " LIMIT $show_items";
  410.                
  411.         $blbm_links = $wpdb->get_results($queryString);
  412.        
  413.         if (empty($blbm_links)) {
  414.        
  415.                 echo '<ul><li>';
  416.                 _e('No RSS Addresses are entered to your links in the Links SubPanel, therefore no items can be shown!', 'blogroll-widget-rss');
  417.                 echo '</li></ul>';
  418.                
  419.         } else {
  420.        
  421.                 add_filter( 'wp_feed_cache_transient_lifetime', create_function( '$a', 'return 1800;' ) );
  422.                 include_once(ABSPATH . WPINC . '/feed.php');
  423.                
  424.                 echo '<ul>';
  425.        
  426.                 foreach ($blbm_links as $blbm_link) :  
  427.                        
  428.                         echo '<li>';
  429.                        
  430.                         if ( $show_image != "show-no-images" ) {
  431.                                 $thumb_h = $thumb_size/4;
  432.                                 $thumb_height = $thumb_h*3;
  433.                                 if ( $show_image == "show-my-own-images" && $blbm_link->link_image != "" ) {
  434.                                 echo '<div style="float:left; margin:3px 3px 0 0;">
  435.                                         <img style="width:'.$thumb_size.'px;"
  436.                                         src="'.$blbm_link->link_image.'" alt="'.$blbm_link->link_name.'" title="'.$blbm_link->link_name.'" />
  437.                                         </div>';
  438.                                 }
  439.                        
  440.                                 if ( $show_image == "create-thumbnails" ) {
  441.                                 echo '<div style="float:left; margin:3px 3px 0 0;">
  442.                                         <img style="width:'.$thumb_size.'px; height:'.$thumb_height.'px;"
  443.                                         src="http://www.m-software.de/screenshot/Screenshot.png?url='.$blbm_link->link_url.'&commingsoonimg=http%3A%2F%2Fwww.m-software.de%2Fuploads%2Fcommingsoon.png"
  444.                                         alt="'.$blbm_link->link_name.'" title="'.$blbm_link->link_name.'"/>
  445.                                         </div>';
  446.                                 }
  447.                         }
  448.                                        
  449.                         $blbm_target = $blbm_link->link_target;
  450.                        
  451.                         if ( $show_link ) {
  452.                                 echo '<a ';
  453.                                 if ( $blbm_target ) {
  454.                                         echo 'target="'.$blbm_target.'" ';
  455.                                 }
  456.                                 if ( $show_link_nf ) {
  457.                                         echo 'rel="nofollow" ';
  458.                                 }
  459.                                 echo 'href="'.$blbm_link->link_url.'">'.$blbm_link->link_name.'</a><br />';
  460.                         }
  461.                        
  462.                         $blbm_url = esc_attr($blbm_link->link_rss);                    
  463.                         $blbm_rss = fetch_feed($blbm_url);
  464.                        
  465.                         if ( is_wp_error($blbm_rss) ) {
  466.                                 $filestring = file_get_contents($blbm_url);
  467.                                         $startpos = 0;
  468.                                                 while ($pos = strpos($filestring, "application/rss+xml", $startpos)) {
  469.                                                 $string = substr($filestring, $pos, strpos($filestring, "/>", $pos +1)  - $pos);
  470.                                                 $startpos = $pos + 1;
  471.                                         }
  472.                                         $startpos = 0;
  473.                                                 while ($pos = strpos($string, 'href="', $startpos)) {
  474.                                                 $blbm_url = substr(substr($string, $pos + 6), 0, strpos(substr($string, $pos + 6), '"'));
  475.                                                 $startpos = $pos + 1;
  476.                                         }
  477.                                         $blbm_rss = fetch_feed($blbm_url);
  478.                                        
  479.                                         if (is_wp_error($blbm_rss)) {
  480.                                                 //echo $rss->get_error_message().'<br />';
  481.                                                 //echo __( 'An error has occurred; the feed is probably down. Try again later.' ) . '</li>';
  482.                                                 if ( $show_image != "show-no-images" ) {
  483.                                                         echo'<div style="clear:both; margin-bottom:3px;"></div>';
  484.                                                 }
  485.                                                 echo '</li>';
  486.                                                 unset($blbm_rss);
  487.                                                 continue;
  488.                                         }
  489.                         }
  490.                        
  491.                         if ( !is_wp_error($blbm_rss) ) {
  492.                                
  493.                                 if ( $feed_items < 1 )
  494.                                         $feed_items = 1;
  495.                        
  496.                                 $blbm_rss_items = $blbm_rss->get_items( 0, $blbm_rss->get_item_quantity($feed_items) );
  497.                                
  498.                                 foreach ( $blbm_rss_items as $item ) :  
  499.                                        
  500.                                         $tit_l = $item->get_title();
  501.                                         $tit_c = strlen($tit_l);
  502.                                        
  503.                                         echo '<a ';
  504.                                                 if ( $blbm_target ) {
  505.                                                         echo 'target="'.$blbm_target.'" ';
  506.                                                 }
  507.                                         //echo '<a target="_blank" ';
  508.                                                
  509.                                         if ( $feed_link_nf ) {
  510.                                                 echo 'rel="nofollow" ';
  511.                                         }
  512.                                        
  513.                                         if ( $shorten_feedlink && $tit_c > $s_f_length) {
  514.                                                 $tit = br_w_r_t_shorten($item->get_title(),$s_f_length);
  515.                                                 echo 'href="'.$item->get_permalink().'">'.$tit.'</a>';
  516.                                         } else {
  517.                                                 echo 'href="'.$item->get_permalink().'">'.$item->get_title().'</a>';
  518.                                         }
  519.                                        
  520.                                         if ( $show_summary ) {
  521.                                                 $desc = br_w_r_shorten($item->get_description(),$summary_length);
  522.                                                 echo ': <cite>'.$desc.'</cite>';
  523.                                         }
  524.                                                
  525.                                         echo '<br />';
  526.                                                
  527.                                 endforeach;
  528.                                                                                        
  529.                                 if ( $show_image != "show-no-images" ) {
  530.                                         echo'<div style="clear:both;"></div>';
  531.                                 }
  532.                                
  533.                                 echo'</li>';
  534.  
  535.                         }
  536.                
  537.                 endforeach;
  538.                
  539.                 echo '</ul>';
  540.                
  541.                 if ( $show_image == "create-thumbnails") {
  542.                         echo'<div align="center"><small>
  543.                                 <a target="_blank" rel="nofollow" href="http://www.m-software.de/thumbshots.html">Thumbnails by M-Software.de
  544.                                 </a></small></div>';
  545.                 }
  546.                
  547.                 //$blbm_rss->__destruct();
  548.                 unset($blbm_rss);
  549.                
  550.                 remove_filter( 'wp_feed_cache_transient_lifetime', create_function( '$a', 'return 1800;' ) );  
  551.                
  552.         }      
  553. }
  554.  
  555. ?>