Advertisement
Guest User

Siswa

a guest
Mar 18th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.15 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. class Siswa extends CI_Controller {
  5.  
  6. public function __construct(){
  7. parent::__construct();
  8. if (!$this->ion_auth->logged_in()){
  9. redirect('auth');
  10. }else if (!$this->ion_auth->is_admin()){
  11. show_error('Hanya Administrator yang diberi hak untuk mengakses halaman ini, <a href="'.base_url('dashboard').'">Kembali ke menu awal</a>', 403, 'Akses Terlarang');
  12. }
  13. $this->load->library(['datatables', 'form_validation']);// Load Library Ignited-Datatables
  14. $this->load->model('Master_model', 'master');
  15. $this->form_validation->set_error_delimiters('','');
  16. }
  17.  
  18. public function output_json($data, $encode = true)
  19. {
  20. if($encode) $data = json_encode($data);
  21. $this->output->set_content_type('application/json')->set_output($data);
  22. }
  23.  
  24. public function index()
  25. {
  26. $data = [
  27. 'user' => $this->ion_auth->user()->row(),
  28. 'judul' => 'Siswa',
  29. 'subjudul'=> 'Data Siswa'
  30. ];
  31. $this->load->view('_templates/dashboard/_header.php', $data);
  32. $this->load->view('master/siswa/data');
  33. $this->load->view('_templates/dashboard/_footer.php');
  34. }
  35.  
  36. public function data()
  37. {
  38. $this->output_json($this->master->getDatasiswa(), false);
  39. }
  40.  
  41. public function add()
  42. {
  43. $data = [
  44. 'user' => $this->ion_auth->user()->row(),
  45. 'judul' => 'siswa',
  46. 'subjudul'=> 'Tambah Data siswa'
  47. ];
  48. $data['jurusan'] = $this->master->getSemuaJurusan();
  49. $this->load->view('_templates/dashboard/_header.php', $data);
  50. $this->load->view('master/siswa/add');
  51. $this->load->view('_templates/dashboard/_footer.php');
  52. }
  53.  
  54. public function edit($id)
  55. {
  56. $mhs = $this->master->getsiswaById($id);
  57. $data = [
  58. 'user' => $this->ion_auth->user()->row(),
  59. 'judul' => 'siswa',
  60. 'subjudul' => 'Edit Data siswa',
  61. 'jurusan' => $this->master->getJurusan(),
  62. 'kelas' => $this->master->getKelasByJurusan($mhs->jurusan_id),
  63. 'siswa' => $mhs
  64. ];
  65. $this->load->view('_templates/dashboard/_header.php', $data);
  66. $this->load->view('master/siswa/edit');
  67. $this->load->view('_templates/dashboard/_footer.php');
  68. }
  69.  
  70. public function file_config()
  71. {
  72. $allowed_type = [
  73. "image/jpeg", "image/jpg", "image/png", "image/gif"
  74. ];
  75. $config['upload_path'] = FCPATH.'uploads/images/';
  76. $config['allowed_types'] = 'jpeg|jpg|png|gif';
  77. $config['encrypt_name'] = TRUE;
  78. $config['file_name'] = date('YmdHis');
  79.  
  80. return $this->load->library('upload', $config);
  81. }
  82.  
  83. public function validasi_siswa($method)
  84. {
  85. $id_siswa = $this->input->post('id_siswa', true);
  86. $nim = $this->input->post('nim', true);
  87. $email = $this->input->post('email', true);
  88. if($method == 'add'){
  89. $u_nim = '|is_unique[siswa.nim]';
  90. $u_email = '|is_unique[siswa.email]';
  91. }else{
  92. $dbdata = $this->master->getsiswaById($id_siswa);
  93. $u_nim = $dbdata->nim === $nim ? "" : "|is_unique[siswa.nim]";
  94. $u_email = $dbdata->email === $email ? "" : "|is_unique[siswa.email]";
  95. }
  96. $this->form_validation->set_rules('nim', 'NIM', 'required|numeric|trim|min_length[8]|max_length[12]'.$u_nim);
  97. $this->form_validation->set_rules('nama', 'Nama', 'required|trim|min_length[3]|max_length[50]');
  98. $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email'.$u_email);
  99. $this->form_validation->set_rules('jenis_kelamin', 'Jenis Kelamin', 'required');
  100. $this->form_validation->set_rules('jurusan', 'Jurusan', 'required');
  101. $this->form_validation->set_rules('kelas', 'Kelas', 'required');
  102.  
  103. $this->form_validation->set_message('required', 'Kolom {field} wajib diisi');
  104. }
  105.  
  106. public function save()
  107. {
  108. $method = $this->input->post('method', true);
  109. $this->validasi_siswa($method);
  110. $this->file_config();
  111.  
  112. if($this->form_validation->run() === FALSE){
  113. $method==='add'? $this->add() : $this->edit();
  114. }else{
  115. $data = [
  116. 'nim' => $this->input->post('nim', true),
  117. 'email' => $this->input->post('email', true),
  118. 'nama' => $this->input->post('nama', true),
  119. 'jenis_kelamin' => $this->input->post('jenis_kelamin', true),
  120. 'kelas_id' => $this->input->post('kelas', true),
  121. 'alamat' => $this->input->post('alamat', true),
  122. 'no_hp' => $this->input->post('no_hp', true),
  123. 'tp_lahir' => $this->input->post('tp_lahir', true),
  124. 'tg_lahir' => date("Y-m-d", strtotime($this->input->post('tg_lahir', true))),
  125. 'agama' => $this->input->post('agama', true),
  126. 'tingkat' => $this->input->post('tingkat', true),
  127. 'asal_sekolah' => $this->input->post('asal_sekolah', true),
  128. 'nama_ayah' => $this->input->post('nama_ayah', true),
  129. 'nama_ibu' => $this->input->post('nama_ibu', true),
  130. 'kerja_ayah' => $this->input->post('kerja_ayah', true),
  131. 'kerja_ibu' => $this->input->post('kerja_ibu', true),
  132. 'kontak_ayah' => $this->input->post('kontak_ayah', true),
  133. 'kontak_ibu' => $this->input->post('kontak_ibu', true),
  134. ];
  135.  
  136. if(!empty($_FILES['foto']['name'])){
  137. if (!$this->upload->do_upload('foto')){
  138. $error = $this->upload->display_errors();
  139. show_error($error, 500, 'File Gambar Error');
  140. exit();
  141. }else{
  142. if($method === 'edit'){
  143. if(!unlink($img_src.$getsoal->file)){
  144. show_error('Error saat delete gambar <br/>'.var_dump($getsoal), 500, 'Error Edit Gambar');
  145. exit();
  146. }
  147. }
  148. $input['foto'] = $this->upload->data('file_name');
  149. }
  150. }
  151.  
  152. if($method === 'add'){
  153. $action = $this->master->create('siswa', $input);
  154. }else if($method === 'edit'){
  155. $id = $this->input->post('id_siswa', true);
  156. $action = $this->master->update('siswa', $input, 'id_siswa', $id);
  157. }
  158.  
  159. if($action){
  160. $this->output_json(['status'=>true]);
  161. }else{
  162. $this->output_json(['status'=>false]);
  163. }
  164. }
  165. }
  166.  
  167. public function delete()
  168. {
  169. $chk = $this->input->post('checked', true);
  170. if(!$chk){
  171. $this->output_json(['status'=>false]);
  172. }else{
  173. if($this->master->delete('siswa', $chk, 'id_siswa')){
  174. $this->output_json(['status'=>true, 'total'=>count($chk)]);
  175. }
  176. }
  177. }
  178.  
  179. public function create_user()
  180. {
  181. $id = $this->input->get('id', true);
  182. $data = $this->master->getsiswaById($id);
  183. $nama = explode(' ',$data->nama);
  184. $first_name = $nama[0];
  185. $last_name = end($nama);
  186.  
  187. $username = $data->nim;
  188. $password = $data->nim;
  189. $email = $data->email;
  190. $additional_data = [
  191. 'first_name' => $first_name,
  192. 'last_name' => $last_name
  193. ];
  194. $group = array('3'); // Sets user to dosen.
  195.  
  196. if($this->ion_auth->username_check($username)){
  197. $data = [
  198. 'status' => false,
  199. 'msg' => 'Username tidak tersedia (sudah digunakan).'
  200. ];
  201. }else if($this->ion_auth->email_check($email)){
  202. $data = [
  203. 'status' => false,
  204. 'msg' => 'Email tidak tersedia (sudah digunakan).'
  205. ];
  206. }else{
  207. $this->ion_auth->register($username, $password, $email, $additional_data, $group);
  208. $data = [
  209. 'status' => true,
  210. 'msg' => 'User berhasil dibuat. NIP digunakan sebagai password pada saat login.'
  211. ];
  212. }
  213. $this->output_json($data);
  214. }
  215.  
  216. function add_ajax_sis($jenis){
  217. $query = $this->db->get_where('sekolah',array('jenis'=>$jenis));
  218. $data = "<option value=''>- Pilih Sekolah -</option>";
  219. foreach ($query->result() as $value) {
  220. $data .= "<option value='".$value->nama_sekolah."'>".$value->nama_sekolah."</option>";
  221. }
  222. echo $data;
  223. }
  224.  
  225. function add_ajax_test($jenis){
  226. $query = $this->db->get_where('test',array('jurusan_id'=>$jenis));
  227. $data = "<option value=''>- Pilih Jenis Test -</option>";
  228. foreach ($query->result() as $value) {
  229. $data .= "<option value='".$value->id_test."'>".$value->nama_test."</option>";
  230. }
  231. echo $data;
  232. }
  233.  
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement