From 8439ed9ba5b36fa382e32ea883a0877d6ec536c0 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Thu, 9 Jun 2011 16:56:39 -0700 Subject: Finished added prices. Added more buttons to the headers. Fixed the categories. --- design/database.sql | 2 +- htdocs/categories.php | 7 ++++++- htdocs/index.php | 7 ++++++- htdocs/new-post.php | 18 ++++++++++++++++-- htdocs/postings.php | 9 ++++++++- htdocs/src/Category.inc.php | 20 ++++++++++++++++---- htdocs/src/Post.inc.php | 25 ++++++++++++++++++++++--- htdocs/src/header.inc.php | 10 ++++++++++ 8 files changed, 85 insertions(+), 13 deletions(-) diff --git a/design/database.sql b/design/database.sql index e26e271..2dbd90c 100644 --- a/design/database.sql +++ b/design/database.sql @@ -98,7 +98,7 @@ CREATE TABLE page ( INSERT INTO `category` (`shortname`, `name`, `description`, `options`) VALUES ('free', 'Free Items', 'Do you have something of value someone could use and you want to give it away?', ''), - ('sale', 'For Sale', 'Do you have something you no longer need and want to sell it?', 'price'), + ('forsale', 'For Sale', 'Do you have something you no longer need and want to sell it?', 'price'), ('needs', 'Needs', 'Do you need something (furniture, job, housing, etc) that someone might be able to help with?', ''), ('events', 'Events', 'Do you have an upcoming event (qualifying statement here?) you would like to announce?', 'price'), ('jobs', 'Jobs', 'Do you have a job/position to fill and you''d like to tell people about?', 'price'), diff --git a/htdocs/categories.php b/htdocs/categories.php index a3e8ba2..86e5f9a 100644 --- a/htdocs/categories.php +++ b/htdocs/categories.php @@ -56,12 +56,17 @@ function displayEvents($category) { if ($posts->valid()) { foreach ($posts as $id => $post) { + $title = $post->getName(); + if ($post->getPrice() != 0) { + $title .= ' - $' . $post->getPrice(); + } + printf("

%s

" . "
%s" . " %s
", - $id, $post->getName(), $post->getLocation(), $post->getAge()); + $id, $title, $post->getLocation(), $post->getAge()); } } else { diff --git a/htdocs/index.php b/htdocs/index.php index 148cfd6..b09c4bf 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -22,12 +22,17 @@ $posts->query(); if ($posts->valid()) { foreach ($posts as $id => $post) { + $title = $post->getName(); + if ($post->getPrice() != 0) { + $title .= ' - $' . $post->getPrice(); + } + printf("

%s

" . "
%s" . " %s
", - $id, $post->getName(), $post->getLocation(), $post->getAge()); + $id, $title, $post->getLocation(), $post->getAge()); } } else { diff --git a/htdocs/new-post.php b/htdocs/new-post.php index 961cdda..e421d3c 100644 --- a/htdocs/new-post.php +++ b/htdocs/new-post.php @@ -99,7 +99,7 @@ function finish_category() { if (isset($_GET['category'])) { $category = Category::getByShortname(addslashes($_GET['category'])); if ($category) { - $post->setCategory($category->getId()); + $post->setCategory($category); return true; } } @@ -168,6 +168,11 @@ function finish_post() { $post->setName($values['title']); $post->setDescription($values['description']); $post->setLocation($values['location']); + + // Price is optional + if (isset($_POST['price'])) { + $post->setPrice($_POST['price']); + } if ($post->save()) { return true; @@ -293,8 +298,10 @@ require_once "src/footer.inc.php"; function render_form($error="") { + $category = $_SESSION['newpost']->getCategory(); $title = isset($_POST['title']) ? $_POST['title'] : ''; + $price = isset($_POST['price']) ? $_POST['price'] : ''; $location = isset($_POST['location']) ? $_POST['location'] : ''; $description = isset($_POST['description']) ? $_POST['description'] : ''; $email = isset($_POST['email']) ? $_POST['email'] : ''; @@ -304,7 +311,14 @@ function render_form($error="") { echo "
$error
"; } - echo "

"; + echo "

"; + + if ($category->getOption('price')) { + echo " "; + } + + + echo "

"; echo "

"; diff --git a/htdocs/postings.php b/htdocs/postings.php index b69767e..a52d939 100644 --- a/htdocs/postings.php +++ b/htdocs/postings.php @@ -48,7 +48,14 @@ if (isset($_GET['moderate'])) { // Display the post. -echo "

". $post->getName() ."

"; +echo "

". $post->getName(); + +if ($post->getPrice() != 0) { + echo ' - $' . $post->getPrice(); +} + +echo "

"; + echo "

Date: ". date('r', $post->getTimestamp()) ."

"; echo "

Email: getPublicEmail() ."\">" diff --git a/htdocs/src/Category.inc.php b/htdocs/src/Category.inc.php index fdcd210..cfef06b 100644 --- a/htdocs/src/Category.inc.php +++ b/htdocs/src/Category.inc.php @@ -12,10 +12,16 @@ require_once "base.inc.php"; class Category { private $info; - + private $options = array('price' => false); public function __construct($info=null) { $this->info = $info; + + if (isset($this->info['options'])) { + foreach (split(',', $this->info['options']) as $op) { + $this->options[$op] = true; + } + } } public static function getCategories() { @@ -54,8 +60,7 @@ class Category { $row = $db->fetchAssocRow($query); if ($row) { - $category = new Category(); - $category->info = $row; + $category = new Category($row); return $category; @@ -85,7 +90,14 @@ class Category { public function getDescription() { return htmlspecialchars($this->info['description']); } + + public function getOption($name) { + return $this->options[$name]; + } + + public function setOption($value) { + $this->options[$name] = $value; + } } ?> - diff --git a/htdocs/src/Post.inc.php b/htdocs/src/Post.inc.php index 9747d3f..d887694 100644 --- a/htdocs/src/Post.inc.php +++ b/htdocs/src/Post.inc.php @@ -14,6 +14,7 @@ class Post { private $info; private $indatabase = false; private $images; + private $category; public function __construct($info=null) { @@ -26,7 +27,8 @@ class Post { $this->indatabase = false; } - $images = null; + $this->images = null; + $this->category = null; } public static function getById($id) { @@ -205,8 +207,17 @@ class Post { $this->info['email'] = $value; } - public function setCategory($value) { - $this->info['category_id'] = $value; + public function setCategory(Category $cat) { + $this->info['category_id'] = $cat->getId(); + $this->category = $cat; + } + + public function getCategory() { + if ($this->category == NULL) { + $this->category = Categories::getById($this->info['category_id']); + } + + return $this->category; } public function getAge() { @@ -237,6 +248,14 @@ class Post { $this->info['location'] = $value; } + public function getPrice() { + return $this->info['price']; + } + + public function setPrice($value) { + $this->info['price'] = $value; + } + public function getImages() { if ($this->images == null) { $this->loadImages(); diff --git a/htdocs/src/header.inc.php b/htdocs/src/header.inc.php index 839ebaf..856022e 100644 --- a/htdocs/src/header.inc.php +++ b/htdocs/src/header.inc.php @@ -30,11 +30,21 @@

What are you looking for?

+
+ Free Items +
+ Free Items +
For Sale
For Sale
+
+ Needs +
+ Needs +
Events
-- cgit v1.2.3