Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- defined('BASEPATH') OR exit('No direct script access allowed');
- class Siswa extends CI_Controller {
- public function __construct(){
- parent::__construct();
- if (!$this->ion_auth->logged_in()){
- redirect('auth');
- }else if (!$this->ion_auth->is_admin()){
- show_error('Hanya Administrator yang diberi hak untuk mengakses halaman ini, <a href="'.base_url('dashboard').'">Kembali ke menu awal</a>', 403, 'Akses Terlarang');
- }
- $this->load->library(['datatables', 'form_validation']);// Load Library Ignited-Datatables
- $this->load->model('Master_model', 'master');
- $this->form_validation->set_error_delimiters('','');
- }
- public function output_json($data, $encode = true)
- {
- if($encode) $data = json_encode($data);
- $this->output->set_content_type('application/json')->set_output($data);
- }
- public function index()
- {
- $data = [
- 'user' => $this->ion_auth->user()->row(),
- 'judul' => 'Siswa',
- 'subjudul'=> 'Data Siswa'
- ];
- $this->load->view('_templates/dashboard/_header.php', $data);
- $this->load->view('master/siswa/data');
- $this->load->view('_templates/dashboard/_footer.php');
- }
- public function data()
- {
- $this->output_json($this->master->getDatasiswa(), false);
- }
- public function add()
- {
- $data = [
- 'user' => $this->ion_auth->user()->row(),
- 'judul' => 'siswa',
- 'subjudul'=> 'Tambah Data siswa'
- ];
- $data['jurusan'] = $this->master->getSemuaJurusan();
- $this->load->view('_templates/dashboard/_header.php', $data);
- $this->load->view('master/siswa/add');
- $this->load->view('_templates/dashboard/_footer.php');
- }
- public function edit($id)
- {
- $mhs = $this->master->getsiswaById($id);
- $data = [
- 'user' => $this->ion_auth->user()->row(),
- 'judul' => 'siswa',
- 'subjudul' => 'Edit Data siswa',
- 'jurusan' => $this->master->getJurusan(),
- 'kelas' => $this->master->getKelasByJurusan($mhs->jurusan_id),
- 'siswa' => $mhs
- ];
- $this->load->view('_templates/dashboard/_header.php', $data);
- $this->load->view('master/siswa/edit');
- $this->load->view('_templates/dashboard/_footer.php');
- }
- public function file_config()
- {
- $allowed_type = [
- "image/jpeg", "image/jpg", "image/png", "image/gif"
- ];
- $config['upload_path'] = FCPATH.'uploads/images/';
- $config['allowed_types'] = 'jpeg|jpg|png|gif';
- $config['encrypt_name'] = TRUE;
- $config['file_name'] = date('YmdHis');
- return $this->load->library('upload', $config);
- }
- public function validasi_siswa($method)
- {
- $id_siswa = $this->input->post('id_siswa', true);
- $nim = $this->input->post('nim', true);
- $email = $this->input->post('email', true);
- if($method == 'add'){
- $u_nim = '|is_unique[siswa.nim]';
- $u_email = '|is_unique[siswa.email]';
- }else{
- $dbdata = $this->master->getsiswaById($id_siswa);
- $u_nim = $dbdata->nim === $nim ? "" : "|is_unique[siswa.nim]";
- $u_email = $dbdata->email === $email ? "" : "|is_unique[siswa.email]";
- }
- $this->form_validation->set_rules('nim', 'NIM', 'required|numeric|trim|min_length[8]|max_length[12]'.$u_nim);
- $this->form_validation->set_rules('nama', 'Nama', 'required|trim|min_length[3]|max_length[50]');
- $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email'.$u_email);
- $this->form_validation->set_rules('jenis_kelamin', 'Jenis Kelamin', 'required');
- $this->form_validation->set_rules('jurusan', 'Jurusan', 'required');
- $this->form_validation->set_rules('kelas', 'Kelas', 'required');
- $this->form_validation->set_message('required', 'Kolom {field} wajib diisi');
- }
- public function save()
- {
- $method = $this->input->post('method', true);
- $this->validasi_siswa($method);
- $this->file_config();
- if($this->form_validation->run() === FALSE){
- $method==='add'? $this->add() : $this->edit();
- }else{
- $data = [
- 'nim' => $this->input->post('nim', true),
- 'email' => $this->input->post('email', true),
- 'nama' => $this->input->post('nama', true),
- 'jenis_kelamin' => $this->input->post('jenis_kelamin', true),
- 'kelas_id' => $this->input->post('kelas', true),
- 'alamat' => $this->input->post('alamat', true),
- 'no_hp' => $this->input->post('no_hp', true),
- 'tp_lahir' => $this->input->post('tp_lahir', true),
- 'tg_lahir' => date("Y-m-d", strtotime($this->input->post('tg_lahir', true))),
- 'agama' => $this->input->post('agama', true),
- 'tingkat' => $this->input->post('tingkat', true),
- 'asal_sekolah' => $this->input->post('asal_sekolah', true),
- 'nama_ayah' => $this->input->post('nama_ayah', true),
- 'nama_ibu' => $this->input->post('nama_ibu', true),
- 'kerja_ayah' => $this->input->post('kerja_ayah', true),
- 'kerja_ibu' => $this->input->post('kerja_ibu', true),
- 'kontak_ayah' => $this->input->post('kontak_ayah', true),
- 'kontak_ibu' => $this->input->post('kontak_ibu', true),
- ];
- if(!empty($_FILES['foto']['name'])){
- if (!$this->upload->do_upload('foto')){
- $error = $this->upload->display_errors();
- show_error($error, 500, 'File Gambar Error');
- exit();
- }else{
- if($method === 'edit'){
- if(!unlink($img_src.$getsoal->file)){
- show_error('Error saat delete gambar <br/>'.var_dump($getsoal), 500, 'Error Edit Gambar');
- exit();
- }
- }
- $input['foto'] = $this->upload->data('file_name');
- }
- }
- if($method === 'add'){
- $action = $this->master->create('siswa', $input);
- }else if($method === 'edit'){
- $id = $this->input->post('id_siswa', true);
- $action = $this->master->update('siswa', $input, 'id_siswa', $id);
- }
- if($action){
- $this->output_json(['status'=>true]);
- }else{
- $this->output_json(['status'=>false]);
- }
- }
- }
- public function delete()
- {
- $chk = $this->input->post('checked', true);
- if(!$chk){
- $this->output_json(['status'=>false]);
- }else{
- if($this->master->delete('siswa', $chk, 'id_siswa')){
- $this->output_json(['status'=>true, 'total'=>count($chk)]);
- }
- }
- }
- public function create_user()
- {
- $id = $this->input->get('id', true);
- $data = $this->master->getsiswaById($id);
- $nama = explode(' ',$data->nama);
- $first_name = $nama[0];
- $last_name = end($nama);
- $username = $data->nim;
- $password = $data->nim;
- $email = $data->email;
- $additional_data = [
- 'first_name' => $first_name,
- 'last_name' => $last_name
- ];
- $group = array('3'); // Sets user to dosen.
- if($this->ion_auth->username_check($username)){
- $data = [
- 'status' => false,
- 'msg' => 'Username tidak tersedia (sudah digunakan).'
- ];
- }else if($this->ion_auth->email_check($email)){
- $data = [
- 'status' => false,
- 'msg' => 'Email tidak tersedia (sudah digunakan).'
- ];
- }else{
- $this->ion_auth->register($username, $password, $email, $additional_data, $group);
- $data = [
- 'status' => true,
- 'msg' => 'User berhasil dibuat. NIP digunakan sebagai password pada saat login.'
- ];
- }
- $this->output_json($data);
- }
- function add_ajax_sis($jenis){
- $query = $this->db->get_where('sekolah',array('jenis'=>$jenis));
- $data = "<option value=''>- Pilih Sekolah -</option>";
- foreach ($query->result() as $value) {
- $data .= "<option value='".$value->nama_sekolah."'>".$value->nama_sekolah."</option>";
- }
- echo $data;
- }
- function add_ajax_test($jenis){
- $query = $this->db->get_where('test',array('jurusan_id'=>$jenis));
- $data = "<option value=''>- Pilih Jenis Test -</option>";
- foreach ($query->result() as $value) {
- $data .= "<option value='".$value->id_test."'>".$value->nama_test."</option>";
- }
- echo $data;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement