<?php
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP
 *
 * This content is released under the MIT License (MIT)
 *
 * Copyright (c) 2019 - 2022, CodeIgniter Foundation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * @package	CodeIgniter
 * @author	EllisLab Dev Team
 * @copyright	Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
 * @copyright	Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
 * @copyright	Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
 * @license	https://opensource.org/licenses/MIT	MIT License
 * @link	https://codeigniter.com
 * @since	Version 1.0.0
 * @filesource
 */
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * Application Controller Class
 *
 * This class object is the super class that every library in
 * CodeIgniter will be assigned to.
 *
 * @package		CodeIgniter
 * @subpackage	Libraries
 * @category	Libraries
 * @author		EllisLab Dev Team
 * @link		https://codeigniter.com/userguide3/general/controllers.html
 */
#[\AllowDynamicProperties]
class CI_Controller {

	/**
	 * Reference to the CI singleton
	 *
	 * @var	object
	 */
	private static $instance;

	/**
	 * CI_Loader
	 *
	 * @var	CI_Loader
	 */
	public $load;

	/**
	 * Class constructor
	 *
	 * @return	void
	 */
	public function __construct()
	{
		self::$instance =& $this;

		// Assign all the class objects that were instantiated by the
		// bootstrap file (CodeIgniter.php) to local class variables
		// so that CI can run as one big super object.
		foreach (is_loaded() as $var => $class)
		{
			$this->$var =& load_class($class);
		}

		$this->load =& load_class('Loader', 'core');
		$this->load->initialize();
		log_message('info', 'Controller Class Initialized');
	}

	// --------------------------------------------------------------------

	/**
	 * Get the CI singleton
	 *
	 * @static
	 * @return	object
	 */
	public static function &get_instance()
	{
		return self::$instance;
	}
	public function multipleDelete()
    {
     if($this->input->post('checkbox_value'))
     {
        $id = $this->input->post('checkbox_value');
        $table = $this->input->post('table');
        for($count = 0; $count < count($id); $count++)
        {
           $this->model->deleteData($table,['id' => $id[$count]]);
        }
        
     }
    }
	public function changeStatus()
    {
     if($this->input->post('id'))
     {
        $id = $this->input->post('id');
        $type = $this->input->post('type');
        $table = $this->input->post('table');
        $column = $this->input->post('column');
        if($this->model->edit($table,[$column => $type],['id' => $id]))
		{
			$lead_id = $id;
			if($type == '1'){$action = 'disable';}
			else if($type == '0'){$action = 'enable';}
			$this->createLog($this->session->userdata('id'),$this->session->userdata('usertype'),$lead_id,$action,$_POST['module']);

			echo json_encode(['return'=>true,'msg'=>'Status Updated Successfully']);
		}
		else
		{
			echo json_encode(['return'=>false,'msg'=>'Status Not Updated']);
		}
        
     }
	 else
	 {
		 echo json_encode(['return'=>false,'msg'=>'`id` is required']);
	 }
    }
	public function createLog($user_id,$usertype,$lead_id,$action,$module)
    {
     if(isset($user_id) && isset($usertype) && isset($lead_id) && isset($action) && isset($module))
     {
		$array = array(
			'user_id' => $user_id,
			'usertype' => $usertype,
			'lead_id' => $lead_id,
			'action' => $action,
			'module' => $module,
		);
		$this->model->add('logs',$array);
        
     }
    }
	public function send_mail($to,$subject,$body)
	{
		$this->load->library('phpmailer_library');
        $mail = $this->phpmailer_library->load();
        $mail->isSMTP();
        $mail->Host     = 'mail.catchtok.com';
        $mail->SMTPOptions = array(
		   'ssl' => array(
		     'verify_peer' => false,
		     'verify_peer_name' => false,
		     'allow_self_signed' => true
		    )
		);
        $mail->SMTPAuth = true;
        $mail->Username = 'no-reply@catchtok.com';
        $mail->Password = '(NBqX[scU(Sx';
        $mail->SMTPSecure = 'ssl';
        $mail->Port     = 465;
        $mail->setFrom('no-reply@catchtok.com', 'Networking');
        $mail->addReplyTo('no-reply@catchtok.com', 'Networking');
		// foreach($to as $to_add){
		// 	$mail->AddAddress($to_add);                  // name is optional
		// }
        $mail->addAddress($to);
        $mail->Subject = $subject;

        // Set email format to HTML
        $mail->isHTML(true);
        $mail->Body = html_entity_decode($body);
        if(!$mail->send()){
			return false;
            // echo 'Message could not be sent.';
            // echo 'Mailer Error: ' . $mail->ErrorInfo;
        }else{
             //echo 'Message has been sent';
			 return true;
        }
	}
}
