Solved

Beginner Level Wordpress plugin modification (php)

Posted on 2014-12-03
4
254 Views
Last Modified: 2014-12-04
I'm trying to link a photo from an instagram plugin to the instagram profile link: (http://instagram.com/profile)

I've found this fix in the plugin's support topics:

"Needed the same functionality in the "My Latest Photos" widget so tracked this down.

For those that need a hack for the time being, you can change line 95 in the simply-instagram-functions.php file to

$output = '<a href="' . $data['data'][$i]['link'] . '"
target="_blank" title="' .
htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ). '">';

Open in new window


The instagram link URL is being stored in $data['data'][$i]['link], from there you can make the output whatever you would like."

This is the part I don't understand: The instagram link URL is being stored in $data['data'][$i]['link], from there you can make the output whatever you would like."

Can someone explain to me how to complete the last part?
0
Comment
Question by:doug s
  • 2
  • 2
4 Comments
 
LVL 70

Expert Comment

by:Jason C. Levine
ID: 40479605
$data['data'][$i]['link'] is an array element.  It's being saved to the variable $output which presumably gets used somewhere else.  

You can change or modify the array element or $output to do whatever it is you are planning to do.
0
 
LVL 4

Author Comment

by:doug s
ID: 40479696
I don't understand what syntax needs to be applied.

In the footer I'm trying to get the Instagram Image to link to http://instagram.com/cloud9slo. Right now it just opens the image in a pop up window.

This is the original plugin file. This support topic instructs to edit line 95. I don't understand how to modify the array or $output to have it link to a page instead of a popup window.

<?php

/** 
 * SHow info
 * name
 * bio
 * website
 * followers
 * following
 * profile_pic
 * instagram page
*/
function sInstShowInfo( $data, $args=array(), $width="150" )
{
	$infos = '<div class="simplyInstagram-profile">';
	
	if( $args['profile_pic'] == "true" ):
		$infos .= '<div class="profile-data"><img src="' . $data['data']['profile_picture'] . '" style="width: ' . $width . 'pixels;"/></div>';	
	endif;
	
	if( $args['name'] == "true" ):
		$infos .= '<div class="profile-data"><h1>' . $data['data']['full_name'] . '</h1></div>';
	endif;
		$infos .= '<div class="profile-data">' . sIntFollowButton( user_id(), $data['data']['username'] ) . '</div>';
	if( $args['bio'] == "true" ):
		$infos .= '<div id="profile-bio">' . $data['data']['bio'] . '</div>';
	endif;
	
	if( $args['website'] == "true" ):
		$infos .= '<div class="profile-data"><a href="' . $data['data']['website'] . '" target="_blank" />' . $data['data']['website'] . '</a></div>';
	endif;
		$infos .= '<div class="data-holder">';
	if( $args['media'] == "true" ):
		$infos .= '<span class="profile-media">' . $data['data']['counts']['media'] . '<div class="profile-media-content">Photo</div></span>';
	endif;
	
	if( $args['followers'] == "true" ):
		$infos .= '<span class="profile-media">' . $data['data']['counts']['followed_by'] . '<div class="profile-media-content">Followers</div></span>';
	endif;
	
	if( $args['following'] == "true" ):
		$infos .= '<span class="profile-media">' . $data['data']['counts']['follows'] . '<div class="profile-media-content">Followings</div></span>';
	endif;
		$infos .= '</div>';
	$infos .= '</div>';
	
	echo $infos;
}

/**
* Get self feed
*/
function sInstGetSelfFeed( $access_token )
{
	$apiurl = "https://api.instagram.com/v1/users/self/feed?access_token=" . $access_token ;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
	
          	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
       	file_put_contents( simply_instagram_plugin_path . '/cache-api/selffeed.txt', $data );
	
	return $data;
}

/**
* Show data in widget form
*/
function sInstShowWidgetData( $data, $count='9', $width='75', $customRel="sIntWidget", $displayCaption="true" )
{
	/**
	 * Determine query return
	 * next query used to avoid
	 * blank return when display value is 
	 * greater than API return
	*/
	
	if( count( $data['data'] ) > $count ):
		$query = $count;
	else:
		$query = count( $data['data'] );
	endif;
	
 	for( $i = 0; $i < $query; $i++ ):
		$output = '<a href="' . $data['data'][$i]['images']['standard_resolution']['url'] . '" rel="' . $customRel . '[instagram]" title="' . htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ). '">';
			$output .= '<div class="si-content" style=" display: none; margin: 10px; "><div class="clear"></div>';
			
			/**
			 * Option to display caption.
			 * Page often breaks when caption is to long
			 * because prettyPhot can't handle it.
			*/			
			if(  $displayCaption == "true" ):
			 $output .= htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ). '<div class="clear"></div>';
			endif;
			
			$output .= '<div class="content-info"><img class="front-photo" src="' . $data['data'][$i]['caption']['from']['profile_picture'] . '" width="15" height="15"/>' . $data['data'][$i]['caption']['from']['username'] . '</div>'; 
			$output .= '<div class="content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-like.png') . '" width="19" height="19" style="vertical-align: middle;" /> ' . $data['data'][$i]['likes']['count'] . '</div>';
			$output .= '<div class="content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-comment.png') . '" width="19" height="19" style="vertical-align: middle;" /> ' . $data['data'][$i]['comments']['count'] . '</div>';
			$output .= '<div class="clear"></div></div>';			
			$output .= '<img class="front-photo" src="' . sInstCache( $data['data'][$i]['images']['thumbnail']['url'], $width ) . '" width="' . $width .'" height="' . $width . '" title="' . $data['data'][$i]['caption']['text'] . '">';
			$output .= "</a>";
						
			echo $output;		
	endfor;
}

