function media($id = FALSE, $condition = FALSE, $media_id = FALSE) { $this->load->helper('notification'); $this->view_data['submenu'] = array($this->lang->line('application_back') => 'cprojects', $this->lang->line('application_overview') => 'cprojects/view/' . $id, $this->lang->line('application_media') => 'cprojects/media/' . $id); switch ($condition) { case 'view': if ($_POST) { unset($_POST['send']); unset($_POST['_wysihtml5_mode']); unset($_POST['files']); //$_POST = array_map('htmlspecialchars', $_POST); $_POST['text'] = $_POST['message']; unset($_POST['message']); $_POST['project_id'] = $id; $_POST['media_id'] = $media_id; $_POST['from'] = $this->client->firstname . ' ' . $this->client->lastname; $this->view_data['project'] = Project::find_by_id($id); $this->view_data['media'] = ProjectHasFile::find($media_id); $message = Message::create($_POST); if (!$message) { $this->session->set_flashdata('message', 'error:' . $this->lang->line('messages_save_message_error')); } else { $this->session->set_flashdata('message', 'success:' . $this->lang->line('messages_save_message_success')); foreach ($this->view_data['project']->project_has_workers as $workers) { send_notification($workers->user->email, "[" . $this->view_data['project']->name . "] New comment", 'New comment on meida file: ' . $this->view_data['media']->name . '<br><strong>' . $this->view_data['project']->name . '</strong>'); } } redirect('cprojects/media/' . $id . '/view/' . $media_id); } $this->content_view = 'projects/client_views/view_media'; $this->view_data['media'] = ProjectHasFile::find($media_id); $project = Project::find_by_id($id); if ($project->company_id != $this->client->company->id) { redirect('cprojects'); } $this->view_data['form_action'] = 'cprojects/media/' . $id . '/view/' . $media_id; $this->view_data['filetype'] = explode('.', $this->view_data['media']->filename); $this->view_data['filetype'] = $this->view_data['filetype'][1]; $this->view_data['backlink'] = 'cprojects/view/' . $id; break; case 'add': $this->content_view = 'projects/_media'; $this->view_data['project'] = Project::find($id); if ($_POST) { $config['upload_path'] = './files/media/'; $config['encrypt_name'] = TRUE; $config['allowed_types'] = '*'; $this->load->library('upload', $config); if (!$this->upload->do_upload()) { $error = $this->upload->display_errors('', ' '); $this->session->set_flashdata('message', 'error:' . $error); redirect('cprojects/view/' . $id); } else { $data = array('upload_data' => $this->upload->data()); $_POST['filename'] = $data['upload_data']['orig_name']; $_POST['savename'] = $data['upload_data']['file_name']; $_POST['type'] = $data['upload_data']['file_type']; } unset($_POST['send']); unset($_POST['userfile']); unset($_POST['file-name']); unset($_POST['files']); $_POST = array_map('htmlspecialchars', $_POST); $_POST['project_id'] = $id; $_POST['client_id'] = $this->client->id; $media = ProjectHasFile::create($_POST); if (!$media) { $this->session->set_flashdata('message', 'error:' . $this->lang->line('messages_save_media_error')); } else { $this->session->set_flashdata('message', 'success:' . $this->lang->line('messages_save_media_success')); $attributes = array('subject' => $this->lang->line('application_new_media_subject'), 'message' => '<b>' . $this->client->firstname . ' ' . $this->client->lastname . '</b> ' . $this->lang->line('application_uploaded') . ' ' . $_POST['name'], 'datetime' => time(), 'project_id' => $id, 'type' => 'media', 'client_id' => $this->client->id); $activity = ProjectHasActivity::create($attributes); foreach ($this->view_data['project']->project_has_workers as $workers) { send_notification($workers->user->email, "[" . $this->view_data['project']->name . "] " . $this->lang->line('application_new_media_subject'), $this->lang->line('application_new_media_file_was_added') . ' <strong>' . $this->view_data['project']->name . '</strong>'); } if (isset($this->view_data['project']->company->client->email)) { send_notification($this->view_data['project']->company->client->email, "[" . $this->view_data['project']->name . "] " . $this->lang->line('application_new_media_subject'), $this->lang->line('application_new_media_file_was_added') . ' <strong>' . $this->view_data['project']->name . '</strong>'); } } redirect('cprojects/view/' . $id); } else { $this->theme_view = 'modal'; $this->view_data['title'] = $this->lang->line('application_add_media'); $this->view_data['form_action'] = 'cprojects/media/' . $id . '/add'; $this->content_view = 'projects/_media'; } break; case 'update': $this->content_view = 'projects/_media'; $this->view_data['media'] = ProjectHasFile::find($media_id); $this->view_data['project'] = Project::find($id); if ($_POST) { unset($_POST['send']); unset($_POST['_wysihtml5_mode']); unset($_POST['files']); $_POST = array_map('htmlspecialchars', $_POST); $media_id = $_POST['id']; $media = ProjectHasFile::find($media_id); if ($this->view_data['media']->client_id != "0") { $media->update_attributes($_POST); } if (!$media) { $this->session->set_flashdata('message', 'error:' . $this->lang->line('messages_save_media_error')); } else { $this->session->set_flashdata('message', 'success:' . $this->lang->line('messages_save_media_success')); } redirect('cprojects/view/' . $id); } else { $this->theme_view = 'modal'; $this->view_data['title'] = $this->lang->line('application_edit_media'); $this->view_data['form_action'] = 'cprojects/media/' . $id . '/update/' . $media_id; $this->content_view = 'projects/_media'; } break; case 'delete': $media = ProjectHasFile::find($media_id); if ($media->client_id != "0") { $media->delete(); $this->load->database(); $sql = "DELETE FROM messages WHERE media_id = {$media_id}"; $this->db->query($sql); } if (!$media) { $this->session->set_flashdata('message', 'error:' . $this->lang->line('messages_delete_media_error')); } else { unlink('./files/media/' . $media->savename); $this->session->set_flashdata('message', 'success:' . $this->lang->line('messages_delete_media_success')); } redirect('cprojects/view/' . $id); break; default: $this->view_data['project'] = Project::find($id); $this->content_view = 'projects/client_views/media'; break; } }
function media($id = FALSE, $condition = FALSE, $media_id = FALSE) { $this->view_data['submenu'] = array($this->lang->line('application_back') => 'cprojects', $this->lang->line('application_overview') => 'cprojects/view/' . $id, $this->lang->line('application_media') => 'cprojects/media/' . $id); switch ($condition) { case 'view': if ($_POST) { unset($_POST['send']); unset($_POST['_wysihtml5_mode']); //$_POST = array_map('htmlspecialchars', $_POST); $_POST['project_id'] = $id; $_POST['media_id'] = $media_id; $_POST['from'] = $this->client->firstname . ' ' . $this->client->lastname; $message = Message::create($_POST); if (!$message) { $this->session->set_flashdata('message', 'error:' . $this->lang->line('messages_save_message_error')); } else { $this->session->set_flashdata('message', 'success:' . $this->lang->line('messages_save_message_success')); } redirect('cprojects/media/' . $id . '/view/' . $media_id); } $this->content_view = 'projects/client_views/view_media'; $this->view_data['media'] = ProjectHasFile::find($media_id); $this->view_data['form_action'] = 'cprojects/media/' . $id . '/view/' . $media_id; $this->view_data['filetype'] = explode('.', $this->view_data['media']->filename); $this->view_data['filetype'] = $this->view_data['filetype'][1]; $this->view_data['backlink'] = 'cprojects/view/' . $id; break; case 'add': $this->content_view = 'projects/_media'; $this->view_data['project'] = Project::find($id); if ($_POST) { $config['upload_path'] = './files/media/'; $config['encrypt_name'] = TRUE; $config['allowed_types'] = '*'; $this->load->library('upload', $config); if (!$this->upload->do_upload()) { $error = $this->upload->display_errors('', ' '); $this->session->set_flashdata('message', 'error:' . $error); redirect('cprojects/view/' . $id); } else { $data = array('upload_data' => $this->upload->data()); $_POST['filename'] = $data['upload_data']['orig_name']; $_POST['savename'] = $data['upload_data']['file_name']; $_POST['type'] = $data['upload_data']['file_type']; } unset($_POST['send']); unset($_POST['userfile']); unset($_POST['file-name']); $_POST = array_map('htmlspecialchars', $_POST); $_POST['project_id'] = $id; $_POST['client_id'] = $this->client->id; $media = ProjectHasFile::create($_POST); if (!$media) { $this->session->set_flashdata('message', 'error:' . $this->lang->line('messages_save_media_error')); } else { $this->session->set_flashdata('message', 'success:' . $this->lang->line('messages_save_media_success')); } redirect('cprojects/view/' . $id); } else { $this->theme_view = 'modal'; $this->view_data['title'] = $this->lang->line('application_add_media'); $this->view_data['form_action'] = 'cprojects/media/' . $id . '/add'; $this->content_view = 'projects/_media'; } break; case 'update': $this->content_view = 'projects/_media'; $this->view_data['media'] = ProjectHasFile::find($media_id); $this->view_data['project'] = Project::find($id); if ($_POST) { unset($_POST['send']); unset($_POST['_wysihtml5_mode']); $_POST = array_map('htmlspecialchars', $_POST); $media_id = $_POST['id']; $media = ProjectHasFile::find($media_id); if ($this->view_data['media']->client_id != "0") { $media->update_attributes($_POST); } if (!$media) { $this->session->set_flashdata('message', 'error:' . $this->lang->line('messages_save_media_error')); } else { $this->session->set_flashdata('message', 'success:' . $this->lang->line('messages_save_media_success')); } redirect('cprojects/view/' . $id); } else { $this->theme_view = 'modal'; $this->view_data['title'] = $this->lang->line('application_edit_media'); $this->view_data['form_action'] = 'cprojects/media/' . $id . '/update/' . $media_id; $this->content_view = 'projects/_media'; } break; case 'delete': $media = ProjectHasFile::find($media_id); if ($media->client_id != "0") { $media->delete(); $this->load->database(); $sql = "DELETE FROM messages WHERE media_id = {$media_id}"; $this->db->query($sql); } if (!$media) { $this->session->set_flashdata('message', 'error:' . $this->lang->line('messages_delete_media_error')); } else { unlink('./files/media/' . $media->savename); $this->session->set_flashdata('message', 'success:' . $this->lang->line('messages_delete_media_success')); } redirect('cprojects/view/' . $id); break; default: $this->view_data['project'] = Project::find($id); $this->content_view = 'projects/client_views/media'; break; } }