Advertisement
LittleJok3r

Leaked, Source Code XXXXXXXX.MIL.ID :P

Mar 26th, 2020
4,374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 94.88 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. class Ajax extends Base_Controller {
  4.     public function __construct(){
  5.         parent::__construct();
  6.         $this->key = 'eternaleaf-olshp';
  7.         $this->load->library('encrypt');
  8.         $this->data["key"] = $this->key;
  9.     }
  10.     public function index(){
  11.     }
  12.     function get_karir_desc(){
  13.         $pagenya = $this->db->query('SELECT description FROM joblist a WHERE id='.$_POST["id"])->result_array();
  14.         echo $pagenya[0]["description"];
  15.         die();
  16.     }
  17.     function download(){
  18.         if(isset($_GET["file"])){
  19.             // Get parameters
  20.             $file = $_GET["file"]; // Decode URL-encoded string
  21.             $filepath = FCPATH."uploads/foto/" . $file;
  22.             // Process download
  23.             if(file_exists($filepath)) {
  24.                 header('Content-Description: File Transfer');
  25.                 header('Content-Type: application/octet-stream');
  26.                 header('Content-Disposition: attachment; filename="'.basename($filepath).'"');
  27.                 header('Expires: 0');
  28.                 header('Cache-Control: must-revalidate');
  29.                 header('Pragma: public');
  30.                 header('Content-Length: ' . filesize($filepath));
  31.                 flush(); // Flush system output buffer
  32.                 readfile($filepath);
  33.                 exit;
  34.             }
  35.         }
  36.     }
  37.     function captcha(){
  38.         $captcha = new SimpleCaptcha();
  39.         $session_register = $this->session->userdata('register');
  40.         $session_register['captcha_text'] = $this->GetRandomCaptchaText(5);
  41.         $captcha->CreateImage($session_register['captcha_text']);
  42.         //echo $this->GetRandomCaptchaText(5);
  43.     }
  44.     function ceksession(){
  45.         $data_session = $this->session->all_userdata();
  46.     print_r($data_session);
  47.     echo "testingdong";
  48.     die();
  49.     }
  50.     function add_confirmation(){
  51.        
  52.         $data_session = $this->session->all_userdata();
  53.         $cart = $this->db->query('SELECT uid,reference_order FROM cart a WHERE uid_user='.$data_session["login_user"]["eternaleaf_user_login"])->result_array();
  54.         $this->data["cart"] = $cart;
  55.         $this->load->view('popup_confirmation',$this->data);
  56.     }
  57.     function formedc(){
  58.         $this->data["cart"] = array();
  59.         $prop = $this->db->query('SELECT province_id,province FROM province')->result_array();
  60.         $this->data["prop"] = $prop;        
  61.         $this->load->view('formedc',$this->data);
  62.     }
  63.     function formperusahaan(){
  64.         $this->data["cart"] = array();
  65.         $this->load->view('formperusahaan',$this->data);
  66.     }
  67.     function formperusahaancenter(){
  68.         $this->data["cart"] = array();
  69.         $this->load->view('formperusahaancenter',$this->data);
  70.     }
  71.     function get_subdistrict_by_id($kecamatan){
  72.         $query_district = 'SELECT subdistrict_id,subdistrict_name FROM subdistrict where subdistrict_id = '.$kecamatan;
  73.         $rec_kecamatan = $this->db->query($query_district)->result_array();
  74.         $kecamatannya = $rec_kecamatan[0]["subdistrict_name"];
  75.         return $kecamatannya;
  76.     }
  77.     function get_city_by_id($city_id){
  78.         $query_district = 'SELECT city_id,type_city,city_name FROM city  where city_id = '.$city_id;
  79.         $rec_kecamatan = $this->db->query($query_district)->result_array();
  80.         $kecamatannya = $rec_kecamatan[0]["type_city"]." ".$rec_kecamatan[0]["city_name"];
  81.         return $kecamatannya;
  82.     }
  83.     function get_provinsi_by_id($province_id){
  84.         $query_district = 'SELECT province_id,province FROM province  where province_id = '.$province_id;
  85.         $rec_kecamatan = $this->db->query($query_district)->result_array();
  86.         $kecamatannya = $rec_kecamatan[0]["province"];
  87.         return $kecamatannya;
  88.     }
  89.     function submitedc(){
  90.              
  91.         $data_session = $this->session->all_userdata();
  92.         if (isset($_POST["nama_lengkap"])){
  93.             $nama_lengkap = $this->xss_filter($_POST["nama_lengkap"]);            
  94.             $telp = $this->xss_filter($_POST["telp"]);            
  95.             $jenis_kelamin = $this->xss_filter($_POST["jenis_kelamin"]);            
  96.             $no_handphone = $this->xss_filter($_POST["no_handphone"]);
  97.             $alamat = $this->xss_filter($_POST["alamat"]);
  98.             $kota = $this->xss_filter($_POST["kota"]);
  99.             $id_provinsi = $this->xss_filter($_POST["provinsi"]);
  100.             $id_kota = $this->xss_filter($_POST["kota"]);
  101.             $kecamatan = $this->xss_filter($_POST["kecamatan"]);
  102.             $referal = $this->xss_filter($_POST["referal"]);
  103.            
  104.            
  105.             $captcha = $this->xss_filter($_POST["captcha"]);
  106.             if (isset($data_session["captchaEDC"])){
  107.                 if ($captcha == $data_session["captchaEDC"]){
  108.                     $inputdata = array(    
  109.                         'crdate' => date('Y-m-d H:i:s'),
  110.                         'nama'   => $nama_lengkap,
  111.                         'telp'   => $telp,
  112.                         'jenis_kelamin'   => $jenis_kelamin,
  113.                         'hp'   => $no_handphone,
  114.                         'alamat'   => $alamat,
  115.                         'kecamatan'   => $this->get_subdistrict_by_id($kecamatan),
  116.                         'kota'   => $this->get_city_by_id($kota),    
  117.                         'id_provinsi'   => $id_provinsi,
  118.                         'id_kota'   => $id_kota,
  119.                         'id_kecamatan'   => $kecamatan,      
  120.                         'referal'   => $referal
  121.                     );    
  122.                     $this->db->insert('formedc', $inputdata);
  123.                     $insert_id = $this->db->insert_id();
  124.                     $this->session->unset_userdata('captchaEDC');
  125.                    
  126.                    
  127.                     if ($insert_id > 0){
  128.                         $config = Array(      
  129.                             'protocol' => 'sendmail',
  130.                             'smtp_timeout' => '4',
  131.                             'mailtype'  => 'html',
  132.                             'charset'   => 'iso-8859-1'
  133.                         );
  134.                         $this->load->library('email', $config);
  135.                         $this->email->set_newline("\r\n");
  136.                        
  137.                         $this->email->from('info@truemoney.co.id', 'TrueMoney');
  138.                        
  139.                         $data_rec = $this->db->query('SELECT id,name,email FROM `contactreceiver` WHERE idmenu = 124 AND hapus=0')->result_array();
  140.                         $integer = 1;
  141.                         $emailnya = "";
  142.                         foreach($data_rec as $email){
  143.                             if ($integer > 1){
  144.                                 $emailnya .= ",".$email["email"];
  145.                             }else{
  146.                                 $emailnya .= $email["email"];
  147.                             }
  148.                             $integer++;              
  149.                         }          
  150.                                                                    
  151.                         $this->email->to("$emailnya");
  152.                         $this->email->bcc("basuki.rachmadd@gmail.com");
  153.                         $this->email->subject("PENDAFTARAN AGEN EDC  [$nama_lengkap]");
  154.                        
  155.                         $data["inputdata"] = $inputdata;
  156.                         $data["controller"] = $this;
  157.                        
  158.                         $body = $this->load->view('formedc-mail.php',$data,TRUE);
  159.                         $this->email->message($body);  
  160.                         $this->email->send();
  161.                     }
  162.                    
  163.                    
  164.                    
  165.                    
  166.                    
  167.                     echo $insert_id;
  168.                    
  169.                 }else{
  170.                     echo trim(-1);
  171.                 }
  172.             }else{
  173.                 echo trim(-1);
  174.             }
  175.            
  176.         }else{
  177.             echo 0;
  178.         }
  179.        
  180.     }
  181.     function submitperusahaan(){
  182.              
  183.         $data_session = $this->session->all_userdata();
  184.         if (isset($_POST["nama_lengkap"])){
  185.             $nama_lengkap = $this->xss_filter($_POST["nama_lengkap"]);            
  186.             $nama_perusahaan = $this->xss_filter($_POST["nama_perusahaan"]);            
  187.             $telp = $this->xss_filter($_POST["telp"]);            
  188.             $email = $this->xss_filter($_POST["email"]);
  189.             $komentar = $this->xss_filter($_POST["komentar"]);
  190.             $captcha = $this->xss_filter($_POST["captcha"]);
  191.             if (isset($data_session["captchaPerusahaan"])){
  192.                 if ($captcha == $data_session["captchaPerusahaan"]){
  193.                     $inputdata = array(    
  194.                         'crdate' => date('Y-m-d H:i:s'),
  195.                         'nama'   => $nama_lengkap,
  196.                         'nama_perusahaan'   => $nama_perusahaan,
  197.                         'telp'   => $telp,
  198.                         'email'   => $email,
  199.                         'komentar'   => $komentar
  200.                     );    
  201.                     $this->db->insert('formperusahaan', $inputdata);
  202.                     $insert_id = $this->db->insert_id();
  203.                     $this->session->unset_userdata('captchaPerusahaan');
  204.                    
  205.                    
  206.                     if ($insert_id > 0){
  207.                         $config = Array(      
  208.                             'protocol' => 'sendmail',
  209.                             'smtp_timeout' => '4',
  210.                             'mailtype'  => 'html',
  211.                             'charset'   => 'iso-8859-1'
  212.                         );
  213.                         $this->load->library('email', $config);
  214.                         $this->email->set_newline("\r\n");
  215.                        
  216.                         $this->email->from('info@truemoney.co.id', 'TrueMoney');
  217.                        
  218.                         $data_rec = $this->db->query('SELECT id,name,email FROM `contactreceiver` WHERE idmenu = 125 AND hapus=0')->result_array();
  219.                         $integer = 1;
  220.                         $emailnya = "";
  221.                         foreach($data_rec as $email){
  222.                             if ($integer > 1){
  223.                                 $emailnya .= ",".$email["email"];
  224.                             }else{
  225.                                 $emailnya .= $email["email"];
  226.                             }
  227.                             $integer++;              
  228.                         }          
  229.                                                                    
  230.                         $this->email->to("$emailnya");
  231.                         $this->email->bcc("basuki.rachmadd@gmail.com");
  232.                         $this->email->subject("PENDAFTARAN MITRA TRUEMONEY [$nama_lengkap - $nama_perusahaan]");
  233.                         $body = $this->load->view('formperusahaan-mail.php',$inputdata,TRUE);
  234.                         $this->email->message($body);  
  235.                         $this->email->send();
  236.                     }
  237.                    
  238.                    
  239.                    
  240.                    
  241.                    
  242.                     echo $insert_id;
  243.                    
  244.                 }else{
  245.                     echo trim(-1);
  246.                 }
  247.             }else{
  248.                 echo trim(-1);
  249.             }
  250.            
  251.         }else{
  252.             echo 0;
  253.         }
  254.        
  255.     }
  256.     function submitperusahaancenter(){
  257.              
  258.         $data_session = $this->session->all_userdata();
  259.         if (isset($_POST["nama_lengkap"])){
  260.             $nama_lengkap = $this->xss_filter($_POST["nama_lengkap"]);            
  261.             $nama_perusahaan = $this->xss_filter($_POST["nama_perusahaan"]);            
  262.             $telp = $this->xss_filter($_POST["telp"]);            
  263.             $email = $this->xss_filter($_POST["email"]);
  264.             $komentar = $this->xss_filter($_POST["komentar"]);
  265.             $captcha = $this->xss_filter($_POST["captcha"]);
  266.             if (isset($data_session["captchaPerusahaan"])){
  267.                 if ($captcha == $data_session["captchaPerusahaan"]){
  268.                     $inputdata = array(    
  269.                         'crdate' => date('Y-m-d H:i:s'),
  270.                         'nama'   => $nama_lengkap,
  271.                         'nama_perusahaan'   => $nama_perusahaan,
  272.                         'telp'   => $telp,
  273.                         'email'   => $email,
  274.                         'komentar'   => $komentar
  275.                     );    
  276.                     $this->db->insert('formmitra', $inputdata);
  277.                     $insert_id = $this->db->insert_id();
  278.                     $this->session->unset_userdata('captchaPerusahaan');
  279.                    
  280.                    
  281.                     if ($insert_id > 0){
  282.                         $config = Array(      
  283.                             'protocol' => 'sendmail',
  284.                             'smtp_timeout' => '4',
  285.                             'mailtype'  => 'html',
  286.                             'charset'   => 'iso-8859-1'
  287.                         );
  288.                         $this->load->library('email', $config);
  289.                         $this->email->set_newline("\r\n");
  290.                        
  291.                         $this->email->from('info@truemoney.co.id', 'TrueMoney');
  292.                        
  293.                         $data_rec = $this->db->query('SELECT id,name,email FROM `contactreceiver` WHERE idmenu = 133 AND hapus=0')->result_array();
  294.                         $integer = 1;
  295.                         $emailnya = "";
  296.                         foreach($data_rec as $email){
  297.                             if ($integer > 1){
  298.                                 $emailnya .= ",".$email["email"];
  299.                             }else{
  300.                                 $emailnya .= $email["email"];
  301.                             }
  302.                             $integer++;              
  303.                         }          
  304.                                                                    
  305.                         $this->email->to("$emailnya");
  306.                         $this->email->bcc("basuki.rachmadd@gmail.com");
  307.                         $this->email->subject("PENDAFTARAN MITRA TRUEMONEY [$nama_lengkap - $nama_perusahaan]");
  308.                         $body = $this->load->view('formperusahaan-mail.php',$inputdata,TRUE);
  309.                         $this->email->message($body);  
  310.                         $this->email->send();
  311.                     }
  312.                     echo $insert_id;
  313.                    
  314.                 }else{
  315.                     echo trim(-1);
  316.                 }
  317.             }else{
  318.                 echo trim(-1);
  319.             }
  320.            
  321.         }else{
  322.             echo 0;
  323.         }
  324.        
  325.     }
  326.     function getcaramember(){
  327.        
  328.         if (isset($_GET["status"])){
  329.             if ($_GET["status"] == "agen"){
  330.                 $pembuka = $this->db->query('SELECT title,description FROM `content`  WHERE idmenu = 103')->result_array();
  331.                 $this->data['pembuka'] = $pembuka;
  332.                 $step = $this->db->query('SELECT * FROM `agen`  WHERE hidden=0 AND deleted=0')->result_array();
  333.                 $this->data['step'] = $step;
  334.                
  335.                 $this->data['folder'] = "agen";
  336.             }else{
  337.                 $pembuka = $this->db->query('SELECT title,description FROM `content`  WHERE idmenu = 100')->result_array();
  338.                 $this->data['pembuka'] = $pembuka;
  339.                 $step = $this->db->query('SELECT * FROM `member_agen`  WHERE hidden=0 AND deleted=0')->result_array();
  340.                 $this->data['step'] = $step;
  341.                 $this->data['folder'] = "member_agen";
  342.             }
  343.            
  344.         }else{
  345.             $pembuka = $this->db->query('SELECT title,description FROM `content`  WHERE idmenu = 100')->result_array();
  346.             $this->data['pembuka'] = $pembuka;
  347.            
  348.             $step = $this->db->query('SELECT * FROM `member_agen`  WHERE hidden=0 AND deleted=0')->result_array();
  349.             $this->data['step'] = $step;
  350.             $this->data['folder'] = "member_agen";
  351.         }
  352.         $this->data["datanya"] = array();
  353.         $this->load->view('getcaramember',$this->data);
  354.     }
  355.     function getcarasaldo(){
  356.         $pembuka_tarik_saldo = $this->db->query('SELECT title,description FROM `content`  WHERE idmenu = 106')->result_array();
  357.         $this->data['pembuka_tarik_saldo'] = $pembuka_tarik_saldo;
  358.         $steptarik_saldo = $this->db->query('SELECT * FROM `tariksaldo`  WHERE hidden=0 AND deleted=0')->result_array();
  359.         $this->data['step_tarik_saldo'] = $steptarik_saldo;
  360.        
  361.         $this->load->view('getcarasaldo',$this->data);
  362.     }
  363.     function cekconfirmationpayment(){
  364.        
  365.         $data_session = $this->session->all_userdata();
  366.         $cart = $this->db->query('SELECT a.*,b.reference_order FROM confirmation_payment a LEFT JOIN cart b ON a.uid_cart=b.uid WHERE a.uid_cart='.$_GET["uid"])->result_array();
  367.         //echo "<pre>";
  368.         //print_r($cart);
  369.         $this->data["cart"] = $cart;
  370.         $this->load->view('cekconfirmationpayment',$this->data);
  371.     }
  372.     function saveconfirmation(){
  373.        
  374.         $data_session = $this->session->all_userdata();
  375.         $title = $_POST["title"];
  376.         $message = $_POST["message"];
  377.        
  378.         $new_file_name = "";
  379.         if ($_FILES['file']['name'] != ""){
  380.             $filenameold   = strtolower($_FILES['file']['name']);
  381.             $file_edit     = str_replace(" ","_",$filenameold);
  382.             $random_digit  = date("YmdHis");
  383.             $new_file_name = 'confirmation_'.$random_digit."_".$file_edit;
  384.             move_uploaded_file($_FILES['file']['tmp_name'], FCPATH.'/uploads/confirmation_payment/'.$new_file_name);
  385.         }
  386.        
  387.         $inputdata = array(    
  388.             'crdate' => date('Y-m-d H:i:s'),
  389.             'uid_cart' => $_POST["cart"],
  390.             'uid_account'   => $data_session["login_user"]["eternaleaf_user_login"],
  391.             'title'   => $title,
  392.             'message'   => $message,
  393.             'file'   => $new_file_name
  394.         );    
  395.         $saved = $this->db->insert("confirmation_payment", $inputdata);
  396.         $insert_id = $this->db->insert_id();
  397.         if ($insert_id > 0){
  398.             $cart = $this->db->query('SELECT a.*,b.reference_order FROM confirmation_payment a LEFT JOIN cart b ON a.uid_cart=b.uid WHERE a.uid='.$insert_id)->result_array();
  399.             $reference_order = $cart[0]["reference_order"];
  400.             $config = Array(      
  401.                 'protocol' => 'sendmail',
  402.                 'smtp_timeout' => '4',
  403.                 'mailtype'  => 'html',
  404.                 'charset'   => 'iso-8859-1'
  405.             );
  406.             $this->load->library('email', $config);
  407.             $this->email->set_newline("\r\n");
  408.             $data = array(
  409.                 'cart' => $cart
  410.             );
  411.             $this->email->from('contact@giziindonesia.co.id', 'Gizi Indonesia');
  412.             $this->email->to("basuki@brightstars.co.id");
  413.             //$this->email->to("support@eternaleaf.com");  // replace it with receiver mail id
  414.             //$this->email->cc('Adi@trinitypratama.com,sisca@trinitypratama.com,Sonya@trinitypratama.com,vissia@trinitypratama.com');
  415.             //$this->email->bcc("basuki@brightstars.co.id");
  416.             $this->email->subject("Konfirmasi Pembayaran [$reference_order]");
  417.             $body = $this->load->view('paymentconfirmation-mail.php',$data,TRUE);
  418.             $this->email->message($body);  
  419.             $this->email->send();
  420.         }
  421.        
  422.         echo $insert_id;
  423.     }
  424.     function captcha_contact(){
  425.         $captcha = new SimpleCaptcha();
  426.        
  427.         $session_contact = $this->session->userdata('contact');
  428.         $captchanya = $this->GetRandomCaptchaText(5);
  429.         $this->session->userdata['captcha_text_contact'] = $captchanya;
  430.         $captcha->CreateImage($captchanya);
  431.         //echo $this->GetRandomCaptchaText(5);
  432.     }
  433.     function captcha_forgot(){
  434.         $captcha = new SimpleCaptcha();
  435.        
  436.         $captchanya = $this->GetRandomCaptchaText(5);
  437.         $this->session->userdata['captcha_text_forgot'] = $captchanya;
  438.         $captcha->CreateImage($captchanya);
  439.         //echo $this->GetRandomCaptchaText(5);
  440.     }
  441.     function saveaddress(){
  442.         $province = $this->xss_filter($_POST["province"]);
  443.         $city = $this->xss_filter($_POST["city"]);
  444.         $subdistrict = $this->xss_filter($_POST["subdistrict"]);
  445.         $address = $this->xss_filter($_POST["address"]);
  446.         $postal_code = $this->xss_filter($_POST["postal_code"]);
  447.         $data_session = $this->session->all_userdata();
  448.         if ($_POST["uid"] != ""){
  449.             $uid = $this->encrypt->decodeUrl($_POST["uid"],$this->key);
  450.             $editdata = array(    
  451.                 'uid_province'   => $province,
  452.                 'uid_city'   => $city,
  453.                 'uid_subdistrict'   => $subdistrict,
  454.                 'address_value'   => $address,
  455.                 'postal_code'   => $postal_code
  456.             );    
  457.                            
  458.                  
  459.             $this->db->where('uid', $uid);
  460.             $edit = $this->db->update("address", $editdata);
  461.             echo 1;  
  462.         }else{
  463.             $inputdata = array(    
  464.                 'crdate' => date('Y-m-d H:i:s'),
  465.                 'uid_province'   => $province,
  466.                 'uid_city'   => $city,
  467.                 'uid_subdistrict'   => $subdistrict,
  468.                 'address_value'   => $address,
  469.                 'postal_code'   => $postal_code,
  470.                 'default' => 1,
  471.                 'uid_account' => $data_session["login_user"]["eternaleaf_user_login"]
  472.             );    
  473.             $saved = $this->db->insert("address", $inputdata);
  474.             echo $saved;
  475.         }
  476.        
  477.     }
  478.     function save_add_address(){
  479.         $label_address = $this->xss_filter($_POST["label_address"]);
  480.         $province = $this->xss_filter($_POST["province"]);
  481.         $city = $this->xss_filter($_POST["city"]);
  482.         $subdistrict = $this->xss_filter($_POST["subdistrict"]);
  483.         $address = $this->xss_filter($_POST["address"]);
  484.         $postal_code = $this->xss_filter($_POST["postal_code"]);
  485.         $telepon = $this->xss_filter($_POST["telepon"]);
  486.         $data_session = $this->session->all_userdata();
  487.         $query_address = 'SELECT uid FROM address where uid_account = '.$data_session["login_user"]["eternaleaf_user_login"];
  488.         $count_query_address = $this->db->query($query_address)->result_array();
  489.         $default = 0;
  490.        
  491.         if (count($count_query_address) == 0){
  492.             $default = 1;
  493.         }
  494.         if ($_POST["uid"] != ""){
  495.             $uid = $this->encrypt->decodeUrl($_POST["uid"],$this->key);
  496.             $editdata = array(    
  497.                 'uid_province'   => $province,
  498.                 'label_address'   => $label_address,
  499.                 'uid_city'   => $city,
  500.                 'uid_subdistrict'   => $subdistrict,
  501.                 'address_value'   => $address,
  502.                 'telepon' => $telepon,
  503.                 'postal_code'   => $postal_code,
  504.                 'default'   => $default
  505.             );    
  506.                            
  507.                  
  508.             $this->db->where('uid', $uid);
  509.             $edit = $this->db->update("address", $editdata);
  510.             echo 1;  
  511.         }else{
  512.             $inputdata = array(    
  513.                 'crdate' => date('Y-m-d H:i:s'),
  514.                 'label_address'   => $label_address,
  515.                 'uid_province'   => $province,
  516.                 'uid_city'   => $city,
  517.                 'uid_subdistrict'   => $subdistrict,
  518.                 'address_value'   => $address,
  519.                 'postal_code'   => $postal_code,
  520.                 'telepon' => $telepon,
  521.                 'uid_account' => $data_session["login_user"]["eternaleaf_user_login"],
  522.                 'default'   => $default
  523.             );    
  524.             $saved = $this->db->insert("address", $inputdata);
  525.             echo $saved;
  526.         }
  527.     }
  528.     function update_current_address_submit(){
  529.         $label_address = $this->xss_filter($_POST["address"]);
  530.         $province = $this->xss_filter($_POST["province"]);
  531.         $city = $this->xss_filter($_POST["city"]);
  532.         $subdistrict = $this->xss_filter($_POST["subdistrict"]);
  533.         $address = $this->xss_filter($_POST["address"]);
  534.         $postal_code = $this->xss_filter($_POST["postal_code"]);
  535.         $telepon = $this->xss_filter($_POST["telepon"]);
  536.         $data_session = $this->session->all_userdata();
  537.        
  538.         if ($_POST["uid"] != ""){
  539.             $uid = $this->encrypt->decodeUrl($_POST["uid"],$this->key);
  540.             $editdata = array(    
  541.                 'uid_province'   => $province,
  542.                 'label_address'   => $label_address,
  543.                 'uid_city'   => $city,
  544.                 'uid_subdistrict'   => $subdistrict,
  545.                 'address_value'   => $address,
  546.                 'telepon' => $telepon,
  547.                 'postal_code'   => $postal_code
  548.             );    
  549.                            
  550.                  
  551.             $this->db->where('uid', $uid);
  552.             $edit = $this->db->update("address", $editdata);
  553.         }
  554.         echo 1;  
  555.     }
  556.     function saveaccount(){
  557.         $fullname = $this->xss_filter($_POST["fullname"]);
  558.         $day = $this->xss_filter($_POST["day"]);
  559.         $month = $this->xss_filter($_POST["month"]);
  560.         $year = $this->xss_filter($_POST["year"]);
  561.         $email = $this->xss_filter($_POST["email"]);
  562.         $telepon = $this->xss_filter($_POST["telepon"]);
  563.        
  564.         $editdata = array(    
  565.             'fullname'   => $fullname,
  566.             'birthdate'   => $year."-".$month."-".$day,
  567.             'telepon'   => $telepon,
  568.             'email'   => $email
  569.         );    
  570.                        
  571.         $data_session = $this->session->all_userdata();      
  572.         $this->session->userdata['login_user']['eternaleaf_fullname'] = $fullname;
  573.         $this->db->where('uid', $data_session["login_user"]["eternaleaf_user_login"]);
  574.         $edit = $this->db->update("account", $editdata);
  575.         echo 1;
  576.     }
  577.     function savepassword(){
  578.         $data_session = $this->session->all_userdata();
  579.         $oldpassword = $this->xss_filter($_POST["oldpassword"]);
  580.         $email = $this->xss_filter($data_session["login_user"]["eternaleaf_email"]);
  581.         $newpassword = $this->xss_filter($_POST["password"]);
  582.         $confirmpassword = $this->xss_filter($_POST["confirmpassword"]);
  583.        
  584.         if ($newpassword != $confirmpassword){
  585.             echo "00";
  586.             die();
  587.         }
  588.        
  589.         $sql  = "SELECT * FROM account WHERE email = ? AND password = ? AND active = ?";
  590.         $postnya = array($email, sha1(md5($oldpassword)), 1);
  591.         $query = $this->db->query($sql, $postnya)->result_array();
  592.            
  593.         if (count($query) > 0){
  594.             $editdata = array(    
  595.                 'password'   => sha1(md5($newpassword)),
  596.             );    
  597.             $this->db->where('uid', $data_session["login_user"]["eternaleaf_user_login"]);
  598.             $edit = $this->db->update("account", $editdata);
  599.             echo "1";
  600.         }else{
  601.             echo "0";
  602.         }
  603.     }    
  604.     function GetRandomCaptchaText($length = null) {
  605.         if (empty($length)) {
  606.             $length = rand($this->minWordLength, $this->maxWordLength);
  607.         }
  608.  
  609.         $words  = "abcdefghijlmnopqrstvwyz";
  610.         $vocals = "aeiou";
  611.  
  612.         $text  = "";
  613.         $vocal = rand(0, 1);
  614.         for ($i=0; $i<$length; $i++) {
  615.             if ($vocal) {
  616.                 $text .= substr($vocals, mt_rand(0, 4), 1);
  617.             } else {
  618.                 $text .= substr($words, mt_rand(0, 22), 1);
  619.             }
  620.             $vocal = !$vocal;
  621.         }
  622.         return $text;
  623.     }
  624.     function cek_captcha(){
  625.        
  626.         $captcha = $this->xss_filter($_POST["captcha"]);
  627.         $nama = $this->xss_filter($_POST["nama"]);
  628.         $email = $this->xss_filter($_POST["email"]);
  629.         $pesan = $this->xss_filter($_POST["pesan"]);
  630.        
  631.         if ($captcha == $_SESSION["captcha"] && $nama != "" && $email != "" && $pesan != ""){
  632.             $inputdata = array(            
  633.                 'name'   => $nama,
  634.                 'cretime' => date('Y-m-d H:i:s'),
  635.                 'email'   => $email,
  636.                 'pesan'   => $pesan
  637.               );    
  638.               $saved = $this->db->insert("contact", $inputdata);
  639.               unset($_SESSION['captcha']);
  640.               session_destroy();
  641.               if($saved){
  642.                 echo $this->db->insert_id();
  643.               }
  644.         }else{
  645.             echo 0;
  646.         }
  647.         die();
  648.     }
  649.     function ongkir(){
  650.         $getorigin = $this->getorigin();
  651.         $curl = curl_init();
  652.         curl_setopt_array($curl, array(
  653.           CURLOPT_URL => "http://pro.rajaongkir.com/api/cost",
  654.           CURLOPT_RETURNTRANSFER => true,
  655.           CURLOPT_ENCODING => "",
  656.           CURLOPT_MAXREDIRS => 10,
  657.           CURLOPT_TIMEOUT => 30,
  658.           CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  659.           CURLOPT_CUSTOMREQUEST => "POST",
  660.           CURLOPT_POSTFIELDS => "origin=$getorigin&originType=city&destination=2087&destinationType=subdistrict&weight=1000&courier=jne",
  661.           CURLOPT_HTTPHEADER => array(
  662.             "content-type: application/x-www-form-urlencoded",
  663.             "key: 83d0bea707a458d2ca3ed9c23498e9cb"
  664.           ),
  665.         ));
  666.         $response = curl_exec($curl);
  667.         $err = curl_error($curl);
  668.        
  669.         curl_close($curl);
  670.        
  671.         if ($err) {
  672.           echo "cURL Error #:" . $err;
  673.         } else {
  674.           $data = json_decode($response, true);
  675.         }
  676.         echo "<pre>";
  677.         $key = array_search("REG", array_column($data["rajaongkir"]["results"][0]["costs"], 'service'));
  678.         if ($key == ""){
  679.             $key = array_search("CTC", array_column($data["rajaongkir"]["results"][0]["costs"], 'service'));
  680.         }
  681.         //print_r($data["rajaongkir"]["results"][0]["costs"]);
  682.         print_r($data["rajaongkir"]["results"][0]["costs"][$key]["cost"]);
  683.     }
  684.     function update_province(){
  685.        
  686.         $curl = curl_init();
  687.         curl_setopt_array($curl, array(
  688.           CURLOPT_URL => "http://pro.rajaongkir.com/api/province",
  689.           CURLOPT_RETURNTRANSFER => true,
  690.           CURLOPT_ENCODING => "",
  691.           CURLOPT_MAXREDIRS => 10,
  692.           CURLOPT_TIMEOUT => 30,
  693.           CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  694.           CURLOPT_CUSTOMREQUEST => "GET",
  695.           CURLOPT_HTTPHEADER => array(
  696.             "key: 83d0bea707a458d2ca3ed9c23498e9cb"
  697.           ),
  698.         ));
  699.         $response = curl_exec($curl);
  700.         $err = curl_error($curl);
  701.        
  702.         curl_close($curl);
  703.        
  704.         if ($err) {
  705.           echo "cURL Error #:" . $err;
  706.         } else {
  707.           $data = json_decode($response, true);
  708.         }
  709.        
  710.         $databaru = array();
  711.         $a = 0;
  712.         foreach ($data["rajaongkir"]["results"] as $datanya){
  713.             $databaru[$a]["province_id"] = $datanya["province_id"];
  714.             $databaru[$a]["province"] = $datanya["province"];
  715.             $query_province = 'SELECT province_id FROM province where province_id = '.$datanya["province_id"].' AND province = "'.$datanya["province"].'"';
  716.             $count_query_province = $this->db->query($query_province)->result_array();
  717.             if (count($count_query_province) == 0){
  718.                 $inputdata = array(            
  719.                     'province_id'   => $datanya["province_id"],
  720.                     'province' => $datanya["province"]
  721.                 );    
  722.                 $saved = $this->db->insert("province", $inputdata);
  723.                 if($saved){
  724.                     $databaru[$a]["status"] = "Insert Success";
  725.                 }
  726.             }else{
  727.                  $editdata = array(            
  728.                     'province_id'   => $datanya["province_id"],
  729.                     'province' => $datanya["province"]
  730.                   );                    
  731.                   $this->db->where('province_id', $datanya["province_id"]);
  732.                   $edit = $this->db->update("province", $editdata);  
  733.             }
  734.             if ($a % 10 == 0){
  735.                 sleep(3);
  736.             }
  737.             $a++;
  738.         }
  739.         echo "<pre>";        
  740.         print_r($databaru);
  741.         die();
  742.     }
  743.     function get_province(){
  744.         $curl = curl_init();
  745.         curl_setopt_array($curl, array(
  746.           CURLOPT_URL => "http://pro.rajaongkir.com/api/province",
  747.           CURLOPT_RETURNTRANSFER => true,
  748.           CURLOPT_ENCODING => "",
  749.           CURLOPT_MAXREDIRS => 10,
  750.           CURLOPT_TIMEOUT => 30,
  751.           CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  752.           CURLOPT_CUSTOMREQUEST => "GET",
  753.           CURLOPT_HTTPHEADER => array(
  754.             "key: 83d0bea707a458d2ca3ed9c23498e9cb",
  755.             "Content-Type: application/x-www-form-urlencoded"
  756.           ),
  757.         ));
  758.         $response = curl_exec($curl);
  759.         $err = curl_error($curl);
  760.        
  761.         curl_close($curl);
  762.        
  763.         if ($err) {
  764.           echo "cURL Error #:" . $err;
  765.         } else {
  766.           $data = json_decode($response, true);
  767.         }
  768.        
  769.        
  770.         $a = 0;
  771.        
  772.         echo "<pre>";        
  773.         print_r($data);
  774.         die();
  775.     }
  776.     function update_city(){
  777.        
  778.         $curl = curl_init();
  779.         curl_setopt_array($curl, array(
  780.           CURLOPT_URL => "http://pro.rajaongkir.com/api/city",
  781.           CURLOPT_RETURNTRANSFER => true,
  782.           CURLOPT_ENCODING => "",
  783.           CURLOPT_MAXREDIRS => 10,
  784.           CURLOPT_TIMEOUT => 30,
  785.           CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  786.           CURLOPT_CUSTOMREQUEST => "GET",
  787.           CURLOPT_HTTPHEADER => array(
  788.             "key: 83d0bea707a458d2ca3ed9c23498e9cb"
  789.           ),
  790.         ));
  791.         $response = curl_exec($curl);
  792.         $err = curl_error($curl);
  793.        
  794.         curl_close($curl);
  795.        
  796.         if ($err) {
  797.           echo "cURL Error #:" . $err;
  798.         } else {
  799.           $data = json_decode($response, true);
  800.         }
  801.        
  802.         $databaru = array();
  803.         $a = 0;
  804.        
  805.         foreach ($data["rajaongkir"]["results"] as $datanya){
  806.             $databaru[$a]["city_id"] = $datanya["city_id"];
  807.             $databaru[$a]["province_id"] = $datanya["province_id"];
  808.             $databaru[$a]["province"] = $datanya["province"];
  809.             $databaru[$a]["type"] = $datanya["type"];
  810.             $databaru[$a]["city_name"] = $datanya["city_name"];
  811.             $databaru[$a]["postal_code"] = $datanya["postal_code"];
  812.            
  813.             $query_city = 'SELECT city_id FROM city where city_id = '.$datanya["city_id"].' AND city_name = "'.$datanya["city_name"].'" AND type_city = "'.$datanya["type"].'"';
  814.             $count_query_city = $this->db->query($query_city)->result_array();
  815.             if (count($count_query_city) == 0){
  816.                 $inputdata = array(            
  817.                     'city_id'   => $datanya["city_id"],
  818.                     'province_id' => $datanya["province_id"],
  819.                     'type_city' => $datanya["type"],
  820.                     'city_name' => $datanya["city_name"],
  821.                     'postal_code' => $datanya["postal_code"]
  822.                 );    
  823.                 $saved = $this->db->insert("city", $inputdata);
  824.                 if($saved){
  825.                     $databaru[$a]["status"] = "Insert Success";
  826.                 }
  827.             }else{
  828.                  $editdata = array(            
  829.                     'city_id'   => $datanya["city_id"],
  830.                     'province_id' => $datanya["province_id"],
  831.                     'type_city' => $datanya["type"],
  832.                     'city_name' => $datanya["city_name"],
  833.                     'postal_code' => $datanya["postal_code"]
  834.                   );                    
  835.                   $this->db->where('city_id', $datanya["city_id"]);
  836.                   $edit = $this->db->update("city", $editdata);  
  837.             }
  838.             if ($a % 100 == 0){
  839.                 sleep(3);
  840.             }
  841.             $a++;
  842.         }
  843.         echo "<pre>";        
  844.         print_r($databaru);
  845.         die();
  846.     }
  847.    
  848.    
  849.     function update_district1   (){
  850.         $query_district = 'SELECT subdistrict_id,subdistrict_name FROM subdistrict where city_id = '.$this->xss_filter($_POST["city_id"]);
  851.         $count_artikel = $this->db->query($query_district)->result_array();
  852.         if (count($count_artikel) > 0){
  853.             echo json_encode($count_artikel);
  854.         }else{
  855.             $curl = curl_init();
  856.            
  857.             $city_id = $_POST["city_id"];
  858.             curl_setopt_array($curl, array(
  859.                 CURLOPT_URL => "http://cdlab.co/rajaongkir/update_district.php",
  860.                 CURLOPT_RETURNTRANSFER => true,
  861.                 CURLOPT_ENCODING => "",
  862.                 CURLOPT_MAXREDIRS => 10,
  863.                 CURLOPT_TIMEOUT => 30,
  864.                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  865.                 CURLOPT_CUSTOMREQUEST => "POST",
  866.                 CURLOPT_POSTFIELDS => "city_id=$city_id",
  867.              
  868.             ));
  869.             $response = curl_exec($curl);
  870.             $err = curl_error($curl);
  871.             curl_close($curl);
  872.             if ($err) {
  873.               echo "cURL Error #:" . $err;
  874.             } else {
  875.               $data = json_decode($response, true);
  876.             }
  877.             /*
  878.             echo "<pre>";
  879.             print_r($data["rajaongkir"]["results"]);
  880.            
  881.             die();
  882.             */
  883.             $databaru = array();
  884.             $a = 0;
  885.            
  886.             foreach ($data["rajaongkir"]["results"] as $datanya){
  887.                
  888.                     $inputdata = array(            
  889.                         'subdistrict_id'   => $datanya["subdistrict_id"],
  890.                         'province_id' => $datanya["province_id"],
  891.                         'province' => $datanya["province"],
  892.                         'city_id' => $datanya["city_id"],
  893.                         'city' => $datanya["city"],
  894.                         'type' => $datanya["type"],
  895.                         'subdistrict_name' => $datanya["subdistrict_name"]
  896.                     );    
  897.                     $saved = $this->db->insert("subdistrict", $inputdata);
  898.                     if($saved){
  899.                         $databaru[$a]["status"] = "Insert Success";
  900.                     }
  901.             }
  902.             $query_district = 'SELECT subdistrict_id,subdistrict_name FROM subdistrict where city_id = '.$this->xss_filter($_POST["city_id"]);
  903.             $count_artikel = $this->db->query($query_district)->result_array();
  904.             echo json_encode($count_artikel);
  905.         }
  906.        
  907.        
  908.         die();
  909.     }
  910.    
  911.     function update_district(){
  912.         $query_district = 'SELECT subdistrict_id,subdistrict_name FROM subdistrict where city_id = '.$this->xss_filter($_POST["city_id"]) . ' ORDER BY subdistrict_name ASC';
  913.         $count_artikel = $this->db->query($query_district)->result_array();
  914.         if (count($count_artikel) > 0){
  915.             echo json_encode($count_artikel);
  916.         }else{
  917.             $curl = curl_init();
  918.             curl_setopt_array($curl, array(
  919.               CURLOPT_URL => "http://pro.rajaongkir.com/api/subdistrict?city=".$this->xss_filter($_POST["city_id"]),
  920.               CURLOPT_RETURNTRANSFER => true,
  921.               CURLOPT_ENCODING => "",
  922.               CURLOPT_MAXREDIRS => 10,
  923.               CURLOPT_TIMEOUT => 30,
  924.               CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  925.               CURLOPT_CUSTOMREQUEST => "GET",
  926.               CURLOPT_HTTPHEADER => array(
  927.                 "key: 83d0bea707a458d2ca3ed9c23498e9cb"
  928.               ),
  929.             ));
  930.             $response = curl_exec($curl);
  931.             $err = curl_error($curl);
  932.            
  933.             curl_close($curl);
  934.            
  935.             if ($err) {
  936.               echo "cURL Error #:" . $err;
  937.             } else {
  938.               $data = json_decode($response, true);
  939.             }
  940.            
  941.             $databaru = array();
  942.             $a = 0;
  943.            
  944.             foreach ($data["rajaongkir"]["results"] as $datanya){
  945.                
  946.                     $inputdata = array(            
  947.                         'subdistrict_id'   => $datanya["subdistrict_id"],
  948.                         'province_id' => $datanya["province_id"],
  949.                         'province' => $datanya["province"],
  950.                         'city_id' => $datanya["city_id"],
  951.                         'city' => $datanya["city"],
  952.                         'type' => $datanya["type"],
  953.                         'subdistrict_name' => $datanya["subdistrict_name"]
  954.                     );    
  955.                     $saved = $this->db->insert("subdistrict", $inputdata);
  956.                     if($saved){
  957.                         $databaru[$a]["status"] = "Insert Success";
  958.                     }
  959.             }
  960.             $query_district = 'SELECT subdistrict_id,subdistrict_name FROM subdistrict where city_id = '.$this->xss_filter($_POST["city_id"]).' ORDER BY subdistrict_name ASC';
  961.             $count_artikel = $this->db->query($query_district)->result_array();
  962.             echo json_encode($count_artikel);
  963.         }
  964.        
  965.        
  966.         die();
  967.     }
  968.    
  969.     /*function cekresiCDLAB(){
  970.         $data_session = $this->session->all_userdata();
  971.         if (isset($data_session["login_user"]["eternaleaf_user_login"])){
  972.             $resi = $_GET["resi"];
  973.            
  974.             $curl = curl_init();
  975.             curl_setopt_array($curl, array(
  976.                 CURLOPT_URL => "http://cdlab.co/rajaongkir/cekresi.php",
  977.                 CURLOPT_RETURNTRANSFER => true,
  978.                 CURLOPT_ENCODING => "",
  979.                 CURLOPT_MAXREDIRS => 10,
  980.                 CURLOPT_TIMEOUT => 30,
  981.                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  982.                 CURLOPT_CUSTOMREQUEST => "POST",
  983.                 CURLOPT_POSTFIELDS => "resi=$resi",
  984.              
  985.             ));
  986.             $response = curl_exec($curl);
  987.             $err = curl_error($curl);
  988.             curl_close($curl);
  989.             if ($err) {
  990.               echo "cURL Error #:" . $err;
  991.             } else {
  992.               $data = json_decode($response, true);
  993.             }
  994.             /*echo "<pre>";        
  995.             print_r($data);
  996.             die();
  997.             $data["resi"] = $data;
  998.             $data["manifest"] = $data["rajaongkir"]["result"]["manifest"];
  999.             $data["summary"] = $data["rajaongkir"]["result"]["summary"];
  1000.             $this->load->view('resi',$data);
  1001.         }
  1002.        
  1003.        
  1004.     }*/
  1005.     function cekresi(){
  1006.         $data_session = $this->session->all_userdata();
  1007.         if (isset($data_session["login_user"]["eternaleaf_user_login"])){
  1008.             $resi = $_GET["resi"];
  1009.             $curl = curl_init();
  1010.             curl_setopt_array($curl, array(
  1011.               CURLOPT_URL => "http://pro.rajaongkir.com/api/waybill",
  1012.               CURLOPT_RETURNTRANSFER => true,
  1013.               CURLOPT_ENCODING => "",
  1014.               CURLOPT_MAXREDIRS => 10,
  1015.               CURLOPT_TIMEOUT => 30,
  1016.               CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  1017.               CURLOPT_CUSTOMREQUEST => "POST",
  1018.               CURLOPT_POSTFIELDS => "waybill=$resi&courier=jne",
  1019.               CURLOPT_HTTPHEADER => array(
  1020.                 "content-type: application/x-www-form-urlencoded",
  1021.                 "key: 83d0bea707a458d2ca3ed9c23498e9cb"
  1022.               ),
  1023.             ));
  1024.             $response = curl_exec($curl);
  1025.             $err = curl_error($curl);
  1026.            
  1027.             curl_close($curl);
  1028.            
  1029.             if ($err) {
  1030.               echo "cURL Error #:" . $err;
  1031.             } else {
  1032.               $data = json_decode($response, true);
  1033.             }
  1034.             //echo "<pre>";        
  1035.             //print_r($data);
  1036.             $data["resi"] = $data;
  1037.             $data["manifest"] = $data["rajaongkir"]["result"]["manifest"];
  1038.             $data["summary"] = $data["rajaongkir"]["result"]["summary"];
  1039.             $this->load->view('resi',$data);
  1040.         }
  1041.        
  1042.        
  1043.     }
  1044.     function subscribe(){
  1045.         if ($_POST["email"]  != ""){
  1046.              if (preg_match ("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix ", $_POST [ 'email']))    {
  1047.                 $query_email = 'SELECT id FROM subscribe where email LIKE "'.$_POST["email"].'"';
  1048.                 $count_email = $this->db->query($query_email)->result_array();
  1049.                 if (count($count_email) == 0){
  1050.                     $inputdata = array(            
  1051.                         'email'   => $_POST["email"],
  1052.                         'cretime' => date('Y-m-d H:i:s')
  1053.                     );    
  1054.                     $saved = $this->db->insert("subscribe", $inputdata);
  1055.                     if($saved){
  1056.                         echo $this->db->insert_id();
  1057.                     }
  1058.                 }
  1059.                 else{
  1060.                     echo -1;
  1061.                 }
  1062.             }
  1063.              else{
  1064.                 echo 0;
  1065.             }
  1066.            
  1067.            
  1068.            
  1069.         }else{
  1070.             echo 0;
  1071.         }
  1072.         die();
  1073.     }
  1074.     function getartikelbypage()
  1075.     {
  1076.         $limit = 4;
  1077.         $sisterpage = $this->xss_filter($_POST["sisterpage"]);
  1078.         $fornext = $this->xss_filter($_POST["awalnya"]) + 4;
  1079.         $artikel = $this->db->query('SELECT a.description,a.title,a.thumb,a.pic,a.cretime,a.link as link_news,c.title as title_cat,d.link as link_detail FROM `artikel` a LEFT JOIN kategori_artikel c ON a.cat=c.id LEFT JOIN pages d ON c.idpages=d.id where a.deleted=0 AND a.hidden=0 AND a.idlanguage = '.$_POST["lang"].' AND a.title != "" AND (c.idpages='.$sisterpage.' OR c.otherpages LIKE "'.$sisterpage.'" OR c.otherpages LIKE "%,'.$sisterpage.'" OR c.otherpages LIKE "'.$sisterpage.',%") order by a.posisi DESC limit '.$_POST["awalnya"].','.$limit)->result_array();
  1080.         //echo 'SELECT a.title,a.thumb,a.pic,a.cretime,a.link as link_news,c.title as title_cat,d.link as link_detail FROM `artikel` a LEFT JOIN kategori_artikel c ON a.cat=c.id LEFT JOIN pages d ON c.idpages=d.id where a.deleted=0 AND a.hidden=0 AND a.idlanguage = '.$_POST["lang"].' AND a.title != "" order by a.crdate_set ASC limit '.$_POST["awalnya"].',4';
  1081.         $htmlstring = "";
  1082.         foreach ($artikel as $dt){
  1083.             $htmlstring .= "<li>";
  1084.             $htmlstring .= "<div class=\"category\">".$dt["title_cat"]."</div>";
  1085.             if ($dt["pic"] != ""){
  1086.                 $htmlstring .= "<div class=\"image-article\"><img src=\"".base_url('uploads/artikel/'.$dt["pic"])."\" /></div>";
  1087.             }else{
  1088.                 $htmlstring .= "<div class=\"image-article\"><img src=\"".base_url('uploads/artikel/noimage.png')."\" /></div>";
  1089.             }
  1090.             $htmlstring .= "<div class=\"title-list\">";
  1091.             $str = $dt["title"];
  1092.             if (strlen($dt["title"]) > 60){
  1093.                 $str = wordwrap($dt["title"], 60);
  1094.                 $str = explode("\n", $str);
  1095.                 $str = $str[0] . '...';
  1096.             }
  1097.             $htmlstring .= "<h2><a title=\"".$dt["title"]."\" href=\"".base_url($_POST["codebahasa"]."/".$dt["link_detail"].'/'.$dt["link_news"])."\">".$str."</a></h2>";
  1098.             $htmlstring .= "</div>";
  1099.             $descriptionnya = strip_tags($dt["description"]);
  1100.             if (strlen($descriptionnya) > 150){
  1101.                 $descriptionnya = substr($descriptionnya,0,150)."...";
  1102.             }
  1103.             $htmlstring .= "<div class=\"description-list\">";
  1104.             $htmlstring .= "".$descriptionnya."</div>";
  1105.             $htmlstring .= "<div class=\"selengkapnya-list\"><a href=\"".base_url($_POST["codebahasa"]."/".$dt["link_detail"].'/'.$dt["link_news"])."\">Selengkapnya &raquo;</a></div>";
  1106.             $htmlstring .= "</li>";
  1107.         }
  1108.        
  1109.         $count_artikel = $this->db->query('SELECT a.title FROM `artikel` a LEFT JOIN kategori_artikel c ON a.cat=c.id LEFT JOIN pages d ON c.idpages=d.id where a.deleted=0 AND a.hidden=0 AND a.idlanguage = '.$_POST["lang"].' AND a.title != "" AND (c.idpages='.$sisterpage.' OR c.otherpages LIKE "'.$sisterpage.'" OR c.otherpages LIKE "%,'.$sisterpage.'" OR c.otherpages LIKE "'.$sisterpage.',%") order by a.crdate_set ASC limit '.$fornext.',4')->result_array();
  1110.         if (count($count_artikel) > 0){
  1111.             $d = array('result' => $htmlstring, 'total_count_next' => count($count_artikel), 'query' => 'SELECT a.title FROM `artikel` a LEFT JOIN kategori_artikel c ON a.cat=c.id LEFT JOIN pages d ON c.idpages=d.id where a.deleted=0 AND a.hidden=0 AND a.idlanguage = '.$_POST["lang"].' AND a.title != "" AND (c.idpages='.$sisterpage.' OR c.otherpages LIKE "'.$sisterpage.'" OR c.otherpages LIKE "%,'.$sisterpage.'" OR c.otherpages LIKE "'.$sisterpage.',%") order by a.crdate_set ASC limit '.$fornext.',4');
  1112.         }else{
  1113.             $d = array('result' => $htmlstring, 'total_count_next' => 0,'query'=>'SELECT a.title FROM `artikel` a LEFT JOIN kategori_artikel c ON a.cat=c.id LEFT JOIN pages d ON c.idpages=d.id where a.deleted=0 AND a.hidden=0 AND a.idlanguage = '.$_POST["lang"].' AND a.title != "" order by a.crdate_set ASC limit '.$fornext.','.$limit);
  1114.         }
  1115.        
  1116.         echo json_encode($d);
  1117.     }
  1118.     function update_address()
  1119.     {
  1120.         $uid = 0;
  1121.         if (isset($_GET["xss"])){
  1122.             $uid = $this->encrypt->decodeUrl($_GET["xss"],$this->key);
  1123.         }
  1124.         $query = $this->db->query('SELECT province_id,province FROM province')->result_array();;
  1125.         $this->data["rec"] = $query;
  1126.        
  1127.         if ($uid > 0){
  1128.         $query_address = $this->db->query('SELECT * FROM address WHERE uid = '.$uid)->result_array();;
  1129.         $this->data["alamat"] = $query_address;
  1130.        
  1131.         $query_city = $this->db->query('SELECT * FROM city WHERE province_id = '.$query_address[0]["uid_province"])->result_array();;
  1132.         $this->data["city"] = $query_city;
  1133.        
  1134.         $query_district = $this->db->query('SELECT * FROM subdistrict WHERE city_id = '.$query_address[0]["uid_city"])->result_array();;
  1135.         $this->data["district"] = $query_district;
  1136.         }
  1137.         //echo "<pre>";
  1138.         //print_r($query_address);
  1139.                                        
  1140.         $this->load->view('popup_address',$this->data);
  1141.     }
  1142.    
  1143.     function select_address()
  1144.     {
  1145.        
  1146.         $weight = $this->xss_filter($_POST["weight"]);
  1147.         $uid = $this->encrypt->decodeUrl($this->xss_filter($_POST["uid"]),$this->key);
  1148.         $query_address = $this->db->query('SELECT a.*,b.province,c.city_name,d.subdistrict_name,e.telepon as telepon_utama,e.fullname FROM address a LEFT JOIN province b ON a.uid_province=b.province_id LEFT JOIN city c ON a.uid_city=c.city_id LEFT JOIN subdistrict d ON a.uid_subdistrict=d.subdistrict_id LEFT JOIN account e ON a.uid_account=e.uid WHERE a.uid = '.$uid)->result_array();;
  1149.        
  1150.         $this->session->userdata['uid_shipping'] = $uid;
  1151.         //echo "<pre>";
  1152.         //print_r($query_address);
  1153.        
  1154.        
  1155.         $ongkirnya = $this->ongkir_jne($weight,$query_address[0]["uid_subdistrict"]);
  1156.         $ongkir = $ongkirnya[0]["value"];
  1157.         $etd = $ongkirnya[0]["etd"];
  1158.         $this->session->userdata['jne']['ongkir'] = $ongkir;
  1159.         $this->session->userdata['jne']['etd'] = $etd;
  1160.         $this->session->userdata['jne']['tujuan'] = $query_address[0]["uid_subdistrict"];
  1161.                
  1162.         $d = array('result' => $query_address,'uid' => $this->encrypt->encodeUrl($query_address[0]["uid"],$this->key), 'ongkir' => "Rp ".$this->rupiah($ongkir), 'etd' => $etd);
  1163.         echo json_encode($d);
  1164.     }
  1165.     /*dipake kalo udh jalan*/
  1166.     function ongkir_jne($weight,$uid_subdistrict){
  1167.         $getorigin = $this->getorigin();
  1168.         $curl = curl_init();
  1169.         curl_setopt_array($curl, array(
  1170.           CURLOPT_URL => "http://pro.rajaongkir.com/api/cost",
  1171.           CURLOPT_RETURNTRANSFER => true,
  1172.           CURLOPT_ENCODING => "",
  1173.           CURLOPT_MAXREDIRS => 10,
  1174.           CURLOPT_TIMEOUT => 30,
  1175.           CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  1176.           CURLOPT_CUSTOMREQUEST => "POST",
  1177.           CURLOPT_POSTFIELDS => "origin=$getorigin&originType=city&destination=$uid_subdistrict&destinationType=subdistrict&weight=$weight&courier=jne",
  1178.           CURLOPT_HTTPHEADER => array(
  1179.             "content-type: application/x-www-form-urlencoded",
  1180.             "key: 83d0bea707a458d2ca3ed9c23498e9cb"
  1181.           ),
  1182.         ));
  1183.         $response = curl_exec($curl);
  1184.         $err = curl_error($curl);
  1185.        
  1186.         curl_close($curl);
  1187.        
  1188.         if ($err) {
  1189.           echo "cURL Error #:" . $err;
  1190.         } else {
  1191.           $data = json_decode($response, true);
  1192.         }
  1193.         //print_r($data["rajaongkir"]);
  1194.         $key = array_search("REG", array_column($data["rajaongkir"]["results"][0]["costs"], 'service'));
  1195.         if ($key == ""){
  1196.             $key = array_search("CTC", array_column($data["rajaongkir"]["results"][0]["costs"], 'service'));
  1197.         }
  1198.        
  1199.        
  1200.        
  1201.         return $data["rajaongkir"]["results"][0]["costs"][$key]["cost"];
  1202.     }
  1203.    
  1204.     /*function ongkir_jne($weight,$uid_subdistrict){
  1205.        
  1206.        
  1207.         $getorigin = $this->getorigin();
  1208.         $uid_subdistrict = $uid_subdistrict;
  1209.         $weight = $weight;
  1210.         $curl = curl_init();
  1211.         curl_setopt_array($curl, array(
  1212.             CURLOPT_URL => "http://cdlab.co/rajaongkir/cekongkir.php",
  1213.             CURLOPT_RETURNTRANSFER => true,
  1214.             CURLOPT_ENCODING => "",
  1215.             CURLOPT_MAXREDIRS => 10,
  1216.             CURLOPT_TIMEOUT => 30,
  1217.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  1218.             CURLOPT_CUSTOMREQUEST => "POST",
  1219.             CURLOPT_POSTFIELDS => "getorigin=$getorigin&uid_subdistrict=$uid_subdistrict&weight=$weight",
  1220.          
  1221.         ));
  1222.         $response = curl_exec($curl);
  1223.         $err = curl_error($curl);
  1224.         curl_close($curl);
  1225.         if ($err) {
  1226.           echo "cURL Error #:" . $err;
  1227.         } else {
  1228.           $data = json_decode($response, true);
  1229.         }
  1230.        
  1231.         //echo "<pre>";
  1232.         //print_r($data);
  1233.         return $data;
  1234.        
  1235.        
  1236.     }*/
  1237.     function update_address_new()
  1238.     {
  1239.         $uid = 0;
  1240.         if (isset($_GET["xss"])){
  1241.             $uid = $this->encrypt->decodeUrl($_GET["xss"],$this->key);
  1242.         }
  1243.         $data_session = $this->session->all_userdata();
  1244.         $this->data['fullname'] = $data_session["login_user"]["eternaleaf_fullname"];      
  1245.         $query = $this->db->query('SELECT province_id,province FROM province')->result_array();;
  1246.         $this->data["rec"] = $query;
  1247.        
  1248.         if ($uid > 0){
  1249.         $query_address = $this->db->query('SELECT * FROM address WHERE uid = '.$uid)->result_array();;
  1250.         $this->data["alamat"] = $query_address;
  1251.        
  1252.         $query_city = $this->db->query('SELECT * FROM city WHERE province_id = '.$query_address[0]["uid_province"])->result_array();;
  1253.         $this->data["city"] = $query_city;
  1254.        
  1255.         $query_district = $this->db->query('SELECT * FROM subdistrict WHERE city_id = '.$query_address[0]["uid_city"])->result_array();;
  1256.         $this->data["district"] = $query_district;
  1257.        
  1258.        
  1259.        
  1260.         $query_district = $this->db->query('SELECT telepon FROM account WHERE uid = '.$data_session["login_user"]["eternaleaf_user_login"])->result_array();;
  1261.         $this->data["acountnya"] = $query_district;
  1262.         }
  1263.         //echo "<pre>";
  1264.         //print_r($query_address);
  1265.                              
  1266.        
  1267.              
  1268.         $this->load->view('popup_address_new',$this->data);
  1269.     }
  1270.     function update_current_address()
  1271.     {
  1272.         $uid = 0;
  1273.         if (isset($_GET["xss"])){
  1274.             $uid = $this->encrypt->decodeUrl($_GET["xss"],$this->key);
  1275.         }
  1276.         $data_session = $this->session->all_userdata();
  1277.         $this->data['fullname'] = $data_session["login_user"]["eternaleaf_fullname"];      
  1278.         $query = $this->db->query('SELECT province_id,province FROM province')->result_array();;
  1279.         $this->data["rec"] = $query;
  1280.        
  1281.         if ($uid > 0){
  1282.         $query_address = $this->db->query('SELECT * FROM address WHERE uid = '.$uid)->result_array();;
  1283.         $this->data["alamat"] = $query_address;
  1284.        
  1285.         $query_city = $this->db->query('SELECT * FROM city WHERE province_id = '.$query_address[0]["uid_province"])->result_array();;
  1286.         $this->data["city"] = $query_city;
  1287.        
  1288.         $query_district = $this->db->query('SELECT * FROM subdistrict WHERE city_id = '.$query_address[0]["uid_city"])->result_array();;
  1289.         $this->data["district"] = $query_district;
  1290.        
  1291.        
  1292.        
  1293.         $query_district = $this->db->query('SELECT telepon FROM account WHERE uid = '.$data_session["login_user"]["eternaleaf_user_login"])->result_array();;
  1294.         $this->data["acountnya"] = $query_district;
  1295.         }
  1296.         //echo "<pre>";
  1297.         //print_r($query_address);
  1298.                              
  1299.        
  1300.              
  1301.         $this->load->view('popup_update_current_address',$this->data);
  1302.     }
  1303.     function add_address()
  1304.     {
  1305.         $uid = 0;
  1306.         if (isset($_GET["xss"])){
  1307.             $uid = $this->encrypt->decodeUrl($_GET["xss"],$this->key);
  1308.         }
  1309.        
  1310.         $query = $this->db->query('SELECT province_id,province FROM province')->result_array();;
  1311.         $this->data["rec"] = $query;
  1312.        
  1313.         if ($uid > 0){
  1314.         $query_address = $this->db->query('SELECT * FROM address WHERE uid = '.$uid)->result_array();;
  1315.         $this->data["alamat"] = $query_address;
  1316.        
  1317.         $query_city = $this->db->query('SELECT * FROM city WHERE province_id = '.$query_address[0]["uid_province"])->result_array();;
  1318.         $this->data["city"] = $query_city;
  1319.        
  1320.         $query_district = $this->db->query('SELECT * FROM subdistrict WHERE city_id = '.$query_address[0]["uid_city"])->result_array();;
  1321.         $this->data["district"] = $query_district;
  1322.         }
  1323.         //echo "<pre>";
  1324.         //print_r($query_address);
  1325.                                        
  1326.         $this->load->view('popup_add_address',$this->data);
  1327.     }
  1328.     function update_account()
  1329.     {
  1330.         $data_session = $this->session->all_userdata();
  1331.         $query = $this->db->query('SELECT *,DATE_FORMAT(birthdate,"%d") AS tgl_lahir,DATE_FORMAT(birthdate,"%m") AS bulan_lahir,DATE_FORMAT(birthdate,"%Y") AS thn_lahir FROM account WHERE uid = '.$data_session["login_user"]["eternaleaf_user_login"])->result_array();
  1332.         $this->data["rec"] = $query;
  1333.         $this->load->view('popup_account',$this->data);
  1334.     }
  1335.    
  1336.     function update_password()
  1337.     {
  1338.         $this->data["rec"] = "";
  1339.         $this->load->view('popup_password',$this->data);
  1340.     }
  1341.     function get_city()
  1342.     {
  1343.         $query = $this->db->query('SELECT city_id,city_name,type_city FROM city WHERE province_id = '.$this->xss_filter($_POST["province_id"]) . ' ORDER BY city_name ASC')->result_array();
  1344.         //echo "<pre>";
  1345.         //print_r($query);
  1346.         echo json_encode($query);
  1347.     }
  1348.     function addcart()
  1349.     {
  1350.         if (isset($_GET["delete_session"])){
  1351.             $this->session->unset_userdata('cart');
  1352.             session_destroy();
  1353.             session_unset();
  1354.             die();
  1355.         }
  1356.         if ($this->xss_filter($_POST["id"]) != "" && $this->xss_filter($_POST["qty"]) != "" ){
  1357.            
  1358.             $session_data = $this->session->userdata('cart');
  1359.            
  1360.            
  1361.            
  1362.             if (!isset($session_data['id_cart'])){
  1363.                 $inputdata_cart = array(    
  1364.                     'crdate'  => date('Y-m-d H:i:s')
  1365.                 );  
  1366.                 $saved = $this->db->insert('temporary_cart', $inputdata_cart);
  1367.                 $insert_id = $this->db->insert_id();
  1368.                 $session_data['id_cart'] = $insert_id;
  1369.                 $this->session->set_userdata("cart", $session_data);
  1370.                 if (isset($session_data['id_cart']) AND $insert_id > 0 AND $insert_id == $session_data['id_cart']){
  1371.                     $inputcartdetail = array(    
  1372.                         'crdate'  => date('Y-m-d H:i:s'),
  1373.                         'uid_temporary_cart' => $session_data['id_cart'],
  1374.                         'uid_produk' => $this->xss_filter($_POST["id"]),
  1375.                         'qty' => $this->xss_filter($_POST["qty"])
  1376.                     );  
  1377.                     $saved2= $this->db->insert('temporary_cart_detail', $inputcartdetail);
  1378.                 }
  1379.                
  1380.             }else{
  1381.                 $query = $this->db->query('SELECT uid FROM temporary_cart WHERE uid = '.$session_data['id_cart'])->result_array();;
  1382.                 if (count($query) == 0){
  1383.                     $inputdata_cart = array(    
  1384.                         'crdate'  => date('Y-m-d H:i:s')
  1385.                     );  
  1386.                     $saved = $this->db->insert('temporary_cart', $inputdata_cart);
  1387.                     $insert_id = $this->db->insert_id();
  1388.                     $session_data['id_cart'] = $insert_id;
  1389.                     $this->session->set_userdata("cart", $session_data);
  1390.                    
  1391.                     if (isset($session_data['id_cart']) AND $insert_id > 0 AND $insert_id == $session_data['id_cart']){
  1392.                         $inputcartdetail = array(    
  1393.                             'crdate'  => date('Y-m-d H:i:s'),
  1394.                             'uid_temporary_cart' => $session_data['id_cart'],
  1395.                             'uid_produk' => $this->xss_filter($_POST["id"]),
  1396.                             'qty' => $this->xss_filter($_POST["qty"])
  1397.                         );  
  1398.                         $saved2= $this->db->insert('temporary_cart_detail', $inputcartdetail);
  1399.                     }
  1400.                 }else{
  1401.                     $inputcartdetail = array(    
  1402.                         'crdate'  => date('Y-m-d H:i:s'),
  1403.                         'uid_temporary_cart' => $session_data['id_cart'],
  1404.                         'uid_produk' => $this->xss_filter($_POST["id"]),
  1405.                         'qty' => $this->xss_filter($_POST["qty"])
  1406.                     );  
  1407.                     $saved2= $this->db->insert('temporary_cart_detail', $inputcartdetail);
  1408.                 }
  1409.                
  1410.             }
  1411.             $query_total = $this->db->query('SELECT SUM(qty) as totalnya FROM temporary_cart_detail WHERE uid_temporary_cart = '.$session_data['id_cart'])->result_array();;
  1412.             if (count($query_total) > 0){
  1413.                 $d = array('total_cart' => $query_total[0]['totalnya']);
  1414.             }else{
  1415.                 $d = array('total_cart' => 0);
  1416.             }
  1417.             echo json_encode($d);
  1418.         }
  1419.        
  1420.     }
  1421.     function updatecart()
  1422.     {
  1423.        
  1424.         if ($this->xss_filter($_POST["id"]) != "" && $this->xss_filter($_POST["qty"]) != "" ){
  1425.            
  1426.             $session_data = $this->session->userdata('cart');
  1427.             $query = $this->db->query('SELECT uid FROM temporary_cart WHERE uid = '.$session_data['id_cart'])->result_array();;
  1428.             $this->db->delete('temporary_cart_detail', array('uid_temporary_cart' => $session_data['id_cart'], 'uid_produk' => $this->xss_filter($_POST["idproduk"])));
  1429.             if (count($query) > 0){
  1430.                 $inputcartdetail = array(    
  1431.                     'crdate'  => date('Y-m-d H:i:s'),
  1432.                     'uid_temporary_cart' => $session_data['id_cart'],
  1433.                     'uid_produk' => $this->xss_filter($_POST["idproduk"]),
  1434.                     'qty' => $this->xss_filter($_POST["qty"])
  1435.                 );  
  1436.                 $saved2= $this->db->insert('temporary_cart_detail', $inputcartdetail);
  1437.             }
  1438.             $query_total = $this->db->query('SELECT SUM(qty) as totalnya FROM temporary_cart_detail WHERE uid_temporary_cart = '.$session_data['id_cart'])->result_array();;
  1439.             $query_total_all = $this->db->query('SELECT a.uid_produk,b.price,a.qty,SUM((b.price*a.qty)) as total FROM temporary_cart_detail a LEFT JOIN produk b ON a.uid_produk=b.sister WHERE a.uid_temporary_cart = '.$session_data['id_cart'].' AND b.idlanguage='.$this->xss_filter($_POST["lang"]))->result_array();;
  1440.            
  1441.            
  1442.             if (count($query_total) > 0){
  1443.                 $d = array('total_cart' => $query_total[0]['totalnya'],'total_harga' => "Rp ".$this->rupiah($query_total_all[0]["total"]));
  1444.             }else{
  1445.                 $d = array('total_cart' => 0,'total_harga' => 0);
  1446.             }
  1447.             echo json_encode($d);
  1448.         }
  1449.     }
  1450.     function updatecartpayment()
  1451.     {
  1452.        
  1453.         if ($this->xss_filter($_POST["id"]) != "" && $this->xss_filter($_POST["qty"]) != "" ){
  1454.            
  1455.             $session_data = $this->session->userdata('cart');
  1456.             $query = $this->db->query('SELECT uid FROM temporary_cart WHERE uid = '.$session_data['id_cart'])->result_array();;
  1457.             $this->db->delete('temporary_cart_detail', array('uid_temporary_cart' => $session_data['id_cart'], 'uid_produk' => $this->xss_filter($_POST["idproduk"])));
  1458.             if (count($query) > 0){
  1459.                 $inputcartdetail = array(    
  1460.                     'crdate'  => date('Y-m-d H:i:s'),
  1461.                     'uid_temporary_cart' => $session_data['id_cart'],
  1462.                     'uid_produk' => $this->xss_filter($_POST["idproduk"]),
  1463.                     'qty' => $this->xss_filter($_POST["qty"])
  1464.                 );  
  1465.                 $saved2= $this->db->insert('temporary_cart_detail', $inputcartdetail);
  1466.             }
  1467.             $query_total = $this->db->query('SELECT SUM(qty) as totalnya FROM temporary_cart_detail WHERE uid_temporary_cart = '.$session_data['id_cart'])->result_array();;
  1468.             $query_total_all = $this->db->query('SELECT a.uid_produk,b.price,a.qty,SUM((b.price*a.qty)) as total,SUM(b.weight*a.qty) as total_berat FROM temporary_cart_detail a LEFT JOIN produk b ON a.uid_produk=b.sister WHERE a.uid_temporary_cart = '.$session_data['id_cart'].' AND b.idlanguage='.$this->xss_filter($_POST["lang"]))->result_array();;
  1469.            
  1470.             //print_r($data_session);
  1471.             $data_session = $this->session->all_userdata();  
  1472.             //print_r($data_session["jne"]["tujuan"]);
  1473.             //die();
  1474.             $ongkirnya = $this->ongkir_jne($query_total_all[0]["total_berat"],$data_session["jne"]["tujuan"]);
  1475.             $ongkir = $ongkirnya[0]["value"];
  1476.             $etd = $ongkirnya[0]["etd"];
  1477.            
  1478.            
  1479.             $totaltobepaid = (int)$ongkir + (int)$query_total_all[0]["total"];
  1480.             if (count($query_total) > 0){
  1481.                 $d = array('total_cart' => $query_total[0]['totalnya'],'total_harga' => "Rp ".$this->rupiah($query_total_all[0]["total"]), 'ongkir' => "Rp ".$this->rupiah($ongkir), 'totaltobepaid' => "Rp ".$this->rupiah($totaltobepaid));
  1482.             }else{
  1483.                 $d = array('total_cart' => 0,'total_harga' => 0, 'ongkir' => $ongkir);
  1484.             }
  1485.             $this->session->userdata['jne']['ongkir'] = $ongkir;
  1486.             $this->session->userdata['jne']['etd'] = $etd;
  1487.             $this->session->userdata['total_harga']["harga_order"] = $query_total_all[0]["total"];
  1488.             $this->session->userdata['total_harga']["harga_dibayar"] = $totaltobepaid;
  1489.             echo json_encode($d);
  1490.         }
  1491.     }
  1492.     function deletecart()
  1493.     {
  1494.        
  1495.         if ($this->xss_filter($_POST["id"]) != "" && $this->xss_filter($_POST["qty"]) != "" ){
  1496.            
  1497.             $session_data = $this->session->userdata('cart');
  1498.             $query = $this->db->query('SELECT uid FROM temporary_cart WHERE uid = '.$session_data['id_cart'])->result_array();;
  1499.             $this->db->delete('temporary_cart_detail', array('uid_temporary_cart' => $session_data['id_cart'], 'uid_produk' => $this->xss_filter($_POST["idproduk"])));
  1500.            
  1501.             $query_total = $this->db->query('SELECT SUM(qty) as totalnya FROM temporary_cart_detail WHERE uid_temporary_cart = '.$session_data['id_cart'])->result_array();;
  1502.             $query_total_all = $this->db->query('SELECT a.uid_produk,b.price,a.qty,SUM((b.price*a.qty)) as total FROM temporary_cart_detail a LEFT JOIN produk b ON a.uid_produk=b.sister WHERE a.uid_temporary_cart = '.$session_data['id_cart'].' AND b.idlanguage='.$this->xss_filter($_POST["lang"]))->result_array();;
  1503.            
  1504.             if (count($query_total) > 0){
  1505.                 $totalnya=$query_total[0]['totalnya'];
  1506.                 if ($totalnya == null){
  1507.                     $totalnya = 0;
  1508.                 }
  1509.                 $d = array('total_cart' => $totalnya,'total_harga' => "Rp ".$this->rupiah($query_total_all[0]["total"]));
  1510.             }else{
  1511.                 $d = array('total_cart' => 0,'total_harga' => 0);
  1512.             }
  1513.             echo json_encode($d);
  1514.         }
  1515.     }
  1516.    
  1517.     function saveregistration(){
  1518.        
  1519.         $error_message = "";
  1520.         if ($this->xss_filter($_POST["fullname"]) == ""){
  1521.             $error_message .= "<li>Please insert fullname</li>";
  1522.         }
  1523.         $daynya = "";
  1524.         if ($this->xss_filter($_POST["day"]) == ""){
  1525.             $error_message .= "<li>Please select day (birthday)</li>";
  1526.         }else{
  1527.             $daynya = $this->xss_filter($_POST["day"]);
  1528.         }
  1529.         $month = "";
  1530.         if ($this->xss_filter($_POST["month"]) == ""){
  1531.             $error_message .= "<li>Please select month (birthday)</li>";
  1532.         }else{
  1533.             $month = $this->xss_filter($_POST["month"]);
  1534.         }
  1535.         $year = "";
  1536.         if ($this->xss_filter($_POST["year"]) == ""){
  1537.             $error_message .= "<li>Please select year (birthday)</li>";
  1538.         }else{
  1539.             $year = $this->xss_filter($_POST["year"]);
  1540.         }
  1541.         if ($this->xss_filter($_POST["telepon"]) == ""){
  1542.             $error_message .= "<li>Please insert telepon</li>";
  1543.         }
  1544.         if ($this->xss_filter($_POST["captcha"]) == ""){
  1545.             $error_message .= "<li>Please insert captcha</li>";
  1546.         }
  1547.         if ($this->xss_filter($_POST["email"]) == ""){
  1548.             $error_message .= "<li>Please insert email</li>";
  1549.         }
  1550.         if (!filter_var($this->xss_filter($_POST["email"]), FILTER_VALIDATE_EMAIL)) {
  1551.             $error_message .= "<li>Email not valid</li>";
  1552.         }
  1553.         if ($this->xss_filter($_POST["password"]) == ""){
  1554.             $error_message .= "<li>Please insert password</li>";
  1555.         }
  1556.         if ($this->xss_filter($_POST["confirm"]) == ""){
  1557.             $error_message .= "<li>Please insert confirm password</li>";
  1558.         }
  1559.      
  1560.         if ($this->xss_filter($_POST["password"]) != $this->xss_filter($_POST["confirm"])){
  1561.             if($_POST["bahasa"] == "id/"){
  1562.                 $error_message .= "<li>Kata sandi dan konfirmasi kata sandi tidak sama</li>";
  1563.             }else{
  1564.                 $error_message .= "<li>Password and confirm password not same</li>";
  1565.             }
  1566.            
  1567.         }
  1568.         if (!isset($_POST["agree"])){
  1569.             $error_message .= "<li>Please check if agree with the terms and condition</li>";
  1570.         }
  1571.         $session_register = $this->session->userdata('register');
  1572.         $session_data = $this->session->all_userdata();
  1573.         if ($session_data["captcha"] != $this->xss_filter($_POST["captcha"])){
  1574.            
  1575.             if($_POST["bahasa"] == "id/"){
  1576.                 $error_message .= "<li>Captcha tidak valid</li>";
  1577.             }else{
  1578.                 $error_message .= "<li>Captcha not valid</li>";
  1579.             }
  1580.         }
  1581.         $insert_id = 0;
  1582.         if ($error_message == ""){
  1583.             $datenya = $year."-".$month."-".$daynya;
  1584.             $query_total = $this->db->query('SELECT email FROM account WHERE email = "'.$this->xss_filter($_POST["email"]).'"')->result_array();
  1585.             if (count($query_total) > 0){
  1586.                 if($_POST["bahasa"] == "id/"){
  1587.                     $error_message .= "<li>Email Anda sudah terdaftar</li>";
  1588.                 }else{
  1589.                     $error_message .= "<li>Your email account has already been used</li>";
  1590.                 }
  1591.                
  1592.             }else{
  1593.                 $inputcartdetail = array(    
  1594.                     'crdate'  => date('Y-m-d H:i:s'),
  1595.                     'fullname' => $this->xss_filter($_POST["fullname"]),
  1596.                     'birthdate' => $datenya,
  1597.                     'telepon' => $this->xss_filter($_POST["telepon"]),
  1598.                     'password' => sha1(md5($this->xss_filter($_POST["password"]))),
  1599.                     'email' => $this->xss_filter($_POST["email"])
  1600.                 );  
  1601.                 $saved2= $this->db->insert('account', $inputcartdetail);
  1602.                 $insert_id = $this->db->insert_id();
  1603.                
  1604.                 if ($insert_id  > 0){
  1605.                     $config = Array(      
  1606.                         'protocol' => 'sendmail',
  1607.                         'smtp_timeout' => '4',
  1608.                         'mailtype'  => 'html',
  1609.                         'charset'   => 'iso-8859-1'
  1610.                     );
  1611.                     $this->load->library('email', $config);
  1612.                     $this->email->set_newline("\r\n");
  1613.                
  1614.                     $this->email->from('contact@giziindonesia.co.id', 'Gizi Indonesia');
  1615.                     $data = array(
  1616.                          'userName'=> $this->xss_filter($_POST["fullname"]),
  1617.                          'email' => $this->xss_filter($_POST["email"]),
  1618.                          'password' => $this->xss_filter($_POST["password"]),
  1619.                          'parameter' => $this->encrypt->encodeUrl($insert_id,$this->key)
  1620.                     );
  1621.                     $this->email->to($this->xss_filter($_POST["email"]));  // replace it with receiver mail id
  1622.                     //$this->email->cc("support@eternaleaf.com");
  1623.                     $this->email->bcc("basuki@brightstars.co.id");
  1624.                     $this->email->subject("Activation Account"); // replace it with relevant subject
  1625.                
  1626.                     $body = $this->load->view('activate-email.php',$data,TRUE);
  1627.                     $this->email->message($body);  
  1628.                     $this->email->send();
  1629.                 }
  1630.                
  1631.             }
  1632.         }
  1633.         $d = array('error' => $error_message,'insert' => $insert_id);
  1634.         echo json_encode($d);
  1635.     }
  1636.     function savekontak(){
  1637.        
  1638.         $error_message = "";
  1639.         if ($this->xss_filter($_POST["nama"]) == ""){
  1640.             $error_message .= "<li>Harap isi nama</li>";
  1641.         }
  1642.         if ($this->xss_filter($_POST["tgl_lahir"]) == ""){
  1643.             $error_message .= "<li>Harap isi tanggal</li>";
  1644.         }
  1645.         if ($this->xss_filter($_POST["jeniskelamin"]) == ""){
  1646.             $error_message .= "<li>Harap isi jenis kelamin</li>";
  1647.         }
  1648.         if ($this->xss_filter($_POST["pekerjaan"]) == ""){
  1649.             $error_message .= "<li>Harap isi pekerjaan</li>";
  1650.         }
  1651.         if ($this->xss_filter($_POST["kota"]) == ""){
  1652.             $error_message .= "<li>Harap isi kota</li>";
  1653.         }
  1654.         if ($this->xss_filter($_POST["telp"]) == ""){
  1655.             $error_message .= "<li>Harap isi no. telepon</li>";
  1656.         }
  1657.         if ($this->xss_filter($_POST["jenispesan"]) == ""){
  1658.             $error_message .= "<li>Harap isi jenis pesan</li>";
  1659.         }
  1660.         if (!filter_var($this->xss_filter($_POST["email"]), FILTER_VALIDATE_EMAIL)) {
  1661.             $error_message .= "<li>Email tidak valid</li>";
  1662.         }
  1663.         if ($this->xss_filter($_POST["message"]) == ""){
  1664.             $error_message .= "<li>Harap isi message</li>";
  1665.         }
  1666.         if ($this->xss_filter($_POST["captcha"]) == ""){
  1667.             $error_message .= "<li>Harap isi captcha</li>";
  1668.         }
  1669.        
  1670.         $session_data = $this->session->all_userdata();
  1671.         //echo "<pre>";
  1672. //        print_r($session_data);
  1673.         if ($session_data["captcha_text_contact"] != $this->xss_filter($_POST["captcha"])){
  1674.             $error_message .= "<li>Captcha tidak valid</li>";
  1675.         }
  1676.         $insert_id = 0;
  1677.         if ($error_message == ""){
  1678.             $inputcontact = array(    
  1679.                 'crdate'  => date('Y-m-d H:i:s'),
  1680.                 'name' => $this->xss_filter($_POST["nama"]),
  1681.                 'tanggal_lahir' => $this->xss_filter($_POST["tgl_lahir"]),
  1682.                 'jenis_kelamin' => $this->xss_filter($_POST["jeniskelamin"]),
  1683.                 'pekerjaan' => $this->xss_filter($_POST["pekerjaan"]),
  1684.                 'kota' => $this->xss_filter($_POST["kota"]),
  1685.                 'telp' => $this->xss_filter($_POST["telp"]),
  1686.                 'message' => $this->xss_filter($_POST["message"]),
  1687.                 'jenispesan' => $this->xss_filter($_POST["jenispesan"]),
  1688.                 'email' => $this->xss_filter($_POST["email"])
  1689.             );  
  1690.             $saved2= $this->db->insert('contact_data', $inputcontact);
  1691.             $insert_id = $this->db->insert_id();
  1692.             $this->session->unset_userdata('captcha_text_contact');
  1693.             if ($insert_id  > 0){
  1694.                 $config = Array(      
  1695.                     'protocol' => 'sendmail',
  1696.                     'smtp_timeout' => '4',
  1697.                     'mailtype'  => 'html',
  1698.                     'charset'   => 'iso-8859-1'
  1699.                 );
  1700.                 $this->load->library('email', $config);
  1701.                 $this->email->set_newline("\r\n");
  1702.            
  1703.                 $this->email->from('contact@giziindonesia', 'Gizi Indonesia Contact Form');
  1704.                 $data = array(
  1705.                     'name' => $this->xss_filter($_POST["nama"]),
  1706.                     'tanggal_lahir' => $this->xss_filter($_POST["tgl_lahir"]),
  1707.                     'jenis_kelamin' => $this->xss_filter($_POST["jeniskelamin"]),
  1708.                     'pekerjaan' => $this->xss_filter($_POST["pekerjaan"]),
  1709.                     'kota' => $this->xss_filter($_POST["kota"]),
  1710.                     'telp' => $this->xss_filter($_POST["telp"]),
  1711.                     'message' => $this->xss_filter($_POST["message"]),
  1712.                     'jenispesan' => $this->xss_filter($_POST["jenispesan"]),
  1713.                     'email' => $this->xss_filter($_POST["email"])
  1714.                 );
  1715.                 $this->email->to($this->xss_filter($_POST["email"]));  // replace it with receiver mail id
  1716.                 //$this->email->cc("support@eternaleaf.com");
  1717.                 $this->email->bcc("basuki@brightstars.co.id");  
  1718.                 $this->email->subject("Form Contact"); // replace it with relevant subject
  1719.            
  1720.                 $body = $this->load->view('mail-contact.php',$data,TRUE);
  1721.                 $this->email->message($body);  
  1722.                 $this->email->send();
  1723.             }
  1724.            
  1725.         }
  1726.        
  1727.         $d = array('error' => $error_message,'insert' => $insert_id);
  1728.         echo json_encode($d);
  1729.     }
  1730.     function savethedata(){
  1731.        
  1732.         $reference_number = $this->generateRandomString(8);
  1733.         $session_data = $this->session->all_userdata();
  1734.         //echo "<pre>";
  1735.         //print_r($session_data);
  1736.         $inputdatacart = array(    
  1737.             'crdate' => date('Y-m-d H:i:s'),
  1738.             'ongkir'   => $session_data["jne"]["ongkir"],
  1739.             'total_order'   => $session_data["total_harga"]["harga_order"],
  1740.             'totalbepaid'   => $session_data["total_harga"]["harga_dibayar"],
  1741.             'uid_user'   => $session_data["login_user"]["eternaleaf_user_login"],
  1742.             'uid_shipping'   => $session_data["uid_shipping"]
  1743.         );    
  1744.         $saved = $this->db->insert("cart", $inputdatacart);
  1745.         $insert_id = $this->db->insert_id();
  1746.         //echo $insert_id;
  1747.         $reference_number = "$reference_number".str_pad($insert_id, 3, "0", STR_PAD_LEFT);
  1748.         $editdata = array(    
  1749.             'reference_order'   => $reference_number
  1750.         );        
  1751.         $this->db->where('uid', $insert_id);
  1752.         $edit = $this->db->update("cart", $editdata);
  1753.        
  1754.         $this->session->userdata['reference_order'] = $reference_number;
  1755.        
  1756.         $query_detail = 'SELECT a.*,b.price FROM temporary_cart_detail a LEFT JOIN produk b ON a.uid_produk=b.sister WHERE a.uid_temporary_cart = '.$session_data["cart"]["id_cart"]. ' AND b.idlanguage = 1';
  1757.         $detail_cart = $this->db->query($query_detail)->result_array();
  1758.        
  1759.         $query_bank = 'SELECT title,bank_account_number,bank_account_name FROM bank_account WHERE id = '.$this->xss_filter($_POST["bank"]);
  1760.         $detail_bank = $this->db->query($query_bank)->result_array();
  1761.        
  1762.         $this->session->userdata['bank']["name"] = $detail_bank[0]["title"];
  1763.         $this->session->userdata['bank']["number"] = $detail_bank[0]["bank_account_number"];
  1764.         $this->session->userdata['bank']["account_name"] = $detail_bank[0]["bank_account_name"];
  1765.         //echo "<pre>";
  1766. //        print_r($session_data);
  1767. //        die();
  1768.        
  1769.        
  1770.        
  1771.        
  1772.         foreach ($detail_cart as $dt){
  1773.             $inputdatadetail = array(    
  1774.                 'crdate' => date('Y-m-d H:i:s'),
  1775.                 'uid_cart'   => $insert_id,
  1776.                 'uid_produk'   => $dt["uid_produk"],
  1777.                 'price'   => $dt["price"],
  1778.                 'qty'   => $dt["qty"],
  1779.                 'total'   => $dt["price"] * $dt["qty"]
  1780.             );    
  1781.             $saved = $this->db->insert("cart_detail", $inputdatadetail);
  1782.         }
  1783.         $inputdatabank = array(    
  1784.             'crdate' => date('Y-m-d H:i:s'),
  1785.             'uid_cart'   => $insert_id,
  1786.             'uid_bank'   => $this->xss_filter($_POST["bank"])
  1787.         );    
  1788.         $saved = $this->db->insert("cart_bank", $inputdatabank);
  1789.         $inputdataongkir = array(    
  1790.             'crdate' => date('Y-m-d H:i:s'),
  1791.             'uid_cart'   => $insert_id,
  1792.             'uid_destination'   => $session_data["jne"]["tujuan"],
  1793.             'price'  => $session_data["jne"]["ongkir"],
  1794.             'etd'  => $session_data["jne"]["etd"]
  1795.         );    
  1796.         $saved = $this->db->insert("cart_ongkir", $inputdataongkir);
  1797.        
  1798.         $this->orderconfirmation();
  1799.         $config = Array(      
  1800.             'protocol' => 'sendmail',
  1801.             'smtp_timeout' => '4',
  1802.             'mailtype'  => 'html',
  1803.             'charset'   => 'iso-8859-1'
  1804.         );
  1805.         $this->load->library('email', $config);
  1806.         $this->email->set_newline("\r\n");
  1807.    
  1808.         $this->email->from('contact@giziindonesia.co.id', 'Gizi Indonesia');
  1809.         $data = array(
  1810.              'name'=> $session_data["login_user"]["eternaleaf_fullname"],
  1811.              'reference_order' => $reference_number,
  1812.              'bank_account_name' => $this->session->userdata['bank']["account_name"],
  1813.              'bank_name' => $this->session->userdata['bank']["name"],
  1814.              'bank_number' => $this->session->userdata['bank']["number"],
  1815.              'total_price' => $this->rupiah($session_data["total_harga"]["harga_dibayar"])
  1816.         );
  1817.         $this->email->to($this->xss_filter($session_data["login_user"]["eternaleaf_email"]));  // replace it with receiver mail id
  1818.         //$this->email->cc("support@eternaleaf.com");
  1819.         $this->email->bcc("basuki@brightstars.co.id");
  1820.         $this->email->subject("[Gizi Indonesia] ".$this->lang->line('Awaitingbankwirepayment')); // replace it with relevant subject
  1821.    
  1822.         $body = $this->load->view('awaiting-bank.php',$data,TRUE);
  1823.         $this->email->message($body);  
  1824.         $this->email->send();
  1825.        
  1826.        
  1827.         echo 1;
  1828.     }
  1829.     function orderconfirmation(){
  1830.         $session_data = $this->session->all_userdata();
  1831.         $config = Array(      
  1832.             'protocol' => 'sendmail',
  1833.             'smtp_timeout' => '4',
  1834.             'mailtype'  => 'html',
  1835.             'charset'   => 'iso-8859-1'
  1836.         );
  1837.         $this->load->library('email', $config);
  1838.         $this->email->set_newline("\r\n");
  1839.    
  1840.         $this->email->from('contact@giziindonesia.co.id', 'Gizi Indonesia');
  1841.         $session_data_cart = $this->session->userdata('cart');
  1842.        
  1843.         $query = 'SELECT a.uid as id_detail,IFNULL(sum(a.qty),0) as totalnya,b.title,b.pic,b.price,(b.price * sum(a.qty)) as totalharga FROM temporary_cart_detail a LEFT JOIN produk b ON a.uid_produk=b.sister WHERE a.uid_temporary_cart = '.$session_data_cart['id_cart'].' AND b.idlanguage=1 GROUP BY a.uid_produk';
  1844.         $top = $this->db->query($query)->result_array();
  1845.         $no = 0;
  1846.         $harga  = 0;
  1847.         foreach ($top as $dt){
  1848.             $top[$no]["id_detail"] = $dt["id_detail"];
  1849.             $top[$no]["totalnya"] = $dt["totalnya"];
  1850.             $top[$no]["title"] = $dt["title"];
  1851.             $top[$no]["pic"] = $dt["pic"];
  1852.             $top[$no]["price"] = $dt["price"];
  1853.             $top[$no]["totalharga"] = $dt["totalharga"];
  1854.             $harga = (int)$dt["totalharga"] + $harga;
  1855.             $top[$no]["totalhargaall"] = $harga;
  1856.             $no++;
  1857.            
  1858.         }
  1859.         $no = $no - 1;
  1860.         $this->email->to($this->xss_filter($session_data["login_user"]["eternaleaf_email"]));  // replace it with receiver mail id
  1861.         //$this->email->cc("support@eternaleaf.com");
  1862.         $this->email->bcc("basuki@brightstars.co.id");
  1863.         $this->email->subject("[Gizi Indonesia] Order confirmation"); // replace it with relevant subject
  1864.    
  1865.         $this->data["cart"] = $top;
  1866.         $this->data["totalhargaall"] = $top[$no]["totalhargaall"];
  1867.         $this->data["shipping"] = $session_data["jne"]["ongkir"];
  1868.         $this->data["name"] = $session_data["login_user"]["eternaleaf_fullname"];
  1869.         $this->data["reference_number"] = $session_data["reference_order"];
  1870.         $body1 = $this->load->view('order-confirmation.php',$this->data,TRUE);
  1871.         //print_r($body);
  1872.         $this->email->message($body1);  
  1873.         $this->email->send();
  1874.     }
  1875.     function generateRandomString($length = 10) {
  1876.         $characters = 'ABCDEFGHIJKLMNPQRSTUVWXYZ';
  1877.         $charactersLength = strlen($characters);
  1878.         $randomString = '';
  1879.         for ($i = 0; $i < $length; $i++) {
  1880.             $randomString .= $characters[rand(0, $charactersLength - 1)];
  1881.         }
  1882.         return $randomString;
  1883.     }
  1884. }
  1885.  
  1886. class SimpleCaptcha {
  1887.     public $width  = 140;
  1888.     public $height = 25;
  1889.     public $wordsFile = 'words/en.php';
  1890.     public $resourcesPath = 'resources';
  1891.     public $minWordLength = 7;
  1892.     public $maxWordLength = 7;
  1893.     public $session_var = 'captcha';
  1894.     public $backgroundColor = array(255, 255, 255);
  1895.     public $colors = array(
  1896.         array(236,35,36),
  1897.     );
  1898.     public $shadowColor = null; //array(0, 0, 0);
  1899.     public $lineWidth = 0;
  1900.     public $fonts = array(
  1901.         'Antykwa'  => array('spacing' => -1, 'minSize' => 25, 'maxSize' => 25, 'font' => 'TimesNewRomanBold.ttf')
  1902.     );
  1903.     public $Yperiod    = 10;
  1904.     public $Yamplitude = 7;
  1905.     public $Xperiod    = 10;
  1906.     public $Xamplitude = 1;
  1907.     public $maxRotation = 1;
  1908.     public $scale = 3;
  1909.     public $blur = false;
  1910.     public $debug = false;
  1911.     public $imageFormat = 'png';
  1912.     public $im;
  1913.     public function __construct($config = array()) {
  1914.     }
  1915.     public function CreateImage($text) {
  1916.         $ini = microtime(true);
  1917.  
  1918.         /** Initialization */
  1919.         $this->ImageAllocate();
  1920.        
  1921.         /** Text insertion */
  1922.         $text = $text;
  1923.         $fontcfg  = $this->fonts[array_rand($this->fonts)];
  1924.         $this->WriteText($text, $fontcfg);
  1925.        
  1926.         $_SESSION[$this->session_var] = $text;
  1927.        
  1928.         /** Transformations */
  1929.         if (!empty($this->lineWidth)) {
  1930.             $this->WriteLine();
  1931.         }
  1932.         $this->WaveImage();
  1933.         if ($this->blur && function_exists('imagefilter')) {
  1934.             imagefilter($this->im, IMG_FILTER_GAUSSIAN_BLUR);
  1935.         }
  1936.         $this->ReduceImage();
  1937.  
  1938.  
  1939.         if ($this->debug) {
  1940.             imagestring($this->im, 1, 1, $this->height-8,
  1941.                 "$text {$fontcfg['font']} ".round((microtime(true)-$ini)*1000)."ms",
  1942.                 $this->GdFgColor
  1943.             );
  1944.         }
  1945.  
  1946.  
  1947.         /** Output */
  1948.         $this->WriteImage();
  1949.        
  1950.         $this->Cleanup();
  1951.        
  1952.     }
  1953.     /**
  1954.      * Creates the image resources
  1955.      */
  1956.     protected function ImageAllocate() {
  1957.         // Cleanup
  1958.         if (!empty($this->im)) {
  1959.             imagedestroy($this->im);
  1960.         }
  1961.  
  1962.         $this->im = imagecreatetruecolor($this->width*$this->scale, $this->height*$this->scale);
  1963.  
  1964.         // Background color
  1965.         $this->GdBgColor = imagecolorallocate($this->im,
  1966.             $this->backgroundColor[0],
  1967.             $this->backgroundColor[1],
  1968.             $this->backgroundColor[2]
  1969.         );
  1970.         imagefilledrectangle($this->im, 0, 0, $this->width*$this->scale, $this->height*$this->scale, $this->GdBgColor);
  1971.  
  1972.         // Foreground color
  1973.         $color           = $this->colors[mt_rand(0, sizeof($this->colors)-1)];
  1974.         $this->GdFgColor = imagecolorallocate($this->im, $color[0], $color[1], $color[2]);
  1975.  
  1976.         // Shadow color
  1977.         if (!empty($this->shadowColor) && is_array($this->shadowColor) && sizeof($this->shadowColor) >= 3) {
  1978.             $this->GdShadowColor = imagecolorallocate($this->im,
  1979.                 $this->shadowColor[0],
  1980.                 $this->shadowColor[1],
  1981.                 $this->shadowColor[2]
  1982.             );
  1983.         }
  1984.     }
  1985.     /**
  1986.      * Text generation
  1987.      *
  1988.      * @return string Text
  1989.      */
  1990.     protected function GetCaptchaText() {
  1991.         $text = $this->GetDictionaryCaptchaText();
  1992.         if (!$text) {
  1993.             $text = $this->GetRandomCaptchaText();
  1994.         }
  1995.         return $text;
  1996.     }
  1997.     /**
  1998.      * Random text generation
  1999.      *
  2000.      * @return string Text
  2001.      */
  2002.     protected function GetRandomCaptchaText($length = null) {
  2003.         if (empty($length)) {
  2004.             $length = rand($this->minWordLength, $this->maxWordLength);
  2005.         }
  2006.  
  2007.         $words  = "abcdefghijlmnopqrstvwyz";
  2008.         $vocals = "aeiou";
  2009.  
  2010.         $text  = "";
  2011.         $vocal = rand(0, 1);
  2012.         for ($i=0; $i<$length; $i++) {
  2013.             if ($vocal) {
  2014.                 $text .= substr($vocals, mt_rand(0, 4), 1);
  2015.             } else {
  2016.                 $text .= substr($words, mt_rand(0, 22), 1);
  2017.             }
  2018.             $vocal = !$vocal;
  2019.         }
  2020.         return $text;
  2021.     }
  2022.  
  2023.     /**
  2024.      * Random dictionary word generation
  2025.      *
  2026.      * @param boolean $extended Add extended "fake" words
  2027.      * @return string Word
  2028.      */
  2029.     function GetDictionaryCaptchaText($extended = false) {
  2030.         if (empty($this->wordsFile)) {
  2031.             return false;
  2032.         }
  2033.  
  2034.         // Full path of words file
  2035.         if (substr($this->wordsFile, 0, 1) == '/') {
  2036.             $wordsfile = $this->wordsFile;
  2037.         } else {
  2038.             $wordsfile = $this->resourcesPath.'/'.$this->wordsFile;
  2039.         }
  2040.  
  2041.         if (!file_exists($wordsfile)) {
  2042.             return false;
  2043.         }
  2044.  
  2045.         $fp     = fopen($wordsfile, "r");
  2046.         $length = strlen(fgets($fp));
  2047.         if (!$length) {
  2048.             return false;
  2049.         }
  2050.         $line   = rand(1, (filesize($wordsfile)/$length)-2);
  2051.         if (fseek($fp, $length*$line) == -1) {
  2052.             return false;
  2053.         }
  2054.         $text = trim(fgets($fp));
  2055.         fclose($fp);
  2056.  
  2057.  
  2058.         /** Change ramdom volcals */
  2059.         if ($extended) {
  2060.             $text   = preg_split('//', $text, -1, PREG_SPLIT_NO_EMPTY);
  2061.             $vocals = array('a', 'e', 'i', 'o', 'u');
  2062.             foreach ($text as $i => $char) {
  2063.                 if (mt_rand(0, 1) && in_array($char, $vocals)) {
  2064.                     $text[$i] = $vocals[mt_rand(0, 4)];
  2065.                 }
  2066.             }
  2067.             $text = implode('', $text);
  2068.         }
  2069.        
  2070.         return $text;
  2071.     }
  2072.     /**
  2073.      * Horizontal line insertion
  2074.      */
  2075.     protected function WriteLine() {
  2076.  
  2077.         $x1 = $this->width*$this->scale*.15;
  2078.         $x2 = $this->textFinalX;
  2079.         $y1 = rand($this->height*$this->scale*.40, $this->height*$this->scale*.65);
  2080.         $y2 = rand($this->height*$this->scale*.40, $this->height*$this->scale*.65);
  2081.         $width = $this->lineWidth/2*$this->scale;
  2082.  
  2083.         for ($i = $width*-1; $i <= $width; $i++) {
  2084.             imageline($this->im, $x1, $y1+$i, $x2, $y2+$i, $this->GdFgColor);
  2085.         }
  2086.     }
  2087.  
  2088.  
  2089.  
  2090.  
  2091.     /**
  2092.      * Text insertion
  2093.      */
  2094.     protected function WriteText($text, $fontcfg = array()) {
  2095.         if (empty($fontcfg)) {
  2096.             // Select the font configuration
  2097.             $fontcfg  = $this->fonts[array_rand($this->fonts)];
  2098.         }
  2099.  
  2100.         // Full path of font file
  2101.         $fontfile = $this->resourcesPath.'/fonts/'.$fontcfg['font'];
  2102.  
  2103.  
  2104.         /** Increase font-size for shortest words: 9% for each glyp missing */
  2105.         $lettersMissing = $this->maxWordLength-strlen($text);
  2106.         $fontSizefactor = 1+($lettersMissing*0.09);
  2107.  
  2108.         // Text generation (char by char)
  2109.         $x      = 20*$this->scale;
  2110.         $y      = round(($this->height*27/40)*$this->scale);
  2111.         $length = strlen($text);
  2112.         for ($i=0; $i<$length; $i++) {
  2113.             $degree   = rand($this->maxRotation*-1, $this->maxRotation);
  2114.             $fontsize = rand($fontcfg['minSize'], $fontcfg['maxSize'])*$this->scale*$fontSizefactor;
  2115.             $letter   = substr($text, $i, 1);
  2116.  
  2117.             if ($this->shadowColor) {
  2118.                 $coords = imagettftext($this->im, $fontsize, $degree,
  2119.                     $x+$this->scale, $y+$this->scale,
  2120.                     $this->GdShadowColor, $fontfile, $letter);
  2121.             }
  2122.             $coords = imagettftext($this->im, $fontsize, $degree,
  2123.                 $x, $y,
  2124.                 $this->GdFgColor, $fontfile, $letter);
  2125.             $x += ($coords[2]-$x) + ($fontcfg['spacing']*$this->scale);
  2126.         }
  2127.  
  2128.         $this->textFinalX = $x;
  2129.     }
  2130.  
  2131.  
  2132.  
  2133.     /**
  2134.      * Wave filter
  2135.      */
  2136.     protected function WaveImage() {
  2137.         // X-axis wave generation
  2138.         $xp = $this->scale*$this->Xperiod*rand(1,3);
  2139.         $k = rand(0, 100);
  2140.         for ($i = 0; $i < ($this->width*$this->scale); $i++) {
  2141.             imagecopy($this->im, $this->im,
  2142.                 $i-1, sin($k+$i/$xp) * ($this->scale*$this->Xamplitude),
  2143.                 $i, 0, 1, $this->height*$this->scale);
  2144.         }
  2145.  
  2146.         // Y-axis wave generation
  2147.         $k = rand(0, 100);
  2148.         $yp = $this->scale*$this->Yperiod*rand(1,2);
  2149.         for ($i = 0; $i < ($this->height*$this->scale); $i++) {
  2150.             imagecopy($this->im, $this->im,
  2151.                 sin($k+$i/$yp) * ($this->scale*$this->Yamplitude), $i-1,
  2152.                 0, $i, $this->width*$this->scale, 1);
  2153.         }
  2154.     }
  2155.  
  2156.     /**
  2157.      * Reduce the image to the final size
  2158.      */
  2159.     protected function ReduceImage() {
  2160.         // Reduzco el tamaƱo de la imagen
  2161.         $imResampled = imagecreatetruecolor($this->width, $this->height);
  2162.         imagecopyresampled($imResampled, $this->im,
  2163.             0, 0, 0, 0,
  2164.             $this->width, $this->height,
  2165.             $this->width*$this->scale, $this->height*$this->scale
  2166.         );
  2167.         imagedestroy($this->im);
  2168.         $this->im = $imResampled;
  2169.     }
  2170.  
  2171.     /**
  2172.      * File generation
  2173.      */
  2174.     protected function WriteImage() {
  2175.        
  2176.         if ($this->imageFormat == 'png' && function_exists('imagepng')) {
  2177.             header("Content-type: image/png");
  2178.             imagepng($this->im);
  2179.         } else {
  2180.             header("Content-type: image/jpeg");
  2181.             imagejpeg($this->im, null, 80);
  2182.            
  2183.         }
  2184.     }
  2185.     /**
  2186.      * Cleanup
  2187.      */
  2188.     protected function Cleanup() {
  2189.         imagedestroy($this->im);
  2190.     }
  2191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement