Ted k’ É assim que tem que ser! Programando em ASP, ASP.NET, PHP, CSS, dentre outras…


31
Jul/09
0


Classe que mostrar dados da Conta do Twitter

Olá a todos, nesse artigo vamos aprender a criar um exemplo simples de como mostrar os dados de uma conta do twitter em sua página, resgatando informações de um XML:

O link é Simples: http://twitter.com/users/show/ted_k.xml

Usando um Objeto para ler o XML e um layout agradável, chegamos a essa conclusão:

Criei uma classe chamada UserTwitter, dentro criei uma sub chamada LerXML() para fazer todo o processo:
página default.class.asp

class UserTwitter
public sub LerXML()
set objXMLDOM = server.createObject("MSXML2.DOMDocument.3.0")
objXMLDOM.async = false
objXMLDOM.setProperty "ServerHTTPRequest", true
objXMLDOM.validateOnParse = false
objXMLDOM.load("http://twitter.com/users/show/"request.queryString("username")".xml")

set raiz = objXMLDOM.getElementsByTagName("*")

OBS: coloquei o request.queryString para ter um resgate do nome do usuário mais objetivo!
E, um laço de repetição para pegar a posição de cada nó e para cada nome no XML, assim:

for i = 0 to raiz.length - 1
select case (raiz.item(i).nodeName)
case ("name") : tw.nome = raiz.item(i).text
case ("screen_name") : tw.screen_name = raiz.item(i).text
case ("location") : tw.location = raiz.item(i).text
case ("profile_image_url") : tw.profile_image_url = raiz.item(i).text
case ("url") : tw.url = raiz.item(i).text
case ("followers_count") : tw.followers_count = raiz.item(i).text
case ("friends_count") : tw.friends_count = raiz.item(i).text
case ("favourites_count") : tw.favourites_count = raiz.item(i).text
case ("statuses_count") : tw.statuses_count = raiz.item(i).text
case ("time_zone") : tw.time_zone = raiz.item(i).text
case ("profile_background_image_url") : tw.profile_background_image_url = raiz.item(i).text
case ("profile_background_color") : tw.profile_background_color = ucase(raiz.item(i).text)
case ("profile_text_color") : tw.profile_text_color = ucase(raiz.item(i).text)
case ("profile_link_color") : tw.profile_link_color	= ucase(raiz.item(i).text)
case ("profile_sidebar_fill_color") : tw.profile_sidebar_fill_color = ucase(raiz.item(i).text)
case ("profile_sidebar_border_color") : tw.profile_sidebar_border_color = ucase(raiz.item(i).text)
end select
next

No código dentro do CASE coloquei o nome das tags do XML. fazendo o seguinte:
Quando encontrar o "nodeName" "tal", mostre "tal" case, como uma condicional IF

raiz.item(i).nodeName

Observando também que uso essa propriedade do XML (.text) para imprimir o que há na tag.

raiz.item(i).text

Criando um objeto e chamando ele na tela:

set tw = new UserTwitter
tw.LerXML()

criei uma página chamada default.asp

<% Language="VBScript" %>
<!--include file="Default.class.asp"-->
... o restante do código

Para ter acesso o código completo e o layout clique aqui para baixar

19
Jun/09
0


Forçando Downloads com ASP

public function download(arquivo, pasta)
    dim objStream
    set objStream = server.createObject("ADODB.Stream")
    with (response)
        .buffer = true
        .addHeader "Content-Type","application/x-msdownload"
        .addHeader "Content-Disposition","attachment; filename="&arquivo
        .flush
    end with
    with (objStream)
        .open
        .type = 1
        .loadFromFile server.mapPath(pasta)
    end with
    response.binaryWrite objStream.read
    set objStream = nothing
    response.flush
end function
1
Apr/09
0


Você sabe usar a função Replace() do ASP?

Uma função que parece ser bem simples, porém nem todos sabem utilizar por completa.
Nesse artigo vou mostrar como usar corretamente e com eficiência essa "simples função".

Todos nós programadores ASP sabemos usar simplificada a função Replace(), segue um exemplo:

<%
dim frase
frase = "Por uma internet sempre criativa e dinâmica"
response.write(replace(frase, "sempre", "mais"))
%>

Uma maneira simples, usamos o texto que está em pauta seguido da palavra que queremos substituir e depois da palavra que queremos colocar no lugar.

replace(texto em pauta, palavra que sai, palavra que entra)

Resultado o Script: "Por uma internet mais criativa e dinâmica"

OBS: a função replace() é "Case Sensitive" se quiser substituir "A" por "a", onde existir o "A" maiúsculo será substituído pelo "a" minúsculo.

Vamos para a parte que interessa mais:
No texto "Por uma internet mais criativa e dinâmica" queremos que a letra "i" de "internet" seja maiúscula e não as outras, como fazer isso?
Seguindo essa sequência "replace(texto em pauta, palavra que sai, palavra que entra)", existem mais três parâmetros opicionais que complementam a função:

* Posição inicial;
* Count (um contador que especifica o número de substituíção);
* Comparador de Strings (caso binário de padrão "zero" ou texto).

Segue o exemplo:

<%
dim frase
frase = "Por uma internet mais criativa e dinâmica"
response.write(replace(frase, "i", "I", 1,1,1))
%>

Resultado do Script: "Por uma Internet mais criativa e dinâmica"

No parâmentro inicial você também pode usar ele como um "cortador de letras", exemplo: Eu não quero mais que apareça a palavra "Por", então cortamos três letras da frase, caso queira cortar o espaço também e usar quatro no contador fiquem a vontade, mais para isso usamos a função trim() que não vem ao caso.

Segue o exemplo:

<%
dim frase
frase = "Por uma internet mais criativa e dinâmica"
response.write(replace(frase, "u", "U", 4,1,1))
%>

Resultado do Script: "Uma internet mais criativa e dinâmica"

Notem que coloquei no valor da posição o número "4" (quatro) e explicarei por que.
O valor padrão da posição inicial vem de default "1" (um) e não "0" (zero) como estamos acostumados em outras funções por isso adicionamos mais um valor no contador no caso "3 + 1".

E o que falar da última posição o "Comparador de Strings")

Olha como funciona:
Segue o exemplo:

<%
dim frase
frase = "Elegante"
response.write(replace(frase, "e", "&euro;", 1,1,0))
%>

Se eu deixar o valor inicial como "1" (um), e pegar só uma letra "e" e colocar no Comparador de Strings "0" (zero) o resultado sai:
Resultado do Script: "El€gante"

Ele não considerou a letra maiúscula "E" inicial, mais se eu trocar o último parâmentro para "1" (um), vamos ver no que gera.

Segue o exemplo:

<%
dim frase
frase = "Elegante"
response.write(replace(frase, "e", "&euro;", 1,1,1))
%>

Resultado do Script: "€legante"
Ele agora sim reconhece o primeiro "e" e faz a alteração, tenha muito cuidado quando for usar o Comparador de Strings, oks?

Abraços amigos, e vamos tomar conhecimento da linguagem para não fazer trabalho desnecessário:

Até o próximo artigo!

26
Feb/09
2


Listar favoritos do YouTube

A Classe:

<%
class YouTube
    private objXML
    private objLista
    private usuario
    private url
    private id, i
    private nome_objeto

    private sub objetosXML()
        set objXML = server.createObject("MSXML2.DOMDocument.3.0")
            objXML.async = false
            objXML.setProperty "ServerHTTPRequest", true
            objXML.validateOnParse = false
            objXML.load(url)
        set objLista = objXML.getElementsByTagName("*")
    end sub

    public sub carregarURL()
        usuario = "nome_do_seu_usuario"
        url = "http://gdata.youtube.com/feeds/api/users/"&usuario&"/favorites"
        call objetosXML()

        for i = 16 to (objLista.length - 1)
            select case (objLista.item(i).nodeName)
                case "id"
                    nome_objeto = objLista.item(i).text
                    id = right(nome_objeto, len(nome_objeto) - instrRev(nome_objeto,"/"))

                    tabela = tabela & "<table width=""494"" border=""0"" cellspacing=""0"" cellpadding=""0"">"
                    tabela = tabela & "<tr><td colspan=""2"">"
                    tabela = tabela & "<object width=225 height=144><param name=movie value=http://www.youtube.com/v/"&id&"></param>"
                    tabela = tabela & "<param name=allowFullScreen value=true></param>"
                    tabela = tabela & "<param name=allowscriptaccess value=always></param>"
                    tabela = tabela & "<embed src=http://www.youtube.com/v/"&id&" type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=225 height=144></embed>"
                    tabela = tabela & "</object>"
                    tabela = tabela & "</td></tr>"

                case "title"
                    tabela = tabela & "<tr><td width=""92"" valign=""top"" style=""font: 11px Arial;""><strong>TÍTULO:</strong></td>"
                    tabela = tabela & "<td width=""402"" valign=""top"" style=""font: 11px Arial;"">"&objLista.item(i).text&"</td></tr>"

                case "content"
                    tabela = tabela & "<tr><td valign=""top"" style=""text-align: justify; font: 11px Arial;""><strong>DESCRIÇÃO:</strong></td>"
                    tabela = tabela & "<td valign=""top"" style=""font: 11px Arial;"">"&objLista.item(i).text&"</td></tr>"
                    tabela = tabela & "</table><br><br>"
            end select
        next

        response.write(tabela)
    end sub
