PHP File Manager
Editing File: Events.php
<?php /* * Copyright (C) Wayne Purton-Smith - All Rights Reserved * Unauthorized copying of this file or removing this paragraph, via any medium is strictly prohibited * Proprietary and confidential * Written by Wayne Purton-Smith <waynepurtonsmith@hotmail.co.uk> February 2014 */ class Events extends CI_Model { public function get($event_id = 0, $filters = array(), $skip = 0, $limit = 30) { $filters = array_merge(array ( 'upcoming_only' => NULL, 'date_from' => NULL, 'date_to' => NULL ), (array) $filters); $sql = "SELECT * FROM `events` WHERE `is_deleted` = 0"; if(($event_id = (int) $event_id) > 0) { $sql .= " AND `event_id` = $event_id "; $limit = 1; } if($filters['upcoming_only'] === true) { $sql .= " AND ( `no_date` = 1 OR (`date_starts` >= " . strtotime('-1 day 00:00:00') . ") ) "; } $sql .= $this->common->returnOffset($skip, $limit); $result = $this->db->query($sql); if($result->num_rows()) { if($event_id > 0) return $result->row(); $rows = $result->result(); $result->free_result(); return $rows; } } public function save($data = array(), $event_id = 0) { $event_id = (($event_id = (int) $event_id) > 0) ? $event_id : 0; $is_update = ($event_id > 0); $event_name = (isset($data['event_name']) && ($event_name = format_whitespace($data['event_name']))) ? $event_name : NULL; if($event_name == '') { return $this->common->setResponseMessage('The event name is required'); } $todays_date = strtotime('00:00:00'); $no_event_date = (isset($data['no_event_date'])); if(!$no_event_date) { foreach(array('start', 'end') as $time_type) { $date_var = 'date_' . $time_type; $date_time_var = 'date_' . $time_type . '_time'; $no_time_var = 'no_' . $time_type . '_time'; $$date_time_var = (isset($data['event_' . $time_type . '_time']) && preg_match('/^(\d{2})\:(\d{2})$/', $data['event_' . $time_type . '_time'])) ? $data['event_' . $time_type . '_time'] : NULL; $$no_time_var = ($$date_time_var === NULL); $$date_var = (isset($data['event_' . $time_type]) && ($data['event_' . $time_type] != '') && ($$date_var = strtotime($data['event_' . $time_type] . ' ' . $$date_time_var)) >= $todays_date) ? $$date_var : NULL; if($$date_var === NULL) { return $this->common->setResponseMessage('The event ' . $time_type . ' date is required'); } } if($date_end <= $date_start) { return $this->common->setResponseMessage('The end date and time cannot be in the past of the start date and time'); } } else { $date_start = $date_end = NULL; $no_start_time = $no_end_time = true; } $event_info = (isset($data['event_info'])) ? trim($data['event_info']) : ''; $sql_data = array ( 'name' => $event_name, 'url_name' => url_title($event_name, '-', true), 'no_date' => $no_event_date, 'date_starts' => $date_start, 'date_ends' => $date_end, 'no_start_time' => $no_start_time, 'no_end_time' => $no_end_time, 'description' => $event_info ); if($is_update) { $sql = $this->db->update_string('events', $sql_data, "`event_id` = $event_id"); } else { $sql = $this->db->insert_string('events', $sql_data); } $result = $this->db->query($sql); if(($is_update && $result) || (!$is_update && $this->db->affected_rows())) { $saved_event_id = ($is_update) ? $event_id : $this->db->insert_id(); $image_path = 'assets/uploads/events/'; if(isset($data['no_photo'])) { $event_info = $this->get($saved_event_id); if($event_info->photo !== NULL) { foreach(array('', '_thumb') as $file_namespace) { $image_file = $image_path . preg_replace('/\.(\w+)$/', $file_namespace . '.$1', $event_info->photo); do { unlink($image_file); } while(file_exists($image_file)); } } $this->db->query($this->db->update_string('events', array('photo' => NULL), "`event_id` = $saved_event_id")); } else { $file_name = generate_unique_identifier(40) . '.jpg'; $full_image_path = $image_path . $file_name; $this->load->library('upload'); $this->upload->initialize(array ( 'upload_path' => $image_path, 'file_name' => $file_name, 'allowed_types' => 'jpeg|jpg', 'file_ext_tolower' => true, 'overwrite' => true )); if($this->upload->do_upload('event_photo')) { $upload_data = $this->upload->data(); $this->db->query($this->db->update_string('events', array('photo' => $upload_data['file_name']), "`event_id` = $saved_event_id")); // Convert image to JPEG $this->image_lib->initialize(array ( 'source_image' => $full_image_path, 'new_image' => $full_image_path, 'quality' => 90 )); $this->image_lib->convert(); $this->image_lib->clear(); $this->image_lib->initialize(array ( 'source_image' => $full_image_path, 'create_thumb' => true, 'new_image' => $full_image_path, 'width' => 250, 'height' => 250, 'maintain_ratio' => true, 'quality' => 85 )); $this->image_lib->resize(); } } return $this->common->setResponseMessage('The event was successfully saved', true); } return $this->common->setResponseMessage('The event could not be saved - please try again'); } public function delete($event_id = 0) { if(($event_id = (int) $event_id) > 0) { $this->db->query($this->db->update_string('events', array('is_deleted' => 1), "`event_id` = $event_id")); return ($this->db->affected_rows() === 1); } return false; } }
Cancel