Arquivo de 2008 October > cleiver.com

Arquivo do mês de October de 2008

CakePHP e seu form Helper

28.10.2008 | CakePHP
Tags: ,

Utilizar os Helpers ajudam e facilitam muito o desenvolvimento, isso todo mundo deve saber. Mas uma coisa que me incomoda bastante é o código automático gerado algumas vezes. Eu tenho sindrome de Deus e gosto de ter controle de tudo, o que não é possível as vezes utilizando o Form Helper.

Por exemplo, vamos criar um formulário com o campo username e brincar com ele. Basicamente, seria um formulário para cadastrar usernames em um sistema. Na view add.ctp temos o seguinte código:

echo $form->create('User');
echo $form->input('username');
echo $form->end('Save');

Ele vai gerar o seguinte HTML no navegador:

<div class="input text">
   <label for="UserUsername">Username</label>
<input id="UserUsername" maxlength="25" name="data[User][username]" type="text" /></div>

Se eu tiver algum erro na validação dos dados (feitos no model), a mensagem de erro será exibida abaixo no input.

<div class="input text">
   <label for="UserUsername">Username</label>
<input id="UserUsername" maxlength="25" name="data[User][username]" type="text" />
<div class="error-message">Username required!</div>
</div>

Mas, e se eu quiser essa mensagem de erro em outro lugar? Em cima do input, por exemplo? E se eu não quiser esse label? Supondo que eu queira exibir somente o input e a mensgem de erro em cima dela, tenho que fazer o seguinte:

echo $form-&gt;error('username');
echo $form-&gt;input('username', array('label'=&gt;false, 'div'=&gt;false, 'error'=&gt;false));

Coloco a mensagem de erro onde eu quiser através do método error. Depois oculto as tags que não quero na criação do input. A div estou ocultando por causa da semântica, senão a mensagem de erro ficaria do lado de fora da div que contém o input. Estou setando o error do input como false pq senão além dele exibir a mensagem através do método error, ele também ira criar a div com o erro embaixo do input, ficando assim duas mensagens.

Deve ter uma solução melhor para casos assim, mas como não encontrei nada na minha pesquisa, tive que dar meu jeito.

3 Comentários

A Novela HP – 2º Temporada

28.10.2008 | Devaneios
Tags: , ,

Para quem perdeu a eletrizante 1º temporada:

Vamos então a um resumo do que nos aguarda dessa vez:

O conector do cabo de energia está com mau contato. Não importa a “posição” que você plugue. Não importa a superfície onde esteja o notebook. Não importa nada! A luz indicado conectividade acende, mas a bateria não carrega. O que seria um simples caso de mau contato não seria tão simples assim. Claro que não! Pq seria? Sabe-se lá o motivo, mas algumas poucas vezes, parece que esse mau contato simplesmente não existe. Tudo funciona perfeitamente bem.

Após o famigerado contato telefônico e alguns minutos de musiquinha, fui informado que teria que ser submetido a todo o processo de envio de equipamento que fui submetido da última vez. E tenho que aguardar de 20 a 30 dias úteis para ter um parecer.

Não vejo a hora de ser transferido para o setor de “”"”"”"”"”"”"”"”qualidade”"”"”"”"”"”"”"”".

1 Comentário

CakePHP e o Banco de Dados

23.10.2008 | CakePHP
Tags: ,

Quem mexe com o CakePHP já deve ter percebido que ele “exige” uma conexão com um Banco de Dados, mesmo se você não for precisar de um. Criar um banco de dados vazio só pra constar e deixar o Cake feliz é tosco. Mas mais tosca ainda foi a única solução que encontrei pesquisando pela internet: Criar um driver de conexão próprio para enganar o Cake!

O primeiro passo seria criar um arquivo, por exemplo, dbo_sem_bd.php na pasta app/models/datasources/dbo/ com o seguinte código:

1
2
3
4
5
6
7
8
9
10
class DboSemBd extends DboSource {
   function connect() {
      $this->connected = true;
      return $this->connected;
   }
   function disconnect() {
      $this->connected = false;
      return !$this->connected;
   }
}

Depois, bastava alterar o arquivo database.php na pasta app/config e dizer que o driver utilizado nas conexões será o sem_db. E pra finalizar com chave de outro, em cada model do sistema, setar a variável $useTable como FALSE.

Eu sinceramente prefiro criar um banco de dados vazio e deixar pra lá, mas o que me deixa mais espantado é o fato de uma ferramenta tão cheia de recursos quanto o CakePHP não tenha uma opção onde eu possa colocar que não vou utilizar um banco de dados.

Uma outra “solução”, e aqui posso estar falando besteira já que não vi isso a fundo, seria criar todas as páginas dentro da pasta pages. Mas ai eu teria que criar rotas para todos os meus arquivos para não ter que chamar sempre esse controller (pages) na url. Isso também geraria um trabalho tosco.

Nenhum comentário

Mudança

19.10.2008 | Devaneios
Tags:

Andei um tempo afastado daqui, não que as atualizações fossem frequentes antes, mas dessa vez, até os spams demoraram a ser deletados. O motivo: Estou mudando de empresa.

Foi 1 ano e 9 meses trabalhando na 3jane, nesse tempo vi pessoas entrando e saindo, conheci mentes sagazes da programação (=P), enfim… foram ótimos meses onde aprendi e cresci muito como profissional.

Mas a vida, ahhh a vida! Ela é uma caixinha de surpresas! Coisas bestas são feitas. Merdas (muitas) são faladas. O desânimo é inevitável. E numa bela manhã (!!!) em que estava puto com algumas coisas, um link me chamou a atenção em um email e cliquei. A vaga era interessante e resolvi tentar a sorte.

Terça-feira, dia 21, começo a trabalhar na área de tecnologia da CTIS. Estou trocando o horário flexível de uma empresa americana onde podia ir de blusa de banda e all star por horário fixo numa empresa brasileira e roupa social. E, estranhamente, estou empolgado com isso. =o

No mais, boa sorte aos amigos que deixei na 3jane (com certeza Pedrinho vai me chamar de emo no momento em que ler isso) e boa sorte pra mim também, vou precisar. =P

3 Comentários

Avatares do Tux! [Parte 2]

09.10.2008 | Devaneios, Linux
Tags: , ,

Continuando o primeiro post, no site CrystalXP tem mais um monte de avatares que podem ser baixados (individualmente).

Nenhum comentário

Página 1 de 1
[ 1 ]