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;
        }
    }
}
Example #2
0
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;
    }
}
Example #5
0
function delibera_pautas_suportam_encaminhamento()
{
    $options = delibera_get_config();
    if ($options['pauta_suporta_encaminhamento'] == 'S') {
        return true;
    } else {
        return false;
    }
}
Example #6
0
	<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();
    ?>
Example #7
0
/**
 * 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>
Example #9
0
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();
                }
            }
        }
    }
}
Example #10
0
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 
}
Example #11
0
 /**
  * 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;
}