<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Curso extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('Auditoria_Model');
    }

    
    public function cursos_edit() {
    if (isset($_SESSION['admin']) == TRUE) {

            $config = array("base_url" => base_url('cursos'), "per_page" => 50, "num_links" => 2, "uri_segment" => 2, "total_rows" => $this->Auditoria_Model->CountAllCursos(), "full_tag_open" => "<ul class= 'pagination pag-curso'>", "full_tag_close" => "</ul>", "first_link" => FALSE, "last_link" => '...Último', "first_tag_open" => "<li>", "first_tag_close" => "</li>", "prev_link" => "<i class='fa fa-arrow-circle-left'></i>", "prev_tag_open" => "<li class='next'>", "prev_tag_close" => "</li>", "next_link" => "<i class='fa fa-arrow-circle-right'></i>", "next_tag_open" => "<li class='next'>", "next_tag_close" => "</li>", "last_tag_open" => "<li class='ultimo-link'>", "last_tag_close" => "</li>", "cur_tag_open" => "<li class= 'active'><a href=''>", "cur_tag_close" => "</a></li>", "num_tag_open" => "<li>", "num_tag_close" => "</li>");

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

            $offset = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
            $curso=$this->uri->segment(2);
            
            $sql="SELECT * FROM `link` WHERE `id_curso` =".$curso;
            $resultado= $this->db->query($sql)->result();
            
            $sql2="SELECT * FROM `curso` WHERE `id_curso` =".$curso;
            $resultadocurso= $this->db->query($sql2)->row();
//            print_r($resultadocurso);
//            exit(0);
            
            $dados = array('pagination' => $this->pagination->create_links(), 'admin' => $this->Auditoria_Model->getLoginAdminporID(), 'curso' => $this->Auditoria_Model->obtemcursosrepetidos($config['per_page'], $offset), 'cursos' =>$curso,'rcursos' =>$resultadocurso,'links'=>$resultado);

            $this->load->view('cursos_edit', $dados);
        } else {
            redirect();
        }
    }
    
    public function relatorio() {
         if (isset($_SESSION['admin']) == TRUE) {
   $config = array("base_url" => base_url('cursos'), "per_page" => 50, "num_links" => 2, "uri_segment" => 2, "total_rows" => $this->Auditoria_Model->CountAllCursos(), "full_tag_open" => "<ul class= 'pagination pag-curso'>", "full_tag_close" => "</ul>", "first_link" => FALSE, "last_link" => '...Último', "first_tag_open" => "<li>", "first_tag_close" => "</li>", "prev_link" => "<i class='fa fa-arrow-circle-left'></i>", "prev_tag_open" => "<li class='next'>", "prev_tag_close" => "</li>", "next_link" => "<i class='fa fa-arrow-circle-right'></i>", "next_tag_open" => "<li class='next'>", "next_tag_close" => "</li>", "last_tag_open" => "<li class='ultimo-link'>", "last_tag_close" => "</li>", "cur_tag_open" => "<li class= 'active'><a href=''>", "cur_tag_close" => "</a></li>", "num_tag_open" => "<li>", "num_tag_close" => "</li>");

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

            $offset = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
            $dados = array('pagination' => $this->pagination->create_links(), 'admin' => $this->Auditoria_Model->getLoginAdminporID(), 'curso' => $this->Auditoria_Model->obtemcursosrepetidos($config['per_page'], $offset), 'cursos' => NULL);
 
    $this->load->view('relatorio', $dados);
    } else {
            redirect();
        }
    }
    
    
    public function add_link() {
    if (isset($_SESSION['admin']) == TRUE) {    
        $titulo=$_POST['titulo'];
        $url=$_POST['url'];
        $id=$_POST['id_curso'];  
         
        $sql="INSERT INTO `link` (`id_link`, `id_curso`, `conteudo`, `url`) VALUES (NULL, '".$id."', '".$titulo."', '".$url."');";
        $this->db->query($sql);
        
        redirect("cursos_edit/".$id);
        
  
        } else {
            redirect();
        }
    }
    
    public function excluir_link() {
    if (isset($_SESSION['admin']) == TRUE) {
    $curso=$this->uri->segment(2);
    $red=$this->uri->segment(3);
    
    $sql2="DELETE FROM `link` WHERE `link`.`id_link` ='".$curso."'";
    $this->db->query($sql2);
    redirect("cursos_edit/".$red);
    
        } else {
            redirect();
        }
    }
    
    public function cursos() {

        if (isset($_SESSION['admin']) == TRUE) {

            $config = array("base_url" => base_url('cursos'), "per_page" => 50, "num_links" => 2, "uri_segment" => 2, "total_rows" => $this->Auditoria_Model->CountAllCursos(), "full_tag_open" => "<ul class= 'pagination pag-curso'>", "full_tag_close" => "</ul>", "first_link" => FALSE, "last_link" => '...Último', "first_tag_open" => "<li>", "first_tag_close" => "</li>", "prev_link" => "<i class='fa fa-arrow-circle-left'></i>", "prev_tag_open" => "<li class='next'>", "prev_tag_close" => "</li>", "next_link" => "<i class='fa fa-arrow-circle-right'></i>", "next_tag_open" => "<li class='next'>", "next_tag_close" => "</li>", "last_tag_open" => "<li class='ultimo-link'>", "last_tag_close" => "</li>", "cur_tag_open" => "<li class= 'active'><a href=''>", "cur_tag_close" => "</a></li>", "num_tag_open" => "<li>", "num_tag_close" => "</li>");

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

            $offset = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
            $dados = array('pagination' => $this->pagination->create_links(), 'admin' => $this->Auditoria_Model->getLoginAdminporID(), 'curso' => $this->Auditoria_Model->obtemcursosrepetidos($config['per_page'], $offset), 'cursos' => NULL);

            $this->load->view('cursos', $dados);
        } else {
            redirect();
        }
    }
    private function atualiza() { 
        die();
//        $curso = $this->Auditoria_Model->obtemcursosrepetidos();
//       
//        foreach ($curso as $cursos) {
//            $info = array('carga_horaria' => 2);
//            $this->db->where('id_curso', $cursos->id_curso);
//            $this->db->update('curso', $info);
//        }
//        echo count($curso).' CURSOS FORAM ATUALIZADOS PARA O STATUS DE NÃO VERIFICADO';
    }
    public function pesquisa() {
        if (isset($_SESSION['admin']) == TRUE) {
        $this->load->library('Sanitize');
        
        
        $nomepost = $this->input->post('nome');
      
        
        
        if(strlen($nomepost)==0){
            $nome=$this->uri->segment(2);  
           
            
        }
        
        else{
            $nome = $this->input->post('nome', TRUE);
        }
         $dados = array('admin' => $this->Auditoria_Model->getLoginAdminporID(), 'cursos' => $this->Auditoria_Model->obtemCursosPorNome($nome), 'curso' => NULL);

            $this->load->view('cursos_pesquisa', $dados);
        }  
    }
    
    public function editacurso_old() {

        $this->load->library('Sanitize');
        
        $_POST = $this->sanitize->filter($this->input->post());
        
        $id_curso = $this->input->post('id_curso', TRUE);
        
        $materiais = $this->Auditoria_Model->obtematerialdestudo($id_curso);
        
        foreach ($materiais as $material) {
            
            $url = $this->input->post("material".$id_curso.$material->id_link);
            
            $sql = "UPDATE link SET url = '".$url."' WHERE id_link = ".$material->id_link;
            
            $this->Auditoria_Model->atualizamaterial($sql);
        }
     
        $data = array(
            'nome' => $this->input->post('nome', TRUE),
            'descricao' => stripslashes($this->input->post('descricao')),
            'ementa' => $this->input->post('ementa'),
            'liberado' => $this->input->post('bloqueado', TRUE),
            'carga_horaria' => 1 // EDITADO
        );
        
        $this->form_validation->set_rules('nome', 'Nome', 'trim|required', array('required' => '<i class="fa fa-info-circle"></i> O campo nome do curso está em branco'));
        $this->form_validation->set_rules('descricao', 'Descricao', 'trim|required', array('required' => '<i class="fa fa-info-circle"></i> O campo de descrição está em branco'));
        $this->form_validation->set_rules('ementa', 'Ementa', 'trim|required', array('required' => '<i class="fa fa-info-circle"></i> O campo de ementa está em branco'));
        $this->form_validation->set_rules('bloqueado', 'Bloqueado', 'trim|required', array('required' => '<i class="fa fa-info-circle"></i> O campo de liberação está em branco'));
        if ($this->form_validation->run() == FALSE) {
            $form = validation_errors();
            $data = array('situacao' => 'form-erro', 'erro_form' => $form);
            echo json_encode($data);
        } else {
            
            if (!empty($_FILES["imagem_cursos"]["name"])) {
               
                $path = "../../assets/img/"; // DESENVOLVIMENTO
                
//                 $path = $_SERVER["DOCUMENT_ROOT"]."/assets/img/"; // PRODUÇÃO
                
                // determinamos o path para gravar o arquivo
                $configUpload['upload_path'] = $path;
                // definimos - através da extensão - 
                // os tipos de arquivos suportados
                $configUpload['allowed_types'] = 'jpg|png|jpeg';
                // definimos que o nome do arquivo
                // será alterado para um nome criptografado
                $configUpload['encrypt_name'] = TRUE;
                $configUpload['max_size'] = '20480';

                // passamos as configurações para a library upload
                $this->upload->initialize($configUpload);

                // verificamos se o upload foi processado com sucesso
                if (!$this->upload->do_upload('imagem_cursos')) {
                    // em caso de erro retornamos os mesmos para uma variável
                    // e enviamos para a home
                    $datas = array('situacao' => 'upload-erro', 'mensagem' =>'<i class="fa fa-info-circle"></i> ' . $this->upload->display_errors());
                    echo json_encode($datas);
                    exit();
                } else {
                   
                    $upload = $this->upload->data();
                    
                    $nomeImagem = $upload['file_name'];
                    $info = array('img' => $nomeImagem);

                    $this->Auditoria_Model->atualizaimagemcurso($info, $id_curso);
                }
            }
            $this->Auditoria_Model->atualizaCursoedicao($data, $id_curso);
            $data = array('situacao' => true);
            echo json_encode($data);
        }
    }
    
    public function editacurso() {

        $this->load->library('Sanitize');
        
        $_POST = $this->sanitize->filter($this->input->post());
        
        $id_curso = $this->input->post('id_curso', TRUE);
        
        $materiais = $this->Auditoria_Model->obtematerialdestudo($id_curso);
        if (!empty($materiais)) {
        foreach ($materiais as $material) {
            
            $url = $this->input->post("material".$id_curso.$material->id_link);
            
            $sql = "UPDATE link SET url = '".$url."' WHERE id_link = ".$material->id_link;
            
            $this->Auditoria_Model->atualizamaterial($sql);
        }
       } else {
       $link_estudo = $this->input->post('text-editor', TRUE); 
       
       $link_estudos = array('url' => array());
       
        foreach ($link_estudo as $opcoes) {
                    array_push($link_estudos['url'], $opcoes);
                }
                    
        
        $this->Auditoria_Model->inserematerial($link_estudos, $id_curso);
         
       }
        $data = array(
            'nome' => $this->input->post('nome', TRUE),
            'descricao' => stripslashes($this->input->post('descricao')),
            'ementa' => $this->input->post('ementa'),
            'liberado' => $this->input->post('bloqueado', TRUE),
            'carga_horaria' => 1 // EDITADO
        );
        
        $this->form_validation->set_rules('nome', 'Nome', 'trim|required', array('required' => '<i class="fa fa-info-circle"></i> O campo nome do curso está em branco'));
        $this->form_validation->set_rules('descricao', 'Descricao', 'trim|required', array('required' => '<i class="fa fa-info-circle"></i> O campo de descrição está em branco'));
        $this->form_validation->set_rules('ementa', 'Ementa', 'trim|required', array('required' => '<i class="fa fa-info-circle"></i> O campo de ementa está em branco'));
        $this->form_validation->set_rules('bloqueado', 'Bloqueado', 'trim|required', array('required' => '<i class="fa fa-info-circle"></i> O campo de liberação está em branco'));
        if ($this->form_validation->run() == FALSE) {
            $form = validation_errors();
            $data = array('situacao' => 'form-erro', 'erro_form' => $form);
            echo json_encode($data);
        } else {
            
            if (!empty($_FILES["imagem_cursos"]["name"])) {
               
//                $path = "../../amazonia/assets/img/"; // DESENVOLVIMENTO
                
                 $path = $_SERVER["DOCUMENT_ROOT"]."/assets/img/"; // PRODUÇÃO
                
                // determinamos o path para gravar o arquivo
                $configUpload['upload_path'] = $path;
                // definimos - através da extensão - 
                // os tipos de arquivos suportados
                $configUpload['allowed_types'] = 'jpg|png|jpeg';
                // definimos que o nome do arquivo
                // será alterado para um nome criptografado
                $configUpload['encrypt_name'] = TRUE;
                $configUpload['max_size'] = '20480';

                // passamos as configurações para a library upload
                $this->upload->initialize($configUpload);

                // verificamos se o upload foi processado com sucesso
                if (!$this->upload->do_upload('imagem_cursos')) {
                    // em caso de erro retornamos os mesmos para uma variável
                    // e enviamos para a home
                    $datas = array('situacao' => 'upload-erro', 'mensagem' =>'<i class="fa fa-info-circle"></i> ' . $this->upload->display_errors());
                    echo json_encode($datas);
                    exit();
                } else {
                   
                    $upload = $this->upload->data();
                    
                    $nomeImagem = $upload['file_name'];
                    $info = array('img' => $nomeImagem);

                    $this->Auditoria_Model->atualizaimagemcurso($info, $id_curso);
                }
            }
            $this->Auditoria_Model->atualizaCursoedicao($data, $id_curso);
            $data = array('situacao' => true);
            echo json_encode($data);
        }
    }
    
    public function imagematualizada() {

        $curso = $this->input->post('id_curso');

        $imagem = $this->Auditoria_Model->getimagematual($curso);
        $data = array('situacao' => true, 'imagem' => $imagem['img']);
        echo json_encode($data);
    }

    public function imagemcurso($id_curso, $imagem_cursos) {


//        $path = "../../amazonia/assets/img/"; // DESENVOLVIMENTO
        
        $path = $_SERVER["DOCUMENT_ROOT"]."/assets/img/"; // PRODUÇÃO
  
        // determinamos o path para gravar o arquivo
        $configUpload['upload_path'] = $path;
        // definimos - através da extensão - 
        // os tipos de arquivos suportados
        $configUpload['allowed_types'] = 'jpg|png|jpeg';
        // definimos que o nome do arquivo
        // será alterado para um nome criptografado
        $configUpload['encrypt_name'] = FALSE;
        $configUpload['max_size'] = '20480';

        // passamos as configurações para a library upload
        $this->upload->initialize($configUpload);

        // verificamos se o upload foi processado com sucesso
        if (!$this->upload->do_upload($imagem_cursos)) {
            // em caso de erro retornamos os mesmos para uma variável
            // e enviamos para a home
            $this->session->set_flashdata('upload', '<div class="alert alert-warning" role="alert"> <i class="fa fa-info-circle"></i> ' . $this->upload->display_errors() . '</div>');
            redirect('cursos');
        } else {

            $upload = $this->upload->data();

            $nomeImagem = $upload['file_name'];
            $info = array('img' => $nomeImagem);

            $this->Auditoria_Model->atualizaimagemcurso($info, $id_curso);
            $this->session->set_flashdata('upload', '<div class="alert alert-success" role="alert"><i class="fa fa-check-circle"></i> Imagem salva com sucesso</div>');
            redirect('cursos');
        }
    }
    
    public function estudo() {
        
        $id = $this->input->post('id'); 
        $material = $this->Auditoria_Model->obtematerialdestudo($id);
        if (!empty($material)) {
        echo json_encode(array('resp' => TRUE, 'result' => $material));
        } else {
        echo json_encode(array('resp' => FALSE));    
        }
    }
    
    public function estudo_decode() {
        
        $id = $this->input->post('id'); 
        $material = $this->Auditoria_Model->obtematerialdestudo($id);
        
        print_r($material[0]->url);
        exit();
   
        if (!empty($material)) {
            print_r($material[0]->url);
        } else {
        echo json_encode(array('resp' => FALSE));    
        }
    }
    
    public function estudo_decode2() {
        
        $id = $this->input->post('id'); 
        $material = $this->Auditoria_Model->obtematerialdestudo($id);
        
        
        foreach ($material as $value) {
            echo"<br>".' <a href="'.$value->url.'" target="_blank">'.$value->url.'</a> ';
           
            
        }
        exit();
   
        if (!empty($material)) {
            print_r($material[0]->url);
        } else {
        echo json_encode(array('resp' => FALSE));    
        }
    }

    
    
}
