Added apply page

This commit is contained in:
Joshua Perry 2023-01-23 17:50:11 +00:00
parent 902dd23ea1
commit 05ee8bbeb8
3 changed files with 69 additions and 147 deletions

View File

@ -3,11 +3,13 @@ namespace jobs\controllers;
class Jobs { class Jobs {
private $jobsTable; private $jobsTable;
private $catsTable; private $catsTable;
private $appsTable;
private $vars = []; private $vars = [];
public function __construct(\CSY2028\DatabaseTable $jobsTable, \CSY2028\DatabaseTable $catsTable) { public function __construct(\CSY2028\DatabaseTable $jobsTable, \CSY2028\DatabaseTable $catsTable, \CSY2028\DatabaseTable $appsTable) {
$this->jobsTable = $jobsTable; $this->jobsTable = $jobsTable;
$this->catsTable = $catsTable; $this->catsTable = $catsTable;
$this->appsTable = $appsTable;
$this->vars['cats'] = $this->catsTable->findAll(); $this->vars['cats'] = $this->catsTable->findAll();
} }
@ -40,11 +42,47 @@ class Jobs {
]; ];
} }
public function notFound() { public function notFound() {
return ['template' => 'notFound.html.php', $this->vars['response'] = 'The page you have requested has not been found';
return ['template' => 'response.html.php',
'title' => 'Jo\'s Jobs- 404 Not Found', 'title' => 'Jo\'s Jobs- 404 Not Found',
'vars' => $this->vars 'vars' => $this->vars
]; ];
} }
public function apply() {
$this->vars['job'] = $this->jobsTable->find('id', $_GET['id'])[0];
return ['template' => 'apply.html.php',
'title' => 'Jo\'s Jobs- Apply',
'vars' => $this->vars];
}
public function applySubmit() {
if ($_FILES['cv']['error'] == 0) {
$parts = explode('.', $_FILES['cv']['name']);
$extension = end($parts);
$fileName = uniqid() . '.' . $extension;
move_uploaded_file($_FILES['cv']['tmp_name'], 'cvs/' . $fileName);
$record = [
'name' => $_POST['name'],
'email' => $_POST['email'],
'details' => $_POST['details'],
'jobId' => $_POST['jobId'],
'cv' => $fileName
];
$this->appsTable->save($record);
$this->vars['response'] = 'Your application is complete. We will contact you after the closing date.';
}
else {
$this->vars['response'] = 'There was an error uploading your CV';
}
return ['template' => 'response.html.php',
'title' => 'Jo\'s Jobs- Apply',
'vars' => $this->vars];
}
} }
?> ?>

View File

@ -1,145 +0,0 @@
<?php
$pdo = new PDO('mysql:dbname=job;host=mysql', 'student', 'student');
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/styles.css"/>
<title>Jo's Jobs - Apply</title>
</head>
<body>
<header>
<section>
<aside>
<h3>Office Hours:</h3>
<p>Mon-Fri: 09:00-17:30</p>
<p>Sat: 09:00-17:00</p>
<p>Sun: Closed</p>
</aside>
<h1>Jo's Jobs</h1>
</section>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li>Jobs
<ul>
<li><a href="/it.php">IT</a></li>
<li><a href="/hr.php">Human Resources</a></li>
<li><a href="/sales.php">Sales</a></li>
</ul>
</li>
<li><a href="/about.html">About Us</a></li>
</ul>
</nav>
<img src="/images/randombanner.php"/>
<main class="sidebar">
<section class="left">
<ul>
<li><a href="jobs.php">Jobs</a></li>
<li><a href="categories.php">Categories</a></li>
</ul>
</section>
<section class="right">
<?php
if (isset($_POST['submit'])) {
if ($_FILES['cv']['error'] == 0) {
$parts = explode('.', $_FILES['cv']['name']);
$extension = end($parts);
$fileName = uniqid() . '.' . $extension;
move_uploaded_file($_FILES['cv']['tmp_name'], 'cvs/' . $fileName);
$criteria = [
'name' => $_POST['name'],
'email' => $_POST['email'],
'details' => $_POST['details'],
'jobId' => $_POST['jobId'],
'cv' => $fileName
];
$stmt = $pdo->prepare('INSERT INTO applicants (name, email, details, jobId, cv)
VALUES (:name, :email, :details, :jobId, :cv)');
$stmt->execute($criteria);
echo 'Your application is complete. We will contact you after the closing date.';
}
else {
echo 'There was an error uploading your CV';
}
}
else {
$stmt = $pdo->prepare('SELECT * FROM job WHERE id = :id');
$stmt->execute($_GET);
$job = $stmt->fetch();
?>
<h2>Apply for <?=$job['title'];?></h2>
<form action="apply.php" method="POST" enctype="multipart/form-data">
<label>Your name</label>
<input type="text" name="name" />
<label>E-mail address</label>
<input type="text" name="email" />
<label>Cover letter</label>
<textarea name="details"></textarea>
<label>CV</label>
<input type="file" name="cv" />
<input type="hidden" name="jobId" value="<?=$job['id'];?>" />
<input type="submit" name="submit" value="Apply" />
</form>
<?php
}
?>
</section>
</main>
<footer>
&copy; Jo's Jobs 2017
</footer>
</body>
</html>

29
templates/apply.html.php Normal file
View File

@ -0,0 +1,29 @@
<main class="sidebar">
<section class="left">
<ul>
<?php require 'nav.html.php';?>
</ul>
</section>
<section class="right">
<h2>Apply for <?=$job->title?></h2>
<form action="apply.php" method="POST" enctype="multipart/form-data">
<label>Your name</label>
<input type="text" name="name" />
<label>E-mail address</label>
<input type="text" name="email" />
<label>Cover letter</label>
<textarea name="details"></textarea>
<label>CV</label>
<input type="file" name="cv" />
<input type="hidden" name="jobId" value="<?=$job->id?>" />
<input type="submit" name="submit" value="Apply" />
</form>
</section>
</main>