Scripts

Twitter op je website via RSS

Dit is een simpel script wat via RSS je timeline opvraagt vanaf de Twitter server. Je kan bij de variabele userid je screenname invullen zoals je gebruikt op twitter. Voor de rest kan je in de foreach de output aanpassen. Ik heb dit zelf in een div gedaan. En heb ook de username gescheiden van het bericht om zo ook te kunnen linken naar het twitter profiel. Let er wel op: Door de RSS feed geeft hij maximaal 150 tekens als bericht terug. Het aantal tekens is inclusief: "username:". HIj kort de tweet automatisch in en plaatst een paar puntjes (truncated string).

plugin.twitter.php
<?php
	
	// Format datetime to relative time
	function relativetime($sDate)
        {
            $timestamp    =    strtotime($sDate);
            $now        =    time();
            $timediff    =    floor($now - $timestamp);
            
            switch(true)
                {
                    case ($timediff < 60):
                    return $timediff.' seconden geleden';
                    
                    case($timediff >= 60 && $timediff < 120):
                    return floor($timediff/60).' minuut geleden';
                    
                    case($timediff >= 120 && $timediff < 3600):
                    return floor($timediff/60).' minuten geleden';
                    
                    case($timediff >= 3600 && $timediff < 86400):
                    return floor($timediff/3600).' uur geleden';
                    
                    case($timediff >= 86400 && $timediff < 172800):
                    return floor($timediff/86400).' dag geleden';
                    
                    case($timediff >= 172800 && $timediff < 602800):
                    return floor($timediff/86400).' dagen geleden';
                    
                    case($timediff >= 602800 && $timediff < 1209600):
                    return floor($timediff/602800).' week geleden';
                    
                    case($timediff >= 1209600):
                    return floor($timediff/602800).' weken geleden';
                }
        }
    
	// Format text to links
    function formatlinks($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://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;
        }
    
	
	// Set parameters
	$userid		=	'hier-je-username';
    $feed   	= 	'http://twitter.com/statuses/user_timeline.rss?screen_name='.$userid;
    $limit  	= 	5;
    $c      	= 	0;
	
    $ch 		=	curl_init();
    $timeout 	= 	5;
    
	// CURL performance optimalisation
	curl_setopt ($ch, CURLOPT_URL, $feed);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $feed 		= 	curl_exec($ch);
    curl_close($ch);
    
	// Unload XML feed and display
	$twitter 	= 	new SimpleXMLElement($feed);
    foreach($twitter->channel->item as $entry)
        {
            $c++;
            $tweet    =    explode(':', $entry->title, 2);
            
            echo '    <div class="tweet">
                        <div class="content">
                            <a href="http://twitter.com/#!/'.$tweet[0].'">'.$tweet[0].'</a> '.formatlinks($tweet[1]).'
                        </div>
                        <div class="bottom">
                            '.relativetime($entry->pubDate).'
                        </div>
                    </div>';
            
            if($c == $limit) break;
        }
    
?>

Reacties

0
Nog geen reacties.