Jump to content

Positioning element to top


marcusday

Recommended Posts

I'm kind of noob to php.

 

I'm using Wordpress 3.6.1 and I installed a plugin to show feeds from a FB page.

 

The plugin is called 'FBF Facebook Page Feed'.

 

I've added the shortcode to a page and it shows up now like this: http://i.imgbox.com/acwv7yRS.jpg

 
But, I would like the timestamp to show at the top of the post.
 
Here is the code responsible: 
 
<?php
/*
Plugin Name: FBF - Facebook Page Feed Widget
Description: Displays your Facebook Page feed in the sidbar of your blog.Simply add your pageID and all your visitors can see your staus!
Author: Lakshmanan PHP
Version: 1.2.1
*/

/* 
   Version 1.0 - update - Showing avatar, shor code, widget styles 25-aug-2012
   
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License version 2, 
    as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
*/

// Display Facebook messages

function fbf_facebook_messages($options) {

	// CHECK OPTIONS
	add_filter( 'wp_feed_cache_transient_lifetime', create_function( '$a', 'return 60;' )); // To reduce cache time
	if ($options['pageID'] == '') {
		return __('Facebook pageID not configured','fbf');
	} 
	
	if (!is_numeric($options['num']) or $options['num']<=0) {
		return __('Number of status not valid','fbf');
	}
                 
	$link_target = ($options['link_target_blank']) ? ' target="_blank" ' : ''; // Checking Link target - Open new windo/tab or in same window
	
	$avatar_size = ($options['avatar_size']) ? $options['avatar_size'] : 'small'; // avatar_size	
	


 // Fetching feed using wordpress // Credits http://digwp.com/2011/09/feed-display-multiple-columns/
 
	include_once(ABSPATH . WPINC . '/feed.php');
	
	 $optionID = $options['pageID']; // Getting Facebook Page ID 
	 $rss_array = explode(',',$optionID);
	 $feed_link_array = "";
	
	 foreach($rss_array as $feed_link_id){ // Creating string of RSS links seperated by commas
		 $feed_link_array .= ',http://www.facebook.com/feeds/page.php?id='.$feed_link_id.'&format=rss20';	
	 }
	
	 if($feed_link_array{0}==",")
		$feed_link_array=substr($feed_link_array,1,strlen($feed_link_array));    
	 $feed_links = explode(",",$feed_link_array); // Array of RSS Feed links
	 
	 if(function_exists('fetch_feed')) {
			$feed = fetch_feed($feed_links);
			if ( is_wp_error( $feed ) ) {
			   $error_string = $feed->get_error_message();
			   $err_msg='<div id="message" class="error">';
			   $err_msg.='<strong>Unable to fetch the feed</strong><br><span>Error :</span><ul>';
					foreach( $error_string as $err ): 
					if($err=="file_get_contents could not read the file") 
						$error_detail = "SimplePie could not read the feed";
					else
						$error_detail = $err;
					$err_msg.='<li>'.$error_detail.'</li>';
					endforeach;
			   $err_msg.='</ul>
				    </div>';
			   echo $err_msg; // Prints the error message
			}
			if (!is_wp_error($feed)) : $feed->init();
				$feed->set_output_encoding('UTF-8');	// set encoding
				$feed->handle_content_type();		// ensure encoding
				$feed->enable_cache(false);	// no cache
				$limit = $feed->get_item_quantity($options['num']);	// get  feed items
				$items = $feed->get_items(0, $limit);	// set array
			endif;
	}
	if ($limit == 0) { 
		echo '<p><strong>RSS Feed currently unavailable.</strong></p>'; 
	} else {

    $returnMarkup = '';
	$returnMarkup .= '<!--- page ID '.$optionID.' -->';
	$returnMarkup .= '<div class="fbf_facebook_page_widget_container">	
<ul class="fbf_facebook_page_widget">';
	
	$blocks = array_slice($items, 0, $options['num']);
	foreach ($blocks as $block) {  
		$returnMarkup .='<li>';
		if ($options['feed_title'] == "true" ) { 
			$feedtitle ="<h4><a href=".$block->get_permalink()." class='facebook_page-link' ".$link_target.">".substr($block->get_title(), 0, 200)."</a></h4>"; // Title of the update
		}elseif ($options['feed_title'] == "" ) {
			$feedtitle = null;
		}
	
	$returnMarkup .= html_entity_decode($feedtitle,ENT_COMPAT, 'UTF-8');	
	# Like button
	
	$like_button = '<iframe src="http://www.facebook.com/plugins/like.php?href='.$block->get_permalink().'&layout=standard&show_faces=true&width=450&action=like&colorscheme=light&height=30" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100%; height:30px;" allowTransparency="true"></iframe>';
	
	# Shows fb like button on top, below the feed title	
		if ($options['like_button'] !='' && $options['like_button'] != false) {  
			if ($options['like_button_position']=="top") {
				$returnMarkup .= $like_button;
				}
		}
		# Shows avatar of Facebook page	
			if ($options['show_avatar'] != '') { 
			$returnMarkup .="<div class=\"facebook_page-avatar\"><img src=\"http://graph.facebook.com/".$options['pageID']."/picture?type=".$avatar_size."\"  alt=".$block->author." /></div>";
			}
		
			if ($options['show_description'] != '') {   
				$desc_feed = str_replace('href="http://www.facebook.com', 'href="', $block->get_description()); // Emptying all links
				$desc = html_entity_decode(str_replace('href="', 'href="http://www.facebook.com', $desc_feed),ENT_COMPAT, 'UTF-8'); // adding facebook link - to avoid facebook redirector l.php's broken link error
				$returnMarkup .= "<div class=\"fbf_desc\">".$desc."</div>"; // Full content
			}
		
			 if ($options['update'] != '') {
			$time = strtotime($block->get_date("j F Y, H:i:s"));
 			$tval = timesince($time);
					$h_time = ( ( abs( time() - $time) ) < 86400 ) ? sprintf( __('%s ago', 'rstw'), human_time_diff( $time )) : date(__('Y/m/d'), $time);
					$returnMarkup .= ''.sprintf( __('%s', 'rstw'),' <span class="facebook_page-timestamp"><abbr title="' .$block->get_date("j F Y, H:i:s") . '">'.timesince($time).'</abbr></span>' );
			 } //  Show Timestamp - if option enabled
		# Shows fb like button on bottom, below the feed description	
		if ($options['like_button'] !='' && $options['like_button'] != false) {     
			if ($options['like_button_position']=="bottom") {
				$returnMarkup .= $like_button;
				}
		}
		 $returnMarkup .='</li>';
	} // For Loop Ends here
	
	$returnMarkup .='</ul>
		</div>';
	}

	return $returnMarkup;
}
function timesince ($time)
{
    $time = time() - $time; // to get the time since that moment
    $tokens = array (
        31536000 => 'year',
        2592000 => 'month',
        604800 => 'week',
        86400 => 'day',
        3600 => 'hour',
        60 => 'minute',
        1 => 'second'
    );

    foreach ($tokens as $unit => $text) {
        if ($time < $unit) continue;
        $numberOfUnits = floor($time / $unit);
        $t = $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
		return $t. " ago ";
    }

}

