load->model('wali_santri_model'); $this->load->model('santri_model'); $this->load->model('chat_model'); is_logged_in(); } public function index() { $data['title'] = 'Wali Santri'; $data['admin'] = $this->db->get_where('admin', ['email' => $this->session->userdata('email')])->row_array(); $data['santri'] = $this->wali_santri_model->get_all_santri(); // Tambahkan data santri $data['santri'] = $this->db->select('tb_santri.id_santri, tb_santri.NIS, tb_santri.nama_santri, tb_wali_santri.id_wali_santri, tb_wali_santri.nama_wali_santri, tb_wali_santri.alamat, tb_wali_santri.no_telepon, tb_wali_santri.email, tb_wali_santri.password, tb_wali_santri.pekerjaan') ->from('tb_santri') ->join('tb_wali_santri', 'tb_santri.id_santri = tb_wali_santri.id_santri', 'left') ->get() ->result(); $this->load->view('templates/header', $data); $this->load->view('templates/sidebar', $data); $this->load->view('admin/wali_santri', $data); // Pastikan data santri dikirim ke view wali_santri $this->load->view('templates/footer'); } public function get_all_santri() { $this->db->select('tb_wali_santri.nama_wali_santri, tb_santri.nama_santri, tb_wali_santri.alamat, tb_wali_santri.no_telepon, tb_santri.id_santri'); $this->db->from('tb_wali_santri'); $this->db->join('tb_santri', 'tb_santri.id_santri = tb_wali_santri.id_santri'); return $this->db->get()->result(); } public function tambah($id_santri = null) { // Set judul halaman $data['title'] = 'Tambah Wali Santri'; // Periksa apakah id_santri ada dan valid if ($id_santri && is_numeric($id_santri)) { // Ambil data santri berdasarkan id_santri dari model $santri = $this->santri_model->get_santri_by_id($id_santri); if ($santri) { $data['santri'] = $santri; // Berikan data santri jika ditemukan } else { $data['santri'] = null; // Set null jika data tidak ditemukan $this->session->set_flashdata('error', 'Data santri tidak ditemukan'); } } else { $data['santri'] = null; // Set null jika id_santri tidak ada atau tidak valid } // Load view dengan data santri $data['admin'] = $this->db->get_where('admin', ['email' => $this->session->userdata('email')])->row_array(); $this->load->view('templates/header', $data); $this->load->view('templates/sidebar', $data); $this->load->view('admin/tambah_wali_santri', $data); // Kirim data ke view $this->load->view('templates/footer'); } public function tambah_aksi() { $id_santri = $this->input->post('id_santri'); // Cek apakah wali santri dengan username ini sudah ada untuk santri tersebut if ($this->wali_santri_model->check_wali_exists($id_santri)) { $this->session->set_flashdata('pesan', ''); redirect('santri'); } $this->_rules(); if ($this->form_validation->run() == FALSE) { $this->tambah(); } else { // Cek apakah id_santri kosong $id_santri = $this->input->post('id_santri'); if (empty($id_santri)) { $this->session->set_flashdata('error', 'Kesalahan: id_santri tidak boleh kosong!'); redirect('walisantri'); return; } $data = array( 'email' => $this->input->post('email'), 'password' => $this->input->post('password'), 'nama_wali_santri' => $this->input->post('nama_wali_santri'), 'id_santri' => $id_santri, // 'no_ktp' => $this->input->post('no_ktp'), // 'tempat_lahir' => $this->input->post('tempat_lahir'), // 'tanggal_lahir' => $this->input->post('tanggal_lahir'), 'alamat' => $this->input->post('alamat'), 'no_telepon' => $this->input->post('no_telepon'), 'pekerjaan' => $this->input->post('pekerjaan'), ); $this->wali_santri_model->insert_data($data, 'tb_wali_santri'); $this->session->set_flashdata('pesan', ''); redirect('walisantri'); } } public function edit($id_wali_santri = null) { $this->_rules(); if ($id_wali_santri === null) { redirect('walisantri'); } else { $data = array( 'id_wali_santri' => $id_wali_santri, 'email' => $this->input->post('email'), 'password' => $this->input->post('password'), 'nama_wali_santri' => $this->input->post('nama_wali_santri'), 'id_santri' => $this->input->post('id_santri'), // 'no_ktp' => $this->input->post('no_ktp'), // 'tempat_lahir' => $this->input->post('tempat_lahir'), // 'tanggal_lahir' => $this->input->post('tanggal_lahir'), 'alamat' => $this->input->post('alamat'), 'no_telepon' => $this->input->post('no_telepon'), 'pekerjaan' => $this->input->post('pekerjaan'), ); $this->wali_santri_model->update_data($data, 'tb_wali_santri'); $this->session->set_flashdata('pesan', ''); redirect('walisantri'); } } public function view($id_santri) { // Load model jika belum diload $this->load->model('wali_santri_model'); // Ambil data wali santri berdasarkan id_santri dari model $data['santri'] = $this->wali_santri_model->get_santri_by_id($id_santri); // Periksa apakah data ditemukan if ($data['santri']) { // Kirim data ke view untuk ditampilkan dalam modal $this->load->view('wali_santri', $data); } else { // Jika data tidak ditemukan, redirect ke halaman utama dengan pesan error $this->session->set_flashdata('pesan', 'Data wali santri tidak ditemukan'); redirect('admin/santri'); // Ubah sesuai route halaman utama Anda } } private function _rules() { $this->form_validation->set_rules('email', 'Email', 'required', array( 'required' => '%s harus diisi!!' )); $this->form_validation->set_rules('password', 'Password', 'required', array( 'required' => '%s harus diisi!!' )); $this->form_validation->set_rules('nama_wali_santri', 'Nama Wali Santri', 'required', array( 'required' => '%s harus diisi!!' )); // $this->form_validation->set_rules('no_ktp', 'No KTP', 'required', array( // 'required' => '%s harus diisi!!' // )); // $this->form_validation->set_rules('tempat_lahir', 'Tempat Lahir', 'required', array( // 'required' => '%s harus diisi!!' // )); // $this->form_validation->set_rules('tanggal_lahir', 'Tanggal Lahir', 'required', array( // 'required' => '%s harus diisi!!' // )); $this->form_validation->set_rules('alamat', 'Alamat', 'required', array( 'required' => '%s harus diisi!!' )); $this->form_validation->set_rules('no_telepon', 'No Telepon', 'required', array( 'required' => '%s harus diisi!!' )); $this->form_validation->set_rules('pekerjaan', 'Pekerjaan', 'required', array( 'required' => '%s harus diisi!!' )); } public function chatAdmin($id_wali_santri = null) { $data['title'] = 'Halaman Pesan'; $data['admin'] = $this->db->get_where('admin', ['email' => $this->session->userdata('email')])->row_array(); $data['chat'] = $this->chat_model->getChatByWali($id_wali_santri); $data['id_wali_santri'] = $id_wali_santri; $this->load->view('templates/header', $data); $this->load->view('templates/sidebar', $data); $this->load->view('admin/chat_admin', $data); $this->load->view('templates/footer'); } public function sendChatFromAdmin() { $id_wali_santri = $this->input->post('id_wali_santri'); $message = $this->input->post('message'); $sender = 'admin'; if ($id_wali_santri && $message) { $this->chat_model->insertChat($id_wali_santri, $sender, $message); redirect('chat/chatadmin/' . $id_wali_santri); } else { show_error('Input tidak lengkap!'); } } public function saveToken() { $input = json_decode(file_get_contents("php://input"), true); $id_wali_santri = $input['id_wali_santri']; $token = $input['token']; if ($id_wali_santri && $token) { $data = [ 'id_wali_santri' => $id_wali_santri, 'token' => $token, 'created_at' => date('Y-m-d H:i:s') ]; // Jika sudah ada token, update $existing = $this->db->get_where('fcm_tokens', ['id_wali_santri' => $id_wali_santri])->row(); if ($existing) { $this->db->where('id_wali_santri', $id_wali_santri)->update('fcm_tokens', $data); } else { $this->db->insert('fcm_tokens', $data); } echo json_encode(['status' => 'success']); } else { echo json_encode(['status' => 'failed']); } } }