Advertisement
kelvindsmn

adm

Dec 29th, 2016
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 41.16 KB | None | 0 0
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. date_default_timezone_set("Asia/Jakarta");
  4.  
  5. class Adm extends CI_Controller {
  6.    
  7.     function __construct() {
  8.             parent::__construct();
  9.             $this->db->query("SET time_zone='+7:00'");
  10.     }
  11.  
  12.    
  13.     public function cek_aktif() {
  14.         if ($this->session->userdata('admin_valid') == false && $this->session->userdata('admin_id') == "") {
  15.             redirect('adm/login');
  16.         }
  17.     }
  18.    
  19.     public function index() {
  20.         $this->cek_aktif();
  21.        
  22.         $a['sess_level'] = $this->session->userdata('admin_level');
  23.         $a['sess_user'] = $this->session->userdata('admin_user');
  24.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  25.        
  26.         $a['p']         = "v_main";
  27.  
  28.         if ($a['sess_level'] == "siswa") {
  29.             $a['p_mapel']   = $this->db->query("SELECT m_mapel.nama FROM tr_siswa_mapel INNER JOIN m_mapel ON tr_siswa_mapel.id_mapel = m_mapel.id WHERE tr_siswa_mapel.id_siswa = '".$a['sess_konid']."'")->result();
  30.         }
  31.        
  32.         $this->load->view('aaa', $a);
  33.     }
  34.    
  35.  
  36.     /* == ADMIN == */
  37.     public function m_siswa() {
  38.         $this->cek_aktif();
  39.        
  40.         //var def session
  41.         $a['sess_level'] = $this->session->userdata('admin_level');
  42.         $a['sess_user'] = $this->session->userdata('admin_user');
  43.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  44.  
  45.         //var def uri segment
  46.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  47.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  48.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  49.  
  50.         //var post from json
  51.         $p = json_decode(file_get_contents('php://input'));
  52.  
  53.         //return as json
  54.         $jeson = array();
  55.  
  56.         $a['data'] = $this->db->query("SELECT m_siswa.*,
  57.                                     (SELECT COUNT(id) FROM m_admin WHERE level = 'siswa' AND kon_id = m_siswa.id) AS ada
  58.                                     FROM m_siswa")->result();
  59.  
  60.         if ($uri3 == "det") {
  61.             $a = $this->db->query("SELECT * FROM m_siswa WHERE id = '$uri4'")->row();
  62.             $this->j($a);
  63.             exit();
  64.         } else if ($uri3 == "simpan") {
  65.             $ket    = "";
  66.             if ($p->id != 0) {
  67.                 $this->db->query("UPDATE m_siswa SET nama = '".bersih($p,"nama")."', nim = '".bersih($p,"nim")."', jurusan = '".bersih($p,"jurusan")."' WHERE id = '".bersih($p,"id")."'");
  68.                 $ket = "edit";
  69.             } else {
  70.                 $ket = "tambah";
  71.                 $this->db->query("INSERT INTO m_siswa VALUES (null, '".bersih($p,"nama")."', '".bersih($p,"nim")."', '".bersih($p,"jurusan")."')");
  72.             }
  73.            
  74.             $ret_arr['status']  = "ok";
  75.             $ret_arr['caption'] = $ket." sukses";
  76.             $this->j($ret_arr);
  77.             exit();
  78.         } else if ($uri3 == "hapus") {
  79.             $this->db->query("DELETE FROM m_siswa WHERE id = '".$uri4."'");
  80.             $this->db->query("DELETE FROM m_admin WHERE level = 'siswa' AND kon_id = '".$uri4."'");        
  81.             $ret_arr['status']  = "ok";
  82.             $ret_arr['caption'] = "hapus sukses";
  83.             $this->j($ret_arr);
  84.             exit();
  85.         } else if ($uri3 == "user") {
  86.             $det_user = $this->db->query("SELECT id FROM m_siswa WHERE id = '$uri4'")->row();
  87.  
  88.             if (!empty($det_user)) {
  89.                 $this->db->query("INSERT INTO m_admin VALUES (null, 'siswa".$det_user->id."', md5('admin'), 'siswa', '".$det_user->id."')");
  90.                 $ret_arr['status']  = "ok";
  91.                 $ret_arr['caption'] = "tambah user sukses";
  92.                 $this->j($ret_arr);
  93.             } else {
  94.                 $ret_arr['status']  = "gagal";
  95.                 $ret_arr['caption'] = "tambah user gagal";
  96.                 $this->j($ret_arr);
  97.             }
  98.             exit();
  99.         } else if ($uri3 == "ambil_matkul") {
  100.  
  101.             $matkul = $this->db->query("SELECT m_mapel.*,
  102.                                         (SELECT COUNT(id) FROM tr_siswa_mapel WHERE id_siswa = ".$uri4." AND id_mapel = m_mapel.id) AS ok
  103.                                         FROM m_mapel
  104.                                         ")->result();
  105.             $ret_arr['status'] = "ok";
  106.             $ret_arr['data'] = $matkul;
  107.             $this->j($ret_arr);
  108.             exit;
  109.         } else if ($uri3 == "simpan_matkul") {
  110.             $ket    = "";
  111.             //echo var_dump($p);
  112.  
  113.             $ambil_matkul = $this->db->query("SELECT id FROM m_mapel ORDER BY id ASC")->result();
  114.             if (!empty($ambil_matkul)) {
  115.                 foreach ($ambil_matkul as $a) {
  116.                     $p_sub = "id_mapel_".$a->id;
  117.  
  118.                     if (!empty($p->$p_sub)) {
  119.                        
  120.                         $cek_sudah_ada = $this->db->query("SELECT id FROM tr_siswa_mapel WHERE  id_siswa = '".$p->id_mhs."' AND id_mapel = '".$a->id."'")->num_rows();
  121.                        
  122.  
  123.                         if ($cek_sudah_ada < 1) {
  124.                             $this->db->query("INSERT INTO tr_siswa_mapel VALUES (null, '".$p->id_mhs."', '".$a->id."')");
  125.                         } else {
  126.                             $this->db->query("UPDATE tr_siswa_mapel SET id_mapel = '".$p->$p_sub."' WHERE id_siswa = '".$p->id_mhs."' AND id_mapel = '".$a->id."'");
  127.                         }
  128.                     } else {
  129.                         //echo "0<br>";
  130.                         $this->db->query("DELETE FROM tr_siswa_mapel WHERE id_siswa = '".$p->id_mhs."' AND id_mapel = '".$a->id."'");
  131.                     }
  132.                 }
  133.             }
  134.  
  135.             $ret_arr['status']  = "ok";
  136.             $ret_arr['caption'] = $ket." sukses";
  137.             $this->j($ret_arr);
  138.             exit();
  139.         } else {
  140.             $a['p'] = "m_siswa";
  141.         }
  142.  
  143.         $this->load->view('aaa', $a);
  144.     }
  145.  
  146.     public function m_guru() {
  147.         $this->cek_aktif();
  148.        
  149.         //var def session
  150.         $a['sess_level'] = $this->session->userdata('admin_level');
  151.         $a['sess_user'] = $this->session->userdata('admin_user');
  152.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  153.  
  154.         //var def uri segment
  155.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  156.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  157.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  158.  
  159.         //var post from json
  160.         $p = json_decode(file_get_contents('php://input'));
  161.  
  162.         //return as json
  163.         $jeson = array();
  164.  
  165.         $a['data'] = $this->db->query("SELECT m_guru.*,
  166.                                     (SELECT COUNT(id) FROM m_admin WHERE level = 'guru' AND kon_id = m_guru.id) AS ada
  167.                                     FROM m_guru")->result();
  168.  
  169.         if ($uri3 == "det") {
  170.             $a = $this->db->query("SELECT * FROM m_guru WHERE id = '$uri4'")->row();
  171.             $this->j($a);
  172.             exit();
  173.         } else if ($uri3 == "simpan") {
  174.             $ket    = "";
  175.             if ($p->id != 0) {
  176.                 $this->db->query("UPDATE m_guru SET nama = '".bersih($p,"nama")."'
  177.                                 WHERE id = '".bersih($p,"id")."'");
  178.                 $ket = "edit";
  179.             } else {
  180.                 $ket = "tambah";
  181.                 $this->db->query("INSERT INTO m_guru VALUES (null, '".bersih($p,"nama")."')");
  182.             }
  183.            
  184.             $ret_arr['status']  = "ok";
  185.             $ret_arr['caption'] = $ket." sukses";
  186.             $this->j($ret_arr);
  187.             exit();
  188.         } else if ($uri3 == "hapus") {
  189.             $this->db->query("DELETE FROM m_guru WHERE id = '".$uri4."'");
  190.             $this->db->query("DELETE FROM m_admin WHERE level = 'guru' AND kon_id = '".$uri4."'");
  191.             $ret_arr['status']  = "ok";
  192.             $ret_arr['caption'] = "hapus sukses";
  193.             $this->j($ret_arr);
  194.             exit();
  195.         } else if ($uri3 == "user") {
  196.             $det_user = $this->db->query("SELECT id FROM m_guru WHERE id = '$uri4'")->row();
  197.  
  198.             if (!empty($det_user)) {
  199.                 $this->db->query("INSERT INTO m_admin VALUES (null, 'guru".$det_user->id."', md5('admin'), 'guru', '".$det_user->id."')");
  200.                 $ret_arr['status']  = "ok";
  201.                 $ret_arr['caption'] = "tambah user sukses";
  202.                 $this->j($ret_arr);
  203.             } else {
  204.                 $ret_arr['status']  = "gagal";
  205.                 $ret_arr['caption'] = "tambah user gagal";
  206.                 $this->j($ret_arr);
  207.             }
  208.             exit();
  209.         } else if ($uri3 == "ambil_matkul") {
  210.  
  211.             $matkul = $this->db->query("SELECT m_mapel.*,
  212.                                         (SELECT COUNT(id) FROM tr_guru_mapel WHERE id_guru = ".$uri4." AND id_mapel = m_mapel.id) AS ok
  213.                                         FROM m_mapel
  214.                                         ")->result();
  215.             $ret_arr['status'] = "ok";
  216.             $ret_arr['data'] = $matkul;
  217.             $this->j($ret_arr);
  218.             exit;
  219.         } else if ($uri3 == "simpan_matkul") {
  220.             $ket    = "";
  221.             //echo var_dump($p);
  222.  
  223.             $ambil_matkul = $this->db->query("SELECT id FROM m_mapel ORDER BY id ASC")->result();
  224.             if (!empty($ambil_matkul)) {
  225.                 foreach ($ambil_matkul as $a) {
  226.                     $p_sub = "id_mapel_".$a->id;
  227.  
  228.                     if (!empty($p->$p_sub)) {
  229.                        
  230.                         $cek_sudah_ada = $this->db->query("SELECT id FROM tr_guru_mapel WHERE  id_guru = '".$p->id_mhs."' AND id_mapel = '".$a->id."'")->num_rows();
  231.                        
  232.  
  233.                         if ($cek_sudah_ada < 1) {
  234.                             $this->db->query("INSERT INTO tr_guru_mapel VALUES (null, '".$p->id_mhs."', '".$a->id."')");
  235.                         } else {
  236.                             $this->db->query("UPDATE tr_guru_mapel SET id_mapel = '".$p->$p_sub."' WHERE id_guru = '".$p->id_mhs."' AND id_mapel = '".$a->id."'");
  237.                         }
  238.                     } else {
  239.                         //echo "0<br>";
  240.                         $this->db->query("DELETE FROM tr_guru_mapel WHERE id_guru = '".$p->id_mhs."' AND id_mapel = '".$a->id."'");
  241.                     }
  242.                 }
  243.             }
  244.  
  245.             $ret_arr['status']  = "ok";
  246.             $ret_arr['caption'] = $ket." sukses";
  247.             $this->j($ret_arr);
  248.             exit();
  249.         } else {
  250.             $a['p'] = "m_guru";
  251.         }
  252.  
  253.         $this->load->view('aaa', $a);
  254.     }
  255.  
  256.     public function m_mapel() {
  257.         $this->cek_aktif();
  258.        
  259.         //var def session
  260.         $a['sess_level'] = $this->session->userdata('admin_level');
  261.         $a['sess_user'] = $this->session->userdata('admin_user');
  262.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  263.  
  264.         //var def uri segment
  265.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  266.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  267.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  268.  
  269.         //var post from json
  270.         $p = json_decode(file_get_contents('php://input'));
  271.  
  272.         //return as json
  273.         $jeson = array();
  274.  
  275.         $a['data'] = $this->db->query("SELECT m_mapel.* FROM m_mapel")->result();
  276.  
  277.         if ($uri3 == "det") {
  278.             $a = $this->db->query("SELECT * FROM m_mapel WHERE id = '$uri4'")->row();
  279.             $this->j($a);
  280.             exit();
  281.         } else if ($uri3 == "simpan") {
  282.             $ket    = "";
  283.             if ($p->id != 0) {
  284.                 $this->db->query("UPDATE m_mapel SET nama = '".bersih($p,"nama")."'
  285.                                 WHERE id = '".bersih($p,"id")."'");
  286.                 $ket = "edit";
  287.             } else {
  288.                 $ket = "tambah";
  289.                 $this->db->query("INSERT INTO m_mapel VALUES (null, '".bersih($p,"nama")."')");
  290.             }
  291.            
  292.             $ret_arr['status']  = "ok";
  293.             $ret_arr['caption'] = $ket." sukses";
  294.             $this->j($ret_arr);
  295.             exit();
  296.         } else if ($uri3 == "hapus") {
  297.             $this->db->query("DELETE FROM m_mapel WHERE id = '".$uri4."'");
  298.             $ret_arr['status']  = "ok";
  299.             $ret_arr['caption'] = "hapus sukses";
  300.             $this->j($ret_arr);
  301.             exit();
  302.         } else {
  303.             $a['p'] = "m_mapel";
  304.         }
  305.  
  306.         $this->load->view('aaa', $a);
  307.     }
  308.  
  309.     /* == GURU == */
  310.     public function m_soal() {
  311.         $this->cek_aktif();
  312.         //var def session
  313.         $a['sess_level'] = $this->session->userdata('admin_level');
  314.         $a['sess_user'] = $this->session->userdata('admin_user');
  315.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  316.  
  317.         //var def uri segment
  318.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  319.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  320.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  321.         $uri5 = mysql_real_escape_string($this->uri->segment(5));
  322.  
  323.         //var post from json
  324.         $p = json_decode(file_get_contents('php://input'));
  325.  
  326.         //return as json
  327.         $jeson = array();
  328.  
  329.         if ($a['sess_level'] == "guru") {
  330.             $a['p_mapel'] = obj_to_array($this->db->query("SELECT * FROM m_mapel WHERE id IN (SELECT id_mapel FROM tr_guru_mapel WHERE id_guru = '".$a['sess_konid']."')")->result(), "id,nama");
  331.         } else if ($a['sess_level'] == "admin") {
  332.             $a['p_mapel'] = obj_to_array($this->db->query("SELECT * FROM m_mapel ORDER BY id ASC")->result(), "id,nama");
  333.         }
  334.  
  335.         $a['p_guru'] = obj_to_array($this->db->query("SELECT * FROM m_guru")->result(), "id,nama");
  336.  
  337.         if ($uri3 == "det") {
  338.             if ($uri4 != "0") {
  339.                 $a = $this->db->query("SELECT * FROM m_soal WHERE id = '$uri4'")->row_array();
  340.             } else {
  341.                 $a = array("id"=>"","id_guru"=>$a['sess_konid'],"id_mapel"=>"","bobot"=>"1","gambar"=>"","soal"=>"","opsi_a"=>"","opsi_b"=>"","opsi_c"=>"","opsi_d"=>"","opsi_e"=>"","jawaban"=>"","tgl_input"=>"");
  342.             }
  343.            
  344.             $this->j($a);
  345.             exit();
  346.         } else if ($uri3 == "hapus_gambar") {
  347.             $nama_gambar = $this->db->query("SELECT gambar FROM m_soal WHERE id = '".$uri5."'")->row();
  348.             $this->db->query("UPDATE m_soal SET gambar = '' WHERE id = '".$uri5."'");
  349.             @unlink("./upload/gambar_soal/".$nama_gambar->gambar);
  350.             redirect('adm/m_soal/pilih_mapel/'.$uri4);
  351.         } else if ($uri3 == "pilih_mapel") {
  352.             if ($a['sess_level'] == "guru") {
  353.                 $a['data'] = $this->db->query("SELECT m_soal.*, m_guru.nama AS nama_guru FROM m_soal INNER JOIN m_guru ON m_soal.id_guru = m_guru.id WHERE m_soal.id_guru = '".$a['sess_konid']."' AND m_soal.id_mapel = '$uri4'")->result();
  354.             } else {
  355.                 $a['data'] = $this->db->query("SELECT m_soal.*, m_guru.nama AS nama_guru FROM m_soal INNER JOIN m_guru ON m_soal.id_guru = m_guru.id WHERE m_soal.id_mapel = '$uri4'")->result();
  356.             }
  357.             //echo $this->db->last_query();
  358.             $a['p'] = "m_soal";
  359.         } else if ($uri3 == "simpan") {
  360.             $status = "";
  361.             $msg = "";
  362.             $file_element_name = 'gambar_soal';
  363.  
  364.             //echo var_dump($_POST);
  365.  
  366.             $pembuat_soal = ($a['sess_level'] == "admin") ? $_POST['id_guru'] : $a['sess_konid'];
  367.             $pembuat_soal_u = ($a['sess_level'] == "admin") ? ", id_guru = '".$_POST['id_guru']."'" : "";
  368.  
  369.             if ($status != "error") {
  370.                 $config['upload_path'] = './upload/gambar_soal/';
  371.                 $config['allowed_types'] = 'gif|jpg|png';
  372.                 $config['max_size'] = 1024 * 8;
  373.                 $config['encrypt_name'] = FALSE;
  374.  
  375.                 $this->load->library('upload', $config);
  376.                
  377.                 //echo var_dump($this->input->post);               
  378.                 //$this->upload->do_upload($file_element_name);
  379.  
  380.                 //$data = $this->upload->data();
  381.                 //$msg = $this->upload->display_errors('', '');
  382.                
  383.                 //echo var_dump($p);
  384.  
  385.                 if (!$this->upload->do_upload($file_element_name)) {
  386.                     $status = 'ok';
  387.                     $msg = $this->upload->display_errors('', '');
  388.  
  389.                     if ($_POST['id'] != "") {
  390.                         $this->db->query("UPDATE m_soal SET id_mapel = '".$_POST['id_mapel']."',
  391.                                         bobot = '".$_POST['bobot']."',
  392.                                         soal = '".$_POST['soal']."',
  393.                                         opsi_a = '".$_POST['opsi_a']."', opsi_b = '".$_POST['opsi_b']."',
  394.                                         opsi_c = '".$_POST['opsi_c']."', opsi_d = '".$_POST['opsi_d']."',
  395.                                         opsi_e = '".$_POST['opsi_e']."', jawaban = '".$_POST['jawaban']."'".$pembuat_soal_u."
  396.                                         WHERE id = '".$_POST['id']."'");
  397.                     } else {
  398.                         $this->db->query("INSERT INTO m_soal VALUES (null, '".$pembuat_soal."',
  399.                                         '".$_POST['id_mapel']."', '".$_POST['bobot']."', '',
  400.                                         '".$_POST['soal']."',
  401.                                         '".$_POST['opsi_a']."', '".$_POST['opsi_b']."', '".$_POST['opsi_c']."',
  402.                                         '".$_POST['opsi_d']."', '".$_POST['opsi_e']."', '".$_POST['jawaban']."',
  403.                                         NOW())");
  404.                     }
  405.                 } else {
  406.                     $data = $this->upload->data();
  407.                     $image_path = $data['full_path'];
  408.                     if(file_exists($image_path)) {
  409.                         $status = "ok";
  410.                         $msg = "Upload gambar berhasil";
  411.                     } else {
  412.                         $status = "ok";
  413.                         $msg = "Terjadi kesalahan. Ulangi lagi.";
  414.                     }
  415.                     $ambil_gambar = $this->db->query("SELECT gambar FROM m_soal WHERE id = '".$_POST['id']."'")->row();
  416.                     if ($_POST['id'] != "") {
  417.                         $this->db->query("UPDATE m_soal SET id_mapel = '".$_POST['id_mapel']."',
  418.                                         bobot = '".$_POST['bobot']."', gambar = '".$data['file_name']."',
  419.                                         soal = '".$_POST['soal']."',
  420.                                         opsi_a = '".$_POST['opsi_a']."', opsi_b = '".$_POST['opsi_b']."',
  421.                                         opsi_c = '".$_POST['opsi_c']."', opsi_d = '".$_POST['opsi_d']."',
  422.                                         opsi_e = '".$_POST['opsi_e']."', jawaban = '".$_POST['jawaban']."'".$pembuat_soal_u."
  423.                                         WHERE id = '".$_POST['id']."'");
  424.                     } else {
  425.                         $this->db->query("INSERT INTO m_soal VALUES (null, '".$pembuat_soal."',
  426.                                         '".$_POST['id_mapel']."', '".$_POST['bobot']."', '".$data['file_name']."',
  427.                                         '".$_POST['soal']."',
  428.                                         '".$_POST['opsi_a']."', '".$_POST['opsi_b']."', '".$_POST['opsi_c']."',
  429.                                         '".$_POST['opsi_d']."', '".$_POST['opsi_e']."', '".$_POST['jawaban']."',
  430.                                         NOW())");
  431.                     }
  432.                     @unlink("./upload/gambar_soal/".$ambil_gambar->gambar);
  433.                 }
  434.                 //@unlink($_FILES[$file_element_name]);
  435.             }
  436.             $jeson['status'] = $status;
  437.             $jeson['id_mapel'] = $_POST['id_mapel'];
  438.             $jeson['msg'] = "Soal berhasil disimpan. ".$msg;
  439.             header('Content-Type: text/html');
  440.             echo json_encode($jeson);
  441.             exit;
  442.             /*
  443.             $ret_arr['status'] = "simpan aksi";
  444.             $this->j($ret_arr);
  445.             exit;
  446.             /*
  447.  
  448.             $ket    = "";
  449.             if ($p->id != 0) {
  450.                 $this->db->query("UPDATE m_soal SET id_mapel = '".bersih($p,"id_mapel")."', soal = '".bersih($p,"soal")."',
  451.                                 opsi_a = '".bersih($p,"opsi_a")."', opsi_b = '".bersih($p,"opsi_b")."',
  452.                                 opsi_c = '".bersih($p,"opsi_c")."', opsi_d = '".bersih($p,"opsi_d")."',
  453.                                 opsi_e = '".bersih($p,"opsi_e")."', jawaban = '".bersih($p,"jawaban")."'
  454.                                 WHERE id = '".bersih($p,"id")."'");
  455.                 $ket = "edit";
  456.             } else {
  457.                 $ket = "tambah";
  458.                 $this->db->query("INSERT INTO m_soal VALUES (null, '".$a['sess_konid']."', '".bersih($p,"id_mapel")."', '".bersih($p,"soal")."',
  459.                                 '".bersih($p,"opsi_a")."', '".bersih($p,"opsi_b")."', '".bersih($p,"opsi_c")."',
  460.                                 '".bersih($p,"opsi_d")."', '".bersih($p,"opsi_e")."', '".bersih($p,"jawaban")."',
  461.                                 NOW())");
  462.             }
  463.            
  464.             $ret_arr['status']  = "ok";
  465.             $ret_arr['caption'] = $ket." sukses";
  466.             $this->j($ret_arr);
  467.             exit();
  468.             */
  469.         } else if ($uri3 == "hapus") {
  470.             $nama_gambar = $this->db->query("SELECT gambar FROM m_soal WHERE id = '".$uri4."'")->row();
  471.             $this->db->query("DELETE FROM m_soal WHERE id = '".$uri4."'");
  472.             @unlink("./upload/gambar_soal/".$nama_gambar->gambar);
  473.             $ret_arr['status']  = "ok";
  474.             $ret_arr['caption'] = "hapus sukses";
  475.             $this->j($ret_arr);
  476.             exit();
  477.         } else if ($uri3 == "cetak") {
  478.             $html = "<link href='".base_url()."___/css/style_print.css' rel='stylesheet' media='' type='text/css'/>";
  479.  
  480.             if ($a['sess_level'] == "admin") {
  481.                 $data = $this->db->query("SELECT * FROM m_soal WHERE id_mapel = '$uri4'")->result();
  482.             } else {
  483.                 $data = $this->db->query("SELECT * FROM m_soal WHERE id_guru = '".$a['sess_konid']."' AND id_mapel = '$uri4'")->result();
  484.             }
  485.             $mapel = $this->db->query("SELECT nama FROM m_mapel WHERE id = '".$uri4."'")->row();
  486.  
  487.             if (!empty($data)) {
  488.                 $html .= "<h3>Mata Pelajaran : ".$mapel->nama."</h3><hr style='border: solid 1px #000'>";
  489.                 $no = 1;
  490.                 $jawaban = array("A","B","C","D","E");
  491.                 foreach ($data as $d) {
  492.                     if ($d->gambar == "") {
  493.                         $html .= '<table>
  494.                         <tr><td style="v-align: top">'.$no.'</td><td colspan="2"><b>'.$d->soal.'</b></td></tr>';
  495.                         for ($j=0; $j<sizeof($jawaban);$j++) {
  496.                           $kecil_jawaban = strtolower($jawaban[$j]);
  497.                           $opsyen = "opsi_".$kecil_jawaban;
  498.                           $opsyens = $d->$opsyen;
  499.  
  500.                           if ($jawaban[$j] == $d->jawaban) {
  501.                             $html .= '<tr><td width="2%">'.$jawaban[$j].'</td><td><label for="opsi_'.$jawaban[$j].'_'.$d->id.'">'.$opsyens.'</label></td></label></tr>';
  502.                           } else {
  503.                             $html .= '<tr><td width="2%">'.$jawaban[$j].'</td><td><label for="opsi_'.$jawaban[$j].'_'.$d->id.'">'.$opsyens.'</label></td></label></tr>';
  504.                           }
  505.                         }
  506.                         $html .= '</table></div>';
  507.                     } else {
  508.                         $html .= '<table>
  509.                         <tr><td rowspan="6" width="10%"><img src="'.base_url().'upload/gambar_soal/'.$d->gambar.'" class="polaroid" style="width: 100px; height: 75px"></td>
  510.                         <td style="v-align: top">'.$no.'</td><td colspan="1"><b>'.$d->soal.'</b></td></tr>';
  511.                         for ($j=0; $j<sizeof($jawaban);$j++) {
  512.                           $kecil_jawaban = strtolower($jawaban[$j]);
  513.                           $opsyen = "opsi_".$kecil_jawaban;
  514.                           $opsyens = $d->$opsyen;
  515.  
  516.                           if ($jawaban[$j] == $d->jawaban) {
  517.                             $html .= '<tr><td width="2%">'.$jawaban[$j].'</td><td><label for="opsi_'.$jawaban[$j].'_'.$d->id.'">'.$opsyens.'</label></td></label></tr>';
  518.                           } else {
  519.                             $html .= '<tr><td width="2%">'.$jawaban[$j].'</td><td><label for="opsi_'.$jawaban[$j].'_'.$d->id.'">'.$opsyens.'</label></td></label></tr>';
  520.                           }
  521.                         }
  522.                         $html .= '</table></div>';
  523.                     }
  524.                     $no++;
  525.                 }
  526.             } else {
  527.                 $html .= "belum ada data";
  528.             }
  529.  
  530.             echo $html;
  531.             exit();
  532.  
  533.         } else {
  534.             $a['p'] = "m_soal";
  535.         }
  536.  
  537.         $this->load->view('aaa', $a);
  538.     }
  539.  
  540.     public function m_ujian() {
  541.         $this->cek_aktif();
  542.        
  543.         //var def session
  544.         $a['sess_level'] = $this->session->userdata('admin_level');
  545.         $a['sess_user'] = $this->session->userdata('admin_user');
  546.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  547.  
  548.         //var def uri segment
  549.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  550.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  551.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  552.  
  553.         //var post from json
  554.         $p = json_decode(file_get_contents('php://input'));
  555.  
  556.         //return as json
  557.         $jeson = array();
  558.  
  559.         $a['data'] = $this->db->query("SELECT tr_guru_tes.*, m_mapel.nama AS mapel FROM tr_guru_tes INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id WHERE tr_guru_tes.id_guru = '".$a['sess_konid']."'")->result();
  560.         $a['p_mapel'] = obj_to_array($this->db->query("SELECT * FROM m_mapel WHERE id IN (SELECT id_mapel FROM tr_guru_mapel WHERE id_guru = '".$a['sess_konid']."')")->result(), "id,nama");
  561.        
  562.         if ($uri3 == "det") {
  563.             $a = $this->db->query("SELECT * FROM tr_guru_tes WHERE id = '$uri4'")->row();
  564.             $this->j($a);
  565.             exit();
  566.         } else if ($uri3 == "simpan") {
  567.             $ket    = "";
  568.             if ($p->id != 0) {
  569.                 $this->db->query("UPDATE tr_guru_tes SET id_mapel = '".bersih($p,"mapel")."',
  570.                                 nama_ujian = '".bersih($p,"nama_ujian")."', jumlah_soal = '".bersih($p,"jumlah_soal")."',
  571.                                 waktu = '".bersih($p,"waktu")."'
  572.                                 WHERE id = '".bersih($p,"id")."'");
  573.                 $ket = "edit";
  574.             } else {
  575.                 $ket = "tambah";
  576.                 $this->db->query("INSERT INTO tr_guru_tes VALUES (null, '".$a['sess_konid']."', '".bersih($p,"mapel")."',
  577.                                 '".bersih($p,"nama_ujian")."', '".bersih($p,"jumlah_soal")."', '".bersih($p,"waktu")."',
  578.                                 'acak', '')");
  579.             }
  580.            
  581.             $ret_arr['status']  = "ok";
  582.             $ret_arr['caption'] = $ket." sukses";
  583.             $this->j($ret_arr);
  584.             exit();
  585.         } else if ($uri3 == "hapus") {
  586.             $this->db->query("DELETE FROM tr_guru_tes WHERE id = '".$uri4."'");
  587.             $ret_arr['status']  = "ok";
  588.             $ret_arr['caption'] = "hapus sukses";
  589.             $this->j($ret_arr);
  590.             exit();
  591.         } else if ($uri3 == "jumlah_soal") {
  592.             $ambil_data = $this->db->query("SELECT id FROM m_soal WHERE id_mapel = '$uri4' AND id_guru = '".$a['sess_konid']."'")->num_rows();
  593.             $ret_arr['jumlah'] = $ambil_data;
  594.             $this->j($ret_arr);
  595.             exit();        
  596.         } else {
  597.             $a['p'] = "m_guru_tes";
  598.         }
  599.  
  600.         $this->load->view('aaa', $a);
  601.     }
  602.  
  603.     public function h_ujian() {
  604.         $this->cek_aktif();
  605.        
  606.         //var def session
  607.         $a['sess_level'] = $this->session->userdata('admin_level');
  608.         $a['sess_user'] = $this->session->userdata('admin_user');
  609.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  610.  
  611.         //var def uri segment
  612.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  613.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  614.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  615.  
  616.         //var post from json
  617.         $p = json_decode(file_get_contents('php://input'));
  618.  
  619.         //return as json
  620.         $jeson = array();
  621.  
  622.         $wh_1 = $a['sess_level'] == "admin" ? "SELECT tr_guru_tes.*, m_mapel.nama AS mapel, m_guru.nama AS nama_guru FROM tr_guru_tes INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id INNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id" : "SELECT tr_guru_tes.*, m_mapel.nama AS mapel, m_guru.nama AS nama_guru FROM tr_guru_tes INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id INNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id WHERE tr_guru_tes.id_guru = '".$a['sess_konid']."'";
  623.  
  624.  
  625.         $a['data'] = $this->db->query($wh_1)->result();
  626.         $a['p_mapel'] = obj_to_array($this->db->query("SELECT * FROM m_mapel")->result(), "id,nama");
  627.  
  628.         if ($uri3 == "det") {
  629.             $a['detil_tes'] = $this->db->query("SELECT m_mapel.nama AS namaMapel, m_guru.nama AS nama_guru,
  630.                                                 tr_guru_tes.*
  631.                                                 FROM tr_guru_tes
  632.                                                 INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id
  633.                                                 INNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id
  634.                                                 WHERE tr_guru_tes.id = '$uri4'")->row();
  635.             $a['statistik'] = $this->db->query("SELECT MAX(nilai) AS max_, MIN(nilai) AS min_, AVG(nilai) AS avg_
  636.                                             FROM tr_ikut_ujian
  637.                                             WHERE tr_ikut_ujian.id_tes = '$uri4'")->row();
  638.  
  639.             $a['hasil'] = $this->db->query("SELECT m_siswa.nama, tr_ikut_ujian.nilai, tr_ikut_ujian.jml_benar, tr_ikut_ujian.nilai_bobot
  640.                                             FROM tr_ikut_ujian
  641.                                             INNER JOIN m_siswa ON tr_ikut_ujian.id_user = m_siswa.id
  642.                                             WHERE tr_ikut_ujian.id_tes = '$uri4'")->result();
  643.             $a['p'] = "m_guru_tes_hasil_detil";
  644.             //echo $this->db->last_query();
  645.         } else {
  646.             $a['p'] = "m_guru_tes_hasil";
  647.         }
  648.  
  649.         $this->load->view('aaa', $a);
  650.     }
  651.  
  652.     public function hasil_ujian_cetak() {
  653.         $this->cek_aktif();
  654.        
  655.         //var def uri segment
  656.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  657.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  658.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  659.  
  660.         $a['detil_tes'] = $this->db->query("SELECT m_mapel.nama AS namaMapel, m_guru.nama AS nama_guru,
  661.                                                 tr_guru_tes.*
  662.                                                 FROM tr_guru_tes
  663.                                                 INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id
  664.                                                 INNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id
  665.                                                 WHERE tr_guru_tes.id = '$uri3'")->row();
  666.        
  667.         $a['statistik'] = $this->db->query("SELECT MAX(nilai) AS max_, MIN(nilai) AS min_, AVG(nilai) AS avg_
  668.                                         FROM tr_ikut_ujian
  669.                                         WHERE tr_ikut_ujian.id_tes = '$uri3'")->row();
  670.  
  671.         $a['hasil'] = $this->db->query("SELECT m_siswa.nama, tr_ikut_ujian.nilai, tr_ikut_ujian.jml_benar, tr_ikut_ujian.nilai_bobot
  672.                                         FROM tr_ikut_ujian
  673.                                         INNER JOIN m_siswa ON tr_ikut_ujian.id_user = m_siswa.id
  674.                                         WHERE tr_ikut_ujian.id_tes = '$uri3'")->result();
  675.  
  676.         $html = $this->load->view("m_guru_tes_hasil_detil_cetak", $a, true);
  677.  
  678.         $pdfFilePath = "laporan_hasil_ujian.pdf";
  679.  
  680.         $this->load->library('m_pdf');
  681.  
  682.         $this->m_pdf->pdf->WriteHTML($html);
  683.  
  684.         $this->m_pdf->pdf->Output($pdfFilePath, "D");
  685.     }
  686.  
  687.     /* == SISWA == */
  688.     public function ikuti_ujian() {
  689.         $this->cek_aktif();
  690.        
  691.         //var def session
  692.         $a['sess_level'] = $this->session->userdata('admin_level');
  693.         $a['sess_user'] = $this->session->userdata('admin_user');
  694.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  695.  
  696.         //var def uri segment
  697.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  698.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  699.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  700.  
  701.         //var post from json
  702.         $p = json_decode(file_get_contents('php://input'));
  703.  
  704.         //return as json
  705.         $jeson = array();
  706.  
  707.         $a['data'] = $this->db->query("SELECT tr_guru_tes.*, m_mapel.nama AS mapel,
  708.                                         (SELECT COUNT(id) FROM tr_ikut_ujian WHERE tr_ikut_ujian.id_user = ".$a['sess_konid']." AND tr_ikut_ujian.id_tes = tr_guru_tes.id) AS sudah_ikut,
  709.                                         (SELECT nilai FROM tr_ikut_ujian WHERE tr_ikut_ujian.id_user = ".$a['sess_konid']." AND tr_ikut_ujian.id_tes = tr_guru_tes.id) AS nilai
  710.                                         FROM tr_guru_tes
  711.                                         INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id
  712.                                         WHERE id_mapel IN (SELECT id_mapel FROM tr_siswa_mapel WHERE id_siswa = ".$a['sess_konid'].")
  713.                                         ORDER BY tr_guru_tes.id ASC")->result();
  714.         //echo $this->db->last_query();
  715.         $a['p'] = "m_ikut_ujian";
  716.         $this->load->view('aaa', $a);
  717.     }
  718.  
  719.     public function ikut_ujian() {
  720.         $this->cek_aktif();
  721.        
  722.         //var def session
  723.         $a['sess_level'] = $this->session->userdata('admin_level');
  724.         $a['sess_user'] = $this->session->userdata('admin_user');
  725.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  726.  
  727.         //var def uri segment
  728.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  729.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  730.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  731.  
  732.         //var post from json
  733.         $p = json_decode(file_get_contents('php://input'));
  734.  
  735.         $a['detil_user'] = $this->db->query("SELECT * FROM m_siswa WHERE id = '".$a['sess_konid']."'")->row();
  736.  
  737.         if ($uri3 == "simpan_satu") {
  738.             $p          = json_decode(file_get_contents('php://input'));
  739.            
  740.             $update_    = "";
  741.             for ($i = 1; $i < $p->jml_soal; $i++) {
  742.                 $_tjawab    = "opsi_".$i;
  743.                 $_tidsoal   = "id_soal_".$i;
  744.  
  745.                 $jawaban_   = empty($p->$_tjawab) ? "" : $p->$_tjawab;
  746.  
  747.                 $update_    .= "".$p->$_tidsoal.":".$jawaban_.",";
  748.             }
  749.             $update_        = substr($update_, 0, -1);
  750.  
  751.  
  752.             $this->db->query("UPDATE tr_ikut_ujian SET list_jawaban = '".$update_."' WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'");
  753.             echo $this->db->last_query();
  754.             exit;          
  755.         } else if ($uri3 == "simpan_akhir") {
  756.             $p          = json_decode(file_get_contents('php://input'));
  757.            
  758.             $jumlah_soal = $p->jml_soal;
  759.             $jumlah_benar = 0;
  760.             $jumlah_bobot = 0;
  761.             $update_ = "";
  762.  
  763.             for ($i = 1; $i < $p->jml_soal; $i++) {
  764.                 $_tjawab    = "opsi_".$i;
  765.                 $_tidsoal   = "id_soal_".$i;
  766.  
  767.                 $jawaban_   = empty($p->$_tjawab) ? "" : $p->$_tjawab;
  768.  
  769.                 $cek_jwb    = $this->db->query("SELECT bobot, jawaban FROM m_soal WHERE id = '".$p->$_tidsoal."'")->row();
  770.                 if ($cek_jwb->jawaban == $jawaban_) {
  771.                     $jumlah_benar++;
  772.                     $jumlah_bobot = $jumlah_bobot + $cek_jwb->bobot;
  773.                 }
  774.                 $update_    .= "".$p->$_tidsoal.":".$jawaban_.",";
  775.             }
  776.             $update_        = substr($update_, 0, -1);
  777.  
  778.             $nilai = ($jumlah_benar/($jumlah_soal-1)) * 100;
  779.             $this->db->query("UPDATE tr_ikut_ujian SET jml_benar = ".$jumlah_benar.", nilai_bobot = ".$jumlah_bobot.", nilai = '".$nilai."', list_jawaban = '".$update_."', status = 'N' WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'");
  780.             $a['status'] = "ok";
  781.             $this->j($a);
  782.             exit;      
  783.         } else {
  784.             $cek_sdh_selesai= $this->db->query("SELECT id FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."' AND status = 'N'")->num_rows();
  785.             //sekalian validasi waktu sudah berlalu...
  786.  
  787.             if ($cek_sdh_selesai < 1) {
  788.                 //ambil detil soal
  789.                 $cek_detil_tes = $this->db->query("SELECT * FROM tr_guru_tes WHERE id = '$uri4'")->row();
  790.  
  791.                 $q_cek_sdh_ujian= $this->db->query("SELECT id FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'");
  792.                 $d_cek_sdh_ujian= $q_cek_sdh_ujian->row();
  793.                 $cek_sdh_ujian  = $q_cek_sdh_ujian->num_rows();
  794.  
  795.                 if ($cek_sdh_ujian < 1) {      
  796.                     $soal_urut_ok = array();
  797.                     $q_soal         = $this->db->query("SELECT id, gambar, soal, opsi_a, opsi_b, opsi_c, opsi_d, opsi_e, '' AS jawaban FROM m_soal WHERE id_mapel = '".$cek_detil_tes->id_mapel."' ORDER BY RAND() LIMIT ".$cek_detil_tes->jumlah_soal)->result();
  798.                     $i = 0;
  799.                     foreach ($q_soal as $s) {
  800.                         $soal_per = new stdClass();
  801.                         $soal_per->id = $s->id;
  802.                         $soal_per->soal = $s->soal;
  803.                         $soal_per->gambar = $s->gambar;
  804.                         $soal_per->opsi_a = $s->opsi_a;
  805.                         $soal_per->opsi_b = $s->opsi_b;
  806.                         $soal_per->opsi_c = $s->opsi_c;
  807.                         $soal_per->opsi_d = $s->opsi_d;
  808.                         $soal_per->opsi_e = $s->opsi_e;
  809.                         $soal_per->jawaban = $s->jawaban;
  810.  
  811.                         $soal_urut_ok[$i] = $soal_per;
  812.                         $i++;
  813.                     }
  814.                     $soal_urut_ok = $soal_urut_ok;
  815.  
  816.                     $list_id_soal   = "";
  817.                     $list_jw_soal   = "";
  818.                     if (!empty($q_soal)) {
  819.                         foreach ($q_soal as $d) {
  820.                             $list_id_soal .= $d->id.",";
  821.                             $list_jw_soal .= $d->id.":,";
  822.                         }
  823.                     }
  824.                     $list_id_soal = substr($list_id_soal, 0, -1);
  825.                     $list_jw_soal = substr($list_jw_soal, 0, -1);
  826.                     $waktu_selesai = tambah_jam_sql($cek_detil_tes->waktu);
  827.  
  828.                     $this->db->query("INSERT INTO tr_ikut_ujian VALUES (null, '$uri4', '".$a['sess_konid']."', '$list_id_soal', '$list_jw_soal', 0, 0, 0, NOW(), ADDTIME(NOW(), '$waktu_selesai'), 'Y')");
  829.                    
  830.                     $a['detil_soal'] = $this->db->query("SELECT tr_guru_tes.*, m_guru.nama AS namaGuru, m_mapel.nama AS namaMapel
  831.                                                         FROM tr_guru_tes
  832.                                                         INNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id
  833.                                                         INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id
  834.                                                         WHERE tr_guru_tes.id = '$uri4'")->row();
  835.  
  836.                     $a['detiltes'] = $this->db->query("SELECT * FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'")->row();
  837.                     $a['data']= $soal_urut_ok;
  838.                 } else {
  839.                     $q_ambil_soal   = $this->db->query("SELECT * FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'")->row();
  840.                     $urut_soal      = explode(",", $q_ambil_soal->list_jawaban);
  841.  
  842.                     $soal_urut_ok   = array();
  843.  
  844.                     for ($i = 0; $i < sizeof($urut_soal); $i++) {
  845.                         $pc_urut_soal = explode(":",$urut_soal[$i]);
  846.                         $pc_urut_soal1 = empty($pc_urut_soal[1]) ? "''" : "'".$pc_urut_soal[1]."'";
  847.  
  848.                         $ambil_soal = $this->db->query("SELECT *, $pc_urut_soal1 AS jawaban FROM m_soal WHERE id = '".$pc_urut_soal[0]."'")->row();
  849.                         $soal_urut_ok[] = $ambil_soal;
  850.                     }
  851.  
  852.                     $a['detil_soal'] = $this->db->query("SELECT tr_guru_tes.*, m_guru.nama AS namaGuru, m_mapel.nama AS namaMapel
  853.                                                         FROM tr_guru_tes
  854.                                                         INNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id
  855.                                                         INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id
  856.                                                         WHERE tr_guru_tes.id = '$uri4'")->row();
  857.                     //$soal_urut_ok = $this->db->query("SELECT * FROM m_soal ORDER BY RAND()")->result();
  858.                     $a['detiltes'] = $q_ambil_soal;
  859.                     $a['data'] = $soal_urut_ok;
  860.                 }
  861.             } else {
  862.                 redirect('adm/sudah_selesai_ujian/'.$uri4);
  863.             }
  864.             //echo var_dump($a);
  865.             $this->load->view('aaa_ikut_ujian', $a);
  866.         }
  867.     }
  868.  
  869.     public function jvs() {
  870.         $this->cek_aktif();
  871.        
  872.         $data_soal      = $this->db->query("SELECT id, gambar, soal, opsi_a, opsi_b, opsi_c, opsi_d, opsi_e FROM m_soal ORDER BY RAND()")->result();
  873.        
  874.         $this->j($data_soal);
  875.         exit;
  876.     }
  877.  
  878.     public function rubah_password() {
  879.         $this->cek_aktif();
  880.        
  881.         //var def session
  882.         $a['sess_admin_id'] = $this->session->userdata('admin_id');
  883.         $a['sess_level'] = $this->session->userdata('admin_level');
  884.         $a['sess_user'] = $this->session->userdata('admin_user');
  885.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  886.  
  887.         //var def uri segment
  888.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  889.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  890.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  891.  
  892.         //var post from json
  893.         $p = json_decode(file_get_contents('php://input'));
  894.         $ret = array();
  895.         if ($uri3 == "simpan") {
  896.             $p1_md5 = md5($p->p1);
  897.             $p2_md5 = md5($p->p2);
  898.             $p3_md5 = md5($p->p3);
  899.  
  900.             $cek_pass_lama = $this->db->query("SELECT password FROM m_admin WHERE id = '".$a['sess_admin_id']."'")->row();
  901.  
  902.             if ($cek_pass_lama->password != $p1_md5) {
  903.                 $ret['status'] = "error";
  904.                 $ret['msg'] = "Password lama tidak sama...";
  905.             } else if ($p2_md5 != $p3_md5) {
  906.                 $ret['status'] = "error";
  907.                 $ret['msg'] = "Password baru konfirmasinya tidak sama...";
  908.             } else if (strlen($p->p2) < 6) {
  909.                 $ret['status'] = "error";
  910.                 $ret['msg'] = "Password baru minimal terdiri dari 6 huruf..";
  911.             } else {
  912.                 $this->db->query("UPDATE m_admin SET password = '".$p3_md5."' WHERE id = '".$a['sess_admin_id']."'");
  913.                 $ret['status'] = "ok";
  914.                 $ret['msg'] = "Password berhasil diubah...";
  915.             }
  916.             $this->j($ret);
  917.             exit;
  918.         } else {
  919.             $data = $this->db->query("SELECT id, kon_id, level, username FROM m_admin WHERE id = '".$a['sess_admin_id']."'")->row();
  920.             $this->j($data);
  921.             exit;
  922.         }
  923.     }
  924.  
  925.     public function sudah_selesai_ujian() {
  926.         $this->cek_aktif();
  927.        
  928.         //var def session
  929.         $a['sess_level'] = $this->session->userdata('admin_level');
  930.         $a['sess_user'] = $this->session->userdata('admin_user');
  931.         $a['sess_konid'] = $this->session->userdata('admin_konid');
  932.  
  933.         //var def uri segment
  934.         $uri2 = mysql_real_escape_string($this->uri->segment(2));
  935.         $uri3 = mysql_real_escape_string($this->uri->segment(3));
  936.         $uri4 = mysql_real_escape_string($this->uri->segment(4));
  937.  
  938.        
  939.         $q_nilai = $this->db->query("SELECT nilai, tgl_selesai FROM tr_ikut_ujian WHERE id_tes = $uri3 AND id_user = '".$a['sess_konid']."' AND status = 'N'")->row();
  940.         if (empty($q_nilai)) {
  941.             redirect('adm/ikut_ujian/_/'.$uri3);
  942.         } else {
  943.             $a['p'] = "v_selesai_ujian";
  944.             $a['data'] = "<div class='alert alert-danger'>Anda telah selesai mengikuti ujian ini pada : <strong style='font-size: 16px'>".tjs($q_nilai->tgl_selesai, "l")."</strong>, dan mendapatkan nilai : <strong style='font-size: 16px'>".$q_nilai->nilai."</strong></div>";
  945.         }
  946.  
  947.         $this->load->view('aaa', $a);
  948.     }
  949.  
  950.  
  951.     /* Login Logout */
  952.  
  953.     public function login() {
  954.         $this->load->view('aaa_login');
  955.     }
  956.    
  957.     public function act_login() {
  958.        
  959.         $username   = $this->bersih($_POST['username']);
  960.         $password   = $this->bersih($_POST['password']);
  961.        
  962.         $password2  = md5($password);
  963.        
  964.         $q_data     = $this->db->query("SELECT * FROM m_admin WHERE username = '".$username."' AND password = '$password2'");
  965.         $j_data     = $q_data->num_rows();
  966.         $a_data     = $q_data->row();
  967.        
  968.         $_log       = array();
  969.         if ($j_data === 1) {
  970.  
  971.             $sess_nama_user = "";
  972.  
  973.             if ($a_data->level == "siswa") {
  974.                 $det_user = $this->db->query("SELECT nama FROM m_siswa WHERE id = '".$a_data->kon_id."'")->row();
  975.                 if (!empty($det_user)) {
  976.                     $sess_nama_user = $det_user->nama;
  977.                 }
  978.             } else if ($a_data->level == "guru") {
  979.                 $det_user = $this->db->query("SELECT nama FROM m_guru WHERE id = '".$a_data->kon_id."'")->row();
  980.                 if (!empty($det_user)) {
  981.                     $sess_nama_user = $det_user->nama;
  982.                 }
  983.             } else {
  984.                 $sess_nama_user = "Administrator Pusat";
  985.             }
  986.  
  987.             $data = array(
  988.                     'admin_id' => $a_data->id,
  989.                     'admin_user' => $a_data->username,
  990.                     'admin_level' => $a_data->level,
  991.                     'admin_konid' => $a_data->kon_id,
  992.                     'admin_nama' => $sess_nama_user,
  993.                     'admin_valid' => true
  994.                     );
  995.             $this->session->set_userdata($data);
  996.             $_log['log']['status']          = "1";
  997.             $_log['log']['keterangan']      = "Login berhasil";
  998.             $_log['log']['detil_admin']     = $this->session->userdata;
  999.         } else {
  1000.             $_log['log']['status']          = "0";
  1001.             $_log['log']['keterangan']      = "Maaf, username atau password tidak ditemukan";
  1002.             $_log['log']['detil_admin']     = null;
  1003.         }
  1004.        
  1005.         $this->j($_log);
  1006.     }
  1007.    
  1008.     public function logout() {
  1009.         $data = array(
  1010.                     'admin_id'      => "",
  1011.                     'admin_user'    => "",
  1012.                     'admin_level'   => "",
  1013.                     'admin_konid'   => "",
  1014.                     'admin_nama'    => "",
  1015.                     'admin_valid'   => false
  1016.                     );
  1017.         $this->session->set_userdata($data);
  1018.         redirect('adm');
  1019.     }
  1020.  
  1021.  
  1022.     //fungsi tambahan
  1023.     public function get_akhir($tabel, $field, $kode_awal, $pad) {
  1024.         $get_akhir  = $this->db->query("SELECT MAX($field) AS max FROM $tabel LIMIT 1")->row();
  1025.         $data       = (intval($get_akhir->max)) + 1;
  1026.         $last       = $kode_awal.str_pad($data, $pad, '0', STR_PAD_LEFT);
  1027.    
  1028.         return $last;
  1029.     }
  1030.  
  1031.    
  1032.     public function bersih($teks) {
  1033.         return mysql_real_escape_string($teks);
  1034.     }
  1035.    
  1036.     public function j($data) {
  1037.         header('Content-Type: application/json');
  1038.         echo json_encode($data);
  1039.     }
  1040.  
  1041.     public function cari(){
  1042.         $this->load->model('search_model');
  1043.         $search =  $this->input->post('search');
  1044.         $query = $this->search_model->getSearch($search);
  1045.         echo json_encode ($query);
  1046.     }
  1047.  
  1048.     function print_qr($user_id)
  1049.     {
  1050.         $this->load->model('user_model', 'user');
  1051.         $this->load->library('ci_qr_code');
  1052.         $this->config->load('qr_code');
  1053.  
  1054.         $qr_code_config = array();
  1055.         $qr_code_config['cacheable'] = $this->config->item('cacheable');
  1056.         $qr_code_config['cachedir'] = $this->config->item('cachedir');
  1057.         $qr_code_config['imagedir'] = $this->config->item('imagedir');
  1058.         $qr_code_config['errorlog'] = $this->config->item('errorlog');
  1059.         $qr_code_config['ciqrcodelib'] = $this->config->item('ciqrcodelib');
  1060.         $qr_code_config['quality'] = $this->config->item('quality');
  1061.         $qr_code_config['size'] = $this->config->item('size');
  1062.         $qr_code_config['black'] = $this->config->item('black');
  1063.         $qr_code_config['white'] = $this->config->item('white');
  1064.         $this->ci_qr_code->initialize($qr_code_config);
  1065.  
  1066.         // get full name and user details
  1067.         $user_details = $this->user->get_users_one($user_id);
  1068.         $image_name = $user_details->nama . ".png";
  1069.  
  1070.         // create user content
  1071.         $codeContents = "nama:";
  1072.         $codeContents .= "$user_details->nama";
  1073.         $codeContents .= " nim:";
  1074.         $codeContents .= "$user_details->nim";
  1075.         $codeContents .= "\n";
  1076.         $codeContents .= "jurusan :";
  1077.         $codeContents .= $user_details->jurusan;
  1078.  
  1079.         $params['data'] = $codeContents;
  1080.         $params['level'] = 'H';
  1081.         $params['size'] = 2;
  1082.  
  1083.         $params['savename'] = FCPATH . $qr_code_config['imagedir'] . $image_name;
  1084.         $this->ci_qr_code->generate($params);
  1085.  
  1086.         $this->data['qr_code_image_url'] = base_url() . $qr_code_config['imagedir'] . $image_name;
  1087.  
  1088.         // save image path in tree table
  1089.         $this->user->change_userqr($user_id, $image_name);
  1090.         // then redirect to see image link
  1091.         $file = $params['savename'];
  1092.         if(file_exists($file)){
  1093.             header('Content-Description: File Transfer');
  1094.             header('Content-Type: text/csv');
  1095.             header('Content-Disposition: attachment; filename='.basename($file));
  1096.             header('Content-Transfer-Encoding: binary');
  1097.             header('Expires: 0');
  1098.             header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  1099.             header('Pragma: public');
  1100.             header('Content-Length: ' . filesize($file));
  1101.             ob_clean();
  1102.             flush();
  1103.             readfile($file);
  1104.             unlink($file); // deletes the temporary file
  1105.  
  1106.             exit;
  1107.         }
  1108.     }
  1109.  
  1110. }
  1111.  
  1112. /* End of file welcome.php */
  1113. /* Location: ./application/controllers/welcome.php */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement