/** * Update an existing image * * @author Yorick Peterse - PyroCMS Dev Team * @modified by Jerel Unruh - PyroCMS Dev Team to add crop * @access public * @param int $id The ID of the image * @param array $input The data used for updating the image * @return mixed */ public function update_image($id, $input) { // Get the data related to the image we're working with $image = $this->db->from('gallery_images')->join('galleries', 'gallery_images.gallery_id = galleries.id')->where('gallery_images.id', $id)->get()->row(); // Set the paths $full_path = 'uploads/galleries/' . $image->slug . '/full/' . $image->filename . $image->extension; $thumb_path = 'uploads/galleries/' . $image->slug . '/thumbs/' . $image->filename . '_thumb' . $image->extension; // Crop an existing thumbnail if ($input['thumb_width'] && $input['thumb_height'] > '1') { // Get the required values for cropping the thumbnail $size_array = getimagesize($full_path); $width = $size_array[0]; $height = $size_array[1]; $scaled_height = $input['scaled_height']; $scaled_percent = $scaled_height / $height; $options['width'] = $input['thumb_width'] / $scaled_percent; $options['height'] = $input['thumb_height'] / $scaled_percent; $options['x_axis'] = $input['thumb_x'] / $scaled_percent; $options['y_axis'] = $input['thumb_y'] / $scaled_percent; $options['create_thumb'] = FALSE; $options['maintain_ratio'] = $input['ratio']; // Crop the fullsize image first if ($this->resize('crop', $full_path, $full_path, $options) !== TRUE) { return FALSE; } //Create a new thumbnail from the newly cropped image // Is the current size larger? If so, resize to a width/height of X pixels (determined by the config file) if ($options['width'] > $this->config->item('image_thumb_width')) { $options['width'] = $this->config->item('image_thumb_width'); } if ($options['height'] > $this->config->item('image_thumb_height')) { $options['height'] = $this->config->item('image_thumb_height'); } // Set the thumbnail option $options['create_thumb'] = TRUE; $options['maintain_ratio'] = TRUE; //create the thumbnail if ($this->resize('resize', $full_path, 'uploads/galleries/' . $image->slug . '/thumbs/', $options) !== TRUE) { return FALSE; } } else { if (isset($input['delete'])) { // First we'll delete it from the DB if (parent::delete($id)) { // Change the table $this->table = 'galleries'; // Unset the thumbnail for each gallery that was using this image if (parent::update_by('thumbnail_id', $id, array('thumbnail_id' => NULL))) { // Change the table back $this->table = 'gallery_images'; // Delete the files if (unlink($full_path) === TRUE and unlink($thumb_path) === TRUE) { return TRUE; } else { return FALSE; } } else { return FALSE; } } else { return FALSE; } } } // Just save it already, do note that data isn't saved if the user decides to delete an image $to_update['title'] = $input['title']; $to_update['description'] = $input['description']; $to_update['updated_on'] = time(); return parent::update($id, $to_update); }
public function update_entry($id, $post, $stream_entry_id) { $data = array('date_start' => $post['date_start']['date'] . ' ' . $post['date_start']['hour'] . ':' . $post['date_start']['minute'] . ':00', 'date_end' => $post['date_end']['date'] . ' ' . $post['date_end']['hour'] . ':' . $post['date_end']['minute'] . ':00', 'restricted_to' => isset($post['restricted_to']) ? in_array('0', $post['restricted_to']) ? '0' : implode(',', $post['restricted_to']) : null, 'category' => $post['category'], 'recurrence' => $post['recurrence'], 'updated_on' => now()); return parent::update_by('id', $id, $data); }