SyahrulFajar

/beli

Jan 27th, 2021
969
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. /**
  4.  * @package Pulsa Online w38s.com
  5.  * @version 3.4.5
  6.  * @author Samsul Bahri (0818118061 / achunk17@gmail.com)
  7.  * @link http://w38s.com
  8.  * @link http://isipulsa.co
  9.  * @link http://facebook.com/achunks
  10.  * @link http://your.my.id
  11.  * @link http://sellfy.com/achunk17
  12.  * @license http://w38s.com/lisensi
  13.  * @copyright 2015 - 2017
  14.  */
  15.  
  16. defined('BASEPATH') or exit('No direct script access allowed');
  17.  
  18. class Beli extends CI_Controller
  19. {
  20.     public function index()
  21.     {
  22.         $this->load->model(array(
  23.             'produk_model',
  24.             'trx_model',
  25.             'user_model',
  26.             'voucher_model',
  27.             'blog_model',
  28.             ));
  29.         $params = array();
  30.         $params['total_trx_sukses'] = $this->trx_model->total_trx_sukses();
  31.         $params['total_users'] = $this->user_model->total_users();
  32.         $params['total_providers'] = $this->produk_model->total_providers();
  33.         $params['total_vouchers'] = $this->voucher_model->total_vouchers();
  34.         $params['recent_posts'] = $this->blog_model->get_recent_posts(3);
  35.         $this->db->join('operator', 'operator.op_id=voucher.op_id');
  36.         //$this->db->where('voucher.vo_status', '1');
  37.         $this->db->order_by('voucher.op_id', 'ASC');
  38.         $this->db->order_by('voucher.vo_harga', 'ASC');
  39.         $query = $this->db->get('voucher');
  40.         $params['vouchers'] = $query->result();
  41.         $this->load->helper('form');
  42.         $this->load->view('beli', $params);
  43.     }
  44.  
  45.     public function _output($content)
  46.     {
  47.         $content = $this->compress($content);
  48.         if ($this->user->is_user()) {
  49.             $this->session->set_userdata('order_via_web', '1');
  50.             if ($this->session->has_userdata('password_verified'))
  51.                 $verify = false;
  52.             elseif (!isset($this->user->set['password_verify']))
  53.                 $verify = true;
  54.             elseif ($this->user->set['password_verify'] == 'yes')
  55.                 $verify = true;
  56.             else
  57.                 $verify = false;
  58.  
  59.             if ($verify) {
  60.                 $modal_tpl = '<div class="modal fade" id="verifyModal" tabindex="-1" role="dialog" aria-labelledby="' .
  61.                     'verifyModal-label" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"></div>' .
  62.                     '</div></div>';
  63.                 $verify_content = '<div class="modal-header"><button type="button" class="close" data-dismiss="modal" ' .
  64.                     'aria-label="Close"><span aria-hidden="true">&times;</span></button><h4 class="modal-title"><style>#verifyModal .form-control:focus{box-shadow:0 0 0 1px inset #4CAF50!important}#verifyModal .modal-content form input + span button{pointer-events:none!important;background:#ECEFF1!important;box-shadow:0 0 0 1px inset #bdbdbd;color:#455A64}#verifyModal .modal-content form input:valid + span button{pointer-events:unset!important;background:#4CAF50!important;box-shadow:0 0 0 1px inset #4CAF50!important;color:#fff!important}</style>Verifikasi' .
  65.                     ' Kata Sandi</h4></div><div class="modal-body"><div class="alert alert-warning">Sebelum melakukan ' .
  66.                     'pembelian silakan verifikasi kata sandi terlebih dahulu, tindakan ini hanya sekali dilakukan disetiap' .
  67.                     ' sesi login untuk menjaga keamanan akun kamu.</div><div id="verify_info" style="display:none"></div><form><div class="form-group"><div class="input-group">' .
  68.                     '<input class="form-control" type="password" name="user_password" id="user_password" value="" required=' .
  69.                     '"required" placeholder="Kata Sandi"/><span class="input-group-btn"><button class="btn btn-primary" type=' .
  70.                     '"submit" name="submit" id="submit_password" value="submit">Konfirmasi</button></span></div></div><p class' .
  71.                     '="help-block" style="margin-bottom:0;padding-left:0;margin-left:0">Untuk menonaktifkan verifikasi ini silakan kunjungi halaman ' .
  72.                     '<a href="' . site_url('akun/pengaturan/keamanan') .
  73.                     '">Pengaturan Keamanan</a></p></form></div>';
  74.                 $verify_js = '$("#submit").click(function(){var status = $("#password_verify").text();if (status == 1){' .
  75.                     '$("#verifyModal").modal("show");$("#verifyModal .modal-content").html(\'' . $verify_content .
  76.                     '\');return false;}else{return true;}});';
  77.                 $verify_js .= '$(document).on("click", "#submit_password",function(){var password = $("#user_password").val();' .
  78.                     '$.get("' . site_url('beli/password_verify') . '?password="+password, ' .
  79.                     'function(data){if (data.success == true){$("#verifyModal").hide();$("body").removeClass("modal-open");' .
  80.                     '$(".modal-backdrop").hide();/**$.notify(data.message, "success");**/$("#password_verify").text("0");' .
  81.                     '$("#submit").button("loading");var url=$("#order_form").attr("action");$.post(url,$("#order_form").' .
  82.                     'serialize(),function(data){if(data.success){window.location.href="' . site_url('history/view/') .
  83.                     '"+data' . '.id;}else{for(i=0;i<data.errors.length;i++){$.notify(data.errors[i],"error");}$.get("' .
  84.                     site_url('beli') . '",function(data){var csrf=$(data).find("#order_form [name=\"csrf_token\"]").val();' .
  85.                     '$("#order_form [name=\"csrf_token\"]").val(csrf);});$("#submit").button("reset");}}).fail(function' .
  86.                     '(){$.get("' . site_url('beli') . '",function(data){var csrf=$(data).find(' .
  87.                     '"#order_form [name=\"csrf_token\"]").val();$("#order_form [name=\"csrf_token\"]")' .
  88.                     '.val(csrf);});$.notify("Terjadi kesalahan saat memproses permintaan, silakan coba lagi atau refresh' .
  89.                     ' halaman ini.","error");$("#submit").button("reset");});}else' .
  90.                     '{$.notify(data.message, "error");}});return false;})';
  91.                 $js = '<script>$(document).ready(function(){';
  92.                 $js .= $verify_js;
  93.                 $js .= '});</script>';
  94.                 $content = str_ireplace('</body>', $js .
  95.                     '<span style="display: none !important" id="password_verify">1</span>' . $modal_tpl .
  96.                     '</body>', $content);
  97.             }
  98.         }
  99.         if (strpos($content, '<span id="total_trx_sukses">') !== false) {
  100.             $js = '<script>$(document).ready(function(){$.get("' . site_url('beli/get-stats') .
  101.                 '",function(data){$.each(data,function(key,value){$("#" + key).html(value);});});});</script>';
  102.             $content = str_ireplace('</body>', $js . '</body>', $content);
  103.         }
  104.         echo $content;
  105.     }
  106.  
  107.     protected function compress($buffer)
  108.     {
  109.         @ini_set("pcre.recursion_limit", "16777");
  110.         $re = '%            # Collapse whitespace everywhere but in blacklisted elements.
  111.        (?>             # Match all whitespans other than single space.
  112.          [^\S ]\s*     # Either one [\t\r\n\f\v] and zero or more ws,
  113.        | \s{2,}        # or two or more consecutive-any-whitespace.
  114.        ) # Note: The remaining regex consumes no text at all....
  115.        (?=             # Ensure we are not in a blacklist tag.
  116.          [^<]*+        # Either zero or more non-"<" {normal*}
  117.          (?:           # Begin {(special normal*)*} construct
  118.            <           # or a < starting a non-blacklist tag.
  119.            (?!/?(?:textarea|pre|script)\b)
  120.            [^<]*+      # more non-"<" {normal*}
  121.          )*+           # Finish "unrolling-the-loop"
  122.          (?:           # Begin alternation group.
  123.            <           # Either a blacklist start tag.
  124.            (?>textarea|pre|script)\b
  125.          | \z          # or end of file.
  126.          )             # End alternation group.
  127.        )  # If we made it here, we are not in a blacklist tag.
  128.        %Six';
  129.  
  130.         $new_buffer = preg_replace($re, " ", $buffer);
  131.  
  132.         // We are going to check if processing has working
  133.         if ($new_buffer === null) {
  134.             $new_buffer = $buffer;
  135.         }
  136.         return $new_buffer;
  137.     }
  138.  
  139.     public function password_verify()
  140.     {
  141.         $this->output->set_content_type('application/json');
  142.         $password = $this->input->get('password');
  143.         if (!$this->user->is_user()) {
  144.             $result = array(
  145.                 'success' => false,
  146.                 'message' => 'Silakan login terlebih dahulu',
  147.                 );
  148.         } else {
  149.             $this->load->model('user_model');
  150.             if ($this->user_model->verify_password_hash($password, $this->user->us_password)) {
  151.                 $this->session->set_userdata('password_verified', '1');
  152.                 $result = array(
  153.                     'success' => true,
  154.                     'message' => 'Password terverifikasi, silakan lanjutkan transaksi',
  155.                     );
  156.             } else {
  157.                 $result = array(
  158.                     'success' => false,
  159.                     'message' => 'Password salah',
  160.                     );
  161.             }
  162.             if ($this->user_model->password_rehash) {
  163.                 $this->db->where('us_id', $this->user->us_id);
  164.                 $this->db->set('us_password', $this->user_model->password_rehash);
  165.                 $this->db->update('users');
  166.             }
  167.         }
  168.         $this->output->set_output(json_encode($result));
  169.         $this->output->_display();
  170.         exit();
  171.     }
  172.  
  173.     public function get_stats()
  174.     {
  175.         $this->load->model(array(
  176.             'produk_model',
  177.             'trx_model',
  178.             'user_model',
  179.             'voucher_model',
  180.             ));
  181.         $stats = array(
  182.             'total_trx_sukses' => $this->trx_model->total_trx_sukses(),
  183.             'total_users' => $this->user_model->total_users(),
  184.             'total_providers' => $this->produk_model->total_providers(),
  185.             'total_vouchers' => $this->voucher_model->total_vouchers(),
  186.             );
  187.         $this->output->set_content_type('application/json');
  188.         $this->output->set_output(json_encode($stats));
  189.         $this->output->_display();
  190.         exit();
  191.     }
  192.  
  193.     public function close()
  194.     {
  195.         if ($this->system->set['maintenance'] == 'off')
  196.             redirect('/');
  197.         $params = $this->system->get_set(array(
  198.             'mtc_title',
  199.             'mtc_message',
  200.             ));
  201.         $this->load->view('close', $params);
  202.     }
  203. }
RAW Paste Data