<?php

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

class Elabore extends CI_Controller {

    function __construct() {
        parent::__construct();
        (isset($_SESSION['controle-aluno']) == TRUE) ? redirect('carreira') : '';
        $this->load->model('Cadastro_Model');
        $this->load->model('Elabore_Model');
        $this->load->model('Cursos_Model');
        $this->load->library('Conteudo');
        $this->load->library('url');
        $this->load->library('Sanitize');
        $this->load->database();
    }

    public function elaborecursos() {

        if (isset($_SESSION['aluno']) == TRUE) {
            $id = $_SESSION['aluno']['id_aluno'];
            $aluno = $this->Cadastro_Model->getAlunoPorID($id);
            $dados = array('descricao' => 'O aluno pode sugerir novos cursos que ainda não estejam disponíveis no Amazônia Cursos','termos' => $this->Cadastro_Model->obtemTermo(), 'titulo' => 'Elabore Cursos', 'aluno' => $aluno);
            $this->load->view('elabore', $dados);
        } else {
            
            redirect();
        }
    }

    public function manual_elabore() {
        if (isset($_SESSION['aluno']) == TRUE) {
            $id = $_SESSION['aluno']['id_aluno'];
            $aluno = $this->Cadastro_Model->getAlunoPorID($id);
            $dados = array('descricao' => 'Manual com as informações sobre a elaboração de cursos no Amazônia Cursos','termos' => $this->Cadastro_Model->obtemTermo(), 'titulo' => 'Elabore Cursos', 'aluno' => $aluno);
            $this->load->view('manual_elabore', $dados);
        } else {
            redirect();
        }
    }
    public function verificatermo($curso) {
         $verif = stristr($curso, "Curso");
         if ($verif) {
         return;    
         }
         $verif = stristr($curso, "Graduação");
         if ($verif) {
         return TRUE;    
         }
         $verif = stristr($curso, "Técnico");
         if ($verif) {
         
         }
         $verif = stristr($curso, "Bacharelado");
         if ($verif) {
         return TRUE;    
         }
         $verif = stristr($curso, "Licenciatura");
         if ($verif) {
         return TRUE;    
         }
         
         $verif = stristr($curso, "Especilização");
         if ($verif) {
         return TRUE;    
         }
         
         
    }
    public function elabore() {
         
        if (isset($_SESSION['aluno']) == TRUE) {
           
            $_POST = $this->sanitize->filter($this->input->post());

            $nome_curso = trim($this->input->post('nome-curso'));
            $this->session->set_userdata("nome_curso", $nome_curso);
            $pdf = $this->input->post('pdf');
            $youtube = $this->input->post('youtube');
            $livro = $this->input->post('livro');
            $link = $this->input->post('link');
            $choice = $this->escolha($pdf, $youtube, $livro, $link);

            $this->form_validation->set_rules('nome-curso', 'Nome-curso', 'trim|required', array('required' => ' O campo nome está em branco. '));

            if ($this->form_validation->run() == FALSE) {
                
                $form = validation_errors('<div class="alert alert-warning" role="alert"><div class=""> <i class="fa fa-info-circle"></i> <span> ', ' </span> </div> </div>');
                $this->session->set_flashdata('erro-form-elabore', $form);
                redirect('elaborecursos');
            } else {
             
                
                $stri = str_replace("+", " ", $this->url->urlamigavel($nome_curso));
                $str = $this->url->urlamigavel($nome_curso);
                $existe_curso = $this->Cursos_Model->obtemCursosPorNome($stri);
                 //print_r($existe_curso);
                if ($existe_curso == FALSE) {
                      
                    if ($choice != FALSE) {
                       
                        $id = $_SESSION['aluno']['id_aluno'];
                        $aluno = $this->Cadastro_Model->getAlunoPorID($id);
                        
                        //print_r($aluno);
                        $nome_aluno = $aluno['nome'];
                        $email = $aluno['email'];
                        
                        $obtemusuario_api = $this->Elabore_Model->obtemusuario($id);
                        $id_usuario = $obtemusuario_api['id_usuario'];
                        
                       // print_r($obtemusuario_api);
                        
                       
                      
                       
                        $hash = $this->gera_hash();

                        if ($obtemusuario_api == NULL) {
                         
                            $add = $this->conteudo->adicionarusuario($nome_aluno, $hash, $email);
                            
                            //print_r($add);
                            
                            
                            
                            $id_usuario = $add['id'];
                            $chave = $add['chave'];
                            $token = $add['token'];
                            $login = $add['login'];
                            
                            

                            $in=$this->Elabore_Model->inserealunoconteudo($id_usuario, $chave, $token, $login);
                            
                            
                            $obtemusuario_api = $this->Elabore_Model->obtemusuario($id);
                            
                            //print_r($obtemusuario_api);
                            
                            
                            $chave = $obtemusuario_api['chave'];
                            $token = $obtemusuario_api['token'];
                            $login = $obtemusuario_api['login'];
                            $this->conteudos($nome_curso, $id_usuario, $chave, $token, $login, $pdf, $youtube, $livro, $link);
                        } else {
                            
                            $obtemusuario_api = $this->Elabore_Model->obtemusuario($id);
                            
                            //print_r($obtemusuario_api);
                           
                            $chave = $obtemusuario_api['chave'];
                            $token = $obtemusuario_api['token'];
                            $login = $obtemusuario_api['login'];
                            $this->conteudos($nome_curso, $id_usuario, $chave, $token, $login, $pdf, $youtube, $livro, $link);
                        }
                    } else {
                        
                        $this->session->set_flashdata('erro-escolha', '<div class="alert alert-warning" role="alert"><i class="fa fa-info-circle"></i> Você não escolheu um conteúdo para a elaboração do curso </div>');
                        redirect('elaborecursos');
                    }
                } else {
                   
                    $this->session->set_flashdata('existe-curso', '<div class="alert alert-warning" role="alert"><i class="fa fa-info-circle"></i> O curso que você está elaborando já existe. <a href="' . base_url('cursos/' . $str) . '">Clique aqui</a> e acesse agora mesmo!</div>');
                    redirect('elaborecursos');
                }
            }
        } else {
          
            redirect();
        }
    }

