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 ClebioPara 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