Scripts

Twitter op je website

Met dit script kan je twitter gemakkelijk op je website implementeren. Het is verre van optimaal en de switch kan vervangen worden door if-jes. Ik gebruik 'm zelf momenteel alleen nog lokaal om te testen. http://apiwiki.twitter.com/Twitter-API-Documentation Op deze website kan je de documentatie geven over wat je op wil halen. Check de documentatie bij de REST-api. Er kan nog veel meer met dit script om het uit te breiden en het is volledig ungestyled. Er zit een functie in die de tijd tot de post-timestamp uitrekent, alleen die kan nog een stuk beter dus ik hoor graag hoe dit beter kan. Succes!

twitterWidget.php
<?php

	//////////////////////////////////////////////
	//		TWITTER WIDGET VERSION 1.2.1		//
	//		Justin Streuper | streuper.com		//
	//////////////////////////////////////////////
	
	$username		=	'username'; // gebruikersnaam
	$tweetCount		=	5; // aantal tweets
	$twitterFeed 	= 	'http://api.twitter.com/1/statuses/user_timeline/'.$username.'.xml?count='.$tweetCount;
	
	function timeAgo($timestamp)
		{
			$timestamp	=	strtotime($timestamp);
			$now		=	time();
			$timediff	=	floor($now - $timestamp);
			
			switch(true)
				{
					case ($timediff < 60):
					return $timediff.' seconds ago';
					
					case($timediff >= 60 && $timediff < 3600):
					return floor($timediff/60).' minutes ago';
					
					case($timediff >= 3600 && $timediff < 7200):
					return floor($timediff/3600).' hour ago';
					
					case($timediff >= 7200 && $timediff < 86400):
					return floor($timediff/3600).' hours ago';
					
					case($timediff >= 86400 && $timediff < 172800):
					return floor($timediff/86400).' day ago';
					
					case($timediff >= 172800 && $timediff < 602800):
					return floor($timediff/86400).' days ago';
					
					case($timediff >= 602800 && $timediff < 1209600):
					return floor($timediff/602800).' week ago';
					
					case($timediff >= 1209600 && $timediff < 3026000):
					return floor($timediff/602800).' weeks ago';
					
					default:
					return date('d-m-Y H:i', $timestamp);
				}
		}

        
	
	function makeLinksClickable($text)
		{
			$text = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $text);
			$text = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $text);
			$text = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $text);
			$text = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $text);
			return $text;
		}
	
	$twitterCurl = 	curl_init();
					curl_setopt($twitterCurl, CURLOPT_URL, $twitterFeed);
					curl_setopt($twitterCurl, CURLOPT_RETURNTRANSFER, TRUE);
	$twitter 	=	curl_exec($twitterCurl);
	$tweets 	=	new SimpleXMLElement($twitter);
	
	foreach ($tweets->status as $tweet) 
		{
			echo	'<div class="tweet-container">';
			echo		'<div class="tweet-user-image">';
			echo			'<img src="'.$tweet->user->profile_image_url.'" alt="" />';
			echo		'</div>';
			echo		'<div class="tweet-username">';
			echo			'<a href="http://www.twitter.com/'.$tweet->user->screen_name.'">'.$tweet->user->name.'</a>';
			echo		'</div>';
			echo		'<div class="tweet-message">';
			echo			makeLinksClickable($tweet->text);
			echo		'</div>';
			echo		'<div class="tweet-post-datetime">';
			echo			timeAgo($tweet->created_at);
			echo			'<br />';
			echo		'</div>';
			echo	'</div>';
			
		}
	
	curl_close($twitterCurl);
?>

Reacties

0
Nog geen reacties.