<?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'); } } } }