Here you go.
Based on the first twitter droplet I made some time ago:
Call it something like: multitweet
Usage: [[mulitweet?name=name1|name2|name3]]
Optional parameter &max={number-tweets-per-name}
<?php
//use [[multitweet?name=name1|name2|name3&max=5]]
if (isset($_SESSION['tweets'])) return $_SESSION['tweets']; //prevent too many calls
if (!isset($name)) return true;
if (!isset($max)) $max = 10;
$nlist = explode("|",$name);
$mytweets = array();
global $mytweets;
if (!function_exists('fetch_tweets')) {
function fetch_tweets($username, $maxtweets) {
global $mytweets;
$tweets = simplexml_load_file("http://twitter.com/statuses/user_timeline/" . $username . ".rss");
foreach ( $tweets->channel->item as $tweet ) {
if ($maxtweets == 0) {
break;
} else {
$twit = $tweet->description;
$twit = substr(strstr($twit, ': '), 2, strlen($twit));
$twit = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<a target=\"_blank\" href=\"$1\">$1</a>",$twit);
$twit = preg_replace("(@([a-zA-Z0-9\_]+))", "<a target=\"_blank\" href=\"http://www.twitter.com/\\1\">\\0</a>", $twit);
$twit = preg_replace('/(^|\s)#(\w+)/', '\1<a target=\"_blank\" href="http://search.twitter.com/search?q=%23\2">#\2</a>', $twit);
$twit = iconv("UTF-8", DEFAULT_CHARSET, $twit);
$pubdate = strtotime($tweet->pubDate);
$propertime = date(DATE_FORMAT.', '.TIME_FORMAT, $pubdate); //Customize this to your liking
$tweet_item = array('desc' => $twit,'date' => $propertime,'name'=>$username );
$mytweets[$pubdate] = $tweet_item;
$maxtweets--;
}
}
return;
}
}
foreach ($nlist as $name) {
fetch_tweets($name, $max);
}
krsort($mytweets);
$rval = '<div class="twitter-updates">';
foreach ($mytweets as $k => $v) {
$rval .= '<div><p class="twitter-name"><a href="https://twitter.com/#!/'.$v['name'].'" target="_blank">'.$v['name'].'</a></p><p class="twitter-update">' .$v['desc']. '</p><p class="twitter-date">' .$v['date']. '</p></div>';
}
$rval .= '</div>';
$_SESSION['tweets'] = $rval;
return $rval;
?>