Olá amigos, tudo bem com vocês? Espero que sim.
Este é meu primeiro artigo após o iMasters InterCon 2007. Fiquei muito contente de estar presente no evento, onde tive a oportunidade de conhecer novas pessoas, os novos integrantes da família iMasters, bater um papo descontraído com leitores da coluna, do meu blog e daqueles que já adquiriram alguns dos meus cursos, além de realizar um networking para trabalhos futuros. Foi ótimo estar em contato com vocês.
Hoje, falaremos sobre o Spry Accordion, um dos novos recursos da versão CS3 do Dreamweaver.
O Spry Accordion é um grupo de painéis "dobráveis", onde cada um deles é visível e aberto por vez. Este tipo de recurso é muito utilizado na exibição de extenso conteúdo em espaços compactos.
O escopo deste artigo refere-se a uma forma de hackear o código do Spry Accordion, afim de exibir em aberto o painel em questão. E não de como criar um Spry Accordion. Como, até o momento, não há uma opção do recurso que nos possibilite tal opção, resolvi adaptar o código.
Um detalhe, hackear um código nada mais é do que modificar ou inventar algumas funcionalidades que não foram pensadas, desenvolvidas ou implementadas pelo autor do código original. Somente.
No Curso Interativo Adobe Dreamweaver CS3 abordo tudo sobre o Spry, inclusive o Spry Accordion. Além de falar sobre uma dica de como definir que um painel padrão fique aberto ao carregar a página. Embora o Dreamweaver CS3 não ofereça tal opção através de sua interface.
Para que possamos alcançar o nosso objetivo, ou seja, exibir o painel em questão do Spry Accordion aberto, vamos realizar o seguinte processo: quando o usuário clicar sobre um determinado painel, será criado um cookie que irá gravar a identificação de tal painel. Dessa forma, saberemos qual o último painel aberto, e com essa informação, poderemos abri-lo ao carregar a página. Simples.
Em um post entitulado como Solução para trabalhar com cookies em JavaScript no meu blog, disponibilizo um código para trabalhar, de forma simples, com cookies via JavaScript. Portanto, iremos incluí-lo junto ao arquivo do Spry Accordion, isto é, SpryAccordion.js. Inclua o código antes da instanciação da variável Spry: var Spry;
Nota: o código será disponibilizado no final do artigo, para você observar com maiores detalhes tais modificações.
Uma vez incluindo o código, w3cookies, podemos criar o cookie que precisamos e saber qual o painel clicado pelo usuário.
Através da inicialização do Spry Accordion é definido uma opção denominada como defaultPanel com o valor zero. O que indica que o painel a ser aberto quando a página carregar será o primeiro, sempre. Vamos mudar esse comportamento, de forma a exibir sempre o último painel clicado. Observe a lógica:
if ( SpryCurrentPanel = w3cookies.read('SpryCurrentPanel') ) {
this.defaultPanel = SpryCurrentPanel;
} else {
this.defaultPanel = 0;
}Dentro de uma condição IF, definimos o valor da variável SpryCurrentPanel com o valor de um cookie, também chamado de SpryCurrentPanel. Se tal cookie já tiver sido criado, teremos algum valor nessa variável. O que nos informa qual painel deveremos deixar aberto. Caso contrário, abriremos o primeiro painel.
Agora, precisamos apenas criar o cookie SpryCurrentPanel quando o usuário abrir o painel desejado. Esse cookie será criado dentro de uma função do Spry Accordion chamada openPanel. Esse função é executada para abrir um painel desejado. Vamos acrescentar o seguinte código no final da função openPanel:
w3cookies.create('SpryCurrentPanel',this.getCurrentPanelIndex(),365);Nota: Se o arquivo do SpryAccordion.js for a versão 1.6 adicione o código demonstrado acima antes do seguinte código: return panelB;
Ou seja, criamos um cookie chamado SpryCurrentPanel; com o valor do painel em questão, isto é, o painel que acabara de ser exibido; e definimos que o cookie terá uma vida de 365 dias. Observe que utilizamos a função getCurrentPanelIndex do próprio Spry Accordion que nos diz qual o painel em questão.
Pronto. Alcançamos o objetivo desejado: exibir o painel em questão aberto.
Baixe o arquivo SpryAccordion.js com as modificações discutidas neste artigo.
Espero que tenham gostado; um forte abraço a todos.
Legal Leandro, ótimo artigo. Vale a pena destacar que se forem páginas separadas e queira abrir em determinada posição, pode-se alterar o script (nativo) [var Accordion1 = new Spry.Widget.Accordion("Menu",{defaultPanel: 0 });] para o painel desejado.
Valew
Olá Leandro,
Sou no vo aqui no iMasters mas já achei as suas matérias muito úteis. Gostaria de saber se é possível que haja um sistema em PHP feiot no Dreamweaver onde o usuário faça o upload de uma imagem para o servidor, seu nome vá para o db MySQL e a imagem seja redimensionada para um tamanha específico. Já vi que é possível realizar tudo isso menos o redimensionamento. Seria possível fazer isso? Se sim, poderia nos mostrar em uma de suas materias? Garanto que seria útil e interessante para todos o leitores da sua coluna.
Desde já agradeço,
Olá Pedro,
Veja: http://leandrovieira.com/archive/como-utilizar-a-classe-w3_image
Abraço.s
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Leandro Vieira trabalha com desenvolvimento web desde 2002. Em 2005, foi convidado para integrar o time de referências profissionais do iMasters. No mesmo ano, lançou o CD-ROM Dreamweaver + PHP + MySQL recordista de vendas do TI SHOP. Em 2006, lançou o CD-ROM Curso Web Sites com AJAX, uma das primeiras referências de Ajax no Brasil. Em 2007 lançou o Curso Interativo Adobe Dreamweaver CS3 abordando as novas funcionalidades e recursos do Dreaweaver CS3. Atualmente, Leandro Vieira é desenvolvedor web, professor do iPED Premier, criador de cursos exclusivos para o TI SHOP, editor do blog leandrovieira.com e cursando Comunicação Social (Publicidade e Propaganda) na UNIVALE.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.