Ir para conteúdo
Fórum Script Brasil
  • 0

Calendário - Exibição Dos Eventos Cadastrados


Andreia Regina

Pergunta

Olá Pessoal!

Fiz um calendário anual, utilizando um tópico que o Fabyo postou um calendário em tableless. Exibe certinho todas as datas porém estou com um problema na exibição dos dias com evento pois quero que o fundo fique com a cor definida para a categoria do evento.

Se puderem me ajudar, ficarei grata:

setlocale(LC_TIME, "portuguese");

$ano     = isset($_GET["ano"]) ? intval($_GET["ano"]) : date("Y");
$periodo = $_GET["cod"];

if (empty($periodo)) $periodo="meio";

      <?php 
      $mês=1;
      $teste=0;
      for($mês > 0; $mês <= 12; $mês++) {
          $result = mysql_query("SELECT * FROM tb_calendario WHERE ev_periodo!='$periodo' AND ev_mes_inicial='$mês' OR ev_mes_final='$mês' ORDER BY ev_dia_inicial,ev_dia_final ASC") or die (mysql_error());
          $linha  = mysql_num_rows($result);
          while($res = mysql_fetch_array($result)) 
        {
            $cat_id         = $res["cat_id"];

            $ev_dia_inicial = $res["ev_dia_inicial"];
            $ev_mes_inicial = $res["ev_mes_inicial"];
            $ev_ano_inicial = $res["ev_ano_inicial"];

            $ev_dia_final   = $res["ev_dia_final"];
            $ev_mes_final    = $res["ev_mes_final"];
            $ev_ano_final    = $res["ev_ano_final"];

            $nDataInicial = mktime(0, 0, 0, $ev_mes_inicial, ev_dia_inicial, $ev_ano_inicial);
            $nDataFinal   = mktime(0, 0, 0, $ev_mes_final, ev_dia_final, $ev_ano_final);
        }
  
        echo "Mês ".$mês;
        echo "dias ".($nDataInicial > $nDataFinal) ?   floor(($nDataInicial - $nDataFinal)/86400) : floor(($nDataFinal - $nDataInicial)/86400);

        ?>
        <div class="mes_caixa">
          <?php
          $nome_mes = ucfirst(strftime("%B", mktime(0, 0, 0, $mês, 1, 2006)));
          echo "<div class='mês'>$nome_mes</div>";
          ?>
          <div class="top">
            <?php
            $a = 0;
            $total_dias = date("t", mktime(0, 0, 0, $mês, 1, $ano));
            for($i = 0; $i <= 6; $i++) {
              echo "<span>".ucfirst(strftime("%a", mktime(0, 0, 0, 5, $i, 2006)))."</span>\n";
            } //for($i = 1; $i <= 7; $i++) {
            ?>
          </div><!-- class=top -->
          <?php
          $k = 1;
          $dias_letivos=0;

          echo "<div class='dias_caixa'>";
          for ($i = 1; $i <= 6; $i++) {
            echo "<div class='dias'>";
            for ($j = 0; $j < 7; $j++) {
              $dias = date("w", mktime(0, 0, 0, $mês, $k, $ano));
              if($dias == $j and $k <= $total_dias) {
                if( ($k == $ev_dia_inicial && $mês == $ev_mes_inicial && $ano == $ev_ano_inicial) OR
                  ($k == $ev_dia_final && $mês == $ev_mes_final && $ano == $ev_ano_final) ) 
                {
                  if ($cat_id=="001"){
                    echo "<span class=\"ini_fim\">".     sprintf("%02d", $k)."</span>\n ";
                  } elseif ($cat_id=="002"){
                    echo "<span class=\"pedagogica\">". sprintf("%02d", $k)."</span>\n ";
                  } elseif ($cat_id=="003"){
                    echo "<span class=\"feriados\">".     sprintf("%02d", $k)."</span>\n ";
                  } elseif ($cat_id=="004"){
                    echo "<span class=\"recesso\">".     sprintf("%02d", $k)."</span>\n ";
                  } else {
                    echo "<span class=\"ferias\">".     sprintf("%02d", $k)."</span>\n ";
                  } //else de if($k == $dia) {  
                } //if( ($k == $ev_dia_inicial && $mês == $ev_mes_inicial && $ano == $ev_ano_inicial) OR ($k == $ev_dia_final && $mês == $ev_mes_final && $ano == $ev_ano_final) ) 
                else {
                  if(($j == 0) OR ($j == 6)){
                    echo "<span class=\"final_semana\">". sprintf("%02d", $k)."</span>\n ";
                  } else {
                    $dias_letivos++;
                    echo "<span class=\"linhas\">".         sprintf("%02d", $k)."</span>\n ";
                  } //else de if($k == $dia) {  
                } // else de if( ($k == $ev_dia_inicial && $mês == $ev_mes_inicial && $ano == $ev_ano_inicial) OR ($k == $ev_dia_final && $mês == $ev_mes_final && $ano == $ev_ano_final) ) 
                $k++;
              } else {
              echo "<span class=\"linhas\">".str_repeat("&nbsp;", 4)."</span> \n";
//            } //for ($i=0;$i<$linha;$i++){
            } //if($dias == $j and $k <= $total_dias) {
          } //for ($j = 0; $j < 7; $j++) {
        echo "</div><!-- class=dias -->";    
        } //for ($i = 1; $i <= 6; $i++) {
        ?>
        </div>

com o código acima ele marca apenas o último evento do mês, quem quiser ver on aqui está: http://www.sisflex.com.br/projetos/anjo/di.../calendario.php

Desde já muito obrigada e Boas Festas a todos...

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi,

Caso a tabela tivesse o campo para o evento, como no exemplo:

id, dia, mês, evento, categoria

Eu usaria IFs

if (!empty($evento)) { 
        if ($categoria == ["infantil"]) { 
echo "<td bgcolor=\"#0000ff\">";
                                                  }
        if ($categoria == ["adulto"]) { 
echo "<td bgcolor=\"#ff0000\">";
                                                  }
}
     else {
echo "<td bgcolor=\"#cccccc\">";
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...