741 lines
26 KiB
PHP
741 lines
26 KiB
PHP
<?php
|
|
/*
|
|
Plugin Name: Simulador Mob-Out ARI-POLI
|
|
Plugin URI: https://code.beco.cc/beco/simulador-mob-out-ari-poli
|
|
Description: Calculadora de pré-seleção para mobilidade OUT da ARI/POLI-UPE, exibida via shortcode [simulador_mob].
|
|
Version: 1.3.20260629
|
|
Author: Ruben Carlo Benante
|
|
Author URI: https://beco.cc
|
|
License: GPLv3 or later
|
|
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
|
Text Domain: simulador-mob-out-ari-poli
|
|
*/
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
// Simulador Mob Out - Copyright (C) 2022-2024 - Versão 1.0.20220701
|
|
// Autores:
|
|
// * Prof. Dr. Ruben Carlo Benante <rcb@beco.cc>
|
|
// * Pedro Henrique Azevedo Vanderlei de Mendonça <phavm@poli.br>
|
|
// Data: 2022-07-01
|
|
/* ------------------------------------------------------------------------ */
|
|
|
|
namespace Beco\SimuladorMobOut;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função max = 10
|
|
function maximo_dez($nota){
|
|
if ($nota > 10) {
|
|
$nota = 10;
|
|
return $nota;
|
|
} else {
|
|
return $nota;
|
|
}
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função nota de reprovações
|
|
function nota_reprovacoes($nrec, $nnrec){
|
|
$ro = (40-(2*$nnrec)-$nrec)/4;
|
|
if ($ro < 0){
|
|
$ro = 0;
|
|
return $ro;
|
|
}
|
|
return $ro;
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função nota do histórico
|
|
function nota_historico($po, $ro, $mo){
|
|
if ($mo == 0){
|
|
$o = 0;
|
|
return $o;
|
|
} else{
|
|
$o = (($po*10)*1+$ro*3+$mo*5)/(1+3+5);
|
|
return $o;
|
|
}
|
|
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função nota de atividades desenvolvidas
|
|
function nota_atividades($ps, $es, $ms){
|
|
$s = ($ps+$es+$ms)*2;
|
|
$s = maximo_dez($s);
|
|
return $s;
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função nota publicações
|
|
function nota_lattes($apy, $acy, $cy, $ly, $ry){
|
|
$y = ($apy*2*2 + $acy*2*1 + $cy*2*2 + $ly*2*3 + $ry*2*1)/(2+1+2+3+1);
|
|
$y = maximo_dez($y);
|
|
return $y;
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função nota dos eventos
|
|
function nota_eventos($ea, $pa, $ca){
|
|
$a = ($ea+$pa+$ca)*2;
|
|
$a = maximo_dez($a);
|
|
return $a;
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função nota geral
|
|
function nota_geral($o, $s, $y, $a){
|
|
global $entradas;
|
|
global $h;
|
|
if ($entradas['programa'] == 1) {
|
|
if ($entradas['mobilidade'] == 1) {
|
|
if ($entradas['lingua'] <= 3 && $entradas['lingua2'] <= 2) {
|
|
$h = "Declassificado por não possuir proficiência superior a A2 em italiano ou B1 em inglês.";
|
|
return $h;
|
|
} else {
|
|
$h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2);
|
|
$h = number_format($h, 2);
|
|
return "Sua nota é: $h";
|
|
}
|
|
} elseif ($entradas['mobilidade'] == 2) {
|
|
if ($entradas['lingua'] <= 3) {
|
|
$h = "Desclassificado por não possuir proficiência superior a B1 em inglês.";
|
|
return $h;
|
|
} else {
|
|
$h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2);
|
|
$h = number_format($h, 2);
|
|
return "Sua nota é: $h";
|
|
}
|
|
}
|
|
} else {
|
|
$h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2);
|
|
$h = number_format($h, 2);
|
|
return "Sua nota é: $h";
|
|
}
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função tratamento de entrada
|
|
function limpaPost($valor){
|
|
$valor = trim($valor);
|
|
$valor = stripslashes($valor);
|
|
$valor = htmlspecialchars($valor);
|
|
return $valor;
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função para pegar a entrada
|
|
function validar_entrada(){
|
|
global $entradas;
|
|
|
|
// Lista completa dos campos numericos esperados. Inicializar todos em 0
|
|
// evita avisos de "Undefined array key" no PHP 8 quando o formulario chega
|
|
// incompleto, e o cast para float garante valores numericos (sem avisos de
|
|
// "non-numeric value") mesmo diante de um POST adulterado.
|
|
$campos = array(
|
|
'programa', 'mobilidade', 'lingua', 'lingua2', 'porcentagem',
|
|
'repro_rec', 'repro_nrec', 'media', 'ic', 'extensao', 'monitoria',
|
|
'art_periodicos', 'art_congresso', 'cap_livros', 'livros', 'resumos',
|
|
'evento_extensao', 'evento_pesquisa', 'congresso',
|
|
'estagio', 'estagio_exterior',
|
|
);
|
|
|
|
$entradas = array();
|
|
foreach ($campos as $campo) {
|
|
if (isset($_POST[$campo]) && $_POST[$campo] !== '') {
|
|
// Clampa negativos em 0: nenhum campo legitimo (notas, contagens,
|
|
// selecoes) e negativo; isto neutraliza POST adulterado, ja que o
|
|
// min="0" do HTML so vale no navegador.
|
|
$entradas[$campo] = max(0, (float) limpaPost($_POST[$campo]));
|
|
} else {
|
|
$entradas[$campo] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função para mudar a tela dependendo do programa de mobilidade escolhido pelo estudante
|
|
function imprime($string1, $brafitec='', $polito='') {
|
|
$fgeral = array(1, 2, 3);
|
|
|
|
if (!isset($_POST['programa']) || in_array($_POST['programa'], $fgeral)){
|
|
echo $string1;
|
|
if (!isset($_POST['programa']) || $_POST['programa'] == 1){
|
|
echo $polito;
|
|
}
|
|
}
|
|
elseif (isset($_POST['programa']) && $_POST['programa'] == 4) {
|
|
echo $brafitec;
|
|
}
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função para calcular a nota do BRAFITEC
|
|
function nota_brafitec($mo, $est_ext, $ps, $outros){
|
|
global $entradas;
|
|
if (isset($entradas['lingua']) && $entradas['lingua'] <= 2){
|
|
$h_brafitec = "Declassificado por não possuir proficiência em francês maior ou igual a B1.";
|
|
return $h_brafitec;
|
|
}
|
|
if (isset($entradas['porcentagem']) && $entradas["porcentagem"] == 0) {
|
|
$h_brafitec = "Desclassificado por não estar entre 40% e 80% do seu curso.";
|
|
return $h_brafitec;
|
|
} elseif (isset($entradas['repro_nrec']) && $entradas["repro_nrec"] > 0) {
|
|
if ($entradas['repro_nrec'] == 1) {
|
|
$h_brafitec = "Desclassificado por ter reprovação não recuperada";
|
|
return $h_brafitec;
|
|
} else {
|
|
$h_brafitec = "Desclassificado por ter reprovações não recuperadas";
|
|
return $h_brafitec;
|
|
}
|
|
} elseif (isset($entradas['repro_rec']) && $entradas["repro_rec"] > 2) {
|
|
$h_brafitec = "Desclassificado por ter mais de 2 reprovações recuperadas";
|
|
return $h_brafitec;
|
|
} else {
|
|
$est_ext = maximo_dez($est_ext);
|
|
$ps = maximo_dez($ps);
|
|
$h_brafitec = (($mo*7) + ($est_ext*0.5) + ($ps*1.5) + ($outros*1))/10;
|
|
$h_brafitec = number_format($h_brafitec, 2);
|
|
return "Sua nota é: $h_brafitec";
|
|
}
|
|
}
|
|
|
|
|
|
/* ------------------------------------------------------------------------ */
|
|
//Função para calcular outras atividades do BRAFITEC
|
|
function outras_brafitec($es, $ms, $est, $apy, $acy, $cy, $ly, $ry, $ea, $pa, $ca){
|
|
$outros = $es + $ms + $est + $apy + $acy + $cy + $ly + $ry + $ea + $pa +$ca;
|
|
$outros = maximo_dez($outros);
|
|
return $outros;
|
|
|
|
}
|
|
|
|
function simulador_mob_shortcode() {
|
|
|
|
\wp_enqueue_script( 'mathjax' );
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
|
|
//var_dump($_POST);
|
|
if (isset($_POST["calcular"])) {
|
|
validar_entrada();
|
|
global $entradas;
|
|
if ($entradas["media"] <= 0){
|
|
// Media curricular e a base da nota (peso 5 no Padrao V2, peso 7 no
|
|
// BRAFITEC). Sem ela, evita exibir uma nota baixa enganosa.
|
|
global $h, $h_brafitec;
|
|
$h = $h_brafitec = "Preencha a média curricular para calcular a nota.";
|
|
} elseif ($entradas["programa"] != 4){
|
|
global $o, $ro, $s, $y, $a, $h, $entradas;
|
|
$ro = nota_reprovacoes($entradas["repro_rec"], $entradas["repro_nrec"]);
|
|
$o = nota_historico($entradas["porcentagem"], $ro, $entradas["media"]);
|
|
$s = nota_atividades($entradas ["ic"], $entradas["extensao"], $entradas["monitoria"]);
|
|
$y = nota_lattes($entradas["art_periodicos"], $entradas["art_congresso"], $entradas["cap_livros"], $entradas["livros"], $entradas["resumos"]);
|
|
$a = nota_eventos($entradas["evento_extensao"], $entradas["evento_pesquisa"], $entradas["congresso"]);
|
|
$h = nota_geral($o, $s, $y, $a);
|
|
$o = number_format($o, 2);
|
|
$s = number_format($s, 2);
|
|
$y = number_format($y, 2);
|
|
$a = number_format($a, 2);
|
|
} elseif ($entradas["programa"] == 4) {
|
|
global $entradas, $h_brafitec, $outros;
|
|
$outros = outras_brafitec($entradas["extensao"], $entradas["monitoria"], $entradas["estagio"], $entradas["art_periodicos"], $entradas["art_congresso"], $entradas["cap_livros"], $entradas["livros"], $entradas["resumos"], $entradas["evento_extensao"], $entradas["evento_pesquisa"], $entradas["congresso"]);
|
|
$h_brafitec = nota_brafitec($entradas["media"], $entradas["estagio_exterior"], $entradas["ic"], $outros);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
ob_start();
|
|
?>
|
|
|
|
<div class="simulador-mob-out">
|
|
<style>
|
|
.simulador-mob-out td { padding: 5px; }
|
|
.simulador-mob-out td.labels { width: 220px; }
|
|
</style>
|
|
|
|
<div style="overflow-x: auto;">
|
|
<div style="display: flex;">
|
|
<div style="flex: 80%;">
|
|
<p>Esta página segue os pesos e critérios da pré-seleção para mobilidade OUT da ARI/POLI encontradas no Formulário de Mobilidade OUT, disponível no link <a href="https://ari.poli.br/document/form-mob-out/">https://ari.poli.br/document/form-mob-out/</a>.</p>
|
|
<p id="linkdemo"></p>
|
|
<form method="post">
|
|
|
|
<label for="programa">Escolha o programa/universidade que você deseja fazer mobilidade:</label>
|
|
|
|
<select name="programa" id="programa" onchange="this.form.submit()">
|
|
<option value="1" <?php if (isset($_POST['programa']) && $_POST['programa'] == 1){echo "selected";} ?>>POLITO</option>
|
|
<option value="2" <?php if (isset($_POST['programa']) && $_POST['programa'] == 2){echo "selected";} ?>>FEUP</option>
|
|
<option value="3" <?php if (isset($_POST['programa']) && $_POST['programa'] == 3){echo "selected";} ?>>UCoimbra</option>
|
|
<option value="4" <?php if (isset($_POST['programa']) && $_POST['programa'] == 4){echo "selected";} ?>>BRAFITEC</option>
|
|
</select>
|
|
<?php if (isset($_POST['programa']) == FALSE){echo "(Fórmula Padrão-V2 ARI/POLI)";} ?>
|
|
<?php if (isset($_POST['programa']) && $_POST['programa'] == 1){echo "(Fórmula Padrão-V2 ARI/POLI)";} ?>
|
|
<?php if (isset($_POST['programa']) && $_POST['programa'] == 2){echo "(Fórmula Padrão-V2 ARI/POLI)";} ?>
|
|
<?php if (isset($_POST['programa']) && $_POST['programa'] == 3){echo "(Fórmula Padrão-V2 ARI/POLI)";} ?>
|
|
<?php if (isset($_POST['programa']) && $_POST['programa'] == 4){echo "(Fórmula do BRAFITEC/CAPES):";} ?>
|
|
|
|
|
|
<!-- TIPO DE MOBILIDADE -->
|
|
<?php imprime('','',"<br><br>"); ?>
|
|
<?php imprime('','',"<label>Tipo de mobilidade:</label> "); ?>
|
|
<?php imprime('','',"<input type='radio' name='mobilidade' id='simples' value='1' required /> "); ?>
|
|
<?php imprime('','',"<label for='simples'>Mobilidade Simples</label> "); ?>
|
|
<?php imprime('','',"<input type='radio' name='mobilidade' id='dupla' value='2' /> "); ?>
|
|
<?php imprime('','',"<label for='dupla'>Dupla Diplomação</label><br>"); ?>
|
|
<?php imprime('','',"<em>Mobilidade dupla disponível apenas na seleção de primeiro semestre para início das atividades acadêmicas na Itália em Setembro.</em><br>"); ?>
|
|
<br><br>
|
|
|
|
<div id="div_lingua">
|
|
<span id="spanlink"></span>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="flex: 20%;">
|
|
<img src="https://ari.poli.br/wp-content/uploads/2022/08/20220823-ilustracao-simulador.png" width="200px" style="float:right">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- NOTA GERAL -->
|
|
<h3><b><?php global $h, $h_brafitec; imprime($h, $h_brafitec); ?></b></h3>
|
|
|
|
<table style="width:100%">
|
|
<tr>
|
|
<td colspan="3"><br><hr></td>
|
|
</tr>
|
|
<th colspan="3">
|
|
<h3>Histórico Escolar <?php imprime("(Peso 5)",'(Peso 7)'); ?> </h3>
|
|
</th>
|
|
|
|
<tr>
|
|
<td><br></td>
|
|
</tr>
|
|
|
|
<!-- MÉDIA CURRICULAR -->
|
|
<tr>
|
|
<td class="labels"><label for="media">Média curricular:</label></td>
|
|
<td><input name="media" type="number" step="0.01" min="0" id="media" /></td>
|
|
<td><?php imprime("(Peso 5)", "(Peso 7)"); ?> </td>
|
|
</tr>
|
|
|
|
<!-- REPROVAÇÕES RECUPERADAS -->
|
|
<tr>
|
|
<td><label for="repro_rec">Número de reprovações recuperadas:</label></td>
|
|
<td><input name="repro_rec" type="number" min="0" id="repro_rec" /></td>
|
|
<td><?php imprime("(Peso 3)", "(Classificatório)"); ?> </td>
|
|
</tr>
|
|
|
|
<!-- REPROVAÇÕES NÃO RECUPERADAs -->
|
|
<tr>
|
|
<td><label for="repro_nrec">Número de reprovações não recuperadas:</label></td>
|
|
<td><input name="repro_nrec" type="number" min="0" id="repro_nrec" /></td>
|
|
<td><?php imprime("(Peso 3)", "(Classificatório)"); ?> </td>
|
|
</tr>
|
|
|
|
<!-- TOTAL DE REPROVAÇÕES -->
|
|
<tr>
|
|
<td><label for="repro_total">Total de reprovações:</label></td>
|
|
<td><span id="repro_total"> </span></td>
|
|
</tr>
|
|
|
|
<!-- PORCENTAGEM DO CURSO-->
|
|
<tr>
|
|
<td><label> <?php imprime("Está entre 50% e 80% do curso?", "Está entre 40% e 80% do curso?"); ?></label></td>
|
|
<td><input type="radio" name="porcentagem" id="porcentagem1" value="1" />
|
|
<label for="porcentagem1">Sim</label>
|
|
<input type="radio" name="porcentagem" id="porcentagem2" value="0" />
|
|
<label for="porcentagem2">Não</label><br>
|
|
</td>
|
|
<td><?php imprime("", "(Classificatório)"); ?> </td>
|
|
</tr>
|
|
<tr>
|
|
<?php imprime("<td><br></td>") ?>
|
|
</tr>
|
|
|
|
<!-- FÓRMULAS DE NOTA DO HISTÓRICO -->
|
|
<tr>
|
|
<td colspan="2"><b><?php imprime("Nota do histórico O = [0,10]. Fórmula: $$\ O = \frac{(Po*10*1+Ro*3+Mo*5)}{(1+3+5)}$$"); ?></b></td>
|
|
<td colspan="2"><b><?php imprime("Fórmula da nota de reprovações Ro = [0,10]. Fórmula: $$\ Ro = \frac{40-2*N_n-N_r}{4}$$"); ?></b></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<?php imprime("Po = Adicional de porcentagem (1 se entre 50% e 80%, 0 se não. Peso 1)<br>"); ?>
|
|
<?php imprime("Ro = Nota de reprovações (Peso 3)<br>"); ?>
|
|
<?php imprime("Mo = Média curricular (Peso 5)<br> "); ?>
|
|
</td>
|
|
<td colspan="2">
|
|
<?php imprime("N<sub>n</sub> = Reprovações não recuperadas <br>"); ?>
|
|
<?php imprime("N<sub>r</sub> = Reprovações recuperadas <br>"); ?>
|
|
</td>
|
|
</tr>
|
|
|
|
<?php imprime("<tr>"); ?>
|
|
<?php imprime("<td><br></td>"); ?>
|
|
<?php imprime("</tr>"); ?>
|
|
|
|
<!-- NOTA DO HISTÓRICO ESCOLAR -->
|
|
<?php imprime("<tr>"); ?>
|
|
<?php imprime("<td colspan='2'><b> A nota do seu histórico escolar é: "); global $o; imprime($o); imprime("</b></td>");?>
|
|
<?php imprime("</tr>"); ?>
|
|
|
|
<tr>
|
|
<td colspan="3"><br><hr></td>
|
|
</tr>
|
|
|
|
<th colspan="3">
|
|
<h3>Atividades Desenvolvidas <?php imprime("(Peso 2)"); ?></h3>
|
|
</th>
|
|
<tr>
|
|
<td style="color: gray;">(número de semestres)</td>
|
|
<tr>
|
|
|
|
<tr>
|
|
<td><br></td>
|
|
<tr>
|
|
|
|
|
|
<!-- PESQUISA (IC) -->
|
|
<tr>
|
|
<td><label for="ic">Pesquisa (IC):</label></td>
|
|
<td><input type="number" name="ic" min="0" id="ic" /></td>
|
|
<td> <?php imprime("","(Peso 1.5)"); ?> </td>
|
|
</tr>
|
|
|
|
<!-- EXTENSÃO -->
|
|
<tr>
|
|
<td><label for="extensao">Extensão:</label></td>
|
|
<td><input type="number" name="extensao" min="0" id="extensao" /></td>
|
|
<td> <?php imprime("", "(Peso 1)"); ?> </td>
|
|
</tr>
|
|
|
|
<!-- MONITORIA -->
|
|
<tr>
|
|
<td><label for="monitoria">Monitoria:</label></td>
|
|
<td><input type="number" name="monitoria" min="0" id="monitoria" /></td>
|
|
<td> <?php imprime("", "(Peso 1)"); ?> </td>
|
|
</tr>
|
|
<?php imprime("", "<tr>"); ?>
|
|
<!-- ESTÁGIO NO EXTERIOR -->
|
|
<?php imprime("", "<td><label for='estagio_exterior'>Estágio no exterior:</label></td>"); ?>
|
|
<?php imprime("", "<td><input type='number' name='estagio_exterior' min='0' id='estagio_exterior' /></td>");?>
|
|
<?php imprime("", "<td>(Peso 0,5) </td>"); ?>
|
|
<?php imprime("", "</tr>") ?>
|
|
<?php imprime("", "<tr>"); ?>
|
|
<!-- ESTÁGIO -->
|
|
<?php imprime("", "<td><label for='estagio'>Estágio:</label></td>"); ?>
|
|
<?php imprime("", "<td><input type='number' name='estagio' min='0' id='estagio' /></td>");?>
|
|
<?php imprime("", "<td>(Peso 1) </td>"); ?>
|
|
<?php imprime("", "</tr>") ?>
|
|
<?php imprime("<tr>"); ?>
|
|
<?php imprime("<td><br></td>"); ?>
|
|
<?php imprime("</tr>"); ?>
|
|
|
|
<!-- FÓRMULA NOTA DE ATIVIDADES -->
|
|
<tr>
|
|
<td colspan="2"><b><?php imprime("Nota de atividades S = [0,10]. Fórmula: $$\ S = (Ps+Es+Ms)*2$$"); ?></b></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<?php imprime("Ps = Pesquisas (IC) por semestre <br>"); ?>
|
|
<?php imprime("Es = Extensões por semestre <br>"); ?>
|
|
<?php imprime("Ms = Monitorias por semestre <br>"); ?>
|
|
</td>
|
|
</tr>
|
|
<?php imprime("<tr>"); ?>
|
|
<?php imprime("<td><br></td>"); ?>
|
|
<?php imprime("</tr>"); ?>
|
|
|
|
<!-- NOTA DAS ATIVIDADES -->
|
|
<tr>
|
|
<td colspan="2"><b><?php imprime("A nota de suas atividades acadêmicas é: "); global $s; imprime($s); ?></b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="3"><br><hr></td>
|
|
</tr>
|
|
|
|
<th colspan="3">
|
|
<h3>Publicações <?php imprime("(Peso 3)", "(Peso 1)"); ?></h3>
|
|
</th>
|
|
|
|
<tr>
|
|
<td><br></td>
|
|
</tr>
|
|
|
|
<!-- ARTIGOS COMPLETOS EM PERÍDICOS -->
|
|
<tr>
|
|
<td><label for="art_periodicos">Artigos completos em periódicos:</label></td>
|
|
<td><input type="number" name="art_periodicos" min="0" id="art_periodicos" /></td>
|
|
<td><?php imprime("(Peso 2)", ""); ?> </td>
|
|
</tr>
|
|
|
|
<!-- ARTIGOS COMPLETOS EM CONGRESSOS -->
|
|
<tr>
|
|
<td><label for="art_congresso">Artigos completos em congressos:</label></td>
|
|
<td><input type="number" name="art_congresso" min="0" id="art_congresso" /></td>
|
|
<td><?php imprime("(Peso 1)", ""); ?> </td>
|
|
</tr>
|
|
|
|
<!-- CAPÍTULO DE LIVROS -->
|
|
<tr>
|
|
<td><label for="cap_livros">Capítulos de livros:</label></td>
|
|
<td><input type="number" name="cap_livros" min="0" id="cap_livros" /></td>
|
|
<td><?php imprime("(Peso 2)", ""); ?> </td>
|
|
</tr>
|
|
|
|
<!-- LIVROS -->
|
|
<tr>
|
|
<td><label for="livros">Livros:</label></td>
|
|
<td><input type="number" name="livros" min="0" id="livros" /></td>
|
|
<td><?php imprime("(Peso 3)", ""); ?> </td>
|
|
</tr>
|
|
|
|
<!-- RESUMOS -->
|
|
<tr>
|
|
<td><label for="resumos">Resumos:</label></td>
|
|
<td><input type="number" name="resumos" min="0" id="resumos" /></td>
|
|
<td><?php imprime("(Peso 1)", ""); ?> </td>
|
|
</tr>
|
|
<?php imprime("<tr>"); ?>
|
|
<?php imprime("<td><br></td>"); ?>
|
|
<?php imprime("</tr>"); ?>
|
|
|
|
<!-- FÓRMULA NOTA DE PUBLICAÇÕES -->
|
|
<tr>
|
|
<td colspan="2"><b><?php imprime("Nota de publicações Y = [0,10]. Fórmula: $$\ Y = \frac{(Ay*2*2+By*2*1+Cy*2*2+Ly*2*3+Ry*2*1)}{(2+1+2+3+1)}$$"); ?></b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<?php imprime("Ay = Artigos completos em períodicos (Peso 2) <br>"); ?>
|
|
<?php imprime("By = Artigos completos em congressos (Peso 1) <br>"); ?>
|
|
<?php imprime("Cy = Capítulos de livros (Peso 2) <br>"); ?>
|
|
<?php imprime("Ly = Livros (Peso 3) <br>"); ?>
|
|
<?php imprime("Ry = Resumos (Peso 1) <br>"); ?>
|
|
</td>
|
|
</tr>
|
|
<?php imprime("<tr>"); ?>
|
|
<?php imprime("<td><br></td>"); ?>
|
|
<?php imprime("</tr>"); ?>
|
|
|
|
<!-- NOTA DE PUBLICAÇÕES -->
|
|
<tr>
|
|
<td colspan="2"><b><?php imprime("A nota de suas publicações é: "); global $y; imprime($y); ?></b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="3"><br><hr></td>
|
|
</tr>
|
|
|
|
<th colspan="3">
|
|
<h3>Participação em Eventos <?php imprime("(Peso 2)", "(Peso 1)"); ?></h3>
|
|
</th>
|
|
|
|
<tr>
|
|
<td><br></td>
|
|
</tr>
|
|
|
|
<!-- PARTICIPAÇÃO EM EVENTOS DE EXTENSÃO -->
|
|
<tr>
|
|
<td><label for="evento_extensao">Extensão:</label></td>
|
|
<td><input type="number" name="evento_extensao" min="0" id="evento_extensao" /></td>
|
|
<td> <?php imprime("", ""); ?> </td>
|
|
</tr>
|
|
|
|
<!-- PARTICIPAÇÃO EM EVENTOS DE PESQUISA -->
|
|
<tr>
|
|
<td><label for="evento_pesquisa">Pesquisa:</label></td>
|
|
<td><input type="number" name="evento_pesquisa" min="0" id="evento_pesquisa" /></td>
|
|
<td> <?php imprime("", ""); ?> </td>
|
|
</tr>
|
|
|
|
<!-- PARTICIPAÇÃO EM CONGRESSOS ACADÊMICOS -->
|
|
<tr>
|
|
<td><label for="congresso">Congresso:</label></td>
|
|
<td><input type="number" name="congresso" min="0" id="congresso" /></td>
|
|
<td> <?php imprime("", ""); ?> </td>
|
|
</tr>
|
|
<?php imprime("<tr>"); ?>
|
|
<?php imprime("<td><br></td>"); ?>
|
|
<?php imprime("</tr>"); ?>
|
|
|
|
<!-- FÓRMULA DE NOTA DE EVENTOS -->
|
|
<tr>
|
|
<td colspan="2"><b><?php imprime("Nota de eventos científicos A = [0,10]. Fórmula: $$\ A = (Ea+Pa+Ca)*2$$"); ?></b></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<?php imprime("Ea = Participação em eventos de extensão<br>"); ?>
|
|
<?php imprime("Pa = Participação em envetos de pesquisa<br>"); ?>
|
|
<?php imprime("Ca = Participação em congressos científicos<br>"); ?>
|
|
</td>
|
|
</tr>
|
|
<?php imprime("<tr>"); ?>
|
|
<?php imprime("<td><br></td>"); ?>
|
|
<?php imprime("</tr>"); ?>
|
|
|
|
<!-- NOTA DE EVENTOS CIENTÍFICOS -->
|
|
<tr>
|
|
<td colspan="2"><b><?php imprime("A nota de sua participação em eventos científicos é: "); global $a; imprime($a); ?></b></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"><br><hr></td>
|
|
</tr>
|
|
|
|
<!-- PROFICIÊNCIA NA LÍNGUA -->
|
|
<?php imprime("", "<th colspan='3'>", "<th colspan='3'>"); ?>
|
|
<?php imprime("", "<h3>Nível de Proficiência</h3>", "<h3>Nível de Proficiência</h3>"); ?>
|
|
<?php imprime("", "</th>", "</th>"); ?>
|
|
<?php imprime("", "<tr> <td style='color: gray;'> (Classificatório) </td> </tr>", "<tr> <td style='color: gray;'> (Classificatório) </td> </tr>"); ?>
|
|
|
|
<?php imprime("","<tr>","<tr>"); ?>
|
|
<?php imprime("","<td><br></td>", "<td><br></td>"); ?>
|
|
<?php imprime("","</tr>", "</tr>"); ?>
|
|
|
|
<?php imprime("", "<tr>", "<tr>"); ?>
|
|
<?php imprime("", "<td> <label> Francês: </label> </td>", "<td> <label> Inglês: </label> </td>"); ?>
|
|
<?php imprime("", "<td>", "<td>"); ?>
|
|
<?php
|
|
$sie_niveis = array('A1' => 1, 'A2' => 2, 'B1' => 3, 'B2' => 4, 'C1' => 5, 'C2' => 6);
|
|
foreach ($sie_niveis as $sie_rotulo => $sie_valor) {
|
|
// Frances (BRAFITEC) e Ingles (POLITO) usam name='lingua'; nunca aparecem juntos, podem compartilhar o id.
|
|
$sie_radio = "<input type='radio' name='lingua' id='lng_{$sie_valor}' value='{$sie_valor}'> <label for='lng_{$sie_valor}'>{$sie_rotulo}</label> ";
|
|
imprime("", $sie_radio, $sie_radio);
|
|
}
|
|
?>
|
|
<?php imprime("", "</td>", "</td>"); ?>
|
|
<?php imprime("", "</tr>", "</tr>"); ?>
|
|
|
|
|
|
|
|
<?php imprime("", "", "<br>") ?>
|
|
<?php imprime("", "", "<tr>") ?>
|
|
<?php imprime("", "", "<td> <label> Italiano: </label> </td>") ?>
|
|
<?php imprime("", "", "<td>") ?>
|
|
<?php
|
|
foreach ($sie_niveis as $sie_rotulo => $sie_valor) {
|
|
$sie_radio2 = "<input type='radio' name='lingua2' id='lng2_{$sie_valor}' value='{$sie_valor}'> <label for='lng2_{$sie_valor}'>{$sie_rotulo}</label> ";
|
|
imprime("", "", $sie_radio2);
|
|
}
|
|
?>
|
|
<?php imprime("", "</td>", "</td>") ?>
|
|
<?php imprime("", "</tr>", "</tr>") ?>
|
|
|
|
<?php imprime("", "<tr>", "<tr>") ?>
|
|
<?php imprime("", "<td colspan='3'><br><hr></td>", "<td colspan='3'><br><hr></td>") ?>
|
|
<?php imprime("", "</tr>", "</tr>") ?>
|
|
|
|
|
|
<!-- FÓRMULA DE NOTA GERAL -->
|
|
<tr>
|
|
<td colspan="2"><h3><b> Nota final H = [0,10]. Fórmula:</b></h3> <b> <?php imprime("$$\ H = \frac{(O*5+S*2+Y*3+A*2)}{(5+2+3+2)}$$ ", "$$\ H = \frac{(O*7)+(E*0.5)+(I*1.5)+(S*1)}{(7+0.5+1.5+1)}$$ "); ?></b></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<?php imprime("O = Nota do histórico (Peso 5) <br>", "O = Média Curricular (Peso 7) <br>"); ?>
|
|
<?php imprime("S = Nota de atividades (Peso 2)<br>", "E = Nota de experiência em estágio no exterior [0,10] (Peso 0,5)<br>"); ?>
|
|
<?php imprime("Y = Nota de publicações (Peso 3)<br>", "I = Nota de participação em Iniciação Científica [0,10] (Peso 1,5)<br>"); ?>
|
|
<?php imprime("A = Nota de eventos científicos (Peso 2) <br>", "S = Outros(monitoria, estágio, projetos de extensão, publicações, etc.) [0,10] (Peso 1) <br>"); ?>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br><br>
|
|
<input type="submit" name="calcular" id="calcular" value="Calcular nota">
|
|
<br><br>
|
|
|
|
<input type="reset" value="Reiniciar dados" onclick="window.location.href='<?php echo \esc_url( \get_permalink() ); ?>';" />
|
|
<br>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
function start() {
|
|
var inputReproRec = document.querySelector("#repro_rec");
|
|
var inputReproNRec = document.querySelector("#repro_nrec");
|
|
|
|
var inputMobilidade = document.querySelector("input[name=mobilidade]");
|
|
var inputMobilidade1 = document.querySelector("#simples");
|
|
var inputMobilidade2 = document.querySelector("#dupla");
|
|
var inputTipoMobilidade = document.querySelector("#programa");
|
|
|
|
if (inputTipoMobilidade.value == "1") {
|
|
inputMobilidade1.addEventListener('change', mobilidade);
|
|
inputMobilidade2.addEventListener('change', mobilidade);
|
|
|
|
|
|
}
|
|
inputReproRec.addEventListener('input', totalRepro);
|
|
inputReproNRec.addEventListener('input', totalRepro);
|
|
totalRepro();
|
|
|
|
}
|
|
|
|
|
|
|
|
function mobilidade() {
|
|
var inputMobilidade1 = document.querySelector("#simples");
|
|
var inputMobilidade2 = document.querySelector("#dupla");
|
|
var divLingua = document.querySelector("#div_lingua");
|
|
var spanLink = document.querySelector("#spanlink");
|
|
|
|
if (inputMobilidade1.checked) {
|
|
divLingua.textContent = "Necessário comprovar Inglês B2 ou Italiano B1 ";
|
|
var linkAri = document.createElement('a');
|
|
var texto = document.createTextNode("nas provas aceitas pela ARI/POLI.");
|
|
linkAri.appendChild(texto);
|
|
linkAri.title = "link da ari";
|
|
linkAri.href = "https://ari.poli.br/pt/home-pt/faq/#polito";
|
|
divLingua.appendChild(linkAri);
|
|
} else if (inputMobilidade2.checked) {
|
|
divLingua.textContent = "Necessário comprovar Inglês B2 ";
|
|
var linkPolito = document.createElement('a');
|
|
var texto = document.createTextNode("nas provas aceitas pela POLITO.");
|
|
linkPolito.appendChild(texto);
|
|
linkPolito.title = "link da polito";
|
|
linkPolito.href = "https://didattica.polito.it/zxd/b5eda0a74558a342cf659187f06f746f/9dde3c1deee7c791026d6a0ac91322bb/d3bacd1b4a125e3fe050c0828c374cea?1640169847079";
|
|
divLingua.appendChild(linkPolito);
|
|
}
|
|
}
|
|
|
|
function totalRepro() {
|
|
var inputReproRec = document.querySelector("#repro_rec");
|
|
var inputReproNRec = document.querySelector("#repro_nrec");
|
|
var inputReproTotal = document.querySelector("#repro_total");
|
|
|
|
var reproRec = Number(inputReproRec.value);
|
|
var reproNRec = Number(inputReproNRec.value);
|
|
|
|
var reproTotal = reproRec + reproNRec;
|
|
|
|
inputReproTotal.textContent = reproTotal;
|
|
}
|
|
|
|
|
|
start();
|
|
</script>
|
|
<?php
|
|
return ob_get_clean();
|
|
}
|
|
|
|
function register_assets() {
|
|
// MathJax 3 renderiza as formulas $$...$$. Registrado aqui e carregado via
|
|
// wp_enqueue_script() so quando o shortcode aparece na pagina; no rodape e async.
|
|
\wp_register_script(
|
|
'mathjax',
|
|
'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js',
|
|
array(),
|
|
'3',
|
|
array( 'in_footer' => true, 'strategy' => 'async' )
|
|
);
|
|
}
|
|
\add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\\register_assets' );
|
|
|
|
\add_shortcode( 'simulador_mob', __NAMESPACE__ . '\\simulador_mob_shortcode' );
|