????
| Current Path : /home2/morganrand/www/wp-content/plugins/pinwheel-slider/includes/addons/ |
| Current File : /home2/morganrand/www/wp-content/plugins/pinwheel-slider/includes/addons/rssfeed.php |
<?php /* RSS feed Template tag and Shortcode */
function pinwheel_carousel_posts_on_slider_rssfeed($max_posts='5', $offset=0, $out_echo = '1', $set='',$feedurl='',$data=array() ) {
$r_array=array();
$default_pinwheel_slider_settings=get_pinwheel_slider_default_settings();
$pinwheel_slider_options='pinwheel_slider_options'.$set;
$pinwheel_slider_curr=get_option($pinwheel_slider_options);
$pinwheel_slider = get_option('pinwheel_slider_options');
if(!isset($pinwheel_slider_curr) or !is_array($pinwheel_slider_curr) or empty($pinwheel_slider_curr)){$pinwheel_slider_curr=$pinwheel_slider;$set='';}
$pinwheel_slider_curr= populate_pinwheel_current($pinwheel_slider_curr);
global $wpdb, $table_prefix;
$rand = $pinwheel_slider_curr['rand'];
if(isset($pinwheel_slider_curr['rand']) ){
$rand = $pinwheel_slider_curr['rand'];
}
$src=isset($data['src'])?$data['src']:'';
if($src=='smugmug'){
$feedurl = pinwheelrssfeed_decode_entities($feedurl);
if ( !empty($max_posts)) $feedurl = add_query_arg( 'ImageCount', $max_posts, $feedurl );
$rss = fetch_feed($feedurl);
if ( is_wp_error($rss) || empty($rss) || count($rss->get_items()) == 0 ) {
$slides = array();
}
else{
$size=isset($data['size'])?$data['size']:'XL';
$i=0;
$rss_items = $rss->get_items();
$offset = intval($offset);
if ( $offset < 0 )$offset = 0;
$items = array_slice($rss->get_items(), $offset);
foreach($items as $item) {
$slide=array();
$enclosures = $item->get_enclosures();
if ( count($enclosures) > 1 ) {
$thumb_url = $enclosures[1]->get_thumbnail();
$num_enclosures = count($enclosures);
switch ( $size ) {
case "Ti":
$enclosure_index = 0;
break;
case "Th":
$enclosure_index = 1;
break;
case "S":
$enclosure_index = 2;
break;
case "M":
$enclosure_index = 3;
break;
default:
case "L":
$enclosure_index = 4;
break;
case "X1":
case "XL":
$size = "XL";
$enclosure_index = 5;
break;
case "X2":
$enclosure_index = 6;
break;
case "X3":
$enclosure_index = 7;
break;
case "O":
$enclosure_index = 8;
break;
}
// Use the largest enclosure available
if ( $num_enclosures > $enclosure_index ) {
$photo_url = $enclosures[$enclosure_index]->get_link();
} else {
$photo_url = $enclosures[$num_enclosures - 1]->get_link();
}
$slide['post_title'] = htmlspecialchars(strip_tags($item->get_title()), ENT_COMPAT, 'ISO-8859-1', false);
$slide['ID'] = 0;
$slide['post_excerpt'] = (string) $item->get_description();
$slide['post_content'] = (string) $item->get_description();
$slide['content_for_image']=(isset($slide['post_content']) && $slide['post_content']!='')? $slide['post_content'] : $slide['post_excerpt'];
$slide['thumb_image'] = !empty($thumb_url)?$thumb_url:$photo_url;
$slide['media_image'] = $photo_url;
$slide['url']=$item->get_link();
$slide['redirect_url'] = '';
$slide['nolink'] = '';
$slide['pubDate'] = (string) $item->get_date();
$slide['author'] = (string) $item->get_author();
$slide['category'] = (string) $item->get_category();
$slide['order']=$data['order'];
$slide=(object) $slide;
$slides[]=$slide;
$i++;
if($i>=$max_posts and $rand!='1') break;
}
}
}
}
else{
$xml_source = @file_get_contents($feedurl, true);
$x="";
if(!empty($xml_source))
$x = simplexml_load_string($xml_source);
//$x = simplexml_load_file($feedurl);
$slides = array();
if(count($x) > 0){
$i=0;
if($data['feed']=='atom'){
if($x->entry){
foreach($x->entry as $item) {
$slide=array();
$slide['post_title'] = (string) $item->title;
$slide['ID'] = 0;
$slide['post_excerpt'] = (string) $item->summary;
$slide['post_content'] = (string) $item->content;
if(isset($item->children('content', TRUE)->encoded) and isset($data['content']) ) $slide['content_for_image'] = $item->children('content', TRUE)->encoded;
else $slide['content_for_image']=(isset($slide['post_content']) && $slide['post_content']!='')? $slide['post_content'] : $slide['post_excerpt'];
$slide['redirect_url'] = '';
$slide['nolink'] = '';
$slide['pubDate'] = (string) $item->published;
$slide['author'] = (string) $item->author;
$slide['category'] = (string) $item->category;
foreach($item->link as $link){
if( !isset( $slide['url'] ) ) $slide['url'] = ($item->link->attributes()->rel == 'alternate') ? ($item->link->attributes()->href) : '';
if( !isset( $slide['media_image'] ) ) $slide['media_image']= ($item->link->attributes()->rel == 'enclosure' and ($item->link->attributes()->type == "image/jpeg" or $item->link->attributes()->type == "image/png" ) ) ? ($item->link->attributes()->href) : '';
}
$slide=(object) $slide;
$slides[]=$slide;
$i++;
if($i>=$max_posts and $rand!='1') break;
}
}
}
else{
if(!empty($x)){
if($x->channel->item){
foreach($x->channel->item as $item)
{
$slide=array();
$slide['post_title'] = (string) $item->title;
$slide['ID'] = 0;
$slide['post_excerpt'] = (string) $item->description;
$slide['post_content'] = (string) $item->description;
if(isset($item->children('content', TRUE)->encoded) and isset($data['content']) ) $slide['content_for_image'] = $item->children('content', TRUE)->encoded;
else $slide['content_for_image']=$slide['post_content'];
$slide['redirect_url'] = '';
$slide['nolink'] = '';
$slide['url'] = (string) $item->link;
$slide['pubDate'] = (string) $item->pubDate;
if( isset($item->author) ) $slide['author'] = (string) $item->author;
else {
$namespaces = $item->getNameSpaces(true);
$dc = $item->children($namespaces['dc']);
$slide['author']=$dc->creator;
}
$slide['category'] = (string) $item->category;
if( isset($item->enclosure) )$slide['media_image']= ($item->enclosure->attributes()->type == "image/jpeg" or $item->enclosure->attributes()->type == "image/png") ? ($item->enclosure->attributes()->url) : '' ;
if(!isset($slide['media_image'])){
if(isset($item->children('media', TRUE)->content)) {
foreach($item->children('media', TRUE)->content as $media_content){
if(!isset($slide['media_image'])) $slide['media_image']= ($media_content->attributes()->medium == "image" ) ? ($media_content->attributes()->url) : '' ;
}
}
}
$slide['order']=$data['order'];
$slide=(object) $slide;
$slides[]=$slide;
$i++;
if($i>=$max_posts and $rand!='1') break;
}
}
}else{
echo "Please Enter Correct RSS Feed URL.";
return false;
}
}
if($rand=='1') {shuffle($slides);$slides=array_slice($slides, 0, $max_posts);}
/* Added for Offset */
$offset = intval($offset);
if ( $offset < 0 )$offset = 0;
$slides = array_slice($slides, $offset);
/* End - for Offset */
}
}
$r_array=pinwheel_global_data_processor( $slides, $pinwheel_slider_curr, $out_echo, $set, $data );
return $r_array;
}
function get_pinwheel_slider_feed($args='') {
$defaults=array('set'=>'', 'offset'=>0, 'feedurl'=>'', 'default_image'=>'', 'image_class'=>'', 'id'=>'1', 'feed'=>'', 'order'=>'0', 'content'=>'', 'media'=>'1', 'src'=>'', 'size'=>'');
$args = wp_parse_args( $args, $defaults );
extract( $args );
$default_pinwheel_slider_settings=get_pinwheel_slider_default_settings();
// If setting set is 1 then set to blank
if($set == '1') $set = '';
$pinwheel_slider_options='pinwheel_slider_options'.$set;
$pinwheel_slider_curr=get_option($pinwheel_slider_options);
$pinwheel_slider = get_option('pinwheel_slider_options');
if(!isset($pinwheel_slider_curr) or !is_array($pinwheel_slider_curr) or empty($pinwheel_slider_curr)){$pinwheel_slider_curr=$pinwheel_slider;$set='';}
$pinwheel_slider_curr= populate_pinwheel_current($pinwheel_slider_curr);
$slider_handle='pinwheel_slider_f'.$id;
$data['slider_handle']=$slider_handle;
$data['image_class']=$image_class;
$data['default_image']=$default_image;
$data['feed']=$feed;
$data['order']=$order;
if(!empty($content)) $data['content']=$content;
$data['media']=$media;
$data['title']=$title;
$data['preload']='true';
$data['src']=$src;
$data['size']=$size;
$r_array = pinwheel_carousel_posts_on_slider_rssfeed($pinwheel_slider_curr['no_posts'], $offset, '0', $set, $feedurl, $data);
get_global_pinwheel_slider($slider_handle,$r_array,$pinwheel_slider_curr,$set,$echo='1',$data);
}
function return_pinwheel_slider_rssfeed($set='', $offset=0, $feedurl='', $default_image='', $image_class='', $id='1',$feed='', $order='0', $content='', $media='1', $title='', $src='', $size='') {
$slider_html='';
$default_pinwheel_slider_settings=get_pinwheel_slider_default_settings();
// If setting set is 1 then set to blank
if($set == '1') $set = '';
$pinwheel_slider_options='pinwheel_slider_options'.$set;
$pinwheel_slider_curr=get_option($pinwheel_slider_options);
$pinwheel_slider = get_option('pinwheel_slider_options');
if(!isset($pinwheel_slider_curr) or !is_array($pinwheel_slider_curr) or empty($pinwheel_slider_curr)){$pinwheel_slider_curr=$pinwheel_slider;$set='';}
$pinwheel_slider_curr= populate_pinwheel_current($pinwheel_slider_curr);
$slider_handle='pinwheel_slider_f'.$id;
$data['slider_handle']=$slider_handle;
$data['image_class']=$image_class;
$data['default_image']=$default_image;
$data['feed']=$feed;
$data['order']=$order;
if(!empty($content)) $data['content']=$content;
$data['media']=$media;
$data['title']=$title;
$data['preload']='true';
$data['src']=$src;
$data['size']=$size;
$r_array = pinwheel_carousel_posts_on_slider_rssfeed($pinwheel_slider_curr['no_posts'], $offset, '0', $set, $feedurl, $data);
//get slider
$output_function='return_global_pinwheel_slider';
$slider_html=$output_function($slider_handle,$r_array,$pinwheel_slider_curr,$set,$echo='0',$data);
return $slider_html;
}
function pinwheel_slider_rssfeed_shortcode($atts) {
extract(shortcode_atts(array(
'set' => '',
'offset'=>'0',
'id'=>'',
'feedurl'=>'',
'default_image'=>'',
'image_class'=>'',
'feed'=>'',
'order'=>'0',
'content'=>'',
'media'=>'1',
'title'=>'',
'src'=>'',
'size'=>'',
), $atts));
return return_pinwheel_slider_rssfeed($set,$offset,$feedurl,$default_image,$image_class,$id,$feed,$order,$content,$media,$title,$src,$size);
}
add_shortcode('pinwheelfeed', 'pinwheel_slider_rssfeed_shortcode');
//Convert the encoded html to normal HTML characters in feed url
function pinwheelrssfeed_decode_entities($text, $quote_style = ENT_COMPAT){
if ( function_exists('html_entity_decode') ) {
$text = html_entity_decode($text, $quote_style, 'ISO-8859-1');
} else {
$trans_tbl = get_html_translation_table(HTML_ENTITIES, $quote_style);
$trans_tbl = array_flip($trans_tbl);
$text = strtr($text, $trans_tbl);
}
$text = preg_replace_callback('~&#x([0-9a-f]+);~i',
create_function ('$matches', 'return chr(hexdec($matches[1]));'),
$text);
/*
$text = preg_replace_callback('/(0-9)([a-f])/',
create_function ('$matches', 'return chr(hexdec($matches[1]));'),
$text);
*/
//preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $text);
$text = preg_replace_callback('~&#([0-9]+);~',
create_function ('$matches', 'return chr($matches[1]);'),
$text);
// preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $text);
return $text;
}
?>