request->getVar('keywords'); if (isset($keywords)) { $totalnya = $m_siswa->total_cari($keywords); $title = 'Hasil pencarian: ' . $keywords . ' - ' . $totalnya->total . ' ditemukan'; $page = (int) ($this->request->getGet('page') ?? 1); $perPage = 10; $total = $totalnya->total; $pager_links = $pager->makeLinks($page, $perPage, $total, 'bootstrap_pagination'); $page = ($this->request->getGet('page')) ? ($this->request->getGet('page') - 1) * $perPage : 0; $siswa = $m_siswa->paginasi_cari($keywords, $perPage, $page); } else { $totalnya = $m_siswa->total(); $title = 'Data Master Siswa (' . $totalnya->total . ')'; $page = (int) ($this->request->getGet('page') ?? 1); $perPage = 10; $total = $totalnya->total; $pager_links = $pager->makeLinks($page, $perPage, $total, 'bootstrap_pagination'); $page = ($this->request->getGet('page')) ? ($this->request->getGet('page') - 1) * $perPage : 0; $siswa = $m_siswa->paginasi($perPage, $page); } $data = [ 'title' => $title, 'siswa' => $siswa, 'pagination' => $pager_links, 'content' => 'admin/siswa/index' ]; echo view('admin/layout/wrapper', $data); } // Fungsi untuk tambah data siswa public function tambah() { $m_siswa = new Siswa_model(); $siswa = $m_siswa->last_id(); $urutan = ($siswa) ? $siswa->id_siswa + 1 : 1; if ($this->request->getMethod() === 'post' && $this->validate([ 'nama_siswa' => 'required', ])) { $hashedPassword = password_hash($this->request->getPost('nis'), PASSWORD_DEFAULT); // Membuat slug otomatis $slug_siswa = $this->createSlug($this->request->getPost('nama_siswa')); // Menangkap data jenis pembiayaan $jenis_pembiayaan = $this->request->getPost('jenis_pembiayaan'); // Menyiapkan data untuk disimpan ke database $data = [ 'nama_siswa' => $this->request->getPost('nama_siswa'), 'slug_siswa' => $slug_siswa, // Menambahkan slug_siswa 'nis' => $this->request->getPost('nis'), 'password' => $hashedPassword, 'jenis_kelamin' => $this->request->getPost('jenis_kelamin'), 'kategori' => $this->request->getPost('kategori'), 'telepon' => $this->request->getPost('telepon'), 'email' => $this->request->getPost('email'), 'status_siswa' => $this->request->getPost('status_siswa'), 'id_tahun' => $this->request->getPost('id_tahun'), 'id_kelas' => $this->request->getPost('id_kelas'), 'nama_ayah' => $this->request->getPost('nama_ayah'), 'telepon_ayah' => $this->request->getPost('telepon_ayah'), 'nama_ibu' => $this->request->getPost('nama_ibu'), 'telepon_ibu' => $this->request->getPost('telepon_ibu'), ]; // Menyimpan data ke database if ($m_siswa->insert($data)) { $this->session->setFlashdata('sukses', 'Data siswa telah ditambah'); } else { $this->session->setFlashdata('error', 'Terjadi kesalahan, data tidak bisa ditambahkan'); } return redirect()->to(base_url('admin/siswa')); } else { $data = [ 'title' => 'Tambah Data Siswa', 'siswa' => $siswa, 'urutan' => $urutan, 'content' => 'admin/siswa/tambah' ]; echo view('admin/layout/wrapper', $data); } } // Fungsi untuk edit data siswa public function edit($id_siswa) { $m_siswa = new Siswa_model(); $siswa = $m_siswa->detail($id_siswa); if ($this->request->getMethod() === 'post' && $this->validate([ 'nama_siswa' => 'required', 'gambar' => [ 'ext_in[gambar,jpg,jpeg,gif,png,svg]', 'max_size[gambar,4096]', ], ])) { // Penanganan unggah gambar (update) $gambar = $this->request->getFile('gambar'); if ($gambar && $gambar->isValid() && !$gambar->hasMoved()) { $namabaru = $gambar->getRandomName(); $gambar->move(WRITEPATH . 'uploads', $namabaru); // Simpan file di folder "uploads" } else { // Jika tidak ada gambar baru yang diunggah, gunakan gambar lama $namabaru = $siswa->gambar; // Ambil gambar lama jika tidak ada gambar baru } // Membuat slug otomatis jika slug kosong $slug_siswa = $siswa->slug_siswa; if (empty($slug_siswa)) { $slug_siswa = $this->createSlug($this->request->getPost('nama_siswa')); // Jika slug kosong, buat slug } // Menangkap data jenis pembiayaan $jenis_pembiayaan = $this->request->getPost('jenis_pembiayaan'); // Menyimpan perubahan data $data = [ 'nama_siswa' => $this->request->getPost('nama_siswa'), 'slug_siswa' => $slug_siswa, // Masukkan slug_siswa 'nis' => $this->request->getPost('nis'), 'jenis_kelamin' => $this->request->getPost('jenis_kelamin'), 'telepon' => $this->request->getPost('telepon'), 'email' => $this->request->getPost('email'), 'gambar' => $namabaru, // Simpan nama gambar 'status_siswa' => $this->request->getPost('status_siswa'), 'id_tahun' => $this->request->getPost('id_tahun'), 'id_kelas' => $this->request->getPost('id_kelas'), 'nama_ayah' => $this->request->getPost('nama_ayah'), 'telepon_ayah' => $this->request->getPost('telepon_ayah'), 'nama_ibu' => $this->request->getPost('nama_ibu'), 'telepon_ibu' => $this->request->getPost('telepon_ibu'), 'kategori' => $jenis_pembiayaan, // Menyimpan jenis pembiayaan ]; // Menyimpan data ke database if ($m_siswa->update($id_siswa, $data)) { $this->session->setFlashdata('sukses', 'Data telah disimpan'); } else { $this->session->setFlashdata('error', 'Terjadi kesalahan, data tidak bisa disimpan'); } return redirect()->to(base_url('admin/siswa')); } else { // Kirim data ke view untuk menampilkan form edit dengan data yang sudah ada $data = [ 'title' => 'Edit Siswa: ' . $siswa->nama_siswa, 'siswa' => $siswa, 'content' => 'admin/siswa/edit' ]; echo view('admin/layout/wrapper', $data); } } }