public function profileCover()
 {
     require 'vendor/ImageUploader.php';
     // Create instance of the Image Uploader
     $imageUploader = new ImageUploader();
     // Attempt to upload the file
     $result = $imageUploader->upload('cover-image', 'img/user/covers/original/');
     // If the upload was a success
     if ($result == true) {
         // Get the file name
         $imageName = $imageUploader->getImageName();
         // Prepare the variables
         $fileLocation = "img/user/covers/original/{$imageName}";
         $destination = "img/user/covers/edited/";
         // Make the avatar version
         $imageUploader->resize($fileLocation, 1000, $destination, $imageName);
         $_POST['cover-image'] = $imageName;
     } else {
         // Something went wrong
         $this->totalErrors++;
         $this->userImageError = $imageUploader->errorMessage;
     }
     if ($this->totalErrors == 0) {
         $result = $this->model->changeCover();
         // If the result was good
         if ($result) {
             // Redirect the user to login
             header('Location: index.php?page=profile');
             $this->userSuccess = 'Successfully changed your info';
         } else {
             $this->userFail = 'Info not updated';
         }
     }
 }
 public function processRecipe()
 {
     // If there is a file
     if (isset($_FILES['recipe-image']) && $_FILES['recipe-image']['name'] != '') {
         require 'vendor/ImageUploader.php';
         // Create instance of the Image Uploader
         $imageUploader = new ImageUploader();
         // Attempt to upload the file
         $result = $imageUploader->upload('recipe-image', 'img/recipes/original/');
         // If the upload was a success
         if ($result == true) {
             // Get the file name
             $imageName = $imageUploader->getImageName();
             // Prepare the variables
             $fileLocation = "img/recipes/original/{$imageName}";
             $destination = "img/recipes/cover/";
             // Make the recipe_image version
             $imageUploader->resize($fileLocation, 1000, $destination, $imageName);
             // Make thumbnail
             $destination = "img/recipes/thumbnail/";
             $imageUploader->resize($fileLocation, 230, $destination, $imageName);
             $_POST['recipe-image'] = $imageName;
         } else {
             // Something went wrong
             $this->totalErrors++;
             $this->userImageError = $imageUploader->errorMessage;
         }
     }
     if ($this->totalErrors == 0) {
         $result = $this->model->updateRecipe();
         // If the result was good
         if ($result) {
             // Redirect the user to login
             header('Location: index.php?page=recipe&recipeid=' . $_GET['recipeid']);
             $this->userSuccess = 'Successfully changed your info';
         } else {
             $this->userFail = 'Info not updated';
         }
     }
 }
Example #3
0
 private function processAdditionalInfo()
 {
     // Validation
     if (strlen($_POST['first-name']) < 2) {
         $this->userFirstNameError = 'Needs to be at least 2 characters.';
         $this->totalErrors++;
     } elseif (strlen($_POST['first-name']) > 20) {
         $this->userFirstNameError = 'Needs to be at most 20 characters.';
         $this->totalErrors++;
     } elseif (!preg_match('/^[a-zA-Z \\-]{2,20}$/', $_POST['first-name'])) {
         $this->userFirstNameError = 'Can only use characters of the alphabet, spaces and hyphens.';
         $this->totalErrors++;
     }
     if (strlen($_POST['last-name']) < 2) {
         $this->userLastNameError = 'Needs to be at least 2 characters.';
         $this->totalErrors++;
     } elseif (strlen($_POST['last-name']) > 20) {
         $this->userLastNameError = 'Needs to be at most 20 characters.';
         $this->totalErrors++;
     } elseif (!preg_match('/^[a-zA-Z \\-]{2,20}$/', $_POST['last-name'])) {
         $this->userLastNameError = 'Can only use characters of the alphabet, spaces and hyphens.';
         $this->totalErrors++;
     }
     if (strlen($_POST['last-name']) > 2000) {
         $this->userBioError = 'Needs to be at most 2000 characters.';
         $this->totalErrors++;
     }
     // Attemp to upload the image
     if ($this->totalErrors == 0 && isset($_FILES['profile-image']) && $_FILES['profile-image']['name'] != '') {
         //require image uploader
         require 'vendor/ImageUploader.php';
         // Create an instance
         $imageUploader = new ImageUploader();
         // Attemp to upload the file
         $result = $imageUploader->upload('profile-image', 'img/profile-images/original/');
         // If the upload was a success
         if ($result) {
             // Get the file name
             $imageName = $imageUploader->getImageName();
             // Prepare the variables
             $fileLocation = "img/profile-images/original/{$imageName}";
             $fileDestination = "img/profile-images/avatar/";
             // Make the avatar version
             $imageUploader->resize($fileLocation, 320, $fileDestination, $imageName);
             // Make icons
             $fileDestination = "img/profile-images/icon/";
             $imageUploader->resize($fileLocation, 32, $fileDestination, $imageName);
             $_POST['newUserImage'] = $imageName;
         } else {
             // Something went wrong
             $this->userImageError = $imageUploader->errorMessage;
             $this->totalErrors++;
         }
     } elseif (isset($_FILES['profile-image']) && $_FILES['profile-image']['name'] == '') {
         $_POST['newUserImage'] = 'default.png';
     }
     if ($this->totalErrors == 0) {
         $result = $this->model->additionalInfo();
         //If the result was good
         if ($result) {
             $this->userSuccess = 'Account has been updated';
         } else {
             $this->userFail = 'You have entered the same information';
         }
     }
 }
 public function processRecipe()
 {
     $recipeTitle = trim($_POST['recipe-title']);
     $recipeDirections = trim($_POST['recipe-directions']);
     $recipeTime = trim($_POST['cook-time']);
     $recipeServes = trim($_POST['serves']);
     $recipeVideo = trim($_POST['recipe-video']);
     $this->recipeTitle = $recipeTitle;
     $this->recipeDirections = $recipeDirections;
     $this->recipeTime = $recipeTime;
     $this->recipeVideo = $recipeVideo;
     if (strlen($recipeTitle) > 40) {
         $this->recipeTitleError = 'Recipe name is too long, 45 characters max.';
         $this->totalErrors++;
     } elseif (strlen($recipeTitle) == 0) {
         $this->recipeTitleError = 'Recipe title is required.';
         $this->totalErrors++;
     }
     if (strlen($recipeDirections) > 2000) {
         $this->recipeDirectionsError = 'Recipe directions is too long please shorten, 2000 characters max.';
         $this->totalErrors++;
     } elseif (strlen($recipeDirections) == 0) {
         $this->recipeDirectionsError = 'Recipe directions is required.';
         $this->totalErrors++;
     }
     if (strlen($recipeTime) > 3) {
         $this->recipeTimeError = 'Please enter up to 3 digits.';
         $this->totalErrors++;
     } else {
         if ($recipeTime == '') {
             $this->recipeTimeError = 'Please enter a time.';
             $this->totalErrors++;
         } elseif (!preg_match('/^[0-9]{1,3}$/', $recipeTime)) {
             $this->recipeTimeError = 'Use only numbers. With a maximum of 3 digits.';
             $this->totalErrors++;
         }
     }
     if ($_FILES['cover-image']['name'] == '') {
         $this->userImageError = 'You must upload an image with your recipe.';
         $this->totalErrors++;
     } else {
         // If there is a file
         if (isset($_FILES['cover-image']) && $_FILES['cover-image']['name'] != '') {
             require 'vendor/ImageUploader.php';
             // Create instance of the Image Uploader
             $imageUploader = new ImageUploader();
             // Attempt to upload the file
             $result = $imageUploader->upload('cover-image', 'img/recipes/original/');
             // If the upload was a success
             if ($result == true) {
                 // Get the file name
                 $imageName = $imageUploader->getImageName();
                 // Prepare the variables
                 $fileLocation = "img/recipes/original/{$imageName}";
                 $destination = "img/recipes/cover/";
                 // Make the recipe_image version
                 $imageUploader->resize($fileLocation, 1000, $destination, $imageName);
                 // Make thumbnail
                 $destination = "img/recipes/thumbnail/";
                 $imageUploader->resize($fileLocation, 230, $destination, $imageName);
                 $_POST['cover-image'] = $imageName;
             } else {
                 // Something went wrong
                 $this->totalErrors++;
                 $this->userImageError = $imageUploader->errorMessage;
             }
         }
     }
     if ($this->totalErrors == 0) {
         $this->model->addRecipe();
     }
 }
 private function processAddStaff()
 {
     $this->firstName = trim($_POST['first-name']);
     $this->lastName = trim($_POST['last-name']);
     $this->jobTitle = trim($_POST['job-title']);
     $this->bio = trim($_POST['bio']);
     // Validate the form to make sure the user has provided all the appropriate fields
     if (strlen($this->firstName) < 2) {
         $this->firstNameError = 'First name needs to be at least 2 characters.';
     } elseif (strlen($this->firstName > 20)) {
         $this->firstNameError = 'First name is limited to 20 characters.';
     } elseif (!preg_match('/^[\\w.\\-\\s]{2,20}$/', $this->firstName)) {
         $this->firstNameError = 'First Name is limited to letters, hyphens and fullstops.';
     }
     if (strlen($this->lastName) < 2) {
         $this->lastNameError = 'Last name needs to be at least 2 characters.';
     } elseif (strlen($this->lastName > 20)) {
         $this->lastNameError = 'Last name is limited to 20 characters.';
     } elseif (!preg_match('/^[\\w.\\-\\s]{2,20}$/', $this->lastName)) {
         $this->lastNameError = 'Last Name can only include letters, hyphens & fullstops.';
     }
     if (strlen($this->jobTitle == '')) {
         $this->jobTitleError = 'Job Title is required';
     } elseif (strlen($this->jobTitle) > 30) {
         $this->jobTitleError = 'Job title is limited to 30 characters';
     } elseif (!preg_match('/^[\\w\\- \\.]{2,30}$/', $this->jobTitle)) {
         $this->jobTitleError = 'Job Title can only include letters, hyphens & fullstops';
     }
     if (strlen($this->bio > 200)) {
         $this->bioError = 'Bio is limited to 200 characters. You have ' . (strlen($this->bio) - 200);
     } elseif (!preg_match('/^[\\w\\s\\-\\.]{2,200}$/', $this->bio)) {
         $this->bioError = 'Bio can only include letters, hyphens & fullstops';
     }
     // Make life easier
     $file = $_FILES['profile-image'];
     $imageName = $file['name'];
     // if the user has not provided an image
     // first brackets['source']second brackets['What field we want']
     if ($imageName == '') {
         $this->profileImageError = 'Required';
     } elseif ($this->firstNameError == '' && $this->lastNameError == '' && $this->jobTitleError == '' && $this->bioError == '') {
         // require the image upload class
         require 'vendor/ImageUploader.php';
         // Instantiate the class
         $imageUploader = new ImageUploader();
         // Mkae new filename based oon the staff members name
         $fileName = $this->firstName . '-' . $this->lastName;
         // Upload the image and make sure all went well
         $result = $imageUploader->upload('profile-image', 'img/staff/original/', $fileName);
         // If something went wrong
         if (!$result) {
             $this->profileImageError = $imageUploader->errorMessage;
         } else {
             $newImage = $imageUploader->getImageName();
             $imageUploader->resizeImage('img/staff/original/' . $newImage, 320, 'img/staff/thumbnails/', $newImage);
         }
         // If there are no errors then insert a new staff member
         if ($this->profileImageError == '') {
             $result = $this->model->addNewStaff($newImage);
             // if success
             if ($result) {
                 $this->staffSuccessMessage = 'Success';
             } else {
                 $this->staffErrorMessage = 'Something went wrong in the Database';
             }
         }
     }
 }
 public function processChangeInfo()
 {
     $firstname = $_POST['first-name'];
     $lastname = $_POST['last-name'];
     $bio = $_POST['bio'];
     if (strlen($firstname) > 40) {
         $this->firstnameError = 'First name is too long please abbreviate or use a nickname. 40 Character max.';
         $this->totalErrors++;
     }
     if (strlen($lastname) > 40) {
         $this->lastnameError = 'Last name is too long please abbreviate or use a nickname. 40 Character max.';
         $this->totalErrors++;
     }
     if (strlen($bio) > 400) {
         $this->bioError = 'Your description is too long please abbreviate. 400 Character max.';
         $this->totalErrors++;
     }
     if (isset($_FILES['profile-image']) && $_FILES['profile-image']['name'] != '') {
         require 'vendor/ImageUploader.php';
         // Create instance of the Image Uploader
         $imageUploader = new ImageUploader();
         // Attempt to upload the file
         $result = $imageUploader->upload('profile-image', 'img/user/avatar/original/');
         // If the upload was a success
         if ($result == true) {
             // Get the file name
             $imageName = $imageUploader->getImageName();
             // Prepare the variables
             $fileLocation = "img/user/avatar/original/{$imageName}";
             $destination = "img/user/avatar/edited/";
             // Make the recipe_image version
             $imageUploader->resize($fileLocation, 110, $destination, $imageName);
             // Make thumbnail
             $destination = "img/user/avatar/icon/";
             $imageUploader->resize($fileLocation, 34, $destination, $imageName);
             $_POST['profile-image'] = $imageName;
         } else {
             // Something went wrong
             $this->totalErrors++;
             $this->userImageError = $imageUploader->errorMessage;
         }
     }
     if ($this->totalErrors == 0) {
         $this->model->updateInfo();
         $this->detailsSuccess = 'Your details have been updated successfully.';
     }
 }
 private function processUpdateFile()
 {
     $fileNameUpdate = trim($_POST['file-name']);
     $fileTypeUpdate = $_POST['file-type-upload-dropdown'];
     $fileTagUpdate = $_POST['tag-checkbox'];
     $fileDescriptionUpdate = trim($_POST['file-description']);
     $this->fileNameUpdate = $fileNameUpdate;
     $this->fileTypeUpdate = $fileTypeUpdate;
     $this->fileTagUpdate = $fileTagUpdate;
     $this->fileDescriptionUpdate = $fileDescriptionUpdate;
     //Validation
     if ($fileNameUpdate == '') {
         $this->fileNameUpdateError = 'Required';
         $this->totalErrors++;
     } elseif (strlen($fileNameUpdate) > 30 || strlen($fileNameUpdate) < 3) {
         $this->fileNameUpdateError = 'Job Title must be between 3 and 30 characters.';
         $this->totalErrors++;
     } elseif (!preg_match('/^[\\w0-9_\\-. ]{3,20}$/', $fileNameUpdate)) {
         $this->fileNameUpdateError = 'Use only letters, numbers, hyphens underscore and periods.';
         $this->totalErrors++;
     }
     $FileTypeUpdate = $_POST['file-type-upload-dropdown'];
     if (!is_numeric($FileTypeUpdate)) {
         $this->fileTypeUpdateError = 'Something Wrong';
         $this->totalErrors++;
     }
     if ($fileDescriptionUpdate == '') {
         $this->fileDescriptionUpdateError = 'Required';
         $this->totalErrors++;
     } elseif (strlen($fileDescriptionUpdate) > 2000 || strlen($fileDescriptionUpdate) < 3) {
         $this->fileDescriptionUpdateError = 'Job Title must be between 3 and 2000 characters. you have gone over by' . (strlen($fileDescription) - 2000);
         $this->totalErrors++;
     } elseif (!preg_match('/^[\\w0-9_\\-. ]{3,2000}$/', $fileDescriptionUpdate)) {
         $this->fileDescriptionUpdateError = 'Use only letters, numbers, hyphens underscore and periods.';
         $this->totalErrors++;
     }
     // Only if the user has seleted some checkboxes
     if (isset($fileTagUpdate)) {
         // Loop through each checkbox and make sure they are a number
         foreach ($fileTagUpdate as $tagUpdate) {
             // If it is not a number
             if (!is_numeric($uploadTag)) {
                 $this->totalErrors++;
                 $this->tagUpdateError = 'Something wrong with checkboxes';
             }
         }
     }
     //attempt to upload the image
     if ($this->totalErrors == 0 && isset($_FILES['file-image']) && $_FILES['file-image']['name'] != '') {
         //Require the image uploader
         require_once 'vendor/ImageUploader.php';
         //create instance of the image uploader
         $imageUploader = new ImageUploader();
         //Attempt to upload the image
         $result = $imageUploader->upload('file-image', 'img/file-images/original/');
         //if upload was success
         if ($result) {
             //get the file name
             $imageName = $imageUploader->getImageName();
             //Prepare the variables
             $fileLocation = "img/file-images/original/{$imageName}";
             //Prepare the preview version
             $previewDestination = "img/file-images/preview/";
             $imageUploader->resize($fileLocation, 400, $previewDestination, $imageName);
             //Make the thumbnail version
             $thumbnailDestination = "img/file-images/thumbnail/";
             $imageUploader->resize($fileLocation, 200, $thumbnailDestination, $imageName);
             $_POST['newFileImage'] = $imageName;
         } else {
             //Something went wrong
             $this->totalErrors++;
             $this->fileImageUpdateError = $imageUploader->errorMessage;
         }
     }
     if ($this->totalErrors == 0) {
         $result = $this->model->updateFile();
         //if result was good
         if ($result) {
             $this->fileUpdateSuccess = 'Successfully updated your file';
         } else {
             $this->fileUpdateFail = 'File not updated';
         }
     }
 }