Buenas,
yo es que lo tengo dentro de un Widget de WordPress y ahí parece que no me tiene en cuenta las dimensiones del "div" que se le dan desde el script. Mientras tanto he hecho unos pequeños apaños.
He puesto un límite de mensajes a mostrar que se define al principio en la variable $cuantos_quieres. Con ello me ahorro los problemas del scroll hasta que no de con una solución más elegante. La desventaja, claro, es que sólo se ven estos que se indican.
También he apañado el aspecto más parecido al badge original. Poniendo la imagen como flotante para que aparezcan el usuario y la fecha a la derecha. Y el texto debajo de todo.
Me queda esto que se puede ver en
http://pedrezuela.net funcionando con el grupo !15m.
<?php
#-- Hay que habilitar en php.ini la linea ;extension=php_openssl.dll (simplemente quitar el ;)
#___ ¿Cuántos quieres que salgan? ___
$cuantos_quieres=5;
#-- En la siguiente linea simplemente cambiamos fotolibre por el nombre del grupo
$xml = simplexml_load_file("https://identi.ca/api/statusnet/groups/timeline/15m.xml");
echo '<div style="font-size:small; width: 250; height: 300; overflow:auto">';
foreach($xml->status as $status)
{
$user=$status->user;
$imagen=$user->profile_image_url;
$perfil=$user->{'statusnet:profile_url'};
$fecha=$status->created_at;
$fecha=convertirfecha($fecha);
$texto=$status->text;
$texto=convertirURL($texto);
$texto=convertirgrupo($texto);
$texto=convertirusuario($texto);
$texto=convertiretiqueta($texto);
$html=$status->{'statusnet:html'};
#--Las siguientes dos lineas se hacen aquí, porque no fui capaz de que funcionara en las funciones
$texto=str_replace('group/!','group/',$texto);
$texto=str_replace('identi.ca/@','identi.ca/',$texto);
$texto=str_replace('identi.ca/tag/#','identi.ca/tag/',$texto);
echo '<img style="float:left;margin:2px" src="'.$imagen.'" Align=ABSMIDDLE>'.' '.
'<strong><a target="_blank" href="http://identi.ca/'.$status->user->screen_name.'">'.
$status->user->screen_name.'</a></strong><br \> '.
'<a style="text-decoration:none;color:black" target="_blank" href="http://identi.ca/notice/'.$status->id.'"> '.$fecha.'</a><br /><div style="clear:both;">'.
$texto.'<hr>';
if (++$cuantos_van == $cuantos_quieres) break;
}
echo '</div></div>';
function convertirURL($url)
{
$reg = '/(?<!(?:\]|=))(http:\/\/[\w\/*\?*\&*\=*\.*]+)(?!(?:\[|\]))/i';
$rep = '<a target="_blank" href="$1">$1</a>';
return preg_replace($reg, $rep, $url);
}
function convertirgrupo($url)
{
$reg= '/(![\w]+)/i';
$rep = '<a target="_blank" href="http://identi.ca/group/$1"><i>$1</i></a>';
return preg_replace($reg, $rep, $url);
}
function convertirusuario($url)
{
$reg= '/(@[\w]+)/i';
$rep = '<a target="_blank" href="http://identi.ca/$1"><strong>$1</strong></a>';
return preg_replace($reg, $rep, $url);
}
function convertiretiqueta($url)
{
$reg= '/(#[\w]+)/i';
$rep = '<a target="_blank" href="http://identi.ca/tag/$1"><strong>$1</strong></a>';
return preg_replace($reg, $rep, $url);
}
function convertirfecha($fecha)
{
$f=strtotime($fecha);
$f=date('d/m/Y H:i',$f);
return $f;
}
?>
A ver si se anima alguien más a publicar en el grupo !15m de identi.ca que sólo salimos el Invi y yo.