jqFormulator – Carregando formulários com jQuery

•Abril 14, 2009 • Deixe um comentário

Olá pessoal!!

Às vezes, nas brincadeiras de fim de semana, nos vem inspiração para resolver probleminhas do nosso cotidiano. Foi desta forma que resolvi criar uma “bibliotecazizinha” com jQuery que carregasse grandes formulários em uma página (magentopia) no estilo formulator, mas que desse ao usuário final uma experiência agradável ao ter que preencher cansativos passos destes formulários de cadastro.

Estou falando da jqFormulator, que está na versão “ontem.de.madrugada.1″ e tambem está aberta a novas idéias e melhoramentos.

Requerimentos:

  • jquery-1.3.2.min.js >
  • jqFormulator.js

Download: jqFormulator.js

Demonstração: exemplo do jqFormulator

Documentaçao:

No header do seu formulário, inicialize a biblioteca jqFormulator.js

<script language="javascript" src="js/jqFormulator.js" type="text/javascript"></script>

Defina as opções obrigatórias (titles e files)

Options ={
 type: "POST",
 titles: Array("Passo 1","Passo 2"),
 files: Array(
 "files/reserva-passo-1.php",
 "files/reserva-passo-2.php"
 )
 };

Chamar o método initForms(opções)

initForms(Options)

Insira o seu formulário na página com id = ‘formulator’

<form id="formulator" method="post" action="jqFormulator.php"></form>

O código completo ficará como no exemplo abaixo.

<script type=”text/javascript”>
Options ={
type: “POST”,
//array com os títulos de cada passo
titles: Array(”Passo 1″,”Passo 2″),
//array com os formuláios que serão chamados
files: Array(
“files/reserva-passo-1.php”,
“files/reserva-passo-2.php”
)
};
initForms(Options)
</script>
<div id=”forms”>
<form id=”formulator” method=”post” action=”#”></form>
</div>

Defina as propriedades obrigatórias para o correto funcionamento

  • [type] String – Refine o tipo de envio (GET ou POST) default: POST.
  • [titles] Array – Recebe um array que serão os titulos de cada passo. Caso a quantidade de títulos passados seja inferior a quantidade de arquivos, o sistema irá atribuir títulos sequenciais. Ex.
        titles: Array("Passo 1","Passo 2")
  • [files] Array – Recebe um array com as urls dos arquivos que serão carregados. Ex.

Array (”files/cadastro/passo1.php”, “files/cadastro/passo2.php”, “files/cadastro/passo-n.php”)

jqformulatorFig. 1 - Passo 1, na primeira exibição, o usuário só poderá acessar
o formulário do passo 1.   

jqformulator2
Fig. 2 - Passo 2, ao clicar em prosseguir no passo 1,
o título "Passo 1 e Passo 2" transformam-se em link permitindo ao
usuário navegar entre o primeiro e segundo passos e assim
suscessivamente.

Espero que está humilde aplicação possa ser útil a todos. Qualqer
dúvida entrem em contato com ldmotta@visie.com.br.

Comentários serão bem vindos.

Desbloquear SGH C275L

•Dezembro 6, 2008 • Deixe um comentário

Então… vc chega na loja da vivo, e eles dizem que não desbloqueiam pois a loja que está desbloqueando é aquela que fica do outro lado da cidade, e vc ainda tem que apresentar a identidade, cpf, nota fiscal do aparelho em seu nome, sertidão de nascimento, comprovante de voto dos últimos 5 anos, carteira de vacina… hehehe…

!!! SEUS PROBLEMIAS ACABARAMSE !!!

Façam o seguinte:

Anotem o IMEI do aparelho, caso não saiba, digite *#06# e vai aparecer o numero IMEI com 17 algarismos.
OBS. Se você anotar o IMEI que está embaixo da bateria, ele terá 15 números, os dois últimos você só consegue digitando *#06#.

2. Guardem ele (papel, notepad ou word).

3. Coloquem o chip da operadora que você deseja e não funciona.

4. Ligue o aparelho com o chip instalado.

5. Quando aparecer uma mensagem, Cartão Incorreto façam o seguinte:

digitem:

*2767*688IMEI# (substitua a palavra IMEI pelo código de 17 digitos)

6. Aguarde alguns segundos… Assim que ele reiniciar e encontrar a rede, digite o código *0141# e tecle “Send” (tecla verde) para persolanizar o celular.

7.1. Aparecerá a mensagem: “Personalizado”

ou

7.2. Aparecerá a mensagem: “Já Personalizado”

aparecendo qualquer uma dessas vá em:

