/home/hdwebsolution/www/sareenn/application/controllers/Home.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Home extends CI_Controller
{


	public function __construct()

	{
		parent::__construct();

		date_default_timezone_set('Asia/Kolkata');
	}

	public function index()
	{
		$data['page'] = 'home';
		$data['title'] = 'Medical equipment manufacturer in Delhi, India- Lifeclave';
		$data['description'] = 'Highest grade medical equipment manufacturer in Delhi, India & global exporter of hollowares, dental autoclave, dental UV chambers and other medical equipments.';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('index');
		$this->load->view('_footer');
	}

	public function products($offset = 0)
	{
		$page_number = $this->uri->segment('2');
		$total_products = $this->product_model->total_active_products();

		if ($page_number) {
			$offset = $page_number * 15 - 15;
		}

		$this->load->library("pagination");

		$config['total_rows'] = $total_products;

		$config['base_url'] = base_url() . "products";
		$config['per_page'] = 15;
		$config['use_page_numbers'] = TRUE;

		// $config['uri_segment'] = '2';

		// $config['full_tag_open'] = '<div class="col-lg-12 col-md-12"><div class="pagination-area text-center">';
		// $config['full_tag_close'] = '</div></div>';

		// $config['next_link'] = '<i class="bx bx-chevrons-right"></i>';
		// $config['prev_link'] = '<i class="bx bx-chevrons-left"></i>';

		// $config['next_tag_open'] = '<a href="#" class="next page-numbers">';
		// $config['next_tag_close'] = '</a>';

		// $config['prev_tag_open'] = '<a href="#" class="prev page-numbers">';
		// $config['prev_tag_close'] = '</a>';

		// $config['cur_tag_open'] = '<span class="page-numbers current" aria-current="page">';
		// $config['cur_tag_close'] = '</span>';

		// $config['num_tag_open'] = '<a href="#" class="page-numbers">';
		// $config['num_tag_close'] = '</a>';


		$config['full_tag_open'] = '<div class="pagination-area text-center"><ul class="pagination">';
		$config['full_tag_close'] = '</ul></div>';
		$config['num_tag_open'] = '<li class="page-item"><span class="page-link">';
		$config['num_tag_close'] = '</span></li>';
		$config['cur_tag_open'] = '<li class="page-item active"><a class="page-link" href="#">';
		$config['cur_tag_close'] = '</a></li>';
		$config['prev_tag_open'] = '<li class="page-item"><span class="page-link">';
		$config['prev_tag_close'] = '</span></li>';
		$config['next_tag_open'] = '<li class="page-item"><span class="page-link">';
		$config['next_tag_close'] = '</span></li>';
		$config['prev_link'] = '<i class="bx bx-chevrons-left"></i>';
		$config['next_link'] = '<i class="bx bx-chevrons-right"></i>';
		$config['last_tag_open'] = '<li class="page-item"><span class="page-link">';
		$config['last_tag_close'] = '</span></li>';
		$config['first_tag_open'] = '<li class="page-item"><span class="page-link">';
		$config['first_tag_close'] = '</span></li>';

		$this->pagination->initialize($config);

		$query = $this->product_model->get_home_products(15, $offset);

		$data['products'] = null;
		$data['product_count'] = $total_products;
		if ($offset == 0) {
			$data['product_start'] = 1;
			$data['product_end'] =  15;
		} else {
			$data['product_start'] = $offset + 1;
			$product_end = $offset + 15;
			if ($product_end > $total_products) {
				$data['product_end'] =  $total_products;
			} else {
				$data['product_end'] =  $product_end;
			}
		}

		$data['links'] = $this->pagination->create_links();

		if ($query) {
			$data['products'] =  $query;
		}

		$data['title'] = 'Products';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('products');
		$this->load->view('_footer');
	}

	public function view_category($category_id, $slug)
	{
		$data['page'] = 'category';
		$data['category'] = $this->general_model->get_by_where('categories', 'id', $category_id);
		$data['products'] = $this->product_model->get_all_category_products_novariants($category_id);
		// $data['title'] = 'View Products - ' . $data['category']->category_name;

		foreach ($data['products'] as $key => $p) {
			if ($p['product_has_variants'] == '1') {
				if ($p['id'] == $p['product_parent_id'] && $p['product_id'] == $p['id']) {
					//keep
				} else {
					// remove
					unset($data['products'][$key]);
				}
			}
		}

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('products_by_category');
		$this->load->view('_footer');
	}

	public function view_product($id, $slug)
	{
		$data['page'] = 'product';
		$data['product'] = $this->product_model->get_all_product_details($id);
		// $data['title'] = 'View Product - ' . $data['product']->product_name;

		$data['related_products'] = $this->product_model->get_related_products($data['product']->category_id, $id);

		if ($data['product']->product_has_gallery == 1) {
			$data['product_gallery'] = $this->general_model->get_all_where('product_images', 'product_id', $id);
		}

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('product_single');
		$this->load->view('_footer');
	}


	public function ajax_load_quick_view()
	{

		if (!$this->input->post()) {

			show_404();
		}

		$product_id = $this->input->post('product_id');

		$result = $this->product_model->get_all_product_details($product_id);
		if ($result) {
			$response = '<button type="button" class="close" data-dismiss="modal" aria-label="Close">
			<span aria-hidden="true"><i class="bx bx-x"></i></span>
		</button>

		<div class="row align-items-center">
			<div class="col-lg-6 col-md-6">
				<div class="products-image">
					<img src="' . base_url() . 'assets/images/products/' . $result->product_image . '" alt="image">
				</div>
			</div>

			<div class="col-lg-6 col-md-6">
				<div class="products-content">
					<h3><a href="' . base_url() . 'product/' . $result->id . '/' . $result->product_slug . '">' . $result->product_name . '</a></h3>
					
					<ul class="products-info">
						
						<li><span>Availability:</span> <a href="#">In stock </a></li>
						<li><span>Products Type:</span> <a href="' . base_url() . 'category/' . $result->category_id . '/' . $result->category_slug . '">' . $result->category_name . '</a></li>
					</ul>';
			if ($result->product_has_variants == 1) :
				$product_parent = get_product_variant_parent($result->id);
				$variants = get_product_variants($result->id, $product_parent->product_parent_id);

				$response .= '<div class="products-size-wrapper"><span>Variants:</span><ul>';
				if ($variants) :
					foreach ($variants as $variant) :
						$response .= '<li class=';
						if ($variant['product_id'] == $result->id) :
							$response .= '"active"' . '><a href="' . base_url() . 'product/' . $variant["product_id"] . '/' . $variant["product_slug"] . '">' . $variant["product_variant_name"] . '</a></li>';
						else :
							$response .= '" "' . '><a href="' . base_url() . 'product/' . $variant["product_id"] . '/' . $variant["product_slug"] . '">' . $variant["product_variant_name"] . '</a></li>';
						endif;
					endforeach;
				endif;
				$response .= '</ul></div>';
			endif;
			$response .= '<div class="products-add-to-cart"><button type="submit" class="default-btn"> Buy Now</button></div><a href="' . base_url() . 'product/' . $result->id . '/' . $result->product_slug . '" class="view-full-info">or View Full Info</a></div></div></div>';
			echo $response;
		} else {

			echo json_encode(array('response' => 0), JSON_UNESCAPED_UNICODE);
		}
	}

	// Static Functions

	public function about()
	{
		$data['page'] = 'about';
		$data['title'] = 'Reliable supplier & exporter of medical equipments- Lifeclave';
		$data['description'] = 'Lifeclave is providing the highest grade medical equipment around the globe in various categories. We are the global manufacturer and exporter.';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('about');
		$this->load->view('_footer');
	}
	public function categories()
	{
		$data['page'] = 'categories';
		$data['title'] = 'Medical Equipment categories manufactured by Lifeclave';
		$data['description'] = 'Categories of all the high grade medical equipments manufactured and exported by the lifeclave in delhi,India.';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('categories');
		$this->load->view('_footer');
	}
	public function certificate()
	{
		$data['page'] = 'certificate';
		$data['title'] = 'Certified medical equipments manufacturer & supplier- Lifeclave';
		$data['description'] = 'Being the reliable & highest grade supplier, we are also globally certified for the supplying & manufacturing the medical equipments such as hollowares, dental autoclave etc.';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('certificate');
		$this->load->view('_footer');
	}
	public function faq()
	{
		$data['page'] = 'faq';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('faq');
		$this->load->view('_footer');
	}
	public function termsandconditions()
	{
		$data['page'] = 'termsandconditions';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('termsandconditions');
		$this->load->view('_footer');
	}

	public function privacypolicy()
	{
		$data['page'] = 'privacypolicy';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('privacypolicy');
		$this->load->view('_footer');
	}

	public function returnpolicy()
	{
		$data['page'] = 'returnpolicy';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('returnpolicy');
		$this->load->view('_footer');
	}

	public function contact()
	{
		$this->load->helper('captcha');
		// Captcha configuration
		$config = array(
			'img_path'      => './assets/images/captcha_images/',
			'img_url'       => base_url() . 'assets/images/captcha_images/',
			'font_path'     => 'system/fonts/texb.ttf',
			'img_width'     => '160',
			'img_height'    => 50,
			'word_length'   => 8,
			'font_size'     => 18
		);
		$captcha = create_captcha($config);

		// Unset previous captcha and set new captcha word
		$this->session->unset_userdata('captchaCode');
		$this->session->set_userdata('captchaCode', $captcha['word']);

		// Pass captcha image to view
		$data['captchaImg'] = $captcha['image'];

		$data['page'] = 'contact';
		$data['title'] = 'Contact for highest grade medical equipments supply-Lifeclave';
		$data['description'] = 'Get in touch with the customer care or our technical experts to help you through placing an order and getting shipped around the globe.';

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('contact');
		$this->load->view('_footer');
	}

	public function refresh_captcha()
	{

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

		// Captcha configuration
		$config = array(
			'img_path'      => './assets/images/captcha_images/',
			'img_url'       => base_url() . 'assets/images/captcha_images/',
			'font_path'     => 'system/fonts/texb.ttf',
			'img_width'     => '160',
			'img_height'    => 50,
			'word_length'   => 8,
			'font_size'     => 18
		);
		$captcha = create_captcha($config);

		// Unset previous captcha and set new captcha word
		$this->session->unset_userdata('captchaCode');
		$this->session->set_userdata('captchaCode', $captcha['word']);

		// Display captcha image
		echo $captcha['image'];
	}

	public function contact_request()
	{

		if (!$this->input->post()) {

			show_404();
		}

		$this->form_validation->set_rules('contact_name', 'Full Name', 'trim|required|xss_clean');
		$this->form_validation->set_rules('contact_email', 'Email Address', 'trim|required|xss_clean|valid_email');
		// $this->form_validation->set_rules('contact_subject', 'Message Subject', 'trim|required|xss_clean');
		$this->form_validation->set_rules('contact_mobile', 'Mobile Number', 'trim|required|xss_clean');
		$this->form_validation->set_rules('contact_message', 'Message', 'trim|required|xss_clean');
		$this->form_validation->set_rules('captcha', 'Captcha', 'trim|required|xss_clean');


		if ($this->form_validation->run() == FALSE) {

			$validation_data = array(

				'validation_errors' => validation_errors(),

			);

			$this->session->set_userdata($validation_data);
			$this->session->mark_as_flash('validation_errors');
			redirect($this->session->redirect_link);
		} else {

			// If captcha form is submitted

			$inputCaptcha = $this->input->post('captcha');
			$sessCaptcha = $this->session->userdata('captchaCode');
			if ($inputCaptcha === $sessCaptcha) {

				// Save Form

				$message_data = array(
					'query_name' => $this->input->post('contact_name'),
					'query_email' => $this->input->post('contact_email'),
					'query_mobile' => $this->input->post('contact_mobile'),
					// 'query_subject' => $this->input->post('contact_subject'),
					'query_message' => $this->input->post('contact_message'),
					'query_is_read' => '0',
					'query_received_on' => date('Y-m-d H:i:s'),
					'query_read_on' => date('Y-m-d H:i:s'),

				);

				if ($this->general_model->insert_request('contact_queries', $message_data)) {
					$flash_data = array(
						'message' => 'Message Sent Successfully.',

					);

					$this->session->set_userdata($flash_data);

					$this->session->mark_as_flash('message');

					redirect($this->session->redirect_link);
				} else {
					$flash_data = array(
						'error' => 'Unable to send message. Try after some time.',

					);

					$this->session->set_userdata($flash_data);

					$this->session->mark_as_flash('error');

					redirect($this->session->redirect_link);
				}
			} else {
				$flash_data = array(
					'error' => 'Captcha code does not match, please try again.',

				);

				$this->session->set_userdata($flash_data);

				$this->session->mark_as_flash('error');

				redirect($this->session->redirect_link);
			}
		}
	}

	public function callback_request()
	{

		if (!$this->input->post()) {

			show_404();
		}

		$this->form_validation->set_rules('callback_value', 'Email/Mobile', 'trim|required|xss_clean');

		if ($this->form_validation->run() == FALSE) {

			$validation_data = array(

				'validation_errors' => validation_errors(),

			);

			$this->session->set_userdata($validation_data);
			$this->session->mark_as_flash('validation_errors');
			redirect($this->session->redirect_link);
		} else {

			// Save Form

			$message_data = array(
				'callback_value' => $this->input->post('callback_value'),
				'callback_is_read' => '0',
				'callback_is_done' => '0',
				'callback_received_on' => date('Y-m-d H:i:s'),
				'callback_read_on' => date('Y-m-d H:i:s'),
				'callback_done_on' => date('Y-m-d H:i:s'),

			);

			if ($this->general_model->insert_request('contact_callbacks', $message_data)) {
				$flash_data = array(
					'message' => 'Thank You We Will Contact You Shortly.',

				);

				$this->session->set_userdata($flash_data);

				$this->session->mark_as_flash('message');

				redirect($this->session->redirect_link);
			} else {
				$flash_data = array(
					'error' => 'Unable to send message. Try after some time.',

				);

				$this->session->set_userdata($flash_data);

				$this->session->mark_as_flash('error');

				redirect($this->session->redirect_link);
			}
		}
	}

	public function main_search()
	{
		if (!$this->input->post()) {
			redirect(base_url());
		}

		$keyword = $this->input->post('search_keyword');
		$result = $this->product_model->main_search($keyword);

		$data['page'] = 'search';
		$data['title'] = 'Search';
		$data['search_results'] = $result;

		$this->load->view('_header', $data);
		$this->load->view('_top_header');
		$this->load->view('_navbar');
		$this->load->view('search');
		$this->load->view('_footer');
	}
}