Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
lá vamos nós novamente, possuo este código
<?php
class calendario{
var $mes = 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'
);
function mes_anterior($dia,$mes,$ano){
if($mes == 1){
$man = 12;
$aan = $ano - 1;
} else {
$man = $mes - 1;
$aan = $ano;
}
$val = checkdate($man,$dia,$aan);
if($val == 0){
$dia = 1;
}
echo '<a href="../../?data='.sprintf("%02.0f",$dia).'/'.sprintf("%02.0f",$man).'/'.$aan.'">«</a>';
}
function mes_proximo($dia,$mes,$ano){
if($mes == 12){
$mpr = 1;
$apr = $ano + 1;
} else {
$mpr = $mes + 1;
$apr = $ano;
}
$val = checkdate($mpr,$dia,$apr);
if($val == 0){
$dia = 1;
}
echo '<a href="../../?data='.sprintf("%02.0f",$dia).'/'.sprintf("%02.0f",$mpr).'/'.$apr.'">»</a>';
}
function ano_anterior($dia,$mes,$ano){
$aan = $ano - 1;
echo '<a href="../../?data='.sprintf("%02.0f",$dia).'/'.sprintf("%02.0f",$mes).'/'.$aan.'">«</a>';
}
function ano_proximo($dia,$mes,$ano){
$apr = $ano + 1;
echo '<a href="../../?data='.sprintf("%02.0f",$dia).'/'.sprintf("%02.0f",$mes).'/'.$apr.'">»</a>';
}
function cria($data){
$arr = explode("/",$data);
$dia = $arr[0];
$mes = $arr[1];
$ano = $arr[2];
if(($dia == '') OR ($mes = '') OR ($ano = '')){
$data = date("d/m/Y");
$arr = explode("/",$data);
$dia = $arr[0];
$mes = $arr[1];
$ano = $arr[2];
}
$arr = explode("/",$data);
$dia = $arr[0];
$mes = $arr[1];
$ano = $arr[2];
$val = checkdate($mes,$dia,$ano); // Verifica se a data é válida
if($val == 1){
$ver = date('d/m/Y', mktime(0,0,0,$mes,$dia,$ano));
} else {
$ver = date('d/m/Y', mktime(0,0,0,date(m),date(d),date(Y)));
}
$arr = explode("/",$ver);
$dia = $arr[0];
$mes = $arr[1];
$ano = $arr[2];
$ult = date("d", mktime(0,0,0,$mes+1,0,$ano));
$dse = date("w", mktime(0,0,0,$mes,1,$ano));
$tot = $ult+$dse;
if($tot != 0){
$tot = $tot+7-($tot%7);
}
for($i=0;$i<$tot;$i++){
$dat = $i-$dse+1;
if(($i >= $dse) AND ($i < ($dse+$ult))){
$aux[$i] = '
<td ';
if(($dat == date(d)) AND ($mes == date(m)) AND ($ano == date(Y))){
$aux[$i] .= 'class="calendario_dias_hoje"';
} else {
$aux[$i] .= 'class="calendario_dias"';
}
if(($dat == date(d)) AND ($mes == date(m)) AND ($ano == date(Y))){
$aux[$i] .= 'class="calendario_links_hoje"';
} else {
$aux[$i] .= 'class="calendario_links"';
}
$aux[$i] .= '><a href="../../?pagina=agenda&data='.sprintf("%02.0f",$dat).'/'.$mes.'/'.$ano.'">'.$dat.'</a>
</td>
';
} else {
$aux[$i] = '
<td>
</td>
';
}
if(($i%7) == 0){
$aux[$i] = '<tr align="center">'.$aux[$i];
}
if(($i%7) == 6){
$aux[$i] .= '</tr>';
}
}
echo '
<table cellspacing="0" cellpadding="0" class="calendario_tabela">
<tr>
<td>
<table cellspacing="1" cellpadding="1">
<tr class="calendario_mes_ano">
<td>
';
$this->mes_anterior($dia,$mes,$ano);
echo '
</td>
<td colspan="5"><a href="../../?pagina=agenda-mes&mes='.$mes.'&ano='.$ano.'">'.$this->mes[$mes].'</a></td>
<td>
';
$this->mes_proximo($dia,$mes,$ano);
echo '
</td>
</tr>
<tr class="calendario_mes_ano">
<td>
';
$this->ano_anterior($dia,$mes,$ano);
echo '
</td>
<td colspan="5"><a href="../../?pagina=agenda-ano&ano='.$ano.'">'.$ano.'</a></td>
<td>
';
$this->ano_proximo($dia,$mes,$ano);
echo '
</td>
</tr>
<tr class="calendario_semana">
<td WIDTH="30">D</td>
<td WIDTH="30">S</td>
<td WIDTH="30">T</td>
<td WIDTH="30">Q</td>
<td WIDTH="30">Q</td>
<td WIDTH="30">S</td>
<td WIDTH="30">S</td>
</tr>
';
echo implode(' ',$aux);
if(count($aux) == 35){
echo '
<tr>
<td colspan="7"> </td>
</tr>
';
};
echo '
<tr>
<td class="calendario_mes_ano" colspan="7" align="center">[ <a href="../../?pagina=agenda&data='.date(d).'/'.date(m).'/'.date(Y).'">Hoje</a> ]</td>
</tr>
</table>
</td>
</tr>
</table>
';
}
}
$teste = new calendario;
$teste->cria($_GET["data"]);
?>
Este código gera um calendario neste formato:
« DEZEMBRO »
« 2010 »
D S T Q Q S S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
[ Hoje ]
Ele exibe um link em cada data, mes e ano, gostaria de inclementa-lo da seguinte forma, tenho no bando de dados uma tabela chamada agenda com data de agendamentos e titulo, gostaria que onde existir agendamentos mostrasse um link (atualmento todos mostram link) e onde não existir não mostre o link, já tentei de tudo mas não obtive sucesso, alguem poderia me dar um help ai, vlw.
Carregando comentários...