/**
 * Check if access token exist
 * return null otherwise
*/
function access_token()
{
	global $wpdb;
	
	$getAccessToken = get_option('si_access_token');
	if( $getAccessToken ):
		return $getAccessToken;
	else:
		return null;
	endif;
}

/**
 * Check if user_is exist
 * return null otherwise
*/
function user_id()
{
	global $wpdb;
	
	$getUserID = get_option('si_user_id');
	if( $getUserID ):	
		return $getUserID;
	else:
		return null;
	endif;
}

/**
* Get the list of users this user follows.
*/
function sInstGetFollowing( $user_id, $access_token )
{
	$apiurl = "https://api.instagram.com/v1/users/" . $user_id . "/follows?access_token=" . $access_token;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
	
         	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	
	return $data;	
}


/**
* Get the list of users this user is followed by.
*/
function sInstGetFollowers( $user_id, $access_token )
{
	$apiurl = "https://api.instagram.com/v1/users/" . $user_id . "/followed-by?access_token=" . $access_token;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
	
          	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	
	return $data;
}

/**
 * See the authenticated user's list of media they've liked. 
 * Note that this list is ordered by the order in which the user liked the media. 
 * Private media is returned as long as the authenticated user has permission to view that media. 
 * Liked media lists are only available for the currently authenticated user.
*/
function sInstGetLikes( $access_token )
{
	$apiurl = "https://api.instagram.com/v1/users/self/media/liked?access_token=" . $access_token;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
          	
          	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	
	return $data;	
}

/**
* Get the most recent media published by a user.
*/
function sInstGetRecentMedia( $user_id, $access_token )
{
	$apiurl = "https://api.instagram.com/v1/users/" . $user_id . "/media/recent/?access_token=" . $access_token;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
         	
         	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	
	return $data;
}

/**
* See the authenticated user's feed.
*/
function simply_instagram_get_feed( $access_token )
{
	$apiurl = "https://api.instagram.com/v1/users/self/feed?access_token=" . $access_token;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
	
          	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	
	return $data;
}

/**
* Get basic information about a user.
*/
function sInstGetInfo( $user_id, $access_token )
{
	$apiurl = "https://api.instagram.com/v1/users/" . $user_id . "/?access_token=" . $access_token;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
	
          	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	
	return $data;	
}

/**
* most-popular.
*/
function sInstGetMostPopular( $media, $access_token )
{
	$apiurl = "https://api.instagram.com/v1/media/" . $media . "?access_token=" . $access_token;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
	
          	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	file_put_contents( simply_instagram_plugin_path . '/cache-api/selffeed.txt', serialize( $response )  );
	return $data;	
}

/**
* Check if already following
*/
function sInstGetFollowingInfo( $user_id, $access_token )
{
	$apiurl = "https://api.instagram.com/v1/users/" . $user_id . "/relationship?access_token=" . $access_token;
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
	        
	        $curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	
	return $data;	
}

