<?php
defined('BASEPATH') OR exit('No direct script access allowed'); // esto es de default

class Integrantes extends CI_Controller
{
	public function __construct()
	{
		parent::__construct();
		$this->load->helper(array('form', 'url'));
		if (!isset($_SESSION['user_logged'])) { // validamos que el usuario esté loggeado
			redirect($this->config->item('yii_url')."index.php/panel/acceso/login.html");// si no está logueado lo redireccionamos al login
		}
		$this->load->model('Integrantes_model');// llamamos a los modelos que vamos a utilizar
		$this->load->model('Dependencias_model');// llamamos a los modelos que vamos a utilizar
		$this->load->model('Comites_model');// llamamos a los modelos que vamos a utilizar
		$this->load->model('Integrantes_Comites_model');// llamamos a los modelos que vamos a utilizar
	}
	/// Nota: Las funciones deben estar en singular.

	public function index()
	{
		$data['active'] = "Integrantes"; //pestaña activa
		$data['title'] = "Integrantes"; //Titulos del elemento mostrado
		$data['content'] = "integrantes/list.php"; // vista que se va a cargar en el espacio en blanco.
		$data['listaIntegrantes'] = $this->Integrantes_model->listaIntegrantes(); // modelo de consulta en la BD

		$this->load->view("template", $data); // vista contenedora + array de datos.

	}

	public function create()
	{
		$data['active'] = "Integrantes"; //pestaña activa
		$data['title'] = "Nuevo Integrante"; //Titulos del elemento mostrado
		$data['content'] = "integrantes/create.php"; // vista que se va a cargar en el espacio en blanco.
		$data['tipo_integrante'] = $this->Dependencias_model->lista_Tipo_Integrantes();
		$data['comites'] = $this->Comites_model->lista_comites_landing();

		$data['message'] = $this->session->flashdata('error');
		$data['datos'] = $this->session->flashdata('datos');

		$this->load->view("template", $data); // vista contenedora + array de datos.

	}

	public function edit()
	{
		$data['active'] = "Integrantes"; //pestaña activa
		$data['title'] = "Editar Integrante"; //Titulos del elemento mostrado
		$data['content'] = "integrantes/edit.php"; // vista que se va a cargar en el espacio en blanco.
		$data['integrante'] = $this->Integrantes_model->selectOne($_GET['id_integrante']); // modelo de consulta en la BD
		$data['tipo_integrante'] = $this->Dependencias_model->listaDependencias();
		$data['comites'] = $this->Comites_model->lista_comites();

		$data['message'] = $this->session->flashdata('error');

		$this->load->view("template", $data); // vista contenedora + array de datos.
	}

	public function insert()
	{
		$datos = $this->input->post(); // recibimos los datos via post o get
		//var_dump($datos);

		// configuramos las opciones para subir archivos
		$config['upload_path']          = './uploads/integrantes/';
		$config['allowed_types']        = 'gif|jpg|png';
		//$config['max_size']             = 100;
		//$config['max_width']            = 1024;
		//$config['max_height']           = 768;

		// llamamos a la libreria upload y le pasamos la configuracion
		$this->load->library('upload', $config);

		// preguntamos si NO se subió el archivo
		if ( ! $this->upload->do_upload('imagen'))
		{
			// Mostramos el error
			$error = $this->upload->display_errors();
			$this->session->set_flashdata('error', $error);
			$this->session->set_flashdata('datos', $datos);
			redirect(base_url('index.php/integrantes/create'),'refresh');
		}
		else
		{
			// recuperamos los datos ingresados
			$data = array('upload_data' => $this->upload->data());

			// los insertamos en la base de datos y recuperamos el ultimo id insertado
			$last_id = $this->Integrantes_model->insertIntegrantes($datos['Integrantes_nombre_completo'], $datos['tipo'], $_FILES['imagen']['name'], $datos['descripcion'], $datos['puesto'], $datos['perfil_academico'], $datos['correo'], $datos['website'], $datos['twitter'], $datos['facebook'], $datos['otro'], $datos['youtube']);

			// insertamos el comité
			$this->Integrantes_Comites_model->insertIntegrantes_Comites($last_id, $datos['comite']);


			// redireccionamos a la lista integrantes
			redirect(base_url('index.php/integrantes'),'refresh');
		}
	}

