Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gasparzinho

Área administrativa do Calendário (PHP Mysql)

Recommended Posts

Salve Salve galera Imasters,

 

Seguinte: vou publicar a área administrativa do calendário que eu desenvolvi:

 

Veja neste tópico. Calendário de Eventos PHP MySQL

 

Veja a agenda funcionando: CLIQUE AQUI PARA VER A AGENDA EM AÇÃO

 

Primeiramente vamos criar a página com formulário para add eventos:

 

admin.php

<?php
//criar a conexão com o banco
include "sql.php";

if(isset($_POST['done'])){
	
		$evento = $_POST['evento'];
		$dtevento = $_POST['dia']."-".$_POST['mes']."-".$_POST['ano'];
		$autor = $_POST['autor'];
	$hora = $_POST['hora'];
	$local = $_POST['local'];
		$conteudo = $_POST['conteudo'];

	
	if(empty($evento) || empty($dtevento) || empty($conteudo) || empty($local)){
		   $erro = "Opa, você deve preencher todos os campos";
	}else{		
		   $sql = mysql_query("INSERT INTO `agenda`(`evento`, `dtevento`, `autor`, `hora`, `local`, `conteudo`) VALUES ('$evento', '$dtevento', '$autor', '$hora', '$local', '$conteudo')") or die(mysql_error());
			if($sql){
					$erro = "Dados cadastrados com sucesso!";
			  } else{
					$erro = "Não foi possivel cadastrar os dados";
			  }
	}
}
?>
	 <style type="text/css">
		   .campo{
				 width:400px;
			}
	</style>
<form name="form1" action="admin.php" method="POST" style="padding-top:40px;">
	 <?php
		 if(isset($erro)){
				print '<div style="width:80%; background:#ff6600; color:#fff; padding: 5px 0px 5px 0px; text-align:center; margin: 0 auto;">'.$erro.'</div>';
		  }
	?>
<table border="0" width="80%"  bgcolor="#f0f0f0" style="border:1px solid #ccc; margin:0 auto; position:relative;">
	<thead>
	   <tr>
		   <th colspan="2">.:: Inserir Evento no Calendário ::.</th>
	   </tr>
	</thead>
	<tbody>
	   <tr>
		  <td width="20%">Evento:</td>
		  <td width="auto"><input type="text" name="evento" value="" class="campo" id="evento" /></td>
	  </tr>
	  <tr>
		  <td>Autor:</td>
		  <td><input name="autor" type="text" class="campo" id="autor" /></td>
	  </tr>
	  <tr>
		  <td>Data Evento:</td>
		  <td><select name="dia">
					   <option>1</option>
					   <option>2</option>
					   <option>3</option>
					   <option>4</option>
					   <option>5</option>
					   <option>6</option>
					   <option>7</option>
					   <option>8</option>
					   <option>9</option>
					   <option>10</option>
					   <option>11</option>
					   <option>12</option>
					   <option>13</option>
					   <option>14</option>
					   <option>15</option>
					   <option>16</option>
					   <option>17</option>
					   <option>18</option>
					   <option>19</option>
					   <option>20</option>
					   <option>21</option>
					   <option>22</option>
					   <option>23</option>
					   <option>24</option>
					   <option>25</option>
					   <option>26</option>
					   <option>27</option>
					   <option>28</option>
					   <option>29</option>
					   <option>30</option>
					   <option>31</option>
				 </select>
				 <select name="mes" >
				<option>1</option>
					  <option>2</option>
					  <option>3</option>
					  <option>4</option>
					  <option>5</option>
					  <option>6</option>
					  <option>7</option>
					  <option>8</option>
					  <option>9</option>
					  <option>10</option>
					  <option>11</option>
					  <option>12</option>
			   </select>
			   <select name="ano" >
				<option>2008</option>
					  <option>2009</option>
					  <option>2010</option>
					  <option>2011</option>
					  <option>2012</option>
					  <option>2013</option> 
			  </select>  </td>
	 </tr>
 
	 <tr>
		  <td>Hora:</td>
		  <td><input name="hora" type="text" class="campo" id="hora">(hh:mm)</td>
	</tr>
	<tr>
		  <td>Local:</td>
		  <td><input name="local" type="text" class="campo" id="local"></td>
	 </tr>
	 <tr>
		   <td valign="top">Descricão:</td>
		   <td><textarea name="conteudo" rows="8" class="campo" >
		   </textarea></td>
	</tr>
	<tr>
			<td></td>
			<td><input type="submit" value="Cadastrar Evento" /><input type="hidden" name="done" value="" /></td>
	</tr>
  </tbody>