/**
* Show most popular randomly. Im using lightbox for viewing each photo.
* htmlspecialchars() is used to filter caption text with illegal
* char that may cause display bug.
*/
function sInstDisplayData( $data, $size='low_resolution', $display="20", $width="150", $customRel="sIntWid" )
{	
	
	/**
	 * Determine query return
	 * next query used to avoid
	 * blank return when display value is 
	 * greater than API return
	*/
	
	if( count( $data['data'] ) > $display ):
		$query = $display;
		$pagination = 0;
	else:
		/**
		 * Pagination starts here
		 * check if next url exist
		*/
		//( $data['pagination'] ? $query = $display : $query = count( $data['data'] ) );
		$query = count( $data['data'] );
		$pagination = 1;
	endif;
		for( $i=0; $i < $query; $i++ ):
			
			$output = '<div class="masonryItem" data-id="' . $data['data'][$i]['id'] . '">';
			
			/**
			 * If user choose to use builtInMediaViewer,
			 * Display this area
			*/
			if( get_option( 'mediaViewer' ) == "builtInMediaViewer" ):			
			
				$output .= '<div class="item-holder" data-id="' . $data['data'][$i]['id'] . '">';			
				
				 /**
				  * Display image, description and statistic
				 **/
				 $output .= '<a href="#" rel="' . plugins_url( 'simply-instagram/simply-instagram-media.php?mid=' . ( $data['data'][$i]['id'] ) . '&access_token=' . access_token() . '&mdc=' . get_option( 'displayCommentMediaViewer' ) ) . '" id="' . $data['data'][$i]['id'] . '" class="overlay" style="text-decoration:none">';
				  $output .= '<img class="front-photo" src="' . sInstCache( $data['data'][$i]['images']['thumbnail']['url'], "150" )  . '" width="150" height="150" title="' . $data['data'][$i]['caption']['text'] . '">';
				 $output .= '</a>';
				 
				 $output .=  '</div>';
				 
				 /**
				  * Determine if displayDescription is allowed
				 */
				 get_option( 'displayDescription' ) == "true" ? $output .= '<p>' . htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ) . '</p>' : null ;
				 
				  /**
				  * Determine if displayStatistic is allowed
				 */
				 if( get_option( 'displayStatistic' ) == "true" ):
				 
				 $output .= '<div class="scode-content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-like.png') . '" width="12" height="12" style="vertical-align: middle;" /> ' . $data['data'][$i]['likes']['count'] . '</div>';
				 $output .= '<div class="scode-content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-comment.png') . '" width="12" height="12" style="vertical-align: middle;"  /> ' . $data['data'][$i]['comments']['count'] . '</div>';
				 
				 endif;
				 
				 /**
				  * highlights photographer
				  * using author section class
				 */
				 if( get_option( 'displayPhotographer' ) == "true" ):
				 $output .= '<div class="sinst-author-section">';
				  $output .= '<div class="sinst-author">';
				   $output .= '<img src="' . sInstCache( $data['data'][$i]['user']['profile_picture'], "20" ) . '" width="20" height="20" style="vertical-align: middle;" /> <span class="sinst-comment-author">' . $data['data'][$i]['user']['username'] . '</span> ';
				  $output .= '</div>';
				 $output .= '</div>';
				 endif;	 
				 /**
				  * Comment section
				  * Check if comment exist
				  * Display latest # comments on media
				  * based on option
				 */
				 if( $data['data'][$i]['comments']['count'] != 0 ): //if there's comment
				 
				 if( get_option( 'displayComment' ) != 0 ): //user choose to display comment
				 	 
					 $output .= '<div class="sinst-comment-section">';
					 
					 /**
					  * Determine comment to be displayed
					 */		 
					 if( $data['data'][$i]['comments']['count'] > 5 || get_option( 'displayComment' ) > 5 ):
					 	$cc = 5;
					 else:
					 	$cc = $data['data'][$i]['comments']['count'];
					 endif;
						 
					 for( $c=0; $c < $cc ; $c++ ):
						 
					 	$output .= '<div class="sinst-comments">';
					 	$output .= '<img src="' . sInstCache( $data['data'][$i]['comments']['data'][$c]['from']['profile_picture'], "20" ) . '" width="20" height="20" style="vertical-align: middle;	"/>';
					 	$output .= ' <span class="sinst-comment-author">' . $data['data'][$i]['comments']['data'][$c]['from']['username'] . '</span> ' . htmlspecialchars( $data['data'][$i]['comments']['data'][$c]['text'], ENT_QUOTES ) . '<br /> About ' . nicetime( date( "Y-m-j g:i", $data['data'][$i]['comments']['data'][$c]['created_time'] ) );
					 	$output .= '</div>';
						 	
					 endfor;			 		
					 $output .= '</div>';
				 endif;
				  
				 endif;
			 
			elseif( get_option( 'mediaViewer' ) == "prettyPhoto" ):
			/**
			 * else user choose to use prettyPhoto slideshow
			 * display this area.
			*/
				$output .= '<div class="item-holder" data-id="' . $data['data'][$i]['id'] . '">';			
				
				 /**
				  * Display image, description and statistic
				 **/
				$output .= '<a href="' . $data['data'][$i]['images'][$size]['url'] . '" rel="sIntSC[instagram]" title="' . htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ). '">';
				$output .= '<div class="si-content" style=" display: none; margin: 10px; "><div class="break-line" style="height: 10px;"></div>';
				/**
				 * If user choose to display photo description 
				 * in settings, display this area
				*/
				if( get_option( 'ppPhotoDescription' )  == "true" ):
				
				 /**
				  * check if description exist to avoid big spacing
				 */
				 if( $data['data'][$i]['caption']['text'] != "" ):				 
					$output .= htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ). '<div class="break-line" style="height: 10px;"></div>';
				 endif; //end of description checking
				endif; // end of ppPhotoDescription
				
				/**
				 * If user choose to display photographer
				 * profile picture in settings, display this area
				*/
				 
				if( get_option( 'ppDisplayPhotographer' )  == "true" ):	
					$output .= '<div class="content-info"><img class="front-photo" src="' . sInstCache( $data['data'][$i]['caption']['from']['profile_picture'], "15" ) . '" width="15" height="15"/>' . $data['data'][$i]['caption']['from']['username'] . '</div>'; 
				endif; // end of ppPhotoDescription
				
				/**
				 * If user choose to display statistics
				 * in settings, display this area
				*/
				if( get_option( 'ppDisplayStatistic' )  == "true" ):	
					$output .= '<div class="content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-like.png') . '" width="19" height="19" style="vertical-align: middle;" /> ' .  $data['data'][$i]['likes']['count'] . '</div>';
					$output .= '<div class="content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-comment.png') . '" width="19" height="19" style="vertical-align: middle;" /> ' .  $data['data'][$i]['comments']['count'] . '</div>';
				endif; // end of ppPhotoDescription
					$output .= '<div class="clear"></div></div>';
								
				
				
				$output .= '<img class="front-photo" src="' . sInstCache( $data['data'][$i]['images']['thumbnail']['url'], $width ) . '" width="' . $width .'" height="' . $width .'" title="' . $data['data'][$i]['caption']['text'] . '">';
				
				$output .= "</a>";
				 
				 $output .=  '</div>';
				 
				 /**
				  * Determine if displayDescription is allowed
				 */
				 get_option( 'displayDescription' ) == "true" ? $output .= '<p>' . htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ) . '</p>' : null ;
				 
				  /**
				  * Determine if displayStatistic is allowed
				 */
				 if( get_option( 'displayStatistic' ) == "true" ):
				 
				 $output .= '<div class="scode-content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-like.png') . '" width="12" height="12" style="vertical-align: middle;" /> ' . $data['data'][$i]['likes']['count'] . '</div>';
				 $output .= '<div class="scode-content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-comment.png') . '" width="12" height="12" style="vertical-align: middle;" /> ' . $data['data'][$i]['comments']['count'] . '</div>';
				 
				 endif;
				 
				 /**
				  * highlights photographer
				  * using author section class
				 */
				 if( get_option( 'displayPhotographer' ) == "true" ):
				 $output .= '<div class="sinst-author-section">';
				  $output .= '<div class="sinst-author">';
				   $output .= '<img src="' . sInstCache( $data['data'][$i]['user']['profile_picture'], "20" ) . '" width="20" height="20" style="vertical-align: middle;	" /> <span class="sinst-comment-author">' . $data['data'][$i]['user']['username'] . '</span> ';
				  $output .= '</div>';
				 $output .= '</div>';
				 endif;	 
				 /**
				  * Comment section
				  * Check if comment exist
				  * Display latest # comments on media
				  * based on option
				 */
				 if( $data['data'][$i]['comments']['count'] != 0 ): //if there's comment
				 
				 if( get_option( 'displayComment' ) != 0 ): //user choose to display comment
				 	 
					 $output .= '<div class="sinst-comment-section">';
					 
					 /**
					  * Determine comment to be displayed
					 */		 
					 if( $data['data'][$i]['comments']['count'] > 5 || get_option( 'displayComment' ) > 5 ):
					 	$cc = 5;
					 else:
					 	$cc = $data['data'][$i]['comments']['count'];
					 endif;
						 
					 for( $c=0; $c < $cc ; $c++ ):
						 
					 	$output .= '<div class="sinst-comments">';
					 	$output .= '<img src="' . sInstCache( $data['data'][$i]['comments']['data'][$c]['from']['profile_picture'], "20" ) . '" width="20" height="20" style="vertical-align: middle;	"/>'; 
					 	$output .= ' <span class="sinst-comment-author">' . $data['data'][$i]['comments']['data'][$c]['from']['username'] . '</span> ' . htmlspecialchars( $data['data'][$i]['comments']['data'][$c]['text'], ENT_QUOTES ) . '<br /> About ' . nicetime( date( "Y-m-j g:i", $data['data'][$i]['comments']['data'][$c]['created_time'] ) );
					 	$output .= '</div>';
						 	
					 endfor;			 		
					 $output .= '</div>';
				 endif;
				  
				 endif;
			elseif( get_option( 'mediaViewer' ) == "instagramLink" ):
			/**
			 * else user choose to use Instagram site
			 * make new link to open in new tab / window
			*/
			
			$output .= '<div class="item-holder" data-id="' . $data['data'][$i]['id'] . '">';
			$output .= '<a href="' . $data['data'][$i]['link'] . '" target="_blank">';
			$output .= '<img class="front-photo" src="' . sInstCache( $data['data'][$i]['images']['thumbnail']['url'], "150" ) . '" width="150" height="150" title="' . $data['data'][$i]['caption']['text'] . '">';
			$output .= '</a>';
			$output .=  '</div>';
			
			 /**
				  * Determine if displayDescription is allowed
				 */
				 get_option( 'displayDescription' ) == "true" ? $output .= '<p>' . htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ) . '</p>' : null ;
				 
				  /**
				  * Determine if displayStatistic is allowed
				 */
				 if( get_option( 'displayStatistic' ) == "true" ):
				 
				 $output .= '<div class="scode-content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-like.png') . '" width="12" height="12" style="vertical-align: middle;"  /> ' . $data['data'][$i]['likes']['count'] . '</div>';
				 $output .= '<div class="scode-content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-comment.png') . '" width="12" height="12" style="vertical-align: middle;" /> ' . $data['data'][$i]['comments']['count'] . '</div>';
				 
				 endif;

