public function view() { session_start(); include 'models/memberModel.php'; $username = $_SESSION['username']; $memberModel = new memberModel(); // check for form submission if (isset($_POST["submit"])) { $uploadManager = new uploadController(); $uploadManager->uploadDisplayPic($username); if (isset($_POST["email"])) { $memberModel->updateEmail($username, $_POST["email"]); } if (isset($_POST["user_info"])) { $memberModel->updateUserInfo($username, $_POST["user_info"]); } } // query database to retrieve user information $memberModel = new memberModel(); $queryResult = $memberModel->getUserByUsername($username); $resultCount = pg_num_rows($queryResult); // check if user exists if ($resultCount == 1) { // initialize data for profile page $queryData = pg_fetch_row($queryResult); $data['profileName'] = $queryData[0]; $data['email'] = $queryData[3]; $data['user_info'] = $queryData[4]; $data['display_pic'] = $queryData[5]; // lastly, run the profile view include 'views/settings.php'; } else { // no result, redirect to home $home = new homeController(); $home->view(); } }
public function view() { session_start(); $itemName = ''; $itemOwner = ''; $itemBorrower = ''; $isValidBid = false; // Check that URL has required fields if (empty($_GET['item']) || empty($_GET['owner']) || empty($_GET['borrower'])) { header("Location:index.php"); return; } $itemName = $_GET['item']; $itemOwner = $_GET['owner']; $itemBorrower = $_GET['borrower']; $currentUser = $_SESSION['username']; // Getting the item include 'models/itemModel.php'; $itemModel = new itemModel(); $queryResult = $itemModel->getByKey($itemOwner, $itemName); // Ensures that message session is for item that exist if ($queryResult == false) { $this->goToPreviousPage(); return; } $item = pg_fetch_array($queryResult); $itemImage = $item['image_url']; $itemPrice = $item['price']; // Getting the members include 'models/memberModel.php'; $memberModel = new memberModel(); // Ensures that message session is for members that exist if (!$memberModel->memberExist($itemOwner) || !$memberModel->memberExist($itemBorrower)) { $this->goToPreviousPage(); return; } // Ensures that current logged in user belongs to message session if ($currentUser != $itemOwner && $currentUser != $itemBorrower) { $this->goToPreviousPage(); return; } // Ensures that user is not sending message to self if ($itemOwner == $itemBorrower) { $this->goToPreviousPage(); return; } // Getting the loan request include 'models/loanRequestModel.php'; $loanRequestModel = new loanRequestModel(); $bidMade = $loanRequestModel->getLoanRequestByOwnerItemBorrower($itemOwner, $itemName, $itemBorrower); if ($bidMade != false) { $bid = pg_fetch_array($bidMade); $date_start = $bid['date_start']; $bidStatus = $bid['status']; $bidPrice = $bid['price_offer']; $isValidBid = $bid['is_valid']; } // Checks if is an accept or reject if (isset($_POST['accept'])) { $loanRequestModel->acceptLoanRequest($itemName, $itemOwner, $itemBorrower, $date_start); $bidStatus = 'accepted'; } if (isset($_POST['reject'])) { $loanRequestModel->rejectLoanRequest($itemName, $itemOwner, $itemBorrower, $date_start); $bidStatus = 'declined'; } // get all past messages include 'models/messageModel.php'; $messageModel = new messageModel(); // Check for new message sent if (isset($_POST['msg-content'])) { $content = $_POST['msg-content']; $sender = $itemBorrower; $receiver = $itemOwner; if ($currentUser == $itemOwner) { $sender = $itemOwner; $receiver = $itemBorrower; } $messageModel->addMessage($itemName, $itemOwner, $sender, $receiver, $content); } $chatHistory = $messageModel->getChatHistoryInOrder($itemName, $itemOwner, $itemBorrower); // get user profile images $ownerProfile = $memberModel->getUserByUsername($itemOwner); $ownerIcon = pg_fetch_row($ownerProfile)[5]; $borrowerProfile = $memberModel->getUserByUsername($itemBorrower); $borrowerIcon = pg_fetch_row($borrowerProfile)[5]; // put all messages into an array $messageArray = array(); while ($row = pg_fetch_row($chatHistory)) { $msgSender = $row[2]; if ($msgSender == $itemOwner) { $msgSenderIcon = $ownerIcon; } else { $msgSenderIcon = $borrowerIcon; } $msgContent = $row[4]; $msgTimestamp = $row[5]; $message = array($msgSender, $msgSenderIcon, $msgContent, $msgTimestamp); array_push($messageArray, $message); } include 'views/message.php'; }
public function view() { session_start(); include 'models/memberModel.php'; include 'models/reviewModel.php'; include 'models/itemModel.php'; include 'helpers/timestampParser.php'; $timestampParser = new timestampParser(); // get string of user to be viewed if (isset($_GET['profile']) && $_GET['profile'] != $_SESSION['username']) { $profileStringQuery = $_GET['profile']; } else { $profileStringQuery = $_SESSION['username']; $isViewingOwnProfile = true; } /* this part deals with the user attempting to submit a review */ if (isset($_POST['submit-review'])) { // parse POST data $reviewer = $_SESSION['username']; $reviewee = $_GET['profile']; $content = str_replace("'", "''", $_POST['content']); if ($_POST['review'] == "positive") { $isPositive = 1; } else { $isPositive = 0; } // view will access the model directly to insert review into database $reviewModel = new reviewModel(); $result = $reviewModel->addNewReview($reviewer, $reviewee, $content, $isPositive); // clear variables unset($_POST['submit-review']); unset($_POST['content']); unset($_POST['review']); if ($result) { $reviewSuccessMessage = '<p class="text-success">Review successfully added.</p>'; } else { $reviewSuccessMessage = '<p class="text-danger">An error occured. Review not added.</p>'; } } /* this part onwards deals with the rendering of the profile page */ // query database to retrieve user information $memberModel = new memberModel(); $queryResult = $memberModel->getUserByUsername($profileStringQuery); $resultCount = pg_num_rows($queryResult); // check if user exists if ($resultCount == 1) { // initialize data for profile page $data = pg_fetch_row($queryResult); $profileName = $data[0]; $profileEmail = $data[3]; $profileDescription = $data[4]; $profileDisplayPictureURL = "img/display_pic/" . $data[5]; $profileLastLoggedIn = $timestampParser->getFormattedTimestampFromTimestamp($data[7]); // parse both review and item results into 2 arrays $reviewArray = array(); $itemArray = array(); $counter = 0; $positiveReviews = 0; $negativeReviews = 0; // get all reviews of this user $reviewModel = new reviewModel(); $reviewResult = $reviewModel->getAllReviewsOf($profileName); // create review array while ($row = pg_fetch_row($reviewResult)) { $row[3] == 1 ? $positiveReviews++ : $negativeReviews++; $review = array($row[0], $row[2], $row[3], $timestampParser->getFormattedTimestampFromTimestamp($row[4])); // row[0]: reviewer, row[2]: review content, row[3]: positive/negative, row[4]: time of review array_push($reviewArray, $review); $counter++; } $totalReviews = $positiveReviews + $negativeReviews; $counter = 0; // load items put up by user $itemModel = new itemModel(); $itemResult = $itemModel->getAllItemsOfUser($profileName); // create item array while ($row = pg_fetch_row($itemResult)) { $itemImageResult = $itemModel->getCoverImageOfItem($row[0], $row[1]); // get cover photo for each item $imageURL = pg_fetch_row($itemImageResult)[0]; // it should only have one row if ($imageURL == NULL) { $imageURL = "img/tempLogo.jpg"; } else { $imageURL = "img/items/" . $imageURL; } $item = array($row[0], $imageURL); array_push($itemArray, $item); $counter++; } // lastly, run the profile view include 'views/profile.php'; } else { // no result, redirect to home $home = new homeController(); $home->view(); } }