Seis maneiras de deixar o Yum mais rápido no Fedora

Gary Richmond
12/01/2009

Six ways to speed up Yum on Fedora
Autor original: Gary Richmond
Publicado originalmente no:
freesoftwaremagazine.com
Tradução: Roberto Bechtlufft

Já faz alguns anos que vez sim, vez não eu uso o Fedora (desde os tempos do Core), e descontando a atitude parcimoniosa dele com relação a codecs, a coisa que mais acaba comigo é ver o Yum instalando um software. A velocidade dele é comparável à de um rio de melado no pólo Norte. Enquanto o Yum põe a mesa e separa os talheres, o apt-get já comeu e foi para casa dormir. Sem falar que o programa é prolixo demais, como você vai notar depois de usá-lo por um tempo. Existe algum jeito de arrancar esse gerenciador de pacotes do sofá e mandá-lo para uma bela malhação na academia?

A culpa não é do hardware

Você deve estar pensando: "aposto que você está rodando o Fedora em um computador do tempo em que os dinossauros dominavam a Terra, certo?" Bem, sim e não. Eu rodava o Fedora Core 5 nessa máquina arcaica com um processador Celeron meio manco de 400 MHz, então você talvez não esteja de todo errado, mas não notei grandes melhorias na velocidade quando instalei versões mais recentes do Fedora em desktops e laptops mais poderosos, com processadores na faixa dos 2.600 MHz. Toda vez que vinham com esse hype eu acreditava. "O Yum está mais rápido do que nunca", diziam eles. Vai lá, instala o Fedora e confere! E eu conferia. Mas ao invés de um tigre enfurecido, o que eu encontrava era uma baleia encalhada. Problemas com o hardware? Acho que não. Afinal, há anos que uso distros com o apt-get em computadores de velocidades diferentes, mas ele sempre cumpre o que promete, enquanto o Yum parecia ferir o código de defesa do consumidor. Em termos de velocidade, ainda não vi nada que se compare ao apt-get. Então, o que fazer para colocar o Yum no páreo e não mandá-lo para um país distante montado em um pangaré?

Yum pela linha de comando?

Estou sempre à caça de interfaces para ferramentas de linha de comando, especialmente para gerenciadores de pacotes. Sacrifica-se um pouco de controle e da capacidade de resolver problemas, mas ganha-se facilidade de uso e uma relativa transparência — e com interfaces como o Synaptic, você não vai se decepcionar. Pouco se perde em termos de velocidade. E é assim que deve ser. Já o Yum é outra história. Instale e inicie o Kyum ou o Yumex e você terá duas interfaces bonitas e cheias de recursos para o Yum, só que as duas reduzem o usuário a um estado de paralisia catatônica com sua lentidão absurda, especialmente no caso do Yumex. Eu sei que verificar transações e chaves é importante, mas parece que essas interfaces conseguem deixar até isso lento. Mesmo o Packagekit, a nova interface do Yum desde o Fedora 9, não é nenhum maratonista. Sim, para usar o Yum pela linha de comando você vai ter que decorar algumas coisas, mas acredite, depois que você estiver prestes a perder a vontade de viver enquanto o Kyum faz uma instalação simples (no caso do Yumex é pior ainda), vai achar que memorizar alguns comandos é um pequeno preço a pagar para não ter ataques de fúria nas instalações.

Que tal esperar menos?

Bom, na verdade você vai continuar tendo que esperar um pouco. Se iniciar o Yumex pelo menu de aplicativos ou pelo ícone do desktop com as configurações padrão, vai precisar de um livro para passar o tempo enquanto ele trabalha. A minha versão do Yumex, pelo visto, não tem mais um recurso que tinha antes: a capacidade de usar perfis, como no Firefox. Dentre outras coisas, isso permitia ao usuário desativar a atualização dos metadados e usar o cache local. Pelo visto, a opção não existe mais. Tentei usá-la mas o resultado foi a interface normal, então vamos precisar de outro jeito de ganhar velocidade.

Para acelerar o Yum vamos ter que editar seu arquivo de configuração. Se você abrir esse arquivo em seu editor de texto favorito, vai ver que há um tempo de validade padrão para a atualização dos metadados. Esse tempo era de trinta minutos, mas agora aumentou para noventa. Nem o mais dedicado ou prolífico instalador de software precisa estar tão atualizado; aumentar bastante esse tempo deve dar uma boa ajuda na lentidão. Defina um valor condizente com seus hábitos e veja como a velocidade aumenta. Se preferir, defina uma padrão realmente alto, equivalente a uma atualização por semana. Se você não gosta de arquivos de configuração, a maneira rápida de resolver isso é digitar yum -C install <seu aplicativo>. O C faz o Yum ignorar a atualização dos cabeçalhos, rodando com o que estiver no cache. Fazendo isso, mais cedo ou mais tarde você vai querer sincronizar o cache local de metadados com os repositórios. Para isso, digite yum makecache periodicamente para sincronizar com as atualizações do Fedora. Mas em última análise, parece que o verdadeiro problema do Yum está em sua lentidão para analisar XML e na transformação de strings de C em strings do Python. Hackear a configuração dos metadados é provavelmente a melhor coisas que você pode fazer para acelerar o Yum, mas há outras possibilidades. Elas não são tao poderosas, mas somadas podem ajudar o Yum a pisar no acelerador.

Espelho, espelho meu, existe alguém mais rápido do que eu?

Parece haver uma idéia de que mirrors locais de repositórios são mais rápidos, mas isso nem sempre se aplica, como qualquer um que já tenha tentado baixar uma ISO de GNU/Linux em mirrors diferentes pode atestar. Com a próxima dica você não vai ter que adivinhar qual é o mirror mais rápido. Que entrem em cena os plugins do Yum.

É simples: basta digitar o comando a seguir em um console: yum install yum-fastestmirror. Só isso. De agora em diante o Yum vai escolher o mirror mais rápido sempre que for instalar um software. Se ainda quiser excluir alguns domínios para melhorar mais as coisas, abra o arquivo /etc/yum/plugin conf.d/fastest mirror.conf como root em seu editor de texto favorito e adicione a linha exclude=.ee/ .dk para excluir sites da Estônia e da Dinamarca, por exemplo (dá para obter uma lista de abreviações dos domínios de países na Wikipédia). Por padrão, o fastestmirror do Yum refaz os cálculos a cada dez dias, mas se você instala muito software vai querer forçar a verificação com um rm /var/cache/yum/timedhosts.text para obter os mirrors mais rápidos do momento.

Chame a Força Delta!

A maioria dos leitores deve conhecer os backups diferenciais e incrementais. O princípio é conhecido e consolidado, e pode ser aplicado na área de gerenciamento de pacotes. Normalmente, quando há uma atualização de software disponível, o Yum baixa e instala a atualização para você, e ela pode ser muito parecida com a versão anterior. Ao atualizar programas grandes, como o OpenOffice.org, você com certeza vai gostar de poder reduzir o peso na banda (há uma grande diferença entre 8 Kb e 120 MB). Os Delta RPMs cuidam disso para você. Com eles, o Yum baixa apenas as diferenças (delta=diferença) entre os pacotes, e não o pacote inteiro.

Esse recurso extremamente útil pode ser ativado com a instalação do plugin presto (yum install yum-presto). O Fedora pretende incluir o recurso por padrão no Fedora 11, mas os Delta RPMs já devem estar disponíveis nos repositórios do Yum. Eu estou usando já faz algum tempo.

Verifique, ignore e exclua antes de atualizar

Caso não use as dicas anteriores (ou mesmo usando), uma maneira de acelerar o Yum é simular uma atualização com um yum check-update, identificar as atualizações grandes que deseja excluir e seguir com a opção exclude: yum update --exclude=openoffice --exclude=firefox. Você pode adicionar quantos pacotes quiser. Dica: se também quiser excluir pacotes com nomes semelhantes, adicione um asterisco: yum update --exclude=openoffice* --exclude=firefox*. Somado aos Delta RPMs, isso poupa espaço e, no caso do Firefox, garante que os addons e plugins não vão parar de funcionar. Para fechar, você pode conseguir um leve aumento na velocidade mandando o Yum ignorar dependências quebradas. Basta um simples yum install yum -skip-broken. Após essa instalação, o Yum passará a ignorar pacotes com problemas de dependências.

Instale um gerenciador de pacotes melhor (?)

Sem dúvida, o Yum melhorou substancialmente ao longo dos anos, mas não é o único gerenciador de pacotes que existe. Portar aplicativos entre distros é um hobby popular na Unixlândia, e os gerenciadores de pacotes não são uma exceção. Dois deles se destacam: o Apt4Rpm e o Smart. E há ports para o Fedora. Se a velocidade e a resolução de dependências estão acabando com sua festa no Fedora, experimente-os.

Apt4rpm

O suporte do Apt4rpm ao Yum foi incluído em maio de 2004 (versão 0.68.2), mas são raros os binários para versões recentes do Fedora. Se não encontrá-lo nos seus repositórios, baixe uma cópia no Sourceforge. O inferno de dependências ainda vive: ele é como uma hidra, e uma de suas cabeças está sempre pronta a atacar. Nessas horas em que o Yum falha, o Apt4rpm pode tirar você do inferno. Segundo uma piada geek, o Apt é o que o Yum quer ser quando crescer.

Smart

Os usuários do Debian gostam de caçoar dos devotos do Fedora, chamando-os de usuários de calças curtas do apt. Os desenvolvedores do gerenciador de pacotes Smart não deixam a peteca cair, e dizem que o algoritmo que move o Smart faz o apt-get parecer uma menininha. Pela minha experiência pessoal, posso atestar que em momentos nos quais o apt-get falhou o Smart deu conta do recado. Caso não o encontre nos repositórios do Fedora, você pode baixar binários para vários distros na homepage do Smart (além dos tradicionais pacotes tar compactados). Só que os binários estão um tanto defasados, então dê uma passada no RPMpbone e baixe um binário para o Fedora. Sua experiência com o Apt4rpm e com o Smart pode ser diferente da minha, e misturar gerenciadores de pacotes é tão perigoso quanto misturar bebidas, então cuidado para não tropeçar! Fique atento.