/**
				  * highlights photographer
				  * using author section class
				 */
				 if( get_option( 'displayPhotographer' ) == "true" ):
				 $output .= '<div class="sinst-author-section">';
				  $output .= '<div class="sinst-author">';
				   $output .= '<img src="' . sInstCache( $data['data'][$i]['user']['profile_picture'], "20" ) . '" width="20" height="20" style="vertical-align: middle;	" /> <span class="sinst-comment-author">' . $data['data'][$i]['user']['username'] . '</span> ';
				  $output .= '</div>';
				 $output .= '</div>';
				 endif;	 
/**
				  * Comment section
				  * Check if comment exist
				  * Display latest # comments on media
				  * based on option
				 */
				 if( $data['data'][$i]['comments']['count'] != 0 ): //if there's comment
				 
				 if( get_option( 'displayComment' ) != 0 ): //user choose to display comment
				 	 
					 $output .= '<div class="sinst-comment-section">';
					 
					 /**
					  * Determine comment to be displayed
					 */		 
					 if( $data['data'][$i]['comments']['count'] > 5 || get_option( 'displayComment' ) > 5 ):
					 	$cc = 5;
					 else:
					 	$cc = $data['data'][$i]['comments']['count'];
					 endif;
						 
					 for( $c=0; $c < $cc ; $c++ ):
						 
					 	$output .= '<div class="sinst-comments">';
					 	$output .= '<img src="' . sInstCache( $data['data'][$i]['comments']['data'][$c]['from']['profile_picture'], "20" ) . '" width="20" height="20" style="vertical-align: middle;	"/>';
					 	$output .= ' <span class="sinst-comment-author">' . $data['data'][$i]['comments']['data'][$c]['from']['username'] . '</span> ' . htmlspecialchars( $data['data'][$i]['comments']['data'][$c]['text'], ENT_QUOTES ) . '<br /> About ' . nicetime( date( "Y-m-j g:i", $data['data'][$i]['comments']['data'][$c]['created_time'] ) );
					 	$output .= '</div>';
						 	
					 endfor;			 		
					 $output .= '</div>';
				 endif;
				  
				 endif;
			
			else:
			/**
			 * else user choose to use prettyPhoto iframe
			 * display this area.
			*/
				$output .= '<div class="item-holder" data-id="' . $data['data'][$i]['id'] . '">';			
				
				 /**
				  * Display image, description and statistic
				 **/
				 $output .= '<a href="' . plugins_url( 'simply-instagram/simply-instagram-pp-media-viewer.php?mid=' . ( $data['data'][$i]['id'] ) . '&access_token=' . access_token() . '&mdc=' . get_option( 'displayCommentMediaViewer' ) ) . '&iframe=true&width=960&height=650&scrolling=no" rel="prettyphoto" style="text-decoration:none">';
				  $output .= '<img class="front-photo" src="' . sInstCache( $data['data'][$i]['images']['thumbnail']['url'], "150" ) . '" width="150" height="150" title="' . $data['data'][$i]['caption']['text'] . '">';
				 $output .= '</a>';
				 
				 $output .=  '</div>';				 
				 
				 /**
				  * Determine if displayDescription is allowed
				 */
				 get_option( 'displayDescription' ) == "true" ? $output .= '<p>' . htmlspecialchars( $data['data'][$i]['caption']['text'], ENT_QUOTES ) . '</p>' : null ;
				 
				  /**
				  * Determine if displayStatistic is allowed
				 */
				 if( get_option( 'displayStatistic' ) == "true" ):
				 
				 $output .= '<div class="scode-content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-like.png') . '" width="12" height="12" style="vertical-align: middle;"  /> ' . $data['data'][$i]['likes']['count'] . '</div>';
				 $output .= '<div class="scode-content-info"><img src="' . plugins_url('/simply-instagram/images/instagram-comment.png') . '" width="12" height="12" style="vertical-align: middle;" /> ' . $data['data'][$i]['comments']['count'] . '</div>';
				 
				 endif;
				 
				 /**
				  * highlights photographer
				  * using author section class
				 */
				 if( get_option( 'displayPhotographer' ) == "true" ):
				 $output .= '<div class="sinst-author-section">';
				  $output .= '<div class="sinst-author">';
				   $output .= '<img src="' . sInstCache( $data['data'][$i]['user']['profile_picture'], "20" ) . '" width="20" height="20" style="vertical-align: middle;	" /> <span class="sinst-comment-author">' . $data['data'][$i]['user']['username'] . '</span> ';
				  $output .= '</div>';
				 $output .= '</div>';
				 endif;	 
				 /**
				  * Comment section
				  * Check if comment exist
				  * Display latest # comments on media
				  * based on option
				 */
				 if( $data['data'][$i]['comments']['count'] != 0 ): //if there's comment
				 
				 if( get_option( 'displayComment' ) != 0 ): //user choose to display comment
				 	 
					 $output .= '<div class="sinst-comment-section">';
					 
					 /**
					  * Determine comment to be displayed
					 */		 
					 if( $data['data'][$i]['comments']['count'] > 5 || get_option( 'displayComment' ) > 5 ):
					 	$cc = 5;
					 else:
					 	$cc = $data['data'][$i]['comments']['count'];
					 endif;
						 
					 for( $c=0; $c < $cc ; $c++ ):
						 
					 	$output .= '<div class="sinst-comments">';
					 	$output .= '<img src="' . sInstCache( $data['data'][$i]['comments']['data'][$c]['from']['profile_picture'], "20" ) . '" width="20" height="20" style="vertical-align: middle;	"/>';
					 	$output .= ' <span class="sinst-comment-author">' . $data['data'][$i]['comments']['data'][$c]['from']['username'] . '</span> ' . htmlspecialchars( $data['data'][$i]['comments']['data'][$c]['text'], ENT_QUOTES ) . '<br /> About ' . nicetime( date( "Y-m-j g:i", $data['data'][$i]['comments']['data'][$c]['created_time'] ) );
					 	$output .= '</div>';
						 	
					 endfor;			 		
					 $output .= '</div>';
				 endif;
				  
				 endif;
			
			endif;	 // end of mediaViewer
			
			$output .= '</div>';
			
			echo $output;
				
		endfor;
		//return $arr;
			//do{
			//	return $output;
			//	
			//	$i++;
			//}while( $i < $query );
		//if( $pagination > 0 ):
		//	echo '<input type="hidden" name="sPaginate" value="' . $data['pagination']['next_url'] . '" />';
		//endif;
		/* else:
			/**
			 * create pagination
			 * store everything in array
			*
			$content = array();
			$comment = array();
			
			for( $i=0; $i < count( $data['data'] ); $i++ ):
			
			 if( $data['data'][$i]['comments']['count'] != 0 ):
				( $data['data'][$i]['comments']['count'] > 5 ? $cc = 5 : $cc = $data['data'][$i]['comments']['count'] );
				for( $c=0; $c < $cc ; $c++ ):
					$comment[$c] = array( 'profile_picture' => $data['data'][$i]['comments']['data'][$c]['from']['profile_picture'],
								'user_name' => $data['data'][$i]['comments']['data'][$c]['from']['username'],
								'text' => $data['data'][$i]['comments']['data'][$c]['text'],
								'commented_on' => $data['data'][$i]['comments']['data'][$c]['created_time'] );
				endfor;
			 endif;
				$content[$i] = array( 'image' => $data['data'][$i]['images']['low_resolution']['url'], 
							'image_caption' => $data['data'][$i]['caption']['text'],
							'like_count' => $data['data'][$i]['likes']['count'],
							'comment_count' => $data['data'][$i]['comments']['count'],
							'author_profile' => $data['data'][$i]['user']['profile_picture'],
							'author_username' => $data['data'][$i]['user']['username'],
							'comments' => $comment );
				
			endfor;
			
			//print_r( $content );
		endif; */
		
}

function sInstDiplayFollowData( $data, $display="20", $width="150", $showFollowerData = false )
{
	/**
	 * Determine query return
	 * next query used to avoid
	 * blank return when display value is 
	 * greater than API return
	*/
	
	if( count( $data['data'] ) > $display ):
		$query = $display;
	else:
		$query = count( $data['data'] );
	endif;
		for( $i=0; $i < $query; $i++ ):
			/**
			 * Check if user wanted to
			 * include info of followers
			 * or whom they following
			*/
			if( $showFollowerData == true ):
			
				//$output = sInstShowInfo( sInstGetInfo( $data['data'][$i]['id'], access_token() ), array( 'name' => 'true', 'bio' => 'true', 'website' => 'true', 'media' => 'true', 'followers' => 'true', 'following' => 'true', 'profile_pic' => 'true' ), $width );
			
			else:
						
				//$output = '<div id="tooltip-division" style=" width: ' . $width . 'px; float: left; margin: 5px; overflow: auto;">';
				$output = '<img class="front-photo" src="' . $data['data'][$i]['profile_picture'] . '" width="' . $width . '" height="' . $width . '" title="' . $data['data'][$i]['full_name'] . '">';				
				//$output .= '</div>';
			
			endif;
						
			echo $output;	
		endfor;		
}

/**
 * Function login to instagram for wp-administrator
*/
function sInstLogin( $return_uri )
{
	$baseURL = "https://api.instagram.com/oauth/authorize/";
	$client_id = "39170cdd8ebf4a159f01fdfd31b989b8";
	$redirect_uri = "http://www.rollybueno.info/plugins/simply-instagram.php";
	$response = "code";
	$scope = "likes+comments+relationships+likes";
	
	return $baseURL . '?client_id=' . $client_id . '&redirect_uri=' . $redirect_uri . $return_uri . '&response_type=' . $response . '&scope=' . $scope ;
}

/**
 * Function login to instagram for following
*/
function sInstLoginFollower( $return_uri )
{
	$baseURL = "https://api.instagram.com/oauth/authorize/";
	$client_id = "a52423ad78dc46e6b3f418251b5c4004";
	$redirect_uri = "http://www.rollybueno.info/plugins/simply-instagram-v2.php";
	$response = "code";
	$scope = "relationships";
	
	return $baseURL . '?client_id=' . $client_id . '&redirect_uri=' . $redirect_uri . $return_uri . '&response_type=' . $response . '&scope=' . $scope ;
}

/**
 * Set follow / unfollow button on profile info widget
*/
function sIntFollowButton( $user_id, $username )
{
	/**
	 * Check if access token is present in param
	 * if present, set it in option
	*/
	if( isset( $_COOKIE['visitor_access_token'] ) ):
		/**
		 * Get following info
		*/	
		if( $_GET['access_token'] ):
			if( isset( $_COOKIE['visitor_access_token'] ) != isset( $_GET['access_token'] ) ):
			//refresh
				( $_SERVER["HTTPS"] == "on" ) ? $protocol = "https://" : $protocol = "http://" ; 
			?>
				<!-- <script language=" JavaScript" > window.location.reload();  </script> -->
				<meta http-equiv="refresh" content="0, <?php echo $protocol . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>asd">
			<?php 
			endif;
		endif;
		
		$followinginfo = sInstGetFollowingInfo( user_id(), $_COOKIE['visitor_access_token'] );		
		//print_r( $followinginfo );
		if( $followinginfo['data']['outgoing_status'] == "none" ):
			/**
			 * Request follow, show follow me button
			*/
			( $_SERVER["HTTPS"] == "on" ) ? $protocol = "https://" : $protocol = "http://" ; 
		
			$form = '<form method="post" action="http://www.rollybueno.info/plugins/simply-instagram-v2.php?return_uri=' . base64_encode( $protocol . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ) . '&type=following">';
			$form .= '<input type="hidden" name="action" value="follow">';
			$form .= '<input type="hidden" name="user_id" value="' . user_id() . '">';
			$form .= '<input type="hidden" name="access_token" value="' . $_COOKIE['visitor_access_token'] . '">';
			$form .= '<button type="submit" id="sInstRelButton"> Follow @' . $username . '</button>';
			$form .= '</form>';
			
			return $form;
		else:
			( $_SERVER["HTTPS"] == "on" ) ? $protocol = "https://" : $protocol = "http://" ; 
		
			$form = '<form method="post" action="http://www.rollybueno.info/plugins/simply-instagram-v2.php?return_uri=' . base64_encode( $protocol . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ) . '&type=following">';
			$form .= '<input type="hidden" name="action" value="unfollow">';
			$form .= '<input type="hidden" name="user_id" value="' . user_id() . '">';
			$form .= '<input type="hidden" name="access_token" value="' . $_COOKIE['visitor_access_token'] . '">';
			$form .= '<button type="submit" id="sInstRelButton"> Unfollow @' . $username . '</button>';
			$form .= '</form>';
			
			return $form;
		endif;		
	else:
		/**
		 * Show follow me button
		 * determine if the current url is using SSL or not
		*/
		if(   isset( $_COOKIE['visitor_access_token'] ) != isset( $_GET['access_token'] ) ):
		//refresh
			( $_SERVER["HTTPS"] == "on" ) ? $protocol = "https://" : $protocol = "http://" ; 
		?>
			<!-- <script language=" JavaScript" > window.location.reload();  </script> -->
			<meta http-equiv="refresh" content="0, <?php echo $protocol . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>">
		<?php 
		endif;
		
		( $_SERVER["HTTPS"] == "on" ) ? $protocol = "https://" : $protocol = "http://" ; 
		
		$form = '<form method="post" action="'  . sInstLoginFollower( '?return_uri=' . base64_encode( $protocol . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ) ) . '">';
		$form .= '<input type="hidden" name="action" value="follow">';
		$form .= '<button type="submit" id="sInstRelButton" > Follow @' . $username . '</button>';
		$form .= '</form>';
		
		return $form;
	endif;
	
}

function nicetime($date)
{
    if(empty($date)) {
        return "No date provided";
    }
    
    $periods         = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
    $lengths         = array("60","60","24","7","4.35","12","10");
    
    $now             = time();
    $unix_date         = strtotime($date);
    
       // check validity of date
    if(empty($unix_date)) {    
        return "Bad date";
    }

    // is it future date or past date
    if($now > $unix_date) {    
        $difference     = $now - $unix_date;
        $tense         = "ago";
        
    } else {
        $difference     = $unix_date - $now;
        $tense         = "from now";
    }
    
    for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
        $difference /= $lengths[$j];
    }
    
    $difference = round($difference);
    
    if($difference != 1) {
        $periods[$j].= "s";
    }
    
    return "$difference $periods[$j] {$tense}";
}

function sInstDisplayMediaInfo( $media_id )
{
	$apiurl = "https://api.instagram.com/v1/media/" . $media_id . "?access_token=" . access_token();
	
	if(function_exists('curl_exec') && function_exists('curl_init')):
          	
          	$curl = curl_init();               
                curl_setopt($curl, CURLOPT_URL, $apiurl);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);               
                $response = curl_exec($curl);               
                curl_close($curl);
               
                $data = json_decode( $response, true );
        else:
                $response = wp_remote_get( $apiurl, array('timeout' => 20 ) );
		$data = json_decode( $response['body'], true );
        endif;
       	
	
	return $data;
	
	echo $data['data']['1']['filter'];
}