    public function conteudos($nome_curso, $id_usuario, $chave, $token, $login, $pdf, $youtube, $livro, $link) {

        if (isset($_SESSION['aluno']) == TRUE) {
             
            if ($nome_curso != "" && $id_usuario != "" && $chave != "" && $token != "" && $login != "") {
                
                $escolha = $this->escolha($pdf, $youtube, $livro, $link);

                $cont = $this->conteudo->apiconteudo($nome_curso, $id_usuario, $chave, $token, $login, $escolha);
               
                $id = $_SESSION['aluno']['id_aluno'];
                $aluno = $this->Cadastro_Model->getAlunoPorID($id);
                $dados = array('conteudos' => $cont, 'termos' => $this->Cadastro_Model->obtemTermo(), 'titulo' => 'Elabore Cursos', 'aluno' => $aluno);
                $this->load->view('conteudo', $dados);
            } else {
                
                redirect();
            }
        } else {
            
            redirect();
        }
    }

    public function escolha($pdf, $youtube, $livro, $link) {

        if ($youtube != true) {
            $youtube = false;
        } else {
            $youtube = true;
        }

        if ($pdf != true) {
            $pdf = false;
        } else {
            $pdf = true;
        }

        if ($livro != true) {
            $livro = false;
        } else {
            $livro = true;
        }

        if ($link != true) {
            $link = false;
        } else {
            $link = true;
        }

        $dados = array('pdf' => $pdf, 'youtube' => $youtube, 'livro' => $livro, 'link' => $link);

        if ($dados['pdf'] == FALSE && $dados['youtube'] == FALSE && $dados['livro'] == FALSE && $dados['link'] == FALSE) {
            return FALSE;
        } else {
            return $dados;
        }
    }

    public function escolhaconteudo() {

        // CONTEÚDO E EMENTA DO CURSO 
        if (count($this->input->post('titulo')) > 0 && count($this->input->post('descricao')) > 0) {
            $tit = "";
            $descr = "";
            foreach ($this->input->post('titulo') as $titulo) {
                $tit .= $titulo . "§ ";
            }
            $ementa = substr($tit, 0, -2);
            foreach ($this->input->post('descricao') as $descricao) {
                $descr .= $descricao . ". ";
            }
            $descricaoc = substr($descr, 0, -2);

            $dados = array('descricao' => $descricaoc, 'ementa' => $ementa);
            $this->session->set_userdata("escolha", $dados);
        }
    }

    public function elaborefinal() {

        $link = $this->input->post('check');
        if (isset($link)) {
           
           
            $id = $_SESSION['aluno']['id_aluno'];
            $aluno = $this->Cadastro_Model->getAlunoPorID($id);
            $email = $aluno['email'];
            $nome = $aluno['nome'];
            $ip = $this->url->get_client_ip_server();
            $navegador = $this->url->getBrowser();
            $descricao = $_SESSION['escolha']['descricao'];
            $ementa = strip_tags($_SESSION['escolha']['ementa']);
            $nome_curso = $_SESSION['nome_curso'];
            $keywords = explode('§', $ementa);
            
            $i = 1;

            $cont = count($keywords);
            $tit = "";
            while ($i <= $cont) {
                foreach ($keywords as $values) {
                    $tit .= $i . '.' . $values . ' ';
                    $i = $i + 1;
                }
            }
            
            $result = array();
            
          
            foreach ($link as $links) {
               
                $quebra_link = explode('&&&', $links);

                $li = $quebra_link[0];
                $title = $quebra_link[1];
                
                array_push($result, array('descricao' => $title,'link' => $li));
            }
        
            $api_dados = $this->api($nome_curso, $descricao, $tit, $result);
    
            $this->Elabore_Model->insereacursocolaborador($navegador, $ip, $email, $api_dados ,$nome); // INSIRO O COLABORADOR           

            $this->session->unset_userdata('nome_curso');
            $this->session->unset_userdata('escolha');

            $this->session->set_flashdata('sucesso-escolha', '<div class="alert alert-success" role="alert"><i class="fa fa-info-circle"></i> Curso criado com sucesso. O curso será avaliado e estará disponível em breve </div>');
            redirect('cursos');
        } else {
            $this->session->set_flashdata('erro-escolhas', '<div class="alert alert-warning" role="alert"><i class="fa fa-info-circle"></i> Você não escolheu um conteúdo para a elaboração do curso </div>');
            redirect('elaborecursos');
        }
    }
    
      public function api($nome_curso, $descricao, $ementa, $link) {
        
        $descricaoc = substr($ementa, 0, -2);  
        
        $curso = array(
            'credenciais' => array(
                'chave' => 'e43731ff9db3d341da5',
                'token' => 'IEFwcmVuZGl6YWdlbQ==',
                'instituicao' => 'AMAZONIA CURSOS'
            ),
            'curso' => array( 
                'nome' => $nome_curso,
                'data_criacao' => date('Y-m-d H:i:s'),
                'descricao' => $descricao,
                'origem' => 'amazonia',
                'situacao' => 0,
                'ementa' => $descricaoc
            ),
             'curso_link' => $link
            );
        
     
        $dados = json_encode($curso);    
        
        $url = URL_ELABORE; 
        
        $ch = curl_init();
        
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FILETIME, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, array('insert'=>$dados));
            
        $output = curl_exec($ch);
        
        $res = json_decode($output);
        return $res->dados;
     
    }

    public function gera_hash() {
        $id_aluno = $_SESSION['aluno']['id_aluno'];
        return strtoupper(substr(md5($id_aluno . ':' . microtime() . microtime()), 0, 4) . substr(md5($id_aluno . ':' . microtime()), 0, 4));
    }

}