Conclusão

Dada a natureza do GNU/Linux, é certo que você terá vários tipos de problemas, mas para cada um deles algum desenvolvedor tem uma solução, e embora o Yum talvez nunca possa competir em velocidade com o apt-get, essas dicas podem ao menos levar o Yum ao pódio. Enquanto isso, vou manter o apt-get na manga em uma distro baseada no Debian.

Créditos a Gary Richmond - freesoftwaremagazine.com
Tradução por Roberto Bechtlufft <roberto at bechtranslations.com>

Características do MySQL


suporta diferentes plataformas: Win32, Linux, FreeBSD, Unix,

UPE - POLI - Engenharia Eletrônica

Programando para Web com PHP/MySQLetc...


Suporte às API´s das Seguintes linguagens: PHP, Perl,C,C++,Java, Pynthon, etc...

Suporte a múltiplos processadores


Um sofisticado sistema de senhas criptografadas flexível eSeguro.

Suporte à ODBC, você pode facilmente conectar o Access a um banco de dados do MySQL

Suporta até 16 indices por tabela

Código fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

O Cliente conecta no MySQL através de conexões TCP/IP.

Nenhum problema com o Y2K, visto que o MySQL usa o relógio do Unix que não apresentará problemas até 2069

O Banco de Dados MySQL


O MySQL é servidor de banco de dados multiusuário, multitarefa que
trabalha com uma das linguagens de manipulação de dados mais popularizadas
do mundo.


SQL é uma linguagem simples, em que você facilmente pode gravar, alterar e
recuperar informações num web site com segurança e rapidez. Ela foi
desenvolvida pelo Departamento de Pesquisas da IBM como forma de interface
para o Sistema de Banco de Dados Relacionais SYSTEM R, no início dos anos
70; em 1996, a American National Institute (ANSI) publicou um padrão SQL.
A SQL estabeleceu-se como linguagem padrão de Banco de Dados Relacional.
A linguagem SQL tem como grande virtude sua capacidade de gerenciar
índices sem a necessidade de controle individualizado de índice corrente,
algo muito comum nos Sistemas Gerenciadores de Arquivos, o Dbase por
exemplo. Nunca trabalhe com arquivos do Dbase (*.DBF)! Esses falsos bancos
de dados não oferecem integridade alguma para os dados; uma simples
recuperação de dados resulta num código complicado e extenso, visto que
consiste numa busca de registro a registro, além de não passar de uma
simples e frágil gravação sequencial de strings. Você foi avisado!


O MySQL foi originalmente desenvolvido pela empresa sueca TCX , que
necessitava de um servidor de banco de dados que operasse com grandes
escalas de dados rapidamente sem exigir caríssimas plataformas de
hardware. A TCX opera desde 1996 com 40 bancos de dados, contendo 10.000
tabelas, sendo 500 delas com mais de 10 milhões de linhas.

Instalação do PHP3


O servidor http, a ser utilizado neste curso, é o Apache, que está
disponível para download em “http://www.apache.org”. Para instalar o
servidor de web siga os passos abaixo:


6.1 - Servidor Apache 1.3.X


Execute o utilitário de instalação (apache1.3.1.exe) e siga os passos de
instalação normalmente.
Quando o programa de instalação solicitar o diretório de destino, clique o
botão browse e digite “C:\Apache” na janela PATH. Isto garantirá uma
performance considerável no acesso ao diretório htdocs (onde ficarão
armazenadas as páginas html e php reconhecidas pelo apache), visto que,
por default, o Apache será instalado em: “C:\Arquivos de Programas\Apache
Group\Apache\”.
UPE - POLI - Engenharia Eletrônica
Programando para Web com PHP/MySQL
O próximo passo é a configuração do servidor de páginas www. Começando
pelo arquivo “httpd.conf” que fica localizado em “C:\Apache\conf”, edite
este arquivo com qualquer editor de textos de escrita rápida (Edit do DOS
ou Bloco de Notas).
Adicione as seguintes linhas no final do arquivo “httpd.conf”.
ServerName localhost
ScriptAlias /php3/ "c:/php3/"
AddType application/x-httpd-php3 .php3 .php
Action application/x-httpd-php3 "/php3/php.exe"
A primeira linha informa ao apache o nome do servidor. No caso localhost
porque cada estação no decorrer do curso estará funcionando como um
servidor de web independente. A segunda linha informa ao apache que
execute scripts php. A terceira informa as extensões dos scripts php que
serão executados pelo servidor de web, ou seja, qualquer arquivo com
extensão .php3 ou php ativará o client side script. A quarta linha informa
o caminho “path” do PHP.


6.2 – Instalação do PHP3


3.1 - Crie uma pasta: “C:\php3”
3.2 - Descompacte o arquivo “php-3.0.16-win32.zip” neste diretório.
3.3 – Copie o arquivo “php3.ini.dist.txt” para o diretório “C:\Windows” ,
renomeando-o para php3.ini.
3.4 – Procure pela “linha extension_dir” no arquivo “php3.ini” e inclua o
seguinte parâmetro: “c:\php3”
Veja o trecho do arquivo abaixo como deve ficar:
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
include_path=; UNIX: "/path1:/path2" Windows: "\path1;\path2"
UPE - POLI - Engenharia Eletrônica
Programando para Web com PHP/MySQL
doc_root=; the root of the php pages, used only if nonempty
user_dir=; the directory under which php opens the script using
/~username, used only if nonempty
;upload_tmp_dir=; temporary directory for HTTP uploaded files (will use
system default if not specified)
upload_max_filesize=2097152 ; 2 Meg default limit on file uploads
extension_dir=C:\PHP3 ./
3.5 – Procure pelo trecho “Dynamic Extensions” no arquivo de configuração
do PHP3 e descomente as linhas. Obs: descomentar é só apagar o ponto e
vírgula que antece cada parâmetro de configuração.
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; if you wish to have an extension loaded automaticly, use the
; following syntax: extension=modulename.extension
; for example, on windows,
; extension=msql.dll
; or under UNIX,
; extension=msql.so
; Note that it should be the name of the module only, no directory
information
; needs to go here. Specify the location of the extension with the
extension_dir directive above.
;Windows Extensions
extension=php3_mysql.dll
extension=php3_calendar.dll
extension=php3_dbase.dll
extension=php3_gd.dll
extension=php3_dbm.dll
Este é o parâmetro
que deve ser
adicionado!!!
Retirar o ponto e vírgula
dessas do início de cada
linha
UPE - POLI - Engenharia Eletrônica
Programando para Web com PHP/MySQL
extension=php3_mssql.dll
extension=php3_zlib.dll
extension=php3_filepro.dll
extension=php3_imap4r1.dll
extension=php3_ldap.dll
extension=php3_crypt.dll
extension=php3_msql2.dll
extension=php3_odbc.dll
Obs: Para testar se o Apache está corretamente instalado, execute o
Apache Server no menu iniciar, carregue o browser e digite o endereço:
http://localhost. Se o endereço carregar é porque o seu servidor de web
está instalado corretamente; caso contrário, repita os passos acima.riter/b

ASP x PHP


Enquanto o ASP, só é executado em plataformas micro$oft, o PHP suporta a
maioria das plataformas que proveêm acesso e serviços da internet, é
distribuído sobre GPL (Licença Pública Geral), ou seja, não se precisa
pagar para usar o PHP.

Coluna Dreamweaver - Spry Data: comandos setrow e setrownumber

Introdução

Salve Pessoal! Nesse tutorial vamos aprender a utilizar os comando setrow e setrownumber que basicamente servem para simular um iframe. Para isso vamos aprender a criar um XML Data Set ou como eu chamo um conjunto de dados. O XML Data Set e bastante semelhante com o Conjunto de Registro (recordeset) de um banco de dados, só que em vez de um banco de dados você terá um arquivo XML com todos os dados armazenados nele. Nesse tutorial vamos criar como já havia dito um XML Data Set e duas colunas, em uma coluna será mostrado os nomes dos softwares da adobe e na outra coluna as descrições dos softwares, e através do comando setrow aplicado na coluna com o nomes, conforme o usuário for clicando nos nomes a descrição será atualizando sem a necessidade de recarregar a página. Clique aqui para ver um exemplo.

Pré-requisito

Dreamweaver CS3, para baixar a versão trial clique aqui
Um arquivo XML, no exemplo vamos utilizar esse com produtos da adobe

Conceitos

O Spry é o framework da Adobe para desenvolvimento usando Ajax e está licenseado sob BSD License. O Spry foi projetado com a intenção de facilitar o desenvolvimento, ele incluir bibliotecas de código, linguagens de script e outros recursos para ajudar a desenvolver diferentes componentes de um projeto. Os comandos strow e setronumber requerem um único nome de um Data Set como seu valor, e é aplicado após definida uma Region ou Detail Region, servem para mudar ou trocar as informações de uma coluna atraves de um clique sem a necessidade de ter que recarregar a página.

Conteúdo

Crie e salve uma nova página,
pode ser em qualquer formato, não se esqueça de fazer o download do arquivos XML. Com a página aberta e salva clique na guia Spry da barra inserir do dreamweaver, e clique no botão Spry XML Data Set, uma janela se abrirá.