end class
%>

O HTML

<%@ Language="VBScript" %>
<!--#include file="Default.class.asp"-->
<%
dim yt
set yt = new YouTube
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<%=yt.carregarURL()%>
</body>
</html>

O Resultado:
null

23
Dec/08
2


Cadastrar, Listar, Editar e Excluir dados de um XML com ASP - Parte 03

Criem um arquivo chamado Editar.asp e nele serão lidas todas as tags que contém no arquivoBanco.xml , mas com a querystring passada pelo arquivo Ler.asp que criamos no artigo anterior. Vamos só alterar uma única tag, um único nó do XML. Lembrando que usei uma tag "nome": mas vocês poderiam criar uma tag "id" e colocar números seqüenciais ou randômicos, a escolha fica a critério.

Vamos primeiro listar todos os registros, criando os objetos que já utilizamos nos primeiros artigos, nada a mais.

<%@ Language="VBScript" %>
<%
Dim Banco : Banco = Server.MapPath("Banco.xml")
Set XMLDOC = Server.CreateObject("Microsoft.XMLDOM")
Set objLER = Server.CreateObject("Microsoft.XMLDOM")
XMLDOC.Load(Banco)
Set objLER = XMLDOC.getElementsByTagName("*")
%>

Logo abaixo desse script vamos criar o formulário com um "for" fazendo a varredura nas tags para pegar só o valor de tag citado na querystring passada:

<html>
<body>
<a href="Cadastro.asp">CADASTRAR</a> - <a href="Listar.asp">LISTAR</a>
<br><br>
<form action="Editar.asp?nome=<%=Request.QueryString("nome")%>" method="post">
            <input type="hidden" name="CampoUpdate" value="<%=Request.QueryString("nome")%>">
            <%
            For i = 0 To (objLER.length - 1)
            If objLER.Item(i).Text = ""&Request.QueryString("nome")&"" Then
            %>
            <b>Nome: </b><input type="text" name="Nome" value="<% Response.Write(objLER.Item(i).Text) %>"><br>
            <b>E-Mail: </b><input type="text" name="EMail" value="<% Response.Write(objLER.Item(i+1).Text) %>"><br>
            <b>Telefone: </b><input type="text" name="Telefone" value="<% Response.Write(objLER.Item(i+2).Text) %>"><br>
            <%
            End If
            Next
            %>
<input type="submit" value="Editar" name="btEdt">
</form>
</body>
</html>

Reparem a linha onde temos If objLER.Item(i).Text = ""&Request.QueryString("nome")&"" Then, é ela que está "selecionando" a tag que quero mostrar.

E por fim a edição:

<%
If Request.Form("btEdt") = "Editar" Then
            Dim Nome, EMail, Telefone, CampoUpdate, i
            Nome             = Request.Form("Nome")
            EMail              = Request.Form("EMail")
            Telefone          = Request.Form("Telefone")

            CampoUpdate = Request.Form("CampoUpdate")
            Set objLER_upDate = XMLDOC.getElementsByTagName("*")
                        For i = 0 To (objLER.length - 1)
                                   If objLER.Item(i).Text = ""&CampoUpdate&"" Then
                                               objLER.Item(i).Text    = Nome
                                               objLER.Item(i+1).Text            = EMail
                                               objLER.Item(i+2).Text            = Telefone
                                   End If
                        Next
                        XMLDOC.Save(Banco)
                        Response.Write("<script>alert('Editado com Sucesso!');location='Listar.asp'</script>")
            Set objLER_upDate = Nothing
End If
Set objLER = Nothing
Set XMLDOC = Nothing
%>

Coloquei a querystring passada em um campo hidden e joguei ele dentro de um "for", como fiz no formulário, em seguida troquei os valores pelas variáveis em seqüência, Nome, EMail e Telefone, salvei com o método XMLDOC.Save e passei um alert em JavaScript e pronto!!

Façam os testes juntando os três artigos.

Esse tipo de utilização do XML serve para coisas pequenas, por exemplo, um combo de país, cidades de um determinado estado, cores, dentre outros.

Até os próximos artigos!


Página 1 de 6123456»



Portfólio Ted k'

Atualize seu Navegador