/** * Método que importa capítulos e tópicos da apostila do ano anterior */ public function importa_arvore() { $data = $this->getParametroVisao(); $data['abaAtiva'] = 7; $data['abaPage'] = $data['alias'] = $data['page'] = __FUNCTION__; $data['page'] = 'home'; $data['msg'] = $this->getMsg(); $data['ano'] = isset($_GET['ano']) ? (int) $_GET['ano'] : 0; $data['pk_serie'] = isset($_GET['pk_serie']) ? (int) $_GET['pk_serie'] : 0; $data['pk_livro_cat'] = isset($_GET['pk_livro_cat']) ? (int) $_GET['pk_livro_cat'] : 0; $data['pk_materia_mae'] = isset($_GET['pk_materia_mae']) ? (int) $_GET['pk_materia_mae'] : 0; $data['pk_materia'] = isset($_GET['pk_materia']) ? (int) $_GET['pk_materia'] : 0; $data['volume'] = isset($_GET['volume']) ? (int) $_GET['volume'] : 0; $data['pk_livro'] = isset($_GET['pk_livro']) ? (int) $_GET['pk_livro'] : 0; $ano_anterior = $data['ano_letivo'] - 1; $data['tabela2'] = ''; $data['livro_atual'] = ''; $total_capitulos_livro_atual = 0; if (isset($_GET['sessoes']) == 1) { $_SESSION['pk_serie'] = (int) $_GET['pk_serie']; $_SESSION['pk_livro'] = (int) $_GET['pk_livro']; $_SESSION['pk_livro_cat'] = (int) $_GET['pk_livro_cat']; $_SESSION['pk_materia_mae'] = (int) $_GET['pk_materia_mae']; $_SESSION['pk_materia'] = (int) $_GET['pk_materia']; $_SESSION['volume'] = (int) $_GET['volume']; $_SESSION['ano_apostila'] = $data['ano_letivo']; $_SESSION['area'] = (int) $_GET['area']; redirect(str_replace('&sessoes=1', '', $data['urlAtual'])); } if (isset($_GET['concluir'])) { $sqlLivro = new SqlLivro(); $sqlLivro->update_status_livro($data['pk_livro'], $data['pk_materia'], 2); $this->session->set_flashdata('msg', '<p class="alert ok">Livro incluído com sucesso!<br />Edite os conteúdos digitais e clique no botão "concluir" no final da página.</p>'); redirect(base_url() . 'aula/livro/arvore_links/?pk_serie=' . $_SESSION['pk_serie'] . '&pk_livro_cat=' . $_SESSION['pk_livro_cat'] . '&area=' . $_SESSION['area'] . '&pk_materia_mae=' . $_SESSION['pk_materia_mae'] . '&pk_materia=' . $_SESSION['pk_materia'] . '&pk_livro=' . $_SESSION['pk_livro'] . '&volume=' . $_SESSION['volume']); } $sqlLivro = new SqlLivro(); $result = $sqlLivro->checa_livro($_SESSION['pk_serie'], $_SESSION['pk_livro_cat'], $_SESSION['volume'], $_SESSION['ano_letivo']); $pk_livro = !empty($result) ? $result[0]['pk_livro'] : 0; $data['pk_livro'] = $pk_livro; $result = $sqlLivro->get_materia_vin($_SESSION['pk_serie'], $_SESSION['pk_materia']); $pk_materia_vin = !empty($result) ? $result[0]['pk_materia_vin'] : 0; // inclui capítulo if (isset($_GET['pk_capitulo'])) { $sqlLivro = new SqlLivro(); $result = $sqlLivro->get_capitulo((int) $_GET['pk_capitulo']); $capitulo_nome = $result[0]['capitulo_nome']; $sqlAula = new SqlAula(); $result = $sqlAula->get_ultimo_capitulo($pk_livro, $pk_materia_vin); $proximo_sequencial_capitulo = !empty($result) ? substr($result[0]['capitulo_sequencial'], -1) + 1 : 1; try { $capitulo_sequencial = 'Capítulo ' . $proximo_sequencial_capitulo; $pk_capitulo_novo = $sqlAula->cadastrar_capitulo($capitulo_sequencial, $capitulo_nome, $pk_livro, $pk_materia_vin, $_GET['pk_capitulo']); $_SESSION['pk_capitulo_novo'] = $pk_capitulo_novo; $result = $sqlLivro->get_anexos_capitulos((int) $_GET['pk_capitulo']); foreach ($result as $row) { $sqlLivro->cadastrar_anexo_vin($row['fk_anexo'], 0, $_SESSION['pk_serie'], $pk_capitulo_novo); } $this->session->set_flashdata('msg', '<p class="alert ok">Capítulo "' . $capitulo_nome . '" incluído com sucesso!</p>'); redirect(base_url() . 'aula/livro/importa_arvore?ano=' . $_GET['ano'] . '&pk_serie=' . $_GET['pk_serie'] . '&pk_livro_cat=' . $_GET['pk_livro_cat'] . '&area=' . $_GET['area'] . '&pk_materia_mae=' . $_GET['pk_materia_mae'] . '&pk_materia=' . $_GET['pk_materia'] . '&pk_livro=' . $_GET['pk_livro'] . '&volume=' . $_GET['volume']); } catch (Exception $e) { $this->session->set_flashdata('msg', '<p class="alert erro">' . $e->getMessage() . '</p>'); redirect(base_url() . 'aula/livro/importa_arvore?ano=' . $_GET['ano'] . '&pk_serie=' . $_GET['pk_serie'] . '&pk_livro_cat=' . $_GET['pk_livro_cat'] . '&area=' . $_GET['area'] . '&pk_materia_mae=' . $_GET['pk_materia_mae'] . '&pk_materia=' . $_GET['pk_materia'] . '&pk_livro=' . $_GET['pk_livro'] . '&volume=' . $_GET['volume']); } } // inclui tópico if (isset($_GET['pk_conteudo'])) { $sqlLivro = new SqlLivro(); $result = $sqlLivro->get_topico((int) $_GET['pk_conteudo']); $conteudo_nome = $result[0]['conteudo_nome']; $pagina_inicial = $result[0]['pagina_inicial']; $pagina_final = $result[0]['pagina_final']; $paginas_trabalhadas = $result[0]['paginas_trabalhadas']; $total = $result[0]['total']; $sqlAulas = new SqlAulas(); $result = $sqlAulas->get_ultimo_conteudo($_SESSION['pk_capitulo_novo']); $proximo_topico = !empty($result) && $result[0]['topico'] != '' ? $result[0]['topico'] + 1 : 1; try { $pk_conteudo = $sqlAulas->cadastrar_assunto($conteudo_nome, $_SESSION['pk_capitulo_novo'], $paginas_trabalhadas, $proximo_topico, $_GET['pk_conteudo'], $pagina_inicial, $pagina_final, $total); $result = $sqlLivro->get_anexos_conteudos((int) $_GET['pk_conteudo']); foreach ($result as $row) { $sqlLivro->cadastrar_anexo_vin($row['fk_anexo'], $pk_conteudo, $_SESSION['pk_serie'], 0); } $this->session->set_flashdata('msg', '<p class="alert ok">Tópico "' . $conteudo_nome . '" incluído com sucesso!<br />Para concluir a etapa de inclusão de capítulos e tópicos, clique no botão "Concluir" no final da página.</p>'); redirect(base_url() . 'aula/livro/importa_arvore?ano=' . $_GET['ano'] . '&pk_serie=' . $_GET['pk_serie'] . '&pk_livro_cat=' . $_GET['pk_livro_cat'] . '&area=' . $_GET['area'] . '&pk_materia_mae=' . $_GET['pk_materia_mae'] . '&pk_materia=' . $_GET['pk_materia'] . '&pk_livro=' . $_GET['pk_livro'] . '&volume=' . $_GET['volume']); } catch (Exception $e) { $this->session->set_flashdata('msg', '<p class="alert erro">' . $e->getMessage() . '</p>'); redirect(base_url() . 'aula/livro/importa_arvore?ano=' . $_GET['ano'] . '&pk_serie=' . $_GET['pk_serie'] . '&pk_livro_cat=' . $_GET['pk_livro_cat'] . '&area=' . $_GET['area'] . '&pk_materia_mae=' . $_GET['pk_materia_mae'] . '&pk_materia=' . $_GET['pk_materia'] . '&pk_livro=' . $_GET['pk_livro'] . '&volume=' . $_GET['volume']); } } $array_capitulos = array(); $array_topicos = array(); // ARVORE ATUAL if ($pk_livro > 0) { $result = $sqlLivro->get_capitulos($pk_livro, $pk_materia_vin); $data['livro_atual'] = count($result); $total_capitulos_livro_atual = count($result); $html = '<table class="table" style="max-width: 500px;">'; $checa_topicos_incluidos = array(); foreach ($result as $row) { $array_capitulos[] = $row['fk_capitulo_anterior']; $html .= '<tr class="par"> <td><strong>' . $row['capitulo_sequencial'] . ': ' . $row['capitulo_nome'] . '</strong></td> <td class="w20"> <a href="' . base_url() . $this->uri->segment(1) . '/conteudos/editar_capitulo/' . $row['pk_capitulo'] . '?importa_arvore=1"><div class="tooltip icon_edit" data-tooltip="Edição de capítulo"></div></a> </td> <td class="w20"> <a href="' . base_url() . $this->uri->segment(1) . '/conteudos/excluir_capitulo" ' . View::getParamExcluirItemTabela($row['pk_capitulo'], 0, 0, $data['urlAtual'], 'Excluir capítulo', 'Deseja excluir o capítulo ' . $row['capitulo_nome'] . '') . ' class="excluirItemTabela"><div class="tooltip icon_delete" data-tooltip="Exclusão"></div></a> </td> </tr> <tr> <td colspan="4">'; $sqlLivro = new SqlLivro(); $result = $sqlLivro->get_topicos_links($row['pk_capitulo']); $checa_topicos_incluidos[] = count($result); $html .= '<table class="w100per mb10">'; foreach ($result as $item) { $array_topicos[] = $item['fk_conteudo_anterior']; $paginas = $item['paginas_trabalhadas'] != '' ? ' - pag(s): ' . $item['paginas_trabalhadas'] : ''; $html .= '<tr class="topico"><td class="w40 nowrap" >Tópico ' . $item['topico'] . ':</td><td>' . $item['conteudo_nome'] . ' ' . $paginas . '</td>' . '<td class="w20"> <a href="' . base_url() . $this->uri->segment(1) . '/conteudos/editar_assunto/' . $item['pk_conteudo'] . '/' . $row['pk_capitulo'] . '?importa_arvore=1"><div class="tooltip icon_edit" data-tooltip="Edição de assunto"></div></a> </td> <td class="w20"> <a href="' . base_url() . $this->uri->segment(1) . '/conteudos/excluir_assunto" ' . View::getParamExcluirItemTabela($item['pk_conteudo'], 0, 0, $data['urlAtual'], 'Excluir tópico', 'Deseja excluir o tópico ' . $item['conteudo_nome'] . '') . ' class="excluirItemTabela"><div class="tooltip icon_delete" data-tooltip="Exclusão"></div></a> </td> </tr>'; } $html .= '</table>'; $ano_parametro = isset($_GET['ano']) ? $_GET['ano'] : $_SESSION['ano_letivo']; $html .= '<a class="link" style="margin-left:76px;" href="' . base_url() . 'aula/conteudos/cadastrar_assunto/' . $data['pk_livro'] . '/' . $row['pk_capitulo'] . '?ano=' . $ano_parametro . '&arvore=1">Incluir Tópico inédito neste Capítulo</a><br /><br />'; $html .= '</td></tr>'; } $html .= '<tr><td class="par" colspan="3"><strong><a class="link" href="' . base_url() . 'aula/conteudo/cadastrar_capitulo/' . $pk_livro . '?&' . $_SERVER['QUERY_STRING'] . '&arvore=1">Incluir novo Capítulo</a></strong></td></tr>'; $html .= '</table>'; $data['tabela2'] = $html; } $capitulo_sem_topico = 0; if (!isset($checa_topicos_incluidos)) { $capitulo_sem_topico = 1; } else { foreach ($checa_topicos_incluidos as $n_topicos) { if ($n_topicos == 0) { $capitulo_sem_topico = 1; break; } } } $data['checa_topicos_incluidos'] = $capitulo_sem_topico; // ARVORE ANTERIOR $config['base_url'] = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3); $sqlAulas = new SqlAulas(); $data['anos'] = $sqlAulas->get_anos_livros(); $ano = explode("ano=", $_SERVER['QUERY_STRING']); $data['ano_url'] = $config['base_url'] . '?' . $ano[0]; $sqlLivro = new SqlLivro(); $result = $sqlLivro->get_apostila_anterior_capitulos($data['ano'], $data['pk_serie'], $data['pk_livro_cat'], $data['pk_materia'], $data['volume']); $total_capitulos_livro_anterior = count($result); $data['livro_anterior'] = count($result); $data['pk_livro_anterior'] = !empty($result) ? $result[0]['pk_livro'] : 0; $html = '<table class="table w400">'; foreach ($result as $row) { $html .= '<tr class="par"> <td><strong>' . $row['capitulo_sequencial'] . ': ' . $row['capitulo_nome'] . '</strong></td> <td class="w70 tcenter">'; $linkCapitulo = ''; if (empty($array_capitulos)) { $linkCapitulo = '<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '?' . $_SERVER['QUERY_STRING'] . '&pk_capitulo=' . $row['pk_capitulo'] . '">Importar >></a>'; } else { foreach ($array_capitulos as $cap) { if ($cap == $row['pk_capitulo']) { $linkCapitulo = ''; break; } else { $linkCapitulo = '<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '?' . $_SERVER['QUERY_STRING'] . '&pk_capitulo=' . $row['pk_capitulo'] . '">Importar >></a>'; } } } $html .= $linkCapitulo; $html .= ' </td>'; $html .= '</tr> <tr> <td colspan="2">'; $sqlLivro = new SqlLivro(); $result = $sqlLivro->get_apostila_anterior_topicos($row['pk_capitulo'], $array_topicos); $html .= '<table class="w100per">'; foreach ($result as $item) { $html .= '<tr><td class="w40 nowrap" >Tópico ' . $item['topico'] . ':</td><td>' . $item['conteudo_nome'] . '</td>' . '<td class="w80 tcenter">'; if (isset($_SESSION['pk_capitulo_novo'])) { $html .= '<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '?' . $_SERVER['QUERY_STRING'] . '&pk_conteudo=' . $item['pk_conteudo'] . '">Importar >></a>'; } $html .= '</td></tr>'; } $html .= '</table>'; $html .= '</td></tr>'; } $html .= '</table>'; $data['tabela1'] = $html; if ($total_capitulos_livro_atual == 0 && $total_capitulos_livro_anterior != 0) { $data['msg'] = '<div class="alert informacao">Clique em um dos links de capítulos listados abaixo para iniciar a estrutura do novo livro. Caso seja necessário incluir capítulos inéditos, clique no botão acima.</div>'; } else { $data['msg'] = $data['livro_atual'] == 0 ? '<div class="alert atencao">Não constam dados de livros anteriores a serem importados. <a class="link" href="' . base_url() . 'aula/conteudo/cadastrar_capitulo/' . $_SESSION['pk_livro'] . '?&' . $_SERVER['QUERY_STRING'] . '&arvore=1"><strong>Clique aqui</strong></a> para cadastrar uma topificação inédita.</div>' : ''; } $sqlGrade = new SqlGrade(); $data['serie'] = $sqlGrade->filtro_series(); $serie = explode("&pk_serie=", $_SERVER['QUERY_STRING']); $data['serie_url'] = $config['base_url'] . '?' . $serie[0]; if (isset($_GET['pk_serie'])) { $sqlAulas = new SqlAulas(); $data['livro'] = $sqlAulas->get_livros($_GET['pk_serie'], $ano_anterior, $this->uri->segment(3)); $livro = explode("&pk_livro_cat=", $_SERVER['QUERY_STRING']); $data['livro_url'] = $config['base_url'] . '?' . $livro[0]; $area = explode("&area=", $_SERVER['QUERY_STRING']); $data['area_url'] = $config['base_url'] . '?' . $area[0]; if (isset($_GET['area'])) { $sqlAulas = new SqlAulas(); $data['materias_mae'] = $sqlAulas->get_materias_mae($_GET['area']); $materias_mae = explode("&pk_materia_mae=", $_SERVER['QUERY_STRING']); $data['materias_mae_url'] = $config['base_url'] . '?' . $materias_mae[0]; if (isset($_GET['pk_materia_mae'])) { $sqlAulas = new SqlAulas(); $data['materias'] = $sqlAulas->get_frentes($_GET['pk_materia_mae'], $_GET['pk_serie']); $materias = explode("&pk_materia=", $_SERVER['QUERY_STRING']); $data['materias_url'] = $config['base_url'] . '?' . $materias[0]; if (isset($_GET['pk_materia'])) { $sqlAulas = new SqlAulas(); $data['volume'] = $sqlAulas->get_volumes($_GET['pk_livro_cat'], $_GET['pk_serie'], $data['ano']); $volume = explode("&volume=", $_SERVER['QUERY_STRING']); $data['volume_url'] = $config['base_url'] . '?' . $volume[0]; } } } } $_SESSION['redirect_inclui_arvore'] = $data['urlAtual']; $this->load->view($this->load->getUrlTema(), $data); }