Configuração do Spry XML Data Set:
Data Set Name: Nome do conjunto de dados (Data Set), vamos dar o nome de dsProducts.
XML Source: Local onde está salvo o arquivo XML, clique no botão Browse para localizar o arquivo.
Botão Get schema: Botão para extrair a estrutura do arquivo XML e exibir na caixa Row element, clique nele.
Caixa Row element: Caixa para exibir a estrutura do arquivo XML, onde poderá ser selecionada as tags que serão utilizadas, em nosso exemplo vamos selecionar a tag product que esta dentro da tag principal também chamada products
XPath: exibir o caminho da tag selecionada, clique no botão Preview para visualizar os dados que estão dentro dentro da tag selecionada, em nosso exemplo deve está products/product
Data Set columns: Exibir as colunas que estão dentro da tag selecionada e qual o tipo de dados das colunas, para alterar o tipo de dados utilize a caixa Data type
Data type: Classifica os tipo de dados podendo ser, uma string, um numero, uma data o um link de imagen.
Pronto Clique no botão OK para a janela se fecha

Vamos criar duas colunas uma do lado direito onde vai aparecer os nome dos softwares da adobe e outra do lado esquerdo que vai aparecer a descrição do software que foi selecionada. No modo de visualização do código vamos criar a coluna utilizando div que vai ficar na direita (float:left) e com a largura de 200 pixel (width:200px).

<div style=”width:200px; float:left”></div>

Depois vamos criar a coluna da esquerda onde vai aparecer a descrição do software selecionado

<div style=”float:right”></div>

Coloque a página no modo de visualização do projeto, No painel Application clique na guia Bindings e veja se o Data Set dsProducts esta aberto exibindo as colunas, caso não esteja clique no sinal de mais que esta a direita do Data Set dsProducts para que seja mostrada as colunas. Clique na coluna name que esta armazenando os nomes dos software da adobe e arraste para dentro da coluna da direita

No painel Application dentro do Data Set dsProducts clique na coluna desc que esta armazenando as descrições dos softwares da adobe e arraste para a coluna da esquerda

Selecione a coluna direita e na guia Spry, na barra inserir do dreamweaver clique no botão Spry Region, para inserir uma região do Spry, e a janela de configuração do Spry Region vai se abrir.

Container: Local onde será inserido a região, escolha a opção Div ou seja a região ficará dentro da div
Type: Tipo de região, escolha a opção Region
Spry Data Set: Data Set de onde será extraído os dados, selecione o Data Set dsProducts
Ainda na coluna da direita selecione-a e na guia Spry, na barra inserir do dreamweaver clique no botão Spry Repeat, para inserir uma região de repetição do Spry, para que seja mostrado todo os nomes que estão no arquivo XML, e a janela de configuração do Spry Repeat vai se abrir.

Selecione a coluna da esquerda onde será visualizado a descrição do arquivos, e clique no botão Spry Region, para inserir uma Detail region do Spry, e a janela de configuração do Spry Region vai se abrir.

Container: Local onde será inserido a região, escolha a opção Div ou seja a região ficará dentro da div
Type: Tipo de região, escolha a opção Detail region
Spry Data Set: Data Set de onde será extraído os dados, selecione o Data Set dsProducts
Observe que os contéudos das colunas ficaram com relevo na cor verde claro. Agora mude a visualização para o modo de visualização do código, e veja se o seu código está igual ao meu:

<div style=”width:200px; float:left”>
<div spry:region=”dsProducts”>
<div spry:repeatchildren=”dsProducts”>{name}</div>
</div>
</div>
<div>
<div spry:detailregion=”dsProducts”>{desc}</div>
</div>
Vamos adiciona a função setrow na coluna com os nomes dos softwares para que quando a pessoa clique no nome apareça a descrição na coluna da esquerda que ja está configurada como uma região filho, o comando setrow pode ser adiciona dentro de diversos elementos, eu adicionei ela dentro da tag Span, então antes do nome {name} vamos criar a tag span e colocar o comando spry:setrow=”dsProducts” confome mostra as imagens abaixo:

O codigo deve ficar assim:

<div style=”width:200px; float:left”>
<div spry:region=”dsProducts”>
<div spry:repeatchildren=”dsProducts”><span spry:setrow=”dsProducts” >{name}</span></div>
</div>
</div>
<div>
<div spry:detailregion=”dsProducts”>{desc}</div>
</div>
O Arquivo está semi-pronto, faça o upload dele para o seu servidor, incluindo os arquivos pendentes do Spry e veja se ele está funcionando normal.
Observe que quando você clicar no nome do software ele não mostra o curso do mouse como se fosse um link. Para resolver esse problema vamos criar stilos CSS para personalizar a coluna, trocando o cursor do mouse e vamos utilizar mais duas funções do Spry uma é o select, que vai aplicar um estilo CSS quando o nome estiver selecionado e o outro é o comando hover, que vai aplicar um estilo quando o mouse estiver em cima. Os estilos CSS são esses abaixo:

<style type=”text/css”>
.product {
cursor: pointer;
}
.hover {
background-color: #FFFFCC;
}
.selected {
background-color: #CCCCCC;
}
</style>
Agora dentro da tag Span adicione a classe product, e as funções spry:select com o stilo selected e a função spry:hover com o estilo hover

<div style=”width:200px; float:left”>
<div spry:region=”dsProducts”>
<div spry:repeatchildren=”dsProducts”><span class=”product” spry:select=”selected” spry:hover=”hover” spry:setrow=”dsProducts” >{name}</span><br /></div>
</div>
</div>
<div>
<div spry:detailregion=”dsProducts”>{desc}</div>
</div>

Coluna Dreamweaver - Formulários com o Framework Spry

Introdução

Salve Pessoal! nesse tutorial vamos aprender a construir formulários utilizando o Framewrks Spry, garanto que é muito bom esse tutorial, fiz um formulário utilizando o spry clique aqui para ver

Pré-requisito

Dreamweaver CS3, para baixar a versão trial clique aqui

Conteúdo

Os botões para construir formulários utilizando o spry fica na guia Spry da barra inserir do dreamweaver

As opções de configuraão dos campos ficam na janela de Propriedades
Text Field

Type: Tipos de validação:
None: Nenhum tipo de validação
Intereger: Intereger
Email Address: Endereço de e-mail
Date: Datas, suporta diversos formatos de datas, para escolher selecione os tipos disponíveis na caixa Format
Time: Hora, suporta diversos formatos de datas, para escolher selecione os tipos disponíveis na caixa Format
Credit Card: Cartão de credito, suporta todos os tipos de cartão de credito, ou se preferir pode personalizar para valida somente cartão da MasterCard, Visa, American Express, Discover ou Diner´s Club,
Zip Code: Código Postal, suporta o padrão US-5, US-9, UK, Canadá, ou pode ser personalizar qualquer tipo utilizando o Pattern
Phone Number: Numero de Telefone, suporta o padrão US/Canadá ou pode ser personalizado para aceitar qualquer tipo utilizando o Pattern
Social Security Number: Número de segurança social
Currency: Moeda corrente
Real Number: Número real
IP Address: Numero de IP, suporta IPv4, IPv6 ou os dois tipos de IP
URL: URL ou Link
Custon: Personalizada
Pattern
Adiciona uma mascara que permite personalizar a validação do campo, estabelece um padrão de como o campo deve ser preenchido, disponíveis somente para os campo do tipo código postal, número telefônico e custom. Na caixa Pattern você escreve um modelo de como deve ser preenchido o campo, para campos que utilizam números utilize o numeral zero para escrever o modelo. Como por exemplo quero personalizar a caixa para exibir um número telefônico no padrão brasileiro com DDD, para isso na caixa Pattern eu escrevo 000 0000-0000, ele só vai aceita números de telefone que sigam exatamente esse modelo, ou seja, ele só vai aceitar ser o usuário digitar o número assim 011 5858-6354 ou eu posso escreve no Patern (000) 0000-0000 e marca a opção Enforce pattern, quando o usuário for digitar no formulário já pronto ele só vai precisar digitar os número em seguencia sem a necessidade de adicionar espaço, traço ou parentesês, já que conforme ele for digitando o Spry vai acrescentar os parênteses nos três primeiros números e depois dar espaço e ainda com o usuário digitando ele acrescenta o traço depois do quarto número digitado, deixando o campo exatamente como você escreveu na caixa Pattern.
Hint
Mostrar uma sugestão de como o campo deve ser preenchido, disponível em todos os tipos de campo. Ele mostrar um valor inicial e quando o usuário clicar no campo para preencher ele é apagado automaticamente.
Preview State
Visualiza como o campo vai ser comporta e qual a mensagem o usuário vai ver, podendo ser:
Initial: Inicial, como o campo será mostrado no inicio, antes do usuário preenche-lo
Requerid: Requerido, mensagem que será mostrada quando o campo for requerido e não for preenchido.
Invalid Format; Formato invalido, mensagem que será mostrada quando o campo for preenchido de forma errada.
Valid: Formato valido, mensagem que será mostrada quando o campo for preenchido de forma correta
Validade on:
Blur: O campo será validado instantaneamente ainda quando o usuário estiver preenchendo.
Change: O campo será validado somente quando o usuário tentar enviar o formulário
Opções:
Enforce Pattern: Quando o usuário preencher o campo ele vai instantaneamente convertendo os caracteres iguais ao escrito na caixa Pattern, podendo acrescentar números ou caractertes especiais conforme digitado na caixa Pattern, para que fiquei igual ao especificado no Pattern
Requeride: Requerido, campos de preenchimento obrigatório, o formulário não vai ser enviado sem o preenchimento do campo
Quantidade de caracteres
Min chars: Quantidade mínima de caracteres devem ser digitado
Max chars: Quantidade máxima de caracteres devem ser digitado
Textarea

Opções adicionais para o campo textarea
Counter
Opção para contar os caracteres que são digitados
None: Não conta os caracteres digitado
Chars Couter: Mostrar e conta os caracteres digitado
Chars remaining: Mostrar a contagem regressiva dos caracteres que restam para preencher
Block extra caracteres: bloqueia os caracteres que forem digitados além do limite informado
Checkbox
Campo Checkbox
Opções adicionais para o campo checkbox:
Requerid: Selecionamento obrigatório
Enforce range: Ativa a opção para que seja selecionada uma quantidade mínima de checkbox ou uma quantidade máxima de checkbox a ser selecionado

Coluna Dreamweaver - Framework Spry: Effects

Introdução

Salve Pessoal! Recebi alguns e-mail querendo algo mais complexo, que possa integrar as varias funções do Spry. Mais para que possamos fazer isso devemos conhecer antes todas as funções do Spry. Vale ressalta também a dificuldade em encontrar documentação sobre a utilização do Spry pelo Dreamweaver. Então nesse tutorial vamos conhecer o Effects do Spry, fiz alguns exemplos que podem ser visto clicando aqui.

Pré-requisito

Dreamweaver CS3, para baixar a versão trial clique aqui

Conceitos

O Effects é um conjunto de efeitos visuais do Frameworks Spry, que pode ser adicionado em diversos elementos do HTML. No Dreamweaver os efeitos podem ser adicionados no modo Design, sem a necessidade de trabalhar diretamente com código, falicitando ainda mais a adição desses efeitos. O Effects fica localizado no Painel de Behaviors (Windows > Behaviors) como um comportamento normal, podendo ser ativado com diversos eventos.

Conteúdo

Appear/ Fade

Esse efeito faz o elemento selecionado ir aparecendo ou surgindo na tela. Pode usar este efeito com todos os objetos do HTML exceto o applet, body, iframe, tr, tbody, ou th.Para aplicá-lo você deve selecionar aonde será ativado, podendo ser o próprio elemento, depois ir ao Painel Behaviors do Dreamweaver (Windows > Behaviors), clicar no botão adicionar comportamento (+), selecionar a opção Effects e depois o Appear/Fade. A janela de configuração do efeito fade ira se abrir para podemos configurá-lo.

Target Element: Selecionar o ID do objeto ou elemento onde será aplicado o efeito. Se você já estiver selecionado o objeto, pode escolher <Current Selection>.
Effect duration: Tempo de duração do efeito em milissegundos.
Effect: Tipo de efeito podendo ser o Fade onde a camada vai sumindo aos poucos, ou Appear onde a camada vai aparecendo.
From: Tamanho da camada em porcentagem quando o efeito iniciar.
To: Tamanho da camada porcentagem quando o efeito terminar

Blind

Esse efeito faz a camada selecionada subir ou descer lentamente semelhante a uma cortina que sendo aberta ou fechada. Pode ser usado somente com estes objetos do HTML: address, dd, div, dl, dt, form, h1, h2, h3, h4, h5, h6, p, ol, ul, li, applet, center, dir, menu, ou pré. Para aplicá-lo você deve selecionar aonde será ativado, podendo ser o próprio elemento, depois ir ao Painel Behaviors do Dreamweaver (Windows > Behaviors), clicar no botão adicionar comportamento (+), selecionar a opção Effects e depois o Blind. A janela de configuração do efeito Blind vai se abrir para podemos configurá-lo.

Target Element: Selecionar o ID do objeto ou elemento onde será aplicado o efeito.
Effect duration: Tempo de duração do efeito em milisegundos.
Effect: Tipo de efeito podendo ser o Blind Up aonde a camada vai subindo, ou Blind Down aonde a camada vai descendo na tela.
From: Tamanho da camada porcentagem ou pixel quando o efeito iniciar.
To: Tamanho da camada porcentagem ou pixel quando o efeito terminar.

Grow/ Shrink

Esse efeito faz o elemento selecionado crescer ou diminuir. Pode ser usado com estes objetos do HTML: address, dd, div, dl, dt, form, p, ol, ul, applet, center, dir, menu, o pre. Para aplicá-lo você deve selecionar aonde será ativado, podendo ser o próprio elemento, depois ir ao Painel Behaviors do Dreamweaver (Windows > Behaviors), clicar no botão adicionar comportamento (+), selecionar a opção Effects e depois o Grow/ Shrink. A janela de configuração do efeito Grow/ Shrink vai se abrir para podemos configurá-lo.

Target Element: Selecionar o ID do objeto ou elemento onde será aplicado o efeito. Se você já estiver selecionado o objeto, pode escolher <Current Selection>.
Effect duration: Tempo de duração do efeito em milisegundos.
Effect: Tipo de efeito podendo ser Grow aonde a camada vai crescer, ou Shrink aonde a camada vai diminuir na tela.
From: Tamanho da camada porcentagem ou pixel quando o efeito iniciar.
To: Tamanho da camada porcentagem ou pixel quando o efeito terminar.
To: Para que local a camada deve ir quando o efeito for selecionado podendo ser ao centro ou a esquerda superior.

Shake

Esse efeito faz o elemento selecionado dar uma tremida. Você pode usar este efeito com estes objetos do HTML: address, blockquote, dd, div, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, iframe, img, object, p, ol, ul, li, applet, dir, hr, menu, pre, ou table. Para aplicá-lo você deve selecionar aonde será ativado, podendo ser o próprio elemento, depois ir ao Painel Behaviors do Dreamweaver (Windows > Behaviors), clicar no botão adicionar comportamento (+), selecionar a opção Effects e depois o Shake. A janela de configuração do efeito Shake vai se abrir para podemos configurá-lo.

Target Element: Selecionar o ID do objeto ou elemento onde será aplicado o efeito. Se você já estiver selecionado o objeto, pode escolher <Current Selection>.

Squish

Esse efeito faz o elemento selecionado desaparecer. Você pode usar este efeito com estes objetos do HTML: address, dd, div, dl, dt, form, img, p, ol, ul, applet, center, dir, menu, or pre. Para aplicá-lo você deve selecionar aonde será ativado, podendo ser o próprio elemento, depois ir ao Painel Behaviors do Dreamweaver (Windows > Behaviors), clicar no botão adicionar comportamento (+), selecionar a opção Effects e depois o Squish. A janela de configuração do efeito Squish vai se abrir para podemos configurá-lo.

Target Element: Selecionar o ID do objeto ou elemento onde será aplicado o efeito. Se você já estiver selecionado o objeto, pode escolher <Current Selection>.

Slide

Esse efeito faz uma transição podendo ser para cima ou para baixo. Você pode usar este efeito com estes objetos do HTML: blockquote, dd, div, form, or cente. Esse efeito requer uma única tag ID e os efeitos dentro do elemento com tag ID. Para aplicá-lo você deve selecionar aonde será ativado, podendo ser o próprio elemento, depois ir ao Painel Behaviors do Dreamweaver (Windows > Behaviors), clicar no botão adicionar comportamento (+), selecionar a opção Effects e depois o Shake. A janela de configuração do efeito Shake vai se abrir para podemos configurá-lo.

Target Element: Selecionar o ID do objeto ou elemento onde será aplicado o efeito. Se você já estiver selecionado o objeto, pode escolher <Current Selection>.
Effect duration: Tempo de duração do efeito em milisegundos
Effect: Tipo de efeito podendo ser Slide UP aonde a camada vai subir, ou Slide Down aonde a camada vai descendona tela.
From: Tamanho da camada porcentagem ou pixel quando o efeito iniciar
To: Tamanho da camada porcentagem ou pixel quando o efeito terminar

Highlight

Esse efeito faz o elemento selecionado ir trocando as cores. Pode ser usado com todos os objetos do HTML exceto o applet, body, frame, frameset, ou noframes. Para aplicá-lo você deve selecionar aonde será ativado, podendo ser o próprio elemento, depois ir ao Painel Behaviors do Dreamweaver (Windows > Behaviors), clicar no botão adicionar comportamento (+), selecionar a opção Effects e depois o Highlight. A janela de configuração do efeito Highlight ira se abrir para podemos configurá-lo.

Target Element: Selecionar o ID do objeto ou elemento onde será aplicado o efeito. Se você já estiver selecionado o objeto, pode escolher <Current Selection>.
Effect duration: Tempo de duração do efeito em milisegundos.
Start Color: Cor com qual o efeito vai iniciar.
End Color: Cor com qual o efeito vai terminar.
Color after Effect: Esta cor dura somente durante a duração do efeito

Considerações Finais

Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui
Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO
Visite meu blog www.marceloramos.blog.br. Qualquer dúvida envie um e-mail para marcelo@marceloramos.blog.br

Coluna Dreamweaver - Envio de formulário com ajax - Parte Final

Introdução

Salve Pessoal! Desculpe a demora, mais esse semestre estou muito atarefado.

Conceitos

Nesse tutorial você vai ver funções básica para manipulação de ficheiros utilizando o php, como por exemplo, abrir, fechar, ecrever e manipula as informações contida nele, e ainda criar cookies. Nessa parte do tutorial você vai construir dois página, uma responsável por manipular e escrever no ficheiro e outra que vai ser o grafico com os resultados da enquete.

Conteúdo

Crie uma nova página em PHP e salve com o nome de contar_votos.php, crie também um documento de texto (txt) e salve com o nome de resultat.txt. Não se esqueça de dar permissão de escrita no arquivo de texto(CHMOD 777).
Na primeira linha de comando antes de qualquer saida de código crie um cookie. A criação do cookie e feita pela função setcookie que necessita de três parâmestros nessa ordem; o primiero é o valor do cookie, o segundo o valor do cookie e o terceiro o prazo de duração do cookie. Nesse exemplo o nome do cookie vai ser ‘votacaoenquete‘ e o valor do cookie será ‘votado‘, pois quando o usuário acessar essa página o cookie será gerado para broquear o usuário e não permite que ele vote duas vezes, o tempo de duração do cookie fica a sua escolha.

<?php
setcookie(’votacaoenquete’, ‘votado’, time()+3600*24*30);
?>

Agora iremos colocar a mão na massa, crie uma variável para armazenar o local onde estar salvo o arquivo txt.

$fichier=”resultat.txt”;

