/** * * Gera código html para criação do botão discordar do sistema delibera * * @param $ID int post_ID ou comment_ID * @param $type string 'pauta' ou 'comment' */ function delibera_gerar_discordar($ID, $type = 'pauta') { global $post; $situacoes_validas = array('validacao' => false, 'discussao' => true, 'emvotacao' => false); $ndiscordou = intval($type == 'pauta' || $type == 'post' ? get_post_meta($ID, 'delibera_numero_discordar', true) : get_comment_meta($ID, 'delibera_numero_discordar', true)); $postID = 0; if (is_object($ID)) { if ($type == 'post' || $type == 'pauta') { $ID = $ID->ID; $postID = $ID; } else { $postID = $ID->comment_post_ID; $ID = $ID->comment_ID; } } $situacao = delibera_get_situacao($postID); if (delibera_current_user_can_participate()) { $user_id = get_current_user_id(); $ip = $_SERVER['REMOTE_ADDR']; if (!delibera_ja_discordou($ID, $user_id, $ip, $type) && (is_object($situacao) && array_key_exists($situacao->slug, $situacoes_validas)) && $situacoes_validas[$situacao->slug] && !delibera_ja_curtiu($ID, $user_id, $ip, $type)) { $html = ''; // $html .= (!$ndiscordou ? '<div class="delibera-unlike-count"></div>' : ''); $html .= '<button class="btn btn-mini btn-danger delibera_unlike"><span class="delibera_unlike_text">' . __('Discordo', 'delibera') . '</span>'; $html .= "<input type='hidden' name='object_id' value='{$ID}' />"; $html .= "<input type='hidden' name='type' value='{$type}' />"; $html .= '</button>'; return $html; } } }
function delibera_valida_permissoes($comment_ID) { if (get_post_type() == 'pauta' && !delibera_current_user_can_participate()) { if (array_key_exists('delibera_validacao', $_REQUEST) || array_key_exists('delibera_encaminha', $_REQUEST)) { wp_die("Nananina não! Você não tem que ter permissão pra votar.", "Tocooo!!"); } } }
/** * Formulário do comentário * @param array $defaults */ function delibera_comment_form($defaults) { global $post, $delibera_comments_padrao, $user_identity, $comment_footer; $comment_footer = ""; if ($delibera_comments_padrao === true) { $defaults['fields'] = $defaults['must_log_in']; if (!is_user_logged_in()) { $defaults['comment_field'] = ""; $defaults['logged_in_as'] = ''; $defaults['comment_notes_after'] = ""; $defaults['label_submit'] = ""; $defaults['id_submit'] = "botao-oculto"; $defaults['comment_notes_before'] = ' '; } return $defaults; } if (get_post_type($post) == "pauta") { /* @var WP_User $current_user */ $current_user = wp_get_current_user(); $defaults['id_form'] = 'delibera_commentform'; $defaults['comment_field'] = '<div class="delibera_before_fields">' . $defaults['comment_field']; $situacao = delibera_get_situacao($post->ID); switch ($situacao->slug) { case 'validacao': $user_comments = delibera_get_comments($post->ID, 'validacao', array('user_id' => $current_user->ID)); $temvalidacao = false; foreach ($user_comments as $user_comment) { if (get_comment_meta($user_comment->comment_ID, 'delibera_comment_tipo', true) == 'validacao') { $temvalidacao = true; break; } } if ($temvalidacao) { $defaults['comment_notes_after'] = ' <script type="text/javascript"> var formdiv = document.getElementById("respond"); formdiv.style.display = "none"; </script> '; } else { $defaults['title_reply'] = __('Você quer ver essa pauta posta em discussão?', 'delibera'); $defaults['must_log_in'] = sprintf(__('Você precisar <a href="%s">estar logado</a> e ter permissão para votar.', 'delibera'), wp_login_url(apply_filters('the_permalink', get_permalink($post->ID)))); if (delibera_current_user_can_participate()) { $form = ' <div id="painel_validacao" > <input id="delibera_aceitar" type="radio" name="delibera_validacao" value="S" checked /><label for="delibera_aceitar" class="delibera_aceitar_radio_label">' . __('Aceitar', 'delibera') . '</label> <input id="delibera_rejeitar" type="radio" name="delibera_validacao" value="N" /><label for="delibera_rejeitar" class="delibera_aceitar_radio_label">' . __('Rejeitar', 'delibera') . '</label> <input name="comment" value="A validação de ' . $current_user->display_name . ' foi registrada no sistema." style="display:none;" /> <input name="delibera_comment_tipo" value="validacao" style="display:none;" /> </div> '; $defaults['comment_field'] = $form; $defaults['comment_notes_after'] = '<div class="delibera_comment_button">'; $defaults['logged_in_as'] = ""; $defaults['label_submit'] = __('Votar', 'delibera'); $comment_footer = "</div>"; } else { $defaults['comment_field'] = ""; $defaults['logged_in_as'] = '<p class="logged-in-as">' . sprintf(__('Você está logado como <a href="%1$s">%2$s</a> que não é um usuário autorizado a votar. <a href="%3$s" title="Sair desta conta?">Sair desta conta</a> e logar com um usuário com permissão de votar?', 'delibera'), admin_url('profile.php'), $user_identity, wp_logout_url(apply_filters('the_permalink', get_permalink($post->ID)))) . '</p>'; $defaults['comment_notes_after'] = ""; $defaults['label_submit'] = ""; $defaults['id_submit'] = "botao-oculto"; } } break; case 'discussao': case 'relatoria': $defaults['title_reply'] = sprintf(__('Discussão em torno de "%s"', 'delibera'), $post->post_title); $defaults['must_log_in'] = sprintf(__('Você precisar <a href="%s">estar logado</a> para contribuir com a discussão.', 'delibera'), wp_login_url(apply_filters('the_permalink', get_permalink($post->ID)))); $defaults['comment_notes_after'] = ""; $defaults['logged_in_as'] = ""; $defaults['comment_field'] = ' <input name="delibera_comment_tipo" value="discussao" style="display:none;" />' . $defaults['comment_field']; if ($situacao->slug == 'relatoria') { $defaults['comment_field'] = ' <input id="delibera-baseouseem" name="delibera-baseouseem" value="" style="display:none;" autocomplete="off" /> <div id="painel-baseouseem" class="painel-baseouseem"><label id="painel-baseouseem-label" class="painel-baseouseem-label" >' . __('Proposta baseada em:', 'delibera') . ' </label></div><br/> ' . $defaults['comment_field']; } if (delibera_current_user_can_participate()) { $replace = ''; if (delibera_pautas_suportam_encaminhamento()) { if ($situacao->slug != 'relatoria') { $replace .= '<label class="delibera-encaminha-label" ><input type="radio" name="delibera_encaminha" value="N" checked="checked" />' . __('Opinião', 'delibera') . '</label>'; } $replace .= '<label class="delibera-encaminha-label" ><input type="radio" name="delibera_encaminha" value="S" ' . ($situacao->slug == 'relatoria' ? ' checked="checked" ' : '') . ' />' . __('Proposta de encaminhamento', 'delibera') . '</label>'; } else { $replace .= '<input type="hidden" name="delibera_encaminha" value="N" />'; } $defaults['comment_field'] = preg_replace("/<label for=\"comment\">(.*?)<\\/label>/", $replace, $defaults['comment_field']); } else { $defaults['comment_field'] = ""; $defaults['logged_in_as'] = '<p class="logged-in-as">' . sprintf(__('Você está logado como <a href="%1$s">%2$s</a> que não é um usuário autorizado a votar. <a href="%3$s" title="Sair desta conta?">Sair desta conta</a> e logar com usuário que possa votar?', 'delibera'), admin_url('profile.php'), $user_identity, wp_logout_url(apply_filters('the_permalink', get_permalink($post->ID)))) . '</p>'; $defaults['comment_notes_after'] = ""; $defaults['label_submit'] = ""; $defaults['id_submit'] = "botao-oculto"; } if (has_filter('delibera_discussao_comment_form')) { $defaults = apply_filters('delibera_discussao_comment_form', $defaults, $situacao->slug); } break; case 'emvotacao': $user_comments = delibera_get_comments($post->ID, 'voto', array('user_id' => $current_user->ID)); $temvoto = false; foreach ($user_comments as $user_comment) { if (get_comment_meta($user_comment->comment_ID, 'delibera_comment_tipo', true) == 'voto') { $temvoto = true; break; } } if ($temvoto) { $defaults['comment_notes_after'] = ' <script type="text/javascript"> var formdiv = document.getElementById("respond"); formdiv.style.display = "none"; </script> '; } else { $defaults['title_reply'] = sprintf(__('Regime de votação para a pauta "%s"', 'delibera'), $post->post_title); $defaults['must_log_in'] = sprintf(__('Você precisar <a href="%s">estar logado</a> e ter permissão para votar.'), wp_login_url(apply_filters('the_permalink', get_permalink($post->ID)))); $encaminhamentos = array(); if (delibera_current_user_can_participate()) { $form = '<div class="delibera_checkbox_voto">'; $encaminhamentos = delibera_get_comments_encaminhamentos($post->ID); $form .= '<div class="instrucoes-votacao">' . __('Escolha os encaminhamentos que deseja aprovar e depois clique em "Votar":', 'delibera') . '</div>'; $i = 0; foreach ($encaminhamentos as $encaminhamento) { $form .= ' <div class="checkbox-voto"><input type="checkbox" name="delibera_voto' . $i . '" id="delibera_voto' . $i . '" value="' . $encaminhamento->comment_ID . '" /><label for="delibera_voto' . $i++ . '" class="label-voto">' . $encaminhamento->comment_content . '</label></div> '; } $form .= ' <input name="delibera_comment_tipo" value="voto" style="display:none;" /> <input name="comment" value="O voto de ' . $current_user->display_name . ' foi registrado no sistema" style="display:none;" /> </div>'; $defaults['comment_field'] = $form; $defaults['logged_in_as'] = ""; $defaults['label_submit'] = __('Votar', 'delibera'); $defaults['comment_notes_after'] = '<div class="delibera_comment_button">'; $comment_footer = "</div>"; } else { $defaults['comment_field'] = ""; $defaults['logged_in_as'] = '<p class="logged-in-as">' . sprintf(__('Você está logado como <a href="%1$s">%2$s</a> que não é um usuário autorizado a votar. <a href="%3$s" title="Sair desta conta?">Sair desta conta</a> e logar com um usuário com permisão para votar?', 'delibera'), admin_url('profile.php'), $user_identity, wp_logout_url(apply_filters('the_permalink', get_permalink($post->ID)))) . '</p>'; $defaults['comment_notes_after'] = ""; $defaults['label_submit'] = ""; $defaults['id_submit'] = "botao-oculto"; } } if (has_filter('delibera_resolucoes_comment_form')) { $defaults = apply_filters('delibera_resolucoes_comment_form', $defaults, $temvoto, $encaminhamentos); } break; case 'comresolucao': $defaults['comment_notes_after'] = '<script type="text/javascript"> var formdiv = document.getElementById("respond"); formdiv.style.display = "none"; </script>'; if (has_filter('delibera_comresolucao_comment_form')) { $defaults = apply_filters('delibera_comresolucao_comment_form', $defaults); } break; } if (!is_user_logged_in()) { $defaults['comment_notes_before'] = '<script type="text/javascript"> var formdiv = document.getElementById("respond"); formdiv.style.display = "none"; </script>'; } } return $defaults; }