</table>
</form>

Agora vamos criar a página que vai listar os eventos:

 

listagenda.php

<style type="text/css">
.cinza{
background:#f0f0f0;
height:20px;
}
.claro{
background:#f9f9f9;
height:20px;
}
.fonte{
color:#FFFFFF;
font-weight:bold;
height:25px;
}
</style>
	<div style="margin:10px auto; width:90%; padding:5px 0px 5px 0px;">
<?php
include "sql.php";
		
$max = 10;

$pagina = $_GET['pagina'];
if(!$pagina){
	$inicio = 0;
	$pagina = 1;
}else{
$inicio = ($pagina - 1) * $max;
}

$sqln = mysql_query("SELECT * FROM agenda ORDER BY id DESC");
$num = mysql_num_rows($sqln);

if($num == 0){
print "Até o momento não temos nenhum evento agendado";
}else{

$total_paginas = ceil($num/$max);

print  "Temos ".$num."  eventos cadastrados no site.<br>";
print "Lisando a página ".$pagina." de ".$total_paginas."!";

$sqln = mysql_query("SELECT * FROM agenda ORDER BY id DESC LIMIT ".$inicio.",".$max."");
$num = mysql_num_rows($sqln);
}
?>
	 </div>
<fieldset style="width:90%; margin:0 auto;">
<legend>Eventos Agendados</legend>

  <?php
  print '<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
	<td width="10%" align="center" bgcolor="#202020" class="fonte">.:: Nº ::.</td>
	<td align="center" bgcolor="#202020" class="fonte">.:: Nome do Eventos ::.</td>
	<td colspan="2" align="center" bgcolor="#202020" class="fonte" width="15%">.:: Ações ::.</td>
  </tr>';
  
  for($i = 0; $i < $num; $i++){
  $evento = @mysql_result($sqln, $i, "evento");
  $id = @mysql_result($sqln, $i, "id"); 
  $n = $i + 1;
  $d = $i % 2;
  if($d == 0){$cor = "cinza";}else{$cor = "claro"; }
  print '<tr class='.$cor.'>';
  print '<td align="center">'.$n.'</td>';
  print '<td>'.$evento.'</td>';
  print '<td align="center"><a href="atualagenda.php?id='.$id.'">Altualizar</a></td>';
  print '<td align="center"><a href="deletagenda.php?id='.$id.'">Excluir</a></td>';
  print '</tr>';
  }
  
  print '</table>';
 print '<div style="text-align:center; margin-top: 30px;">';
if($pagina != 1){
print '<a href="listagenda.php?'. $_SERVER['QUERY_STRING']. "&pagina=".($pagina - 1).'"><< anterior</a>';
}else{
	print '<span style="color: #ccc;"><< anterior </span>';
}
if ($total_paginas > 1){ 
	for ($i=1; $i <= $total_paginas; $i++){ 
	   if ($pagina == $i){		
		  echo "<span class='al'> [".$pagina."] </span>"; 
	   }else{		   
		  echo "<a href=\"listagenda.php?" . $_SERVER['QUERY_STRING']."&pagina=".$i."\"> ".$i." </a> "; 
		  }
	} 
} 
if($pagina < $total_paginas){
print '<a href="listagenda.php?'. $_SERVER['QUERY_STRING']. "&pagina=".($pagina + 1).'">próxima >></a>';
}else{
	print '<span style="color: #ccc;"> próxima >></span>';
}
print '</div>';
 
  ?>


