Recopier le fichier
editTicketAction.php
du TP2 dans le répertoire tp3.
Dans editTicketAction.php copier les lignes de la deuxième ligne balise <tr> (lignes 83 à 97) :
<tr class="<?php echo $tableRecordClass; ?>">
<td
class="center"><?php echo $application; ?></td>
<td
class="center"><?php echo $priorityText; ?></td>
<td
class="center"><?php echo $type; ?></td>
<td
class="center"><?php echo $todayDate; ?></td>
<td
class="left"><?php echo $oneLiner; ?></td>
<td
class="left"><?php echo $contentsPart; ?></td>
</tr>
Les remplacer par
<?php printTicketAsTableRow($application, $priority, $type, $todayDate, $oneLiner, $contents, $tableRecordClass); ?>
On va utiliser la syntaxe Here-Doc pour définir printTicketAsTableRow()
Insérer la définition ci-dessous au début du fichier :
function
printTicketAsTableRow($application, $priority, $type, $date, $oneLiner,
$description, $tableRecordClass){
$str = <<<EOT
<tr class="$tableRecordClass">
<td class="center">$application</td>
<td class="center">$priority</td>
<td class="center">$type</td>
<td class="center">$date</td>
<td class="left">$oneLiner</td>
<td class="left">$description</td>
</tr>
EOT;
echo $str;
}
Cliquer sur les liens suivants pour créer des anomalies de priorité urgente ou moyenne.
Définir la fonction saveTicket() :
function saveTicket($applicationId, $login, $priority, $type, $date, $oneLiner, $description, $attachmentName) {
// construction de la ligne à sauvegarder
$ticketId = 0;
$line = implode(';', array($ticketId, $applicationId, $login,
$priority, $type, $date, $oneLiner, $description, $attachmentName));
$filePath = 'tickets.csv';
if( $fd = fopen($filePath, 'a+')) { // ouverture du fichier en écriture 'append'
$line .= "\n"; // concaténation d'un saut de ligne
fputs($fd, $line); // écriture de la ligne en fin de fichier
fclose ($fd);
// fermeture du fichier
} else {
die("Ouverture du fichier <b>$filePath</b> impossible.");
}
}
L'appeler après avoir initialisé tous ses arguments :
$attachmentName = $_FILES['userfile']['name'];
$login = 'inconnu';
saveTicket($application, $login, $priority, $type, $todayDate, $oneLiner, $contents, $attachmentName);
La pièce-jointe est accessible au travers du tableau associatif $_FILES['userFile'] (userFile étant le nom du champ d'input de type "file" du formulaire).
Dans editTicketForm.php, modifier la valeur des attributs method et ENCTYPE du formulaire :
<form method="POST" name="editTicketForm"
ENCTYPE="multipart/form-data"
Dans editTicketAction.php, apppeler la fonction saveAttachedFile() :
if ( isset($_FILES['userfile']) )
saveAttachedFile();
}
La définir:
function saveAttachedFile() {
$destinationPath = '../attachements/' . $_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'], $destinationPath);
}