Para abrir o arquivo txt utilize a função fopen. Crie uma variável ($pointeur) para armazenar o ponteiro de escrita e passar os dois parâmetros necessários, o primeiro é a variável que indica o local do arquivo ($fichier) a ser aberto e o segundo é o modo de leitura (r+), neste caso será aberto com permissão para escrita */

$pointeur=fopen($fichier,”r+”);

Crie outra variável ($enquete) para ler e armazenar o conteúdo do ficheiro em uma string. A leitura do arquivo txt é feita pela função fread que ler o arquivo e retorna uma string com o conteúdo, e necessita de dois parâmetros, o primeiro parâmetro é a string que armazena as configurações para abertura do arquivo ($pointeur). O segundo parâmetro determina até onde o arquivo será lido nesse caso está associado a função filesize para retornar o tamanho do arquivo ($fichier) e assim realizar a leitura de todo o arquivo

$enquete=fread($pointeur,filesize($fichier));

Após fazer a leitura do arquivo e armazenar seu conteúdo na string ($enquete), divida essa string em strings individuais, e em cada string individual será armazenado uma opção da enquete. A divisão da string e feita pela função explode, e utiliza como marcador de separação a vírgula(,). Assim os valores que estão antes de cada vírgula serão divididos e transformados em strings, podendo ser escrito e manipulado individualmente.

$enquete=explode(”,”,$enquete);

Crie uma variável ($reponse) para armazenar a opção que o usuário escolheu

$reponse = $_POST['reponse'];

Identifique a opção escolhida e some mais um no valor da variável.

$enquete[$reponse]++;

Para que o voto seja escrito na posição correta deve ser indicado a seqüência de escrita e armazenagem das strings. Como a string está dividida ele dever ser juntada na ordem correta, por exemplo, na primeira string fica armazenado os votos da primeira opção, cujo identificador é zero (value=”0″), na segunda string depois da virgula fica armazenado os votos da segunda opção, cujo o identificador é um (value=”1″) e assim por diante…

$enquete=$enquete[0].”,”.$enquete[1].”,”.$enquete[2].”,”.$enquete[3];

Reinicialize a posição do ponteiro de arquivos para o início

rewind($pointeur);

Utilizando a função fputs faça a gravação da string no arquivo

fputs($pointeur,$enquete);

Utilizando a função fclose feche e encerre a manipulação do arquivo

fclose($pointeur);

Pronto agora inclua a página com os resultados, que será construida na proxima etapa.

<?php include(’ resultados.php’); ?>

Como foi criado o cookie agora abra a página index.php que foi criada no tutorial anterior. Quando o usuário votar na enquete será gerado o cookie com o valor ‘votado’, para não permite que o usuário vote novamente iremos aplicar um teste de verdadeiro ou falso, se for verdadeiro que o cookie existe então mostre uma frase (echo “Você já participou !”) e escondar o botão submit, agora se esse teste for falso e o usuário ainda não votou então mostre o botão submit para que possa ser enviado o voto. Localize o botão submit e substitua por esse código

<?php
if ($_COOKIE['votacaoenquete'] == votado ){
echo “Você já participou !”;
}
else {
?>
<input name=”teste” value=”Enviar” onClick=”Spry.Utils.submitForm(’form1′, updateResponseDiv, {method:’post’, url:’contar_votos.php’});” type=”button”>
</p>
<?php } ?>

Criando a página para mostrar os resultados

Crie uma nova página para armazenar os resultados, essa página dever ter o mesmo nome que foi dado na hora que você incluiu na página conta_votos.php no meu exemplo o nome é resultados.php.
Dentro de um bloco de código PHP faça a inclusão da página que contém as configurações da enquete.

<?php include(’config.php’); ?>

Faça novamente a leitura do arquivo txt, como já expliquei no inicio e acho que você entendeu vou direto aos codigos

$fichier=”resultat.txt”;
$pointeur=fopen($fichier,”r”);
$enquete=fread($pointeur,filesize($fichier));
fclose($pointeur);
$enquete=explode(”,”,$enquete);

Como o arquivo já foi lido, e a string divida em strings individuais contendo os votos de cada opção da enquete. Crie uma variável ($total) para soma todos os votos, lembrando que as estrings estão dividias e nosso exemplo tem quatros opções.

$total=$enquete[0]+$enquete[1]+$enquete[2]+$enquete[3];

Crie outra variável ($longueur) para definir a largura máxima do gráfico.

$longueur=200;

Para criar os gráficos em colunas devemos trabalhar com uma coluna para cada opção da enquete, essa coluna será calculada através do total de votos da opção multiplicado pelo total geral de todas as opções, como a largura do gráfico será delimitada, divida a largura do gráfico pelo total de votos. Crie uma variável ($longueur) para cada opção da enquete essa variavel será a largura do grafico.

$longueur0=$enquete[0]*$longueur/$total;
$longueur1=$enquete[1]*$longueur/$total;
$longueur2=$enquete[2]*$longueur/$total;
$longueur3=$enquete[3]*$longueur/$total;

Como o numero com certeza ficou muito quebrado devemos arredondar utilizando a função round.

$longueur0=round($longueur0);
$longueur1=round($longueur1);
$longueur2=round($longueur2);
$longueur3=round($longueur3);

Crie uma nova variável ($pourcent), uma para cada opção da enquete, para pode calcular a porcentagem de cada opção e depois arredondá-las igual a anterior.

$pourcent0=100*$enquete[0]/$total; //Calcular porcentagem
$pourcent0=round($pourcent0,0); // Arredonda o a porcentagem

$pourcent1=100*$enquete[1]/$total;
$pourcent1=round($pourcent1,0);

$pourcent2=100*$enquete[2]/$total;
$pourcent2=round($pourcent2,0);

$pourcent3=100*$enquete[3]/$total;
$pourcent3=round($pourcent3,0);

Estamos na reta final. Crie uma nova tabela com 3 coluna e com 4 linhas uma linha para cada opção.
Na primeira coluna coloque a constante que armazena o nome da opção, lembre-se que ela esta no arquivo de configuração (config.php). Na segunda coluna coloque uma cor de sua preferência como fundo, e a largura dessa coluna coloque a variável que armazena a largura do gráfico ($longueur) . E na terceira coluna coloque o resultado em porcentagem que esta armazenado na variável $pourcent.

<table border=”0″>
<tr>
<td width=”80″><b><?php echo OPCAO1; ?></b></td>
<td width=”<?php echo $pourcent0;?>” bgcolor=”red”> </td>
<td> <?php echo “$pourcent0%”;?>
(<i><?php echo $enquete[0];?></i>)</td>
</tr></table>
<table border=”0″>
<tr>
<td width=”80″><b><?php echo OPCAO2; ?></b></td>
<td width=”<?php echo $pourcent1;?>” bgcolor=”green”> </td>
<td> <?php echo “$pourcent1%”;?>
(<i><?php echo $enquete[1];?></i>)</td>
</tr></table>
<table border=”0″>
<tr>
<td width=”80″><b><?php echo OPCAO3; ?></b></td>
<td width=”<?php echo $pourcent2;?>” bgcolor=”black”> </td>
<td> <?php echo “$pourcent2%”;?>
(<i><?php echo $enquete[2];?></i>)</td>
</tr></table>
<table border=”0″>
<tr>
<td width=”80″><b><?php echo OPCAO4; ?></b></td>
<td width=”<?php echo $pourcent3;?>” bgcolor=”#990000″> </td>
<td> <?php echo “$pourcent3%”;?>
(<i><?php echo $enquete[3];?></i>)</td>
</tr>
</table>
Ver arquivos utilizados para constuir esse sistemas:
index.php | config.php | resultado.php | contar_votos.php
Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui
Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO
Visite meu blog www.marceloramos.blog.br e qualquer dúvida envie um e-mail para marcelo@marceoramos.blog.br

Coluna Dreamweaver - Envio de formulário com ajax

Introdução

Salve Pessoal! Tinha prometido que o próximo artigo seria uma galeria de fotos utilizando varios funções do Spry, mais vai ter quer ficar para a próxima, pois achei esse artigo mais importante pois permiter enviar formulário com ajax e é super facíl de utiliza. Veja os exemplo e como funciona clicando aqui

Pré-requisito

Dreamweaver CS3, para baixar a versão trial clique aqui
Arquivo js do Spry.Utils.submitForm
Arquivo js do SpryData (opcional)

Conceitos

Com Framework Spry é possível enviar um formulário sem a necessidade de atualizar a página atual. Isso é possível utilizando a função Spry.Utils.submitForm que necessita apenas da inclusão do arquivo JS e o adicionamento de um comportamento para a chamada da função. O comportamento responsável pela chamada pode ser adicionado no próprio formulário ou utilizado outros elementos HTML.
Com a função Spry.Utils.submitForm é possível realizar cadastro em banco de dados, fazer a requisição dos dados e ainda visualizar o resultado do formulário na própria página sem a necessidade de ser atualizada.
O Spry.Utils.submitForm têm três parâmetros de configuração: identificação do formulário, função a ser executada depois do envio e a terceira para opções especiais. Suporta os métodos POST e GET. Formulários que têm enctype=”multipart/form-data” são submetidos usando default do comportamento do browser. Suporta PHP, ASP e Coldfusion

Conteúdo

Para enviar o formulário faça a inclusão do arquivo SpryUtils.js dentro da TAG Head.

<script src=”/SpryUtils.js”type=”text/javascript”></script>

E depois adicione a chamada da função e pronto.

Spry.Utils.submitForm(’identificacao_do_formulario’, funcao_executada_final, {method:’get’, url:’pagina.php’});

Veja como ficaria se a chamada fosse adicionada dentro do formulário no evento onClick

<input name=”teste” value=”Enviar” onclick=”Spry.Utils.submitForm(’form’, updateResponseDiv2, {method:’post’, url:’pagina.php’});” type=”button”>