Menu > Config. Telefone > Segurança.

8. Coloque:
Verificar PIN: Desativar
Bloquear Telefone: Desativar
Bloqueio de SIM: Desativar
SENHA: 00000000

9. Saia de todos os menus e digite novamente *0141# e tecle “Send” (botão verde)

10. Irá aparecer “Personalizado”, Pronto, Desbloqueado para esse CHIP.

Simulando virar de páginas com javascript

•Novembro 21, 2008 • Deixe um comentário

Exelente tutorial passo a passo para simular o virar de páginas com javascript.

http://www.oreillynet.com/pub/a/javascript/2004/09/03/flashhacks.html?page=1

Configurar Apache + No-Ip Para acesso via internet

•Agosto 14, 2008 • Deixe um comentário

Para este artigo, estou considerando que vc já tenha uma conta no No-Ip e tenha instalado o Apache 2.x

1° Libere uma porta da sua escolha no seu roteador e no seu firewall (mesmo que seja o firewall do windows). Ou seja, se liberar a porta 12345 no seu roteador, libere também a mesma porta (TCP) no seu firewall.

2° Abra o arquivo httpd.conf (arquivo de configuração do Apache), e altere a linha “Listen:80″ por “Listen: Número da porta escolhida” Ex. Caso tenha liberado a porta 12345, ficaria Listen: 12345

Dica: O endereço a ser digitado para acesso a seu servidor é http://seudominio.no-ip.org:12345 (onde 12345 é o número da porta liberada).

Acredite se quiser, é só isso.

Redimensionar imagens com PHP

•Agosto 4, 2008 • Deixe um comentário

<?php
function rmkdir($path, $mode = 0777) {
$path = rtrim(preg_replace(array(“/\\\\/”, “/\/{2,}/”), “/”, $path), “/”);
$e = explode(“/”, ltrim($path, “/”));
if(substr($path, 0, 1) == “/”) {
$e[0] = “/”.$e[0];
}
$c = count($e);
$cp = $e[0];
for($i = 1; $i < $c; $i++) {
if(!is_dir($cp) && !@mkdir($cp, $mode)) {
return false;
}
$cp .= “/”.$e[$i];
}
return @mkdir($path, $mode);
}

function resizamos ($img_origem, $pasta_destino, $novo_nome, $novalargura)
{
// Aqui carregamos a imagem original
$img = imagecreatefromjpeg( $img_origem );
//Determinar a largura e a altura da imagem original
$largura = imagesx( $img );
$altura = imagesy( $img );

// Calcular o tamanho que a imagem pequena terá, de modo a nao desfocar.
$nova_largura = $novalargura;
$nova_altura = floor( $altura * ( $novalargura / $largura ) );

// Criar a imagem temporaria
$tmp_img = imagecreatetruecolor( $nova_largura, $nova_altura );

// Copia e faz o resize para a nova imagem
imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura, $altura );

//crio a pasta destino caso não exista
rmkdir($pasta_destino);

// Guarda a imagem na pasta de destino e com o nome pretendido
$uploadnova = $pasta_destino . “/” . $novo_nome . “.jpg”;
imagejpeg( $tmp_img, $uploadnova );
}
resizamos(”img.jpg”,”img”,”thumb1″,1024);
resizamos(”img.jpg”,”thumb”,”thumb2″,100);
?>

Caixa com cantos arredondados

•Julho 3, 2008 • Deixe um comentário

Uma boa solução para estilizar seu site, gostaria de transforma-lo num plug-in, más ainda não tive tempo, quem sabe no próximo post.

Resultado:

Primeiro temos o html

<html>
<head>
<title>Caixa com cantos arredondados</title>
<meta name=“generator” content=“editplus” />
<link href=“caixa.css” media=“allrel=“stylesheet” type=“text/css” />
</head>
<body>

<div class=“modulecontainer sidebar”>
<div class=“first”>
<span class=“first”></span>
<span class=“last”></span>
</div>
<div class=“conteudo”>
<!– é só preencher este espaço com o conteúdo que quiser –>
</div>
<div class=“last”>
<span class=“first”></span>
<span class=“last”></span>
</div>
</div>
</body>
</html>

Agora vamos ao CSS. Obs: Dê preferência a colocar o css em um arquivo separado, nem preciso dizer pq…

.modulecontainer {
width:180px;
height:auto;
border-width:1px;
padding:0 8px;
}

.modulecontainer div {
width:auto;
height:auto;
background-color:#ffc;
border-color:#630;
border-style:solid;
border-width:1px;
margin:-2px -8px;
}

.modulecontainer .first {
border-width:1px 0 0;
}

.modulecontainer .last {
border-width:0 0 1px;
}

div.first,div.last {
height:8px;
width:auto;
position:relative;
background-color:#c93;
border-color:#630;
margin:0;
}

.modulecontainer .first .first {
position:absolute;
background-image:url(top_left.gif);
background-repeat:no-repeat;
width:8px;
height:8px;
z-index:1;
margin-left:-8px;
border:0 none;
}

.modulecontainer .last .first {
position:absolute;
background-image:url(base_left.gif);
background-repeat:no-repeat;
width:8px;
height:8px;
z-index:1;
margin-left:-8px;
border:0 none;
}

.modulecontainer .first .last {
position:absolute;
background-image:url(top_right.gif);
background-repeat:no-repeat;
width:8px;
height:8px;
z-index:1;
margin-right:-8px;
border:
0 none;
right:0;
}

.modulecontainer .last .last {
position:absolute;
background-image:url(base_right.gif);
background-repeat:no-repeat;
width:8px;
height:
8px;
z-index:1;
margin-right:-8px;
border:
0 none;
right:0;
}

.conteudo {
font:normal 11pt “Trebuchet MS”;
color:#F00;
padding:3px;
}

Clique aqui para ver o resultado

Estilizando um formulário de login

•Julho 3, 2008 • Deixe um comentário

Olá a todos!

Com a crescente necessidade de utilização do css em páginas web como também as constantes mudanças envolvidas, fazem de uma simples tarefa uma dor de cabeça para desenvolvedores, no que diz respeito a uma boa apresentação do seu site nos diferêntes browsers.

Neste momento gostaria de apresentar um simples formulário de login estilizado, com o css compactado e funcional para a maioria dos browsers, onde abordo conceitos de posicionamento de objetos no documento.

1° O documento…

<form name=”frmLogin” method=”POST” action=”#”>
<div class=”divLogin”>
<div class=”linha1″>
Efetuar Login
</div>

<div class=”linha2″>
<div class=”col1″>
Usuário
</div>

<div class=”col2″>
<input type=”text” class=”txt” title=”Digite o nome de usuário” onfocus=”this.className=’cxOn’” onblur=”this.className=’cxOff’”>
</div>
</div>

<div class=”linha3″>
<div class=”col1″>
Senha
</div>

<div class=”col2″>
<input type=”password” class=”txt” title=”Digite a sua senha” onfocus=”this.className=’cxOn’” onblur=”this.className=’cxOff’”>
</div>
</div>

<div class=“linha4″>
<input type=“reset” value=“Limpar” title=“Clique para limpar os dados”>
<input type=“submit” value=“ Login ” title=“Clique para efetuar login”>
</div>
</div>
</form>
2° O estilo

<style type=”text/css”>
.divLogin {
border:solid 2px #F60;
width:260px;
margin:100px auto auto;
}

.linha1,.linha2,.linha3,.linha4 {
font:bold 12pt “Trebuchet Ms”,”Verdana”, “Arial”;
width:auto;
text-align:center;
}

.linha1 {
margin-bottom:20px;
font:bold 16pt “Trebuchet Ms”,”Verdana”, “Arial”;
color:#FFF;
background-color:#F60;
}

.linha2 {
margin-bottom:5px;
}

.linha4 {
margin-top:25px;
margin-bottom:10px;
}

.col1,.col2,.col3,.col4 {
width:auto;
margin:auto;
}

.col1 {
float:left;
width:75px;
height:22px;
text-align:right;
padding-right:5px;
color:#F60;
}

.txt,.cxOn,.cxOff {
border:solid 1px #f60;
}

.cxOn {
background-color:#EEFAFD;
}

.cxOff {
background-color:#FFF;
}
</style>

Prontinho… simples… bonito… e… funcional…

Achou fácil? então faz!

VisualSVN um subversion para o Visual Studio

•Abril 3, 2008 • Deixe um comentário

O controle de versão é algo que deve ser levado em conta na hora do desenvolvimento de softwares principalmente quando existe uma equipe de trabalhando num projeto.

VisualSVN propõe uma visão simples de controle de versão usando Subversion.

 Rápido e com uma interface simples e prática, o VisualSVN reduz suas noites de sono perdidas pois vc não vai precisa de mais que 5 minutos para instalar e configurar. Se a sua intenção é ter um servidor que possibilite o controle de versões do seu projeto via internet, está no lugar certo, visite a home do VisualSVN e faça download desta exelente ferramenta.

Se quiser fazer algum comentário, sinta-se a vontade… :-)

 Luciano D. Motta