	public function preview()
	{
		$data['active'] = "Integrantes"; //pestaña activa
		$data['title'] = "Vista previa"; //Titulos del elemento mostrado
		$data['content'] = "integrantes/preview.php"; // vista que se va a cargar en el espacio en blanco.
		$data['integrante'] = $this->Integrantes_model->selectOne($_GET['id_integrante']); // modelo de consulta en la BD

		$this->load->view("template", $data); // vista contenedora + array de datos.

	}

	public function delete()
	{
		$this->Integrantes_model->deleteIntegrantes($_POST['id_integrante']);
		redirect(base_url('index.php/integrantes'),'refresh');
	}

	public function ajaxRequest(){
		$this->Integrantes_model->updateStatus($_GET['id_integrante'],$_GET['valor']);

		redirect(base_url('index.php/integrantes'),'refresh');
	}

	public function update(){
		$datos = $this->input->post(); // recibimos los datos via post o get

		// configuramos las opciones para subir archivos
		$config['upload_path']          = './uploads/integrantes/';
		$config['allowed_types']        = 'gif|jpg|png';
		//$config['max_size']             = 100;
		//$config['max_width']            = 1024;
		//$config['max_height']           = 768;

		// llamamos a la libreria upload y le pasamos la configuracion
		$this->load->library('upload', $config);

		$nombre_imagen ='';

		// comprobamos si  exite una nueva imagen
		if ($_FILES['imagen']['name'] == '')
		{   // si eñ resultado es vacio toma la imagen anterior y actualiza los campos
			$nombre_imagen = $datos['imagen_2'];
			// pasamos los datos al modelo para actualizar
			$this->Integrantes_model->updateIntegrantes($datos['id_integrante'],$datos['Integrantes_nombre_completo'], $datos['tipo'], $nombre_imagen, $datos['descripcion'], $datos['puesto'], $datos['perfil_academico'], $datos['correo'], $datos['website'], $datos['twitter'], $datos['facebook'], $datos['otro'], $datos['youtube']);


			// insertamos el comité
			$this->Integrantes_Comites_model->updateIntegrantes_Comites($datos['id_integrante'], $datos['comite']);


			// redireccionamos a la lista integrantes
			redirect(base_url('index.php/integrantes'),'refresh');
		}
		else
		{
			// si el resultado no está vacio es por que existe una nueva imagen
			$nombre_imagen = $_FILES['imagen']['name'];

			// preguntamos si NO se subió el archivo
			if ( ! $this->upload->do_upload('imagen'))
			{
				// Mostramos el error
				$error = $this->upload->display_errors();
				$this->session->set_flashdata('error', $error);
				$this->session->set_flashdata('datos', $datos);
				redirect(base_url('index.php/integrantes/edit?id_integrante='.$datos['id_integrante']),'refresh');
			}
			else
			{
				// recuperamos los datos ingresados
				$data = array('upload_data' => $this->upload->data());

				// los actualizamos en la base de datos
				$this->Integrantes_model->updateIntegrantes($datos['id_integrante'],$datos['Integrantes_nombre_completo'], $datos['tipo'], $nombre_imagen, $datos['descripcion'], $datos['puesto'], $datos['perfil_academico'], $datos['correo'], $datos['website'], $datos['twitter'], $datos['facebook'], $datos['otro'], $datos['youtube']);

				$this->Integrantes_Comites_model->updateIntegrantes_Comites($datos['id_integrante'], $datos['comite']);

				// redireccionamos a la lista integrantes
				redirect(base_url('index.php/integrantes'),'refresh');
			}
		}



	}
}