179 lines
8.4 KiB
PHP
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');
|
|
|
|
|
|
?>
|