Desenvolvendo um componente de calendário dinâmico em PHP

Estou desenvolvendo uma aplicação em PHP que vai utilizar módulos, já tenho muitas coisas desenvolvidas para o sistema. A medida que eu for terminando meus componentes, pretendo escrever passo a passo como foram desenvolvidos cada um deles. Hoje irei falar sobre o primeiro módulo (calendário).

[ Hits: 29.536 ]

Por: Leonam Souza em 09/11/2007


Preparando o espaço para trabalhar



Geralmente eu costumo a utilizar o fireworks para desenhar os componentes e depois trabalhar o código em cima, desta forma eu evito perder tempo com html e ganhar tempo na programação em php.

Bom, neste caso eu desenhei a tabela do calendário (calendario2.jpg), reservei campos para o nome do mês, os dias da semana e claro, os dias do mês. Após ter desenhado o calendário, é hora de fatiar a imagem para que a mesma seja exportada em html, com suas respectivas celulas já fatiadas (calendario.jpg).

Eu costumo a utilizar o dreamweaver somente como um ajuste final, mas esta etapa eu vou explicar depois.

Bom, já que agora já criamos o nosso espaço de trabalho, é hora de trabalhar de verdade e colocar a mão na massa, vamos analisar o código php.

Obtendo informações do sistema

Bom, o código é muito simples. Ele na verdade é dividido em duas partes:
  1. Obter as datas;
  2. Preencher a tabela com os valores.

OK, este primeiro trecho do código é a parte responsável por pegar do servidor a hora correta. Quando o código pegar a hora exata do servidor, ele vai distribuir nas variáveis $mes e $ano.

Utilizei a função switch para poder colocar o nome do mês em português, no título da tabela (a parte em azul da tabela, imagem: calendario2.jpg).

Para podermos trabalhar com vetores e manipular tais informações utilizei a função mktime.

Usando o mktime eu vou poder saber em que dia da semana começa o mês, lógico também saberei a quantidade de dias que determinado mês possui.

Pronto, acredito que agora temos todas as informações úteis para que possamos começar a preencher nosso vetor usando um laço de repetição:

for($x=$inicio_mes;$x<=$fim_mes+($inicio_mes-1);$x++)
{
$vet[$x]=$vet[$x-1]+1;
}

Assim terei todos os dias do mês armazenados no vetor, começando pelo dia 1° e armazenando tal informação na célula correspondente ao primeiro dia da semana do determinando mês.

    Próxima página

Páginas do artigo
   1. Preparando o espaço para trabalhar
   2. Inserindo os dados na tabela
   3. Código completo
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Gráficos em PHP Highcharts

Instalação do MediaWiki em uma Project web do SourceForge

Instalando a extensão json para o php-5.1 no CentOS/Red Hat

JOOMLA no openSUSE em 10 passos

Solução open source para clínicas médicas

  
Comentários
[1] Comentário enviado por alexnuvix em 09/11/2007 - 09:54h

Muito Bom o artigo.

Como você deu a permissão gostária de usar em um portal Intranet que tenho aqui na empresa.
Teria como você disponibilizar as imagens ?

Se puder me envia por e -mail, se não puder ok, mas de qualquer forma valeu pelo artigo.

Abraço.

[2] Comentário enviado por engos em 09/11/2007 - 11:56h

Gostei da iniciativa.

Ainda tenho que parar e analisar com calma o código, mas sua idéia é bem interessante.

Recomendo colocar o script com imagens e tudo mais que for necessário na parte de scripts do VOL antes e depois quando for publicar já colocar o endereço do script.

Espero apenas que você tenha feito conforme as regras do W3C, principalmente no que diz respeito a separação dos arquivos de estilos, script, html etc.

Só o que não consegui visualizar ainda (nessa passagem rápida que fiz) foi a criação do script como uma classe para ser usada com os conceitos de orientação a objetos. Se não o fez, seria interessante migrar e já fazer os próximos assim.

Abraço.

[3] Comentário enviado por lsouzabr em 09/11/2007 - 16:53h

Bom, com relação as imagens, quando você acessa a versão para impressão elas irão aparecer, com relação ao w3c se não me engano falta uma correção com relação a forma como o bg foi declarado, mas isso é um ajuste muito simples.
Quando você for utilizar na forma de módulo, você precisa eliminar todo o código que não for relativo a tabela do calendário, por tanto, os heads, body, etc, precisam ser eliminados do html, ficando somente o <table> </table>.
Com relação ao conceito de orientação a objetos você realmente têm razão, porém é algo que pra te ser sincero eu preciso estudar mais pra criar algo do tipo.

Qualquer coisa, ou qualquer sugestão estamos ai!!!!
Falows, abração.

[4] Comentário enviado por fagnerfjas em 18/12/2009 - 15:57h

Era tudo o que eu precisava.
Ajudou e muito o meu trabalho!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts