<?php
class Add extends MX_Controller {
private $error = array();
public function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('upload');
$this->load->model('admin/user/add_user_model');
}
public function index() {
$this->form_validation->set_rules('username', 'Username', 'trim|required');
$this->form_validation->set_rules('firstname', 'Firstname', 'trim');
$this->form_validation->set_rules('lastname', 'Lastname', 'trim');
$this->form_validation->set_rules('email', 'Email', 'trim|valid_email');
$this->form_validation->set_rules('password', 'Password', 'trim');
$this->form_validation->set_rules('confirm_password', 'Confirm Password', 'trim|matches[password]');
if (($this->form_validation->run()) && $this->upload()) {
$upload_data = $this->upload->data();
$this->db->trans_start();
$insert_user = array(
'status' => $this->input->post('status'),
'date_added' => date('Y-m-d')
);
$set_user_id = $this->add_user_model->insert_user($insert_user);
if ($this->checkinsertedtodb($set_user_id)) {
$insert_userdata = array(
'user_id' => $set_user_id,
'username' => ($this->input->post('username')) ? $this->input->post('username') : '',
'password' => '',
'firstname' => ($this->input->post('firstname')) ? $this->input->post('firstname') : '',
'lastname' => ($this->input->post('lastname')) ? $this->input->post('lastname') : '',
'email' => ($this->input->post('email')) ? $this->input->post('email') : '',
'image' => ($upload_data['file_name']) ? $upload_data['file_name'] : ''
);
$userdata_inserted = $this->add_user_model->insert_userdata($insert_userdata);
if (($this->checkinsertedtodb($userdata_inserted)) && $this->db->trans_status()) {
redirect('admin/user/users');
$this->db->trans_complete();
} else {
$this->db->trans_rollback();
}
}
}
if (isset($this->error['warning'])) {
$data['error'] = $this->error['warning'];
} else {
$data['error'] = '';
}
$data['header'] = Modules::run('admin/common/header/index');
$data['footer'] = Modules::run('admin/common/footer/index');
$this->load->view('user/add_view', $data);
}
public function upload($field = 'userfile') {
$users_dir = $this->input->post('username');
$directory = FCPATH . 'uploads/users/' . $users_dir;
if (isset($_FILES[$field]) && $_FILES[$field]['size'] > 0) {
if (is_dir($directory)) {
$this->error['warning'] = 'This ' . $directory . ' is all ready created!';
}
if (mkdir($directory)) {
$config['upload_path'] = $directory . '/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 3000;
$config['max_width'] = 0;
$config['max_height'] = 0;
$config['overwrite'] = true;
$this->upload->initialize($config);
if (!$this->upload->do_upload($field)) {
$this->error['warning'] = $this->upload->display_errors();
}
}
return !$this->error;
}
}
public function checkinsertedtodb($inserted) {
if (!$inserted) {
$this->error['warning'] = 'Opps somthing has gone wrong could not insert data!';
}
return !$this->error;
}
}