Lista de Tarefas - Gerenciador de Projeto Simples

Publicado por Rodrigo Urbinati Maia 26/02/2007

[ Hits: 15.510 ]

Download tarefas.php




Coloque as tarefas e marque cada uma como realizada conforme sua realização.

Mostra a porcentagem de conclusão do projeto e listagem de tarefas pendentes e realizadas.

Muito fácil de instalar, bastando configurar os dados de conexão com o banco de dados. As instruções estão no topo do script.

  



Esconder código-fonte

<?php
/**
*   Script para controlar tarefas a serem realizadas em um projeto.
*   Script desenvolvido por Rodrigo Urbinati Maia ([email protected])
*   
*   Como instalar :
*   - Crie um banco de dados no seu mysql e o nome desse banco de dados voce coloca na
*     variável $config['db'].
*   - Configure o host, usuário e senha do seu mysql nas variáveis $config['...'].
*/

#  configuraçoes
// Banco de dados
// coloque todos os dados para conexao com o mysql.
$config['host']    = "localhost";
$config['user']    = "root";
$config['pass']    = "1234";
$config['db']      = "trabalho";
// projeto
// nome do projeto e nome da tabela que será criada no mysql caso nao exista.
$config['projeto'] = "Nome do Projeto";
$config['tabela']  = "complemento"; 

// conectando com o banco de dados e escolhendo o banco de dados.
$base = mysql_connect($config['host'], $config['user'], $config['pass']) or die("Nao conseguiu conectar.");
$db   = mysql_select_db($config['db'], $base) or die("Erro ao selecionar o banco de dados.");

// inicializando variáveis
$existe_tabela = false;
$erro_         = false;

// verificando se a tabela existe
$tabelas = mysql_list_tables($config['db']) or die("Nao conseguiu lsitar as tabelas.");
$n_tabelas = count($tabelas);
if ($n_tabelas > 0){   
   while ($row = mysql_fetch_row($tabelas)) {
       if ($row[0] == $config['tabela']){
         $existe_tabela = true;
      }
   }
}

