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