예제 #1
0
function MostreCalendario($mes, $link)
{
    $numero_dias = GetNumeroDias($mes);
    // retorna o número de dias que tem o mês desejado
    $nome_mes = GetNomeMes($mes);
    $diacorrente = 0;
    $diasemana = jddayofweek(cal_to_jd(CAL_GREGORIAN, $mes, "01", date('Y')), 0);
    // função que descobre o dia da semana
    echo "<table class='table-bordered'>";
    echo "<tr>";
    echo "<td colspan = 5><h3 style='margin-left: 10%;'>" . $nome_mes . "</h3></td>";
    echo "</tr>";
    echo "<tr>";
    MostreSemanas();
    // função que mostra as semanas
    echo "</tr>";
    for ($linha = 0; $linha < 6; $linha++) {
        echo "<tr>";
        for ($coluna = 0; $coluna < 7; $coluna++) {
            echo "<td width = 30 height = 10 ";
            if ($diacorrente == date('d') - 1 && date('m') == $mes) {
                echo " style='background:#cddcd5;' ";
            } else {
                if ($diacorrente + 1 <= $numero_dias) {
                    if ($coluna < $diasemana && $linha == 0) {
                        echo " id = 'dia_branco' ";
                    } else {
                        echo " id = 'dia_comum' ";
                    }
                } else {
                    echo " ";
                }
            }
            // pega visitas
            $data = date('y/m/d');
            $partes = explode('/', $data);
            $ano = "20" . $partes[0];
            $dia = $diacorrente + 1;
            $data = $ano . "/" . $mes . "/" . $dia;
            $sql = "select data from ejbsm_visit WHERE date = '{$data}' AND status = 'Confirmada'";
            $result = $link->query($sql) or die(mysqli_error($link));
            while ($row = mysqli_fetch_object($result)) {
                echo "style='background: #ccff00;'";
            }
            echo " align = 'center'>";
            /* TRECHO IMPORTANTE: A PARTIR DESTE TRECHO É MOSTRADO UM DIA DO CALENDÁRIO (MUITA ATENÇÃO NA HORA DA MANUTENÇÃO) */
            if ($diacorrente + 1 <= $numero_dias) {
                if ($coluna < $diasemana && $linha == 0) {
                    echo " ";
                } else {
                    // echo "<input type = 'button' id = 'dia_comum' name = 'dia".($diacorrente+1)."'  value = '".++$diacorrente."' onclick = "acao(this.value)">";
                    echo "<font size='2'><a href = " . $_SERVER["PHP_SELF"] . "?data={$data}>" . ++$diacorrente . "</a></font>";
                }
            } else {
                break;
            }
            /* FIM DO TRECHO MUITO IMPORTANTE */
            echo "</td>";
        }
        echo "</tr>";
    }
    echo "</table>";
}
예제 #2
0
 function MostreCalendario($mes, $result, $ano_letivo, $link)
 {
     function MostreSemanas()
     {
         $semanas = "DSTQQSS";
         $corpo = '';
         for ($i = 0; $i < 7; $i++) {
             $corpo .= "<td>" . $semanas[$i] . "</td>";
         }
         return $corpo;
     }
     function GetNumeroDias($mes, $ano_letivo)
     {
         $numero_dias = array('01' => 31, '02' => 28, '03' => 31, '04' => 30, '05' => 31, '06' => 30, '07' => 31, '08' => 31, '09' => 30, '10' => 31, '11' => 30, '12' => 31);
         $ano = isset($_GET['ano']) && $_GET['ano'] != '' ? $_GET['ano'] : $ano_letivo;
         if ($ano % 4 == 0 and $ano % 100 != 0 or $ano % 400 == 0) {
             $numero_dias['02'] = 29;
             // altera o numero de dias de fevereiro se o ano for bissexto
         }
         return $numero_dias[$mes];
     }
     function GetNomeMes($mes)
     {
         $meses = array('01' => "Janeiro", '02' => "Fevereiro", '03' => "Março", '04' => "Abril", '05' => "Maio", '06' => "Junho", '07' => "Julho", '08' => "Agosto", '09' => "Setembro", '10' => "Outubro", '11' => "Novembro", '12' => "Dezembro");
         if ($mes >= 01 && $mes <= 12) {
             return $meses[$mes];
         }
         return "Mês deconhecido";
     }
     $ano = isset($_GET['ano']) && $_GET['ano'] != '' ? $_GET['ano'] : $ano_letivo;
     $numero_dias = GetNumeroDias($mes, $ano_letivo);
     // retorna o número de dias que tem o mês desejado
     $nome_mes = GetNomeMes($mes);
     $diacorrente = 0;
     $diasemana = jddayofweek(cal_to_jd(CAL_GREGORIAN, $mes, "01", $ano_letivo), 0);
     // função que descobre o dia da semana
     //calculo do mes anterior
     $dia_atual = '';
     $mes_anterior = $mes - 1;
     $ano_anterior = $ano;
     if ($mes_anterior == 0) {
         $ano_anterior--;
         $mes_anterior = 12;
     }
     if ($dia_atual == 0) {
         $dia_atual_mes = 1;
     } else {
         $dia_atual_mes = $dia_atual;
     }
     //calculo do mes seguinte
     $mes_seguinte = $mes + 1;
     $ano_siguiente = $ano;
     if ($mes_seguinte == 13) {
         $ano_siguiente++;
         $mes_seguinte = 1;
     }
     $link_mes_anterior = '<a style=color:white;text-decoration:none href="' . $link . '&ano=' . $ano . '&mes=' . str_pad((int) $mes_anterior, 2, "0", STR_PAD_LEFT) . '&dia=' . $dia_atual_mes . '">&lt;&lt;</a>';
     $link_mes_seguinte = '<a style=color:white;text-decoration:none href="' . $link . '&ano=' . $ano . '&mes=' . str_pad((int) $mes_seguinte, 2, "0", STR_PAD_LEFT) . '&dia=' . $dia_atual_mes . '">&gt;&gt;</a>';
     $corpo = '';
     $corpo .= "<table id='calendario'>";
     $corpo .= "<tr><th>" . $link_mes_anterior . "</th>";
     $corpo .= "<th colspan = 5>" . $nome_mes . " " . $ano . "</th>";
     $corpo .= "<th>" . $link_mes_seguinte . "</th></tr>";
     $corpo .= "<tr>";
     $corpo .= MostreSemanas();
     // função que mostra as semanas aqui
     $corpo .= "</tr>";
     for ($linha = 0; $linha < 6; $linha++) {
         $corpo .= "<tr>";
         for ($coluna = 0; $coluna < 7; $coluna++) {
             $flag = 0;
             if ($diacorrente + 1 <= $numero_dias) {
                 $dataAula = $ano . '-' . $mes . '-' . str_pad((int) ($diacorrente + 1), 2, "0", STR_PAD_LEFT);
                 foreach ($result as $row) {
                     if ($row['data_aula'] == $dataAula) {
                         $flag = 1;
                         break;
                     } else {
                         $flag = 0;
                     }
                 }
             }
             if ($diacorrente == date('d') - 1 && date('m') == $mes) {
                 $id = 'id = "dia_atual"';
                 $classe = $flag == 1 ? ' class="conteudo"' : '';
             } else {
                 if ($diacorrente + 1 <= $numero_dias) {
                     if ($coluna < $diasemana && $linha == 0) {
                         $classe = $flag == 1 ? ' class="conteudo"' : ' class="dia_branco"';
                     } else {
                         $classe = $flag == 1 ? ' class="conteudo"' : ' class="dia_comum"';
                     }
                 } else {
                     $corpo .= " ";
                     $classe = '';
                 }
                 $id = '';
             }
             if ($diacorrente + 1 <= $numero_dias) {
                 if ($coluna < $diasemana && $linha == 0) {
                     $campo = " ";
                 } else {
                     $campo = ++$diacorrente;
                 }
             } else {
                 break;
             }
             $corpo .= $diacorrente != 0 ? "<td " . $id . $classe . ">" . $campo . "</td>" : "<td></td>";
             //                        if( ($diacorrente == ( date('d') - 1) && date('m') == $mes) ){
             //                            $corpo .= " id = 'dia_atual' ";
             //                            $corpo .= $flag == 1 ? ' class="conteudo"' : '';
             //                        } else {
             //                            if(($diacorrente + 1) <= $numero_dias )
             //                            {
             //                                if( $coluna < $diasemana && $linha == 0){
             //                                        $corpo .= $flag == 1 ? ' class="conteudo"' : ' class="dia_branco"';
             //                                } else {
             //                                        $corpo .= $flag == 1 ? ' class="conteudo"' : ' class="dia_comum"';
             //                                }
             //                            } else {
             //                                $corpo .= " ";
             //                            }
             //                        }
             //                        $corpo .= ">";
             //
             //                        /* TRECHO IMPORTANTE: A PARTIR DESTE TRECHO É MOSTRADO UM DIA DO CALENDÁRIO (MUITA ATENÇÃO NA HORA DA MANUTENÇÃO) */
             //                        if( $diacorrente + 1 <= $numero_dias ){
             //                            if( $coluna < $diasemana && $linha == 0){
             //                                    $corpo .= " ";
             //                            } else {
             //                                $corpo .= ++$diacorrente;
             //                            }
             //                        } else {
             //                            break;
             //                        }
             //                        $corpo .= "</td>";
         }
         $corpo .= "</tr>";
     }
     $corpo .= "</table>";
     return $corpo;
 }