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.
Pergunta
Andreia Regina
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(" ", 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
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.