twitterWidget.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?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);
?>
//////////////////////////////////////////////
// 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);
?>