Open Source Web Development Tutorials - Dev Shed
プロジェクト管理アプリケーションのタスクを追加する
(2008/12/11公開)
プロジェクト管理アプリケーションのタスクを追加する
これまでの連載で、プロジェクトの追加、編集、閲覧を解説しました。これらは、プロジェクト管理アプリケーションに欠かすことのできない機能です。さて、これからは、アプリケーションの「オプション」機能を取り上げます。例えばプロジェクトにプロジェクトファイルやタスクを追加する機能ですが、いずれもなくてはならない機能ではありません。プロジェクトに要員を追加する機能も取り上げる予定です。連載全7回の4回目である今回は、まず、プロジェクトのタスクを追加する方法、次に、タスクを編集する方法を学習していきます。
ここで言う「タスク」とは、プロジェクト管理者が特定の日付または時間を設定して、それまでに完了しようとするアクションを指します。プロジェクトのタスクは、プロジェクト閲覧ページ(プロジェクトの詳細内容を表示するページ)には表示されません。その代わり、プロジェクトで実行しなくてはならない一連のタスクを指すリンクがあります。
タスクを処理するすべてのスクリプトとプロジェクト自体を関連付ける唯一のリンクは、プロジェクトIDです。覚えていますか、プロジェクト管理アプリケーションでは、すべてのデータベーステーブルにプロジェクトIDが含まれているのでしたね?ですから、スクリプトを有効に作動させるためには、スクリプトが照会するプロジェクトのIDを含める必要があります。プロジェクトIDを含めていないと、タスクを作成しても、どのプロジェクトにもリンクすることができません。ページは、以下のように表示されます。
では、いつものとおり、ページ全体のコードを見てみましょう。
<?php
include "dbcon.php";
include "functions.php";
$cpid=mysql_escape_String($_GET['pid']);
$getname = "SELECT title FROM projects WHERE pid = '".$cpid."'";
$g_result = mysql_query($getname);
if(!$g_result){
echo mysql_error();
}else{
$rowname = mysql_fetch_assoc($g_result);
$title = $row['title'];
}
if(isset($_POST['submit'])){
//check vars
$descr=mysql_escape_string($_POST['descr']);
$p_pid=mysql_escape_string($_POST['p_pid']);
//due date
$duedt = $_POST['yy'] . "-";
if($_POST['mm'] < 10) {
$duedt .= "0";
}
$duedt .= $_POST['mm'] . "-";
if($_POST['mm'] == 4 || $_POST['mm'] == 6 || $_POST['mm'] == 9 || $_POST['mm'] == 11) {
if($_POST['dd'] > 30) {
$duedt .= "30";
} else {
$duedt .= $_POST['dd'];
}
} elseif($_POST['mm'] == 2) {
if($_POST['yy'] == 2008 || $_POST['yy'] == 2012) {
if($_POST['dd'] > 29) {
$duedt .= "29";
} else {
$duedt .= $_POST['dd'];
}
} else {
if($_POST['dd'] > 28) {
$duedt .= "28";
} else {
$duedt .= $_POST['dd'];
}
}
} else {
$duedt .= $_POST['dd'];
}
//insert
$insert = "INSERT INTO tasks SET task_description = '".$descr."',";
$insert .= "complete_by = '".$duedt."',p_id= '".$p_pid."'";
if(!mysql_query($insert)){
echo mysql_error();
}
}
?>
<!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"><!-- InstanceBegin template="/Templates/PM_Main.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Untitled Document</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<link href="Templates/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="100%" border="0">
<tr>
<td width="33%"> </td>
<td width="28%"> </td>
<td width="39%">Logged in: <!-- InstanceBeginEditable name="login" --><? echo $_SESSION['name'];?> | <a href="logout.php">Logout</a><!-- InstanceEndEditable --></td>
</tr>
<tr>
<td colspan="3" bgcolor="#6699CC" class="headertxt">Project Management Software </td>
</tr>
<tr>
<td colspan="3"><!-- InstanceBeginEditable name="main" -->
<form action="add_task.php" method="post" name="f1">
<table width="100%" border="0">
<tr>
<td colspan="2" class="loginheader"><?php echo $title;?></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Complete by</td>
<td><?php $dd = date("d");
$mm = date("m");
$yy = date("Y");
echo "<select name="dd">n";
for($i = 1; $i <= 31; $i++) {
echo "<option value="" . $i . """;
if($i == $dd) {
echo " selected";
}
echo ">" . $i . "</option>n";
}
echo "</select> <select name="mm">n";
for($i = 1; $i <= 12; $i++) {
echo "<option value="" . $i . """;
if($i == $mm) {
echo " selected";
}
echo ">" . $month_names[$i] . "</option>n";
}
echo "</select> <select name="yy">n";
for($i = $yy; $i <= ($yy + 1); $i++) {
echo "<option value="" . $i . """;
if($i == $yy) {
echo " selected";
}
echo ">" . $i . "</option>n";
}
echo "</select>";
?> <input name="p_pid" type="hidden" value="<?php echo $_GET['pid']?>" /></td>
</tr>
<tr>
<td valign="top">Description</td>
<td><label>
<textarea name="textarea"></textarea>
</label></td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="submit" name="submit" value="Add task!" />
</label></td>
</tr>
</table>
</form>
<!-- InstanceEndEditable --></td>
</tr>
<tr>
<td colspan="3"><!-- InstanceBeginEditable name="nav" --><a href="main.php">View Project List</a> | <a href="admin/login.php">Administrators Corner </a><!-- InstanceEndEditable --></td>
</tr>
<tr>
<td align="right" class="cright" colspan="3">copyright © 2007 PM </td>
</tr>
</table>
</body><!-- InstanceEnd -->
</html>
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.