/**
 * FacebookPageFeedWidget Class
 */
class FacebookPageFeedWidget extends WP_Widget {
	private /** @type {string} */ $languagePath;

    /** constructor */
    function FacebookPageFeedWidget() {
		
		$this->options = array(
			array(
				'name'	=> 'title',
				'label'	=> __( 'Title', 'fbf' ),
				'type'	=> 'text'
			),
			array(
				'name'	=> 'pageID',
				'label'	=> __( 'Facebook Page ID<br> (Replace your facebook page ID here)', 'fbf' ),
				'type'	=> 'text'
			),
			array(
				'name'	=> 'num',
				'label'	=> __( 'Show # of Posts', 'fbf' ),
				'type'	=> 'text'
			),
			array(
				'name'	=> 'avatar_size',
				'label'	=> __( 'Avatar size', 'fbf' ),
				'type'	=> 'radio',
				'values' => array('square'=>'Square','small'=>'Small','normal'=>'Normal','large'=>'Large')
			),			
			array(
				'name'	=> 'update',
				'label'	=> __( 'Show timestamps', 'fbf' ),
				'type'	=> 'checkbox'
			),
			array(
				'name'	=> 'feed_title',
				'label'	=> __( 'Show feed title', 'fbf' ),
				'type'	=> 'checkbox'
			),
			array(
				'name'	=> 'show_description',
				'label'	=> __( 'Show Description', 'fbf' ),
				'type'	=> 'checkbox'
			),
			array(
				'name'	=> 'show_avatar',
				'label'	=> __( 'Show Avatar', 'fbf' ),
				'type'	=> 'checkbox'
			),
			
			array(
				'name'	=> 'link_target_blank',
				'label'	=> __( 'Create links on new window / tab', 'fbf' ),
				'type'	=> 'checkbox'
			),
			array(
				'name'	=> 'like_button',
				'label'	=> __( 'Show facebook like button', 'fbf' ),
				'type'	=> 'checkbox'
			),
			array(
				'name'	=> 'like_button_position',
				'label'	=> __( 'Like button position', 'fbf' ),
				'type'	=> 'radio',
				'values' => array('top'=>'Top','bottom'=>'Bottom')
			),
			
		);

        parent::WP_Widget(false, $name = 'FBF Facebook page Feed Widget');	
    }

    /** @see WP_Widget::widget */
    function widget($args, $instance) {		
		extract( $args );
		$title = $instance['title'];
		echo $before_widget;  
		if ( $title ) {
			echo $before_title . $instance['title'] . $after_title;
		}
		echo fbf_facebook_messages($instance);
		echo $after_widget;
    }

    /** @see WP_Widget::update */
    function update($new_instance, $old_instance) {				
		$instance = $old_instance;
		
		foreach ($this->options as $val) {
			if ($val['type']=='text') {
				$instance[$val['name']] = strip_tags($new_instance[$val['name']]);
			} else if ($val['type']=='checkbox') {
				$instance[$val['name']] = ($new_instance[$val['name']]=='on') ? true : false;
			} else if ($val['type']=='radio') {
				$instance[$val['name']] = $new_instance[$val['name']];
			}
			
		}
        return $instance;
    }

    /** @see WP_Widget::form */
    function form($instance) {
		$default['title']		= __( 'FBF Facebook page Feed Widget', 'fbf' );
		$default['pageID']		= '133662330114199';
		$default['num']			= '5';
		$default['feed_title']	= true;
		$default['update']		= true;
		$default['show_description']	= true;
		$default['show_avatar']	= true;
		$default['avatar_size']	= 'small'; // Available sizes square, small, normal, or large
		$default['link_target_blank']	= true;
		$default['like_button'] = true;
		$default['like_button_position'] = 'top';
	
		$instance = wp_parse_args($instance,$default);
	
		foreach ($this->options as $val) {
			$label = '<label for="'.$this->get_field_id($val['name']).'">'.$val['label'].'</label>';
			if ($val['type']=='text') {
				echo '<p>'.$label.'<br />';
				echo '<input class="widefat" id="'.$this->get_field_id($val['name']).'" name="'.$this->get_field_name($val['name']).'" type="text" value="'.esc_attr($instance[$val['name']]).'" /></p>';
			} else if ($val['type']=='checkbox') {
				$checked = ($instance[$val['name']]) ? 'checked="checked"' : '';
				echo '<input id="'.$this->get_field_id($val['name']).'" name="'.$this->get_field_name($val['name']).'" type="checkbox" '.$checked.' /> '.$label.'<br />';
			} else if ($val['type']=='radio') {
				echo '<p>'.$label.'<br />';
				foreach($val['values'] as $key=>$name){
					$label = '<label for="'.$this->get_field_id($val['name'].'_'.$key).'">'.$name.'</label>';
					$checked = ($instance[$val['name']] == $key) ? 'checked="checked"' : '';
					echo '<input id="'.$this->get_field_id($val['name'].'_'.$key).'" name="'.$this->get_field_name($val['name']).'" type="radio" '.$checked.' value="'.$key.'" />'.$label.' ';
				}
				echo '<br/><br/>';
			}
		}
	}

} // class FacebookPageFeedWidget 

// register FacebookPageFeedWidget widget
add_action('widgets_init', create_function('', 'return register_widget("FacebookPageFeedWidget");'));

// register stylesheet 25-aug-2012 
add_action('wp_head', 'fbf_add_header_css', 100);
function fbf_add_header_css() {
	echo '<link type="text/css" media="screen" rel="stylesheet" href="' . plugins_url('fbf-facebook-page-feed-widget/fbf_facebook_page_feed.css') . '" />' . "\n";
}
// Short code FacebookPageFeed 25-aug-2012 - edited 2 feb 2013
function fbf_short_code($atts) {
	 $atts['pageID'] = $atts['pageid'];
	 $atts= shortcode_atts(array(
			'pageID' => '133662330114199',
			'num' => '5',
			'update' => false,
			'show_description' => false,
			'show_avatar' => false,
			'avatar_size' => 'small',
			'link_target_blank' => false,
			'feed_title' => true,
			'like_button' => true,
			'like_button_position' => false,
     ), $atts);
    
	 return fbf_facebook_messages($atts);
}
// sample short code
// [fbf_page_feed pageID="133662330114199" num="2" show_description="true" update="true" show_avatar="true" avatar_size="square" link_target_blank="true" feed_title = "true" like_button="true" like_button_position="top"]

// sample short code without like button
// [fbf_page_feed pageID="133662330114199" num="2" show_description="true" update="true" show_avatar="true" avatar_size="square" link_target_blank="true" feed_title = "true" ]


add_shortcode('fbf_page_feed', 'fbf_short_code');

So, let me know what's the easiest way to get this done. Thanks proz!  :thumb-up:

 

 

 

 

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.