/** Caching module */
function sInstCache( $image, $width ){	
	return $image;
	/*
	if( get_option( 'enableCandCom' ) == "no" ):
		return $image;
	else:
		include_once( simply_instagram_plugin_path . '/resize_class.php' );
		/**
		 Proper naming and file caching
		*/
		/*
		$basename = basename( $image, ".jpg" );
		$final_name = $basename . "_" . $width . ".jpg";
		
		//var_dump ($image );
		if( !file_exists( simply_instagram_plugin_path . "/cache/" . $final_name ) ):
			/**
			 Copy and resize
			*/
			/*
			$copy = @copy( $image, simply_instagram_plugin_path . "cache/" . $final_name );
			
			if( $copy ):
				$resize = new resize( simply_instagram_plugin_path . "cache/" . $final_name );						 						 
	 			$resize -> resizeImage( $width, $width, 'crop' );						 						 
	 			$resize -> saveImage( simply_instagram_plugin_path . "cache/" . $final_name , get_option('JPEGCompression') );
			
				return simply_instagram_plugin_url . "cache/" . $final_name;
			endif;			
		else:
			/**
			 If exist, check if has latest dimension
			 If not, resize
			*/
			/*
			list($d_width, $d_height, $d_type, $d_attr) = getimagesize( simply_instagram_plugin_path . "/cache/" . $final_name );
			
			if( $d_width != $width ):
			
				$copy = @copy( $image, simply_instagram_plugin_path . "cache/" . $final_name );
				
				if( $copy ):
					$resize = new resize( simply_instagram_plugin_path . "cache/" . $final_name );						 						 
	 				$resize -> resizeImage( $width, $width, 'crop' );				 						 
	 				$resize -> saveImage( simply_instagram_plugin_path . "cache/" . $final_name , get_option('JPEGCompression') );
	 			endif;
			else:
				return simply_instagram_plugin_url . "cache/" . $final_name;
			endif;
		endif;	
	endif;
	*/
	
}

/** Clearing cache folder */
function sIntClearCache(){	
	$path = simply_instagram_plugin_path . "cache/";
	
	foreach(glob($path ."*.*") as $file) {
	   unlink($file); // Delete each file through the loop
	}
}

?>

Open in new window

0
 
LVL 70

Accepted Solution

by:
Jason C. Levine earned 500 total points
ID: 40479807
$output = '<a href="http://instagram.com/cloud9slo" title="Go to our instagram page">';

Would be the initial edit I would try.  See if that gets you what you want.
0
 
LVL 4

Author Comment

by:doug s
ID: 40481321
Yes thank you Jason!
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

These days socially coordinated efforts have turned into a critical requirement for enterprises.
Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
The purpose of this video is to demonstrate how to manually back up a WordPress Database. This will be demonstrated using a Windows 8 PC. The Host used will be IPage.com Log into your Hosting account. IPage will be used for demonstration : Locat…
The purpose of this video is to demonstrate how to set up an RSS Feed on a WordPress Website. This will be demonstrated using a Windows 8 PC. Feedburner will be used for this demonstration. Go to your WordPress login page. This will look like the…

759 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now