Botão personalizado do DiHITT

Canal: PHP  |  Autor: Nícolas Müller  |  Publicado em: 06/07/2008  |  Views: 2.483
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:

<dihitt>
<title>Google Developer Day reúne desenvolvedores</title>
<uri>http://dihitt.com.br/noticia/google-developer-day-reune-desenvolvedores</uri>
<votes>16</votes>
<comments_count>0</comments_count>
<status>1</status>
</dihitt>


onde:
<title> = titulo da notícia
<uri> = url da notícia no DiHITT
<votes> = votos no DiHITT
<comments_count> = comentários que a notícia teve
<status> = 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:
<comment>
<comment_user_login>bcpetronzio</comment_user_login>
<comment_user_name/>
<comment_user_url/>
<comment_date>Sat, 05 Jul 2008 18:24:34 GMT</comment_date>
    <comment_content>Comentário</comment_content>
</comment>


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 = "<a class='dihitt' href='".$URI ."' title='indicar para o DiHITT' target='_blank'><span>DiHITT</span>: ".$VOTOS." voto$s</a>";
}
else
$link = "<a class='dihitt' href='".$URI."' title='indicar para o DiHITT' target='_blank'><span>DiHIIT</span>: indicar</a>";

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:
<a class='dihitt' href='http://dihitt.com.br/noticia/video-aula-conexao-e-busca-no-banco-de-dados' title='indicar para o DiHITT' target='_blank'><span>DiHITT</span>: 8 votos</a>
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 <a>.

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:
<script type="text/javascript" src="http://www.oficinadanet.com.br/dihitt.php?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>"></script>

Blogger Novo:
<script type="text/javascript" src="http://www.oficinadanet.com.br/dihitt.php?url=" + data:post.url + "&title=" + data:post.title'></script>

Blogger Antigo:
<script type="text/javascript" src="http://www.oficinadanet.com.br/dihitt.php?url=<$BlogItemPermalinkURL$>&title=<$BlogItemTitle$>"></script>

Seu site:
<script type="text/javascript" src="http://www.oficinadanet.com.br/dihitt.php?url=http://www.seusite.com/linknoticia&title=titulo"></script>

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.
Creative Commons Esta obra está licenciada sob uma Licença Creative Commons. Você pode copiar, distribuir, exibir, executar, desde que seja dado crédito ao autor original (Citando nome do autor, data, local e link de onde tirou o texto). Você não pode fazer uso comercial desta obra. Você não pode criar obras derivadas.
Vote no artigo:
NR. DE VOTO(S): [2]
[x] Fechar Preencha os campos abaixo para indicar esta página:
Seu nome:
Seu e-mail:
Nome do indicado:
E-mail do indicado:
Deixe uma mensagem:
Anti-spam:

(nova imagem)
Preencha o que vê:
Twitter diHITT Facebook delicious envie por e-mail comentar
Tags: dihitt, xml, php, função

comentarComentários:

Preencha o formulário para comentar:

[x] Fechar
Nome:*
E-mail:* (não será exibido)
Site: (http://)
Comentário:*
Anti-spam:

(nova imagem)
Preencha o que vê:

Deseja receber as respostas dos comentários

Publicado em:
06/07/2008 - 19:04
Parabéns pela personalização do botão do diHITT,
Publicado em:
06/07/2008 - 19:08
Obrigado Gustavo, espero que muitos usuários o usem.
Publicado em:
27/10/2008 - 19:33
A idéia é brilhante, mas para leigos fica um pouco difícil assimilar. Gostaria apenas que os comentários feitos nas notícias que envio para o dHitt, pudessem aparecer no meu blogger. Como devo proceder? Agradeço a ajuda. Sucesso.
Publicado em:
03/11/2008 - 18:11
Estive a ler o blog e confesso que estava à espera de outra coisa. Desculpe-me.
Estava à espera de algo mais compreensível para o comum dos mortais, que como eu quase não sabe nada de XML, CSS, Javascript e outras coisas que tais.
Que tal vc fazer um novo post explicando isso para as "louras burras" onde eu me incluo ?
Obrigado
Jorge

Publicado em:
03/11/2008 - 18:11
Ótima iniciativa Muller, mas como nosso amigo Jorge disse, muita gente não vai conseguir implementar essa maravilha criada por vocÊ!

Abraço!
Marcelo França
Publicado em:
03/11/2008 - 18:11
Jorge,

Eu fiz um "Convite aos programadores", para criarem algum plugin ou algo que facilite o uso da API. Dá para fazer aquele widget dos comentários que haviamos falado a respeito. E muitas outras coisas.

Vamos ver o que a comunidade vai criar com essa nova possibilidade.
Publicado em:
03/11/2008 - 18:11
Vou pensar em algum código pronto para utilizarem. Algo mais simples para ser utilizado...
Publicado em:
03/11/2008 - 18:11
Boa iniciativa Pablo. Esperemos que os experts nos ajudem. O trabalho em equipa é sempre interessante.

Muller

Espero que me desculpe o tom do comentário mas realmente a linguagem está muito hermética, para nós que não temos formação informática.

Essa história de os comentários escritos no diHITT saírem automaticamente nos nossos blogs era um avanço extraordinário relativamente aos outros sites deste género.
Obrigado
Jorge
Publicado em:
03/11/2008 - 18:11
Que isto Jorge, eu entendo sim... Estou até providenciando algo bem fácil de usar...
Publicado em:
03/11/2008 - 18:11
Pessoal acessem a matéria de novo... no final dela tem como vocês podem usar ela para seus blogs e sites... com apenas uma linha de código...

http://www.oficinadanet.com.br/artigo/1015/botao_personalizado_do_dihitt
Publicado em:
03/11/2008 - 18:11
Eu tb espero algo mais fácil e prático, pois apesar de nao ser loira me incluo no termo usado pelo Jorge..rss

E este negocio do comentario automatico que o Jorge citou seria show de bola mesmo... eu tb adorei a ideia..
Publicado em:
12/10/2009 - 18:43
Muito bom o código.