Publicado em: 06/07/2008  |  PHP  |  Visualizações: 745  |  4 Comentário(s)

Botão personalizado do DiHITT

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.
Links patrocinados
Últimos artigos do editor

seo.jpg Dicas SEO - Parte 2 - Pin.
O ping pode ser uma ferramen.
gerencia.jpg Você controla seu tempo e.
Nos tempos de hoje sempre há.
SO.jpg Especial: Notebooks, conf.
Este especial sobre notebook.
links.jpg Adsense para Feeds RSS
Hoje ao acessar o Google Ads.
profissonais_ti.jpg Uso de fones no trabalho .
Você que usa fones de ouvido.
software.jpg Usabilidade, o quão impor.
Muito se ouve falar em “usab.
Opinião do leitor:
4 Comentário(s)

  Nicolas comentou:

Obrigado Gustavo, espero que muitos usuários o usem.

Publicado em: 06/07/2008 - 19:08

  Gustavo Freitas comentou:

Parabéns pela personalização do botão do diHITT,

Publicado em: 06/07/2008 - 19:04

 Micheli Gomes comentou:

Quero denunciar bandeiras que se aproveitam da força da marca,para engrandecerem e terem fins lucrativos fora das normas e padroes Honda.

Publicado em: 13/05/2008 - 21:22

 Micheli Gomes comentou:

gostaria de enviar um email para departamento de qualidade da Fábrica em Manaus,gostaria de uma resposta,de um cliente e funcionária insatisfeita.

Publicado em: 13/05/2008 - 21:20

Acesso restrito
Destaques
Desabilitando Processos no Windows Desabilitando Processos no Windows
Veja como desabilitar alguns processos do windows
Layouts Free Layouts Free
Confira a nossa coletânea de layouts prontos para uso. Diversas categorias para você escolher.
Você controla seu tempo em atividades? Você controla seu tempo em atividades?
Nos tempos de hoje sempre há necessidade de produtividade em níveis elevados
Autor
Tags
Artigos Relacionados
Novos Artigos
Notícias Relacionados

© 2005 - 2008 - Oficina da Net - v 3.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.