Olá caro leitor. Nesta matéria vou demonstrar como fazer um widget personalizado do DiHITT, assim você pode personalizar o botão de voto conforme cores e temas de seu site.

Para isto o DiHITT disponibilizou a partir de hoje um XML que retorna o número de votos, url da notícia publicada no DiHITT, e ainda os comentários que a notícia teve, assim você pode colocar no seu site/blog os comentários que teve no DiHITT juntamente com os comentários de seu site/blog.

Bom criei uma função chamada widgetDiHITT que você precisa apenas passar a url seguinte:

http://widget.dihitt.com.br/tools/api_link?url=http://www.seusite.com /link_da_noticia&title=Título da notícia

assim, o XML do DiHITT retorna o seguinte XML:


Google Developer Day reúne desenvolvedores
http://dihitt.com.br/noticia/google-developer-day-reune-desenvolvedores
16
0
1



onde:
= titulo da notícia
= url da notícia no DiHITT
= votos no DiHITT
= comentários que a notícia teve
= status da notícia (1 = ok)(5 = popular (notícia popular no DiHITT )) (17 = erro (notícia não existe) )

E se você passar mais um parâmetro: &comments=1 o XML retorna os comentários que a notícia teve em blocos:


bcpetronzio


Sat, 05 Jul 2008 18:24:34 GMT
Comentário



Este bloco vai retornar no XML caso tenha comentários na notícia. Cada comentário gera um bloco destes acima.

Bom vamos a função que eu criei para carregar o XML:

function widgetDiHITT( $url )
{
if(@fopen($url, 'r'))
{
$xml = file_get_contents($url);

$parser = xml_parser_create();
xml_parse_into_struct($parser, $xml, $dados, $index);
xml_parser_free($parser);

for($x = 0; $x < count($dados); $x++)
if($dados[$x][ 'tag' ] == 'STATUS')
$ST = $dados[$x][ 'value' ];

for($x = 0; $x < count($dados); $x++)
if($dados[$x]["tag"] == 'URI')
$URI = $dados[$x][ 'value' ];

if($ST != 17)
{
for($x = 0; $x < count($dados); $x++)
if($dados[$x][ 'tag' ] == 'VOTES')
$VOTOS = $dados[$x][ 'value' ];
if($VOTOS > 1)
$s = 's';
$link = "DiHITT: ".$VOTOS." voto$s";
}
else
$link = "DiHIIT: indicar";

return $link;
}
}



A função é um tanto simples, ela verifica se a URL existe, caso exista ela lê todo o XML, depois aplica a função xml_parser_create para dividir todas as tags em um array.

Então faço um for para encontrar a tag STATUS, o for é usado, caso venha a trocar a ordem dos blocos no XML, então com o FOR isto torna-se genérico, ou seja, pode alterar a ordem que não perderá a validade dos dados.

Após encontrar o STATUS eu procuro a tag URI, que retorna ou a URL para voto caso exista a notícia, ou a URL para indicação da notícia no DiHITT.

Então ela verifica se o STATUS for diferente de 17 ou seja, se não tem erro algum, então ela monta o link para votar e mostra o número de votos que a notícia teve.

Caso o status for igual a 17 ela cria o link para indicação.

Está função deve ser chamada da seguinte forma:

$url = "http://widget.dihitt.com.br/tools/api_link?url=http://www.seusite.com/link_da_noticia&title=Título da notícia";
$dihitt = widgetDiHITT($url);
echo $dihitt;



O retorno da função na variável $dihitt retorna:

DiHITT: 8 votos


Assim você pode usar CSS para deixar do seu gosto o botão. Pode também alterar a função e adicionar novas tags dentro do .

Como acima falei se você passar o parâmetro &comments=1 junto na $url, o XML retorna os comentários.

Bom pessoal, está aí a função, espero que utilizem-a. Vocês podem usar o STATUS ainda para seu proveito, por exemplo se ele retornar o status = 5 significa que a notícia é popular no DiHITT.

O XML tem um cache de 2 minutos, então caso você vote e não mude o valor, aguarde uns instantes.

O resultado pode ser visto nesta matéria, vejam ao lado do título o botão do DiHITT personalizado.

Peço que qualquer melhoria na função publiquem nos comentários.


Botão personalizado em blogs

Caso você não tenha muita experiência com PHP, criei um script para você utilizar em seu blog, basta colocar está linha:

Wordpress:



Blogger Novo:



Blogger Antigo:



Seu site:



Qualquer dúvida poste no comentário.

Este script é gratuito para você utilizar, portanto, ajude-nos também, adicione um link do Oficina da Net em seu site - www.oficinadanet.com.br



Abraço a todos e viva o DiHITT.

PS.: Obrigado ao Pablo, por dispor do XML, será de grande utilidade a todos, tenho certeza.