Files

413 lines
17 KiB
PHP

<?php
function user_has_role($user_id, $role_name)
{
$user_meta = get_userdata($user_id);
$user_roles = $user_meta->roles;
return in_array($role_name, $user_roles);
}
function user_viewer() {
//Só mudar o ano após ter criado os campos "miniX_20XX" para todos os minicursos disponíveis
//e também os campos novos "online20XX" e "presencial20XX"
//A role "inscritos_20svXX" também deve ser criada previamente em "Members->Adicionar nova Função"
$ano = 2023;
//Limitação para somente usuários cadastrados
if (!is_user_logged_in())
{
$out = '<hr><br><h1>ACESSO EXCLUSIVO PARA USUÁRIOS CADASTRADOS </h1>';
$out .= '<p>Faça seu <a href="https://www.sige.ita.br/log-in/">LOGIN</a> ou Realize seu <a href="https://www.sige.ita.br/home-registro/">CADASTRO</a> agora mesmo.</p><br><hr>';
return $out;
}
$usr = wp_get_current_user();
$usr_info = get_userdata( $usr->ID );
//Código para restringir acesso e testar modificações
#if (!user_has_role(get_current_user_id(), 'administrator')){
# $out = '<br><hr><br><h3>Em manutenção, retorne em breve. </h3><hr>';
#return $out;
#}
////////////////////////////////////////////////////////////////////
/// Adicionar Opção para participação ONLINE/////////////
$out ="<h1>SIMPÓSIO DE APLICAÇÕES OPERACIONAIS EM ÁREAS DE DEFESA </h1><hr><br>";
//Definir Texto Exibido
$out .='<h2><strong>ACESSO AO CONTEÚDO ONLINE </strong></h2>';
$out .= '<p>Você terá acesso remoto a todo o conteúdo exclusivo do evento de ' .$ano .', incluindo acesso aos trabalhos acadêmicos com apresentações pelos próprios autores, envio de perguntas e acompanhamento das transmissões ao vivo.</p>';
//Atualizar o metadado a ser coletado para checar o status da inscrição para o ano desejado
$status = get_metadata('user', $usr->ID, 'online'.$ano, true);
$colorRequest = "#009900";
//Este trecho serve para exibir a inscrição aprovada ou disponibilizar o botão de solicitação
if ($status == "Participação APROVADA" )
{
$out .= '<p>STATUS: <span style="color:green"> <strong>Acesso Autorizado </span></strong></p>';
}
else
{
$out .= '<p>STATUS: <strong><span style="color:teal"> Não Solicitado </span></strong></p>';
wp_nonce_field('btn_online_clicked');
$out .= '<form id="frm" method="post" action="" >';
$out .= '<input style="background-color:' . $colorRequest . ';
border: solid 0px #6E6E6E;
height: 30px;
width: 160px;
font-size:14px;
color:white;
margin-top:0px; margin-left:0x;margin-bottom:4px; "
type="submit" value="Solicitar Acesso" id="submit" name="btn_online" /> </form>';
$out .= '<hr style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
}
$btn_online = get_metadata('user', $usr->ID, 'online'.$ano, true);
//Define as Roles que devem ser alteradas e metadados atualizados
if (isset($_POST['btn_online']))
{
//Para o caso do acesso online a aprovação é imediata
//O metadata "online20XX" deve ser criado para os usuários no plugin "Campos Personalizados"
update_user_meta( $usr->ID, 'online'.$ano, 'Participação APROVADA');
//O role "inscritos_20XX" também deve ser criada previamente em "Members->Adicionar nova Função"
//com apenas a função básica de ler
$usr->add_role( 'inscritos_'.$ano );
header("Refresh:0");
}
////////////////////////////////////////////////////////////////////
//Adicionar Botão para participação PRESENCIAL/////////////
$out .= '<hr style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
$out .='<h2><strong>PARTICIPAÇÃO PRESENCIAL </strong></h2>';
$out .='<p>Aproveite esta oportunidade, você poderá acompanhar nas instalações do ITA as palestras, sessões técnicas, workshops, apresentações e minicursos preparados nesta edição do SIGE, além de interagir com militares, acadêmicos e empresas que atuam diretamente desenvolvimento das mais avançadas soluções na área de defesa. Garanta logo a sua vaga, temos vagas limitadas.</p>';
$btn_presencial_sige = 'presencial'.$ano;
$out .= create_status_request($usr, $btn_presencial_sige, 'STATUS: ', true);
$chekon_status = get_metadata('user', $usr->ID, 'presencial'.$ano, true);
//echo " $chekon_status ";
//echo "btn_presencial_sige: " . $_POST[$btn_presencial_sige] . "<br>";
if (isset($_POST[$btn_presencial_sige]) && $btn_presencial_sige != 'Cancelar Participação')
{
echo "btn_presencial_sige: " . $_POST[$btn_presencial_sige] . "<br>";
update_user_meta( $usr->ID, $btn_presencial_sige, $_POST[$btn_presencial_sige]);
//Role "inscritos_20XX" deve estar criada, ela garante a contagem total de inscritos
$usr->add_role( 'inscritos_'.$ano );
update_user_meta( $usr->ID, "presencial_geral", "Sim");
//update_user_meta($usr->ID, 'presencial'.$ano, "Solicitar Participação");
echo " $chekon_status ";
header("Refresh:0");
}
if ($chekon_status == 'Cancelar Participação'){
echo "bs";
update_user_meta( $usr->ID, 'mini1_'.$ano, 'Cancelar Participação');
update_user_meta( $usr->ID, 'mini2_'.$ano, 'Cancelar Participação');
update_user_meta( $usr->ID, 'mini3_'.$ano, 'Cancelar Participação');
update_user_meta( $usr->ID, 'mini4_'.$ano, 'Cancelar Participação');
update_user_meta( $usr->ID, 'mini5_'.$ano, 'Cancelar Participação');
update_user_meta( $usr->ID, 'inovacao'.$ano, 'Cancelar Participação');
update_user_meta( $usr->ID, 'aerologlab'.$ano, 'Cancelar Participação');
//update_user_meta( $usr->ID, $btn_presencial_sige, $_POST[$btn_presencial_sige]);
//header("Refresh:0");
}
//Aqui é adicionado o botão para solicitar a participação, ultimo valor é se ainda está aberto as inscrições
////////////////////////////////////////////////////////////////////
//Adicionar Botões para participação em Mini Cursos/////////////
//As descrições dos minicursos devem ser atualizadas aqui para o que o usuário irá enxergar
//a Key do array correponde ao nome da chave do campo adicional do usuário
$courses = array("mini3_".$ano =>array("Mini Curso 1","Towards Trustworthy AI-Integrating Reasoning and Learning" , "Prof. Dr. Fredrik Heintz", "https://liu.se/en/employee/frehe08", true),
"mini1_".$ano =>array("Mini Curso 2","Value-Focused Thinking for Capability-Based Planning", "Coronel (USAF) Gregory S. Parnell", "https://industrial-engineering.uark.edu/directory/index/uid/gparnell/name/Gregory+S.+Parnell/", true),
"mini2_".$ano =>array("Mini Curso 3","Competency-based Training to Address Representative Engineering Grand Challenges", "Prof. Dr. Girum Urgessa", "https://civil.gmu.edu/profiles/gurgessa", true),
"mini4_".$ano =>array("Mini Curso 4","Introdução à Engenharia de Sistemas Espaciais", "Prof. Dr. Márcio Martins da Silva Costa", "http://lattes.cnpq.br/9992346581154486", true),
"mini5_".$ano =>array("Mini Curso 5","Introdução à Criptografia Quântica", "Prof. Dr. André Jorge Carvalho Chaves", "http://lattes.cnpq.br/5727667279534190", true),
"inovacao".$ano =>array("Apresentação 1","O Sistema de Inovação da Aeronáutica e sua conexão com a Base Industrial de Defesa ", "Ten Cel Av BRENO RICARDO DE ARAÚJO LEITE", "http://lattes.cnpq.br/8793321901301171", true),
"aerologlab".$ano =>array("Apresentação 2","Gêmeo Digital em suporte à aeronaves ", "Cel Av R1 FERNANDO TEIXEIRA MENDES ABRAHÃO", "linkedin.com/in/fernando-teixeira-mendes-abrahão-45161045", true)
);
$out .= '<hr>';// style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
$out .= '<p><h2><strong>MINICURSOS</strong></h2></p>';
$out .= '<p>Os minicursos possuem vagas limitadas, então não deixe de aproveitar essa oportunidade de participar presencialmente. Garanta logo a sua vaga, mas não se preocupe caso não consiga. Os minicursos serão gravados e disponibilizados em nosso site após o término do evento.</p>';
$out .= '<hr>';// style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/><br>';
//$out .= '<br><h2 style="color:red"><strong> ATENÇÃO: Transmissão Online MINICURSOS </strong></h2>';
//$out .= 'Este ano, estamos entusiasmados em anunciar uma novidade importante: devido à alta procura pelos nossos minicursos estaremos oferecendo a possibilidade de acompanhá-los online. Isso significa que, mesmo que você não possa estar fisicamente presente no evento, ainda poderá aproveitar o conteúdo valioso dos nossos minicursos de qualquer lugar do mundo..';
$out .= '<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Novidades no XXV Simpósio de Aplicações Operacionais em Áreas de Defesa</title>
<style>
.destaque {
text-align: center; /* Centraliza o texto */
color: red; /* Define a cor vermelha */
}
</style>
<style>
.recuo-lista li {
padding-left: 2.5cm; /* Define o recuo de 1,5 cm para a lista */
}
</style>
</head>
<body>
<h1 class="destaque"><strong>ATENÇÃO: Transmissão Online MINICURSOS</strong></h1>
<p>Este ano, estamos entusiasmados em anunciar uma novidade importante: devido à alta procura pelos nossos <strong>minicursos</strong> estaremos oferecendo a possibilidade de acompanhá-los <strong>online</strong>. Isso significa que, mesmo que você não possa estar fisicamente presente no evento, ainda poderá aproveitar o conteúdo valioso dos nossos minicursos de qualquer lugar do mundo.</p>
<p>Para participar dos minicursos online, é simples:</p>
<ol class="recuo-lista">
<li>Escolha a modalidade "ACESSO AO CONTEÚDO ONLINE" no meu acima.</li>
<li>Acesse o site exclusivo do evento <a href="https://www.sige.ita.br/2023_homeconteudo/">SIGE EVENTO 2023</a> no dia e horário do minicurso de seu interesse.</li>
</ol>
<p>É importante ressaltar que apenas os participantes presenciais serão contemplados com certificados de participação. Portanto, se você deseja receber um certificado, considere a opção de participação presencial no evento.</p>
</body>
</html>';
$out .= '<hr>';// style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
//Para solicitar os minicursos disponíveis o usuário deve ter solicitado participação presencial
//Atenção para atualizar o metadado no par ao ano correto
$chekon_statusP = get_metadata('user', $usr->ID, 'presencial'.$ano, true);
if ($chekon_statusP == "Não Solicitada" || $chekon_statusP == "")
{
$out .= '<strong><span style="color:red"> ATENÇÃO: </span></strong>';
$out .= 'Você ainda não solicitou Participação Presencial. Ao solicitar participação em um minicurso sua solicitação de inscrição presencial também será enviada.';
}
$out .= '<hr style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
$coursesKeys = array_keys($courses);
$mini = $coursesKeys[0];
$desc = $courses[$mini];
$buttonName = $mini;
$desc_info = '<strong>' . $desc[0] . '</strong> : ' . $desc[1] . ' (<a href=' . $desc[3] . ' target="_blank" >' . $desc[2] . ')</a><br>Status: ';
$out .= create_status_request($usr, $buttonName, $desc_info, $desc[4]);
if (isset($_POST[$buttonName])) {
update_user_meta($usr->ID, $mini, $_POST[$buttonName]);
if ($chekon_statusP == "Não Solicitada" || $chekon_statusP == "") {
// Atualizar ano do metadado
update_user_meta($usr->ID, 'presencial'.$ano, "Solicitar Participação");
header("Refresh:0");
}
header("Refresh:0");
}
$mini = $coursesKeys[1];
$desc = $courses[$mini];
$buttonName = $mini;
if (isset($_POST[$buttonName])) {
update_user_meta($usr->ID, $mini, $_POST[$buttonName]);
if ($chekon_statusP == "Não Solicitada" || $chekon_statusP == "") {
// Atualizar ano do metadado
update_user_meta($usr->ID, 'presencial'.$ano, "Solicitar Participação");
header("Refresh:0");
}
header("Refresh:0");
}
$desc_info = '<strong>' . $desc[0] . '</strong> : ' . $desc[1] . ' (<a href=' . $desc[3] . ' target="_blank" >' . $desc[2] . ')</a><br>Status: ';
$out .= create_status_request($usr, $buttonName, $desc_info, $desc[4]);
$mini = $coursesKeys[2];
$desc = $courses[$mini];
$buttonName = $mini;
if (isset($_POST[$buttonName])) {
update_user_meta($usr->ID, $mini, $_POST[$buttonName]);
if ($chekon_statusP == "Não Solicitada" || $chekon_statusP == "") {
// Atualizar ano do metadado
update_user_meta($usr->ID, 'presencial'.$ano, "Solicitar Participação");
header("Refresh:0");
}
header("Refresh:0");
}
$desc_info = '<strong>' . $desc[0] . '</strong> : ' . $desc[1] . ' (<a href=' . $desc[3] . ' target="_blank" >' . $desc[2] . ')</a><br>Status: ';
$out .= create_status_request($usr, $buttonName, $desc_info, $desc[4]);
$mini = $coursesKeys[3];
$desc = $courses[$mini];
$buttonName = $mini;
if (isset($_POST[$buttonName])) {
update_user_meta($usr->ID, $mini, $_POST[$buttonName]);
if ($chekon_statusP == "Não Solicitada" || $chekon_statusP == "") {
// Atualizar ano do metadado
update_user_meta($usr->ID, 'presencial'.$ano, "Solicitar Participação");
header("Refresh:0");
}
header("Refresh:0");
}
$desc_info = '<strong>' . $desc[0] . '</strong> : ' . $desc[1] . ' (<a href=' . $desc[3] . ' target="_blank" >' . $desc[2] . ')</a><br>Status: ';
$out .= create_status_request($usr, $buttonName, $desc_info, $desc[4]);
$mini = $coursesKeys[4];
$desc = $courses[$mini];
$buttonName = $mini;
$desc_info = '<strong>' . $desc[0] . '</strong> : ' . $desc[1] . ' (<a href=' . $desc[3] . ' target="_blank" >' . $desc[2] . ')</a><br>Status: ';
$out .= create_status_request($usr, $buttonName, $desc_info, $desc[4]);
if (isset($_POST[$buttonName])) {
update_user_meta($usr->ID, $mini, $_POST[$buttonName]);
if ($chekon_statusP == "Não Solicitada" || $chekon_statusP == "") {
// Atualizar ano do metadado
update_user_meta($usr->ID, 'presencial'.$ano, "Solicitar Participação");
header("Refresh:0");
}
header("Refresh:0");
}
// Repita esse bloco de código para cada mini-curso, ajustando os índices conforme necessário.
////////////////////////////////////////////////////////////////////
//Adicionar Botão para participação PRESENCIAL/////////////
$out .= '<hr style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
$out .='<h2><strong>OUTROS EVENTOS </strong></h2>';
$out .='<p>Nesta edição do SIGE, temos a honra de contar com a participação do Laboratório de Engenharia Logística do Instituto Tecnológico de Aeronáutica (AEROLOGLAB) e da Coordenadoria de Gestão da Inovação do Departamento de Ciência e Tecnologia Aeroespacial (DCTA). Eles irão brindar nosso distinto público com apresentações de alto nível, abordando temas de grande relevância, tais como o emprego da tecnologia Digital Twins no suporte às aeronaves e a interligação do Sistema de Inovação da Aeronáutica com a Base Industrial de Defesa.</p>';
$out .='<p>Consulte a nossa programação para obter maiores informações. Não perca essa oportunidade.</p>';
$out .= '<hr style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
$mini = $coursesKeys[5];
$desc = $courses[$mini];
$buttonName = $mini;
if (isset($_POST[$buttonName])) {
update_user_meta($usr->ID, $mini, $_POST[$buttonName]);
if ($chekon_statusP == "Não Solicitada" || $chekon_statusP == "") {
// Atualizar ano do metadado
update_user_meta($usr->ID, 'presencial'.$ano, "Solicitar Participação");
header("Refresh:0");
}
header("Refresh:0");
}
$desc_info = '<strong>' . $desc[0] . '</strong> : ' . $desc[1] . ' (<a href=' . $desc[3] . ' target="_blank" >' . $desc[2] . ')</a><br>Status: ';
$out .= create_status_request($usr, $buttonName, $desc_info, $desc[4]);
$mini = $coursesKeys[6];
$desc = $courses[$mini];
$buttonName = $mini;
if (isset($_POST[$buttonName])) {
update_user_meta($usr->ID, $mini, $_POST[$buttonName]);
if ($chekon_statusP == "Não Solicitada" || $chekon_statusP == "") {
// Atualizar ano do metadado
update_user_meta($usr->ID, 'presencial'.$ano, "Solicitar Participação");
header("Refresh:0");
}
header("Refresh:0");
}
$desc_info = '<strong>' . $desc[0] . '</strong> : ' . $desc[1] . ' (<a href=' . $desc[3] . ' target="_blank" >' . $desc[2] . ')</a><br>Status: ';
$out .= create_status_request($usr, $buttonName, $desc_info, $desc[4]);
////////////////////////////////////////////////
return $out;
}
add_shortcode('sige_user_viewer', 'user_viewer');
function header_insc() {
$out = '<h2>MINHAS INSCRIÇÕES: </h2>';
if (!is_user_logged_in())
{
//$out = '<br><hr><br><h3>ACESSO EXCLUSIVO PARA USUÁRIOS CADASTRADOS </h3><hr>';
return $out;
}
$usr = wp_get_current_user();
$usr_info = get_userdata( $usr->ID );
$usr_info->user_email;
$out .= '<h5><strong>' . $usr_info->display_name . '</strong><br></h5><hr style="height:4px;">';
return $out;
}
add_shortcode('header_insc', 'header_insc');
?>