Files

179 lines
8.4 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_20XX" 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><h3>ACESSO EXCLUSIVO PARA USUÁRIOS CADASTRADOS </h3>';
$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 ="<h3>SIMPÓSIO DE APLICAÇÕES OPERACIONAIS EM ÁREAS DE DEFESA </h3><hr><br>";
//Definir Texto Exibido
$out .='<h5><strong>ACESSO AO CONTEÚDO ONLINE </strong></h5>';
$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>';
//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 );
}
//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"/>';
}
////////////////////////////////////////////////////////////////////
//Adicionar Botão para participação PRESENCIAL/////////////
$out .= '<hr style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
$out .='<h5><strong>PARTICIPAÇÃO PRESENCIAL (INCRIÇÕES ATÉ 19/SET) </strong></h5>';
$out .='<p>Você poderá acompanhar nas instalações do ITA, de acordo com a disponibilidade de vagas, as palestras, sessões técnicas e mini cursos oferecidos, além de interagir diretamente com militares, acadêmicos e empresas que atuam diretamente desenvolvimento das mais avançadas soluções na área de defesa.</p>';
$btn_presencial_sige = 'presencial'.$ano;
if (isset($_POST[$btn_presencial_sige]))
{
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");
}
//Aqui é adicionado o botão para solicitar a participação, ultimo valor é se ainda está aberto as inscrições
$out .= create_status_request($usr, $btn_presencial_sige, 'STATUS: ', true);
$chekon_status = get_metadata('user', $usr->ID, 'presencial'.$ano, true);
if ($chekon_status != "Não Solicitada" && $chekon_status != "")
{
update_user_meta( $usr->ID, 'online'.$ano, "Participação APROVADA");
}
////////////////////////////////////////////////////////////////////
//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("mini1_".$ano =>array("Mini Curso 1","Strategic Decision Analysis", "Coronel (USAF) Gregory S. Parnell", "https://industrial-engineering.uark.edu/directory/index/uid/gparnell/name/Gregory+S.+Parnell/", true),
"mini2_".$ano =>array("Mini Curso 2","Competency-based Training to Address Representative Engineering Grand Challenges", "Prof. Dr. Girum Urgessa", "https://civil.gmu.edu/profiles/gurgessa", true),
"mini3_".$ano =>array("Mini Curso 3","Data-Centric AI and challenges for adopting it in large scale sector" , "Prof. Dr. Fredrik Heintz", "https://liu.se/en/employee/frehe08", 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)
);
$out .= '<hr>';// style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
$out .= '<p><h4><strong>MINI CURSOS OFERECIDOS</strong></h4></p>';
$out .= '<p>As vagas para acompanhar os cursos presencialmente são limitadas, no entanto também será possível acompanhar online as transmissões.</p>';
//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.';
}
//Para cada minicurso é gerado o botão de solicitação
$out .= '<hr style="height:1px;border:none;color:#e3e3e3;background-color:#e3e3e3"/>';
foreach ( $courses as $mini => $desc )
{
$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");
}
}
$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_quantica_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');
?>