function delibera_nova_pauta_template_redirect_intercept() { global $wp_query, $wpdb; $tpl = $wp_query->get('tpl'); if ($tpl && $tpl === 'nova-pauta') { $options = delibera_get_config(); if (isset($options['criar_pauta_pelo_front_end']) && $options['criar_pauta_pelo_front_end'] == 'S') { global $deliberaThemes; include $deliberaThemes->themeFilePath('delibera_nova_pauta.php'); die; } } }
function delibera_install_roles() { // simple check to see if pautas capabilities are in place. We only set them if not. $Role = get_role('administrator'); if (!$Role->has_cap('publish_pautas')) { // Inicialização das configurações padrão $opt = delibera_get_config(); update_option('delibera-config', $opt); if (file_exists(__DIR__ . DIRECTORY_SEPARATOR . 'delibera_roles.php')) { $delibera_permissoes = array(); require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_roles.php'; delibera_roles_install($delibera_permissoes); } } }
function get_delibera_header() { global $wp; $opt = delibera_get_config(); $current_url = add_query_arg($wp->query_string, '', home_url($wp->request)); ?> <header class="clearfix"> <div class="alignleft"> <h1><?php echo $opt['cabecalho_arquivo']; ?> </h1> <p> <?php if (is_user_logged_in() && delibera_current_user_can_participate()) { global $current_user; get_currentuserinfo(); printf(__('Você está logado como %1$s. Caso deseje sair de sua conta, <a href="%2$s" title="Sair">faça o logout</a>.', 'delibera'), $current_user->display_name, wp_logout_url(home_url('/'))); } else { if (is_user_logged_in() && !delibera_current_user_can_participate()) { global $current_user; get_currentuserinfo(); printf(__('Você está logado como %1$s mas seu usuário não tem permissão para participar desta pauta. Caso deseje entrar com outra conta, <a href="%2$s" title="Sair">faça o logout</a>.', 'delibera'), $current_user->display_name, wp_logout_url(home_url('/'))); } else { printf(__('Para participar, você precisa <a href="%1$s" title="Faça o login">fazer o login</a> ou <a href="%2$s" title="Registre-se" class="register">registrar-se no site</a>.', 'delibera'), wp_login_url($current_url), site_url('wp-login.php?action=register', 'login') . "&lang="); } } ?> </p> </div> <div class="alignright"> <a class="btn" href="<?php echo get_page_link(get_page_by_slug(DELIBERA_ABOUT_PAGE)->ID); ?> "><?php _e('Saiba por que e como participar', 'delibera'); ?> </a> </div> </header> <?php }
/** * Função que trata a ação de edição em massa do prazo de discussão */ function delibera_custom_bulk_action() { $wp_list_table = _get_list_table('WP_Posts_List_Table'); $action = $wp_list_table->current_action(); switch ($action) { case 'set_prazodiscussao': check_admin_referer('bulk-posts'); $pautas_ids = $_REQUEST['post']; $novo_prazo_discussao = $_REQUEST['novo_prazo_discussao']; $inovo_prazo_discussao = DateTime::createFromFormat('d/m/Y', $novo_prazo_discussao)->getTimestamp(); $pautas_afetadas = 0; foreach ($pautas_ids as $pauta_id) { delibera_set_novo_prazo_discussao_relatoria($pauta_id, $inovo_prazo_discussao, delibera_get_config()); $pautas_afetadas++; } $sendback = admin_url("edit.php?post_type=pauta&pautas_afetadas={$pautas_afetadas}&novo_prazo={$novo_prazo_discussao}"); wp_redirect($sendback); exit; break; } }
function delibera_pautas_suportam_encaminhamento() { $options = delibera_get_config(); if ($options['pauta_suporta_encaminhamento'] == 'S') { return true; } else { return false; } }
<span style='float:<?php echo 'rtl' == $text_direction ? 'left' : 'right'; ?> ' id='comments_controls'><?php print_comments_number(); ?> (<a href="#" onclick="javascript:document.getElementById('comments_box').style.display = 'block'; return false;"><?php _e('Mostrar', 'delibera'); ?> </a> | <a href="#" onclick="javascript:document.getElementById('comments_box').style.display = 'none'; return false;"><?php _e('Esconder', 'delibera'); ?> </a>)</span> <div id="comments_box"> <?php $opts = delibera_get_config(); $validacao = delibera_comment_number($post->ID, 'validacao'); $discussao = delibera_comment_number($post->ID, 'discussao'); $encaminhamento = delibera_comment_number($post->ID, 'encaminhamento'); $voto = delibera_comment_number($post->ID, 'voto'); //$resolucao = delibera_comment_number($post->ID, 'resolucao'); TODO Número de resoluções, baseado no mínimo de votos, ou marcação especial ?> <p id="CommentTitle"><?php print_comments_number(); ?> <?php _e('para', 'delibera'); ?> "<?php the_title(); ?>
/** * Gera o HTML da página de configuração * do Delibera * * @return null */ function delibera_conf_page() { global $deliberaThemes; $mensagem = ''; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $opt = delibera_get_config(); if (!current_user_can('manage_options')) { die(__('Você não pode editar as configurações do delibera.', 'delibera')); } check_admin_referer('delibera-config'); foreach (array_keys(delibera_get_main_config()) as $option_name) { if (isset($_POST[$option_name])) { $opt[$option_name] = htmlspecialchars($_POST[$option_name]); } else { $opt[$option_name] = "N"; } } if (isset($_POST["delibera_reinstall"]) && $_POST['delibera_reinstall'] == 'S') { try { include_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_reinstall.php'; } catch (Exception $e) { wp_die($e->getMessage()); } } // atualiza os permalinks por conta da opção "criar_pauta_pelo_front_end" flush_rewrite_rules(); if (update_option('delibera-config', $opt) || isset($_POST["delibera_reinstall"]) && $_POST['delibera_reinstall'] == 'S') { $mensagem = __('Configurações salvas!', 'delibera'); } else { $mensagem = __('Erro ao salvar as configurações. Verifique os valores inseridos e tente novamente!', 'delibera'); } } $opt = delibera_get_config(); ?> <div class="wrap"> <h2>Configurações gerais</h2> <div class="postbox-container" style="width:80%;"> <div class="metabox-holder"> <div class="meta-box-sortables"> <?php if ($mensagem) { ?> <div id="message" class="updated"> <?php echo $mensagem; ?> </div> <?php } ?> <form action="<?php echo $_SERVER['REQUEST_URI']; ?> " method="post" id="delibera-config" > <?php if (function_exists('wp_nonce_field')) { wp_nonce_field('delibera-config'); } $rows = array(); if (is_multisite() && get_current_blog_id() == 1) { $rows[] = array("id" => "plan_restriction", "label" => __('Sistema de planos de pagamento ativo?', 'delibera'), "content" => '<input type="checkbox" name="plan_restriction" id="plan_restriction" value="S" ' . (htmlspecialchars_decode($opt['plan_restriction']) == "S" ? "checked='checked'" : "") . '/>'); } $rows[] = array("id" => "theme", "label" => __('Tema', 'delibera'), "content" => $deliberaThemes->getSelectBox($opt['theme']) . '<p class="description">' . __('É possível criar um tema para o Delibera criando uma pasta com o nome "delibera" dentro da pasta do tema atual do Wordpress. Esse tema aparecerá nesta listagem com o nome do tema atual.', 'delibera') . '</p>'); $rows[] = array("id" => "criar_pauta_pelo_front_end", "label" => __('Habilitar a criação de pautas pelo front-end?', 'delibera'), "content" => '<input type="checkbox" name="criar_pauta_pelo_front_end" id="criar_pauta_pelo_front_end" value="S" ' . (htmlspecialchars_decode($opt['criar_pauta_pelo_front_end']) == "S" ? "checked='checked'" : "") . '/>'); $rows[] = array("id" => "representante_define_prazos", "label" => __('Representante define prazos?', 'delibera'), "content" => '<input type="checkbox" name="representante_define_prazos" id="representante_define_prazos" value="S" ' . (htmlspecialchars_decode($opt['representante_define_prazos']) == "S" ? "checked='checked'" : "") . '/>'); $rows[] = array("id" => "pauta_suporta_encaminhamento", "label" => __('Pautas suportam sugestão de encaminhamento?', 'delibera'), "content" => '<input type="checkbox" name="pauta_suporta_encaminhamento" id="pauta_suporta_encaminhamento" value="S" ' . (htmlspecialchars_decode($opt['pauta_suporta_encaminhamento']) == "S" ? "checked='checked'" : "") . '/>'); $rows[] = array("id" => "validacao", "label" => __('É necessário validação das pautas?', 'delibera'), "content" => '<input type="checkbox" name="validacao" id="validacao" value="S" ' . (htmlspecialchars_decode($opt['validacao']) == 'S' ? 'checked="checked"' : '') . ' />'); $rows[] = array("id" => "minimo_validacao", "label" => __('Mínimo de validações para uma pauta:', 'delibera'), "content" => '<input type="text" name="minimo_validacao" id="minimo_validacao" value="' . htmlspecialchars_decode($opt['minimo_validacao']) . '"/>'); $rows[] = array("id" => "dias_validacao", "label" => __('Dias para validação da pauta:', 'delibera'), "content" => '<input type="text" name="dias_validacao" id="dias_validacao" value="' . htmlspecialchars_decode($opt['dias_validacao']) . '"/>'); $rows[] = array("id" => "dias_discussao", "label" => __('Dias para discussão da pauta:', 'delibera'), "content" => '<input type="text" name="dias_discussao" id="dias_discussao" value="' . htmlspecialchars_decode($opt['dias_discussao']) . '"/>'); $rows[] = array("id" => "dias_votacao", "label" => __('Dias para votação de encaminhamentos:', 'delibera'), "content" => '<input type="text" name="dias_votacao" id="dias_votacao" value="' . htmlspecialchars_decode($opt['dias_votacao']) . '"/>'); $rows[] = array("id" => "dias_novo_prazo", "label" => __('Dias para novo prazo:', 'delibera'), "content" => '<input type="text" name="dias_novo_prazo" id="dias_novo_prazo" value="' . htmlspecialchars_decode($opt['dias_novo_prazo']) . '"/><p class="description">' . __('Utilizado para as pautas em discussão, em relatoria e em votação para dar mais alguns dias quando uma condição mínima não é atingida até o fim do prazo. Por exemplo, quando acaba o prazo de uma pauta em discussão ou relatoria e ela não tem nenhuma proposta de encaminhamento. Utilizado também quando uma pauta não validada é reaberta.', 'delibera') . '</p>'); $rows[] = array("id" => "relatoria", "label" => __('Necessário relatoria da discussão das pautas?', 'delibera'), "content" => '<input type="checkbox" id="relatoria" name="relatoria" value="S" ' . (htmlspecialchars_decode($opt['relatoria']) == 'S' ? 'checked="checked"' : '') . ' />'); $rows[] = array("id" => "dias_relatoria", "label" => __('Prazo para relatoria:', 'delibera'), "content" => '<input type="text" name="dias_relatoria" id="dias_relatoria" value="' . htmlspecialchars_decode($opt['dias_relatoria']) . '"/>'); /*$rows[] = array( "id" => "eleicao_relator", "label" => __('Necessário eleição de relator?', 'delibera'), "content" => '<input type="checkbox" name="eleicao_relator" value="S" '.(htmlspecialchars_decode($opt['eleicao_relator']) == 'S' ? 'checked="checked"' : '').' />' ); $rows[] = array( "id" => "dias_votacao_relator", "label" => __('Prazo para eleição de relator:', 'delibera'), "content" => '<input type="text" name="dias_votacao_relator" id="dias_votacao_relator" value="'.htmlspecialchars_decode($opt['dias_votacao_relator']).'"/>' );*/ $rows[] = array("id" => "limitar_tamanho_comentario", "label" => __('Limitar o tamanho do comentário visível?', 'delibera'), "content" => '<input type="checkbox" name="limitar_tamanho_comentario" id="limitar_tamanho_comentario" value="S" ' . (htmlspecialchars_decode($opt['limitar_tamanho_comentario']) == 'S' ? 'checked="checked"' : '') . ' />'); $rows[] = array("id" => "numero_max_palavras_comentario", "label" => __('Número máximo de caracteres exibidos por comentário:', 'delibera'), "content" => '<input type="text" name="numero_max_palavras_comentario" id="numero_max_palavras_comentario" value="' . htmlspecialchars_decode($opt['numero_max_palavras_comentario']) . '"/>'); $rows[] = array("id" => "cabecalho_arquivo", "label" => __('Título da página de listagem de pautas e da página de uma pauta:', 'delibera'), "content" => '<input type="text" name="cabecalho_arquivo" id="cabecalho_arquivo" value="' . htmlspecialchars_decode($opt['cabecalho_arquivo']) . '"/>'); $rows[] = array("id" => "data_fixa_nova_pauta_externa", "label" => __('Data fixa para pauta externa:', 'delibera'), "content" => '<input type="text" name="data_fixa_nova_pauta_externa" id="data_fixa_nova_pauta_externa" value="' . htmlspecialchars_decode($opt['data_fixa_nova_pauta_externa']) . '"/>'); if (is_multisite()) { $rows[] = array("id" => "todos_usuarios_logados_podem_participar", "label" => __('Todos os usuários logados na rede podem participar?', 'delibera'), "content" => '<input type="checkbox" name="todos_usuarios_logados_podem_participar" id="todos_usuarios_logados_podem_participar" value="S" ' . (htmlspecialchars_decode($opt['todos_usuarios_logados_podem_participar']) == 'S' ? 'checked="checked"' : '') . ' /><p class="description">' . __('Se essa opção estiver habilitada qualquer usuário logado da rede de sites poderá participar discutindo e votando nas pautas. Caso contrário a participação fica restrita aos usuários deste site.', 'delibera') . '</p>'); } $table = delibera_form_table($rows); if (has_filter('delibera_config_form')) { $table = apply_filters('delibera_config_form', $table, $opt); } echo $table . '<div class="submit"><input type="submit" class="button-primary" name="submit" value="' . __('Save Changes') . '" /></form></div>'; ?> </form> </div> <!-- meta-box-sortables --> </div> <!-- meta-box-holder --> </div> <!-- postbox-container --> <?php do_action('delibera_config_page_extra'); ?> </div> <?php }
<?php wp_enqueue_script('creta-filters', $deliberaThemes->getThemeUrl() . '/js/creta-filters.js', array('jquery')); if (!isset($_GET['situacao_filtro'])) { $_GET['situacao_filtro'] = array(); } if (!isset($_GET['tema_filtro'])) { $_GET['tema_filtro'] = array(); } get_header(); $options = delibera_get_config(); $tema = $wp_query->get_queried_object(); $archive_tema = false; if (is_object($tema) && property_exists($tema, 'taxonomy') && $tema->taxonomy == "tema") { $archive_tema = true; } ?> <div class="conteudo" id="marco-civil"> <form> <div class="container"> <div class="row"> <div class="col-xs-12"> <?php get_template_part("menu", "horizontal"); ?> </div> </div> <?php if ($archive_tema) { ?> <div>
function delibera_mailer_readBox() { global $wpdb; $table_name = $wpdb->base_prefix . 'delibera_mailer_keys'; $config = delibera_get_config(); $dmr = new delibera_mailer_read(); $c = $dmr->imap_login($config['delibera_mailer_host'], $config['delibera_mailer_port'], $config['delibera_mailer_user'], $config['delibera_mailer_pass'], $config['delibera_mailer_inbox'], $config['delibera_mailer_ssl']); $stat = $dmr->pop3_stat($c); if (is_array($stat) && $stat['Unread'] > 0) { for ($i = 1; $i < $stat['Unread']; $i++) { $mail = $dmr->mail_mime_to_array($c, $i, true); $key = $mail[0]['parsed']['To']; $key = substr($key, 0, strpos($key, '@')); $from = str_replace(array('<', '>'), '', $mail[0]['parsed']['Return-Path']); $keys = $wpdb->get_results("SELECT * FROM {$table_name} where mail_key='{$key}' "); if (count($keys) > 0) { foreach ($keys as $value) { switch_to_blog($value->blog_id); $user = get_userdata($value->user_id); echo "<br/>"; restore_current_blog(); } } } } }
function get_delibera_header() { $opt = delibera_get_config(); ?> <div id="delibera-header"> <?php $h = is_post_type_archive('pauta') ? 'h1' : 'h2'; $delibera_header = '<' . $h . ' class="page-title"><span>'; $delibera_header .= __('Sistema de Discussão', 'delibera'); $delibera_header .= '</span></' . $h . '>'; echo $delibera_header; ?> <div class="delibera-apresentacao"> <p class="delibera-boasvindas"> <?php echo $opt['cabecalho_arquivo']; ?> </p> <p class="delibera-participacao"> <?php $about = get_page_by_slug(DELIBERA_ABOUT_PAGE); if (is_null($about)) { delibera_create_about_page(); $about = get_page_by_slug(DELIBERA_ABOUT_PAGE); } ?> <a href="<?php echo get_page_link($about->ID); ?> "><?php _e('Saiba por que e como participar', 'delibera'); ?> </a> </p> </div> <p class="delibera-login"> <?php if (is_user_logged_in()) { global $current_user; get_currentuserinfo(); printf(__('Você está logado como <a href="%1$s" title="Ver meu perfil" class="profile">%2$s</a>. Caso deseje sair de sua conta, <a href="%3$s" title="Sair">faça o logout</a>.', 'delibera'), get_author_posts_url($current_user->ID), $current_user->display_name, wp_logout_url(home_url('/'))); } else { printf(__('Para participar, você precisa <a href="%1$s" title="Faça o login">fazer o login</a> ou <a href="%2$s" title="Registre-se" class="register">registrar-se no site</a>.', 'delibera'), wp_login_url(get_permalink()), site_url('wp-login.php?action=register', 'login') . "&lang="); } ?> </p><!-- .delibera-login --> <?php if (!(is_home() || is_post_type_archive('pauta'))) { ?> <p class="delibera-pagina-discussoes"><a href="<?php echo get_post_type_archive_link('pauta'); ?> "><?php _e('Voltar à página de discussões', 'delibera'); ?> </a></p> <?php } ?> </div><!-- #delibera-header --> <?php }
/** * Retorna a URL para o diretório * principal do tema atual. * * @return string */ public function getThemeUrl() { $conf = delibera_get_config(); if (file_exists($conf['theme'])) { // TODO: melhorar a separacao entre tema distribuido junto com o plugin e tema do delibera dentro do tema do wp if (strpos($conf['theme'], '/wp-content/themes') === false) { // tema distribuido junto com o plugin return $this->baseUrl . basename($conf['theme']); } else { // tema dentro do tema atual do wp return $this->wpThemeUrl; } } else { return $this->defaultThemeUrl; } }
function delibera_notificar_replace_vars($subject, $user, $postReport) { global $post; if (!is_object($postReport)) { $postReport = get_post($postReport); } $post = $postReport; $opt = delibera_get_config(); $author = get_user_by('id', $post->post_author); $subject = str_ireplace("{first_name}", $user->user_firstname, $subject); $subject = str_ireplace("{last_name}", $user->user_lastname, $subject); $subject = str_ireplace("{display_name}", $user->display_name, $subject); $subject = str_ireplace("{post_title}", $post->post_title, $subject); $subject = str_ireplace("{post_url}", delibera_notificar_get_mensagem_link($post), $subject); $subject = str_ireplace("{report_deadline}", $opt['dias_relatoria'], $subject); $subject = str_ireplace("{reporter_election}", $opt['dias_votacao_relator'], $subject); $subject = str_ireplace("{validation_days}", $opt['dias_validacao'], $subject); $subject = str_ireplace("{discuss_days}", $opt['dias_validacao'], $subject); $subject = str_ireplace("{election_days}", $opt['dias_votacao'], $subject); $subject = str_ireplace("{post_author}", $author->user_firstname, $subject); $subject = str_ireplace("{post_content}", get_the_content(), $subject); $subject = str_ireplace("{post_excerpt}", get_the_excerpt(), $subject); $campos = delibera_get_user_campos_form_registro(); if ($campos > 0) { foreach ($campos as $campo) { $valor_replace = ""; if ($campo['novo'] == true) { switch ($campo['tipo_painel']) { case 'DropDown': $valores = array(); if (is_array($campo['dados']) && count($campo['dados']) > 0) { $valores = $campo['dados']; } elseif (is_string($campo['dados']) && function_exists($campo['dados'])) { $param = $campo['dados_param'] ? $campo['dados_param'] : array(); $ret = call_user_func($campo['dados'], $param); if (is_array($ret) && count($ret) > 0) { $valores = $ret; } } foreach ($valores as $valor => $desc) { if (strtolower(get_user_meta($user->ID, $campo['id'], true)) === strtolower($valor)) { $valor_replace = $desc; } } break; case 'CheckBox': $valor = true; if (is_array($campo['dados']) && count($campo['dados']) > 0) { $keys = array_keys($campo['dados']); $valor = $keys[0]; } elseif (is_string($campo['dados']) && function_exists($campo['dados'])) { $param = $campo['dados_param'] ? $campo['dados_param'] : array(); $ret = call_user_func($campo['dados'], $param); if (is_array($ret) && count($ret) > 0) { $keys = array_keys($ret); $valor = $keys[0] == 0 ? $ret[0] : $keys[0]; } elseif (is_string($ret)) { $valor = $ret; } } if (strtolower(get_user_meta($user->ID, $campo['id'], true)) === strtolower($valor)) { $valor_replace = __("Sim", 'delibera'); } else { $valor_replace = __("Não", 'delibera'); } break; case 'Texto': default: $valor_replace = get_user_meta($user->ID, $campo['id'], true); break; } } $subject = str_ireplace("{" . $campo['id'] . "}", $valor_replace, $subject); } } return $subject; }