</fieldset>

Agora temos que criar uma pagina para atualizar os eventos:

 

atualagenda.php

<?php

include "sql.php";
if(isset($_POST['done'])){

	$id = $_POST['id']; 
	$evento = $_POST['evento'];
	$dtevento = $_POST['dtevento'];
	$autor = $_POST['autor'];
	$hora = $_POST['hora'];	 
	$local = $_POST['local'];   
	$conteudo = $_POST['desc'];

	
	if(empty($evento) || empty($dtevento) || empty($conteudo) || empty($local)){
		$erro = "Opa, você deve preencher todos os campos";
	}else{
		
	   $sql = mysql_query("UPDATE agenda SET evento='$evento', dtevento='$dtevento', conteudo='$conteudo', hora='$hora', local='$local', autor='$autor' WHERE id='$id'")or die(mysql_error());
	   $linha = mysql_affected_rows();
			if($linha == 1){
				$erro = "Dados alterados com sucesso!";
			  } else{
				  $erro = "Não foi possivel alterar os dados";
			  }
	}
}
$id = $_GET['id'];
$sql = mysql_query("SELECT * FROM agenda WHERE id = '$id'");
$evento = @mysql_result($sql, 0, "evento");
$dtevento = @mysql_result($sql, 0, "dtevento");
$hora = @mysql_result($sql, 0, "hora");
$autor = @mysql_result($sql, 0, "autor");
$local = @mysql_result($sql, 0, "local");
$desc = @mysql_result($sql, 0, "conteudo");
$id = @mysql_result($sql, 0, "id");

?>

<style type="text/css">
.campo{
width:400px;
}
</style>
<form name="form1" action="atualagenda.php" method="POST" style="padding-top:40px;">
<?php
if(isset($erro)){
	print '<div style="width:80%; background:#ff6600; color:#fff; padding: 5px 0px 5px 0px; text-align:center; margin: 0 auto;">'.$erro.'</div>';
}
?>
<table border="0" width="80%"  bgcolor="#f0f0f0" style="border:1px solid #ccc; margin:0 auto; position:relative;">
<thead>
<tr>
<th colspan="2">.:: Atualizar Agenda ::.</th>
</tr>
</thead>
<tbody>
<tr>
<td width="14%">Evento:</td>
<td width="86%"><input type="text" name="evento" value="<?php echo $evento; ?>" class="campo" /></td>
</tr>
<tr>
<td>Data:</td>
<td><input type="text" name="dtevento" value="<?php echo $dtevento; ?>"  class="campo"/>
dd-mm-aaaa</td>
</tr>
<tr>
<td>Hora:</td>
<td>
   <input type="text" name="hora" value="<?php echo $hora; ?>"  class="campo"/>
   hh:mm</td>
</tr>
<tr>
  <td>Local:</td>
  <td><input name="local" type="text" class="campo" id="local" value="<?php echo $local; ?>"></td>
</tr>
<tr>
<td>Autor:</td>
<td><input name="autor" type="text" class="campo" id="autor" value="<?php echo $autor; ?>"></td>
</tr>
<tr>
<td valign="top">Descrição:</td>
<td><textarea name="desc" rows="8" cols="20" class="campo"><?php echo $desc; ?></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Atualizar Agenda" />
  <input type="button" name="button" id="button" onclick="java script:location.href='listagenda.php';" value="Cancelar" />
  <input type="hidden" name="done" value="" /><input name="id" type="hidden" value="<?php echo $id; ?>" /></td>
</tr>
</tbody>
</table>
</form>

Agora vamos criar a página para excluir o evento:

 

deletagenda.php

<?php
include "sql.php";
$id = $_GET['id'];
$sql = mysql_query("SELECT * FROM agenda WHERE id = '$id'");
$linha = mysql_num_rows($sql);

$sql = mysql_query("DELETE FROM agenda WHERE id = '$id'");


if($sql){
	header("location:listagenda.php");
}else{
	print "Não foi possivel deletar o redado. Tente mais tarde!";
}


?>

Pronto!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Espero que a galera faça bom proveito deste calendário!!!

 

 

Veja a agenda funcionando: CLIQUE AQUI PARA VER A AGENDA EM AÇÃO

 

 

Todos os arquivos para DOWNLOAD

 

Qualquer dúvida: gaspar.teixeira@gmail.com

 

 

 

Abraço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo, meus parabéns pelo grande artigo e Muito obrigado pelas dicas.

 

Pessoal é muito facil customizar esse calendário. Se pra mim que sou iniciante consegui fazer algumas melhorias, pra galera que manja então nem se fala o que é possivel fazer com ele.

 

Procurei deixar em negrito o local onde realizei as modificações.

 

Segue o código modificado da página agenda.php

 

<?php

##########################################
#																				  #
#		Calendário de Eventos PHP 5 e MySQL						#
#		Documento: Agenda de Eventos Dinâmica				   #
#		Autor: Gaspar Teixeira										   #
#		E-mail: gaspar.teixeira@gmail.com						  #
#		Data: 14/11/2008												#
#		Direito de Uso: Livre											 #
#		Declaração: O autor não se responsabiliza				  #
#		pelo utilização deste calendário!								 #
#																					  #
##############################################

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Agenda de Eventos by Gaspar</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>

<body>

<?php
include "sql.php";//conexão com o banco de dados

@mysql_select_db($db);//selecione o banco de dados

if(empty($_GET['data'])){//navegaçao entre os meses
	$dia = date('d');
	$month = date('m');
	$ano = date('Y');
}else{
	$data = explode('/',$_GET['data']);//nova data
	$dia = $data[0];
	$month = $data[1];
	$ano = $data[2];
}

if($month==1){//mês anterior se janeiro mudar valor
	$mes_ant = 12;
	$ano_ant = $ano - 1;
}else{
	$mes_ant = $month - 1;
	$ano_ant = $ano;
}

if($month==12){//proximo mês se dezembro tem que mudar
	$mes_prox = 1;
	$ano_prox = $ano + 1;
}else{
	$mes_prox = $month + 1;
	$ano_prox = $ano;
}

$hoje = date('j');//função importante pego o dia corrente
switch($month.$n){/*notem duas variaveis para o switch para identificar dia e limitar numero de dias*/
	case 1: $mes = "JANEIRO";
			$n = 31;
	break;
	case 2: $mes = "FEVEREIRO";// todo ano bixesto fev tem 29 dias
			$bi = $ano % 4;//anos multiplos de 4 são bixestos
			if($bi == 0){
				$n = 29;
			}else{
				$n = 28;
			}
	break;
	case 3: $mes = "MARÇO";
			$n = 31;
	break;
	case 4: $mes = "ABRIL";
			$n = 30;
	break;
	case 5: $mes = "MAIO";
			$n = 31;
	break;
	case 6: $mes = "JUNHO";
			$n = 30;
	break;
	case 7: $mes = "JULHO";
			$n = 31;
	break;
	case 8: $mes = "AGOSTO";
			$n = 31;
	break;
	case 9: $mes = "SETEMBRO";
			$n = 30;
	break;
	case 10: $mes = "OUTUBRO";
			$n = 31;
	break;
	case 11: $mes = "NOVEMBRO";
			$n = 30;
	break;
	case 12: $mes = "DEZEMBRO";
			$n = 31;
	break;
}