Veja como ficaria se a chamada fosse adicionada em um link de texto

<a onclick=”Spry.Utils.submitForm(’form1′, updateResponseDiv, {method:’post’, url:’enviar.php’}); “>Enviar Formulário </a>

Carregar os dados dos formulários na propria página
Para que os dados do formulário sejam carregados dentro da própria pagina, igual ao exemplo vamos criar uma função que será executa após o envio, essa função vai atualizar o conteúdo da DIV (response_form1) com o conteúdo da página (pagina.php) que recebeu os dados do formulário.
A função updateResponseDiv utiliza o Spry.Utils.setInnerHTMLé responsável pelo retorno do dados na própria página sem a necessidade de atualização. Para utilizá-la e necessário incluir o arquivo SpryData.js dentro da tag HEAD

<script src=”.. /SpryData.js” type=”text/javascript”></script>

E depois chamar a função Spry.Utils.setInnerHTML passando dois parametros: a DIV que será atualizada e a função utilizada

<script type=”text/javascript”> function updateResponseDiv(req) { Spry.Utils.setInnerHTML(’response_form1′, req.xhRequest.responseText); } </script>

Agora vamos chamar a função Spry.Utils.submitForm:

<form name=”form1″ method=”post” action=”pagina.php” onsubmit=”return Spry.Utils.submitForm(this, updateResponseDiv);”>

A chamada da função foi adicionada no onSubmit que realizara o envio do próprio formulário e retornará na própria página os dados que foram submetidos. Para isso foi declarado dois parâmetros, a identificação do formulário que é o próprio (this) e a função updateResponseDiv
Caso você queira somente enviar determinados campos do formulário a chamada deve ser:

Spry.Utils.submitForm(’identificacao_do_formulario’ funcao_executada_final, {elements: ['id_do_campo1', 'id_do_campo2']});

Para enviar o formulário com variáveis terceiro parâmetro deve ser adicionado a string ‘additionalData’ informando as variaveis ‘variavel=valor’ assim:

Spry.Utils.submitForm(’identificacao_do_formulario’ , funcao_executada_final, {url:’pagina.php’, additionalData:’ajaxSubmit=true&from=samples’

Considerações Finais

Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui
Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO
Visite meu blog www.marceloramos.blog.br e qualquer dúvida envie um e-mail para marcelo@marceoramos.blog.br

Coluna Dreamweaver - Painéis Sanfonados com Ajax

Introdução

Salve Pessoal! Vou lançar mais uma serie de tutoriais sobre o Spry, mais dessa vez um pouco mais difícil ja que estarei fazendo combinações entre as muitas funções do Spry, e ainda como utilizar o Spry de forma não obstrutiva, nesse utilizarei os Spry Accordion é o Spry.Utils.updateContent.

Conceitos

Nesse tutorial será mostrado com criar um painel sanfonado com o Spry Accordion de diversas maneira, uma de modo mais ágil com apenas um cliques, mais comprometendo a semântica e outro de modo não obstrutivo com a utilização do SpryDOMUtils.js. E ainda como carregar o conteúdo dos painéis com outra página sem a necessidade de atualizar a página, e uma breve descrição de como customizar os painéis.Veja um exemplo de Painéis Sanfonados utilizando o Spry Accordion

Conteúdo

Crie uma nova página, pode ser em qualquer formato. Na Barra Inserir do Dreamweaver selecione a guia Spry e clique no botão Spry Accordion.

O Dreamweaver vai automaticamente criar o Spry Accordion com dois painéis. Você pode inserir ou remover os painéis facilmente utilizando o Painel de Propriedades, para utilizá-lo verifique se os painéis estão com uma borda azul.

As opções fornecidas no Painel de Propriedades do Spry Accordion são:
1. Nome do Painel
2. Adiciona ou remove os painéis, sinal de “mais” para adicionar e sinal de “menos” para remover
3. Ordenar a seguencia dos painéis, selecione um painel na caixa de visualização dos painéis e clique na seta para “cima” para mover o painel para cima e na seta para “baixo” para mover o painel para baixo
4. Customize this widget, remove os stilos gerados automaticamente para que você possa customizá-lo (não recomendado).

Criando painéis sanfonados não obstrutivos

Com os painéis criados e configurados, entre no modo de visualização de código (Shown Code View) do Dreamweaver. No final da página observe que o Dreamweaver criou um bloco de código em JavaScript com as configurações do Spry Accordion, obstruindo o código HTML.

Se apenas apagar esse código os painéis não vão funcionar. Para que os painéis funcionem corretamente de modo não-obstrutivo é necessário três etapas: (1) apagar esse bloco de codigo que o Dreamweaver criou, (2) Inserir dentro da TAG HEAD o SpryDOMUtils.js que é um novo arquivo JS do Spry criado recentemente justamente para resolver esse problema de obstrução do Spry, muito criticado por desenvolvedores de respeitam e prezam a semântica. e (3) criar um novo arquivo JS com uma função para passa os parâmetros de configuração do Spry Accordion. Para criar esse arquivo, crie uma nova página (Ctrl + N) de javascript e crie uma nova função utilizando o Spry.Utils.addLoadListener (pertencente ao arquivo SpryDOMUtils.js).e configure criando uma variável (Accordion1)e passando o ID da DIV principal (Accordion1) onde todos os painéis estão dentro.

var Accordion1;
Spry.Utils.addLoadListener(function()
{
Spry.$$(”#Accordion1″).forEach(function(n) { Accordion1 =new Spry.Widget.Accordion(”Accordion1″);});
});

Agora feche, e volte para a página que estão os painéis e insira esse arquivo dentro da tag HEAD, verifique se todos arquivos estão inserido

<head>
<script src=”SpryAccordion.js” type=”text/javascript”></script>
<script language=”javascript” type=”text/javascript” src=”SpryDOMUtils.js”></script>
<script language=”javascript” type=”text/javascript” src=”accordion_naoobstrutivo.js”></script>
<link href=”SpryAccordion.css” rel=”stylesheet” type=”text/css” />
</head>

Carregando o conteúdo dos painéis sem atualizar a página

Para fazer a atualização do conteúdo sem a necessidade de ficar recarregando a página, simulando um iframe utilizaremos a função Spry.Utils.updateContent que já foi abordado nesse tutorial. Para utilizar essa função faça a inclusão do o arquivo SpryData.js do Frameworks Spry dentro da tag Head

<script language=”javascript” type=”text/javascript” src=”SpryData.js”></script>

Vamos adicionar os links e a função Spry.Utils.updateContent junto com a função onClick, para que quando o usuário clique no nome do painel a função Spry.Utils.updateContent faça o update dentro do painel. Na DIV que contém o titulo do painel inclua a função e passe dois parâmetros: o primeiro é a ID da DIV onde o conteúdo será carregado e o segundo é o endereço da página que será carregada.

<div class=”AccordionPanelTab” onclick=”Spry.Utils.updateContent(’tb2′,’painel_1.html’);“>Label 2</div>

Agora dentro da DIV que armazena o conteúdo do painel identifique de acordo com o ID que você informou na função

<div class=”AccordionPanelContent” id=”tb2″>Content 2</div>

O painel deve ficar assim. Em negrito está as alterações que devem ser feitas. Esse é apenas um painel faça isso em quantos painéis você quiser.

<div class=”AccordionPanel”>
<div class=”AccordionPanelTab” onclick=”Spry.Utils.updateContent(’tb2′,’painel_1.html’);“>Label 2</div>
<div class=”AccordionPanelContent” id=”tb2″>Content 2</div>
</div>

Customizando o Spry Accordion

Na janela de configuração de CSS (Shift + F11), estão disponiveis os estilos CSS do Spry Accordion que podem ser modificados, Muita atenção nas modificações desses estilos pois podem implicar no não funcionamento adequado do Accordion, recomendo que seja apenas modificado as cores, a largura do painel e a altura dele.

.AccordionPanelTab: Modifica as configurações da div do titulo

.AccordionPanelContent: modifica as configurações da div do conteúdo do painel, caso queira modifique a altura do painel (height)

.AccordionPanelOpen .AccordionPanelTab: modifica a cor de fundo do titulo do painel ao ser inicializado, ou sej aque ainda não foi clicado

.AccordionPanelTabHover: modificar a cor da fonte do titulo do painel que está fechado ao passar o mouse por cima

.AccordionPanelOpen .AccordionPanelTabHover: modificar a cor da fonte do titulo do painel que está aberto ao passar o mouse por cima

.AccordionFocused .AccordionPanelTab: modifica a cor de fundo da div com o titulo do painel inativo ou fechado

.AccordionFocused .AccordionPanelOpen .AccordionPanelTab: modifica a cor de fundo da div com o titulo do painel aberto ou ativo

Ver arquivos utilizados para constuir esse sistemas:
index.php

Considerações Finais

Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui
Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO
Visite meu blog www.marceloramos.blog.br e qualquer dúvida envie um e-mail para marcelo@marceoramos.blog.br

Boxes e listas arrastáveis com ajax

Introdução

É muito fácil e rápido criar boxes e listas arrastáveis utilizando a biblioteca ToolMan, que foi desenvolvida pelo Tim Taylor e não possui nenhuma restrição a sua utilização. O ToolMan utiliza Java script não-obstrutivo e todos seus arquivos pesam apenas 20Kb. São utilizados para criar boxes e listas; arrastáveis, editáveis e auto-ordenáveis. O Blog BeNLOG adaptou o ToolMan para trocar itens entre listas diferentes, veja um exemplo de listas arrastáveis, boxes arrastáveis e listas arrastáveis que trocam itens.

Conceitos

Para utilizar o ToolMan é necessario: (1º) criar uma variável tendo como valor a identificação do elemento que será arrastado (var nome_da_variável = document.getElementById(”id_da_div“)), (2º) digitar o comando para executar o TollMan, sendo seu valor a variável que foi criada (drag.createSimpleGroup(nome_da_variável_que_você_criou)) e caso queira, (3º) digitar o comando para limitação ou restrição, que pode ser: somente na vertical, horizontal ou entre diversas outras citadas abaixo.

Pré-requisito

Arquivos para os boxes: core.js (1k), events.js (1k), css.js (1k), coordinates.js (4k), drag.js (7k).
Arquivos para as listas: dragsort.js (2k), cookies.js (1k) mais os de cima
Arquivos para as listas que trocam os itens: coordinates.js (3k), drag.js (7k) e dragdrop.js (6k)

Conteúdo

Boxes arrastáveis

Primeiro inclua os arquivos; core.js, events.js, css.js, coordinates.js, drag.js dentro da tag HEAD.

<script language=”JavaScript” type=”text/javascript” src=”../source/org/tool-man/core.js”></script>
<script language=”JavaScript” type=”text/javascript” src=”../source/org/tool-man/events.js”></script>
<script language=”JavaScript” type=”text/javascript” src=”../source/org/tool-man/css.js”></script>
<script language=”JavaScript” type=”text/javascript” src=”../source/org/tool-man/coordinates.js”></script>
<script language=”JavaScript” type=”text/javascript” src=”../source/org/tool-man/drag.js”></script>

Crie uma função em Java Script para que ao carregar toda a pagina HTML execute o ToolMan. Dentro dessa função vamos carregar três variáveis do ToolMan

<script language=”JavaScript”>
window.onload = function() {
var group
var coordinates = ToolMan.coordinates()
var drag = ToolMan.drag()
}
</script>

Ainda dentro do código Java Script é necessário criar as variáveis de configuração dos boxes. Cada tipo de box requer um configuração, veja abaixo as disponíveis:

Box Drag

O Box Drag fica solto na tela podendo ser arrastado para qualquer lugar. Para utilizá-lo, crie uma variável tendo como valor a identificação do elemento (var boxDrag = document.getElementById(”id_da_div_boxDrag“)) nessa caso a variável vai se chamar boxdrag, digite o comando para executar o ToolMan e coloque como valor desse comando a variável que você criou, ficando assim: drag.createSimpleGroup(boxDrag)

var boxDrag = document.getElementById(”id_da_div_boxDrag“)
drag.createSimpleGroup(boxDrag)

Agora é só criar uma DIV com o ID sendo igual ao informado na variável

<div id=”id_da_div_boxDrag”>
<p>Conteúdo</p>
</div>

Box Vertical

O Box Vertical pode se arrastado somente na vertical. Para utilizá-lo, crie uma variável (boxVerticalOnly) tendo como valor a identificação do elemento, digite o comando para executar o ToolMan, sendo seu valor a variável que foi criada, e informe a limitação group.verticalOnly(), ou seja, arrasta somente na vertical.

var boxVerticalOnly = document.getElementById(”id_da_div_boxVertical“)
group = drag.createSimpleGroup(boxVerticalOnly)
group.verticalOnly()

Agora é só criar uma DIV com o ID sendo igual ao informado na variável

<div id=”id_da_div_boxVertical”>
<p>Conteúdo</p>
</div>

Box Horizontal

O Box Horizontal é o contrario do Box Vertical e poderá se arrastado somente na horizontal. Para utilizá-lo, crie uma variável (boxHorizontalOnly) sendo o seu valor a identificação do elemento, digite o comando para executar o ToolMan tendo como valor a variável que foi criada e informe a limitação group.horizontalOnly(), ou seja, arrastar somente na horizontal.

var boxHorizontalOnly = document.getElementById(”id_da_div_boxHorizontal“)
group = drag.createSimpleGroup(boxHorizontalOnly)
group.horizontalOnly()

Crie uma DIV nome com o ID sendo igual ao informado na variável

<div id=”id_da_div_boxHorizontal”>
<p>Conteúdo</p>
</div>

Box Handle

O Box Handle é semelhante ao Box Drag mais para arrastá-lo é necessário definir uma área dentro do box, onde somente clicando nela será possível arrastá-lo. Crie uma variável (boxHandle) tendo como valor a identificação do elemento, digite o comando para executar o ToolMan tendo como valor a variável que foi criada e a identificação do elemento que será a área que vai arrastá-lo, separados pela virgula (,).

var boxHandle = document.getElementById(”id_da_div_boxHandle“)
group = drag.createSimpleGroup(boxHandle, document.getElementById(”id_da_area_handle”))

Crie uma DIV nome com os IDs sendo igual ao informado na variável

<div id=”id_da_div_boxHandle”>
<div id=”id_da_area_handle”>Área Arrastavel</div>
<p>Box Handle</p>
<p>Clique na área arratavel e arraste para qualquer lugar</p>
</div>

Box Region Constraint

Nesse tipo de box é possível definir uma área limite para arrastar o box. Crie uma variável (boxRegionConstraint)com o valor sendo a identificação do elemento, e digite o comando para executar o ToolMan, sendo seu valor a variável que foi criada.

var boxRegionConstraint = document.getElementById(”id_da_div_boxRegionConstraint“)
group = drag.createSimpleGroup(boxRegionConstraint)

Crie outra variável para delimitação das margim, insira em pixes dentro dos parênteses na primeira linha.

var origin = coordinates.create(0, 0)
group.addTransform(function(coordinate, dragEvent) {

Copie o cole essa variável para delimitação de qual lado poderá ser arrastado.

var originalTopLeftOffset =
dragEvent.topLeftOffset.minus(dragEvent.topLeftPosition)
return coordinate.constrainTo(origin, originalTopLeftOffset)
})

Crie uma DIV nome com o ID sendo igual ao informado na variável.

<div id=”id_da_div_boxRegionConstraint”>
<p>Box Region Constraint</p>
<p>Pode ser arratado para esquerda e com margin de 20px</p>
</div>

Box com posição fixa

É possível criar um box com uma posição fixa que se movimente por uma linha na horizontal ou vertical. Crie uma variável tendo como valor a identificação do elemento, digite o comando para executar o ToolMan, sendo seu valor a variável que foi criada e informe como limitação que sua movimentação será somente na horizontal (group.horizontalOnly()) ou vertical (group.verticalOnly()) na terceira linha do código JS.

var boxAbsolute = document.getElementById(”id_da_div_boxAbsolute”)
group = drag.createSimpleGroup(boxAbsolute)
group.verticalOnly()

Agora adicione o código abaixo, que fara o resto

group.addTransform(function(coordinate, dragEvent) {
var scrollOffset = coordinates.scrollOffset()
if (coordinate.y < scrollOffset.y)
return coordinates.create(coordinate.x, scrollOffset.y) var clientHeight = coordinates.clientSize().y
var boxHeight = coordinates._size(boxAbsolute).y
if ((coordinate.y + boxHeight) > (scrollOffset.y + clientHeight))
return coordinates.create(coordinate.x,
(scrollOffset.y + clientHeight) - boxHeight)

return coordinate
})

Crie uma DIV nome com o ID sendo igual ao informado na variável

<div id=”id_da_div_boxAbsolute “>
<p>Box Region Constraint</p>
<p>Pode ser arratado para esquerda e com margin de 20px</p>
</div>

Listas

Lista auto-ordenáveis

Agora aprenderemos a criar lista arrastáveis e auto-ordenáveis, ou seja, que se arrastam e se encaixam perfeitamente, e o melhor e que ele vai armazenar a seqüência de ordenamento em um cookie. Assim a eqüência será armazenada para visitas futuras do usuário. Para executar essa função é necessário incluir além dos que já foram incluídos anteriormente mais dois arquivos JS: dragsort.js e cookies.js.

<script language=”JavaScript” type=”text/javascript” src=”dragsort.js”></script>
<script language=”JavaScript” type=”text/javascript” src=”cookies.js”></script>

Crie um bloco de código de Java Script e informe a identificação do UL e da LI da lista. Inicie criando as variáveis do ToolMan, só que agora para utilizar o Drag Sort.

<script language=”JavaScript” type=”text/javascript”><!–
var dragsort = ToolMan.dragsort()
var junkdrawer = ToolMan.junkdrawer() //–>
</script>

Ainda dentro do bloco de código crie uma função para que ao carregar toda a pagina html execute o ToolMan Drag Sort. Dentro dessa função vamos carregar as variáveis necessárias. Coloque como valor dos comandos junkdrawer.restoreListOrder e dragsort.makeListSortable do ToolMan a indentificação do UL da lista conforme mostrado abaixo em negrito, para que a posição da lista seja gravada e possa se arrastada.

window.onload = function() {
junkdrawer.restoreListOrder(”id_da_lista“) dragsort.makeListSortable(document.getElementById(”id_da_lista”),
saveOrder)

}

Agora digite essa função responsavel pelo armazenamento e ordenamento da lista

function saveOrder(item) {
var group = item.toolManDragGroup
var list = group.element.parentNode
var id = list.getAttribute(”id”)
if (id == null) return
group.register(’dragend’, function() {
ToolMan.cookies().set(”list-” + id,
junkdrawer.serializeList(list), 365)
})
}

E pronto.

Listas auto-ordenáveis que podem ser trocados os itens entre si

Baseado no ToolMan do Tim Taylor o Blog BeNLOG adaptou o script para que os itens das listas se auto-organizem e possam ser trocados de uma lista para outra. Para isso é necessário apenas três arquivos JS que foram atualizado para suporta essa função e pesam apenas 16Kb, e que também não é obstrutivo.

<script language=”JavaScript” type=”text/javascript” src=”coordinates.js”></script>
<script language=”JavaScript” type=”text/javascript” src=”drag.js”></script>
<script language=”JavaScript” type=”text/javascript” src=”dragdrop.js”></script>

Iniciaremos criando um bloco de código de Java Script que inicie a função (window.onload) assim que a página for carregada. Crie uma variável (var list) e digite seu valor sendo a identificação da lista (document.getElementById(”id_da_lista”)) e escreva o comando para que seja criado a movimentação das listas (DragDrop.makeListContainer( list );) tendo como valor a variável que foi criada. É possível também executar dois eventos; um quando a lista inicia o arrastamento (list.onDragOver) e outro quando termina (list.onDragOut). Nesse exemplo vamos alterar o cor de fundo (function() { this.style["background"] = “#EEF”; }) quando o usuario for mover a lista. Faça o mesmo na outra lista, crie uma variável (list) e passe a indetificaçãoo da lista (document.getElementById(”id_da_lista2″);), execute o comando para que seja criado a movimentação das listas e adicione outros eventos.

<script language=”JavaScript” type=”text/javascript”><!–
window.onload = function() {
var list = document.getElementById(”id_da_lista“);
DragDrop.makeListContainer( list );
list.onDragOver = function() { this.style["background"] = “#EEF”; };
list.onDragOut = function() {this.style["background"] = “none”; };

list = document.getElementById(”id_da_lista2“);
DragDrop.makeListContainer( list );
list.onDragOver = function() { this.style["background"] = “#EEF”; };
list.onDragOut = function() {this.style["background"] = “none”; };
};
//–>
</script>

Considerações Finais

Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO

Qualquer dúvida envie um email para ramos.marcelosouza@gmail.com

Atualização Dinâmica com Objetos

 

Manipulação de objetos da biblioteca do Dreamweaver CS3 para efetuar atualizações dinâmicas em websites sem precisarmos conhecer linguagem de programação.

Introdução

Imagine-se desenvolvendo um site simples, mas com muitas páginas (mais ou menos 50) onde, em todas existe um banner full (468×60 px) que precisa ser atualizado semanalmente. O detalhe é que você ainda não sabe programar direito, mas também não quer fazer a atualização individual de cada página, não é verdade?
Então, seus, nossos problemas terminaram. =]
Pouco é falado da biblioteca que o Dreamweaver oferece aos webdesigner’s e webdevelopers. Assim como no Fireworks e Flash, podemos criar objetos que serão utilizados com freqüência no desenvolvimento de nossos projetos web e que requerem uma atualização constante, como imagens, links, vídeos, animações, etc. Como nos Templates, a utilização e atualização dos objetos (Assets) é dinâmica, ou seja, todas as páginas que contiverem um objeto dinâmico, quando ele for atualizado, todas as páginas também receberão as modificações.

Pré-Requisitos
  • Facilidade com o manuseio do Dreamweaver CS3
  • Saber criar e configurar um novo site no Dreamweaver CS3
  • Entendimento sobre o conceito de Templates
Objetivo
  • Criar objetos que serão atualizados automaticamente utilizando a Biblioteca (Library) do Painel Assets.
Conceito

Não basta criarmos apenas um trabalho, pois em muitos casos teremos diversas páginas com inúmeros elementos a serem configurados no website. Mas como sabemos, o Dreamweaver foi criado para facilitar a vida dos desenvolvedores, disponibilizando diversos recursos que auxiliam na produtividade do nosso trabalho. E um desses recursos que falarei neste tutorial é Assets.

Conteúdo
Parte 1 - Importação de site de exemplo

Vamos começar criando um novo site no Dreamweaver para facilitar o entendimento das ações abaixo. E pra ficar mais fácil, BAIXE AQUI os arquivos deste tutorial; acesse o menu Site > Manage Sites > Import. Selecione o arquivo Tutorial.STE, clique em abrir e em seguida pressione o botão Done.
Este procedimento faz a configuração automática de um novo site que foi exportado do Dreamweaver.
Ao abrirmos o arquivo index.html temos a seguinde estrutura:

Página index.html
Fig. 01 - Estrutura da página index.html

numero 1 Topo da página: criaremos um objeto atualizável para inserirmos nas outras páginas.
numero 2 Barra de menu: links serão criados e inseridos na biblioteca.
numero 3 Identificação: apenas uma identificação da página. Não sofrerá atualização.
numero 4 Conteúdo: apenas um conteúdo da página. Não sofrerá atualização.

Parte 2 - Adicionando objeto à biblioteca

Para iniciarmos, precisamos, primeiramente, localizar o Painel Assets. Ele se encontra no Painel Files (F11).

Painel Assets
Fig. 02 - Painel Assets

Na lateral esquerda temos os tipos de elementos como imagens, cores utilizadas no site, links, arquivos em flash, etc.
Transformaremos o Topo do site em um objeto, inicialmente. Vamos ver como funciona:
1. Selecionemos a tabela onde se encontra o topo:

Seleção de tabela
Fig. 03 - Selecionando topo do site

2. Com a tabela selecionada, acessemos o menu Modify > Library > Add Object to Library, para adicionarmos o objeto à biblioteca do Dreamweaver.
Após a inserção do topo na biblioteca, na página onde ele está inserido, para sinalizar ao desenvolvedor, fica com um preenchimento amarelo, mas não afeta em nada no layout da página. Sua função é apenas de identificar que se trata de um objeto do paine Assets.

Topo adicionado
Fig. 04 - Visualização do topo após a inserção na biblioteca

O Dreamweaver também cria automaticamente na raiz do site, uma pasta chamada Library onde todos os objetos são armazanedos.
3. Vamos repetir o mesmo procedimento com a Barra de menu

links
Fig. 05 - Visualização da barra de menu
Parte 3 - Manipulação do Painel Assets

Outra observação é quanto ao Painel Assets. Vejamos quantas informações foram adicionadas à biblioteca:
Images
Nesta seção vemos as imagens que estão associadas ao objeto juntamente com suas propriedades de dimensionamento e peso. As imagens podem ser inseridas nas outras páginas do site, bastando selecioná-las no painel e arrastá-las para a área de edição das páginas.

Propriedades
Fig. 06 - Propriedades da seção image

Colors
Na opção Colors ficam exibidas as cores utilizadas na página onde foi inserido o objeto à biblioteca.

Propriedades de cor
Fig. 07 - Propriedades da seção Colors

O processo de inserção no site é o mesmo: selecionar, arrastar e soltar dentro da página do site. O detalhe é que é preciso ter uma palavra o texto selecionado para que os mesmos absorvam as propriedades da cor.
Library
Na seção Library encontram-se os objetos adicionados. Para utilizá-los basta arrastá-los para a página do site editado.

Objetos da library
Fig. 08 - Objetos da biblioteca

Outra maneira de inserir um objeto é através do botão Insert localizado no painel Assets na parte inferior, onde constam outros botões, que são eles, respectivamente da esquerda para direita:

Botões da biblioteca
Fig. 09 - Botões da biblioteca
  • Refresh Site List: atualiza a lista de objetos editados, excluídos ou inseridos no site
  • New Library Item: outra maneira de adicionar um objeto à biblioteca
  • Edit: selecionando um objeto, podemos editá-lo clicando neste botão
  • Delete: maneira de excluir o objeto da biblioteca
Parte 4 - Criando páginas e utilizando objetos da biblioteca (library)

Agora que criamos os objetos fica simples inseri-los nas novas páginas e editá-los. Como exemplo, vamos inserir o topo e a barra de menu na página abaixo:

Página mxstudio
Fig. 10 - Nova página sem objetos da biblioteca

Em seguida, vamos arrastar os objetos para a página…

Inserção de objeto
Fig. 11 - Inserção do objeto Topo na página mxstudio.html

… e a mesma deverá ficar como a imagem abaixo:

Página com objetos
Fig. 12 - Página mxstudio.html após a inserção dos objetos
Parte 5 - Edição dos objetos da biblioteca

Este procedimento que é o “pulo-do-gato”, a razão de existir dos objetos criados. Ao editarmos qualquer um incluso na biblioteca (library), assim como os Templates, todas as páginas em que o objeto edito esteja inserido, serão atualizadas automaticamente.
Como exemplificação, vamos inverter os logotipos do topo.
1. Selecionemos o objeto Topo e cliquemos no botão Edit ou demos dois cliques sobre o mesmo.
2. Uma área de edição específica será aberta e nela podemos efetuar qualquer alteração. Então vamos inverter os logotipos e também utilizar a mesma vermelha que se encontra no painel Assets como visto na Fig. 07. Lembrando que é preciso selecionar o texto e arrastar a cor para cima da seleção ou clicar no botão Insert. O resultado deve ser o seguinte:

Área de edição
Fig. 13 - Área de edição de objetos

numero 1 Indicação do objeto que está sendo editado
numero 2 Área de edição do objeto
Após salvarmos as alterações a seguinte tela surgirá:

Janela de atualização
Fig. 14 - Janela de confirmação de atualização

3. Clicando em Update, a atualização global será efetuada. Já em Don’t Update, apenas salvará o objeto sem atualizar as páginas que ele está inserido.
Outra maneira de edição é clicar sobre o objeto e no painel Properties, clicarmos no botão Open.

Botão open
Fig. 15 - Botões de ações de objetos no painel Properties
Considerações Finais

Vale ressaltar que este processo de atualização, praticamente, tem o mesmo efeito que se criássemos uma página template. Contudo, podemos inserir objetos em nossos templates o que otimiza e muito as atualizações das páginas, além de ser mais rápido.
Na prática, recomendo a implantação de objetos para criação de áreas de publicidade como banner’s, onde existe (dependendo do site) uma rotatividade muito grande de imagens e animações.

Mas atenção!
Este processo é indicado para quem não sabe programar em nenhuma linguagem e/ou não quer ter trabalho em atualizar páginas html individualmente, ok?!
Acessem nosso Fórum para postarem dúvidas sobre o artigo e cliquem aqui para sugerirem de novas matérias.
Um grande abraço e até a próxima.
Autor: CarlosHPS Webdesigner - Colunista Dreamweaver do Portal MXSTUDIO
Não deixem de me fazer uma visita em meu Blog - www.carloshps.com.br/blog