Desenvolvimento - ASP

Criando RSS Feed com banco de dados no Dreamweaver usando ASP

Para criar um RSS Feed contendo as últimas manchetes publicadas em um site com o Macromedia Dreamweaver MX 2004 (em ASP) basta seguir os passos indicados neste artigo (esse procedimento também é válido para as versões Ultradev e MX do Dreamweaver).

por James Clebio



O RSS (Really Simple Syndication) é um ótimo recurso para a divulgação imediata das últimas atualizações de um determinado site (feed) através dos chamados "leitores de RSS". Os arquivos RSS Feed são escritos em XML em possuem um formato padrão mundial. Obtenha maiores informações sobre RSS Feeds no endereço http://www.rssficado.com.br.

Para criar um RSS Feed contendo as últimas manchetes publicadas em um site com o Macromedia Dreamweaver MX 2004 (em ASP) basta seguir os passos a seguir (esse procedimento também é válido para as versões Ultradev e MX do Dreamweaver).

Supondo que o site já esteja devidamente definido no Dreamweaver, o próximo passo é montar um banco de dados que armazerá as notícias. Esse exemplo utiliza o Microsoft Access 2000 para esse armazemento. A estrutura do banco de dados a ser usada como exemplo é:

Tabela "news"
Campo "new_code" - Autonumeração
Campo "new_date - Data
Campo "new_title" - Texto
Campo "new_resume" - Texto
Campo "new_body" - Texto longo

O arquivo DB será salvo no diretório "root/data".
O banco deve ser alimentado com no mínimo quatro notícias para que esse exemplo torne-se funcional. É importante preencher o campo "new_date" com datas alternadas para que se identifique as notícias mais recentes.

Agora cria-se o arquivo "generate.asp" que deve ser salvo na pasta root do site. Feito isso, define-se agora uma conexão do site com o banco de dados usando a aba "Database" do painel "Application".

String para uma conexão do tipo "Custom Connection String" usando OLEDB (melhor performance!):

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\home\site\data\data.mdb

Cria-se agora no arquivo "generate.asp" um recordset que irá apontar quais notícias deverão ser mostradas no arquivo RSS (as mais recentes!). A configuração do recordset usará o campo "new_date" (ordem decrescente) para fazer essa definição.

O diretório root do site deve possuir um subdiretório chamado "rss" ("root/rss").

Alternando o modo de edição do arquivo "generate.asp" (botão "Show Code View") insira o código ASP a seguir logo abaixo das linhas que definem o recordset da página:

<%
dim var_path, var_file, var_count

var_path = server.mappath("rss")
var_file = var_path & "\" & "news.xml"
var_count = 0

set objfso = server.createobject("scripting.filesystemobject")
set objtstream = objfso.createtextfile(var_file, true) 

objtstream.writeline "<?xml version="&chr(34)&"1.0"&chr(34)&" 
encoding="&chr(34)&"ISO-8859-1"&chr(34)&"?>"
objtstream.writeline "<rss version="&chr(34)&"2.0"&chr(34)&">"
objtstream.writeline "<channel>"
objtstream.writeline "<title>titulo do site</title>"
objtstream.writeline "<link>http://www.site.com</link>"
objtstream.writeline "<description>descricao do site</description>"
objtstream.writeline "<language>pt-br</language>"

while (var_count < 3) and (not rs_news.eof)

objtstream.writeline "<item>"
objtstream.writeline "<title>"&rs_news.fields.item("new_title").value&"</title>"
objtstream.writeline 
"<link>http://www.site.com/news.asp?code="&rs_news.fields.item("new_code").value&"</link>"
objtstream.writeline "<description>"&rs_news.fields.item("new_resume").value&"</description>"
objtstream.writeline "</item>"

var_count = var_count + 1
rs_news.movenext()
wend

objtstream.writeline "</channel>"
objtstream.writeline "</rss>"

objtstream.close
Set objtstream = nothing
Set objfso = nothing
%>

Explicação das partes do código inserido:

dim var_path, var_file, var_count

var_path = server.mappath("rss")
var_file = var_path & "\" & "news.xml"
var_count = 0

- Declaração das variáveis a serem usadas no processo; "var_path" retorna o caminho físico do diretório "rss" que armazenará o arquivo XML a ser gerado, "var_file" define qual vai ser o nome desse arquivo e "var_count" será usado para orientar a função while do ASP que será usada logo adiante;

set objfso = server.createobject("scripting.filesystemobject")
set objtstream = objfso.createtextfile(var_file, true) 

- Inicia o objeto ASP FileSystemObject que irá criar o arquivo XML;

objtstream.writeline "<?xml version="&chr(34)&"1.0"&chr(34)&" 
encoding="&chr(34)&"ISO-8859-1"&chr(34)&"?>"
objtstream.writeline "<rss version="&chr(34)&"2.0"&chr(34)&">"
objtstream.writeline "<channel>"
objtstream.writeline "<title>titulo do site</title>"
objtstream.writeline "<link>http://www.site.com</link>"
objtstream.writeline "<description>descricao do site</description>"
objtstream.writeline "<language>pt-br</language>"

while (var_count < 3) and (not rs_news.eof)

objtstream.writeline "<item>"
objtstream.writeline "<title>"&rs_news.fields.item("new_title").value&"</title>"
objtstream.writeline 
"<link>http://www.site.com/news.asp?code="&rs_news.fields.item("new_code").value&"</link>"
objtstream.writeline "<description>"&rs_news.fields.item("new_resume").value&"</description>"
objtstream.writeline "</item>"

var_count = var_count + 1
rs_news.movenext()
wend

objtstream.writeline "</channel>"
objtstream.writeline "</rss>"

- Instruções para e estruturação em XML (1.0) do novo arquivo no formato usado para RSS Feeds (2.0). A função while conta somente três registros do recordset (últimas notícias...) e torna o processo de restauração (atualização) do RSS automático. As informações acima do while são referentes ao site exemplo e devem ser substituídas por informações do site que utiliza esse recurso;

objtstream.close
Set objtstream = nothing
Set objfso = nothing

- Finaliza o objeto ASP FileSystemObject.

OBSERVAÇÃO: Nesse exemplo leva-se em consideração que o site possui um arquivo chamado "news.asp" que mostra as notícias do site utilizando a variável de url "code".

Sempre que o arquivo "generate.asp" for executado no servidor cria-se um novo RSS Feed -XML (news.xml) automaticamente no diretório "rss".

Alternando o modo de edição do arquivo "generate.asp" agora para "Show Design View" (botão) insere-se na página um link apontando para "rss/news.xml".

O último passo é aplicar o recurso de RSS no site. Para tal, basta inserir o código a seguir dentro da tag head (<head>) do documento que irá oferecer esse recurso ao visitante:

<link rel="service.feed" type="application/atom+xml" title="RSS title" href="rss/news.xml">

* Deve-se subtituir "RSS title" pelo nome do RSS do site (Ex.: Últimas notícias do site em RSS). Esse código leva em consideração que o documento que recebeu essas linhas encontra-se no root do site (Ex.: http:www.site.com/INDEX.ASP).

Veja a seguir como testar o RSS Feed usando o navegador Mozilla Firefox 1.0.4:

Ao acessar páginas com esse recurso o navegador exibe automaticamente um ícone de RSS no canto inferior direito da janela, na barra de status.

Para ver ler e acessar as notícias contidas no RSS basta adicionar o mesmo aos favoritos clicando em cima do ícone.

OBSERVAÇÃO: Clicando no link criado em "generate.asp" o navegador mostra o código XML gerado para o RSS Feed. Observe que o arquivo recebeu apenas as últimas três notícias pela ordem de data.

James Clebio

James Clebio

James Clebio