$pdianu = mktime(0,0,0,$month,1,$ano);//primeiros dias do mes
$dialet = date('D', $pdianu);//escolhe pelo dia da semana
switch($dialet){//verifica que dia cai
	case "Sun": $branco = 0; break;
	case "Mon": $branco = 1; break;
	case "Tue": $branco = 2; break;
	case "Wed": $branco = 3; break;
	case "Thu": $branco = 4; break;
	case "Fri": $branco = 5; break;
	case "Sat": $branco = 6; break;
}			

	print '<table class="tabela" >';//construção do calendario
	print '<tr>';
	print '<td class="mes"><a href="?data='.$dia.'/'.$mes_ant.'/'.$ano_ant.'" title="Mês anterior">  « </a></td>';/*mês anterior*/
	print '<td class="mes" colspan="5">'.$mes.'/'.$ano.'</td>';/*mes atual e ano*/
	print '<td class="mes"><a href="?data='.$dia.'/'.$mes_prox.'/'.$ano_prox.'" title="Próximo mês">  » </a></td>';/*Proximo mês*/
	print '</tr><tr>';
	print '<td class="sem">D</td>';//printar os dias da semana
	print '<td class="sem">S</td>';
	print '<td class="sem">T</td>';
	print '<td class="sem">Q</td>';
	print '<td class="sem">Q</td>';
	print '<td class="sem">S</td>';
	print '<td class="sem">S</td>';
	print '</tr><tr>';
	$dt = 1;
	if($branco > 0){
		for($x = 0; $x < $branco; $x++){
			 print '<td> </td>';/*preenche os espaços em branco*/
			$dt++;
		}
	}
	
	for($i = 1; $i <= $n; $i++ ){/*agora vamos no banco de dados verificar os evendos*/
			$dtevento = $i."-".$month."-".$ano;
		$sqlag = mysql_query("SELECT * FROM agenda WHERE dtevento = '$dtevento'") or die(mysql_error());
				$num = mysql_num_rows($sqlag);/*quantos eventos tem para o mes*/
			   	//$idev = @mysql_result($sqlag, 0, "dtevento");
						   
				if($num > 0){/*prevalece qualquer dia especial do calendario, por isso está em primeiro*/
					  print '<td class="evt">'.$i.'<br />';
					  [b]for($e = 0; $e < $num; $e++){/*caso no mesmo dia tenha mais eventos continua imprimindo */
						  $eve = @mysql_result($sqlag, $e, "evento"); 
						  $ide = @mysql_result($sqlag, $e,"id");
					  //print '<a href="?d='.$idev.'&data='.$dia.'/'.$month.'/'.$ano.'" title="'.$eve.'"><br>'.$eve.'<br></a>';
					  print '<a href="?id='.$ide.'" title="'.$eve.'"><br>'.$eve.'<br></a>';				  
		   			$qt++;/*quantos eventos tem no mes*/	
		   			  }[/b]
		   		 print '</td>';	   
				   $dt++;/*incrementa os dias da semana*/
				 
		}elseif($i == $hoje){/*imprime os dia corrente*/
			print '<td class="hj">';
			print $i;
			print '</td>';
			$dt++;
		
		}elseif($dt == 1){/*imprime os domingos*/
			print '<td class="dom">';
			print $i;
			print '</td>';
			$dt++;
		}else{/*imprime os dias normais*/
					print '<td class="td">';
			print $i;
			print '</td>';
			$dt++;
				}
		if($dt > 7){/*faz a quebra no sabado*/
		print '</tr><tr>';
		$dt = 1;
		}
	}
	print '</tr>';
	print '</table>';
		if($qt > 0){/*se tiver evento no mês imprime quantos tem */
		  print "Temos ".$qt." evento(s) em ".strtolower($mes)."<br>";/*mudar para caixa baixa as letras do mes*/
		}
if(isset($_GET['id'])){/*link dos dias de eventos*/
	[b]$idev = $_GET['id'];
	$sqlev = mysql_query("SELECT * FROM agenda WHERE id = '$idev' ORDER BY hora ASC") or die(mysql_error());
	$numev = mysql_num_rows($sqlev);
	//for($j = 0; $j < $numev; $j++){/*caso no mesmo dia tenha mais eventos continua imprimindo */
	$eve = @mysql_result($sqlev, 0, "evento");/*MONSTRA APENAS O REGISTRO QUE ATIVADO PELO LINK*/
	$dev = @mysql_result($sqlev, 0, "dtevento");
	$dsev = @mysql_result($sqlev, 0, "conteudo");
	$auev = @mysql_result($sqlev, 0, "autor");
	$lev = @mysql_result($sqlev, 0, "local");
	$psev = @mysql_result($sqlev, 0, "data");
	$nowev = date('d/m/Y - H:i', strtotime($psev));/*transforma a data para data padrão brazil*/
	$hev = @mysql_result($sqlev, $j, "hora");
	print '<table width="300" cellspacing="0" cellpadding="0">';/*monta a tabela de eventos*/
	print '<tr><td class="show">'.$dev.' - '.$eve.'</td></tr>';
	print '<tr><td class="linha"><b>Hora: </b>'.$hev.'hs</td></tr>';
	print '<tr><td class="linha"><b>Local: </b>'.$lev.'</td></tr>';
	print '<tr><td class="linha"><b>Descrição: </b>'.nl2br($dsev).'</td></tr>';/*mantem o quebra da linha para dascriçao do evento*/
	print '<tr><td class="linha"><b>Postado: </b><small>'.$nowev.'hs por '.$auev.'</small></td></tr>';
	print '</table>';
	//}[/b]
}

?>

</body>
</html>

 

Abraços. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

WebCreckis

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia amigo

 

 

Posta ai a estrutura do banco de dados porfavor.

 

Amigão tem na primeira parte ... você vê aqui neste link:

 

http://forum.imasters.com.br/index.php?showtopic=315222

 

 

 

ABC

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta dando arro nesse script o erro é

 

Warning: include(config.php) [function.include]: failed to open stream: No such file or directory in /home/minjovem/public_html/novocalendario/agenda/admin.php on line 3

 

Warning: include(config.php) [function.include]: failed to open stream: No such file or directory in /home/minjovem/public_html/novocalendario/agenda/admin.php on line 3

 

Warning: include() [function.include]: Failed opening 'config.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/minjovem/public_html/novocalendario/agenda/admin.php on line 3

 

me ajuda por gentileza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,

 

Neste link você poderá acessar a agenda e ver como ela funciona. Agenda de Eventos http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Eu coloquei todos os arquivos Juntos agora. Além disso, vocês podem visualizar a agenda e editá-la na área administrativa.

 

Veja bem você deve configurar o arquivo sql.php e colocar os seus dados. Dados referente ao seu banco de dados.

Não esqueça de por todos os arquivos na mesma pasta.

 

Este erro significa que ele não encontrou o arquivo sql.php, que no script foi chamado pela função include.

 

Nessa página você já pode fazer download de todos os arquivos da agenda. Eu atualizei os arquivos no server. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

ABRAÇO!!

 

 

Gasparzinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gasparzinho,

muito bom esse sistema seu,axo que vou adaptar em um site que eu estou construindo,

agora to com uma duvida :

 

neoHaT postou esse ai que ele ta adptando http://www.pibemfigueira.com.br/agenda.php , eu não manjo muito em php,sera que pra fazer isso é dificil ??

to no basico ainda

 

 

abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se foi algum erro meu, mas eu percebi, que se tiver dois eventos no mesmo o contador diz que tem apenas 1.

 

Alguém percebeu isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kr é mto fera teu calendário (já até usei ele em um projeto)

 

A única coisa que percebi é quando eu cadastro dois eventos no mesmo dia ele não conta o evento

 

Mas show de bola kr flwz

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.