// se a tabela nao existir entao cria.
if ($existe_tabela == false){
   $sql_cria_tabela = "CREATE TABLE `".$config['tabela']."` (
                  `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
                  `nome` TEXT NOT NULL ,
                  `status` CHAR( 1 ) NOT NULL ,
                  `posicao` DOUBLE( 10, 5 ) NOT NULL ,
                  `data_hora` BIGINT( 20 ) NOT NULL
                  ) TYPE = MYISAM";
   $exe_cria_tabela = mysql_query($sql_cria_tabela, $base);
}

// rotinas
if (isset($_GET['ac'])){
   // adicionando tarefa
   if ($_GET['ac'] == "add"){
      // validando
      if (isset($_POST['tarefa'])){
         if (empty($_POST['tarefa'])){
            $erro_ = true;
         }
      } else {
         $erro_ = true;
      }
      if (isset($_POST['posicao'])){
         if (empty($_POST['posicao']) || !is_numeric($_POST['posicao'])){
            $erro_ = true;
         }
      } else {
         $erro_ = true;
      }
      
      // tudo ok
      if ($erro_ == false){
         $tarefa    = addslashes(htmlentities($_POST['tarefa']));
         $posicao   = addslashes(htmlentities($_POST['posicao']));
         $data_hora = time();
         
         $sql_add_tarefa = "INSERT INTO `".$config['tabela']."` (`nome` , `status` , `posicao` , `data_hora` )
                        VALUES (
                        '$tarefa', 'N', '$posicao', '$data_hora'
                        )";
         $exe_add_tarefa = mysql_query($sql_add_tarefa, $base) or die("Erro ao adiconar tarefa.");
      }
   }
   
   // marcando como realizada
   if ($_GET['ac'] == 'mm'){
      //validando
      if (isset($_GET['id'])){
         if (empty($_GET['id']) || !is_numeric($_GET['id'])){
            $erro_ = true;
         }
      } else {
         $erro_ = true;
      }
      
      // tudo ok
      if ($erro_ == false){
         $id = addslashes(htmlentities($_GET['id']));
         $sql_altera = "UPDATE ".$config['tabela']." SET status = 'S' WHERE id = '$id'";
         $exe_altera = mysql_query($sql_altera, $base) or die("Erro ao marcar uma tarefa como realizada.");
      }
   }
}

// pegando o total de tarefas cadastradas
$sql_total_tarefa = "SELECT COUNT(*) AS n_tarefas FROM ".$config['tabela'];
$exe_total_tarefa = mysql_query($sql_total_tarefa, $base);
$reg_total_tarefa = mysql_fetch_array($exe_total_tarefa, MYSQL_ASSOC);
// verificando o total de tarefas realizadas
$sql_tarefa_r = "SELECT COUNT(*) AS tarefas_r FROM ".$config['tabela']." WHERE status = 'S'";
$exe_tarefa_r = mysql_query($sql_tarefa_r, $base);
$reg_tarefa_r = mysql_fetch_array($exe_tarefa_r, MYSQL_ASSOC);


// calculando a porcentagem do projeto que já está realizado
if ($reg_tarefa_r['tarefas_r'] == 0){
   $porcentagem_projeto = 0;
} else {
   $porcentagem_projeto = number_format((($reg_tarefa_r['tarefas_r'] * 100) / $reg_total_tarefa['n_tarefas']), 2, ",","");
}

?>
<!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>Projeto <?=$config['projeto']?></title>
</head>

<body>
<h1>Projeto <?=$config['projeto']?> (<?=$porcentagem_projeto?> %)</h1>
<hr />
<?
// mostrando erro do formulário caso exista.
if (isset($_POST['tarefa']) && $erro_ == true){
   echo "Erro em adicionar tarefa. Preencha todo o formulário corretamente.";
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>?ac=add" method="post">
   Tarefa <input type="text" name="tarefa" size="50" /> Posição <input type="text" name="posicao" size="5" maxlength="10" /> 
          <input type="submit" value="Adicionar Tarefa" />
</form>
<h3>Tarefas Pendentes</h3>
<ul>
   <?php
   // listando as tarefas pendentes
   $sql_lista_tarefa = "SELECT * FROM ".$config['tabela']." WHERE status = 'N' ORDER BY posicao ASC";
   $exe_lista_tarefa = mysql_query($sql_lista_tarefa, $base) or die("Erro ao listar tarefas pendentes.");
   $num_lista_tarefa = mysql_num_rows($exe_lista_tarefa);
   if ($num_lista_tarefa > 0){
      while ($reg_lista_tarefa = mysql_fetch_array($exe_lista_tarefa, MYSQL_ASSOC)){
      ?>
         <li><?=stripslashes($reg_lista_tarefa['nome'])?> <a href="<?=$_SERVER['PHP_SELF']?>?ac=mm&id=<?=$reg_lista_tarefa['id']?>">[Realizado]</a></li>
      <?php
      }
   }
   ?>
</ul>
<h3>Tarefas Realizadas</h3>
<ul>
   <?php
   // listando as tarefas já realizadas
   $sql_lista_re = "SELECT * FROM ".$config['tabela']." WHERE status = 'S' ORDER BY posicao ASC";
   $exe_lista_re = mysql_query($sql_lista_re, $base) or die("Erro ao listar tarefas pendentes.");
   $num_lista_re = mysql_num_rows($exe_lista_re);
   if ($num_lista_re > 0){
      while ($reg_lista_re = mysql_fetch_array($exe_lista_re, MYSQL_ASSOC)){
      ?>
         <li><?=stripslashes($reg_lista_re['nome'])?></li>
      <?php
      }
   }
   ?>
</ul>
</body>
</html>

Scripts recomendados

Criando um menu de paginação de resultados com algumas funcionalidades

format_calc()

Página inicial com dados e agenda com AJAX e MySQL

Mostrar Status do ICQ na Web

Gerador de Calendário


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário