From 19814de0b827eec97670b58546aa74dc087f017d Mon Sep 17 00:00:00 2001
From: Jacson
Date: Wed, 13 Jan 2016 14:29:53 -0200
Subject: [PATCH 001/435] Update README.md
---
README.md | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/README.md b/README.md
index 9a9acca..7480fec 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,16 @@ Como usar?
==========
Tudo o que você precisa para rodar este plugin é ter uma instalação de WordPress funcionando e saber como instalar um plugin. Para mais informações veja a [documentação](https://github.com/redelivre/delibera/wiki/Home).
+
+Acessando pautas:
+
+Post type = pauta
+
+Exemplo sem links customizados:
+http://www.exemplo.com/?post_type=pauta
+
+Exemplo com links customizados:
+http://www.exemplo.com/pauta/
Como Colaborar?
===============
From a190d3e6cda2d93ccb6636f8231970a39303fec3 Mon Sep 17 00:00:00 2001
From: Rosana Waszak
Date: Mon, 18 Jan 2016 14:27:57 -0200
Subject: [PATCH 002/435] Corrige largura e alinhamento dos elementos nos temas
Creta e Atenas, ajustes responsivos abaixo de 910px Issue #4
---
themes/atenas/delibera_style.css | 20 +++++++++++++++-----
themes/creta/delibera_style.css | 13 ++++++++++++-
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/themes/atenas/delibera_style.css b/themes/atenas/delibera_style.css
index f1b9869..a7a2121 100644
--- a/themes/atenas/delibera_style.css
+++ b/themes/atenas/delibera_style.css
@@ -203,7 +203,7 @@ p.delibera-participacao a{
padding: 10px 35px;
margin:0 10px 0 10px;
border-radius: 10px;
- width: 790px;
+ width: 100%;
}
.archive .form-filtro-ultimos-div {
@@ -292,6 +292,7 @@ body.post-type-archive-pauta .entry-meta {
line-height: 1.9em;
padding:0 10px;
margin-top: 40px;
+
}
.post-type-archive-pauta .hentry .entry-content {
@@ -433,7 +434,7 @@ span.delibera_seguir_text:hover {
.single-pauta .hentry {
float: left;
background: #fff;
- width: 940px;
+ width: 100%;
border-radius: 15px;
}
@@ -444,7 +445,8 @@ span.delibera_seguir_text:hover {
float: left;
line-height: 1.9em;
padding: 20px 30px;
- width: 940px;
+ width: 100%;
+ margin: 0px
}
.single-pauta .entry-utility {
@@ -456,7 +458,7 @@ span.delibera_seguir_text:hover {
padding-bottom:5px;
padding: 0 15px;
padding-top:1px;
- width:940px;
+ width:100%;
float:left;
border:none;
}
@@ -920,7 +922,7 @@ ul.tab-navigation li a:hover {
.post-type-archive-pauta #content, .single-pauta #content {
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
- width: 940px;
+ width: 100%;
margin: 0 auto;
}
@@ -1652,3 +1654,11 @@ h1.author {
font-weight: bold;
}
+
+
+/*
+ Responsivo
+ ================================================================================*/
+@media screen and (max-width: 910px) {
+ .site {padding: 20px;}
+}
diff --git a/themes/creta/delibera_style.css b/themes/creta/delibera_style.css
index 40ae6ec..aecec9b 100644
--- a/themes/creta/delibera_style.css
+++ b/themes/creta/delibera_style.css
@@ -28,6 +28,7 @@ div, h1, h2, h3, h4, h5, p { margin-bottom:9px; }
#delibera .filters li {
padding:3px 0;
+ list-style-type: none;
}
#delibera .filters ul.dates li {
@@ -603,4 +604,14 @@ div.error {
div.error p {
margin: 0.5em 0;
padding: 2px;
-}
\ No newline at end of file
+}
+
+/*
+ Responsivo
+ ================================================================================*/
+@media screen and (max-width: 910px) {
+ .site-content {padding: 20px;}
+ .filters.widget-area {width: 100%;}
+ #delibera .site-content {width: 100%;}
+}
+
From b85dbc5eb2ee6a67805a3cf3b7b2a0c5831a010e Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Mon, 18 Jan 2016 21:20:47 -0200
Subject: [PATCH 003/435] =?UTF-8?q?Remove=20espa=C3=A7o=20em=20branco?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera.php | 560 +++++++++++++++++++++++++--------------------------
1 file changed, 280 insertions(+), 280 deletions(-)
diff --git a/delibera.php b/delibera.php
index df88342..ec1079c 100644
--- a/delibera.php
+++ b/delibera.php
@@ -61,14 +61,14 @@
function delibera_init()
{
add_action('admin_menu', 'delibera_config_menu');
-
+
delibera_Add_custom_Post();
-
+
delibera_Add_custom_taxonomy();
-
+
global $delibera_comments_padrao;
$delibera_comments_padrao = false;
-
+
}
add_action('init','delibera_init');
@@ -76,7 +76,7 @@ function delibera_init()
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_setup.php';
/**
- *
+ *
* Revemos acentos do texto
* @param string $texto
* @return string
@@ -100,10 +100,10 @@ function delibera_slug_under($label)
function is_pauta($post = false)
{
return get_post_type($post) == 'pauta' ? true : false;
-}
+}
/**
- *
+ *
* Insere term no banco e atualizar línguas do qtranslate
* @param string $label
* @param string $tax Taxonomy
@@ -149,12 +149,12 @@ function delibera_Add_custom_Post()
'view_item' => __('Visualizar Pauta','delibera'),
'search_items' => __('Procurar Pautas','delibera'),
'not_found' => __('Nenhuma Pauta localizada','delibera'),
- 'not_found_in_trash' => __('Nenhuma Pauta localizada na lixeira','delibera'),
+ 'not_found_in_trash' => __('Nenhuma Pauta localizada na lixeira','delibera'),
'parent_item_colon' => '',
'menu_name' => __('Pautas','delibera')
-
+
);
-
+
$args = array
(
'label' => __('Pautas','delibera'),
@@ -166,8 +166,8 @@ function delibera_Add_custom_Post()
'show_ui' => true, // public
'show_in_menu' => true,
'menu_position' => 5,
- // 'menu_icon' => '',
- 'capability_type' => array('pauta','pautas'),
+ // 'menu_icon' => '',
+ 'capability_type' => array('pauta','pautas'),
'map_meta_cap' => true,
'hierarchical' => false,
'supports' => array('title', 'editor', 'author', 'excerpt', 'trackbacks', 'revisions', 'comments'),
@@ -179,9 +179,9 @@ function delibera_Add_custom_Post()
'query_var' => true,
'can_export' => true//, // veja abaixo
//'show_in_nav_menus' => '', // public
- //'_builtin' => '', // Core
+ //'_builtin' => '', // Core
//'_edit_link' => '' // Core
-
+
);
register_post_type("pauta", $args);
@@ -191,7 +191,7 @@ function delibera_pauta_redirect_filter($location, $post_id = null) {
if (strpos($_SERVER['HTTP_REFERER'], "post_type=pauta"))
return admin_url("edit.php")."?post_type=pauta&updated=1";
- else
+ else
return $location;
}
add_filter('redirect_post_location', 'delibera_pauta_redirect_filter', '99');
@@ -213,10 +213,10 @@ function delibera_Add_custom_taxonomy()
'new_item_name' => __('Novo Tema','delibera'),
'view_item' => __('Visualizar Tema','delibera'),
'not_found' => __('Nenhum Tema localizado','delibera'),
- 'not_found_in_trash' => __('Nenhum Tema localizado na lixeira','delibera'),
+ 'not_found_in_trash' => __('Nenhum Tema localizado na lixeira','delibera'),
'menu_name' => __('Temas','delibera')
);
-
+
$args = array
(
'label' => __('Temas','delibera'),
@@ -228,15 +228,15 @@ function delibera_Add_custom_taxonomy()
// 'show_ui' => '', // Public
'hierarchical' => true,
//'update_count_callback' => '', //Contar objetos associados
- 'rewrite' => true,
+ 'rewrite' => true,
//'query_var' => '',
- //'_builtin' => '' // Core
+ //'_builtin' => '' // Core
);
-
+
register_taxonomy('tema', array('pauta'), $args);
-
-
-
+
+
+
$labels = array
(
'name' => __('Situações','delibera'),
@@ -252,10 +252,10 @@ function delibera_Add_custom_taxonomy()
'new_item_name' => __('Nova Situação','delibera'),
'view_item' => __('Visualizar Situação','delibera'),
'not_found' => __('Nenhuma Situação localizado','delibera'),
- 'not_found_in_trash' => __('Nenhuma Situação localizada na lixeira','delibera'),
+ 'not_found_in_trash' => __('Nenhuma Situação localizada na lixeira','delibera'),
'menu_name' => __('Situações','delibera')
);
-
+
$args = array
(
'label' => __('Situações','delibera'),
@@ -265,11 +265,11 @@ function delibera_Add_custom_taxonomy()
//'show_ui' => true, // Public
'hierarchical' => false//,
//'update_count_callback' => '', //Contar objetos associados
- //'rewrite' => '', //
+ //'rewrite' => '', //
//'query_var' => '',
- //'_builtin' => '' // Core
+ //'_builtin' => '' // Core
);
-
+
register_taxonomy('situacao', array('pauta'), $args);
// Se precisar trocar os nomes dos terms denovo
@@ -283,9 +283,9 @@ function delibera_Add_custom_taxonomy()
wp_update_term($term->term_id, 'situacao', array('name' => 'Proposta de Pauta'));
$term = get_term_by('slug', 'naovalidada', 'situacao');
wp_update_term($term->term_id, 'situacao', array('name' => 'Pauta Recusada'));*/
-
+
$opt = delibera_get_config();
-
+
if(taxonomy_exists('situacao'))
{
if(term_exists('comresolucao', 'situacao', null) == false)
@@ -332,7 +332,7 @@ function delibera_Add_custom_taxonomy()
);
}
}
-
+
if(term_exists('relatoria', 'situacao', null) == false)
{
delibera_insert_term('Relatoria', 'situacao', array(
@@ -390,12 +390,12 @@ function delibera_Add_custom_taxonomy()
}
}
}
-
+
if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'delibera_taxs.php'))
{
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_taxs.php';
}
-
+
}
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_themes.php';
@@ -414,7 +414,7 @@ function delibera_get_comment_type($comment)
/**
* Retorna o nome "amigável" do tipo de um comentário.
- *
+ *
* @param object $comment
* @param string $tipo
* @param bool $echo
@@ -435,7 +435,7 @@ function delibera_get_comment_type_label($comment, $tipo = false, $echo = true)
return __('Proposta', 'delibera');
break;
case 'voto':
- if($echo) _e('Voto', 'delibera');
+ if($echo) _e('Voto', 'delibera');
return __('Voto', 'delibera');
break;
case 'resolucao':
@@ -454,18 +454,18 @@ function delibera_get_comment_type_label($comment, $tipo = false, $echo = true)
* Retorna uma string com a quantidade de comentários
* associados a pauta do tipo correspondente a situação
* atual.
- *
+ *
* @param int $postId
* @return string (exemplo: "5 votos")
*/
function delibera_get_comments_count_by_type($postId)
{
$situacao = delibera_get_situacao($postId);
-
+
switch ($situacao->slug) {
case 'validacao':
$count = count(delibera_get_comments_validacoes($postId));
-
+
if ($count == 0) {
$label = __('Nenhuma validação', 'delibera');
} else if ($count == 1) {
@@ -473,11 +473,11 @@ function delibera_get_comments_count_by_type($postId)
} else {
$label = sprintf(__('%d validações', 'delibera'), $count);
}
-
+
return $label;
case 'discussao':
$count = count(delibera_get_comments_discussoes($postId));
-
+
if ($count == 0) {
$label = __('Nenhum comentário', 'delibera');
} else if ($count == 1) {
@@ -485,11 +485,11 @@ function delibera_get_comments_count_by_type($postId)
} else {
$label = sprintf(__('%d comentários', 'delibera'), $count);
}
-
+
return $label;
case 'emvotacao':
$count = count(delibera_get_comments_votacoes($postId));
-
+
if ($count == 0) {
$label = __('Nenhum voto', 'delibera');
} else if ($count == 1) {
@@ -497,7 +497,7 @@ function delibera_get_comments_count_by_type($postId)
} else {
$label = sprintf(__('%d votos', 'delibera'), $count);
}
-
+
return $label;
}
}
@@ -515,7 +515,7 @@ function delibera_pauta_custom_meta()
function delibera_forca_fim_prazo($postID)
{
$situacao = delibera_get_situacao($postID);
-
+
switch($situacao->slug)
{
case 'discussao':
@@ -546,11 +546,11 @@ function delibera_admin_list_options($actions, $post)
$url = 'admin.php?action=delibera_forca_fim_prazo_action&post='.$post->ID;
$url = wp_nonce_url($url, 'delibera_forca_fim_prazo_action'.$post->ID);
$actions['forcar_prazo'] = ''.__('Forçar fim de prazo','delibera').'';
-
+
$url = 'admin.php?action=delibera_nao_validado_action&post='.$post->ID;
$url = wp_nonce_url($url, 'delibera_nao_validado_action'.$post->ID);
$actions['nao_validado'] = ''.__('Invalidar','delibera').'';
-
+
}
if(delibera_get_situacao($post->ID)->slug == 'naovalidada' && current_user_can('delibera_reabrir_pauta'))
{
@@ -558,54 +558,54 @@ function delibera_admin_list_options($actions, $post)
$url = wp_nonce_url($url, 'delibera_reabrir_pauta_action'.$post->ID);
$actions['reabrir'] = ''.__('Reabrir','delibera').'';
}
-
+
}
-
+
//print_r(_get_cron_array());
return $actions;
}
add_filter('post_row_actions','delibera_admin_list_options', 10, 2);
-function delibera_forca_fim_prazo_action()
+function delibera_forca_fim_prazo_action()
{
- if(current_user_can('forcar_prazo') && check_admin_referer('delibera_forca_fim_prazo_action'.$_REQUEST['post'], '_wpnonce'))
+ if(current_user_can('forcar_prazo') && check_admin_referer('delibera_forca_fim_prazo_action'.$_REQUEST['post'], '_wpnonce'))
{
delibera_forca_fim_prazo($_REQUEST['post']);
-
+
wp_redirect( admin_url( 'edit.php?post_type=pauta') );
}
- else
+ else
{
wp_die(__('Você não tem permissão para forçar um prazo','delibera'), __('Sem permissão','delibera'));
}
}
add_action('admin_action_delibera_forca_fim_prazo_action', 'delibera_forca_fim_prazo_action');
-function delibera_nao_validado_action()
+function delibera_nao_validado_action()
{
- if(current_user_can('forcar_prazo') && check_admin_referer('delibera_nao_validado_action'.$_REQUEST['post'], '_wpnonce'))
+ if(current_user_can('forcar_prazo') && check_admin_referer('delibera_nao_validado_action'.$_REQUEST['post'], '_wpnonce'))
{
delibera_marcar_naovalidada($_REQUEST['post']);
-
+
wp_redirect( admin_url( 'edit.php?post_type=pauta') );
}
- else
+ else
{
wp_die(__('Você não tem permissão para invalidar uma pauta','delibera'), __('Sem permissão','delibera'));
}
}
add_action('admin_action_delibera_nao_validado_action', 'delibera_nao_validado_action');
-function delibera_reabrir_pauta_action()
+function delibera_reabrir_pauta_action()
{
- if(current_user_can('delibera_reabrir_pauta') && check_admin_referer('delibera_reabrir_pauta_action'.$_REQUEST['post'], '_wpnonce'))
+ if(current_user_can('delibera_reabrir_pauta') && check_admin_referer('delibera_reabrir_pauta_action'.$_REQUEST['post'], '_wpnonce'))
{
delibera_reabrir_pauta($_REQUEST['post']);
-
+
wp_redirect( admin_url( 'edit.php?post_type=pauta') );
}
- else
+ else
{
wp_die(__('Você não tem permissão para re-abrir discussão sobre uma pauta','delibera'), __('Sem permissão','delibera'));
}
@@ -615,7 +615,7 @@ function delibera_reabrir_pauta_action()
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_cron.php';
/**
- *
+ *
* Retorna a situação do post
* @param int $postID
* @return mixed validacao, discussao, elegerelator, relatoria, emvotacao, comresolucao, naovalidada ou false
@@ -628,33 +628,33 @@ function delibera_get_situacao($postID)
{
$ret = array_pop($situacao);
}
-
+
if(!is_object($ret)) // if term situacao does not exists
{
$ret = new stdClass();
$ret->slug = '';
$ret->name = '';
}
-
+
if(has_filter('delibera_get_situacao'))
{
return apply_filters('delibera_get_situacao', $ret);
}
-
+
return $ret;
}
/**
* Retorna o label do botão com a situação da
* pauta.
- *
+ *
* @param int $postId
* @return string
*/
function delibera_get_situation_button($postId)
{
$situacao = get_the_terms($postId, 'situacao');
-
+
if (is_array($situacao) && !empty($situacao)) {
$situacao = array_pop($situacao);
}
@@ -682,14 +682,14 @@ function delibera_pauta_meta()
$custom = get_post_custom($post->ID);
$options_plugin_delibera = delibera_get_config();
-
+
if(!is_array($custom)) $custom = array();
$validacoes = array_key_exists("numero_validacoes", $custom) ? $custom["numero_validacoes"][0] : 0;
-
+
$min_validacoes = array_key_exists("min_validacoes", $custom) ? $custom["min_validacoes"][0] : htmlentities($options_plugin_delibera['minimo_validacao']);
-
+
$situacao = delibera_get_situacao($post->ID);
-
+
$dias_validacao = intval(htmlentities($options_plugin_delibera['dias_validacao']));
$dias_discussao = intval(htmlentities($options_plugin_delibera['dias_discussao']));
$dias_relatoria = intval(htmlentities($options_plugin_delibera['dias_relatoria']));
@@ -709,13 +709,13 @@ function delibera_pauta_meta()
{
$dias_discussao += $dias_validacao;
}
-
+
$dias_votacao = $dias_discussao + intval(htmlentities($options_plugin_delibera['dias_votacao']));
-
+
if($options_plugin_delibera['relatoria'] == "S") // Adiciona prazo de relatoria se for necessário
{
$dias_votacao += $dias_relatoria;
- $dias_relatoria += $dias_discussao;
+ $dias_relatoria += $dias_discussao;
if($options_plugin_delibera['eleicao_relator'] == "S") // Adiciona prazo de vatacao relator se for necessário
{
$dias_votacao += $dias_votacao_relator;
@@ -723,21 +723,21 @@ function delibera_pauta_meta()
$dias_votacao_relator += $dias_discussao;
}
}
-
+
$now = strtotime(date('Y/m/d')." 11:59:59");
-
+
$prazo_validacao_sugerido = strtotime("+$dias_validacao days", $now);
$prazo_discussao_sugerido = strtotime("+$dias_discussao days", $now);
$prazo_eleicao_relator_sugerido = strtotime("+$dias_votacao_relator days", $now);
$prazo_relatoria_sugerido = strtotime("+$dias_relatoria days", $now);
$prazo_votacao_sugerido = strtotime("+$dias_votacao days", $now);
-
+
$prazo_validacao = date('d/m/Y', $prazo_validacao_sugerido);
$prazo_discussao = date('d/m/Y', $prazo_discussao_sugerido);
$prazo_eleicao_relator = date('d/m/Y', $prazo_eleicao_relator_sugerido);
- $prazo_relatoria = date('d/m/Y', $prazo_relatoria_sugerido);
+ $prazo_relatoria = date('d/m/Y', $prazo_relatoria_sugerido);
$prazo_votacao = date('d/m/Y', $prazo_votacao_sugerido);
-
+
if (
$options_plugin_delibera['representante_define_prazos'] == "N" &&
!($post->post_status == 'draft' ||
@@ -749,7 +749,7 @@ function delibera_pauta_meta()
} else {
$disable_edicao = '';
}
-
+
if(!($post->post_status == 'draft' ||
$post->post_status == 'auto-draft' ||
$post->post_status == 'pending'))
@@ -757,14 +757,14 @@ function delibera_pauta_meta()
$prazo_validacao = array_key_exists("prazo_validacao", $custom) ? $custom["prazo_validacao"][0] : $prazo_validacao;
$prazo_discussao = array_key_exists("prazo_discussao", $custom) ? $custom["prazo_discussao"][0] : $prazo_discussao;
$prazo_eleicao_relator = array_key_exists("prazo_eleicao_relator", $custom) ? $custom["prazo_eleicao_relator"][0] : $prazo_eleicao_relator;
- $prazo_relatoria = array_key_exists("prazo_relatoria", $custom) ? $custom["prazo_relatoria"][0] : $prazo_relatoria;
+ $prazo_relatoria = array_key_exists("prazo_relatoria", $custom) ? $custom["prazo_relatoria"][0] : $prazo_relatoria;
$prazo_votacao = array_key_exists("prazo_votacao", $custom) ? $custom["prazo_votacao"][0] : $prazo_votacao;
}
if($options_plugin_delibera['validacao'] == "S")
{
?>
-
+
id="min_validacoes" name="min_validacoes" class="min_validacoes widefat" value=""/>
@@ -773,13 +773,13 @@ function delibera_pauta_meta()
id="prazo_validacao" name="prazo_validacao" class="prazo_validacao widefat hasdatepicker" value=""/>
id="prazo_discussao" name="prazo_discussao" class="prazo_discussao widefat hasdatepicker" value=""/>
- slug == 'validacao')
+ if($situacao->slug == 'validacao')
{
delibera_marcar_naovalidada($args['post_ID']);
}
@@ -963,7 +963,7 @@ function delibera_tratar_prazo_validacao($args)
function delibera_tratar_prazo_discussao($args)
{
$situacao = delibera_get_situacao($args['post_ID']);
- if($situacao->slug == 'discussao')
+ if($situacao->slug == 'discussao')
{
$post_id = $args['post_ID'];
if(count(delibera_get_comments_encaminhamentos($post_id)) > 0)
@@ -977,7 +977,7 @@ function delibera_tratar_prazo_discussao($args)
{
wp_set_object_terms($post_id, 'relatoria', 'situacao', false); //Mudar situação para Votação
}
- else
+ else
{
wp_set_object_terms($post_id, 'emvotacao', 'situacao', false); //Mudar situação para Votação
}
@@ -996,7 +996,7 @@ function delibera_tratar_prazo_discussao($args)
function delibera_tratar_prazo_relatoria($args)
{
$situacao = delibera_get_situacao($args['post_ID']);
- if($situacao->slug == 'relatoria')
+ if($situacao->slug == 'relatoria')
{
$post_id = $args['post_ID'];
if(count(delibera_get_comments_encaminhamentos($post_id)) > 0)
@@ -1018,7 +1018,7 @@ function delibera_tratar_prazo_relatoria($args)
function delibera_tratar_prazo_votacao($args)
{
$situacao = delibera_get_situacao($args['post_ID']);
- if($situacao->slug == 'emvotacao')
+ if($situacao->slug == 'emvotacao')
{
delibera_computa_votos($args['post_ID']);
}
@@ -1037,15 +1037,15 @@ function delibera_reabrir_pauta($postID)
{
wp_set_object_terms($postID, 'validacao', 'situacao', false);
//delibera_notificar_situacao($postID);
-
+
delibera_novo_prazo($postID);
}
/**
- *
+ *
* Save o post da pauta
* @param $post_id int
- * @param $post
+ * @param $post
*/
function delibera_save_post($post_id, $post)
{
@@ -1055,10 +1055,10 @@ function delibera_save_post($post_id, $post)
}
$opt = delibera_get_config();
$autosave = ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE );
-
+
if(
( // Se tem validação, tem que ter o prazo
- $opt['validacao'] == 'N' ||
+ $opt['validacao'] == 'N' ||
(array_key_exists('prazo_validacao', $_POST) && array_key_exists('min_validacoes', $_POST) )
) &&
( // Se tem relatoria, tem que ter o prazo
@@ -1068,7 +1068,7 @@ function delibera_save_post($post_id, $post)
( // Se tem relatoria, e é preciso eleger o relator, tem que ter o prazo para eleição
$opt['relatoria'] == 'N' ||
(
- $opt['eleicao_relator'] == 'N' ||
+ $opt['eleicao_relator'] == 'N' ||
array_key_exists('prazo_eleicao_relator', $_POST)
)
) &&
@@ -1077,7 +1077,7 @@ function delibera_save_post($post_id, $post)
)
{
$events_meta = array();
-
+
$validacoes = get_post_meta($post_id, 'numero_validacoes', true);
if($validacoes == "" || $validacoes === false || is_null($validacoes))
{
@@ -1094,7 +1094,7 @@ function delibera_save_post($post_id, $post)
$events_meta['delibera_numero_seguir'] = 0;
$events_meta['delibera_seguiram'] = array();
}
-
+
$events_meta['prazo_validacao'] = $opt['validacao'] == 'S' ? $_POST['prazo_validacao'] : date('d/m/Y');
$events_meta['prazo_discussao'] = $_POST['prazo_discussao'];
$events_meta['prazo_relatoria'] = $opt['relatoria'] == 'S' ? $_POST['prazo_relatoria'] : date('d/m/Y');
@@ -1141,7 +1141,7 @@ function delibera_save_post($post_id, $post)
{
update_post_meta($post->ID, $key, $value); // Atualiza
}
- else
+ else
{
add_post_meta($post->ID, $key, $value, true); // Senão, cria
}
@@ -1155,13 +1155,13 @@ function delibera_save_post($post_id, $post)
{
delibera_forca_fim_prazo($post->ID);
}
-
+
if($post->post_status == 'publish' && !$autosave)
{
delibera_del_cron($post->ID);
delibera_publish_pauta($post->ID, $post, true);
}
-
+
}
}
@@ -1184,13 +1184,13 @@ function delibera_publish_pauta($postID, $post, $alterar = false)
{
return $postID;
}
-
- if (
+
+ if (
$alterar || (
- ($post->post_status == 'publish' || $_POST['publish'] == 'Publicar') &&
+ ($post->post_status == 'publish' || $_POST['publish'] == 'Publicar') &&
(
(
- array_key_exists('prev_status', $_POST) &&
+ array_key_exists('prev_status', $_POST) &&
(
$_POST['prev_status'] == 'draft' ||
$_POST['prev_status'] == 'pending'
@@ -1212,15 +1212,15 @@ function delibera_publish_pauta($postID, $post, $alterar = false)
$prazo_eleicao_relator = get_post_meta($postID, 'prazo_eleicao_relator', true);
$prazo_votacao = get_post_meta($postID, 'prazo_votacao', true);
$opt = delibera_get_config();
-
+
if(!array_key_exists('validacao', $opt) || $opt['validacao'] == 'S' )
{
if(!$alterar)
{
-
+
wp_set_object_terms($post->ID, 'validacao', 'situacao', false);
}
-
+
delibera_criar_agenda(
$post->ID,
$prazo_validacao,
@@ -1230,7 +1230,7 @@ function delibera_publish_pauta($postID, $post, $alterar = false)
$opt['relatoria'] == 'S' && $opt['eleicao_relator'] == 'S' ? $prazo_eleicao_relator : false
);
}
- else
+ else
{
if(!$alterar)
{
@@ -1245,12 +1245,12 @@ function delibera_publish_pauta($postID, $post, $alterar = false)
$opt['relatoria'] == 'S' && $opt['eleicao_relator'] == 'S' ? $prazo_eleicao_relator : false
);
}
-
+
if($alterar)
{
//delibera_notificar_situacao($post);
}
- else
+ else
{
delibera_notificar_nova_pauta($post);
}
@@ -1272,61 +1272,61 @@ function delibera_check_post_data($data, $postarr)
$valida = delibera_tratar_data($value);
if(!$autosave && ($valida === false || $valida < 1))
{
- $erros[] = __("É necessário definir corretamente o prazo de validação", "delibera");
- }
+ $erros[] = __("É necessário definir corretamente o prazo de validação", "delibera");
+ }
}
$value = $_POST['prazo_discussao'];
$valida = delibera_tratar_data($value);
if(!$autosave && ($valida === false || $valida < 1))
{
- $erros[] = __("É necessário definir corretamente o prazo de discussão", "delibera");
+ $erros[] = __("É necessário definir corretamente o prazo de discussão", "delibera");
}
-
+
if($opt['relatoria'] == 'S')
{
$value = $_POST['prazo_relatoria'];
$valida = delibera_tratar_data($value);
if(!$autosave && ($valida === false || $valida < 1))
{
- $erros[] = __("É necessário definir corretamente o prazo para relatoria", "delibera");
+ $erros[] = __("É necessário definir corretamente o prazo para relatoria", "delibera");
}
-
+
if($opt['eleicao_relator'] == 'S')
{
$value = $_POST['prazo__leicao_relator'];
$valida = delibera_tratar_data($value);
if(!$autosave && ($valida === false || $valida < 1))
{
- $erros[] = __("É necessário definir corretamente o prazo para eleição de um relator", "delibera");
+ $erros[] = __("É necessário definir corretamente o prazo para eleição de um relator", "delibera");
}
}
-
+
}
-
+
$value = $_POST['prazo_votacao'];
$valida = delibera_tratar_data($value);
if(!$autosave && ($valida === false || $valida < 1))
{
- $erros[] = __("É necessário definir corretamente o prazo para votação", "delibera");
+ $erros[] = __("É necessário definir corretamente o prazo para votação", "delibera");
}
-
+
if($opt['validacao'] == 'S')
{
$value = (int)$_POST['min_validacoes'];
$valida = is_int($value) && $value > 0;
if(!$autosave && ($valida === false))
{
- $erros[] = __("É necessário definir corretamente o número mínimo de validações", "delibera");
- }
+ $erros[] = __("É necessário definir corretamente o número mínimo de validações", "delibera");
+ }
}
-
+
if(
count($erros) == 0
)
{
return $data;
}
- else
+ else
{
//wp_die(__('Erro ao salvar dados da pauta, faltando informações de prazos e validações mínimas!','delibera'));
wp_die(implode("
", $erros));
@@ -1339,7 +1339,7 @@ function delibera_check_post_data($data, $postarr)
function delibera_get_comments_link() {
global $post;
-
+
return get_permalink($post->ID) . '#delibera-comments';
}
@@ -1355,23 +1355,23 @@ function delibera_get_comment_link($comment_pass = false)
{
return str_replace('#comment', '#delibera-comment', get_comments_link());
}
-
+
return str_replace('#comment', '#delibera-comment', get_comment_link($comment));
}
function delibera_comment_post_redirect( $location ) {
global $post, $comment_id;
-
- return ( $post->post_type == 'pauta' ) ? preg_replace("/#comment-([\d]+)/", "#delibera-comment-" . $comment_id, $location) : $location;
+
+ return ( $post->post_type == 'pauta' ) ? preg_replace("/#comment-([\d]+)/", "#delibera-comment-" . $comment_id, $location) : $location;
}
add_filter( 'comment_post_redirect', 'delibera_comment_post_redirect' );
/**
- *
+ *
* Comentário em listagem (Visualização)
* @param string $commentText
*/
-function delibera_comment_text($commentText)
+function delibera_comment_text($commentText)
{
global $comment, $post, $delibera_comments_padrao;
if(get_post_type($post) == "pauta" && $delibera_comments_padrao !== true)
@@ -1382,7 +1382,7 @@ function delibera_comment_text($commentText)
$total = 0;
$nvotos = 0;
switch ($tipo)
- {
+ {
case 'validacao':
{
$validacao = get_comment_meta($comment->comment_ID, "delibera_validacao", true);
@@ -1448,7 +1448,7 @@ function delibera_comment_text($commentText)
}break;
case 'voto':
{
- $commentText = '
+ $commentText = '
@@ -1461,7 +1461,7 @@ function delibera_comment_text($commentText)
}
return $commentText;
}
- else
+ else
{
return '';
}
@@ -1481,7 +1481,7 @@ function delibera_comment_text_filtro($text, $comment_id = false, $show = true)
}
$string_temp = wordwrap($text, $tamanho, '##!##');
$cut = strpos($string_temp, '##!##');
-
+
$text = delibera_show_hide_button($comment_id, $text, $cut, $show);
}
return $text;
@@ -1502,7 +1502,7 @@ function delibera_show_hide_button($comment_id, $text, $cut, $show)
$part = '';
-
+
$comment_text = $part.$showhide.$text."".$showhide_button;
}
else
@@ -1511,13 +1511,13 @@ function delibera_show_hide_button($comment_id, $text, $cut, $show)
$comment_text = truncate($text, $cut,'…').'
'.$link;
}
-
+
return $comment_text;
}
/**
- *
- *
+ *
+ *
* @param string $text String to truncate.
* @param integer $length Length of returned string, including ellipsis.
* @param string $ending Ending to be appended to the trimmed string.
@@ -1617,7 +1617,7 @@ function truncate($text, $length = 100, $ending = '...', $exact = false, $consid
}
/**
- *
+ *
* Comentário na tela de Edição na administração
* @param WP_comment $comment
*/
@@ -1627,7 +1627,7 @@ function delibera_edit_comment($comment)
{
$tipo = get_comment_meta($comment->comment_ID, "delibera_comment_tipo", true);
switch ($tipo)
- {
+ {
case 'validacao':
{
$validacao = get_comment_meta($comment->comment_ID, "delibera_validacao", true);
@@ -1681,10 +1681,10 @@ function delibera_can_comment($postID = '')
$post = get_post($postID);
$postID = $post->ID;
}
-
+
$situacoes_validas = array('validacao' => true, 'discussao' => true, 'emvotacao' => true, 'elegerelator' => true);
$situacao = delibera_get_situacao($postID);
-
+
if(array_key_exists($situacao->slug, $situacoes_validas))
{
return delibera_current_user_can_participate();
@@ -1716,10 +1716,10 @@ function delibera_comments_is_open($postID = null)
$post = get_post($postID);
$postID = $post->ID;
}
-
+
$situacoes_validas = array('validacao' => true, 'discussao' => true, 'emvotacao' => true, 'elegerelator' => true,'relatoria'=>true);
$situacao = delibera_get_situacao($postID);
-
+
if(array_key_exists($situacao->slug, $situacoes_validas))
{
return $situacoes_validas[$situacao->slug];
@@ -1749,14 +1749,14 @@ function delibera_comment_form_action($postID)
add_action('comment_form', 'delibera_comment_form_action');
/**
- *
+ *
* Salvar custom fields do comentário
* @param int $comment_id
*/
-function delibera_save_comment_metas($comment_id)
+function delibera_save_comment_metas($comment_id)
{
$tipo = get_comment_meta($comment_id, "delibera_comment_tipo", true);
-
+
if($tipo == false || $tipo == "")
{
if(array_key_exists("delibera_comment_tipo", $_POST))
@@ -1764,20 +1764,20 @@ function delibera_save_comment_metas($comment_id)
$tipo = $_POST['delibera_comment_tipo'];
}
}
-
+
delibera_curtir_comment_meta($comment_id);
-
+
delibera_discordar_comment_meta($comment_id);
-
+
$comment = get_comment($comment_id);
-
+
switch($tipo)
{
case "validacao":
{
add_comment_meta($comment_id, 'delibera_validacao', $_POST['delibera_validacao'], true);
add_comment_meta($comment_id, 'delibera_comment_tipo', 'validacao', true);
-
+
if($_POST['delibera_validacao'] == "S")
{
$validacoes = get_post_meta($comment->comment_post_ID, 'numero_validacoes', true);
@@ -1789,7 +1789,7 @@ function delibera_save_comment_metas($comment_id)
$nvalidacoes++;
update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_validacoes', $nvalidacoes);
}break;
-
+
case 'discussao':
case 'encaminhamento':
{
@@ -1805,7 +1805,7 @@ function delibera_save_comment_metas($comment_id)
add_comment_meta($comment_id, 'delibera-baseouseem', $_POST['delibera-baseouseem'], true);
}
}
- else
+ else
{
add_comment_meta($comment_id, 'delibera_comment_tipo', 'discussao', true);
$ndiscussoes = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_discussoes', true);
@@ -1819,11 +1819,11 @@ function delibera_save_comment_metas($comment_id)
}break;
case 'voto':
{
-
+
add_comment_meta($comment_id, 'delibera_comment_tipo', 'voto', true);
-
+
$votos = array();
-
+
foreach ($_POST as $postkey => $postvar)
{
if( substr($postkey, 0, strlen('delibera_voto')) == 'delibera_voto' )
@@ -1831,23 +1831,23 @@ function delibera_save_comment_metas($comment_id)
$votos[] = $postvar;
}
}
-
+
add_comment_meta($comment_id, 'delibera_votos', $votos, true);
-
+
$comment = get_comment($comment_id);
delibera_valida_votos($comment->comment_post_ID);
-
+
$nvotos = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', true);
$nvotos++;
update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', $nvotos);
-
+
if(has_action('delibera_novo_voto'))
{
do_action('delibera_novo_voto', $comment_id, $comment, $votos);
}
-
+
} break;
-
+
default:
{
$npadroes = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_padroes', true);
@@ -1878,12 +1878,12 @@ function delibera_pre_edit_comment($dados)
{
$comment_id = $comment->comment_ID;
}
- else
+ else
{
wp_die(__('Você não pode Editar esse tipo de comentário','delibera'));
}
}
-
+
$tipo = get_comment_meta($comment_id, "delibera_comment_tipo", true);
if(array_search($tipo, delibera_get_comments_types()) !== false)
{
@@ -1903,9 +1903,9 @@ function delibera_config_menu()
{
/*if (function_exists('add_menu_page'))
add_menu_page( __('Delibera','delibera'), __('Delibera plugin','delibera'), 'manage_options', 'delibera-config', 'delibera_conf_page');*/
-
+
$base_page = 'delibera-config';
-
+
if (function_exists('add_menu_page'))
{
add_object_page( __('Delibera','delibera'), __('Delibera','delibera'), 'manage_options', $base_page, array(), WP_PLUGIN_URL."/delibera/images/delibera_icon.png");
@@ -1924,20 +1924,20 @@ function delibera_form_table($rows) {
$content = '';
return $content;
@@ -1948,7 +1948,7 @@ function delibera_form_table($rows) {
function delibera_scripts()
{
global $post;
-
+
if (is_pauta()) {
wp_enqueue_script('jquery-expander', WP_CONTENT_URL.'/plugins/delibera/js/jquery.expander.js', array('jquery'));
wp_enqueue_script('delibera', WP_CONTENT_URL.'/plugins/delibera/js/scripts.js', array('jquery-expander'));
@@ -1956,29 +1956,29 @@ function delibera_scripts()
wp_enqueue_script('delibera-concordar', WP_CONTENT_URL . '/plugins/delibera/js/delibera_concordar.js', array('delibera'));
$situation = delibera_get_situacao($post->ID);
-
+
$data = array(
'post_id' => $post->ID,
'ajax_url' => admin_url('admin-ajax.php'),
);
-
+
if (is_object($situation)) {
$data['situation'] = $situation->slug;
}
-
+
wp_localize_script('delibera', 'delibera', $data);
}
}
add_action( 'wp_print_scripts', 'delibera_scripts' );
/**
- *
+ *
* Se tiver estilos customizados, ta aí a dica...
*
function delibera_print_styles()
{
-
-}
+
+}
add_action('wp_print_styles', 'delibera_print_styles');*/
function delibera_print_styles()
@@ -1986,9 +1986,9 @@ function delibera_print_styles()
if (is_pauta()) {
wp_enqueue_style('jquery-ui-custom', plugins_url() . '/delibera/css/jquery-ui-1.9.2.custom.min.css');
}
-
+
wp_enqueue_style('delibera_style', WP_CONTENT_URL.'/plugins/delibera/css/delibera.css');
-}
+}
add_action('admin_print_styles', 'delibera_print_styles');
function delibera_admin_scripts()
@@ -1998,7 +1998,7 @@ function delibera_admin_scripts()
wp_enqueue_script('jquery-ui-datepicker-ptbr', WP_CONTENT_URL.'/plugins/delibera/js/jquery.ui.datepicker-pt-BR.js', array('jquery-ui-datepicker'));
wp_enqueue_script('delibera-admin',WP_CONTENT_URL.'/plugins/delibera/js/admin_scripts.js', array( 'jquery-ui-datepicker-ptbr'));
}
-
+
if(isset($_REQUEST['page']) && $_REQUEST['page'] == 'delibera-notifications')
{
wp_enqueue_script('delibera-admin-notifica',WP_CONTENT_URL.'/plugins/delibera/js/admin_notifica_scripts.js', array('jquery'));
@@ -2011,7 +2011,7 @@ function delibera_admin_scripts()
// Funções de conteudo
/**
- *
+ *
* Retorna post do tipo pauta em uma determinada situacao (validacao, discussao, emvotacao ou comresolucao), usando um filtro
* @param array $filtro
* @param string $situacao
@@ -2021,7 +2021,7 @@ function delibera_get_pautas_em($filtro = array(), $situacao = false)
$filtro['post_type'] = "pauta";
$filtro['post_status'] = "publish";
$tax_query = array();
-
+
if(array_key_exists("tax_query", $filtro) && $situacao !== false)
{
$tax_query = $filtro['tax_query'];
@@ -2040,7 +2040,7 @@ function delibera_get_pautas_em($filtro = array(), $situacao = false)
}
/**
- *
+ *
* Retorna pautas em Validação
* @param array $filtro
*/
@@ -2050,7 +2050,7 @@ function delibera_get_propostas($filtro = array())
}
/**
- *
+ *
* Retorna pautas em Discussão
* @param array $filtro
*/
@@ -2074,7 +2074,7 @@ function delibera_des_filtro_qtranslate($where)
add_filter('posts_where_request', 'delibera_des_filtro_qtranslate', 11);
/**
- *
+ *
* Retorna pautas em Votação
* @param array $filtro
*/
@@ -2084,7 +2084,7 @@ function delibera_get_emvotacao($filtro = array())
}
/**
- *
+ *
* Retorna pautas já resolvidas
* @param array $filtro
*/
@@ -2105,17 +2105,17 @@ function delibera_get_comments_padrao($args = array(), $file = '/comments.php' )
/**
* Retorna comentários do Delibera de acordo com o tipo.
- *
+ *
* @param int $post_id
* @param string|array $tipo um tipo ou um array de tipos
- * @return array
+ * @return array
*/
function delibera_get_comments($post_id, $tipo, $args = array())
{
if (is_string($tipo)) {
$tipo = array($tipo);
}
-
+
$args = array_merge(array('post_id' => $post_id), $args);
$comments = get_comments($args);
$ret = array();
@@ -2136,7 +2136,7 @@ function delibera_wp_list_comments($args = array(), $comments = null)
{
global $post;
global $delibera_comments_padrao;
-
+
if(get_post_type($post) == "pauta")
{
$situacao = delibera_get_situacao($post->ID);
@@ -2164,30 +2164,30 @@ function delibera_wp_list_comments($args = array(), $comments = null)
//$args['callback'] = 'delibera_comments_list';
?>
-
- slug == 'comresolucao')
{
$args['walker'] = new Delibera_Walker_Comment();
wp_list_comments($args, $comments);
-
+
$encaminhamentos = delibera_get_comments_encaminhamentos($post->ID);
$discussoes = delibera_get_comments_discussoes($post->ID);
?>
-
+
-
+
comment_ID, 'delibera_comment_tipo', true);
@@ -2300,7 +2300,7 @@ function delibera_comments_filter_portipo($comments, $tipos)
}
/**
- *
+ *
* Filtro que retorna Comentário filtrados pela a situação da pauta
* @param array $comments
* @param int $postID
@@ -2309,11 +2309,11 @@ function delibera_comments_filter_portipo($comments, $tipos)
function delibera_get_comments_filter($comments)
{
global $delibera_comments_padrao;
-
+
if($delibera_comments_padrao === true) return $comments;
-
+
$ret = array();
-
+
if(count($comments) > 0)
{
if(get_post_type($comments[0]->comment_post_ID) == "pauta")
@@ -2339,7 +2339,7 @@ function delibera_get_comments_filter($comments)
}break;
case 'comresolucao':
{
- $ret = delibera_comments_filter_portipo($comments, array('resolucao'));
+ $ret = delibera_comments_filter_portipo($comments, array('resolucao'));
}break;
}
return $ret;
@@ -2353,10 +2353,10 @@ function delibera_get_comments_filter($comments)
/**
* Retorna um inteiro indicando quantos dias faltam para o fim do prazo
* de uma pauta.
- *
+ *
* Se o parâmetro $data for passado por referência o prazo para o fim da
* pauta é associado a ele.
- *
+ *
* @param int $postID
* @param string $data
* @return int
@@ -2367,11 +2367,11 @@ function delibera_get_prazo($postID, &$data = null)
$prazo = "";
$idata = strtotime(date('Y/m/d').' 23:59:59');
$diff = -1;
-
+
if(is_object($situacao))
{
switch ($situacao->slug)
- {
+ {
case 'validacao':
{
$prazo = get_post_meta($postID, 'prazo_validacao', true);
@@ -2393,17 +2393,17 @@ function delibera_get_prazo($postID, &$data = null)
$prazo = get_post_meta($postID, 'prazo_votacao', true);
} break;
}
-
+
$iprazo = strtotime(substr($prazo, 6).substr($prazo, 2, 4).substr($prazo, 0, 2).' 23:59:59');
-
+
$diff = $iprazo - $idata;
}
$dias = -1;
-
+
if($diff >= 0) $dias = ceil($diff/(60*60*24));
-
+
if(!is_null($data)) $data = $prazo;
-
+
return $dias;
}
@@ -2420,7 +2420,7 @@ function delibera_edit_columns($columns)
function delibera_post_custom_column($column)
{
global $post;
-
+
switch ( $column )
{
case 'tema':
@@ -2442,7 +2442,7 @@ function delibera_post_custom_column($column)
}
break;
}
-
+
}
add_action('manage_posts_custom_column', 'delibera_post_custom_column');
@@ -2481,11 +2481,11 @@ function delibera_comment_number_filtro($count, $postID)
return $count;
}
$situacao = delibera_get_situacao($postID);
-
+
if (!$situacao) {
return;
}
-
+
switch($situacao->slug)
{
case 'validacao':
@@ -2537,7 +2537,7 @@ function delibera_restrict_listings()
function delibera_convert_situacao_id_to_taxonomy_term_in_query(&$query)
{
- global $pagenow;
+ global $pagenow;
$qv = &$query->query_vars;
if (isset($qv['post_type']) &&
$qv['post_type'] == 'pauta' &&
@@ -2565,10 +2565,10 @@ function delibera_convert_situacao_id_to_taxonomy_term_in_query(&$query)
require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_relatorio.php';
/**
- *
+ *
* Pega os ultimos conteúdos
- * @param string $tipo (option) 'pauta' ou 'comments', padrão 'pauta'
- * @param array $args (option) query padrão do post ou do comments
+ * @param string $tipo (option) 'pauta' ou 'comments', padrão 'pauta'
+ * @param array $args (option) query padrão do post ou do comments
* @param int $count (option) padrão 5
*/
function delibera_ultimas($tipo = 'pauta', $args = array(), $count = 5)
@@ -2598,7 +2598,7 @@ function delibera_timeline($post_id = false, $tipo_data = false)
function delibera_the_posts($posts)
{
if (empty($posts)) return $posts;
-
+
$timeline_found = false; // use this flag to see if styles and scripts need to be enqueued
$relatoria = false;
foreach ($posts as $post)
@@ -2616,7 +2616,7 @@ function delibera_the_posts($posts)
}
}
}
-
+
if ($timeline_found)
{
// enqueue here
@@ -2624,7 +2624,7 @@ function delibera_the_posts($posts)
wp_enqueue_script( 'delibera_timeline_js', WP_CONTENT_URL.'/plugins/delibera/timeline/js/delibera_timeline.js', array( 'jquery' ));
wp_enqueue_script( 'jquery-ui-draggable');
}
-
+
return $posts;
}
@@ -2639,7 +2639,7 @@ function delibera_the_posts($posts)
* verifica se o número mínimo de validações foi
* atingido e se sim muda a situação da pauta de
* "emvotacao" para "discussao".
- *
+ *
* @param unknown $post
* @return null
*/
@@ -2647,7 +2647,7 @@ function delibera_valida_validacoes($post)
{
$validacoes = get_post_meta($post, 'numero_validacoes', true);
$min_validacoes = get_post_meta($post, 'min_validacoes', true);
-
+
if($validacoes >= $min_validacoes)
{
wp_set_object_terms($post, 'discussao', 'situacao', false); //Mudar situação para Discussão
@@ -2665,7 +2665,7 @@ function delibera_valida_validacoes($post)
}
}
-/* Faz os testes de permissões para garantir que nenhum engraçadinho
+/* Faz os testes de permissões para garantir que nenhum engraçadinho
* está injetando variáveis maliciosas.
* TODO: Incluir todas as variaveis a serem verificadas aqui
*/
@@ -2674,13 +2674,13 @@ 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!!");
+ wp_die("Nananina não! Você não tem que ter permissão pra votar.","Tocooo!!");
}
}
add_action( 'wp_blacklist_check', 'delibera_valida_permissoes' );
/**
- *
+ *
* Verifica se o número de votos é igual ao número de representantes para deflagar fim da votação
* @param integer $postID
*/
@@ -2696,11 +2696,11 @@ function delibera_valida_votos($postID)
$users_count += $result[0]->n;
}
}
-
+
$votos = delibera_get_comments_votacoes($postID);
-
+
$votos_count = count($votos);
-
+
if($votos_count >= $users_count)
{
delibera_computa_votos($postID, $votos);
@@ -2708,7 +2708,7 @@ function delibera_valida_votos($postID)
}
/**
- *
+ *
* Faz a apuração dos votos e toma as devidas ações:
* Empate: Mais prazo;
* Vencedor: Marco com resolucao e marca o encaminhamento.
@@ -2727,7 +2727,7 @@ function delibera_computa_votos($postID, $votos = null)
{
$encaminhamentos_votos[$encaminhamento->comment_ID] = 0;
}
-
+
foreach ($votos as $voto_comment)
{
$voto = get_comment_meta($voto_comment->comment_ID, 'delibera_votos', true);
@@ -2738,7 +2738,7 @@ function delibera_computa_votos($postID, $votos = null)
}
$maisvotado = array(-1, -1);
$iguais = array();
-
+
foreach ($encaminhamentos_votos as $encaminhamentos_voto_key => $encaminhamentos_voto_valor)
{
if($encaminhamentos_voto_valor > $maisvotado[1])
@@ -2754,13 +2754,13 @@ function delibera_computa_votos($postID, $votos = null)
delete_comment_meta($encaminhamentos_voto_key, 'delibera_comment_numero_votos');
add_comment_meta($encaminhamentos_voto_key, 'delibera_comment_numero_votos', $encaminhamentos_voto_valor, true);
}
-
+
// nao finaliza a votacao caso haja um empate, exceto quando o administrador clicar no botão "Forçar fim do prazo"
if(count($iguais) > 0 && !(isset($_REQUEST['action']) && $_REQUEST['action'] == 'delibera_forca_fim_prazo_action')) // Empato
{
delibera_novo_prazo($postID);
}
- else
+ else
{
wp_set_object_terms($postID, 'comresolucao', 'situacao', false);
update_comment_meta($maisvotado[0], 'delibera_comment_tipo', 'resolucao');
@@ -2780,7 +2780,7 @@ function delibera_emvotacao($post)
{
if($opt['eleicao_relator'] == 'S')
{
-
+
}
}
}
@@ -2802,13 +2802,13 @@ function delibera_novo_prazo($postID)
$nova_datarel = date("d/m/Y", $inova_datarel);
$inova_datar = strtotime("+{$opts['dias_relatoria']} days",$inova_datarel);
$nova_datar = date("d/m/Y", $inova_datar);
-
+
$events_meta['prazo_validacao'] = $opts['validacao'] == 'S' ? $nova_data : date('d/m/Y');
$events_meta['prazo_discussao'] = $nova_datad;
$events_meta['prazo_relatoria'] = $opts['relatoria'] == 'S' ? $nova_datar : date('d/m/Y');
$events_meta['prazo_eleicao_relator'] = $opts['relatoria'] == 'S' && $opts['eleicao_relator'] == 'S' ? $nova_datarel : date('d/m/Y');
$events_meta['prazo_votacao'] = $nova_datavt;
-
+
foreach ($events_meta as $key => $value) // Buscar dados
{
if(get_post_meta($postID, $key, true)) // Se já existe
@@ -2868,9 +2868,9 @@ function delibera_set_novo_prazo_discussao_relatoria($postID, $inova_data, $opts
}
function delibera_footer() {
-
+
echo ''.__('Sua contribuição foi registrada no sistema','delibera').'
';
-
+
}
add_action('wp_footer', 'delibera_footer');
@@ -2879,12 +2879,12 @@ function delibera_loaded() {
// load plugin translations
load_plugin_textdomain('delibera', false, dirname(plugin_basename( __FILE__ )).'/lang');
}
-add_action('plugins_loaded','delibera_loaded');
+add_action('plugins_loaded','delibera_loaded');
function delibera_get_plan_config()
{
$plan = 'N';
-
+
if( is_multisite() && get_current_blog_id() != 1 )
{
switch_to_blog(1);
@@ -2897,7 +2897,7 @@ function delibera_get_plan_config()
$opt = delibera_get_config();
$plan = $opt['plan_restriction'];
}
-
+
return $plan;
}
@@ -2923,12 +2923,12 @@ function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) {
* Retorna a lista de idiomas disponível. Se o plugin
* qtrans estiver habilitado retorna os idiomas dele, se
* não usa o idioma definido no wp-config.php
- *
+ *
* @return array
*/
function delibera_get_available_languages() {
$langs = array(get_locale());
-
+
if(function_exists('qtrans_enableLanguage'))
{
global $q_config;
@@ -2941,21 +2941,21 @@ function delibera_get_available_languages() {
/**
* Verifica se o usuário atual pode participar das discussão
* de uma pauta votando ou discutindo.
- *
+ *
* Por padrão retorna true apenas de o usuário tiver a capability 'votar',
* mas se a opção "Todos os usuários da rede podem participar" estiver habilitada
* retorna true para todos os usuários logados.
- *
+ *
* Quando estiver na single da pauta, retorna false sempre que ela
* estiver com o prazo encerrado.
- *
+ *
* @return bool
*/
function delibera_current_user_can_participate($permissao = 'votar') {
global $post;
-
+
$options = delibera_get_config();
-
+
if (is_singular('pauta') && delibera_get_prazo($post->ID) == -1) {
return false;
} else if (is_multisite() && $options['todos_usuarios_logados_podem_participar'] == 'S') {
@@ -2972,7 +2972,7 @@ function delibera_nova_pauta_create_action(){
$title = $_POST['nova-pauta-titulo'];
$content = $_POST['nova-pauta-conteudo'];
$excerpt = $_POST['nova-pauta-resumo'];
-
+
$pauta = array();
$pauta['post_title'] = $title;
$pauta['post_excerpt'] = $excerpt;
@@ -3002,19 +3002,19 @@ function delibera_nova_pauta_create_action(){
$pauta['post_content'] = $content;
}
- // para que a situação da pauta seja criada corretamente,
+ // para que a situação da pauta seja criada corretamente,
// é necessário criar a pauta como rascunho para depois publicar no final desta função
$pauta['post_status'] = 'draft';
-
+
$pauta_id = wp_insert_post($pauta);
-
+
if(is_int($pauta_id) && $pauta_id > 0){
-
- /* Os valores adicionados ao array $_POST são baseados no if da função delibera_save_post(),
+
+ /* Os valores adicionados ao array $_POST são baseados no if da função delibera_save_post(),
* comentado abaixo
- if(
+ if(
( // Se tem validação, tem que ter o prazo
- $opt['validacao'] == 'N' ||
+ $opt['validacao'] == 'N' ||
(array_key_exists('prazo_validacao', $_POST) && array_key_exists('min_validacoes', $_POST) )
) &&
( // Se tem relatoria, tem que ter o prazo
@@ -3024,7 +3024,7 @@ function delibera_nova_pauta_create_action(){
( // Se tem relatoria, e é preciso eleger o relator, tem que ter o prazo para eleição
$opt['relatoria'] == 'N' ||
(
- $opt['eleicao_relator'] == 'N' ||
+ $opt['eleicao_relator'] == 'N' ||
array_key_exists('prazo_eleicao_relator', $_POST)
)
) &&
@@ -3032,12 +3032,12 @@ function delibera_nova_pauta_create_action(){
array_key_exists('prazo_votacao', $_POST)
)
*/
-
+
if($opt['validacao'] == 'S'){
$_POST['prazo_validacao'] = date('d/m/Y', strtotime ('+'.$opt['dias_validacao'].' DAYS'));
$_POST['min_validacoes'] = $opt['minimo_validacao'];
}
-
+
if($opt['relatoria'] == 'S'){
$_POST['prazo_relatoria'] = date('d/m/Y', strtotime ('+'.$opt['dias_relatoria'].' DAYS'));
if($opt['eleicao_relator'] == 'S'){
@@ -3057,29 +3057,29 @@ function delibera_nova_pauta_create_action(){
// isto é necessário por causa do if da função delibera_publish_pauta()
$_POST['publish'] = 'Publicar';
$_POST['prev_status'] = 'draft';
-
+
// verifica se todos os temas enviados por post são válidos
$temas = get_terms('tema', array('hide_empty' => true));
$temas_ids = array();
-
+
if(isset($_POST['tema']) && is_array($_POST['tema']))
foreach($temas as $tema)
if(in_array ($tema->term_id, $_POST['tema']))
$temas_ids[] = $tema->term_id;
-
+
// coloca os termos de temas no post
wp_set_post_terms($pauta_id, $temas_ids, 'tema');
-
- // publica o post
+
+ // publica o post
wp_publish_post($pauta_id);
-
- // isto serve para criar o slug corretamente,
+
+ // isto serve para criar o slug corretamente,
// já que no wp_insert_post não cria o slug quando o status é draft e o wp_publish_post tb não cria o slug
unset($pauta['post_status']);
$pauta['ID'] = $pauta_id;
$pauta['post_name'] = sanitize_post_field('post_name', $title, $pauta_id, 'save');
wp_update_post($pauta);
-
+
// redireciona para a pauta criada
$permalink = get_post_permalink($pauta_id);
wp_safe_redirect($permalink);
@@ -3095,13 +3095,13 @@ function delibera_nova_pauta_create_action(){
* onde o Delibera foi instalado para a página de pautas após o
* login se a opção "Todos os usuários logados na rede podem participar?"
* estiver habilitada.
- *
+ *
* Se não fizermos esse redicionamento estes usuários serão redirecionados
* para suas páginas de perfil fora do site onde o Delibera está instalado.
*
add_filter('login_redirect', function($redirect_to, $request, $user) {
$options = delibera_get_config();
-
+
if ($options['todos_usuarios_logados_podem_participar'] == 'S' && !is_user_member_of_blog()) {
return site_url('pauta');
} else {
From dc5713bf03022cdf28ec0f5825618fdef8bd2c62 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Mon, 18 Jan 2016 21:26:01 -0200
Subject: [PATCH 004/435] =?UTF-8?q?Move=20fun=C3=A7=C3=B5es=20para=20checa?=
=?UTF-8?q?r=20permiss=C3=A3o?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera.php | 47 ---------------------------------------------
delibera_roles.php | 48 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 48 insertions(+), 47 deletions(-)
diff --git a/delibera.php b/delibera.php
index ec1079c..c57bd1e 100644
--- a/delibera.php
+++ b/delibera.php
@@ -1674,27 +1674,6 @@ function delibera_edit_comment($comment)
add_filter('add_meta_boxes_comment', 'delibera_edit_comment');
-function delibera_can_comment($postID = '')
-{
- if(is_null($postID))
- {
- $post = get_post($postID);
- $postID = $post->ID;
- }
-
- $situacoes_validas = array('validacao' => true, 'discussao' => true, 'emvotacao' => true, 'elegerelator' => true);
- $situacao = delibera_get_situacao($postID);
-
- if(array_key_exists($situacao->slug, $situacoes_validas))
- {
- return delibera_current_user_can_participate();
- }
- elseif($situacao->slug == 'relatoria')
- {
- return current_user_can('relatoria');
- }
- return false;
-}
function delibera_comments_open($open, $post_id)
{
@@ -2938,32 +2917,6 @@ function delibera_get_available_languages() {
return $langs;
}
-/**
- * Verifica se o usuário atual pode participar das discussão
- * de uma pauta votando ou discutindo.
- *
- * Por padrão retorna true apenas de o usuário tiver a capability 'votar',
- * mas se a opção "Todos os usuários da rede podem participar" estiver habilitada
- * retorna true para todos os usuários logados.
- *
- * Quando estiver na single da pauta, retorna false sempre que ela
- * estiver com o prazo encerrado.
- *
- * @return bool
- */
-function delibera_current_user_can_participate($permissao = 'votar') {
- global $post;
-
- $options = delibera_get_config();
-
- if (is_singular('pauta') && delibera_get_prazo($post->ID) == -1) {
- return false;
- } else if (is_multisite() && $options['todos_usuarios_logados_podem_participar'] == 'S') {
- return is_user_logged_in();
- } else {
- return current_user_can($permissao);
- }
-}
add_action('init', 'delibera_nova_pauta_create_action');
function delibera_nova_pauta_create_action(){
diff --git a/delibera_roles.php b/delibera_roles.php
index e5bf040..c70bdab 100644
--- a/delibera_roles.php
+++ b/delibera_roles.php
@@ -75,4 +75,52 @@
)),*/
);
+/**
+ * Verifica se o usuário atual pode participar das discussão
+ * de uma pauta votando ou discutindo.
+ *
+ * Por padrão retorna true apenas de o usuário tiver a capability 'votar',
+ * mas se a opção "Todos os usuários da rede podem participar" estiver habilitada
+ * retorna true para todos os usuários logados.
+ *
+ * Quando estiver na single da pauta, retorna false sempre que ela
+ * estiver com o prazo encerrado.
+ *
+ * @return bool
+ */
+function delibera_current_user_can_participate($permissao = 'votar') {
+ global $post;
+
+ $options = delibera_get_config();
+
+ if (is_singular('pauta') && delibera_get_prazo($post->ID) == -1) {
+ return false;
+ } else if (is_multisite() && $options['todos_usuarios_logados_podem_participar'] == 'S') {
+ return is_user_logged_in();
+ } else {
+ return current_user_can($permissao);
+ }
+}
+
+function delibera_can_comment($postID = '')
+{
+ if(is_null($postID))
+ {
+ $post = get_post($postID);
+ $postID = $post->ID;
+ }
+
+ $situacoes_validas = array('validacao' => true, 'discussao' => true, 'emvotacao' => true, 'elegerelator' => true);
+ $situacao = delibera_get_situacao($postID);
+
+ if(array_key_exists($situacao->slug, $situacoes_validas))
+ {
+ return delibera_current_user_can_participate();
+ }
+ elseif($situacao->slug == 'relatoria')
+ {
+ return current_user_can('relatoria');
+ }
+ return false;
+}
?>
\ No newline at end of file
From 83e859fa15223c755b838dd6038d8a971a7abbfa Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Mon, 18 Jan 2016 22:03:01 -0200
Subject: [PATCH 005/435] Move funcoes executadas no inicio do carregamento do
plugin
---
delibera.php | 390 +---------------------------------------------
delibera_conf.php | 2 +
delibera_init.php | 384 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 391 insertions(+), 385 deletions(-)
create mode 100644 delibera_init.php
diff --git a/delibera.php b/delibera.php
index c57bd1e..274ab1f 100644
--- a/delibera.php
+++ b/delibera.php
@@ -58,23 +58,11 @@
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_admin_functions.php';
-function delibera_init()
-{
- add_action('admin_menu', 'delibera_config_menu');
-
- delibera_Add_custom_Post();
-
- delibera_Add_custom_taxonomy();
-
- global $delibera_comments_padrao;
- $delibera_comments_padrao = false;
-
-}
-add_action('init','delibera_init');
-
// setup plugin
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_setup.php';
+require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_init.php';
+
/**
*
* Revemos acentos do texto
@@ -136,57 +124,6 @@ function delibera_insert_term($label, $tax, $term, $idiomas = array())
}
}
-function delibera_Add_custom_Post()
-{
- $labels = array
- (
- 'name' => __('Pautas','delibera'),
- 'singular_name' => __('Pauta','delibera'),
- 'add_new' => __('Adicionar Nova','delibera'),
- 'add_new_item' => __('Adicionar nova pauta ','delibera'),
- 'edit_item' => __('Editar Pauta','delibera'),
- 'new_item' => __('Nova Pauta','delibera'),
- 'view_item' => __('Visualizar Pauta','delibera'),
- 'search_items' => __('Procurar Pautas','delibera'),
- 'not_found' => __('Nenhuma Pauta localizada','delibera'),
- 'not_found_in_trash' => __('Nenhuma Pauta localizada na lixeira','delibera'),
- 'parent_item_colon' => '',
- 'menu_name' => __('Pautas','delibera')
-
- );
-
- $args = array
- (
- 'label' => __('Pautas','delibera'),
- 'labels' => $labels,
- 'description' => __('Pauta de discussão','delibera'),
- 'public' => true,
- 'publicly_queryable' => true, // public
- //'exclude_from_search' => '', // public
- 'show_ui' => true, // public
- 'show_in_menu' => true,
- 'menu_position' => 5,
- // 'menu_icon' => '',
- 'capability_type' => array('pauta','pautas'),
- 'map_meta_cap' => true,
- 'hierarchical' => false,
- 'supports' => array('title', 'editor', 'author', 'excerpt', 'trackbacks', 'revisions', 'comments'),
- 'register_meta_box_cb' => 'delibera_pauta_custom_meta', // função para chamar na edição
- //'taxonomies' => array('post_tag'), // Taxionomias já existentes relaciondas, vamos criar e registrar na sequência
- 'permalink_epmask' => 'EP_PERMALINK ',
- 'has_archive' => true, // Opção de arquivamento por slug
- 'rewrite' => true,
- 'query_var' => true,
- 'can_export' => true//, // veja abaixo
- //'show_in_nav_menus' => '', // public
- //'_builtin' => '', // Core
- //'_edit_link' => '' // Core
-
- );
-
- register_post_type("pauta", $args);
-}
-
function delibera_pauta_redirect_filter($location, $post_id = null) {
if (strpos($_SERVER['HTTP_REFERER'], "post_type=pauta"))
@@ -196,208 +133,6 @@ function delibera_pauta_redirect_filter($location, $post_id = null) {
}
add_filter('redirect_post_location', 'delibera_pauta_redirect_filter', '99');
-function delibera_Add_custom_taxonomy()
-{
- $labels = array
- (
- 'name' => __('Temas', 'delibera'),
- 'singular_name' => __('Tema', 'delibera'),
- 'search_items' => __('Procurar por Temas','delibera'),
- 'all_items' => __('Todos os Temas','delibera'),
- 'parent_item' => __( 'Tema Pai','delibera'),
- 'parent_item_colon' => __( 'Tema Pai:','delibera'),
- 'edit_item' => __('Editar Tema','delibera'),
- 'update_item' => __('Atualizar um Tema','delibera'),
- 'add_new_item' => __('Adicionar Novo Tema','delibera'),
- 'add_new' => __('Adicionar Novo','delibera'),
- 'new_item_name' => __('Novo Tema','delibera'),
- 'view_item' => __('Visualizar Tema','delibera'),
- 'not_found' => __('Nenhum Tema localizado','delibera'),
- 'not_found_in_trash' => __('Nenhum Tema localizado na lixeira','delibera'),
- 'menu_name' => __('Temas','delibera')
- );
-
- $args = array
- (
- 'label' => __('Temas','delibera'),
- 'labels' => $labels,
- 'public' => true,
- 'capabilities' => array('assign_terms' => 'edit_pautas',
- 'edit_terms' => 'edit_pautas'),
- //'show_in_nav_menus' => true, // Public
- // 'show_ui' => '', // Public
- 'hierarchical' => true,
- //'update_count_callback' => '', //Contar objetos associados
- 'rewrite' => true,
- //'query_var' => '',
- //'_builtin' => '' // Core
- );
-
- register_taxonomy('tema', array('pauta'), $args);
-
-
-
- $labels = array
- (
- 'name' => __('Situações','delibera'),
- 'singular_name' => __('Situação', 'delibera'),
- 'search_items' => __('Procurar por Situação','delibera'),
- 'all_items' => __('Todas as Situações','delibera'),
- 'parent_item' => null,
- 'parent_item_colon' => null,
- 'edit_item' => __('Editar Situação','delibera'),
- 'update_item' => __('Atualizar uma Situação','delibera'),
- 'add_new_item' => __('Adicionar Nova Situação','delibera'),
- 'add_new' => __('Adicionar Nova', 'delibera'),
- 'new_item_name' => __('Nova Situação','delibera'),
- 'view_item' => __('Visualizar Situação','delibera'),
- 'not_found' => __('Nenhuma Situação localizado','delibera'),
- 'not_found_in_trash' => __('Nenhuma Situação localizada na lixeira','delibera'),
- 'menu_name' => __('Situações','delibera')
- );
-
- $args = array
- (
- 'label' => __('Situações','delibera'),
- 'labels' => $labels,
- 'public' => false,
- 'show_in_nav_menus' => true, // Public
- //'show_ui' => true, // Public
- 'hierarchical' => false//,
- //'update_count_callback' => '', //Contar objetos associados
- //'rewrite' => '', //
- //'query_var' => '',
- //'_builtin' => '' // Core
- );
-
- register_taxonomy('situacao', array('pauta'), $args);
-
- // Se precisar trocar os nomes dos terms denovo
- /*$term = get_term_by('slug', 'comresolucao', 'situacao');
- wp_update_term($term->term_id, 'situacao', array('name' => 'Resolução'));
- $term = get_term_by('slug', 'emvotacao', 'situacao');
- wp_update_term($term->term_id, 'situacao', array('name' => 'Regime de Votação'));
- $term = get_term_by('slug', 'discussao', 'situacao');
- wp_update_term($term->term_id, 'situacao', array('name' => 'Pauta em discussão'));
- $term = get_term_by('slug', 'validacao', 'situacao');
- wp_update_term($term->term_id, 'situacao', array('name' => 'Proposta de Pauta'));
- $term = get_term_by('slug', 'naovalidada', 'situacao');
- wp_update_term($term->term_id, 'situacao', array('name' => 'Pauta Recusada'));*/
-
- $opt = delibera_get_config();
-
- if(taxonomy_exists('situacao'))
- {
- if(term_exists('comresolucao', 'situacao', null) == false)
- {
- delibera_insert_term('Resolução', 'situacao', array(
- 'description'=> 'Pauta com resoluções aprovadas',
- 'slug' => 'comresolucao',
- ),
- array(
- 'qtrans_term_pt' => 'Resolução',
- 'qtrans_term_en' => 'Resolution',
- 'qtrans_term_es' => 'Resolución',
- )
- );
- }
- if(term_exists('emvotacao', 'situacao', null) == false)
- {
- delibera_insert_term('Regime de Votação', 'situacao', array(
- 'description'=> 'Pauta com encaminhamentos em Votacao',
- 'slug' => 'emvotacao',
- ),
- array(
- 'qtrans_term_pt' => 'Regime de Votação',
- 'qtrans_term_en' => 'Voting',
- 'qtrans_term_es' => 'Sistema de Votación',
- )
- );
- }
- if(isset($opt['relatoria']) && $opt['relatoria'] == 'S')
- {
- if($opt['eleicao_relator'] == 'S')
- {
- if(term_exists('eleicaoredator', 'situacao', null) == false)
- {
- delibera_insert_term('Regime de Votação de Relator', 'situacao', array(
- 'description'=> 'Pauta em Eleição de Relator',
- 'slug' => 'eleicaoredator',
- ),
- array(
- 'qtrans_term_pt' => 'Regime de Votação de Relator',
- 'qtrans_term_en' => 'Election of Rapporteur',
- 'qtrans_term_es' => 'Elección del Relator',
- )
- );
- }
- }
-
- if(term_exists('relatoria', 'situacao', null) == false)
- {
- delibera_insert_term('Relatoria', 'situacao', array(
- 'description'=> 'Pauta com encaminhamentos em Relatoria',
- 'slug' => 'relatoria',
- ),
- array(
- 'qtrans_term_pt' => 'Relatoria',
- 'qtrans_term_en' => 'Rapporteur',
- 'qtrans_term_es' => 'Relator',
- )
- );
- }
- }
- if(term_exists('discussao', 'situacao', null) == false)
- {
- delibera_insert_term('Pauta em discussão', 'situacao', array(
- 'description'=> 'Pauta em Discussão',
- 'slug' => 'discussao',
- ),
- array(
- 'qtrans_term_pt' => 'Pauta em discussão',
- 'qtrans_term_en' => 'Agenda en discusión',
- 'qtrans_term_es' => 'Topic under discussion',
- )
- );
- }
- if(isset($opt['validacao']) && $opt['validacao'] == 'S')
- {
- if(term_exists('validacao', 'situacao', null) == false)
- {
- delibera_insert_term('Proposta de Pauta', 'situacao', array(
- 'description'=> 'Pauta em Validação',
- 'slug' => 'validacao',
- ),
- array(
- 'qtrans_term_pt' => 'Proposta de Pauta',
- 'qtrans_term_en' => 'Proposed Topic',
- 'qtrans_term_es' => 'Agenda Propuesta',
- )
- );
- }
- if(term_exists('naovalidada', 'situacao', null) == false)
- {
- delibera_insert_term('Pauta Recusada', 'situacao', array(
- 'description'=> 'Pauta não Validação',
- 'slug' => 'naovalidada',
- ),
- array(
- 'qtrans_term_pt' => 'Pauta Recusada',
- 'qtrans_term_en' => 'Rejected Topic',
- 'qtrans_term_es' => 'Agenda Rechazada',
- )
- );
- }
- }
- }
-
- if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'delibera_taxs.php'))
- {
- require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_taxs.php';
- }
-
-}
-
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_themes.php';
if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'delibera_filtros.php'))
@@ -1286,9 +1021,9 @@ function delibera_check_post_data($data, $postarr)
{
$value = $_POST['prazo_relatoria'];
$valida = delibera_tratar_data($value);
- if(!$autosave && ($valida === false || $valida < 1))
- {
- $erros[] = __("É necessário definir corretamente o prazo para relatoria", "delibera");
+ if(!$autosave && ($valida === false || $valida < 1))
+ {
+ $erros[] = __("É necessário definir corretamente o prazo para relatoria", "Delibera");
}
if($opt['eleicao_relator'] == 'S')
@@ -1922,71 +1657,6 @@ function delibera_form_table($rows) {
return $content;
}
-// Scripts
-
-function delibera_scripts()
-{
- global $post;
-
- if (is_pauta()) {
- wp_enqueue_script('jquery-expander', WP_CONTENT_URL.'/plugins/delibera/js/jquery.expander.js', array('jquery'));
- wp_enqueue_script('delibera', WP_CONTENT_URL.'/plugins/delibera/js/scripts.js', array('jquery-expander'));
- wp_enqueue_script('delibera-seguir', WP_CONTENT_URL . '/plugins/delibera/js/delibera_seguir.js', array('delibera'));
- wp_enqueue_script('delibera-concordar', WP_CONTENT_URL . '/plugins/delibera/js/delibera_concordar.js', array('delibera'));
-
- $situation = delibera_get_situacao($post->ID);
-
- $data = array(
- 'post_id' => $post->ID,
- 'ajax_url' => admin_url('admin-ajax.php'),
- );
-
- if (is_object($situation)) {
- $data['situation'] = $situation->slug;
- }
-
- wp_localize_script('delibera', 'delibera', $data);
- }
-}
-add_action( 'wp_print_scripts', 'delibera_scripts' );
-
-/**
- *
- * Se tiver estilos customizados, ta aí a dica...
- *
-function delibera_print_styles()
-{
-
-}
-add_action('wp_print_styles', 'delibera_print_styles');*/
-
-function delibera_print_styles()
-{
- if (is_pauta()) {
- wp_enqueue_style('jquery-ui-custom', plugins_url() . '/delibera/css/jquery-ui-1.9.2.custom.min.css');
- }
-
- wp_enqueue_style('delibera_style', WP_CONTENT_URL.'/plugins/delibera/css/delibera.css');
-}
-add_action('admin_print_styles', 'delibera_print_styles');
-
-function delibera_admin_scripts()
-{
- if(is_pauta())
- {
- wp_enqueue_script('jquery-ui-datepicker-ptbr', WP_CONTENT_URL.'/plugins/delibera/js/jquery.ui.datepicker-pt-BR.js', array('jquery-ui-datepicker'));
- wp_enqueue_script('delibera-admin',WP_CONTENT_URL.'/plugins/delibera/js/admin_scripts.js', array( 'jquery-ui-datepicker-ptbr'));
- }
-
- if(isset($_REQUEST['page']) && $_REQUEST['page'] == 'delibera-notifications')
- {
- wp_enqueue_script('delibera-admin-notifica',WP_CONTENT_URL.'/plugins/delibera/js/admin_notifica_scripts.js', array('jquery'));
- }
-}
-add_action( 'admin_print_scripts', 'delibera_admin_scripts' );
-
-// Fim Scripts
-
// Funções de conteudo
/**
@@ -2846,19 +2516,6 @@ function delibera_set_novo_prazo_discussao_relatoria($postID, $inova_data, $opts
delibera_criar_agenda($postID, false, $nova_data, $nova_data_votacao, $nova_relatoria, $nova_eleicao_rel);
}
-function delibera_footer() {
-
- echo ''.__('Sua contribuição foi registrada no sistema','delibera').'
';
-
-}
-add_action('wp_footer', 'delibera_footer');
-
-
-function delibera_loaded() {
- // load plugin translations
- load_plugin_textdomain('delibera', false, dirname(plugin_basename( __FILE__ )).'/lang');
-}
-add_action('plugins_loaded','delibera_loaded');
function delibera_get_plan_config()
{
@@ -2881,43 +2538,6 @@ function delibera_get_plan_config()
}
-$conf = delibera_get_config();
-if(array_key_exists('plan_restriction', $conf) && $conf['plan_restriction'] == 'S')
-{
- require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_plan.php';
-}
-
-/*
- * Get page by slug
-*/
-function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) {
- global $wpdb;
- $page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s", $page_slug, $post_type ) );
- if ( $page )
- return get_page($page, $output);
- return null;
-}
-
-/**
- * Retorna a lista de idiomas disponível. Se o plugin
- * qtrans estiver habilitado retorna os idiomas dele, se
- * não usa o idioma definido no wp-config.php
- *
- * @return array
- */
-function delibera_get_available_languages() {
- $langs = array(get_locale());
-
- if(function_exists('qtrans_enableLanguage'))
- {
- global $q_config;
- $langs = $q_config['enabled_languages'];
- }
-
- return $langs;
-}
-
-
add_action('init', 'delibera_nova_pauta_create_action');
function delibera_nova_pauta_create_action(){
$opt = delibera_get_config();
diff --git a/delibera_conf.php b/delibera_conf.php
index d7ecd3d..3914412 100644
--- a/delibera_conf.php
+++ b/delibera_conf.php
@@ -1,4 +1,6 @@
__('Pautas','delibera'),
+ 'singular_name' => __('Pauta','delibera'),
+ 'add_new' => __('Adicionar Nova','delibera'),
+ 'add_new_item' => __('Adicionar nova pauta ','delibera'),
+ 'edit_item' => __('Editar Pauta','delibera'),
+ 'new_item' => __('Nova Pauta','delibera'),
+ 'view_item' => __('Visualizar Pauta','delibera'),
+ 'search_items' => __('Procurar Pautas','delibera'),
+ 'not_found' => __('Nenhuma Pauta localizada','delibera'),
+ 'not_found_in_trash' => __('Nenhuma Pauta localizada na lixeira','delibera'),
+ 'parent_item_colon' => '',
+ 'menu_name' => __('Pautas','delibera')
+
+ );
+
+ $args = array
+ (
+ 'label' => __('Pautas','delibera'),
+ 'labels' => $labels,
+ 'description' => __('Pauta de discussão','delibera'),
+ 'public' => true,
+ 'publicly_queryable' => true, // public
+ //'exclude_from_search' => '', // public
+ 'show_ui' => true, // public
+ 'show_in_menu' => true,
+ 'menu_position' => 5,
+ // 'menu_icon' => '',
+ 'capability_type' => array('pauta','pautas'),
+ 'map_meta_cap' => true,
+ 'hierarchical' => false,
+ 'supports' => array('title', 'editor', 'author', 'excerpt', 'trackbacks', 'revisions', 'comments'),
+ 'register_meta_box_cb' => 'delibera_pauta_custom_meta', // função para chamar na edição
+ //'taxonomies' => array('post_tag'), // Taxionomias já existentes relaciondas, vamos criar e registrar na sequência
+ 'permalink_epmask' => 'EP_PERMALINK ',
+ 'has_archive' => true, // Opção de arquivamento por slug
+ 'rewrite' => true,
+ 'query_var' => true,
+ 'can_export' => true//, // veja abaixo
+ //'show_in_nav_menus' => '', // public
+ //'_builtin' => '', // Core
+ //'_edit_link' => '' // Core
+
+ );
+
+ register_post_type("pauta", $args);
+}
+
+function delibera_Add_custom_taxonomy()
+{
+ $labels = array
+ (
+ 'name' => __('Temas', 'delibera'),
+ 'singular_name' => __('Tema', 'delibera'),
+ 'search_items' => __('Procurar por Temas','delibera'),
+ 'all_items' => __('Todos os Temas','delibera'),
+ 'parent_item' => __( 'Tema Pai','delibera'),
+ 'parent_item_colon' => __( 'Tema Pai:','delibera'),
+ 'edit_item' => __('Editar Tema','delibera'),
+ 'update_item' => __('Atualizar um Tema','delibera'),
+ 'add_new_item' => __('Adicionar Novo Tema','delibera'),
+ 'add_new' => __('Adicionar Novo','delibera'),
+ 'new_item_name' => __('Novo Tema','delibera'),
+ 'view_item' => __('Visualizar Tema','delibera'),
+ 'not_found' => __('Nenhum Tema localizado','delibera'),
+ 'not_found_in_trash' => __('Nenhum Tema localizado na lixeira','delibera'),
+ 'menu_name' => __('Temas','delibera')
+ );
+
+ $args = array
+ (
+ 'label' => __('Temas','delibera'),
+ 'labels' => $labels,
+ 'public' => true,
+ 'capabilities' => array('assign_terms' => 'edit_pautas',
+ 'edit_terms' => 'edit_pautas'),
+ //'show_in_nav_menus' => true, // Public
+ // 'show_ui' => '', // Public
+ 'hierarchical' => true,
+ //'update_count_callback' => '', //Contar objetos associados
+ 'rewrite' => true,
+ //'query_var' => '',
+ //'_builtin' => '' // Core
+ );
+
+ register_taxonomy('tema', array('pauta'), $args);
+
+
+
+ $labels = array
+ (
+ 'name' => __('Situações','delibera'),
+ 'singular_name' => __('Situação', 'delibera'),
+ 'search_items' => __('Procurar por Situação','delibera'),
+ 'all_items' => __('Todas as Situações','delibera'),
+ 'parent_item' => null,
+ 'parent_item_colon' => null,
+ 'edit_item' => __('Editar Situação','delibera'),
+ 'update_item' => __('Atualizar uma Situação','delibera'),
+ 'add_new_item' => __('Adicionar Nova Situação','delibera'),
+ 'add_new' => __('Adicionar Nova', 'delibera'),
+ 'new_item_name' => __('Nova Situação','delibera'),
+ 'view_item' => __('Visualizar Situação','delibera'),
+ 'not_found' => __('Nenhuma Situação localizado','delibera'),
+ 'not_found_in_trash' => __('Nenhuma Situação localizada na lixeira','delibera'),
+ 'menu_name' => __('Situações','delibera')
+ );
+
+ $args = array
+ (
+ 'label' => __('Situações','delibera'),
+ 'labels' => $labels,
+ 'public' => false,
+ 'show_in_nav_menus' => true, // Public
+ //'show_ui' => true, // Public
+ 'hierarchical' => false//,
+ //'update_count_callback' => '', //Contar objetos associados
+ //'rewrite' => '', //
+ //'query_var' => '',
+ //'_builtin' => '' // Core
+ );
+
+ register_taxonomy('situacao', array('pauta'), $args);
+
+ // Se precisar trocar os nomes dos terms denovo
+ /*$term = get_term_by('slug', 'comresolucao', 'situacao');
+ wp_update_term($term->term_id, 'situacao', array('name' => 'Resolução'));
+ $term = get_term_by('slug', 'emvotacao', 'situacao');
+ wp_update_term($term->term_id, 'situacao', array('name' => 'Regime de Votação'));
+ $term = get_term_by('slug', 'discussao', 'situacao');
+ wp_update_term($term->term_id, 'situacao', array('name' => 'Pauta em discussão'));
+ $term = get_term_by('slug', 'validacao', 'situacao');
+ wp_update_term($term->term_id, 'situacao', array('name' => 'Proposta de Pauta'));
+ $term = get_term_by('slug', 'naovalidada', 'situacao');
+ wp_update_term($term->term_id, 'situacao', array('name' => 'Pauta Recusada'));*/
+
+ $opt = delibera_get_config();
+
+ if(taxonomy_exists('situacao'))
+ {
+ if(term_exists('comresolucao', 'situacao', null) == false)
+ {
+ delibera_insert_term('Resolução', 'situacao', array(
+ 'description'=> 'Pauta com resoluções aprovadas',
+ 'slug' => 'comresolucao',
+ ),
+ array(
+ 'qtrans_term_pt' => 'Resolução',
+ 'qtrans_term_en' => 'Resolution',
+ 'qtrans_term_es' => 'Resolución',
+ )
+ );
+ }
+ if(term_exists('emvotacao', 'situacao', null) == false)
+ {
+ delibera_insert_term('Regime de Votação', 'situacao', array(
+ 'description'=> 'Pauta com encaminhamentos em Votacao',
+ 'slug' => 'emvotacao',
+ ),
+ array(
+ 'qtrans_term_pt' => 'Regime de Votação',
+ 'qtrans_term_en' => 'Voting',
+ 'qtrans_term_es' => 'Sistema de Votación',
+ )
+ );
+ }
+ if(isset($opt['relatoria']) && $opt['relatoria'] == 'S')
+ {
+ if($opt['eleicao_relator'] == 'S')
+ {
+ if(term_exists('eleicaoredator', 'situacao', null) == false)
+ {
+ delibera_insert_term('Regime de Votação de Relator', 'situacao', array(
+ 'description'=> 'Pauta em Eleição de Relator',
+ 'slug' => 'eleicaoredator',
+ ),
+ array(
+ 'qtrans_term_pt' => 'Regime de Votação de Relator',
+ 'qtrans_term_en' => 'Election of Rapporteur',
+ 'qtrans_term_es' => 'Elección del Relator',
+ )
+ );
+ }
+ }
+
+ if(term_exists('relatoria', 'situacao', null) == false)
+ {
+ delibera_insert_term('Relatoria', 'situacao', array(
+ 'description'=> 'Pauta com encaminhamentos em Relatoria',
+ 'slug' => 'relatoria',
+ ),
+ array(
+ 'qtrans_term_pt' => 'Relatoria',
+ 'qtrans_term_en' => 'Rapporteur',
+ 'qtrans_term_es' => 'Relator',
+ )
+ );
+ }
+ }
+ if(term_exists('discussao', 'situacao', null) == false)
+ {
+ delibera_insert_term('Pauta em discussão', 'situacao', array(
+ 'description'=> 'Pauta em Discussão',
+ 'slug' => 'discussao',
+ ),
+ array(
+ 'qtrans_term_pt' => 'Pauta em discussão',
+ 'qtrans_term_en' => 'Agenda en discusión',
+ 'qtrans_term_es' => 'Topic under discussion',
+ )
+ );
+ }
+ if(isset($opt['validacao']) && $opt['validacao'] == 'S')
+ {
+ if(term_exists('validacao', 'situacao', null) == false)
+ {
+ delibera_insert_term('Proposta de Pauta', 'situacao', array(
+ 'description'=> 'Pauta em Validação',
+ 'slug' => 'validacao',
+ ),
+ array(
+ 'qtrans_term_pt' => 'Proposta de Pauta',
+ 'qtrans_term_en' => 'Proposed Topic',
+ 'qtrans_term_es' => 'Agenda Propuesta',
+ )
+ );
+ }
+ if(term_exists('naovalidada', 'situacao', null) == false)
+ {
+ delibera_insert_term('Pauta Recusada', 'situacao', array(
+ 'description'=> 'Pauta não Validação',
+ 'slug' => 'naovalidada',
+ ),
+ array(
+ 'qtrans_term_pt' => 'Pauta Recusada',
+ 'qtrans_term_en' => 'Rejected Topic',
+ 'qtrans_term_es' => 'Agenda Rechazada',
+ )
+ );
+ }
+ }
+ }
+
+ if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'delibera_taxs.php'))
+ {
+ require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_taxs.php';
+ }
+
+}
+
+
+function delibera_init()
+{
+ add_action('admin_menu', 'delibera_config_menu');
+
+ delibera_Add_custom_Post();
+
+ delibera_Add_custom_taxonomy();
+
+ global $delibera_comments_padrao;
+ $delibera_comments_padrao = false;
+
+}
+add_action('init','delibera_init');
+
+// Scripts
+
+function delibera_scripts()
+{
+ global $post;
+
+ if (is_pauta()) {
+ wp_enqueue_script('jquery-expander', WP_CONTENT_URL.'/plugins/delibera/js/jquery.expander.js', array('jquery'));
+ wp_enqueue_script('delibera', WP_CONTENT_URL.'/plugins/delibera/js/scripts.js', array('jquery-expander'));
+ wp_enqueue_script('delibera-seguir', WP_CONTENT_URL . '/plugins/delibera/js/delibera_seguir.js', array('delibera'));
+ wp_enqueue_script('delibera-concordar', WP_CONTENT_URL . '/plugins/delibera/js/delibera_concordar.js', array('delibera'));
+
+ $situation = delibera_get_situacao($post->ID);
+
+ $data = array(
+ 'post_id' => $post->ID,
+ 'ajax_url' => admin_url('admin-ajax.php'),
+ );
+
+ if (is_object($situation)) {
+ $data['situation'] = $situation->slug;
+ }
+
+ wp_localize_script('delibera', 'delibera', $data);
+ }
+}
+add_action( 'wp_print_scripts', 'delibera_scripts' );
+
+/**
+ *
+ * Se tiver estilos customizados, ta aí a dica...
+ *
+function delibera_print_styles()
+{
+
+}
+add_action('wp_print_styles', 'delibera_print_styles');*/
+
+function delibera_print_styles()
+{
+ if (is_pauta()) {
+ wp_enqueue_style('jquery-ui-custom', plugins_url() . '/delibera/css/jquery-ui-1.9.2.custom.min.css');
+ }
+
+ wp_enqueue_style('delibera_style', WP_CONTENT_URL.'/plugins/delibera/css/delibera.css');
+}
+add_action('admin_print_styles', 'delibera_print_styles');
+
+function delibera_admin_scripts()
+{
+ if(is_pauta())
+ {
+ wp_enqueue_script('jquery-ui-datepicker-ptbr', WP_CONTENT_URL.'/plugins/delibera/js/jquery.ui.datepicker-pt-BR.js', array('jquery-ui-datepicker'));
+ wp_enqueue_script('delibera-admin',WP_CONTENT_URL.'/plugins/delibera/js/admin_scripts.js', array( 'jquery-ui-datepicker-ptbr'));
+ }
+
+ if(isset($_REQUEST['page']) && $_REQUEST['page'] == 'delibera-notifications')
+ {
+ wp_enqueue_script('delibera-admin-notifica',WP_CONTENT_URL.'/plugins/delibera/js/admin_notifica_scripts.js', array('jquery'));
+ }
+}
+add_action( 'admin_print_scripts', 'delibera_admin_scripts' );
+
+// Fim Scripts
+
+function delibera_footer() {
+
+ echo ''.__('Sua contribuição foi registrada no sistema','delibera').'
';
+
+}
+add_action('wp_footer', 'delibera_footer');
+
+
+function delibera_loaded() {
+ // load plugin translations
+ load_plugin_textdomain('delibera', false, dirname(plugin_basename( __FILE__ )).'/lang');
+}
+add_action('plugins_loaded','delibera_loaded');
+
+$conf = delibera_get_config();
+if(array_key_exists('plan_restriction', $conf) && $conf['plan_restriction'] == 'S')
+{
+ require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_plan.php';
+}
+
+/*
+ * Get page by slug
+ */
+function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) {
+ global $wpdb;
+ $page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s", $page_slug, $post_type ) );
+ if ( $page )
+ return get_page($page, $output);
+ return null;
+}
+
+/**
+ * Retorna a lista de idiomas disponível. Se o plugin
+ * qtrans estiver habilitado retorna os idiomas dele, se
+ * não usa o idioma definido no wp-config.php
+ *
+ * @return array
+ */
+function delibera_get_available_languages() {
+ $langs = array(get_locale());
+
+ if(function_exists('qtrans_enableLanguage'))
+ {
+ global $q_config;
+ $langs = $q_config['enabled_languages'];
+ }
+
+ return $langs;
+}
\ No newline at end of file
From 32d4130ffc2a119b16d30630190320474a8f1e91 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Mon, 18 Jan 2016 22:14:04 -0200
Subject: [PATCH 006/435] =?UTF-8?q?padroniza=20arquivos=20que=20realizam?=
=?UTF-8?q?=20altera=C3=A7=C3=B5es=20nos=20coment=C3=A1rios?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera.php | 104 +----------------
delibera_comments.php | 106 ++++++++++++++++++
...comment.php => delibera_comments_query.php | 12 +-
3 files changed, 113 insertions(+), 109 deletions(-)
create mode 100644 delibera_comments.php
rename delibera_WP_comment.php => delibera_comments_query.php (99%)
diff --git a/delibera.php b/delibera.php
index 274ab1f..54536f5 100644
--- a/delibera.php
+++ b/delibera.php
@@ -140,108 +140,6 @@ function delibera_pauta_redirect_filter($location, $post_id = null) {
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_filtros.php';
}
-function delibera_get_comment_type($comment)
-{
- $comment_ID = $comment;
- if(is_object($comment_ID)) $comment_ID = $comment->comment_ID;
- return get_comment_meta($comment_ID, "delibera_comment_tipo", true);
-}
-
-/**
- * Retorna o nome "amigável" do tipo de um comentário.
- *
- * @param object $comment
- * @param string $tipo
- * @param bool $echo
- * @return string
- */
-function delibera_get_comment_type_label($comment, $tipo = false, $echo = true)
-{
- if($tipo === false) $tipo = get_comment_meta($comment->comment_ID, "delibera_comment_tipo", true);
- switch ($tipo)
- {
- case 'validacao':
- if($echo) _e('Validação', 'delibera');
- return __('Validação', 'delibera');
- break;
- case 'encaminhamento_selecionado':
- case 'encaminhamento':
- if($echo) _e('Proposta', 'delibera');
- return __('Proposta', 'delibera');
- break;
- case 'voto':
- if($echo) _e('Voto', 'delibera');
- return __('Voto', 'delibera');
- break;
- case 'resolucao':
- if($echo) _e('Resolução', 'delibera');
- return __('Resolução', 'delibera');
- break;
- case 'discussao':
- if($echo) _e('Opinião', 'delibera');
- return __('Opinião', 'delibera');
- default:
- break;
- }
-}
-
-/**
- * Retorna uma string com a quantidade de comentários
- * associados a pauta do tipo correspondente a situação
- * atual.
- *
- * @param int $postId
- * @return string (exemplo: "5 votos")
- */
-function delibera_get_comments_count_by_type($postId)
-{
- $situacao = delibera_get_situacao($postId);
-
- switch ($situacao->slug) {
- case 'validacao':
- $count = count(delibera_get_comments_validacoes($postId));
-
- if ($count == 0) {
- $label = __('Nenhuma validação', 'delibera');
- } else if ($count == 1) {
- $label = __('1 validação', 'delibera');
- } else {
- $label = sprintf(__('%d validações', 'delibera'), $count);
- }
-
- return $label;
- case 'discussao':
- $count = count(delibera_get_comments_discussoes($postId));
-
- if ($count == 0) {
- $label = __('Nenhum comentário', 'delibera');
- } else if ($count == 1) {
- $label = __('1 comentário', 'delibera');
- } else {
- $label = sprintf(__('%d comentários', 'delibera'), $count);
- }
-
- return $label;
- case 'emvotacao':
- $count = count(delibera_get_comments_votacoes($postId));
-
- if ($count == 0) {
- $label = __('Nenhum voto', 'delibera');
- } else if ($count == 1) {
- $label = __('1 voto', 'delibera');
- } else {
- $label = sprintf(__('%d votos', 'delibera'), $count);
- }
-
- return $label;
- }
-}
-
-function delibera_get_comments_types()
-{
- return array('validacao', 'discussao', 'encaminhamento', 'encaminhamento_selecionado', 'voto', 'resolucao');
-}
-
function delibera_pauta_custom_meta()
{
add_meta_box("pauta_meta", "Detalhes da Pauta", 'delibera_pauta_meta', 'pauta', 'side', 'default');
@@ -1778,7 +1676,7 @@ function delibera_get_comments($post_id, $tipo, $args = array())
return $ret;
}
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_WP_comment.php';
+require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_comments.php';
function delibera_wp_list_comments($args = array(), $comments = null)
diff --git a/delibera_comments.php b/delibera_comments.php
new file mode 100644
index 0000000..35868d5
--- /dev/null
+++ b/delibera_comments.php
@@ -0,0 +1,106 @@
+comment_ID;
+ return get_comment_meta($comment_ID, "delibera_comment_tipo", true);
+}
+
+/**
+ * Retorna o nome "amigável" do tipo de um comentário.
+ *
+ * @param object $comment
+ * @param string $tipo
+ * @param bool $echo
+ * @return string
+ */
+function delibera_get_comment_type_label($comment, $tipo = false, $echo = true)
+{
+ if($tipo === false) $tipo = get_comment_meta($comment->comment_ID, "delibera_comment_tipo", true);
+ switch ($tipo)
+ {
+ case 'validacao':
+ if($echo) _e('Validação', 'delibera');
+ return __('Validação', 'delibera');
+ break;
+ case 'encaminhamento_selecionado':
+ case 'encaminhamento':
+ if($echo) _e('Proposta', 'delibera');
+ return __('Proposta', 'delibera');
+ break;
+ case 'voto':
+ if($echo) _e('Voto', 'delibera');
+ return __('Voto', 'delibera');
+ break;
+ case 'resolucao':
+ if($echo) _e('Resolução', 'delibera');
+ return __('Resolução', 'delibera');
+ break;
+ case 'discussao':
+ if($echo) _e('Opinião', 'delibera');
+ return __('Opinião', 'delibera');
+ default:
+ break;
+ }
+}
+
+/**
+ * Retorna uma string com a quantidade de comentários
+ * associados a pauta do tipo correspondente a situação
+ * atual.
+ *
+ * @param int $postId
+ * @return string (exemplo: "5 votos")
+ */
+function delibera_get_comments_count_by_type($postId)
+{
+ $situacao = delibera_get_situacao($postId);
+
+ switch ($situacao->slug) {
+ case 'validacao':
+ $count = count(delibera_get_comments_validacoes($postId));
+
+ if ($count == 0) {
+ $label = __('Nenhuma validação', 'delibera');
+ } else if ($count == 1) {
+ $label = __('1 validação', 'delibera');
+ } else {
+ $label = sprintf(__('%d validações', 'delibera'), $count);
+ }
+
+ return $label;
+ case 'discussao':
+ $count = count(delibera_get_comments_discussoes($postId));
+
+ if ($count == 0) {
+ $label = __('Nenhum comentário', 'delibera');
+ } else if ($count == 1) {
+ $label = __('1 comentário', 'delibera');
+ } else {
+ $label = sprintf(__('%d comentários', 'delibera'), $count);
+ }
+
+ return $label;
+ case 'emvotacao':
+ $count = count(delibera_get_comments_votacoes($postId));
+
+ if ($count == 0) {
+ $label = __('Nenhum voto', 'delibera');
+ } else if ($count == 1) {
+ $label = __('1 voto', 'delibera');
+ } else {
+ $label = sprintf(__('%d votos', 'delibera'), $count);
+ }
+
+ return $label;
+ }
+}
+
+function delibera_get_comments_types()
+{
+ return array('validacao', 'discussao', 'encaminhamento', 'encaminhamento_selecionado', 'voto', 'resolucao');
+}
\ No newline at end of file
diff --git a/delibera_WP_comment.php b/delibera_comments_query.php
similarity index 99%
rename from delibera_WP_comment.php
rename to delibera_comments_query.php
index 8ce55ed..43222b0 100644
--- a/delibera_WP_comment.php
+++ b/delibera_comments_query.php
@@ -28,7 +28,7 @@ function query( $query_vars ) {
'post_parent' => '',
'post_status' => '',
'post_type' => '',
- 'tax_query' => '',
+ 'tax_query' => '',
'status' => '',
'type' => '',
'user_id' => '',
@@ -151,9 +151,9 @@ function query( $query_vars ) {
}
$join .= $compact['join'];
$where .= $compact['where'];
- }
-
-
+ }
+
+
$pieces = array( 'fields', 'join', 'where', 'orderby', 'order', 'limits' );
$clauses = apply_filters_ref_array( 'comments_clauses', array( compact( $pieces ), &$this ) );
foreach ( $pieces as $piece )
@@ -170,6 +170,6 @@ function query( $query_vars ) {
return $comments;
}
-
-}
+
+}
?>
\ No newline at end of file
From 05b72e8a5f577a987297045aa358cb3957160fec Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Mon, 18 Jan 2016 22:42:29 -0200
Subject: [PATCH 007/435] =?UTF-8?q?Move=20mais=20funcoes=20respons=C3=A1ve?=
=?UTF-8?q?is=20por=20mudan=C3=A7as=20nos=20coment=C3=A1rios?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera.php | 436 -----------------------------------
delibera_admin_functions.php | 60 ++++-
delibera_comments.php | 399 +++++++++++++++++++++++++++++++-
3 files changed, 447 insertions(+), 448 deletions(-)
diff --git a/delibera.php b/delibera.php
index 54536f5..23678e4 100644
--- a/delibera.php
+++ b/delibera.php
@@ -970,184 +970,6 @@ function delibera_check_post_data($data, $postarr)
add_filter('wp_insert_post_data', 'delibera_check_post_data', 10, 2);
-function delibera_get_comments_link() {
- global $post;
-
- return get_permalink($post->ID) . '#delibera-comments';
-}
-
-function delibera_get_comment_link($comment_pass = false)
-{
- global $comment;
- if(is_object($comment_pass))
- {
- $comment = $comment_pass;
- }
-
- if(!isset($comment))
- {
- return str_replace('#comment', '#delibera-comment', get_comments_link());
- }
-
- return str_replace('#comment', '#delibera-comment', get_comment_link($comment));
-}
-
-function delibera_comment_post_redirect( $location ) {
- global $post, $comment_id;
-
- return ( $post->post_type == 'pauta' ) ? preg_replace("/#comment-([\d]+)/", "#delibera-comment-" . $comment_id, $location) : $location;
-}
-add_filter( 'comment_post_redirect', 'delibera_comment_post_redirect' );
-
-/**
- *
- * Comentário em listagem (Visualização)
- * @param string $commentText
- */
-function delibera_comment_text($commentText)
-{
- global $comment, $post, $delibera_comments_padrao;
- if(get_post_type($post) == "pauta" && $delibera_comments_padrao !== true)
- {
- $commentId = isset($comment) ? $comment->comment_ID : false;
- $commentText = delibera_comment_text_filtro($commentText, $commentId);
- $tipo = get_comment_meta($commentId, "delibera_comment_tipo", true);
- $total = 0;
- $nvotos = 0;
- switch ($tipo)
- {
- case 'validacao':
- {
- $validacao = get_comment_meta($comment->comment_ID, "delibera_validacao", true);
- $sim = ($validacao == "S" ? true : false);
- $commentText = '
-
- ');
- }break;
- case 'discussao':
- case 'encaminhamento':
- case 'relatoria':
- {
- $situacao = delibera_get_situacao($comment->comment_post_ID);
- if($situacao->slug == 'discussao' || $situacao->slug == 'relatoria')
- {
- if ($tipo == "discussao")
- {
- $class_comment = "discussao delibera-comment-text";
- }
- else
- {
- $class_comment = "encaminhamento delibera-comment-text";
- }
- $commentText = "";
- }
- elseif($situacao->slug == 'comresolucao' && !defined('PRINT'))
- {
- $total = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', true);
- $nvotos = get_comment_meta($comment->comment_ID, "delibera_comment_numero_votos", true);
- $commentText = '
-
-
- ';
- }
- if(has_filter('delibera_mostra_discussao'))
- {
- $commentText = apply_filters('delibera_mostra_discussao', $commentText, $total, $nvotos, $situacao->slug);
- }
- }break;
- case 'resolucao':
- {
- $total = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', true);
- $nvotos = get_comment_meta($comment->comment_ID, "delibera_comment_numero_votos", true);
- $commentText = '
-
-
- ';
- }break;
- case 'voto':
- {
- $commentText = '
-
- ';
- }break;
- }
- if(has_filter('delibera_mostra_discussao'))
- {
- $commentText = apply_filters('delibera_mostra_discussao', $commentText, $tipo, $total, $nvotos);
- }
- return $commentText;
- }
- else
- {
- return '';
- }
-}
-
-add_filter('comment_text', 'delibera_comment_text');
-
-function delibera_comment_text_filtro($text, $comment_id = false, $show = true)
-{
- $opt = delibera_get_config();
- $tamanho = $opt['numero_max_palavras_comentario'];
- if($opt['limitar_tamanho_comentario'] === 'S' && strlen($text) > $tamanho)
- {
- if($comment_id === false)
- {
- $comment_id = get_comment_ID();
- }
- $string_temp = wordwrap($text, $tamanho, '##!##');
- $cut = strpos($string_temp, '##!##');
-
- $text = delibera_show_hide_button($comment_id, $text, $cut, $show);
- }
- return $text;
-}
-
-function delibera_show_hide_button($comment_id, $text, $cut, $show)
-{
- $comment_text = $text;
- $label = __('Continue lendo este comentário', 'delibera');
- if($show === true)
- {
- $showhide = '
- ".$showhide_button;
- }
- else
- {
- $link = ''.$label."";
- $comment_text = truncate($text, $cut,'…').'
- '.$link;
- }
-
- return $comment_text;
-}
-
/**
*
*
@@ -1249,264 +1071,6 @@ function truncate($text, $length = 100, $ending = '...', $exact = false, $consid
return $truncate;
}
-/**
- *
- * Comentário na tela de Edição na administração
- * @param WP_comment $comment
- */
-function delibera_edit_comment($comment)
-{
- if(get_post_type($comment->comment_post_ID) == "pauta")
- {
- $tipo = get_comment_meta($comment->comment_ID, "delibera_comment_tipo", true);
- switch ($tipo)
- {
- case 'validacao':
- {
- $validacao = get_comment_meta($comment->comment_ID, "delibera_validacao", true);
- $sim = ($validacao == "S" ? true : false);
- ?>
-
-
- comment_ID, "delibera_comment_tipo", true);
- $checked = $tipo == "discussao" ? "" : ' checked="checked" ';
- ?>
-
-
-
-
-
- ID;
- }
-
- $situacoes_validas = array('validacao' => true, 'discussao' => true, 'emvotacao' => true, 'elegerelator' => true,'relatoria'=>true);
- $situacao = delibera_get_situacao($postID);
-
- if(array_key_exists($situacao->slug, $situacoes_validas))
- {
- return $situacoes_validas[$situacao->slug];
- }
-
- return false;
-}
-
-function delibera_comment_form_action($postID)
-{
- if(is_pauta())
- {
- global $comment_footer;
- echo $comment_footer;
- echo "";
- if(function_exists('ecu_upload_form') && $situacao->slug != 'relatoria' && $situacao->slug != 'discussao')
- {
- echo '';
- }
- }
-}
-
-add_action('comment_form', 'delibera_comment_form_action');
-
-/**
- *
- * Salvar custom fields do comentário
- * @param int $comment_id
- */
-function delibera_save_comment_metas($comment_id)
-{
- $tipo = get_comment_meta($comment_id, "delibera_comment_tipo", true);
-
- if($tipo == false || $tipo == "")
- {
- if(array_key_exists("delibera_comment_tipo", $_POST))
- {
- $tipo = $_POST['delibera_comment_tipo'];
- }
- }
-
- delibera_curtir_comment_meta($comment_id);
-
- delibera_discordar_comment_meta($comment_id);
-
- $comment = get_comment($comment_id);
-
- switch($tipo)
- {
- case "validacao":
- {
- add_comment_meta($comment_id, 'delibera_validacao', $_POST['delibera_validacao'], true);
- add_comment_meta($comment_id, 'delibera_comment_tipo', 'validacao', true);
-
- if($_POST['delibera_validacao'] == "S")
- {
- $validacoes = get_post_meta($comment->comment_post_ID, 'numero_validacoes', true);
- $validacoes++;
- update_post_meta($comment->comment_post_ID, 'numero_validacoes', $validacoes); // Atualiza
- delibera_valida_validacoes($comment->comment_post_ID);
- }
- $nvalidacoes = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_validacoes', true);
- $nvalidacoes++;
- update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_validacoes', $nvalidacoes);
- }break;
-
- case 'discussao':
- case 'encaminhamento':
- {
- $encaminhamento = $_POST['delibera_encaminha'];
- if($encaminhamento == "S")
- {
- add_comment_meta($comment_id, 'delibera_comment_tipo', 'encaminhamento', true);
- $nencaminhamentos = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_encaminhamentos', true);
- $nencaminhamentos++;
- update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_encaminhamentos', $nencaminhamentos);
- if(array_key_exists('delibera-baseouseem', $_POST))
- {
- add_comment_meta($comment_id, 'delibera-baseouseem', $_POST['delibera-baseouseem'], true);
- }
- }
- else
- {
- add_comment_meta($comment_id, 'delibera_comment_tipo', 'discussao', true);
- $ndiscussoes = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_discussoes', true);
- $ndiscussoes++;
- update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_discussoes', $ndiscussoes);
- }
- if(has_action('delibera_nova_discussao'))
- {
- do_action('delibera_nova_discussao', $comment_id, $comment, $encaminhamento);
- }
- }break;
- case 'voto':
- {
-
- add_comment_meta($comment_id, 'delibera_comment_tipo', 'voto', true);
-
- $votos = array();
-
- foreach ($_POST as $postkey => $postvar)
- {
- if( substr($postkey, 0, strlen('delibera_voto')) == 'delibera_voto' )
- {
- $votos[] = $postvar;
- }
- }
-
- add_comment_meta($comment_id, 'delibera_votos', $votos, true);
-
- $comment = get_comment($comment_id);
- delibera_valida_votos($comment->comment_post_ID);
-
- $nvotos = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', true);
- $nvotos++;
- update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', $nvotos);
-
- if(has_action('delibera_novo_voto'))
- {
- do_action('delibera_novo_voto', $comment_id, $comment, $votos);
- }
-
- } break;
-
- default:
- {
- $npadroes = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_padroes', true);
- $npadroes++;
- update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_padroes', $npadroes);
- }break;
- }
- if(array_search($tipo, delibera_get_comments_types()) !== false)
- {
- wp_set_comment_status($comment_id, 'approve');
- delibera_notificar_novo_comentario($comment);
- do_action('delibera_nova_interacao', $comment_id);
- }
-}
-add_action ('comment_post', 'delibera_save_comment_metas', 1);
-
-function delibera_pre_edit_comment($dados)
-{
- $comment_id = 0;
- if(array_key_exists('comment_ID', $_POST))
- {
- $comment_id = $_POST['comment_ID'];
- }
- else
- {
- global $comment;
- if(isset($comment->comment_ID))
- {
- $comment_id = $comment->comment_ID;
- }
- else
- {
- wp_die(__('Você não pode Editar esse tipo de comentário','delibera'));
- }
- }
-
- $tipo = get_comment_meta($comment_id, "delibera_comment_tipo", true);
- if(array_search($tipo, delibera_get_comments_types()) !== false)
- {
- wp_die(__('Você não pode Editar esse tipo de comentário','delibera'));
- }
-}
-
-//add_filter('comment_save_pre', 'delibera_pre_edit_comment'); //TODO Verificar edição
-
-// require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_template.php';
-
// Fim Inicialização do plugin
// Menu de configuração
diff --git a/delibera_admin_functions.php b/delibera_admin_functions.php
index 8170bf4..7d71736 100644
--- a/delibera_admin_functions.php
+++ b/delibera_admin_functions.php
@@ -84,4 +84,62 @@ function delibera_custom_bulk_admin_notices() {
}
}
-add_action('admin_notices', 'delibera_custom_bulk_admin_notices');
\ No newline at end of file
+add_action('admin_notices', 'delibera_custom_bulk_admin_notices');
+
+/**
+ *
+ * Comentário na tela de Edição na administração
+ * @param WP_comment $comment
+ */
+function delibera_edit_comment($comment)
+{
+ if(get_post_type($comment->comment_post_ID) == "pauta")
+ {
+ $tipo = get_comment_meta($comment->comment_ID, "delibera_comment_tipo", true);
+ switch ($tipo)
+ {
+ case 'validacao':
+ {
+ $validacao = get_comment_meta($comment->comment_ID, "delibera_validacao", true);
+ $sim = ($validacao == "S" ? true : false);
+ ?>
+
+
+ comment_ID, "delibera_comment_tipo", true);
+ $checked = $tipo == "discussao" ? "" : ' checked="checked" ';
+ ?>
+
+
+
+
+
+ slug) {
case 'validacao':
$count = count(delibera_get_comments_validacoes($postId));
-
+
if ($count == 0) {
$label = __('Nenhuma validação', 'delibera');
} else if ($count == 1) {
@@ -71,11 +71,11 @@ function delibera_get_comments_count_by_type($postId)
} else {
$label = sprintf(__('%d validações', 'delibera'), $count);
}
-
+
return $label;
case 'discussao':
$count = count(delibera_get_comments_discussoes($postId));
-
+
if ($count == 0) {
$label = __('Nenhum comentário', 'delibera');
} else if ($count == 1) {
@@ -83,11 +83,11 @@ function delibera_get_comments_count_by_type($postId)
} else {
$label = sprintf(__('%d comentários', 'delibera'), $count);
}
-
+
return $label;
case 'emvotacao':
$count = count(delibera_get_comments_votacoes($postId));
-
+
if ($count == 0) {
$label = __('Nenhum voto', 'delibera');
} else if ($count == 1) {
@@ -95,7 +95,7 @@ function delibera_get_comments_count_by_type($postId)
} else {
$label = sprintf(__('%d votos', 'delibera'), $count);
}
-
+
return $label;
}
}
@@ -103,4 +103,381 @@ function delibera_get_comments_count_by_type($postId)
function delibera_get_comments_types()
{
return array('validacao', 'discussao', 'encaminhamento', 'encaminhamento_selecionado', 'voto', 'resolucao');
-}
\ No newline at end of file
+}
+
+function delibera_get_comments_link() {
+ global $post;
+
+ return get_permalink($post->ID) . '#delibera-comments';
+}
+
+function delibera_get_comment_link($comment_pass = false)
+{
+ global $comment;
+ if(is_object($comment_pass))
+ {
+ $comment = $comment_pass;
+ }
+
+ if(!isset($comment))
+ {
+ return str_replace('#comment', '#delibera-comment', get_comments_link());
+ }
+
+ return str_replace('#comment', '#delibera-comment', get_comment_link($comment));
+}
+
+function delibera_comment_post_redirect( $location ) {
+ global $post, $comment_id;
+
+ return ( $post->post_type == 'pauta' ) ? preg_replace("/#comment-([\d]+)/", "#delibera-comment-" . $comment_id, $location) : $location;
+}
+add_filter( 'comment_post_redirect', 'delibera_comment_post_redirect' );
+
+/**
+ *
+ * Comentário em listagem (Visualização)
+ * @param string $commentText
+ */
+function delibera_comment_text($commentText)
+{
+ global $comment, $post, $delibera_comments_padrao;
+ if(get_post_type($post) == "pauta" && $delibera_comments_padrao !== true)
+ {
+ $commentId = isset($comment) ? $comment->comment_ID : false;
+ $commentText = delibera_comment_text_filtro($commentText, $commentId);
+ $tipo = get_comment_meta($commentId, "delibera_comment_tipo", true);
+ $total = 0;
+ $nvotos = 0;
+ switch ($tipo)
+ {
+ case 'validacao':
+ {
+ $validacao = get_comment_meta($comment->comment_ID, "delibera_validacao", true);
+ $sim = ($validacao == "S" ? true : false);
+ $commentText = '
+
+ ');
+ }break;
+ case 'discussao':
+ case 'encaminhamento':
+ case 'relatoria':
+ {
+ $situacao = delibera_get_situacao($comment->comment_post_ID);
+ if($situacao->slug == 'discussao' || $situacao->slug == 'relatoria')
+ {
+ if ($tipo == "discussao")
+ {
+ $class_comment = "discussao delibera-comment-text";
+ }
+ else
+ {
+ $class_comment = "encaminhamento delibera-comment-text";
+ }
+ $commentText = "";
+ }
+ elseif($situacao->slug == 'comresolucao' && !defined('PRINT'))
+ {
+ $total = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', true);
+ $nvotos = get_comment_meta($comment->comment_ID, "delibera_comment_numero_votos", true);
+ $commentText = '
+
+
+ ';
+ }
+ if(has_filter('delibera_mostra_discussao'))
+ {
+ $commentText = apply_filters('delibera_mostra_discussao', $commentText, $total, $nvotos, $situacao->slug);
+ }
+ }break;
+ case 'resolucao':
+ {
+ $total = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', true);
+ $nvotos = get_comment_meta($comment->comment_ID, "delibera_comment_numero_votos", true);
+ $commentText = '
+
+
+ ';
+ }break;
+ case 'voto':
+ {
+ $commentText = '
+
+ ';
+ }break;
+ }
+ if(has_filter('delibera_mostra_discussao'))
+ {
+ $commentText = apply_filters('delibera_mostra_discussao', $commentText, $tipo, $total, $nvotos);
+ }
+ return $commentText;
+ }
+ else
+ {
+ return '';
+ }
+}
+
+add_filter('comment_text', 'delibera_comment_text');
+
+function delibera_comment_text_filtro($text, $comment_id = false, $show = true)
+{
+ $opt = delibera_get_config();
+ $tamanho = $opt['numero_max_palavras_comentario'];
+ if($opt['limitar_tamanho_comentario'] === 'S' && strlen($text) > $tamanho)
+ {
+ if($comment_id === false)
+ {
+ $comment_id = get_comment_ID();
+ }
+ $string_temp = wordwrap($text, $tamanho, '##!##');
+ $cut = strpos($string_temp, '##!##');
+
+ $text = delibera_show_hide_button($comment_id, $text, $cut, $show);
+ }
+ return $text;
+}
+
+function delibera_show_hide_button($comment_id, $text, $cut, $show)
+{
+ $comment_text = $text;
+ $label = __('Continue lendo este comentário', 'delibera');
+ if($show === true)
+ {
+ $showhide = '
+ ".$showhide_button;
+ }
+ else
+ {
+ $link = ''.$label."";
+ $comment_text = truncate($text, $cut,'…').'
+ '.$link;
+ }
+
+ return $comment_text;
+}
+
+function delibera_comments_open($open, $post_id)
+{
+ if ( 'pauta' == get_post_type($post_id) )
+ return $open && delibera_can_comment($post_id);
+ else
+ return $open;
+}
+add_filter('comments_open', 'delibera_comments_open', 10, 2);
+
+/**
+ * Verifica se é possível fazer comentários, se o usuário tiver poder para tanto
+ * @param unknown_type $postID
+ */
+function delibera_comments_is_open($postID = null)
+{
+ if(is_null($postID))
+ {
+ $post = get_post($postID);
+ $postID = $post->ID;
+ }
+
+ $situacoes_validas = array('validacao' => true, 'discussao' => true, 'emvotacao' => true, 'elegerelator' => true,'relatoria'=>true);
+ $situacao = delibera_get_situacao($postID);
+
+ if(array_key_exists($situacao->slug, $situacoes_validas))
+ {
+ return $situacoes_validas[$situacao->slug];
+ }
+
+ return false;
+}
+
+function delibera_comment_form_action($postID)
+{
+ if(is_pauta())
+ {
+ global $comment_footer;
+ echo $comment_footer;
+ echo "";
+ if(function_exists('ecu_upload_form') && $situacao->slug != 'relatoria' && $situacao->slug != 'discussao')
+ {
+ echo '';
+ }
+ }
+}
+
+add_action('comment_form', 'delibera_comment_form_action');
+
+/**
+ *
+ * Salvar custom fields do comentário
+ * @param int $comment_id
+ */
+function delibera_save_comment_metas($comment_id)
+{
+ $tipo = get_comment_meta($comment_id, "delibera_comment_tipo", true);
+
+ if($tipo == false || $tipo == "")
+ {
+ if(array_key_exists("delibera_comment_tipo", $_POST))
+ {
+ $tipo = $_POST['delibera_comment_tipo'];
+ }
+ }
+
+ delibera_curtir_comment_meta($comment_id);
+
+ delibera_discordar_comment_meta($comment_id);
+
+ $comment = get_comment($comment_id);
+
+ switch($tipo)
+ {
+ case "validacao":
+ {
+ add_comment_meta($comment_id, 'delibera_validacao', $_POST['delibera_validacao'], true);
+ add_comment_meta($comment_id, 'delibera_comment_tipo', 'validacao', true);
+
+ if($_POST['delibera_validacao'] == "S")
+ {
+ $validacoes = get_post_meta($comment->comment_post_ID, 'numero_validacoes', true);
+ $validacoes++;
+ update_post_meta($comment->comment_post_ID, 'numero_validacoes', $validacoes); // Atualiza
+ delibera_valida_validacoes($comment->comment_post_ID);
+ }
+ $nvalidacoes = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_validacoes', true);
+ $nvalidacoes++;
+ update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_validacoes', $nvalidacoes);
+ }break;
+
+ case 'discussao':
+ case 'encaminhamento':
+ {
+ $encaminhamento = $_POST['delibera_encaminha'];
+ if($encaminhamento == "S")
+ {
+ add_comment_meta($comment_id, 'delibera_comment_tipo', 'encaminhamento', true);
+ $nencaminhamentos = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_encaminhamentos', true);
+ $nencaminhamentos++;
+ update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_encaminhamentos', $nencaminhamentos);
+ if(array_key_exists('delibera-baseouseem', $_POST))
+ {
+ add_comment_meta($comment_id, 'delibera-baseouseem', $_POST['delibera-baseouseem'], true);
+ }
+ }
+ else
+ {
+ add_comment_meta($comment_id, 'delibera_comment_tipo', 'discussao', true);
+ $ndiscussoes = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_discussoes', true);
+ $ndiscussoes++;
+ update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_discussoes', $ndiscussoes);
+ }
+ if(has_action('delibera_nova_discussao'))
+ {
+ do_action('delibera_nova_discussao', $comment_id, $comment, $encaminhamento);
+ }
+ }break;
+ case 'voto':
+ {
+
+ add_comment_meta($comment_id, 'delibera_comment_tipo', 'voto', true);
+
+ $votos = array();
+
+ foreach ($_POST as $postkey => $postvar)
+ {
+ if( substr($postkey, 0, strlen('delibera_voto')) == 'delibera_voto' )
+ {
+ $votos[] = $postvar;
+ }
+ }
+
+ add_comment_meta($comment_id, 'delibera_votos', $votos, true);
+
+ $comment = get_comment($comment_id);
+ delibera_valida_votos($comment->comment_post_ID);
+
+ $nvotos = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', true);
+ $nvotos++;
+ update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_votos', $nvotos);
+
+ if(has_action('delibera_novo_voto'))
+ {
+ do_action('delibera_novo_voto', $comment_id, $comment, $votos);
+ }
+
+ } break;
+
+ default:
+ {
+ $npadroes = get_post_meta($comment->comment_post_ID, 'delibera_numero_comments_padroes', true);
+ $npadroes++;
+ update_post_meta($comment->comment_post_ID, 'delibera_numero_comments_padroes', $npadroes);
+ }break;
+ }
+ if(array_search($tipo, delibera_get_comments_types()) !== false)
+ {
+ wp_set_comment_status($comment_id, 'approve');
+ delibera_notificar_novo_comentario($comment);
+ do_action('delibera_nova_interacao', $comment_id);
+ }
+}
+add_action ('comment_post', 'delibera_save_comment_metas', 1);
+
+function delibera_pre_edit_comment($dados)
+{
+ $comment_id = 0;
+ if(array_key_exists('comment_ID', $_POST))
+ {
+ $comment_id = $_POST['comment_ID'];
+ }
+ else
+ {
+ global $comment;
+ if(isset($comment->comment_ID))
+ {
+ $comment_id = $comment->comment_ID;
+ }
+ else
+ {
+ wp_die(__('Você não pode Editar esse tipo de comentário','delibera'));
+ }
+ }
+
+ $tipo = get_comment_meta($comment_id, "delibera_comment_tipo", true);
+ if(array_search($tipo, delibera_get_comments_types()) !== false)
+ {
+ wp_die(__('Você não pode Editar esse tipo de comentário','delibera'));
+ }
+}
+
+//add_filter('comment_save_pre', 'delibera_pre_edit_comment'); //TODO Verificar edição
+
+// require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_template.php';
\ No newline at end of file
From 79468d3c9597d93cc89e3281eca8816ac156da20 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Mon, 18 Jan 2016 22:56:54 -0200
Subject: [PATCH 008/435] Padroniza nome dos arquivos que alteram configuracoes
---
delibera.php | 2 +-
delibera_conf.php | 56 +++++++++----------
delibera_roles.php => delibera_conf_roles.php | 0
...era_themes.php => delibera_conf_themes.php | 0
4 files changed, 29 insertions(+), 29 deletions(-)
rename delibera_roles.php => delibera_conf_roles.php (100%)
rename delibera_themes.php => delibera_conf_themes.php (100%)
diff --git a/delibera.php b/delibera.php
index 23678e4..cab70d3 100644
--- a/delibera.php
+++ b/delibera.php
@@ -133,7 +133,7 @@ function delibera_pauta_redirect_filter($location, $post_id = null) {
}
add_filter('redirect_post_location', 'delibera_pauta_redirect_filter', '99');
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_themes.php';
+require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_conf_themes.php';
if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'delibera_filtros.php'))
{
diff --git a/delibera_conf.php b/delibera_conf.php
index 3914412..9912d28 100644
--- a/delibera_conf.php
+++ b/delibera_conf.php
@@ -1,22 +1,22 @@
getThemeDir('creta');
$opt['minimo_validacao'] = '10';
@@ -57,7 +57,7 @@ function delibera_get_main_config($config = array()) {
$opt['cabecalho_arquivo'] = __( 'Bem-vindo a plataforma de debate do ', 'delibera' ).get_bloginfo('name');
$opt['todos_usuarios_logados_podem_participar'] = 'N';
$opt['data_fixa_nova_pauta_externa'] = '';
-
+
return array_merge($opt, $config);
}
add_filter('delibera_get_config', 'delibera_get_main_config');
@@ -65,24 +65,24 @@ function delibera_get_main_config($config = array()) {
/**
* 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]);
@@ -98,7 +98,7 @@ function delibera_conf_page()
wp_die($e->getMessage());
}
}
-
+
// atualiza os permalinks por conta da opção "criar_pauta_pelo_front_end"
flush_rewrite_rules();
@@ -110,11 +110,11 @@ function delibera_conf_page()
$opt = delibera_get_config();
?>
-
+
Configurações gerais
-
Date: Mon, 18 Jan 2016 23:05:27 -0200
Subject: [PATCH 009/435] =?UTF-8?q?Padroniza=20nome=20do=20arquivo=20que?=
=?UTF-8?q?=20faz=20altera=C3=A7=C3=A3o=20nos=20comment=C3=A1rios?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera.php | 1 -
delibera_comments.php | 1 +
delibera_edit_comment.php => delibera_comments_edit.php | 0
3 files changed, 1 insertion(+), 1 deletion(-)
rename delibera_edit_comment.php => delibera_comments_edit.php (100%)
diff --git a/delibera.php b/delibera.php
index cab70d3..dd78c3c 100644
--- a/delibera.php
+++ b/delibera.php
@@ -804,7 +804,6 @@ function delibera_save_post($post_id, $post)
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_curtir.php';
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_discordar.php';
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_seguir.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_edit_comment.php';
if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'mailer') && file_exists(__DIR__.DIRECTORY_SEPARATOR.'mailer'.DIRECTORY_SEPARATOR.'delibera_mailer.php'))
{
diff --git a/delibera_comments.php b/delibera_comments.php
index 5378a6f..3081e9f 100644
--- a/delibera_comments.php
+++ b/delibera_comments.php
@@ -1,6 +1,7 @@
Date: Tue, 19 Jan 2016 09:41:51 -0200
Subject: [PATCH 010/435] =?UTF-8?q?Padroniza=20nome=20dos=20arquivos=20por?=
=?UTF-8?q?=20se=C3=A7=C3=A3o?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera_init.php | 3 ++-
delibera_theme_selector.php => delibera_plan_theme.php | 0
...a_registered_users_only.php => delibera_plan_users_only.php | 0
3 files changed, 2 insertions(+), 1 deletion(-)
rename delibera_theme_selector.php => delibera_plan_theme.php (100%)
rename delibera_registered_users_only.php => delibera_plan_users_only.php (100%)
diff --git a/delibera_init.php b/delibera_init.php
index 28e602f..3a0bfa7 100644
--- a/delibera_init.php
+++ b/delibera_init.php
@@ -304,7 +304,8 @@ function delibera_print_styles()
{
}
-add_action('wp_print_styles', 'delibera_print_styles');*/
+add_action('wp_print_styles', 'delibera_print_styles');
+*/
function delibera_print_styles()
{
diff --git a/delibera_theme_selector.php b/delibera_plan_theme.php
similarity index 100%
rename from delibera_theme_selector.php
rename to delibera_plan_theme.php
diff --git a/delibera_registered_users_only.php b/delibera_plan_users_only.php
similarity index 100%
rename from delibera_registered_users_only.php
rename to delibera_plan_users_only.php
From 7c0641bcacae810a571d567ffe58c429a0bb61e7 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Tue, 19 Jan 2016 09:56:40 -0200
Subject: [PATCH 011/435] Criar arquivos utils para funcoes que nao sao actions
ou filters
---
delibera.php | 527 +-----------------------------------------
delibera_comments.php | 322 +++++++++++++++++++++++++-
delibera_init.php | 18 ++
delibera_plan.php | 19 ++
delibera_utils.php | 164 +++++++++++++
5 files changed, 524 insertions(+), 526 deletions(-)
create mode 100644 delibera_utils.php
diff --git a/delibera.php b/delibera.php
index dd78c3c..7d9cbea 100644
--- a/delibera.php
+++ b/delibera.php
@@ -63,32 +63,9 @@
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_init.php';
-/**
- *
- * Revemos acentos do texto
- * @param string $texto
- * @return string
- */
-function delibera_tiracento($texto)
-{
- $trocarIsso = array('à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ù','ü','ú','ÿ','À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ñ','Ò','Ó','Ô','Õ','Ö','Ù','Ü','Ú','Ÿ',);
- $porIsso = array('a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','u','u','u','y','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N','O','O','O','O','O','U','U','U','Y',);
- $titletext = str_replace($trocarIsso, $porIsso, $texto);
- return $titletext;
-}
+require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_utils.php';
-function delibera_slug_under($label)
-{
- $slug = delibera_tiracento($label);
- $slug = str_replace(array("'",'"','.',',',';','!'), '', $slug);
- $slug = str_replace(array(' ', '-'), '_', $slug);
- return strtolower($slug);
-}
-
-function is_pauta($post = false)
-{
- return get_post_type($post) == 'pauta' ? true : false;
-}
+require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_comments.php';
/**
*
@@ -439,15 +416,6 @@ function delibera_pauta_meta()
/', '', $text)) <= $length) {
- return $text;
- }
- // splits all html-tags to scanable lines
- preg_match_all('/(<.+?>)?([^<>]*)/s', $text, $lines, PREG_SET_ORDER);
- $total_length = strlen($ending);
- $open_tags = array();
- $truncate = '';
- foreach ($lines as $line_matchings) {
- // if there is any html-tag in this line, handle it and add it (uncounted) to the output
- if (!empty($line_matchings[1])) {
- // if it's an "empty element" with or without xhtml-conform closing slash
- if (preg_match('/^<(\s*.+?\/\s*|\s*(img|br|input|hr|area|base|basefont|col|frame|isindex|link|meta|param)(\s.+?)?)>$/is', $line_matchings[1])) {
- // do nothing
- // if tag is a closing tag
- } else if (preg_match('/^<\s*\/([^\s]+?)\s*>$/s', $line_matchings[1], $tag_matchings)) {
- // delete tag from $open_tags list
- $pos = array_search($tag_matchings[1], $open_tags);
- if ($pos !== false) {
- unset($open_tags[$pos]);
- }
- // if tag is an opening tag
- } else if (preg_match('/^<\s*([^\s>!]+).*?>$/s', $line_matchings[1], $tag_matchings)) {
- // add tag to the beginning of $open_tags list
- array_unshift($open_tags, strtolower($tag_matchings[1]));
- }
- // add html-tag to $truncate'd text
- $truncate .= $line_matchings[1];
- }
- // calculate the length of the plain text part of the line; handle entities as one character
- $content_length = strlen(preg_replace('/&[0-9a-z]{2,8};|[0-9]{1,7};|[0-9a-f]{1,6};/i', ' ', $line_matchings[2]));
- if ($total_length+$content_length> $length) {
- // the number of characters which are left
- $left = $length - $total_length;
- $entities_length = 0;
- // search for html entities
- if (preg_match_all('/&[0-9a-z]{2,8};|[0-9]{1,7};|[0-9a-f]{1,6};/i', $line_matchings[2], $entities, PREG_OFFSET_CAPTURE)) {
- // calculate the real length of all entities in the legal range
- foreach ($entities[0] as $entity) {
- if ($entity[1]+1-$entities_length <= $left) {
- $left--;
- $entities_length += strlen($entity[0]);
- } else {
- // no more characters left
- break;
- }
- }
- }
- $truncate .= substr($line_matchings[2], 0, $left+$entities_length);
- // maximum lenght is reached, so get off the loop
- break;
- } else {
- $truncate .= $line_matchings[2];
- $total_length += $content_length;
- }
- // if the maximum length is reached, get off the loop
- if($total_length>= $length) {
- break;
- }
- }
- } else {
- if (strlen($text) <= $length) {
- return $text;
- } else {
- $truncate = substr($text, 0, $length - strlen($ending));
- }
- }
- // if the words shouldn't be cut in the middle...
- if (!$exact) {
- // ...search the last occurance of a space...
- $spacepos = strrpos($truncate, ' ');
- if (isset($spacepos)) {
- // ...and cut the text in this position
- $truncate = substr($truncate, 0, $spacepos);
- }
- }
- // add the defined ending to the text
- $truncate .= $ending;
- if($considerHtml) {
- // close all unclosed html-tags
- foreach ($open_tags as $tag) {
- $truncate .= '' . $tag . '>';
- }
- }
- return $truncate;
-}
-
-// Fim Inicialização do plugin
-
-// Menu de configuração
-
-function delibera_config_menu()
-{
- /*if (function_exists('add_menu_page'))
- add_menu_page( __('Delibera','delibera'), __('Delibera plugin','delibera'), 'manage_options', 'delibera-config', 'delibera_conf_page');*/
-
- $base_page = 'delibera-config';
-
- if (function_exists('add_menu_page'))
- {
- add_object_page( __('Delibera','delibera'), __('Delibera','delibera'), 'manage_options', $base_page, array(), WP_PLUGIN_URL."/delibera/images/delibera_icon.png");
- //add_submenu_page($base_page, __('Pesquisar Contatos','delibera'), __('Pesquisar Contatos','delibera'), 'manage_options', 'delibera-gerenciar', 'delibera_GerenciarContato' );
- //add_submenu_page($base_page, __('Criar Contato','delibera'), __('Criar Contato','delibera'), 'manage_options', 'delibera-criar', 'delibera_CriarContato' );
- //add_submenu_page($base_page, __('Importar Contatos','delibera'), __('Importar Contatos','delibera'), 'manage_options', 'delibera-importar', 'delibera_ImportarContato' );
- add_submenu_page($base_page, __('Configurações do Plugin','delibera'),__('Configurações do Plugin','delibera'), 'manage_options', 'delibera-config', 'delibera_conf_page');
- do_action('delibera_menu_itens', $base_page);
- }
-}
-
-/**
- * Create a form table from an array of rows
- */
-function delibera_form_table($rows) {
- $content = '';
- return $content;
-}
-
-// Funções de conteudo
-
/**
*
* Retorna post do tipo pauta em uma determinada situacao (validacao, discussao, emvotacao ou comresolucao), usando um filtro
@@ -1203,262 +1020,6 @@ function delibera_get_resolucoes($filtro = array())
return delibera_get_pautas_em($filtro, 'comresolucao');
}
-require_once 'delibera_comments_template.php';
-
-function delibera_get_comments_padrao($args = array(), $file = '/comments.php' )
-{
- global $delibera_comments_padrao;
- $delibera_comments_padrao = true;
- comments_template($file);
- $delibera_comments_padrao = false;
-}
-
-/**
- * Retorna comentários do Delibera de acordo com o tipo.
- *
- * @param int $post_id
- * @param string|array $tipo um tipo ou um array de tipos
- * @return array
- */
-function delibera_get_comments($post_id, $tipo, $args = array())
-{
- if (is_string($tipo)) {
- $tipo = array($tipo);
- }
-
- $args = array_merge(array('post_id' => $post_id), $args);
- $comments = get_comments($args);
- $ret = array();
- foreach ($comments as $comment)
- {
- $comment_tipo = get_comment_meta($comment->comment_ID, 'delibera_comment_tipo', true);
- if (in_array($comment_tipo, $tipo)) {
- $ret[] = $comment;
- }
- }
- return $ret;
-}
-
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_comments.php';
-
-
-function delibera_wp_list_comments($args = array(), $comments = null)
-{
- global $post;
- global $delibera_comments_padrao;
-
- if(get_post_type($post) == "pauta")
- {
- $situacao = delibera_get_situacao($post->ID);
-
- if($delibera_comments_padrao === true)
- {
- $args['post_id'] = $post->ID;
- $args['walker'] = new Delibera_Walker_Comment_padrao();
- $comments = get_comments($args);
- $ret = array();
- foreach ($comments as $comment)
- {
- $tipo_tmp = get_comment_meta($comment->comment_ID, 'delibera_comment_tipo', true);
- if(strlen($tipo_tmp) <= 0 || $tipo_tmp === false)
- {
- $ret[] = $comment;
- }
- }
- wp_list_comments($args, $ret);
- }
- elseif($situacao->slug == 'validacao')
- {
- //comment_form();
- $args['walker'] = new Delibera_Walker_Comment();
- //$args['callback'] = 'delibera_comments_list';
- ?>
-
-
-
- slug == 'comresolucao')
- {
- $args['walker'] = new Delibera_Walker_Comment();
- wp_list_comments($args, $comments);
-
- $encaminhamentos = delibera_get_comments_encaminhamentos($post->ID);
- $discussoes = delibera_get_comments_discussoes($post->ID);
- ?>
-
-
-
-
-
-
- query( $args );
-}
-
-function delibera_get_comments_validacoes($post_id)
-{
- return delibera_get_comments($post_id, 'validacao');
-}
-
-function delibera_get_comments_discussoes($post_id)
-{
- return delibera_get_comments($post_id, 'discussao');
-}
-
-function delibera_get_comments_encaminhamentos($post_id)
-{
- return delibera_get_comments($post_id, 'encaminhamento');
-}
-
-/**
- * Retorna os encaminhamentos dos tipos 'encaminhamento' e
- * 'encaminhamento_selecionado' (aqueles que foram selecionados
- * pelo relator para ir para votação).
- *
- * @param int $post_id
- * @return array
- */
-function delibera_get_comments_all_encaminhamentos($post_id)
-{
- return delibera_get_comments($post_id, array('encaminhamento', 'encaminhamento_selecionado'));
-}
-
-/**
- * Retorna os encaminhamentos do tipo 'encaminhamento_selecionado'
- * (aqueles que foram selecionados pelo relator para ir para votação).
- *
- * @param int $post_id
- * @return array
- */
-function delibera_get_comments_encaminhamentos_selecionados($post_id)
-{
- return delibera_get_comments($post_id, 'encaminhamento_selecionado');
-}
-
-
-function delibera_get_comments_votacoes($post_id)
-{
- return delibera_get_comments($post_id, 'voto');
-}
-
-function delibera_get_comments_resolucoes($post_id)
-{
- if(has_filter('delibera_get_resolucoes'))
- {
- return apply_filters('delibera_get_resolucoes', delibera_get_comments($post_id, 'resolucao'));
- }
- return delibera_get_comments($post_id, 'resolucao');
-}
-
-/**
- *
- * Busca comentários com o tipo em tipos
- * @param array $comments lista de comentários a ser filtrada
- * @param array $tipos tipos aceitos
- */
-function delibera_comments_filter_portipo($comments, $tipos)
-{
- $ret = array();
-
- foreach ($comments as $comment)
- {
- $tipo = get_comment_meta($comment->comment_ID, 'delibera_comment_tipo', true);
- if(array_search($tipo, $tipos) !== false)
- {
- $ret[] = $comment;
- }
- }
- return $ret;
-}
-
-/**
- *
- * Filtro que retorna Comentário filtrados pela a situação da pauta
- * @param array $comments
- * @param int $postID
- * @return array Comentários filtrados
- */
-function delibera_get_comments_filter($comments)
-{
- global $delibera_comments_padrao;
-
- if($delibera_comments_padrao === true) return $comments;
-
- $ret = array();
-
- if(count($comments) > 0)
- {
- if(get_post_type($comments[0]->comment_post_ID) == "pauta")
- {
- $situacao = delibera_get_situacao($comments[0]->comment_post_ID);
- switch ($situacao->slug)
- {
- case 'validacao':
- {
- $ret = delibera_comments_filter_portipo($comments, array('validacao'));
- }break;
- case 'discussao':
- {
- $ret = delibera_comments_filter_portipo($comments, array('discussao', 'encaminhamento'));
- }break;
- case 'relatoria':
- {
- $ret = delibera_comments_filter_portipo($comments, array('discussao', 'encaminhamento'));
- }break;
- case 'emvotacao':
- {
- $ret = delibera_comments_filter_portipo($comments, array('voto'));
- }break;
- case 'comresolucao':
- {
- $ret = delibera_comments_filter_portipo($comments, array('resolucao'));
- }break;
- }
- return $ret;
- }
- }
- return $comments;
-}
-
-add_filter('comments_array', 'delibera_get_comments_filter');
/**
* Retorna um inteiro indicando quantos dias faltam para o fim do prazo
@@ -1557,70 +1118,6 @@ function delibera_post_custom_column($column)
add_action('manage_posts_custom_column', 'delibera_post_custom_column');
-function delibera_comment_number($postID, $tipo)
-{
- switch($tipo)
- {
- case 'validacao':
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_validacoes', true));
- break;
- case 'discussao':
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_discussoes', true));
- break;
- case 'encaminhamento':
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_encaminhamentos', true));
- break;
- case 'voto':
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_votos', true));
- break;
- /*case 'resolucao':
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_resolucoes', true)); TODO Número de resoluções, baseado no mínimo de votos, ou marcação especial
- break;*/
- case 'todos':
- return get_post($postID)->comment_count;
- break;
- default:
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_padroes', true));
- break;
- }
-}
-
-function delibera_comment_number_filtro($count, $postID)
-{
- if (!is_pauta()) {
- return $count;
- }
- $situacao = delibera_get_situacao($postID);
-
- if (!$situacao) {
- return;
- }
-
- switch($situacao->slug)
- {
- case 'validacao':
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_validacoes', true));
- break;
- case 'discussao':
- case 'comresolucao':
- return doubleval(
- get_post_meta($postID, 'delibera_numero_comments_encaminhamentos', true) +
- get_post_meta($postID, 'delibera_numero_comments_discussoes', true)
- );
- break;
- case 'relatoria':
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_encaminhamentos', true));
- break;
- case 'emvotacao':
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_votos', true));
- break;
- default:
- return doubleval(get_post_meta($postID, 'delibera_numero_comments_padroes', true));
- break;
- }
-}
-
-add_filter('get_comments_number', 'delibera_comment_number_filtro', 10, 2);
function delibera_restrict_listings()
{
@@ -1978,26 +1475,6 @@ function delibera_set_novo_prazo_discussao_relatoria($postID, $inova_data, $opts
}
-function delibera_get_plan_config()
-{
- $plan = 'N';
-
- if( is_multisite() && get_current_blog_id() != 1 )
- {
- switch_to_blog(1);
- $opt = delibera_get_config();
- $plan = $opt['plan_restriction'];
- restore_current_blog();
- }
- else
- {
- $opt = delibera_get_config();
- $plan = $opt['plan_restriction'];
- }
-
- return $plan;
-}
-
add_action('init', 'delibera_nova_pauta_create_action');
function delibera_nova_pauta_create_action(){
diff --git a/delibera_comments.php b/delibera_comments.php
index 3081e9f..f5c15eb 100644
--- a/delibera_comments.php
+++ b/delibera_comments.php
@@ -481,4 +481,324 @@ function delibera_pre_edit_comment($dados)
//add_filter('comment_save_pre', 'delibera_pre_edit_comment'); //TODO Verificar edição
-// require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_template.php';
\ No newline at end of file
+// require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_template.php';
+
+function delibera_get_comments_padrao($args = array(), $file = '/comments.php' )
+{
+ global $delibera_comments_padrao;
+ $delibera_comments_padrao = true;
+ comments_template($file);
+ $delibera_comments_padrao = false;
+}
+
+/**
+ * Retorna comentários do Delibera de acordo com o tipo.
+ *
+ * @param int $post_id
+ * @param string|array $tipo um tipo ou um array de tipos
+ * @return array
+ */
+function delibera_get_comments($post_id, $tipo, $args = array())
+{
+ if (is_string($tipo)) {
+ $tipo = array($tipo);
+ }
+
+ $args = array_merge(array('post_id' => $post_id), $args);
+ $comments = get_comments($args);
+ $ret = array();
+ foreach ($comments as $comment)
+ {
+ $comment_tipo = get_comment_meta($comment->comment_ID, 'delibera_comment_tipo', true);
+ if (in_array($comment_tipo, $tipo)) {
+ $ret[] = $comment;
+ }
+ }
+ return $ret;
+}
+
+require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_comments.php';
+
+
+function delibera_wp_list_comments($args = array(), $comments = null)
+{
+ global $post;
+ global $delibera_comments_padrao;
+
+ if(get_post_type($post) == "pauta")
+ {
+ $situacao = delibera_get_situacao($post->ID);
+
+ if($delibera_comments_padrao === true)
+ {
+ $args['post_id'] = $post->ID;
+ $args['walker'] = new Delibera_Walker_Comment_padrao();
+ $comments = get_comments($args);
+ $ret = array();
+ foreach ($comments as $comment)
+ {
+ $tipo_tmp = get_comment_meta($comment->comment_ID, 'delibera_comment_tipo', true);
+ if(strlen($tipo_tmp) <= 0 || $tipo_tmp === false)
+ {
+ $ret[] = $comment;
+ }
+ }
+ wp_list_comments($args, $ret);
+ }
+ elseif($situacao->slug == 'validacao')
+ {
+ //comment_form();
+ $args['walker'] = new Delibera_Walker_Comment();
+ //$args['callback'] = 'delibera_comments_list';
+ ?>
+
+
+
+ slug == 'comresolucao')
+ {
+ $args['walker'] = new Delibera_Walker_Comment();
+ wp_list_comments($args, $comments);
+
+ $encaminhamentos = delibera_get_comments_encaminhamentos($post->ID);
+ $discussoes = delibera_get_comments_discussoes($post->ID);
+ ?>
+
+
+
+
+
+
+ query( $args );
+}
+
+function delibera_get_comments_validacoes($post_id)
+{
+ return delibera_get_comments($post_id, 'validacao');
+}
+
+function delibera_get_comments_discussoes($post_id)
+{
+ return delibera_get_comments($post_id, 'discussao');
+}
+
+function delibera_get_comments_encaminhamentos($post_id)
+{
+ return delibera_get_comments($post_id, 'encaminhamento');
+}
+
+/**
+ * Retorna os encaminhamentos dos tipos 'encaminhamento' e
+ * 'encaminhamento_selecionado' (aqueles que foram selecionados
+ * pelo relator para ir para votação).
+ *
+ * @param int $post_id
+ * @return array
+ */
+function delibera_get_comments_all_encaminhamentos($post_id)
+{
+ return delibera_get_comments($post_id, array('encaminhamento', 'encaminhamento_selecionado'));
+}
+
+/**
+ * Retorna os encaminhamentos do tipo 'encaminhamento_selecionado'
+ * (aqueles que foram selecionados pelo relator para ir para votação).
+ *
+ * @param int $post_id
+ * @return array
+ */
+function delibera_get_comments_encaminhamentos_selecionados($post_id)
+{
+ return delibera_get_comments($post_id, 'encaminhamento_selecionado');
+}
+
+
+function delibera_get_comments_votacoes($post_id)
+{
+ return delibera_get_comments($post_id, 'voto');
+}
+
+function delibera_get_comments_resolucoes($post_id)
+{
+ if(has_filter('delibera_get_resolucoes'))
+ {
+ return apply_filters('delibera_get_resolucoes', delibera_get_comments($post_id, 'resolucao'));
+ }
+ return delibera_get_comments($post_id, 'resolucao');
+}
+
+/**
+ *
+ * Busca comentários com o tipo em tipos
+ * @param array $comments lista de comentários a ser filtrada
+ * @param array $tipos tipos aceitos
+ */
+function delibera_comments_filter_portipo($comments, $tipos)
+{
+ $ret = array();
+
+ foreach ($comments as $comment)
+ {
+ $tipo = get_comment_meta($comment->comment_ID, 'delibera_comment_tipo', true);
+ if(array_search($tipo, $tipos) !== false)
+ {
+ $ret[] = $comment;
+ }
+ }
+ return $ret;
+}
+
+/**
+ *
+ * Filtro que retorna Comentário filtrados pela a situação da pauta
+ * @param array $comments
+ * @param int $postID
+ * @return array Comentários filtrados
+ */
+function delibera_get_comments_filter($comments)
+{
+ global $delibera_comments_padrao;
+
+ if($delibera_comments_padrao === true) return $comments;
+
+ $ret = array();
+
+ if(count($comments) > 0)
+ {
+ if(get_post_type($comments[0]->comment_post_ID) == "pauta")
+ {
+ $situacao = delibera_get_situacao($comments[0]->comment_post_ID);
+ switch ($situacao->slug)
+ {
+ case 'validacao':
+ {
+ $ret = delibera_comments_filter_portipo($comments, array('validacao'));
+ }break;
+ case 'discussao':
+ {
+ $ret = delibera_comments_filter_portipo($comments, array('discussao', 'encaminhamento'));
+ }break;
+ case 'relatoria':
+ {
+ $ret = delibera_comments_filter_portipo($comments, array('discussao', 'encaminhamento'));
+ }break;
+ case 'emvotacao':
+ {
+ $ret = delibera_comments_filter_portipo($comments, array('voto'));
+ }break;
+ case 'comresolucao':
+ {
+ $ret = delibera_comments_filter_portipo($comments, array('resolucao'));
+ }break;
+ }
+ return $ret;
+ }
+ }
+ return $comments;
+}
+
+add_filter('comments_array', 'delibera_get_comments_filter');
+
+function delibera_comment_number($postID, $tipo)
+{
+ switch($tipo)
+ {
+ case 'validacao':
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_validacoes', true));
+ break;
+ case 'discussao':
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_discussoes', true));
+ break;
+ case 'encaminhamento':
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_encaminhamentos', true));
+ break;
+ case 'voto':
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_votos', true));
+ break;
+ /*case 'resolucao':
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_resolucoes', true)); TODO Número de resoluções, baseado no mínimo de votos, ou marcação especial
+ break;*/
+ case 'todos':
+ return get_post($postID)->comment_count;
+ break;
+ default:
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_padroes', true));
+ break;
+ }
+}
+
+function delibera_comment_number_filtro($count, $postID)
+{
+ if (!is_pauta()) {
+ return $count;
+ }
+ $situacao = delibera_get_situacao($postID);
+
+ if (!$situacao) {
+ return;
+ }
+
+ switch($situacao->slug)
+ {
+ case 'validacao':
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_validacoes', true));
+ break;
+ case 'discussao':
+ case 'comresolucao':
+ return doubleval(
+ get_post_meta($postID, 'delibera_numero_comments_encaminhamentos', true) +
+ get_post_meta($postID, 'delibera_numero_comments_discussoes', true)
+ );
+ break;
+ case 'relatoria':
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_encaminhamentos', true));
+ break;
+ case 'emvotacao':
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_votos', true));
+ break;
+ default:
+ return doubleval(get_post_meta($postID, 'delibera_numero_comments_padroes', true));
+ break;
+ }
+}
+
+add_filter('get_comments_number', 'delibera_comment_number_filtro', 10, 2);
\ No newline at end of file
diff --git a/delibera_init.php b/delibera_init.php
index 3a0bfa7..00a5b0e 100644
--- a/delibera_init.php
+++ b/delibera_init.php
@@ -382,4 +382,22 @@ function delibera_get_available_languages() {
}
return $langs;
+}
+
+function delibera_config_menu()
+{
+ /*if (function_exists('add_menu_page'))
+ add_menu_page( __('Delibera','delibera'), __('Delibera plugin','delibera'), 'manage_options', 'delibera-config', 'delibera_conf_page');*/
+
+ $base_page = 'delibera-config';
+
+ if (function_exists('add_menu_page'))
+ {
+ add_object_page( __('Delibera','delibera'), __('Delibera','delibera'), 'manage_options', $base_page, array(), WP_PLUGIN_URL."/delibera/images/delibera_icon.png");
+ //add_submenu_page($base_page, __('Pesquisar Contatos','delibera'), __('Pesquisar Contatos','delibera'), 'manage_options', 'delibera-gerenciar', 'delibera_GerenciarContato' );
+ //add_submenu_page($base_page, __('Criar Contato','delibera'), __('Criar Contato','delibera'), 'manage_options', 'delibera-criar', 'delibera_CriarContato' );
+ //add_submenu_page($base_page, __('Importar Contatos','delibera'), __('Importar Contatos','delibera'), 'manage_options', 'delibera-importar', 'delibera_ImportarContato' );
+ add_submenu_page($base_page, __('Configurações do Plugin','delibera'),__('Configurações do Plugin','delibera'), 'manage_options', 'delibera-config', 'delibera_conf_page');
+ do_action('delibera_menu_itens', $base_page);
+ }
}
\ No newline at end of file
diff --git a/delibera_plan.php b/delibera_plan.php
index adc87ac..8160529 100644
--- a/delibera_plan.php
+++ b/delibera_plan.php
@@ -198,4 +198,23 @@ function delibera_plan_config_page()
add_action('delibera_config_page_extra', 'delibera_plan_config_page');
+function delibera_get_plan_config()
+{
+ $plan = 'N';
+
+ if( is_multisite() && get_current_blog_id() != 1 )
+ {
+ switch_to_blog(1);
+ $opt = delibera_get_config();
+ $plan = $opt['plan_restriction'];
+ restore_current_blog();
+ }
+ else
+ {
+ $opt = delibera_get_config();
+ $plan = $opt['plan_restriction'];
+ }
+
+ return $plan;
+}
?>
diff --git a/delibera_utils.php b/delibera_utils.php
new file mode 100644
index 0000000..b8e8c83
--- /dev/null
+++ b/delibera_utils.php
@@ -0,0 +1,164 @@
+/', '', $text)) <= $length) {
+ return $text;
+ }
+ // splits all html-tags to scanable lines
+ preg_match_all('/(<.+?>)?([^<>]*)/s', $text, $lines, PREG_SET_ORDER);
+ $total_length = strlen($ending);
+ $open_tags = array();
+ $truncate = '';
+ foreach ($lines as $line_matchings) {
+ // if there is any html-tag in this line, handle it and add it (uncounted) to the output
+ if (!empty($line_matchings[1])) {
+ // if it's an "empty element" with or without xhtml-conform closing slash
+ if (preg_match('/^<(\s*.+?\/\s*|\s*(img|br|input|hr|area|base|basefont|col|frame|isindex|link|meta|param)(\s.+?)?)>$/is', $line_matchings[1])) {
+ // do nothing
+ // if tag is a closing tag
+ } else if (preg_match('/^<\s*\/([^\s]+?)\s*>$/s', $line_matchings[1], $tag_matchings)) {
+ // delete tag from $open_tags list
+ $pos = array_search($tag_matchings[1], $open_tags);
+ if ($pos !== false) {
+ unset($open_tags[$pos]);
+ }
+ // if tag is an opening tag
+ } else if (preg_match('/^<\s*([^\s>!]+).*?>$/s', $line_matchings[1], $tag_matchings)) {
+ // add tag to the beginning of $open_tags list
+ array_unshift($open_tags, strtolower($tag_matchings[1]));
+ }
+ // add html-tag to $truncate'd text
+ $truncate .= $line_matchings[1];
+ }
+ // calculate the length of the plain text part of the line; handle entities as one character
+ $content_length = strlen(preg_replace('/&[0-9a-z]{2,8};|[0-9]{1,7};|[0-9a-f]{1,6};/i', ' ', $line_matchings[2]));
+ if ($total_length+$content_length> $length) {
+ // the number of characters which are left
+ $left = $length - $total_length;
+ $entities_length = 0;
+ // search for html entities
+ if (preg_match_all('/&[0-9a-z]{2,8};|[0-9]{1,7};|[0-9a-f]{1,6};/i', $line_matchings[2], $entities, PREG_OFFSET_CAPTURE)) {
+ // calculate the real length of all entities in the legal range
+ foreach ($entities[0] as $entity) {
+ if ($entity[1]+1-$entities_length <= $left) {
+ $left--;
+ $entities_length += strlen($entity[0]);
+ } else {
+ // no more characters left
+ break;
+ }
+ }
+ }
+ $truncate .= substr($line_matchings[2], 0, $left+$entities_length);
+ // maximum lenght is reached, so get off the loop
+ break;
+ } else {
+ $truncate .= $line_matchings[2];
+ $total_length += $content_length;
+ }
+ // if the maximum length is reached, get off the loop
+ if($total_length>= $length) {
+ break;
+ }
+ }
+ } else {
+ if (strlen($text) <= $length) {
+ return $text;
+ } else {
+ $truncate = substr($text, 0, $length - strlen($ending));
+ }
+ }
+ // if the words shouldn't be cut in the middle...
+ if (!$exact) {
+ // ...search the last occurance of a space...
+ $spacepos = strrpos($truncate, ' ');
+ if (isset($spacepos)) {
+ // ...and cut the text in this position
+ $truncate = substr($truncate, 0, $spacepos);
+ }
+ }
+ // add the defined ending to the text
+ $truncate .= $ending;
+ if($considerHtml) {
+ // close all unclosed html-tags
+ foreach ($open_tags as $tag) {
+ $truncate .= '' . $tag . '>';
+ }
+ }
+ return $truncate;
+}
+
+/**
+ * Create a form table from an array of rows
+ */
+function delibera_form_table($rows) {
+ $content = '';
+ return $content;
+}
\ No newline at end of file
From 9b6225ca7211555b2b359c44658755943020b6f6 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Tue, 19 Jan 2016 10:30:14 -0200
Subject: [PATCH 012/435] =?UTF-8?q?Remove=20arquivos=20n=C3=A3o=20utilizad?=
=?UTF-8?q?os=20e=20move=20shortcode=20da=20timeline?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera.php | 7 ----
delibera_loop_pauta.php | 64 -------------------------------
delibera_shortcodes.php | 56 +++++++++++++++------------
delibera_taxs.php | 5 ---
timeline/delibera_timeline.php | 69 ++++++++++++----------------------
5 files changed, 56 insertions(+), 145 deletions(-)
delete mode 100644 delibera_loop_pauta.php
delete mode 100644 delibera_taxs.php
diff --git a/delibera.php b/delibera.php
index 7d9cbea..1fc6f25 100644
--- a/delibera.php
+++ b/delibera.php
@@ -1195,13 +1195,6 @@ function delibera_ultimas($tipo = 'pauta', $args = array(), $count = 5)
}
}
-function delibera_timeline($post_id = false, $tipo_data = false)
-{
- require_once __DIR__.DIRECTORY_SEPARATOR.'timeline/delibera_timeline.php';
- $timeline = new delibera_timeline();
- $timeline->generate($post_id, $tipo_data);
-}
-
function delibera_the_posts($posts)
{
if (empty($posts)) return $posts;
diff --git a/delibera_loop_pauta.php b/delibera_loop_pauta.php
deleted file mode 100644
index f19f153..0000000
--- a/delibera_loop_pauta.php
+++ /dev/null
@@ -1,64 +0,0 @@
->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ID ) == -1 )
- _e( 'Prazo encerrado', 'delibera' );
- else
- printf( _n( 'Encerra em um dia', 'Encerra em %1$s dias', delibera_get_prazo( $post->ID ), 'delibera' ), number_format_i18n( delibera_get_prazo( $post->ID ) ) );
- ?>
-
-
-
-
-
-
-
-
-
-
- post_content;
- $content = apply_filters('the_content', $content);
- $content = str_replace(']]>', ']]>', $content);
- echo $content;
- ?>
- '
' . __( 'Páginas:', 'delibera' ), 'after' => '
' ) ); ?>
-
-
-
-
-
-
-
-
- |
-
-
-
- ID)->name; ?>
-
-
-
diff --git a/delibera_shortcodes.php b/delibera_shortcodes.php
index 4ac732c..b907ffe 100644
--- a/delibera_shortcodes.php
+++ b/delibera_shortcodes.php
@@ -1,16 +1,16 @@
-';
$post = $old;
-
+
return ''; // Retornar código da representação
}
add_shortcode( 'delibera_lista_de_propostas', 'delibera_replace_propostas' );
function delibera_replace_pautas($matches)
-{
+{
$temp = explode(',', $matches[1]); // configurações da shorttag
$count = count($temp);
-
+
$param = array(); // TODO Tratar Parametros
-
+
$html = delibera_get_pautas($param);
$wp_posts = $html;
global $post;
@@ -46,18 +46,18 @@ function delibera_replace_pautas($matches)
}
echo ' ';
$post = $old;
-
+
return ''; // Retornar código da representação
}
add_shortcode( 'delibera_lista_de_pautas', 'delibera_replace_pautas' );
function delibera_replace_resolucoes($matches)
-{
+{
$temp = explode(',', $matches[1]); // configurações da shorttag
$count = count($temp);
-
+
$param = array(); // TODO Tratar Parametros
-
+
$html = delibera_get_resolucoes($param);
$wp_posts = $html;
global $post;
@@ -70,30 +70,37 @@ function delibera_replace_resolucoes($matches)
}
echo '';
$post = $old;
-
+
return ''; // Retornar código da representação
}
add_shortcode( 'delibera_lista_de_resolucoes', 'delibera_replace_resolucoes' );
function delibera_replace_agendamentos($matches)
-{
+{
global $wp_filter;
$temp = explode(',', $matches[1]); // configurações da shorttag
$count = count($temp);
-
+
$param = array(); // TODO Tratar Parametros
-
+
$html = print_r($wp_filter, true);
-
+
return $html; // Retornar código da representação
}
add_shortcode( 'delibera_lista_de_agendamentos', 'delibera_replace_agendamentos' );
+function delibera_timeline($post_id = false, $tipo_data = false)
+{
+ require_once __DIR__.DIRECTORY_SEPARATOR.'timeline/delibera_timeline.php';
+ $timeline = new delibera_timeline();
+ $timeline->generate($post_id, $tipo_data);
+}
+
function delibera_replace_timeline($args)
{
$atts = array('post_id' => false, 'tipo_data' => false);
$atts = array_merge($atts, $args);
-
+
return delibera_timeline($atts['post_id'], $atts['tipo_data']);
}
add_shortcode( 'delibera_timeline', 'delibera_replace_timeline' );
@@ -103,7 +110,7 @@ function delibera_replace_like($matches)
$temp = explode(',', $matches[1]); // configurações da shorttag
$count = count($temp);
$param = array(); // TODO Tratar Parametros
-
+
return delibera_gerar_curtir(get_the_ID());
}
add_shortcode( 'delibera_like', 'delibera_replace_like' );
@@ -113,7 +120,7 @@ function delibera_replace_unlike($matches)
$temp = explode(',', $matches[1]); // configurações da shorttag
$count = count($temp);
$param = array(); // TODO Tratar Parametros
-
+
return delibera_gerar_discordar(get_the_ID());
}
add_shortcode( 'delibera_unlike', 'delibera_replace_unlike' );
@@ -123,7 +130,7 @@ function delibera_replace_seguir($matches)
$temp = explode(',', $matches[1]); // configurações da shorttag
$count = count($temp);
$param = array(); // TODO Tratar Parametros
-
+
return delibera_gerar_seguir(get_the_ID());
}
add_shortcode( 'delibera_seguir', 'delibera_replace_seguir' );
@@ -137,12 +144,11 @@ function delibera_replace_basear($args)
$server = $_SERVER['SERVER_NAME'];
$endereco = $_SERVER ['REQUEST_URI'];
$site_url = "http".(array_key_exists('HTTPS', $_SERVER))."://".$server.$endereco;
-
+
$html = '';
-
+
return $html;
}
add_shortcode( 'delibera_basear', 'delibera_replace_basear' );
-
// End Parse shorttag
?>
\ No newline at end of file
diff --git a/delibera_taxs.php b/delibera_taxs.php
deleted file mode 100644
index 1543980..0000000
--- a/delibera_taxs.php
+++ /dev/null
@@ -1,5 +0,0 @@
-
\ No newline at end of file
diff --git a/timeline/delibera_timeline.php b/timeline/delibera_timeline.php
index 7e8cfb7..5e97da4 100644
--- a/timeline/delibera_timeline.php
+++ b/timeline/delibera_timeline.php
@@ -11,12 +11,12 @@ public function get_dados($postID = false, $tipo_data = false)
$pautas = delibera_get_pautas_em();
$comments = delibera_wp_get_comments();
}
- else
+ else
{
$pautas = array(get_post($postID));
$comments = delibera_wp_get_comments(array('post_id' => $postID));
}
-
+
$events = array();
foreach($pautas as $pauta)
{
@@ -31,7 +31,7 @@ public function get_dados($postID = false, $tipo_data = false)
'body' => apply_filters('the_content', $pauta->post_content),
//'date_event' => date('d/m/Y H:i:s', $data)
'date_event' => $data
- );
+ );
}
foreach($comments as $comment)
{
@@ -46,32 +46,32 @@ public function get_dados($postID = false, $tipo_data = false)
'body' => apply_filters('comment_text', get_comment_text($comment->comment_ID)),
//'date_event' => date('d/m/Y H:i:s', $data)
'date_event' => $data
- );
+ );
}
ksort($events, SORT_NUMERIC);
-
+
return $this->filtrar($events, $tipo_data);
}
-
+
public function get_config()
{
$opt = array();
$opt['tipo_data'] = 'quinzenal';
-
+
$opt_conf = get_option('delibera-timeline-config', array());
if(!is_array($opt_conf)) $opt_conf = array();
$opt = array_merge($opt, $opt_conf);
-
+
return $opt;
}
-
+
public function filtrar($events, $tipo_data = false)
{
$new_events = array();
if($tipo_data === false)
{
$opt = $this->get_config();
- $tipo_data = $opt['tipo_data'];
+ $tipo_data = $opt['tipo_data'];
}
switch ($tipo_data)
{
@@ -124,32 +124,32 @@ public function filtrar($events, $tipo_data = false)
}
return $new_events;
}
-
+
public function generate($postID = false, $tipo_data = false)
{
$dates = $this->get_dados($postID, $tipo_data);
$colors = array('green','blue','chreme');
$scrollPoints = '';
-
+
$i=0;
$html = '
-
+
-
+
@@ -185,7 +185,7 @@ public function generate($postID = false, $tipo_data = false)
$html_bar_tail = '
-
+
-
+
- ';
+ ';
echo $html_bar_head.$html.$html_bar_tail.'
';
}
-
+
}
add_filter('query_vars', 'timeline_variables');
@@ -224,23 +224,4 @@ function delibera_timeline_template_redirect()
}
}
-add_action('template_redirect', 'delibera_timeline_template_redirect', 5);
-
-new delibera_timeline();
-
-function delibera_timeline($post_id = false, $tipo_data = false)
-{
- $timeline = new delibera_timeline();
- $timeline->generate($post_id, $tipo_data);
-}
-
-function delibera_replace_timeline($args)
-{
- $atts = array('post_id' => false, 'tipo_data' => false);
- $atts = array_merge($atts, $args);
-
- return delibera_timeline($atts['post_id'], $atts['tipo_data']);
-}
-add_shortcode( 'delibera_timeline', 'delibera_replace_timeline' );
-
-?>
\ No newline at end of file
+add_action('template_redirect', 'delibera_timeline_template_redirect', 5);
\ No newline at end of file
From 0040c06179c7aa43bf803819b77906a0c6508d98 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Tue, 19 Jan 2016 10:32:34 -0200
Subject: [PATCH 013/435] Corrige bug na timeline, quando lista posts admin
carrega css indevido
---
delibera.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/delibera.php b/delibera.php
index 1fc6f25..1339315 100644
--- a/delibera.php
+++ b/delibera.php
@@ -1217,7 +1217,7 @@ function delibera_the_posts($posts)
}
}
- if ($timeline_found)
+ if ( ($timeline_found) && (!is_admin()) )
{
// enqueue here
wp_enqueue_style('delibera_timeline_css', WP_CONTENT_URL.'/plugins/delibera/timeline/delibera_timeline.css');
From 0b6dee2f61987770ead1ec5c00640b0a5f988de2 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Tue, 19 Jan 2016 11:18:43 -0200
Subject: [PATCH 014/435] Move funcoes relacionada a pauta e a prazos para
arquivos separados
---
delibera.php | 1085 +---------------------------------
delibera_admin_functions.php | 41 +-
delibera_topic.php | 585 ++++++++++++++++++
delibera_topic_deadline.php | 441 ++++++++++++++
delibera_utils.php | 24 +
5 files changed, 1094 insertions(+), 1082 deletions(-)
create mode 100644 delibera_topic.php
create mode 100644 delibera_topic_deadline.php
diff --git a/delibera.php b/delibera.php
index 1339315..0408c8d 100644
--- a/delibera.php
+++ b/delibera.php
@@ -67,6 +67,7 @@
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_comments.php';
+
/**
*
* Insere term no banco e atualizar línguas do qtranslate
@@ -101,51 +102,7 @@ function delibera_insert_term($label, $tax, $term, $idiomas = array())
}
}
-function delibera_pauta_redirect_filter($location, $post_id = null) {
-
- if (strpos($_SERVER['HTTP_REFERER'], "post_type=pauta"))
- return admin_url("edit.php")."?post_type=pauta&updated=1";
- else
- return $location;
-}
-add_filter('redirect_post_location', 'delibera_pauta_redirect_filter', '99');
-
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_conf_themes.php';
-
-if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'delibera_filtros.php'))
-{
- require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_filtros.php';
-}
-
-function delibera_pauta_custom_meta()
-{
- add_meta_box("pauta_meta", "Detalhes da Pauta", 'delibera_pauta_meta', 'pauta', 'side', 'default');
-}
-
-function delibera_forca_fim_prazo($postID)
-{
- $situacao = delibera_get_situacao($postID);
- switch($situacao->slug)
- {
- case 'discussao':
- delibera_tratar_prazo_discussao(array(
- 'post_ID' => $postID,
- 'prazo_discussao' => date('d/m/Y')
- ));
- break;
- case 'relatoria':
- delibera_tratar_prazo_relatoria(array(
- 'post_ID' => $postID,
- 'prazo_relatoria' => date('d/m/Y')
- ));
- break;
- case 'emvotacao':
- delibera_computa_votos($postID);
- break;
- }
- //delibera_notificar_situacao($postID);
-}
function delibera_admin_list_options($actions, $post)
{
@@ -177,600 +134,14 @@ function delibera_admin_list_options($actions, $post)
add_filter('post_row_actions','delibera_admin_list_options', 10, 2);
-function delibera_forca_fim_prazo_action()
-{
- if(current_user_can('forcar_prazo') && check_admin_referer('delibera_forca_fim_prazo_action'.$_REQUEST['post'], '_wpnonce'))
- {
- delibera_forca_fim_prazo($_REQUEST['post']);
-
- wp_redirect( admin_url( 'edit.php?post_type=pauta') );
- }
- else
- {
- wp_die(__('Você não tem permissão para forçar um prazo','delibera'), __('Sem permissão','delibera'));
- }
-}
-add_action('admin_action_delibera_forca_fim_prazo_action', 'delibera_forca_fim_prazo_action');
-
-function delibera_nao_validado_action()
-{
- if(current_user_can('forcar_prazo') && check_admin_referer('delibera_nao_validado_action'.$_REQUEST['post'], '_wpnonce'))
- {
- delibera_marcar_naovalidada($_REQUEST['post']);
-
- wp_redirect( admin_url( 'edit.php?post_type=pauta') );
- }
- else
- {
- wp_die(__('Você não tem permissão para invalidar uma pauta','delibera'), __('Sem permissão','delibera'));
- }
-}
-add_action('admin_action_delibera_nao_validado_action', 'delibera_nao_validado_action');
-
-function delibera_reabrir_pauta_action()
-{
- if(current_user_can('delibera_reabrir_pauta') && check_admin_referer('delibera_reabrir_pauta_action'.$_REQUEST['post'], '_wpnonce'))
- {
- delibera_reabrir_pauta($_REQUEST['post']);
-
- wp_redirect( admin_url( 'edit.php?post_type=pauta') );
- }
- else
- {
- wp_die(__('Você não tem permissão para re-abrir discussão sobre uma pauta','delibera'), __('Sem permissão','delibera'));
- }
-}
-add_action('admin_action_delibera_reabrir_pauta_action', 'delibera_reabrir_pauta_action');
-
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_cron.php';
-/**
- *
- * Retorna a situação do post
- * @param int $postID
- * @return mixed validacao, discussao, elegerelator, relatoria, emvotacao, comresolucao, naovalidada ou false
- */
-function delibera_get_situacao($postID)
-{
- $situacao = get_the_terms($postID, 'situacao');
- $ret = false;
- if(is_array($situacao) && count($situacao) > 0)
- {
- $ret = array_pop($situacao);
- }
-
- if(!is_object($ret)) // if term situacao does not exists
- {
- $ret = new stdClass();
- $ret->slug = '';
- $ret->name = '';
- }
-
- if(has_filter('delibera_get_situacao'))
- {
- return apply_filters('delibera_get_situacao', $ret);
- }
-
- return $ret;
-}
-
-/**
- * Retorna o label do botão com a situação da
- * pauta.
- *
- * @param int $postId
- * @return string
- */
-function delibera_get_situation_button($postId)
-{
- $situacao = get_the_terms($postId, 'situacao');
-
- if (is_array($situacao) && !empty($situacao)) {
- $situacao = array_pop($situacao);
- }
-
- switch($situacao->slug) {
- case 'emvotacao':
- return 'Votar';
- case 'discussao':
- return 'Discutir';
- case 'validacao':
- return 'Votar';
- default:
- return;
- }
-}
-
-function delibera_update_edit_form() {
- echo ' enctype="multipart/form-data"';
-} // end update_edit_form
-add_action('post_edit_form_tag', 'delibera_update_edit_form');
-
-function delibera_pauta_meta()
-{
- global $post;
-
- $custom = get_post_custom($post->ID);
- $options_plugin_delibera = delibera_get_config();
-
- if(!is_array($custom)) $custom = array();
- $validacoes = array_key_exists("numero_validacoes", $custom) ? $custom["numero_validacoes"][0] : 0;
-
- $min_validacoes = array_key_exists("min_validacoes", $custom) ? $custom["min_validacoes"][0] : htmlentities($options_plugin_delibera['minimo_validacao']);
-
- $situacao = delibera_get_situacao($post->ID);
-
- $dias_validacao = intval(htmlentities($options_plugin_delibera['dias_validacao']));
- $dias_discussao = intval(htmlentities($options_plugin_delibera['dias_discussao']));
- $dias_relatoria = intval(htmlentities($options_plugin_delibera['dias_relatoria']));
- $dias_votacao_relator = intval(htmlentities($options_plugin_delibera['dias_votacao_relator']));
-
- $pauta_pdf_file = get_post_meta($post->ID, 'pauta_pdf_contribution', true);
-
- // Recupera arquivo caso já tenha sido adicionados
- $pdf_html = "";
- if( $pauta_pdf_file ) {
- $pdf_html .= "Arquivo Atual
";
- }
- $pdf_html .= "
";
- echo $pdf_html;
-
- if($options_plugin_delibera['validacao'] == "S") // Adiciona prazo de validação se for necessário
- {
- $dias_discussao += $dias_validacao;
- }
-
- $dias_votacao = $dias_discussao + intval(htmlentities($options_plugin_delibera['dias_votacao']));
-
- if($options_plugin_delibera['relatoria'] == "S") // Adiciona prazo de relatoria se for necessário
- {
- $dias_votacao += $dias_relatoria;
- $dias_relatoria += $dias_discussao;
- if($options_plugin_delibera['eleicao_relator'] == "S") // Adiciona prazo de vatacao relator se for necessário
- {
- $dias_votacao += $dias_votacao_relator;
- $dias_relatoria += $dias_votacao_relator;
- $dias_votacao_relator += $dias_discussao;
- }
- }
-
- $now = strtotime(date('Y/m/d')." 11:59:59");
-
- $prazo_validacao_sugerido = strtotime("+$dias_validacao days", $now);
- $prazo_discussao_sugerido = strtotime("+$dias_discussao days", $now);
- $prazo_eleicao_relator_sugerido = strtotime("+$dias_votacao_relator days", $now);
- $prazo_relatoria_sugerido = strtotime("+$dias_relatoria days", $now);
- $prazo_votacao_sugerido = strtotime("+$dias_votacao days", $now);
-
- $prazo_validacao = date('d/m/Y', $prazo_validacao_sugerido);
- $prazo_discussao = date('d/m/Y', $prazo_discussao_sugerido);
- $prazo_eleicao_relator = date('d/m/Y', $prazo_eleicao_relator_sugerido);
- $prazo_relatoria = date('d/m/Y', $prazo_relatoria_sugerido);
- $prazo_votacao = date('d/m/Y', $prazo_votacao_sugerido);
-
- if (
- $options_plugin_delibera['representante_define_prazos'] == "N" &&
- !($post->post_status == 'draft' ||
- $post->post_status == 'auto-draft' ||
- $post->post_status == 'pending')
- )
- {
- $disable_edicao = 'readonly="readonly"';
- } else {
- $disable_edicao = '';
- }
-
- if(!($post->post_status == 'draft' ||
- $post->post_status == 'auto-draft' ||
- $post->post_status == 'pending'))
- {
- $prazo_validacao = array_key_exists("prazo_validacao", $custom) ? $custom["prazo_validacao"][0] : $prazo_validacao;
- $prazo_discussao = array_key_exists("prazo_discussao", $custom) ? $custom["prazo_discussao"][0] : $prazo_discussao;
- $prazo_eleicao_relator = array_key_exists("prazo_eleicao_relator", $custom) ? $custom["prazo_eleicao_relator"][0] : $prazo_eleicao_relator;
- $prazo_relatoria = array_key_exists("prazo_relatoria", $custom) ? $custom["prazo_relatoria"][0] : $prazo_relatoria;
- $prazo_votacao = array_key_exists("prazo_votacao", $custom) ? $custom["prazo_votacao"][0] : $prazo_votacao;
- }
-
- if($options_plugin_delibera['validacao'] == "S")
- {
- ?>
-
-
- id="min_validacoes" name="min_validacoes" class="min_validacoes widefat" value=""/>
-
-
-
- id="prazo_validacao" name="prazo_validacao" class="prazo_validacao widefat hasdatepicker" value=""/>
-
-
-
-
- id="prazo_discussao" name="prazo_discussao" class="prazo_discussao widefat hasdatepicker" value=""/>
-
-
-
-
- id="prazo_eleicao_relator" name="prazo_eleicao_relator" class="prazo_eleicao_relator widefat hasdatepicker" value=""/>
-
-
-
-
- id="prazo_relatoria" name="prazo_relatoria" class="prazo_relatoria widefat hasdatepicker" value=""/>
-
-
-
-
- id="prazo_votacao" name="prazo_votacao" class="prazo_votacao widefat hasdatepicker" value=""/>
-
- $postID,
- 'prazo_validacao' => $prazo_validacao
- )
- );
- delibera_add_cron(
- strtotime("-1 day", delibera_tratar_data($prazo_validacao)),
- 'delibera_notificar_fim_prazo',
- array(
- 'post_ID' => $postID,
- 'prazo_validacao' => $prazo_validacao
- )
- );
- }
-
- if($prazo_discussao !== false)
- {
- delibera_add_cron(
- delibera_tratar_data($prazo_discussao),
- 'delibera_tratar_prazo_discussao',
- array(
- 'post_ID' => $postID,
- 'prazo_discussao' => $prazo_discussao
- )
- );
- delibera_add_cron(
- strtotime("-1 day", delibera_tratar_data($prazo_discussao)),
- 'delibera_notificar_fim_prazo',
- array(
- 'post_ID' => $postID,
- 'prazo_discussao' => $prazo_discussao
- )
- );
- }
-
- if($prazo_eleicao_relator != false)
- {
- delibera_add_cron(
- delibera_tratar_data($prazo_eleicao_relator),
- 'delibera_tratar_prazo_eleicao_relator',
- array(
- 'post_ID' => $postID,
- 'prazo_votacao' => $prazo_eleicao_relator
- )
- );
- delibera_add_cron(
- strtotime("-1 day", delibera_tratar_data($prazo_eleicao_relator)),
- 'delibera_notificar_fim_prazo',
- array(
- 'post_ID' => $postID,
- 'prazo_votacao' => $prazo_eleicao_relator
- )
- );
- }
-
- if($prazo_relatoria != false)
- {
- delibera_add_cron(
- delibera_tratar_data($prazo_relatoria),
- 'delibera_tratar_prazo_relatoria',
- array(
- 'post_ID' => $postID,
- 'prazo_votacao' => $prazo_relatoria
- )
- );
- delibera_add_cron(
- strtotime("-1 day", delibera_tratar_data($prazo_relatoria)),
- 'delibera_notificar_fim_prazo',
- array(
- 'post_ID' => $postID,
- 'prazo_votacao' => $prazo_relatoria
- )
- );
- }
-
- if($prazo_votacao != false)
- {
- delibera_add_cron(
- delibera_tratar_data($prazo_votacao),
- 'delibera_tratar_prazo_votacao',
- array(
- 'post_ID' => $postID,
- 'prazo_votacao' => $prazo_votacao
- )
- );
- delibera_add_cron(
- strtotime("-1 day", delibera_tratar_data($prazo_votacao)),
- 'delibera_notificar_fim_prazo',
- array(
- 'post_ID' => $postID,
- 'prazo_votacao' => $prazo_votacao
- )
- );
- }
-}
-
-function delibera_tratar_prazos($args)
-{
- $situacao = delibera_get_situacao($args['post_ID']);
- switch ($situacao->slug)
- {
- case 'validacao':
- delibera_tratar_prazo_validacao($args);
- break;
- case 'discussao':
- delibera_tratar_prazo_discussao($args);
- break;
- case 'relatoria':
- delibera_tratar_prazo_relatoria($args);
- break;
- case 'emvotacao':
- delibera_tratar_prazo_votacao($args);
- break;
- }
-}
-
-add_action('delibera_tratar_prazos', 'delibera_tratar_prazos', 1, 1);
-
-function delibera_tratar_prazo_validacao($args)
-{
- $situacao = delibera_get_situacao($args['post_ID']);
- if($situacao->slug == 'validacao')
- {
- delibera_marcar_naovalidada($args['post_ID']);
- }
-}
-
-function delibera_tratar_prazo_discussao($args)
-{
- $situacao = delibera_get_situacao($args['post_ID']);
- if($situacao->slug == 'discussao')
- {
- $post_id = $args['post_ID'];
- if(count(delibera_get_comments_encaminhamentos($post_id)) > 0)
- {
- $opts = delibera_get_config();
- if($opts['eleicao_relator'] == 'S')
- {
- wp_set_object_terms($post_id, 'eleicaoredator', 'situacao', false); //Mudar situação para Votação
- }
- elseif($opts['relatoria'] == 'S')
- {
- wp_set_object_terms($post_id, 'relatoria', 'situacao', false); //Mudar situação para Votação
- }
- else
- {
- wp_set_object_terms($post_id, 'emvotacao', 'situacao', false); //Mudar situação para Votação
- }
- if(has_action('delibera_discussao_concluida'))
- {
- do_action('delibera_discussao_concluida', $post_id);
- }
- }
- else
- {
- delibera_novo_prazo($post_id);
- }
- }
-}
-
-function delibera_tratar_prazo_relatoria($args)
-{
- $situacao = delibera_get_situacao($args['post_ID']);
- if($situacao->slug == 'relatoria')
- {
- $post_id = $args['post_ID'];
- if(count(delibera_get_comments_encaminhamentos($post_id)) > 0)
- {
- wp_set_object_terms($post_id, 'emvotacao', 'situacao', false); //Mudar situação para Votação
- //delibera_notificar_situacao($post_id);
- if(has_action('delibera_relatoria_concluida'))
- {
- do_action('delibera_relatoria_concluida', $post_id);
- }
- }
- else
- {
- delibera_novo_prazo($post_id);
- }
- }
-}
-
-function delibera_tratar_prazo_votacao($args)
-{
- $situacao = delibera_get_situacao($args['post_ID']);
- if($situacao->slug == 'emvotacao')
- {
- delibera_computa_votos($args['post_ID']);
- }
-}
-
-function delibera_marcar_naovalidada($postID)
-{
- wp_set_object_terms($postID, 'naovalidada', 'situacao', false);
- if(has_action('delibera_pauta_recusada'))
- {
- do_action('delibera_pauta_recusada', $postID);
- }
-}
-
-function delibera_reabrir_pauta($postID)
-{
- wp_set_object_terms($postID, 'validacao', 'situacao', false);
- //delibera_notificar_situacao($postID);
-
- delibera_novo_prazo($postID);
-}
-
-/**
- *
- * Save o post da pauta
- * @param $post_id int
- * @param $post
- */
-function delibera_save_post($post_id, $post)
-{
- if(get_post_type( $post_id ) != "pauta")
- {
- return $post_id;
- }
- $opt = delibera_get_config();
- $autosave = ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE );
-
- if(
- ( // Se tem validação, tem que ter o prazo
- $opt['validacao'] == 'N' ||
- (array_key_exists('prazo_validacao', $_POST) && array_key_exists('min_validacoes', $_POST) )
- ) &&
- ( // Se tem relatoria, tem que ter o prazo
- $opt['relatoria'] == 'N' ||
- array_key_exists('prazo_relatoria', $_POST)
- ) &&
- ( // Se tem relatoria, e é preciso eleger o relator, tem que ter o prazo para eleição
- $opt['relatoria'] == 'N' ||
- (
- $opt['eleicao_relator'] == 'N' ||
- array_key_exists('prazo_eleicao_relator', $_POST)
- )
- ) &&
- array_key_exists('prazo_discussao', $_POST) &&
- array_key_exists('prazo_votacao', $_POST)
- )
- {
- $events_meta = array();
-
- $validacoes = get_post_meta($post_id, 'numero_validacoes', true);
- if($validacoes == "" || $validacoes === false || is_null($validacoes))
- {
- $events_meta['numero_validacoes'] = 0;
- $events_meta['delibera_numero_comments_validacoes'] = 0;
- $events_meta['delibera_numero_comments_encaminhamentos'] = 0;
- $events_meta['delibera_numero_comments_discussoes'] = 0;
- $events_meta['delibera_numero_comments_votos'] = 0;
- $events_meta['delibera_numero_comments_padroes'] = 0;
- $events_meta['delibera_numero_curtir'] = 0;
- $events_meta['delibera_curtiram'] = array();
- $events_meta['delibera_numero_discordar'] = 0;
- $events_meta['delibera_discordaram'] = array();
- $events_meta['delibera_numero_seguir'] = 0;
- $events_meta['delibera_seguiram'] = array();
- }
-
- $events_meta['prazo_validacao'] = $opt['validacao'] == 'S' ? $_POST['prazo_validacao'] : date('d/m/Y');
- $events_meta['prazo_discussao'] = $_POST['prazo_discussao'];
- $events_meta['prazo_relatoria'] = $opt['relatoria'] == 'S' ? $_POST['prazo_relatoria'] : date('d/m/Y');
- $events_meta['prazo_eleicao_relator'] = $opt['relatoria'] == 'S' && $opt['eleicao_relator'] == 'S' ? $_POST['prazo_eleicao_relator'] : date('d/m/Y');
- $events_meta['prazo_votacao'] = $_POST['prazo_votacao'];
- $events_meta['min_validacoes'] = $opt['validacao'] == 'S' ? $_POST['min_validacoes'] : 10;
-
- /* ######### START ######### */
- /* ######### FOR PDF UPLOAD FILE ######### */
- // Setup the array of supported file types. In this case, it's just PDF.
- $supported_types = array('application/pdf');
-
- // Get the file type of the upload
- $arr_uploaded_file_type = wp_check_filetype(basename($_FILES['pauta_pdf_contribution']['name']));
- $uploaded_file_type = $arr_uploaded_file_type['type'];
-
- if (isset ($_FILES['pauta_pdf_contribution']['name']) && $_FILES['pauta_pdf_contribution']['name'] != '') {
- if (!in_array($uploaded_file_type, $supported_types)) {
- //TODO: Improve this message and avoid wp_die
- wp_die("O arquivo para web não é um PDF (formato permitido).");
- }
-
-
- // Use the WordPress API to upload the file
- $upload_pauta_pdf = wp_upload_bits($_FILES['pauta_pdf_contribution']['name'], null, file_get_contents($_FILES['pauta_pdf_contribution']['tmp_name']));
-
- if (isset($upload_pauta_pdf['error']) && $upload_pauta_pdf['error'] != 0) {
- $events_meta['pauta_pdf_contribution'] = none;
- wp_die('Erro ao salvar arquivo para Web. O erro foi: ' . $upload_pauta_pdf['error']);
- } else {
- $events_meta['pauta_pdf_contribution'] = $upload_pauta_pdf['url'];
-
- global $wpdb;
-
- $wpdb->query($wpdb->prepare("UPDATE " . $wpdb->prefix . "posts SET post_content=%s WHERE ID=%d", '', $post->ID));
- }
- }
- /* ######### FOR PDF UPLOAD FILE ######### */
- /* ######### END ######### */
-
- foreach ($events_meta as $key => $value) // Buscar dados
- {
- if(get_post_meta($post->ID, $key, true)) // Se já existe
- {
- update_post_meta($post->ID, $key, $value); // Atualiza
- }
- else
- {
- add_post_meta($post->ID, $key, $value, true); // Senão, cria
- }
- }
-
- if(
- array_key_exists('delibera_fim_prazo', $_POST) &&
- $_POST['delibera_fim_prazo'] == 'S' &&
- current_user_can('forcar_prazo')
- )
- {
- delibera_forca_fim_prazo($post->ID);
- }
-
- if($post->post_status == 'publish' && !$autosave)
- {
- delibera_del_cron($post->ID);
- delibera_publish_pauta($post->ID, $post, true);
- }
-
- }
-
-}
-
-add_action ('save_post', 'delibera_save_post', 1, 2);
+require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_topic.php';
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_curtir.php';
+
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_discordar.php';
+
require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_seguir.php';
if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'mailer') && file_exists(__DIR__.DIRECTORY_SEPARATOR.'mailer'.DIRECTORY_SEPARATOR.'delibera_mailer.php'))
@@ -778,347 +149,6 @@ function delibera_save_post($post_id, $post)
//require_once __DIR__.DIRECTORY_SEPARATOR.'mailer'.DIRECTORY_SEPARATOR.'delibera_mailer.php';
}
-function delibera_publish_pauta($postID, $post, $alterar = false)
-{
- if(get_post_type( $postID ) != "pauta")
- {
- return $postID;
- }
-
- if (
- $alterar || (
- ($post->post_status == 'publish' || $_POST['publish'] == 'Publicar') &&
- (
- (
- array_key_exists('prev_status', $_POST) &&
- (
- $_POST['prev_status'] == 'draft' ||
- $_POST['prev_status'] == 'pending'
- )
- ) ||
- (
- array_key_exists('original_post_status', $_POST) && (
- $_POST['original_post_status'] == 'draft' ||
- $_POST['original_post_status'] == 'auto-draft' ||
- $_POST['original_post_status'] == 'pending')
- )
- )
- )
- )
- {
- $prazo_validacao = get_post_meta($postID, 'prazo_validacao', true);
- $prazo_discussao = get_post_meta($postID, 'prazo_discussao', true);
- $prazo_relatoria = get_post_meta($postID, 'prazo_relatoria', true);
- $prazo_eleicao_relator = get_post_meta($postID, 'prazo_eleicao_relator', true);
- $prazo_votacao = get_post_meta($postID, 'prazo_votacao', true);
- $opt = delibera_get_config();
-
- if(!array_key_exists('validacao', $opt) || $opt['validacao'] == 'S' )
- {
- if(!$alterar)
- {
-
- wp_set_object_terms($post->ID, 'validacao', 'situacao', false);
- }
-
- delibera_criar_agenda(
- $post->ID,
- $prazo_validacao,
- $prazo_discussao,
- $prazo_votacao,
- $opt['relatoria'] == 'S' ? $prazo_relatoria : false,
- $opt['relatoria'] == 'S' && $opt['eleicao_relator'] == 'S' ? $prazo_eleicao_relator : false
- );
- }
- else
- {
- if(!$alterar)
- {
- wp_set_object_terms($post->ID, 'discussao', 'situacao', false);
- }
- delibera_criar_agenda(
- $post->ID,
- false,
- $prazo_discussao,
- $prazo_votacao,
- $opt['relatoria'] == 'S' ? $prazo_relatoria : false,
- $opt['relatoria'] == 'S' && $opt['eleicao_relator'] == 'S' ? $prazo_eleicao_relator : false
- );
- }
-
- if($alterar)
- {
- //delibera_notificar_situacao($post);
- }
- else
- {
- delibera_notificar_nova_pauta($post);
- }
- }
-}
-
-add_action ('publish_pauta', 'delibera_publish_pauta', 1, 2);
-
-function delibera_check_post_data($data, $postarr)
-{
- $opt = delibera_get_config();
- $erros = array();
- $autosave = ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE );
- if(get_post_type() == 'pauta' && (!isset($_REQUEST['action']) || $_REQUEST['action'] != 'trash'))
- {
- if($opt['validacao'] == 'S')
- {
- $value = $_POST['prazo_validacao'];
- $valida = delibera_tratar_data($value);
- if(!$autosave && ($valida === false || $valida < 1))
- {
- $erros[] = __("É necessário definir corretamente o prazo de validação", "delibera");
- }
- }
- $value = $_POST['prazo_discussao'];
- $valida = delibera_tratar_data($value);
- if(!$autosave && ($valida === false || $valida < 1))
- {
- $erros[] = __("É necessário definir corretamente o prazo de discussão", "delibera");
- }
-
- if($opt['relatoria'] == 'S')
- {
- $value = $_POST['prazo_relatoria'];
- $valida = delibera_tratar_data($value);
- if(!$autosave && ($valida === false || $valida < 1))
- {
- $erros[] = __("É necessário definir corretamente o prazo para relatoria", "Delibera");
- }
-
- if($opt['eleicao_relator'] == 'S')
- {
- $value = $_POST['prazo__leicao_relator'];
- $valida = delibera_tratar_data($value);
- if(!$autosave && ($valida === false || $valida < 1))
- {
- $erros[] = __("É necessário definir corretamente o prazo para eleição de um relator", "delibera");
- }
- }
-
- }
-
- $value = $_POST['prazo_votacao'];
- $valida = delibera_tratar_data($value);
- if(!$autosave && ($valida === false || $valida < 1))
- {
- $erros[] = __("É necessário definir corretamente o prazo para votação", "delibera");
- }
-
- if($opt['validacao'] == 'S')
- {
- $value = (int)$_POST['min_validacoes'];
- $valida = is_int($value) && $value > 0;
- if(!$autosave && ($valida === false))
- {
- $erros[] = __("É necessário definir corretamente o número mínimo de validações", "delibera");
- }
- }
-
- if(
- count($erros) == 0
- )
- {
- return $data;
- }
- else
- {
- //wp_die(__('Erro ao salvar dados da pauta, faltando informações de prazos e validações mínimas!','delibera'));
- wp_die(implode("
", $erros));
- }
- }
- return $data;
-}
-
-add_filter('wp_insert_post_data', 'delibera_check_post_data', 10, 2);
-
-/**
- *
- * Retorna post do tipo pauta em uma determinada situacao (validacao, discussao, emvotacao ou comresolucao), usando um filtro
- * @param array $filtro
- * @param string $situacao
- */
-function delibera_get_pautas_em($filtro = array(), $situacao = false)
-{
- $filtro['post_type'] = "pauta";
- $filtro['post_status'] = "publish";
- $tax_query = array();
-
- if(array_key_exists("tax_query", $filtro) && $situacao !== false)
- {
- $tax_query = $filtro['tax_query'];
- $tax_query['relation'] = 'AND';
- }
- if($situacao !== false)
- {
- $tax_query[] = array(
- 'taxonomy' => 'situacao',
- 'field' => 'slug',
- 'terms' => $situacao
- );
- $filtro['tax_query'] = $tax_query;
- }
- return get_posts($filtro);
-}
-
-/**
- *
- * Retorna pautas em Validação
- * @param array $filtro
- */
-function delibera_get_propostas($filtro = array())
-{
- return delibera_get_pautas_em($filtro, 'validacao');
-}
-
-/**
- *
- * Retorna pautas em Discussão
- * @param array $filtro
- */
-function delibera_get_pautas($filtro = array())
-{
- return delibera_get_pautas_em($filtro, 'discussao');
-}
-
-function delibera_des_filtro_qtranslate($where)
-{
- if(is_archive())
- {
- global $q_config, $wpdb;
- if($q_config['hide_untranslated'] && !is_singular()) {
- $where = str_replace(" AND $wpdb->posts.post_content LIKE '%%'", '', $where);
- }
- }
- return $where;
-}
-
-add_filter('posts_where_request', 'delibera_des_filtro_qtranslate', 11);
-
-/**
- *
- * Retorna pautas em Votação
- * @param array $filtro
- */
-function delibera_get_emvotacao($filtro = array())
-{
- return delibera_get_pautas_em($filtro, 'emvotacao');
-}
-
-/**
- *
- * Retorna pautas já resolvidas
- * @param array $filtro
- */
-function delibera_get_resolucoes($filtro = array())
-{
- return delibera_get_pautas_em($filtro, 'comresolucao');
-}
-
-
-/**
- * Retorna um inteiro indicando quantos dias faltam para o fim do prazo
- * de uma pauta.
- *
- * Se o parâmetro $data for passado por referência o prazo para o fim da
- * pauta é associado a ele.
- *
- * @param int $postID
- * @param string $data
- * @return int
- */
-function delibera_get_prazo($postID, &$data = null)
-{
- $situacao = delibera_get_situacao($postID);
- $prazo = "";
- $idata = strtotime(date('Y/m/d').' 23:59:59');
- $diff = -1;
-
- if(is_object($situacao))
- {
- switch ($situacao->slug)
- {
- case 'validacao':
- {
- $prazo = get_post_meta($postID, 'prazo_validacao', true);
- } break;
- case 'discussao':
- {
- $prazo = get_post_meta($postID, 'prazo_discussao', true);
- }break;
- case 'elegerelator':
- {
- $prazo = get_post_meta($postID, 'prazo_eleicao_relator', true);
- }break;
- case 'relatoria':
- {
- $prazo = get_post_meta($postID, 'prazo_relatoria', true);
- }break;
- case 'emvotacao':
- {
- $prazo = get_post_meta($postID, 'prazo_votacao', true);
- } break;
- }
-
- $iprazo = strtotime(substr($prazo, 6).substr($prazo, 2, 4).substr($prazo, 0, 2).' 23:59:59');
-
- $diff = $iprazo - $idata;
- }
- $dias = -1;
-
- if($diff >= 0) $dias = ceil($diff/(60*60*24));
-
- if(!is_null($data)) $data = $prazo;
-
- return $dias;
-}
-
-function delibera_edit_columns($columns)
-{
- $columns[ 'tema' ] = __( 'Tema' );
- $columns[ 'situacao' ] = __( 'Situação' );
- $columns[ 'prazo' ] = __( 'Prazo' );
- return $columns;
-}
-
-add_filter('manage_edit-pauta_columns', 'delibera_edit_columns');
-
-function delibera_post_custom_column($column)
-{
- global $post;
-
- switch ( $column )
- {
- case 'tema':
- echo the_terms($post->ID, "tema");
- break;
- case 'situacao':
- echo delibera_get_situacao($post->ID)->name;
- break;
- case 'prazo':
- $data = "";
- $prazo = delibera_get_prazo($post->ID, $data);
- if($prazo == -1)
- {
- echo __('Encerrado', 'delibera');
- }
- elseif($data != "")
- {
- echo $data." (".$prazo.($prazo == 1 ? __(" dia", 'delibera') : __(" dias", 'delibera')).")";
- }
- break;
- }
-
-}
-
-add_action('manage_posts_custom_column', 'delibera_post_custom_column');
-
-
function delibera_restrict_listings()
{
global $typenow;
@@ -1171,29 +201,6 @@ function delibera_convert_situacao_id_to_taxonomy_term_in_query(&$query)
// gerar relatório em um arquivo xls
require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_relatorio.php';
-/**
- *
- * Pega os ultimos conteúdos
- * @param string $tipo (option) 'pauta' ou 'comments', padrão 'pauta'
- * @param array $args (option) query padrão do post ou do comments
- * @param int $count (option) padrão 5
- */
-function delibera_ultimas($tipo = 'pauta', $args = array(), $count = 5)
-{
- switch($tipo)
- {
- case 'pauta':
- $filtro = array('orderby' => 'modified', 'order' => 'DESC', 'posts_per_page' => $count);
- $filtro = array_merge($filtro, $args);
- return delibera_get_pautas_em($filtro, false);
- break;
- case 'comments':
- $filtro = array('orderby' => 'comment_date_gmt', 'order' => 'DESC', 'number' => $count, 'post_type' => 'pauta');
- $filtro = array_merge($filtro, $args);
- return delibera_wp_get_comments($filtro);
- break;
- }
-}
function delibera_the_posts($posts)
{
@@ -1385,90 +392,6 @@ function delibera_emvotacao($post)
}
}
-function delibera_novo_prazo($postID)
-{
- $situacao = delibera_get_situacao($postID);
- $opts = delibera_get_config();
- switch ($situacao->slug)
- {
- case 'validacao':
- $inova_data = strtotime("+{$opts['dias_novo_prazo']} days");
- $nova_data = date("d/m/Y", $inova_data);
- $inova_datad = strtotime("+{$opts['dias_discussao']} days",$inova_data);
- $nova_datad = date("d/m/Y", $inova_datad);
- $inova_datavt = strtotime("+{$opts['dias_votacao']} days",$inova_datad);
- $nova_datavt = date("d/m/Y", $inova_datavt);
- $inova_datarel = strtotime("+{$opts['dias_votacao_relator']} days",$inova_datavt);
- $nova_datarel = date("d/m/Y", $inova_datarel);
- $inova_datar = strtotime("+{$opts['dias_relatoria']} days",$inova_datarel);
- $nova_datar = date("d/m/Y", $inova_datar);
-
- $events_meta['prazo_validacao'] = $opts['validacao'] == 'S' ? $nova_data : date('d/m/Y');
- $events_meta['prazo_discussao'] = $nova_datad;
- $events_meta['prazo_relatoria'] = $opts['relatoria'] == 'S' ? $nova_datar : date('d/m/Y');
- $events_meta['prazo_eleicao_relator'] = $opts['relatoria'] == 'S' && $opts['eleicao_relator'] == 'S' ? $nova_datarel : date('d/m/Y');
- $events_meta['prazo_votacao'] = $nova_datavt;
-
- foreach ($events_meta as $key => $value) // Buscar dados
- {
- if(get_post_meta($postID, $key, true)) // Se já existe
- {
- update_post_meta($postID, $key, $value); // Atualiza
- }
- else
- {
- add_post_meta($postID, $key, $value, true); // Se não cria
- }
- }
- delibera_del_cron($postID);
- delibera_criar_agenda($postID, $nova_data, $nova_datad, $nova_datavt, $nova_datar, $nova_datarel);
- break;
- case 'discussao':
- case 'relatoria':
- $inova_data = strtotime("+{$opts['dias_novo_prazo']} days");
- delibera_set_novo_prazo_discussao_relatoria($postID, $inova_data, $opts);
- break;
- case 'emvotacao':
- $inova_data = strtotime("+{$opts['dias_novo_prazo']} days");
- $nova_data = date("d/m/Y", $inova_data);
- update_post_meta($postID, 'prazo_votacao', $nova_data);
- delibera_del_cron($postID);
- delibera_criar_agenda($postID, false, false, $nova_data);
- break;
- }
- //delibera_notificar_situacao($postID);
-}
-
-/**
- * @param $postID
- * @param $opts
- */
-function delibera_set_novo_prazo_discussao_relatoria($postID, $inova_data, $opts)
-{
- $nova_data = date("d/m/Y", $inova_data);
- update_post_meta($postID, 'prazo_discussao', $nova_data);
- $nova_eleicao_rel = false;
- $nova_relatoria = false;
- if ($opts['relatoria'] == "S") // Adiciona prazo de relatoria se for necessário
- {
- $opts['dias_votacao'] += $opts['dias_relatoria'];
- if ($opts['eleicao_relator'] == "S") // Adiciona prazo de vatacao relator se for necessário
- {
- $opts['dias_votacao'] += $opts['dias_votacao_relator'];
- $opts['dias_relatoria'] += $opts['dias_votacao_relator'];
- $nova_eleicao_rel = date("d/m/Y", strtotime("+{$opts['dias_votacao_relator']} days", $inova_data));
- }
- $nova_relatoria = date("d/m/Y", strtotime("+{$opts['dias_relatoria']} days", $inova_data));
- }
- $inova_data_votacao = strtotime("+{$opts['dias_votacao']} days", $inova_data);
- $nova_data_votacao = date("d/m/Y", $inova_data_votacao);
- update_post_meta($postID, 'prazo_votacao', $nova_data_votacao);
- delibera_del_cron($postID);
- delibera_criar_agenda($postID, false, $nova_data, $nova_data_votacao, $nova_relatoria, $nova_eleicao_rel);
-}
-
-
-
add_action('init', 'delibera_nova_pauta_create_action');
function delibera_nova_pauta_create_action(){
$opt = delibera_get_config();
diff --git a/delibera_admin_functions.php b/delibera_admin_functions.php
index 7d71736..12a3bc9 100644
--- a/delibera_admin_functions.php
+++ b/delibera_admin_functions.php
@@ -142,4 +142,43 @@ function delibera_edit_comment($comment)
}
}
-add_filter('add_meta_boxes_comment', 'delibera_edit_comment');
\ No newline at end of file
+add_filter('add_meta_boxes_comment', 'delibera_edit_comment');
+function delibera_edit_columns($columns)
+{
+ $columns[ 'tema' ] = __( 'Tema' );
+ $columns[ 'situacao' ] = __( 'Situação' );
+ $columns[ 'prazo' ] = __( 'Prazo' );
+ return $columns;
+}
+
+add_filter('manage_edit-pauta_columns', 'delibera_edit_columns');
+
+function delibera_post_custom_column($column)
+{
+ global $post;
+
+ switch ( $column )
+ {
+ case 'tema':
+ echo the_terms($post->ID, "tema");
+ break;
+ case 'situacao':
+ echo delibera_get_situacao($post->ID)->name;
+ break;
+ case 'prazo':
+ $data = "";
+ $prazo = delibera_get_prazo($post->ID, $data);
+ if($prazo == -1)
+ {
+ echo __('Encerrado', 'delibera');
+ }
+ elseif($data != "")
+ {
+ echo $data." (".$prazo.($prazo == 1 ? __(" dia", 'delibera') : __(" dias", 'delibera')).")";
+ }
+ break;
+ }
+
+}
+
+add_action('manage_posts_custom_column', 'delibera_post_custom_column');
\ No newline at end of file
diff --git a/delibera_topic.php b/delibera_topic.php
new file mode 100644
index 0000000..ac4e6d2
--- /dev/null
+++ b/delibera_topic.php
@@ -0,0 +1,585 @@
+ 0)
+ {
+ $ret = array_pop($situacao);
+ }
+
+ if(!is_object($ret)) // if term situacao does not exists
+ {
+ $ret = new stdClass();
+ $ret->slug = '';
+ $ret->name = '';
+ }
+
+ if(has_filter('delibera_get_situacao'))
+ {
+ return apply_filters('delibera_get_situacao', $ret);
+ }
+
+ return $ret;
+}
+
+/**
+ * Retorna o label do botão com a situação da
+ * pauta.
+ *
+ * @param int $postId
+ * @return string
+ */
+function delibera_get_situation_button($postId)
+{
+ $situacao = get_the_terms($postId, 'situacao');
+
+ if (is_array($situacao) && !empty($situacao)) {
+ $situacao = array_pop($situacao);
+ }
+
+ switch($situacao->slug) {
+ case 'emvotacao':
+ return 'Votar';
+ case 'discussao':
+ return 'Discutir';
+ case 'validacao':
+ return 'Votar';
+ default:
+ return;
+ }
+}
+
+function delibera_update_edit_form() {
+ echo ' enctype="multipart/form-data"';
+} // end update_edit_form
+add_action('post_edit_form_tag', 'delibera_update_edit_form');
+
+function delibera_pauta_meta()
+{
+ global $post;
+
+ $custom = get_post_custom($post->ID);
+ $options_plugin_delibera = delibera_get_config();
+
+ if(!is_array($custom)) $custom = array();
+ $validacoes = array_key_exists("numero_validacoes", $custom) ? $custom["numero_validacoes"][0] : 0;
+
+ $min_validacoes = array_key_exists("min_validacoes", $custom) ? $custom["min_validacoes"][0] : htmlentities($options_plugin_delibera['minimo_validacao']);
+
+ $situacao = delibera_get_situacao($post->ID);
+
+ $dias_validacao = intval(htmlentities($options_plugin_delibera['dias_validacao']));
+ $dias_discussao = intval(htmlentities($options_plugin_delibera['dias_discussao']));
+ $dias_relatoria = intval(htmlentities($options_plugin_delibera['dias_relatoria']));
+ $dias_votacao_relator = intval(htmlentities($options_plugin_delibera['dias_votacao_relator']));
+
+ $pauta_pdf_file = get_post_meta($post->ID, 'pauta_pdf_contribution', true);
+
+ // Recupera arquivo caso já tenha sido adicionados
+ $pdf_html = "";
+ if( $pauta_pdf_file ) {
+ $pdf_html .= "Arquivo Atual
";
+ }
+ $pdf_html .= "
";
+ echo $pdf_html;
+
+ if($options_plugin_delibera['validacao'] == "S") // Adiciona prazo de validação se for necessário
+ {
+ $dias_discussao += $dias_validacao;
+ }
+
+ $dias_votacao = $dias_discussao + intval(htmlentities($options_plugin_delibera['dias_votacao']));
+
+ if($options_plugin_delibera['relatoria'] == "S") // Adiciona prazo de relatoria se for necessário
+ {
+ $dias_votacao += $dias_relatoria;
+ $dias_relatoria += $dias_discussao;
+ if($options_plugin_delibera['eleicao_relator'] == "S") // Adiciona prazo de vatacao relator se for necessário
+ {
+ $dias_votacao += $dias_votacao_relator;
+ $dias_relatoria += $dias_votacao_relator;
+ $dias_votacao_relator += $dias_discussao;
+ }
+ }
+
+ $now = strtotime(date('Y/m/d')." 11:59:59");
+
+ $prazo_validacao_sugerido = strtotime("+$dias_validacao days", $now);
+ $prazo_discussao_sugerido = strtotime("+$dias_discussao days", $now);
+ $prazo_eleicao_relator_sugerido = strtotime("+$dias_votacao_relator days", $now);
+ $prazo_relatoria_sugerido = strtotime("+$dias_relatoria days", $now);
+ $prazo_votacao_sugerido = strtotime("+$dias_votacao days", $now);
+
+ $prazo_validacao = date('d/m/Y', $prazo_validacao_sugerido);
+ $prazo_discussao = date('d/m/Y', $prazo_discussao_sugerido);
+ $prazo_eleicao_relator = date('d/m/Y', $prazo_eleicao_relator_sugerido);
+ $prazo_relatoria = date('d/m/Y', $prazo_relatoria_sugerido);
+ $prazo_votacao = date('d/m/Y', $prazo_votacao_sugerido);
+
+ if (
+ $options_plugin_delibera['representante_define_prazos'] == "N" &&
+ !($post->post_status == 'draft' ||
+ $post->post_status == 'auto-draft' ||
+ $post->post_status == 'pending')
+ )
+ {
+ $disable_edicao = 'readonly="readonly"';
+ } else {
+ $disable_edicao = '';
+ }
+
+ if(!($post->post_status == 'draft' ||
+ $post->post_status == 'auto-draft' ||
+ $post->post_status == 'pending'))
+ {
+ $prazo_validacao = array_key_exists("prazo_validacao", $custom) ? $custom["prazo_validacao"][0] : $prazo_validacao;
+ $prazo_discussao = array_key_exists("prazo_discussao", $custom) ? $custom["prazo_discussao"][0] : $prazo_discussao;
+ $prazo_eleicao_relator = array_key_exists("prazo_eleicao_relator", $custom) ? $custom["prazo_eleicao_relator"][0] : $prazo_eleicao_relator;
+ $prazo_relatoria = array_key_exists("prazo_relatoria", $custom) ? $custom["prazo_relatoria"][0] : $prazo_relatoria;
+ $prazo_votacao = array_key_exists("prazo_votacao", $custom) ? $custom["prazo_votacao"][0] : $prazo_votacao;
+ }
+
+ if($options_plugin_delibera['validacao'] == "S")
+ {
+ ?>
+
+
+ id="min_validacoes" name="min_validacoes" class="min_validacoes widefat" value=""/>
+
+
+
+ id="prazo_validacao" name="prazo_validacao" class="prazo_validacao widefat hasdatepicker" value=""/>
+
+
+
+
+ id="prazo_discussao" name="prazo_discussao" class="prazo_discussao widefat hasdatepicker" value=""/>
+
+
+
+
+ id="prazo_eleicao_relator" name="prazo_eleicao_relator" class="prazo_eleicao_relator widefat hasdatepicker" value=""/>
+
+
+
+
+ id="prazo_relatoria" name="prazo_relatoria" class="prazo_relatoria widefat hasdatepicker" value=""/>
+
+
+
+
+ id="prazo_votacao" name="prazo_votacao" class="prazo_votacao widefat hasdatepicker" value=""/>
+
+ post_status == 'publish' || $_POST['publish'] == 'Publicar') &&
+ (
+ (
+ array_key_exists('prev_status', $_POST) &&
+ (
+ $_POST['prev_status'] == 'draft' ||
+ $_POST['prev_status'] == 'pending'
+ )
+ ) ||
+ (
+ array_key_exists('original_post_status', $_POST) && (
+ $_POST['original_post_status'] == 'draft' ||
+ $_POST['original_post_status'] == 'auto-draft' ||
+ $_POST['original_post_status'] == 'pending')
+ )
+ )
+ )
+ )
+ {
+ $prazo_validacao = get_post_meta($postID, 'prazo_validacao', true);
+ $prazo_discussao = get_post_meta($postID, 'prazo_discussao', true);
+ $prazo_relatoria = get_post_meta($postID, 'prazo_relatoria', true);
+ $prazo_eleicao_relator = get_post_meta($postID, 'prazo_eleicao_relator', true);
+ $prazo_votacao = get_post_meta($postID, 'prazo_votacao', true);
+ $opt = delibera_get_config();
+
+ if(!array_key_exists('validacao', $opt) || $opt['validacao'] == 'S' )
+ {
+ if(!$alterar)
+ {
+
+ wp_set_object_terms($post->ID, 'validacao', 'situacao', false);
+ }
+
+ delibera_criar_agenda(
+ $post->ID,
+ $prazo_validacao,
+ $prazo_discussao,
+ $prazo_votacao,
+ $opt['relatoria'] == 'S' ? $prazo_relatoria : false,
+ $opt['relatoria'] == 'S' && $opt['eleicao_relator'] == 'S' ? $prazo_eleicao_relator : false
+ );
+ }
+ else
+ {
+ if(!$alterar)
+ {
+ wp_set_object_terms($post->ID, 'discussao', 'situacao', false);
+ }
+ delibera_criar_agenda(
+ $post->ID,
+ false,
+ $prazo_discussao,
+ $prazo_votacao,
+ $opt['relatoria'] == 'S' ? $prazo_relatoria : false,
+ $opt['relatoria'] == 'S' && $opt['eleicao_relator'] == 'S' ? $prazo_eleicao_relator : false
+ );
+ }
+
+ if($alterar)
+ {
+ //delibera_notificar_situacao($post);
+ }
+ else
+ {
+ delibera_notificar_nova_pauta($post);
+ }
+ }
+}
+
+add_action ('publish_pauta', 'delibera_publish_pauta', 1, 2);
+
+function delibera_check_post_data($data, $postarr)
+{
+ $opt = delibera_get_config();
+ $erros = array();
+ $autosave = ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE );
+ if(get_post_type() == 'pauta' && (!isset($_REQUEST['action']) || $_REQUEST['action'] != 'trash'))
+ {
+ if($opt['validacao'] == 'S')
+ {
+ $value = $_POST['prazo_validacao'];
+ $valida = delibera_tratar_data($value);
+ if(!$autosave && ($valida === false || $valida < 1))
+ {
+ $erros[] = __("É necessário definir corretamente o prazo de validação", "delibera");
+ }
+ }
+ $value = $_POST['prazo_discussao'];
+ $valida = delibera_tratar_data($value);
+ if(!$autosave && ($valida === false || $valida < 1))
+ {
+ $erros[] = __("É necessário definir corretamente o prazo de discussão", "delibera");
+ }
+
+ if($opt['relatoria'] == 'S')
+ {
+ $value = $_POST['prazo_relatoria'];
+ $valida = delibera_tratar_data($value);
+ if(!$autosave && ($valida === false || $valida < 1))
+ {
+ $erros[] = __("É necessário definir corretamente o prazo para relatoria", "Delibera");
+ }
+
+ if($opt['eleicao_relator'] == 'S')
+ {
+ $value = $_POST['prazo__leicao_relator'];
+ $valida = delibera_tratar_data($value);
+ if(!$autosave && ($valida === false || $valida < 1))
+ {
+ $erros[] = __("É necessário definir corretamente o prazo para eleição de um relator", "delibera");
+ }
+ }
+
+ }
+
+ $value = $_POST['prazo_votacao'];
+ $valida = delibera_tratar_data($value);
+ if(!$autosave && ($valida === false || $valida < 1))
+ {
+ $erros[] = __("É necessário definir corretamente o prazo para votação", "delibera");
+ }
+
+ if($opt['validacao'] == 'S')
+ {
+ $value = (int)$_POST['min_validacoes'];
+ $valida = is_int($value) && $value > 0;
+ if(!$autosave && ($valida === false))
+ {
+ $erros[] = __("É necessário definir corretamente o número mínimo de validações", "delibera");
+ }
+ }
+
+ if(
+ count($erros) == 0
+ )
+ {
+ return $data;
+ }
+ else
+ {
+ //wp_die(__('Erro ao salvar dados da pauta, faltando informações de prazos e validações mínimas!','delibera'));
+ wp_die(implode("
", $erros));
+ }
+ }
+ return $data;
+}
+
+add_filter('wp_insert_post_data', 'delibera_check_post_data', 10, 2);
+
+/**
+ *
+ * Retorna post do tipo pauta em uma determinada situacao (validacao, discussao, emvotacao ou comresolucao), usando um filtro
+ * @param array $filtro
+ * @param string $situacao
+ */
+function delibera_get_pautas_em($filtro = array(), $situacao = false)
+{
+ $filtro['post_type'] = "pauta";
+ $filtro['post_status'] = "publish";
+ $tax_query = array();
+
+ if(array_key_exists("tax_query", $filtro) && $situacao !== false)
+ {
+ $tax_query = $filtro['tax_query'];
+ $tax_query['relation'] = 'AND';
+ }
+ if($situacao !== false)
+ {
+ $tax_query[] = array(
+ 'taxonomy' => 'situacao',
+ 'field' => 'slug',
+ 'terms' => $situacao
+ );
+ $filtro['tax_query'] = $tax_query;
+ }
+ return get_posts($filtro);
+}
+
+/**
+ *
+ * Retorna pautas em Validação
+ * @param array $filtro
+ */
+function delibera_get_propostas($filtro = array())
+{
+ return delibera_get_pautas_em($filtro, 'validacao');
+}
+
+/**
+ *
+ * Retorna pautas em Discussão
+ * @param array $filtro
+ */
+function delibera_get_pautas($filtro = array())
+{
+ return delibera_get_pautas_em($filtro, 'discussao');
+}
+
+function delibera_des_filtro_qtranslate($where)
+{
+ if(is_archive())
+ {
+ global $q_config, $wpdb;
+ if($q_config['hide_untranslated'] && !is_singular()) {
+ $where = str_replace(" AND $wpdb->posts.post_content LIKE '%%'", '', $where);
+ }
+ }
+ return $where;
+}
+
+add_filter('posts_where_request', 'delibera_des_filtro_qtranslate', 11);
+
+/**
+ *
+ * Retorna pautas em Votação
+ * @param array $filtro
+ */
+function delibera_get_emvotacao($filtro = array())
+{
+ return delibera_get_pautas_em($filtro, 'emvotacao');
+}
+
+/**
+ *
+ * Retorna pautas já resolvidas
+ * @param array $filtro
+ */
+function delibera_get_resolucoes($filtro = array())
+{
+ return delibera_get_pautas_em($filtro, 'comresolucao');
+}
+
+/**
+ *
+ * Save o post da pauta
+ * @param $post_id int
+ * @param $post
+ */
+function delibera_save_post($post_id, $post)
+{
+ if(get_post_type( $post_id ) != "pauta")
+ {
+ return $post_id;
+ }
+ $opt = delibera_get_config();
+ $autosave = ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE );
+
+ if(
+ ( // Se tem validação, tem que ter o prazo
+ $opt['validacao'] == 'N' ||
+ (array_key_exists('prazo_validacao', $_POST) && array_key_exists('min_validacoes', $_POST) )
+ ) &&
+ ( // Se tem relatoria, tem que ter o prazo
+ $opt['relatoria'] == 'N' ||
+ array_key_exists('prazo_relatoria', $_POST)
+ ) &&
+ ( // Se tem relatoria, e é preciso eleger o relator, tem que ter o prazo para eleição
+ $opt['relatoria'] == 'N' ||
+ (
+ $opt['eleicao_relator'] == 'N' ||
+ array_key_exists('prazo_eleicao_relator', $_POST)
+ )
+ ) &&
+ array_key_exists('prazo_discussao', $_POST) &&
+ array_key_exists('prazo_votacao', $_POST)
+ )
+ {
+ $events_meta = array();
+
+ $validacoes = get_post_meta($post_id, 'numero_validacoes', true);
+ if($validacoes == "" || $validacoes === false || is_null($validacoes))
+ {
+ $events_meta['numero_validacoes'] = 0;
+ $events_meta['delibera_numero_comments_validacoes'] = 0;
+ $events_meta['delibera_numero_comments_encaminhamentos'] = 0;
+ $events_meta['delibera_numero_comments_discussoes'] = 0;
+ $events_meta['delibera_numero_comments_votos'] = 0;
+ $events_meta['delibera_numero_comments_padroes'] = 0;
+ $events_meta['delibera_numero_curtir'] = 0;
+ $events_meta['delibera_curtiram'] = array();
+ $events_meta['delibera_numero_discordar'] = 0;
+ $events_meta['delibera_discordaram'] = array();
+ $events_meta['delibera_numero_seguir'] = 0;
+ $events_meta['delibera_seguiram'] = array();
+ }
+
+ $events_meta['prazo_validacao'] = $opt['validacao'] == 'S' ? $_POST['prazo_validacao'] : date('d/m/Y');
+ $events_meta['prazo_discussao'] = $_POST['prazo_discussao'];
+ $events_meta['prazo_relatoria'] = $opt['relatoria'] == 'S' ? $_POST['prazo_relatoria'] : date('d/m/Y');
+ $events_meta['prazo_eleicao_relator'] = $opt['relatoria'] == 'S' && $opt['eleicao_relator'] == 'S' ? $_POST['prazo_eleicao_relator'] : date('d/m/Y');
+ $events_meta['prazo_votacao'] = $_POST['prazo_votacao'];
+ $events_meta['min_validacoes'] = $opt['validacao'] == 'S' ? $_POST['min_validacoes'] : 10;
+
+ /* ######### START ######### */
+ /* ######### FOR PDF UPLOAD FILE ######### */
+ // Setup the array of supported file types. In this case, it's just PDF.
+ $supported_types = array('application/pdf');
+
+ // Get the file type of the upload
+ $arr_uploaded_file_type = wp_check_filetype(basename($_FILES['pauta_pdf_contribution']['name']));
+ $uploaded_file_type = $arr_uploaded_file_type['type'];
+
+ if (isset ($_FILES['pauta_pdf_contribution']['name']) && $_FILES['pauta_pdf_contribution']['name'] != '') {
+ if (!in_array($uploaded_file_type, $supported_types)) {
+ //TODO: Improve this message and avoid wp_die
+ wp_die("O arquivo para web não é um PDF (formato permitido).");
+ }
+
+
+ // Use the WordPress API to upload the file
+ $upload_pauta_pdf = wp_upload_bits($_FILES['pauta_pdf_contribution']['name'], null, file_get_contents($_FILES['pauta_pdf_contribution']['tmp_name']));
+
+ if (isset($upload_pauta_pdf['error']) && $upload_pauta_pdf['error'] != 0) {
+ $events_meta['pauta_pdf_contribution'] = none;
+ wp_die('Erro ao salvar arquivo para Web. O erro foi: ' . $upload_pauta_pdf['error']);
+ } else {
+ $events_meta['pauta_pdf_contribution'] = $upload_pauta_pdf['url'];
+
+ global $wpdb;
+
+ $wpdb->query($wpdb->prepare("UPDATE " . $wpdb->prefix . "posts SET post_content=%s WHERE ID=%d", '', $post->ID));
+ }
+ }
+ /* ######### FOR PDF UPLOAD FILE ######### */
+ /* ######### END ######### */
+
+ foreach ($events_meta as $key => $value) // Buscar dados
+ {
+ if(get_post_meta($post->ID, $key, true)) // Se já existe
+ {
+ update_post_meta($post->ID, $key, $value); // Atualiza
+ }
+ else
+ {
+ add_post_meta($post->ID, $key, $value, true); // Senão, cria
+ }
+ }
+
+ if(
+ array_key_exists('delibera_fim_prazo', $_POST) &&
+ $_POST['delibera_fim_prazo'] == 'S' &&
+ current_user_can('forcar_prazo')
+ )
+ {
+ delibera_forca_fim_prazo($post->ID);
+ }
+
+ if($post->post_status == 'publish' && !$autosave)
+ {
+ delibera_del_cron($post->ID);
+ delibera_publish_pauta($post->ID, $post, true);
+ }
+
+ }
+
+}
+
+add_action ('save_post', 'delibera_save_post', 1, 2);
\ No newline at end of file
diff --git a/delibera_topic_deadline.php b/delibera_topic_deadline.php
new file mode 100644
index 0000000..c21d7ca
--- /dev/null
+++ b/delibera_topic_deadline.php
@@ -0,0 +1,441 @@
+slug)
+ {
+ case 'discussao':
+ delibera_tratar_prazo_discussao(array(
+ 'post_ID' => $postID,
+ 'prazo_discussao' => date('d/m/Y')
+ ));
+ break;
+ case 'relatoria':
+ delibera_tratar_prazo_relatoria(array(
+ 'post_ID' => $postID,
+ 'prazo_relatoria' => date('d/m/Y')
+ ));
+ break;
+ case 'emvotacao':
+ delibera_computa_votos($postID);
+ break;
+ }
+ //delibera_notificar_situacao($postID);
+}
+
+
+function delibera_forca_fim_prazo_action()
+{
+ if(current_user_can('forcar_prazo') && check_admin_referer('delibera_forca_fim_prazo_action'.$_REQUEST['post'], '_wpnonce'))
+ {
+ delibera_forca_fim_prazo($_REQUEST['post']);
+
+ wp_redirect( admin_url( 'edit.php?post_type=pauta') );
+ }
+ else
+ {
+ wp_die(__('Você não tem permissão para forçar um prazo','delibera'), __('Sem permissão','delibera'));
+ }
+}
+add_action('admin_action_delibera_forca_fim_prazo_action', 'delibera_forca_fim_prazo_action');
+
+function delibera_nao_validado_action()
+{
+ if(current_user_can('forcar_prazo') && check_admin_referer('delibera_nao_validado_action'.$_REQUEST['post'], '_wpnonce'))
+ {
+ delibera_marcar_naovalidada($_REQUEST['post']);
+
+ wp_redirect( admin_url( 'edit.php?post_type=pauta') );
+ }
+ else
+ {
+ wp_die(__('Você não tem permissão para invalidar uma pauta','delibera'), __('Sem permissão','delibera'));
+ }
+}
+add_action('admin_action_delibera_nao_validado_action', 'delibera_nao_validado_action');
+
+function delibera_reabrir_pauta_action()
+{
+ if(current_user_can('delibera_reabrir_pauta') && check_admin_referer('delibera_reabrir_pauta_action'.$_REQUEST['post'], '_wpnonce'))
+ {
+ delibera_reabrir_pauta($_REQUEST['post']);
+
+ wp_redirect( admin_url( 'edit.php?post_type=pauta') );
+ }
+ else
+ {
+ wp_die(__('Você não tem permissão para re-abrir discussão sobre uma pauta','delibera'), __('Sem permissão','delibera'));
+ }
+}
+add_action('admin_action_delibera_reabrir_pauta_action', 'delibera_reabrir_pauta_action');
+
+require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_cron.php';
+
+
+/**
+ *
+ * Faz agendamento das datas para seguir passos
+ * 1) Excluir ao atingir data de validação se não foi validade
+ * 2) Iniciar votação se tiver encaminhamento, ou novo prazo, caso contrário
+ * 3) Fim da votação
+ * @param $prazo_validacao
+ * @param $prazo_discussao
+ * @param $prazo_votacao
+ */
+function delibera_criar_agenda($postID, $prazo_validacao, $prazo_discussao, $prazo_votacao, $prazo_relatoria = false, $prazo_eleicao_relator = false)
+{
+
+ if($prazo_validacao !== false)
+ {
+ delibera_add_cron(
+ delibera_tratar_data($prazo_validacao),
+ 'delibera_tratar_prazo_validacao',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_validacao' => $prazo_validacao
+ )
+ );
+ delibera_add_cron(
+ strtotime("-1 day", delibera_tratar_data($prazo_validacao)),
+ 'delibera_notificar_fim_prazo',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_validacao' => $prazo_validacao
+ )
+ );
+ }
+
+ if($prazo_discussao !== false)
+ {
+ delibera_add_cron(
+ delibera_tratar_data($prazo_discussao),
+ 'delibera_tratar_prazo_discussao',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_discussao' => $prazo_discussao
+ )
+ );
+ delibera_add_cron(
+ strtotime("-1 day", delibera_tratar_data($prazo_discussao)),
+ 'delibera_notificar_fim_prazo',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_discussao' => $prazo_discussao
+ )
+ );
+ }
+
+ if($prazo_eleicao_relator != false)
+ {
+ delibera_add_cron(
+ delibera_tratar_data($prazo_eleicao_relator),
+ 'delibera_tratar_prazo_eleicao_relator',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_votacao' => $prazo_eleicao_relator
+ )
+ );
+ delibera_add_cron(
+ strtotime("-1 day", delibera_tratar_data($prazo_eleicao_relator)),
+ 'delibera_notificar_fim_prazo',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_votacao' => $prazo_eleicao_relator
+ )
+ );
+ }
+
+ if($prazo_relatoria != false)
+ {
+ delibera_add_cron(
+ delibera_tratar_data($prazo_relatoria),
+ 'delibera_tratar_prazo_relatoria',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_votacao' => $prazo_relatoria
+ )
+ );
+ delibera_add_cron(
+ strtotime("-1 day", delibera_tratar_data($prazo_relatoria)),
+ 'delibera_notificar_fim_prazo',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_votacao' => $prazo_relatoria
+ )
+ );
+ }
+
+ if($prazo_votacao != false)
+ {
+ delibera_add_cron(
+ delibera_tratar_data($prazo_votacao),
+ 'delibera_tratar_prazo_votacao',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_votacao' => $prazo_votacao
+ )
+ );
+ delibera_add_cron(
+ strtotime("-1 day", delibera_tratar_data($prazo_votacao)),
+ 'delibera_notificar_fim_prazo',
+ array(
+ 'post_ID' => $postID,
+ 'prazo_votacao' => $prazo_votacao
+ )
+ );
+ }
+}
+
+function delibera_tratar_prazos($args)
+{
+ $situacao = delibera_get_situacao($args['post_ID']);
+ switch ($situacao->slug)
+ {
+ case 'validacao':
+ delibera_tratar_prazo_validacao($args);
+ break;
+ case 'discussao':
+ delibera_tratar_prazo_discussao($args);
+ break;
+ case 'relatoria':
+ delibera_tratar_prazo_relatoria($args);
+ break;
+ case 'emvotacao':
+ delibera_tratar_prazo_votacao($args);
+ break;
+ }
+}
+
+add_action('delibera_tratar_prazos', 'delibera_tratar_prazos', 1, 1);
+
+function delibera_tratar_prazo_validacao($args)
+{
+ $situacao = delibera_get_situacao($args['post_ID']);
+ if($situacao->slug == 'validacao')
+ {
+ delibera_marcar_naovalidada($args['post_ID']);
+ }
+}
+
+function delibera_tratar_prazo_discussao($args)
+{
+ $situacao = delibera_get_situacao($args['post_ID']);
+ if($situacao->slug == 'discussao')
+ {
+ $post_id = $args['post_ID'];
+ if(count(delibera_get_comments_encaminhamentos($post_id)) > 0)
+ {
+ $opts = delibera_get_config();
+ if($opts['eleicao_relator'] == 'S')
+ {
+ wp_set_object_terms($post_id, 'eleicaoredator', 'situacao', false); //Mudar situação para Votação
+ }
+ elseif($opts['relatoria'] == 'S')
+ {
+ wp_set_object_terms($post_id, 'relatoria', 'situacao', false); //Mudar situação para Votação
+ }
+ else
+ {
+ wp_set_object_terms($post_id, 'emvotacao', 'situacao', false); //Mudar situação para Votação
+ }
+ if(has_action('delibera_discussao_concluida'))
+ {
+ do_action('delibera_discussao_concluida', $post_id);
+ }
+ }
+ else
+ {
+ delibera_novo_prazo($post_id);
+ }
+ }
+}
+
+function delibera_tratar_prazo_relatoria($args)
+{
+ $situacao = delibera_get_situacao($args['post_ID']);
+ if($situacao->slug == 'relatoria')
+ {
+ $post_id = $args['post_ID'];
+ if(count(delibera_get_comments_encaminhamentos($post_id)) > 0)
+ {
+ wp_set_object_terms($post_id, 'emvotacao', 'situacao', false); //Mudar situação para Votação
+ //delibera_notificar_situacao($post_id);
+ if(has_action('delibera_relatoria_concluida'))
+ {
+ do_action('delibera_relatoria_concluida', $post_id);
+ }
+ }
+ else
+ {
+ delibera_novo_prazo($post_id);
+ }
+ }
+}
+
+function delibera_tratar_prazo_votacao($args)
+{
+ $situacao = delibera_get_situacao($args['post_ID']);
+ if($situacao->slug == 'emvotacao')
+ {
+ delibera_computa_votos($args['post_ID']);
+ }
+}
+
+function delibera_marcar_naovalidada($postID)
+{
+ wp_set_object_terms($postID, 'naovalidada', 'situacao', false);
+ if(has_action('delibera_pauta_recusada'))
+ {
+ do_action('delibera_pauta_recusada', $postID);
+ }
+}
+
+function delibera_reabrir_pauta($postID)
+{
+ wp_set_object_terms($postID, 'validacao', 'situacao', false);
+ //delibera_notificar_situacao($postID);
+
+ delibera_novo_prazo($postID);
+}
+
+
+function delibera_novo_prazo($postID)
+{
+ $situacao = delibera_get_situacao($postID);
+ $opts = delibera_get_config();
+ switch ($situacao->slug)
+ {
+ case 'validacao':
+ $inova_data = strtotime("+{$opts['dias_novo_prazo']} days");
+ $nova_data = date("d/m/Y", $inova_data);
+ $inova_datad = strtotime("+{$opts['dias_discussao']} days",$inova_data);
+ $nova_datad = date("d/m/Y", $inova_datad);
+ $inova_datavt = strtotime("+{$opts['dias_votacao']} days",$inova_datad);
+ $nova_datavt = date("d/m/Y", $inova_datavt);
+ $inova_datarel = strtotime("+{$opts['dias_votacao_relator']} days",$inova_datavt);
+ $nova_datarel = date("d/m/Y", $inova_datarel);
+ $inova_datar = strtotime("+{$opts['dias_relatoria']} days",$inova_datarel);
+ $nova_datar = date("d/m/Y", $inova_datar);
+
+ $events_meta['prazo_validacao'] = $opts['validacao'] == 'S' ? $nova_data : date('d/m/Y');
+ $events_meta['prazo_discussao'] = $nova_datad;
+ $events_meta['prazo_relatoria'] = $opts['relatoria'] == 'S' ? $nova_datar : date('d/m/Y');
+ $events_meta['prazo_eleicao_relator'] = $opts['relatoria'] == 'S' && $opts['eleicao_relator'] == 'S' ? $nova_datarel : date('d/m/Y');
+ $events_meta['prazo_votacao'] = $nova_datavt;
+
+ foreach ($events_meta as $key => $value) // Buscar dados
+ {
+ if(get_post_meta($postID, $key, true)) // Se já existe
+ {
+ update_post_meta($postID, $key, $value); // Atualiza
+ }
+ else
+ {
+ add_post_meta($postID, $key, $value, true); // Se não cria
+ }
+ }
+ delibera_del_cron($postID);
+ delibera_criar_agenda($postID, $nova_data, $nova_datad, $nova_datavt, $nova_datar, $nova_datarel);
+ break;
+ case 'discussao':
+ case 'relatoria':
+ $inova_data = strtotime("+{$opts['dias_novo_prazo']} days");
+ delibera_set_novo_prazo_discussao_relatoria($postID, $inova_data, $opts);
+ break;
+ case 'emvotacao':
+ $inova_data = strtotime("+{$opts['dias_novo_prazo']} days");
+ $nova_data = date("d/m/Y", $inova_data);
+ update_post_meta($postID, 'prazo_votacao', $nova_data);
+ delibera_del_cron($postID);
+ delibera_criar_agenda($postID, false, false, $nova_data);
+ break;
+ }
+ //delibera_notificar_situacao($postID);
+}
+
+/**
+ * @param $postID
+ * @param $opts
+ */
+function delibera_set_novo_prazo_discussao_relatoria($postID, $inova_data, $opts)
+{
+ $nova_data = date("d/m/Y", $inova_data);
+ update_post_meta($postID, 'prazo_discussao', $nova_data);
+ $nova_eleicao_rel = false;
+ $nova_relatoria = false;
+ if ($opts['relatoria'] == "S") // Adiciona prazo de relatoria se for necessário
+ {
+ $opts['dias_votacao'] += $opts['dias_relatoria'];
+ if ($opts['eleicao_relator'] == "S") // Adiciona prazo de vatacao relator se for necessário
+ {
+ $opts['dias_votacao'] += $opts['dias_votacao_relator'];
+ $opts['dias_relatoria'] += $opts['dias_votacao_relator'];
+ $nova_eleicao_rel = date("d/m/Y", strtotime("+{$opts['dias_votacao_relator']} days", $inova_data));
+ }
+ $nova_relatoria = date("d/m/Y", strtotime("+{$opts['dias_relatoria']} days", $inova_data));
+ }
+ $inova_data_votacao = strtotime("+{$opts['dias_votacao']} days", $inova_data);
+ $nova_data_votacao = date("d/m/Y", $inova_data_votacao);
+ update_post_meta($postID, 'prazo_votacao', $nova_data_votacao);
+ delibera_del_cron($postID);
+ delibera_criar_agenda($postID, false, $nova_data, $nova_data_votacao, $nova_relatoria, $nova_eleicao_rel);
+}
+
+/**
+ * Retorna um inteiro indicando quantos dias faltam para o fim do prazo
+ * de uma pauta.
+ *
+ * Se o parâmetro $data for passado por referência o prazo para o fim da
+ * pauta é associado a ele.
+ *
+ * @param int $postID
+ * @param string $data
+ * @return int
+ */
+function delibera_get_prazo($postID, &$data = null)
+{
+ $situacao = delibera_get_situacao($postID);
+ $prazo = "";
+ $idata = strtotime(date('Y/m/d').' 23:59:59');
+ $diff = -1;
+
+ if(is_object($situacao))
+ {
+ switch ($situacao->slug)
+ {
+ case 'validacao':
+ {
+ $prazo = get_post_meta($postID, 'prazo_validacao', true);
+ } break;
+ case 'discussao':
+ {
+ $prazo = get_post_meta($postID, 'prazo_discussao', true);
+ }break;
+ case 'elegerelator':
+ {
+ $prazo = get_post_meta($postID, 'prazo_eleicao_relator', true);
+ }break;
+ case 'relatoria':
+ {
+ $prazo = get_post_meta($postID, 'prazo_relatoria', true);
+ }break;
+ case 'emvotacao':
+ {
+ $prazo = get_post_meta($postID, 'prazo_votacao', true);
+ } break;
+ }
+
+ $iprazo = strtotime(substr($prazo, 6).substr($prazo, 2, 4).substr($prazo, 0, 2).' 23:59:59');
+
+ $diff = $iprazo - $idata;
+ }
+ $dias = -1;
+
+ if($diff >= 0) $dias = ceil($diff/(60*60*24));
+
+ if(!is_null($data)) $data = $prazo;
+
+ return $dias;
+}
\ No newline at end of file
diff --git a/delibera_utils.php b/delibera_utils.php
index b8e8c83..ec9dae4 100644
--- a/delibera_utils.php
+++ b/delibera_utils.php
@@ -161,4 +161,28 @@ function delibera_form_table($rows) {
}
$content .= '';
return $content;
+}
+
+/**
+ *
+ * Pega os ultimos conteúdos
+ * @param string $tipo (option) 'pauta' ou 'comments', padrão 'pauta'
+ * @param array $args (option) query padrão do post ou do comments
+ * @param int $count (option) padrão 5
+ */
+function delibera_ultimas($tipo = 'pauta', $args = array(), $count = 5)
+{
+ switch($tipo)
+ {
+ case 'pauta':
+ $filtro = array('orderby' => 'modified', 'order' => 'DESC', 'posts_per_page' => $count);
+ $filtro = array_merge($filtro, $args);
+ return delibera_get_pautas_em($filtro, false);
+ break;
+ case 'comments':
+ $filtro = array('orderby' => 'comment_date_gmt', 'order' => 'DESC', 'number' => $count, 'post_type' => 'pauta');
+ $filtro = array_merge($filtro, $args);
+ return delibera_wp_get_comments($filtro);
+ break;
+ }
}
\ No newline at end of file
From d6a9f3e88380b8b0cbb8c5c75d98a049fc47638a Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Tue, 19 Jan 2016 11:19:15 -0200
Subject: [PATCH 015/435] =?UTF-8?q?corrige=20bug=20ao=20votar=20e=20o=20en?=
=?UTF-8?q?caminhamento=20ainda=20n=C3=A3o=20recebeu=20nenhum=20voto?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera.php | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/delibera.php b/delibera.php
index 0408c8d..d25959b 100644
--- a/delibera.php
+++ b/delibera.php
@@ -340,7 +340,12 @@ function delibera_computa_votos($postID, $votos = null)
$voto = get_comment_meta($voto_comment->comment_ID, 'delibera_votos', true);
foreach ($voto as $voto_para)
{
- $encaminhamentos_votos[$voto_para]++;
+ if (isset($encaminhamentos_votos[$voto_para]))
+ {
+ $encaminhamentos_votos[$voto_para]++;
+ } else {
+ $encaminhamentos_votos[$voto_para] = 1;
+ }
}
}
$maisvotado = array(-1, -1);
From f3e809ae234ff61ca57b2067a962b06d29def78f Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Tue, 19 Jan 2016 12:18:19 -0200
Subject: [PATCH 016/435] =?UTF-8?q?Finaliza=20organiza=C3=A7=C3=A3o=20do?=
=?UTF-8?q?=20plugin=20em=20v=C3=A1rios=20arquivos?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera.php | 525 +++------------------------------
delibera_admin_functions.php | 55 +++-
delibera_comments.php | 150 +++++++++-
delibera_init.php | 52 +++-
delibera_topic.php | 150 +++++++++-
timeline/delibera_timeline.php | 37 ++-
6 files changed, 462 insertions(+), 507 deletions(-)
diff --git a/delibera.php b/delibera.php
index d25959b..7c7ee7f 100644
--- a/delibera.php
+++ b/delibera.php
@@ -20,8 +20,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-// Defines
-
if(!defined('__DIR__')) {
$iPos = strrpos(__FILE__, DIRECTORY_SEPARATOR);
define("__DIR__", substr(__FILE__, 0, $iPos) . DIRECTORY_SEPARATOR);
@@ -29,509 +27,75 @@
define('DELIBERA_ABOUT_PAGE', __('sobre-a-plataforma', 'delibera'));
-// End Defines
-
-// Parse shorttag
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_shortcodes.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_shortcodes.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_widgets.php';
-// End Parse shorttag
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_rewrite_rules.php';
-// Parse widgets
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_conf.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_widgets.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_conf_roles.php';
-// End Parse widgets
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_conf_themes.php';
-// Parse rewrite-rules
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'print' . DIRECTORY_SEPARATOR . 'wp-print.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_rewrite_rules.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_admin_functions.php';
-// End Parse rewrite-rules
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_setup.php';
-// pagina de configuracao do plugin
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_conf.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_init.php';
-// Inicialização do plugin
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_utils.php';
-require_once __DIR__.'/print/wp-print.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_comments.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_admin_functions.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_comments_query.php';
-// setup plugin
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_setup.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_comments_template.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_init.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_comments_edit.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_utils.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_cron.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_comments.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_topic.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_topic_deadline.php';
-/**
- *
- * Insere term no banco e atualizar línguas do qtranslate
- * @param string $label
- * @param string $tax Taxonomy
- * @param array $term EX: array('description'=> __('Español'),'slug' => 'espanol', 'slug' => 'espanol')
- * @param array $idiomas EX: array('qtrans_term_en' => 'United States of America', 'qtrans_term_pt' => 'Estados Unidos da América', 'qtrans_term_es' => 'Estados Unidos de América'
- */
-function delibera_insert_term($label, $tax, $term, $idiomas = array())
+if (file_exists(__DIR__ . DIRECTORY_SEPARATOR . 'delibera_filtros.php'))
{
- if(term_exists($term['slug'], $tax, null) == false)
- {
- wp_insert_term($label, $tax, $term);
- global $q_config;
- if(count($idiomas) > 0 && function_exists('qtrans_stripSlashesIfNecessary'))
- {
- if(isset($idiomas['qtrans_term_'.$q_config['default_language']]) && $idiomas['qtrans_term_'.$q_config['default_language']]!='')
- {
- $default = htmlspecialchars(qtrans_stripSlashesIfNecessary($idiomas['qtrans_term_'.$q_config['default_language']]), ENT_NOQUOTES);
- if(!isset($q_config['term_name'][$default]) || !is_array($q_config['term_name'][$default])) $q_config['term_name'][$default] = array();
- foreach($q_config['enabled_languages'] as $lang) {
- $idiomas['qtrans_term_'.$lang] = qtrans_stripSlashesIfNecessary($idiomas['qtrans_term_'.$lang]);
- if($idiomas['qtrans_term_'.$lang]!='') {
- $q_config['term_name'][$default][$lang] = htmlspecialchars($idiomas['qtrans_term_'.$lang], ENT_NOQUOTES);
- } else {
- $q_config['term_name'][$default][$lang] = $default;
- }
- }
- update_option('qtranslate_term_name',$q_config['term_name']);
- }
- }
- }
-}
-
-
-
-function delibera_admin_list_options($actions, $post)
-{
- if(get_post_type($post) == 'pauta' && $post->post_status == 'publish' )
- {
- if(current_user_can('forcar_prazo'))
- {
- $url = 'admin.php?action=delibera_forca_fim_prazo_action&post='.$post->ID;
- $url = wp_nonce_url($url, 'delibera_forca_fim_prazo_action'.$post->ID);
- $actions['forcar_prazo'] = ''.__('Forçar fim de prazo','delibera').'';
-
- $url = 'admin.php?action=delibera_nao_validado_action&post='.$post->ID;
- $url = wp_nonce_url($url, 'delibera_nao_validado_action'.$post->ID);
- $actions['nao_validado'] = ''.__('Invalidar','delibera').'';
-
- }
- if(delibera_get_situacao($post->ID)->slug == 'naovalidada' && current_user_can('delibera_reabrir_pauta'))
- {
- $url = 'admin.php?action=delibera_reabrir_pauta_action&post='.$post->ID;
- $url = wp_nonce_url($url, 'delibera_reabrir_pauta_action'.$post->ID);
- $actions['reabrir'] = ''.__('Reabrir','delibera').'';
- }
-
- }
-
- //print_r(_get_cron_array());
- return $actions;
+ require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_filtros.php';
}
-add_filter('post_row_actions','delibera_admin_list_options', 10, 2);
-
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_cron.php';
-
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_topic.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_curtir.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_curtir.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_discordar.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_discordar.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_seguir.php';
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_seguir.php';
-
-if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'mailer') && file_exists(__DIR__.DIRECTORY_SEPARATOR.'mailer'.DIRECTORY_SEPARATOR.'delibera_mailer.php'))
+if (file_exists(__DIR__.DIRECTORY_SEPARATOR.'mailer') &&
+ file_exists(__DIR__.DIRECTORY_SEPARATOR.'mailer' . DIRECTORY_SEPARATOR . 'delibera_mailer.php'))
{
//require_once __DIR__.DIRECTORY_SEPARATOR.'mailer'.DIRECTORY_SEPARATOR.'delibera_mailer.php';
}
-function delibera_restrict_listings()
-{
- global $typenow;
- global $wp_query;
- if ($typenow=='pauta')
- {
- $taxonomy = 'situacao';
- $situacao_taxonomy = get_taxonomy($taxonomy);
- wp_dropdown_categories(array(
- 'show_option_all' => sprintf(__('Mostrar todas as %s','delibera'),$situacao_taxonomy->label),
- 'taxonomy' => $taxonomy,
- 'name' => 'situacao',
- 'orderby' => 'id',
- 'selected' => isset($_REQUEST['situacao']) ? $_REQUEST['situacao'] : '',
- 'hierarchical' => false,
- 'depth' => 1,
- 'show_count' => true, // This will give a view
- 'hide_empty' => true, // This will give false positives, i.e. one's not empty related to the other terms.
- ));
- }
-}
-add_action('restrict_manage_posts','delibera_restrict_listings');
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_notificar.php';
-function delibera_convert_situacao_id_to_taxonomy_term_in_query(&$query)
-{
- global $pagenow;
- $qv = &$query->query_vars;
- if (isset($qv['post_type']) &&
- $qv['post_type'] == 'pauta' &&
- $pagenow=='edit.php' &&
- isset($qv['situacao'])
- )
- {
- $situacao = get_term_by('id', $_REQUEST['situacao'], 'situacao');
- $qv['situacao'] = $situacao->slug;
- }
-}
-add_filter('parse_query','delibera_convert_situacao_id_to_taxonomy_term_in_query');
-
-/**
- * Notificações do sistema.
- */
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_notificar.php';
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_user_painel.php';
-/**
- * Perfil do usuário
- */
-require_once __DIR__.DIRECTORY_SEPARATOR.'delibera_user_painel.php';
-
-// gerar relatório em um arquivo xls
require_once __DIR__ . DIRECTORY_SEPARATOR . 'delibera_relatorio.php';
-
-function delibera_the_posts($posts)
-{
- if (empty($posts)) return $posts;
-
- $timeline_found = false; // use this flag to see if styles and scripts need to be enqueued
- $relatoria = false;
- foreach ($posts as $post)
- {
- if (stripos($post->post_content, '[delibera_timeline') !== false)
- {
- $timeline_found = true; // bingo!
- }
- if(get_post_type($post) == 'pauta')
- {
- $situacao = delibera_get_situacao($post->ID);
- if($situacao->slug == 'relatoria')
- {
- $relatoria = true;
- }
- }
- }
-
- if ( ($timeline_found) && (!is_admin()) )
- {
- // enqueue here
- wp_enqueue_style('delibera_timeline_css', WP_CONTENT_URL.'/plugins/delibera/timeline/delibera_timeline.css');
- wp_enqueue_script( 'delibera_timeline_js', WP_CONTENT_URL.'/plugins/delibera/timeline/js/delibera_timeline.js', array( 'jquery' ));
- wp_enqueue_script( 'jquery-ui-draggable');
- }
-
- return $posts;
-}
-
-add_filter('the_posts', 'delibera_the_posts'); // the_posts gets triggered before wp_head
-
-// FIM Funções de conteudo
-
-// Validadores
-
-/**
- * Sempre que um usuário valida uma pauta
- * verifica se o número mínimo de validações foi
- * atingido e se sim muda a situação da pauta de
- * "emvotacao" para "discussao".
- *
- * @param unknown $post
- * @return null
- */
-function delibera_valida_validacoes($post)
-{
- $validacoes = get_post_meta($post, 'numero_validacoes', true);
- $min_validacoes = get_post_meta($post, 'min_validacoes', true);
-
- if($validacoes >= $min_validacoes)
- {
- wp_set_object_terms($post, 'discussao', 'situacao', false); //Mudar situação para Discussão
- if(has_action('delibera_validacao_concluida'))
- {
- do_action('delibera_validacao_concluida', $post);
- }
- }
- else
- {
- if(has_action('delibera_validacao'))
- {
- do_action('delibera_validacao', $post);
- }
- }
-}
-
-/* Faz os testes de permissões para garantir que nenhum engraçadinho
- * está injetando variáveis maliciosas.
- * TODO: Incluir todas as variaveis a serem verificadas aqui
- */
-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!!");
- }
-}
-add_action( 'wp_blacklist_check', 'delibera_valida_permissoes' );
-
-/**
- *
- * Verifica se o número de votos é igual ao número de representantes para deflagar fim da votação
- * @param integer $postID
- */
-function delibera_valida_votos($postID)
-{
- global $wp_roles,$wpdb;
- $users_count = 0;
- foreach ($wp_roles->roles as $nome => $role)
- {
- if(is_array($role['capabilities']) && array_key_exists('votar', $role['capabilities']) && $role['capabilities']['votar'] == 1 ? "SSSSSim" : "NNNnnnnnnnao")
- {
- $result = $wpdb->get_results("SELECT count(*) as n FROM $wpdb->usermeta WHERE meta_key = 'wp_capabilities' AND meta_value LIKE '%$nome%' ");
- $users_count += $result[0]->n;
- }
- }
-
- $votos = delibera_get_comments_votacoes($postID);
-
- $votos_count = count($votos);
-
- if($votos_count >= $users_count)
- {
- delibera_computa_votos($postID, $votos);
- }
-}
-
-/**
- *
- * Faz a apuração dos votos e toma as devidas ações:
- * Empate: Mais prazo;
- * Vencedor: Marco com resolucao e marca o encaminhamento.
- * @param interger $postID
- * @param array $votos
- */
-function delibera_computa_votos($postID, $votos = null)
-{
- if(is_null($votos)) // Ocorre no fim do prazo de votação
- {
- $votos = delibera_get_comments_votacoes($postID);
- }
- $encaminhamentos = delibera_get_comments_encaminhamentos($postID);
- $encaminhamentos_votos = array();
- foreach ($encaminhamentos as $encaminhamento)
- {
- $encaminhamentos_votos[$encaminhamento->comment_ID] = 0;
- }
-
- foreach ($votos as $voto_comment)
- {
- $voto = get_comment_meta($voto_comment->comment_ID, 'delibera_votos', true);
- foreach ($voto as $voto_para)
- {
- if (isset($encaminhamentos_votos[$voto_para]))
- {
- $encaminhamentos_votos[$voto_para]++;
- } else {
- $encaminhamentos_votos[$voto_para] = 1;
- }
- }
- }
- $maisvotado = array(-1, -1);
- $iguais = array();
-
- foreach ($encaminhamentos_votos as $encaminhamentos_voto_key => $encaminhamentos_voto_valor)
- {
- if($encaminhamentos_voto_valor > $maisvotado[1])
- {
- $maisvotado[0] = $encaminhamentos_voto_key;
- $maisvotado[1] = $encaminhamentos_voto_valor;
- $iguais = array();
- }
- elseif($encaminhamentos_voto_valor == $maisvotado[1])
- {
- $iguais[] = $encaminhamentos_voto_key;
- }
- delete_comment_meta($encaminhamentos_voto_key, 'delibera_comment_numero_votos');
- add_comment_meta($encaminhamentos_voto_key, 'delibera_comment_numero_votos', $encaminhamentos_voto_valor, true);
- }
-
- // nao finaliza a votacao caso haja um empate, exceto quando o administrador clicar no botão "Forçar fim do prazo"
- if(count($iguais) > 0 && !(isset($_REQUEST['action']) && $_REQUEST['action'] == 'delibera_forca_fim_prazo_action')) // Empato
- {
- delibera_novo_prazo($postID);
- }
- else
- {
- wp_set_object_terms($postID, 'comresolucao', 'situacao', false);
- update_comment_meta($maisvotado[0], 'delibera_comment_tipo', 'resolucao');
- add_post_meta($postID, 'data_resolucao', date('d/m/Y H:i:s'), true);
- ////delibera_notificar_situacao($postID);
- if(has_action('votacao_concluida'))
- {
- do_action('votacao_concluida', $post);
- }
- }
-}
-
-function delibera_emvotacao($post)
-{
- $opt = delibera_get_config();
- if($opt['relatoria'] == 'S')
- {
- if($opt['eleicao_relator'] == 'S')
- {
-
- }
- }
-}
-
-add_action('init', 'delibera_nova_pauta_create_action');
-function delibera_nova_pauta_create_action(){
- $opt = delibera_get_config();
- if ($opt['criar_pauta_pelo_front_end'] == 'S' && is_user_logged_in() && isset($_POST['_wpnonce']) && wp_verify_nonce($_POST['_wpnonce'], 'delibera_nova_pauta')) {
- $title = $_POST['nova-pauta-titulo'];
- $content = $_POST['nova-pauta-conteudo'];
- $excerpt = $_POST['nova-pauta-resumo'];
-
- $pauta = array();
- $pauta['post_title'] = $title;
- $pauta['post_excerpt'] = $excerpt;
- $pauta['post_type'] = 'pauta';
-
- //Check if there is any file uploaded
- // If there is any, then ignore 'content' and use File.
- // else do add 'pauta' with the text content
- if(!empty($_FILES['post_pdf_contribution']['name'])) {
- // Setup the array of supported file types. In this case, it's just PDF.
- $supported_types = array('application/pdf');
- // Get the file type of the upload
- $pdf_contribution = wp_check_filetype(basename($_FILES['post_pdf_contribution']['name']));
- $sent_file_type = $pdf_contribution['type'];
- // Check if the type is supported. If not, throw an error.
- if (!in_array($sent_file_type, $supported_types)) {
- //TODO: Improve this message and avoid wp_die
- wp_die("O arquivo para web não é um PDF (formato permitido).");
- }
- $uploaded_file = wp_upload_bits($_FILES['pauta_pdf_contribution']['name'], null, file_get_contents($_FILES['pauta_pdf_contribution']['tmp_name']));
- if(isset($uploaded_file['error']) && $uploaded_file['error'] != 0) {
- wp_die('Erro ao salvar arquivo para Web. O erro foi: ' . $upload['error']);
- } else {
- $pauta['pauta_pdf_contribution'] = $uploaded_file['url'];
- }
- } else {
- $pauta['post_content'] = $content;
- }
-
- // para que a situação da pauta seja criada corretamente,
- // é necessário criar a pauta como rascunho para depois publicar no final desta função
- $pauta['post_status'] = 'draft';
-
- $pauta_id = wp_insert_post($pauta);
-
- if(is_int($pauta_id) && $pauta_id > 0){
-
- /* Os valores adicionados ao array $_POST são baseados no if da função delibera_save_post(),
- * comentado abaixo
- if(
- ( // Se tem validação, tem que ter o prazo
- $opt['validacao'] == 'N' ||
- (array_key_exists('prazo_validacao', $_POST) && array_key_exists('min_validacoes', $_POST) )
- ) &&
- ( // Se tem relatoria, tem que ter o prazo
- $opt['relatoria'] == 'N' ||
- array_key_exists('prazo_relatoria', $_POST)
- ) &&
- ( // Se tem relatoria, e é preciso eleger o relator, tem que ter o prazo para eleição
- $opt['relatoria'] == 'N' ||
- (
- $opt['eleicao_relator'] == 'N' ||
- array_key_exists('prazo_eleicao_relator', $_POST)
- )
- ) &&
- array_key_exists('prazo_discussao', $_POST) &&
- array_key_exists('prazo_votacao', $_POST)
- )
- */
-
- if($opt['validacao'] == 'S'){
- $_POST['prazo_validacao'] = date('d/m/Y', strtotime ('+'.$opt['dias_validacao'].' DAYS'));
- $_POST['min_validacoes'] = $opt['minimo_validacao'];
- }
-
- if($opt['relatoria'] == 'S'){
- $_POST['prazo_relatoria'] = date('d/m/Y', strtotime ('+'.$opt['dias_relatoria'].' DAYS'));
- if($opt['eleicao_relator'] == 'S'){
- $_POST['prazo_eleicao_relator'] = date('d/m/Y', strtotime ('+'.$opt['dias_votacao_relator'].' DAYS'));
- }
- }
-
- if (trim($opt['data_fixa_nova_pauta_externa']) != '') {
- $prazo_discussao = DateTime::createFromFormat('d/m/Y', $opt['data_fixa_nova_pauta_externa']);
- $_POST['prazo_discussao'] = $prazo_discussao->format('d/m/Y');
- $_POST['prazo_votacao'] = date('d/m/Y', strtotime ('+'.$opt['dias_votacao'].' DAYS', $prazo_discussao->getTimestamp()));
- } else {
- $_POST['prazo_discussao'] = date('d/m/Y', strtotime ('+'.$opt['dias_discussao'].' DAYS'));
- $_POST['prazo_votacao'] = date('d/m/Y', strtotime ('+'.$opt['dias_votacao'].' DAYS'));
- }
-
- // isto é necessário por causa do if da função delibera_publish_pauta()
- $_POST['publish'] = 'Publicar';
- $_POST['prev_status'] = 'draft';
-
- // verifica se todos os temas enviados por post são válidos
- $temas = get_terms('tema', array('hide_empty' => true));
- $temas_ids = array();
-
- if(isset($_POST['tema']) && is_array($_POST['tema']))
- foreach($temas as $tema)
- if(in_array ($tema->term_id, $_POST['tema']))
- $temas_ids[] = $tema->term_id;
-
- // coloca os termos de temas no post
- wp_set_post_terms($pauta_id, $temas_ids, 'tema');
-
- // publica o post
- wp_publish_post($pauta_id);
-
- // isto serve para criar o slug corretamente,
- // já que no wp_insert_post não cria o slug quando o status é draft e o wp_publish_post tb não cria o slug
- unset($pauta['post_status']);
- $pauta['ID'] = $pauta_id;
- $pauta['post_name'] = sanitize_post_field('post_name', $title, $pauta_id, 'save');
- wp_update_post($pauta);
-
- // redireciona para a pauta criada
- $permalink = get_post_permalink($pauta_id);
- wp_safe_redirect($permalink);
- die;
- }
- }
-}
-
-// END - Interface pública para a criação de novas pautas
-
-/**
- * Redireciona usuários que não são membros do site
+ /**
+ * Redir e ciona usuários que não são membros do site
* onde o Delibera foi instalado para a página de pautas após o
- * login se a opção "Todos os usuários logados na rede podem participar?"
- * estiver habilitada.
- *
+ * login se a opção "Todos os usuários logados na rede podem participar?"
+ * e s tiver habilitada.
+ *
* Se não fizermos esse redicionamento estes usuários serão redirecionados
- * para suas páginas de perfil fora do site onde o Delibera está instalado.
+ * para suas páginas de perfil fora do site onde o Delibera es t á i nstalado.
*
-add_filter('login_redirect', function($redirect_to, $request, $user) {
+a d d_filter('login_redirect', function($redirect_to, $request, $user) {
$options = delibera_get_config();
if ($options['todos_usuarios_logados_podem_participar'] == 'S' && !is_user_member_of_blog()) {
@@ -540,23 +104,4 @@ function delibera_nova_pauta_create_action(){
return $redirect_to;
}
}, 10, 3);
-TODO mundo redirecionado para a lista de pauta, talvez uma nova opções */
-
-/***
- * Verifica se as pautas devem suportar sugestão de encaminhamento ou se
- * as propostas entram apenas como opinião. Muito útil para consultas públicas.
- *
- * @return bool
- */
-function delibera_pautas_suportam_encaminhamento()
-{
- $options = delibera_get_config();
-
- if ( $options['pauta_suporta_encaminhamento'] == 'S' ) {
- return true;
- } else {
- return false;
- }
-}
-
-?>
+TODO mundo redirecionado para a lista de pauta, talvez uma nova opções */
\ No newline at end of file
diff --git a/delibera_admin_functions.php b/delibera_admin_functions.php
index 12a3bc9..d1daf43 100644
--- a/delibera_admin_functions.php
+++ b/delibera_admin_functions.php
@@ -181,4 +181,57 @@ function delibera_post_custom_column($column)
}
-add_action('manage_posts_custom_column', 'delibera_post_custom_column');
\ No newline at end of file
+add_action('manage_posts_custom_column', 'delibera_post_custom_column');
+
+function delibera_admin_list_options($actions, $post)
+{
+ if(get_post_type($post) == 'pauta' && $post->post_status == 'publish' )
+ {
+ if(current_user_can('forcar_prazo'))
+ {
+ $url = 'admin.php?action=delibera_forca_fim_prazo_action&post='.$post->ID;
+ $url = wp_nonce_url($url, 'delibera_forca_fim_prazo_action'.$post->ID);
+ $actions['forcar_prazo'] = ''.__('Forçar fim de prazo','delibera').'';
+
+ $url = 'admin.php?action=delibera_nao_validado_action&post='.$post->ID;
+ $url = wp_nonce_url($url, 'delibera_nao_validado_action'.$post->ID);
+ $actions['nao_validado'] = ''.__('Invalidar','delibera').'';
+
+ }
+ if(delibera_get_situacao($post->ID)->slug == 'naovalidada' && current_user_can('delibera_reabrir_pauta'))
+ {
+ $url = 'admin.php?action=delibera_reabrir_pauta_action&post='.$post->ID;
+ $url = wp_nonce_url($url, 'delibera_reabrir_pauta_action'.$post->ID);
+ $actions['reabrir'] = ''.__('Reabrir','delibera').'';
+ }
+
+ }
+
+ //print_r(_get_cron_array());
+ return $actions;
+}
+
+add_filter('post_row_actions','delibera_admin_list_options', 10, 2);
+
+function delibera_restrict_listings()
+{
+ global $typenow;
+ global $wp_query;
+ if ($typenow=='pauta')
+ {
+ $taxonomy = 'situacao';
+ $situacao_taxonomy = get_taxonomy($taxonomy);
+ wp_dropdown_categories(array(
+ 'show_option_all' => sprintf(__('Mostrar todas as %s','delibera'),$situacao_taxonomy->label),
+ 'taxonomy' => $taxonomy,
+ 'name' => 'situacao',
+ 'orderby' => 'id',
+ 'selected' => isset($_REQUEST['situacao']) ? $_REQUEST['situacao'] : '',
+ 'hierarchical' => false,
+ 'depth' => 1,
+ 'show_count' => true, // This will give a view
+ 'hide_empty' => true, // This will give false positives, i.e. one's not empty related to the other terms.
+ ));
+ }
+}
+add_action('restrict_manage_posts','delibera_restrict_listings');
\ No newline at end of file
diff --git a/delibera_comments.php b/delibera_comments.php
index f5c15eb..3248c80 100644
--- a/delibera_comments.php
+++ b/delibera_comments.php
@@ -1,8 +1,4 @@
= $min_validacoes)
+ {
+ wp_set_object_terms($post, 'discussao', 'situacao', false); //Mudar situação para Discussão
+ if(has_action('delibera_validacao_concluida'))
+ {
+ do_action('delibera_validacao_concluida', $post);
+ }
+ }
+ else
+ {
+ if(has_action('delibera_validacao'))
+ {
+ do_action('delibera_validacao', $post);
+ }
+ }
+}
+
+/* Faz os testes de permissões para garantir que nenhum engraçadinho
+ * está injetando variáveis maliciosas.
+ * TODO: Incluir todas as variaveis a serem verificadas aqui
+ */
+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!!");
+ }
+}
+add_action( 'wp_blacklist_check', 'delibera_valida_permissoes' );
+
+/**
+ *
+ * Verifica se o número de votos é igual ao número de representantes para deflagar fim da votação
+ * @param integer $postID
+ */
+function delibera_valida_votos($postID)
+{
+ global $wp_roles,$wpdb;
+ $users_count = 0;
+ foreach ($wp_roles->roles as $nome => $role)
+ {
+ if(is_array($role['capabilities']) && array_key_exists('votar', $role['capabilities']) && $role['capabilities']['votar'] == 1 ? "SSSSSim" : "NNNnnnnnnnao")
+ {
+ $result = $wpdb->get_results("SELECT count(*) as n FROM $wpdb->usermeta WHERE meta_key = 'wp_capabilities' AND meta_value LIKE '%$nome%' ");
+ $users_count += $result[0]->n;
+ }
+ }
+
+ $votos = delibera_get_comments_votacoes($postID);
+
+ $votos_count = count($votos);
+
+ if($votos_count >= $users_count)
+ {
+ delibera_computa_votos($postID, $votos);
+ }
+}
+
+/**
+ *
+ * Faz a apuração dos votos e toma as devidas ações:
+ * Empate: Mais prazo;
+ * Vencedor: Marco com resolucao e marca o encaminhamento.
+ * @param interger $postID
+ * @param array $votos
+ */
+function delibera_computa_votos($postID, $votos = null)
+{
+ if(is_null($votos)) // Ocorre no fim do prazo de votação
+ {
+ $votos = delibera_get_comments_votacoes($postID);
+ }
+ $encaminhamentos = delibera_get_comments_encaminhamentos($postID);
+ $encaminhamentos_votos = array();
+ foreach ($encaminhamentos as $encaminhamento)
+ {
+ $encaminhamentos_votos[$encaminhamento->comment_ID] = 0;
+ }
+
+ foreach ($votos as $voto_comment)
+ {
+ $voto = get_comment_meta($voto_comment->comment_ID, 'delibera_votos', true);
+ foreach ($voto as $voto_para)
+ {
+ if (isset($encaminhamentos_votos[$voto_para]))
+ {
+ $encaminhamentos_votos[$voto_para]++;
+ } else {
+ $encaminhamentos_votos[$voto_para] = 1;
+ }
+ }
+ }
+ $maisvotado = array(-1, -1);
+ $iguais = array();
+
+ foreach ($encaminhamentos_votos as $encaminhamentos_voto_key => $encaminhamentos_voto_valor)
+ {
+ if($encaminhamentos_voto_valor > $maisvotado[1])
+ {
+ $maisvotado[0] = $encaminhamentos_voto_key;
+ $maisvotado[1] = $encaminhamentos_voto_valor;
+ $iguais = array();
+ }
+ elseif($encaminhamentos_voto_valor == $maisvotado[1])
+ {
+ $iguais[] = $encaminhamentos_voto_key;
+ }
+ delete_comment_meta($encaminhamentos_voto_key, 'delibera_comment_numero_votos');
+ add_comment_meta($encaminhamentos_voto_key, 'delibera_comment_numero_votos', $encaminhamentos_voto_valor, true);
+ }
+
+ // nao finaliza a votacao caso haja um empate, exceto quando o administrador clicar no botão "Forçar fim do prazo"
+ if(count($iguais) > 0 && !(isset($_REQUEST['action']) && $_REQUEST['action'] == 'delibera_forca_fim_prazo_action')) // Empato
+ {
+ delibera_novo_prazo($postID);
+ }
+ else
+ {
+ wp_set_object_terms($postID, 'comresolucao', 'situacao', false);
+ update_comment_meta($maisvotado[0], 'delibera_comment_tipo', 'resolucao');
+ add_post_meta($postID, 'data_resolucao', date('d/m/Y H:i:s'), true);
+ ////delibera_notificar_situacao($postID);
+ if(has_action('votacao_concluida'))
+ {
+ do_action('votacao_concluida', $post);
+ }
+ }
+}
\ No newline at end of file
diff --git a/delibera_init.php b/delibera_init.php
index 00a5b0e..db7dcac 100644
--- a/delibera_init.php
+++ b/delibera_init.php
@@ -400,4 +400,54 @@ function delibera_config_menu()
add_submenu_page($base_page, __('Configurações do Plugin','delibera'),__('Configurações do Plugin','delibera'), 'manage_options', 'delibera-config', 'delibera_conf_page');
do_action('delibera_menu_itens', $base_page);
}
-}
\ No newline at end of file
+}
+
+/**
+ *
+ * Insere term no banco e atualizar línguas do qtranslate
+ * @param string $label
+ * @param string $tax Taxonomy
+ * @param array $term EX: array('description'=> __('Español'),'slug' => 'espanol', 'slug' => 'espanol')
+ * @param array $idiomas EX: array('qtrans_term_en' => 'United States of America', 'qtrans_term_pt' => 'Estados Unidos da América', 'qtrans_term_es' => 'Estados Unidos de América'
+ */
+function delibera_insert_term($label, $tax, $term, $idiomas = array())
+{
+ if(term_exists($term['slug'], $tax, null) == false)
+ {
+ wp_insert_term($label, $tax, $term);
+ global $q_config;
+ if(count($idiomas) > 0 && function_exists('qtrans_stripSlashesIfNecessary'))
+ {
+ if(isset($idiomas['qtrans_term_'.$q_config['default_language']]) && $idiomas['qtrans_term_'.$q_config['default_language']]!='')
+ {
+ $default = htmlspecialchars(qtrans_stripSlashesIfNecessary($idiomas['qtrans_term_'.$q_config['default_language']]), ENT_NOQUOTES);
+ if(!isset($q_config['term_name'][$default]) || !is_array($q_config['term_name'][$default])) $q_config['term_name'][$default] = array();
+ foreach($q_config['enabled_languages'] as $lang) {
+ $idiomas['qtrans_term_'.$lang] = qtrans_stripSlashesIfNecessary($idiomas['qtrans_term_'.$lang]);
+ if($idiomas['qtrans_term_'.$lang]!='') {
+ $q_config['term_name'][$default][$lang] = htmlspecialchars($idiomas['qtrans_term_'.$lang], ENT_NOQUOTES);
+ } else {
+ $q_config['term_name'][$default][$lang] = $default;
+ }
+ }
+ update_option('qtranslate_term_name',$q_config['term_name']);
+ }
+ }
+ }
+}
+
+function delibera_convert_situacao_id_to_taxonomy_term_in_query(&$query)
+{
+ global $pagenow;
+ $qv = &$query->query_vars;
+ if (isset($qv['post_type']) &&
+ $qv['post_type'] == 'pauta' &&
+ $pagenow=='edit.php' &&
+ isset($qv['situacao'])
+ )
+ {
+ $situacao = get_term_by('id', $_REQUEST['situacao'], 'situacao');
+ $qv['situacao'] = $situacao->slug;
+ }
+}
+add_filter('parse_query','delibera_convert_situacao_id_to_taxonomy_term_in_query');
diff --git a/delibera_topic.php b/delibera_topic.php
index ac4e6d2..c4a9f84 100644
--- a/delibera_topic.php
+++ b/delibera_topic.php
@@ -1,5 +1,4 @@
0){
+
+ /* Os valores adicionados ao array $_POST são baseados no if da função delibera_save_post(),
+ * comentado abaixo
+ if(
+ ( // Se tem validação, tem que ter o prazo
+ $opt['validacao'] == 'N' ||
+ (array_key_exists('prazo_validacao', $_POST) && array_key_exists('min_validacoes', $_POST) )
+ ) &&
+ ( // Se tem relatoria, tem que ter o prazo
+ $opt['relatoria'] == 'N' ||
+ array_key_exists('prazo_relatoria', $_POST)
+ ) &&
+ ( // Se tem relatoria, e é preciso eleger o relator, tem que ter o prazo para eleição
+ $opt['relatoria'] == 'N' ||
+ (
+ $opt['eleicao_relator'] == 'N' ||
+ array_key_exists('prazo_eleicao_relator', $_POST)
+ )
+ ) &&
+ array_key_exists('prazo_discussao', $_POST) &&
+ array_key_exists('prazo_votacao', $_POST)
+ )
+ */
+
+ if($opt['validacao'] == 'S'){
+ $_POST['prazo_validacao'] = date('d/m/Y', strtotime ('+'.$opt['dias_validacao'].' DAYS'));
+ $_POST['min_validacoes'] = $opt['minimo_validacao'];
+ }
+
+ if($opt['relatoria'] == 'S'){
+ $_POST['prazo_relatoria'] = date('d/m/Y', strtotime ('+'.$opt['dias_relatoria'].' DAYS'));
+ if($opt['eleicao_relator'] == 'S'){
+ $_POST['prazo_eleicao_relator'] = date('d/m/Y', strtotime ('+'.$opt['dias_votacao_relator'].' DAYS'));
+ }
+ }
+
+ if (trim($opt['data_fixa_nova_pauta_externa']) != '') {
+ $prazo_discussao = DateTime::createFromFormat('d/m/Y', $opt['data_fixa_nova_pauta_externa']);
+ $_POST['prazo_discussao'] = $prazo_discussao->format('d/m/Y');
+ $_POST['prazo_votacao'] = date('d/m/Y', strtotime ('+'.$opt['dias_votacao'].' DAYS', $prazo_discussao->getTimestamp()));
+ } else {
+ $_POST['prazo_discussao'] = date('d/m/Y', strtotime ('+'.$opt['dias_discussao'].' DAYS'));
+ $_POST['prazo_votacao'] = date('d/m/Y', strtotime ('+'.$opt['dias_votacao'].' DAYS'));
+ }
+
+ // isto é necessário por causa do if da função delibera_publish_pauta()
+ $_POST['publish'] = 'Publicar';
+ $_POST['prev_status'] = 'draft';
+
+ // verifica se todos os temas enviados por post são válidos
+ $temas = get_terms('tema', array('hide_empty' => true));
+ $temas_ids = array();
+
+ if(isset($_POST['tema']) && is_array($_POST['tema']))
+ foreach($temas as $tema)
+ if(in_array ($tema->term_id, $_POST['tema']))
+ $temas_ids[] = $tema->term_id;
+
+ // coloca o s termos de temas no post
+ wp_set_post_terms($pauta_id, $temas_ids, 'tema');
+
+ // publica o post
+ wp_publish_post($pauta_id);
+
+ // isto serve para criar o slug corretamente,
+ // já que no wp _ insert_post não cria o slug quando o status é draft e o wp_publish_post tb não cria o slug
+ unset($pauta['post_status']);
+ $pauta['ID'] = $pauta_id;
+ $pauta['post_name'] = sanitize_post_field('post_name', $title, $pauta_id, 'save');
+ wp_update_post($pauta);
+
+ // redireciona para a pauta criada
+ $permalink = get_post_permalink($pauta_id);
+ wp_safe_redirect($permalink);
+ die;
+ }
+ }
+ }
diff --git a/timeline/delibera_timeline.php b/timeline/delibera_timeline.php
index 5e97da4..13b2b08 100644
--- a/timeline/delibera_timeline.php
+++ b/timeline/delibera_timeline.php
@@ -224,4 +224,39 @@ function delibera_timeline_template_redirect()
}
}
-add_action('template_redirect', 'delibera_timeline_template_redirect', 5);
\ No newline at end of file
+add_action('template_redirect', 'delibera_timeline_template_redirect', 5);
+
+function delibera_the_posts($posts)
+{
+ if (empty($posts)) return $posts;
+
+ $timeline_found = false; // use this flag to see if styles and scripts need to be enqueued
+ $relatoria = false;
+ foreach ($posts as $post)
+ {
+ if (stripos($post->post_content, '[delibera_timeline') !== false)
+ {
+ $timeline_found = true; // bingo!
+ }
+ if(get_post_type($post) == 'pauta')
+ {
+ $situacao = delibera_get_situacao($post->ID);
+ if($situacao->slug == 'relatoria')
+ {
+ $relatoria = true;
+ }
+ }
+ }
+
+ if ( ($timeline_found) && (!is_admin()) )
+ {
+ // enqueue here
+ wp_enqueue_style('delibera_timeline_css', WP_CONTENT_URL.'/plugins/delibera/timeline/delibera_timeline.css');
+ wp_enqueue_script( 'delibera_timeline_js', WP_CONTENT_URL.'/plugins/delibera/timeline/js/delibera_timeline.js', array( 'jquery' ));
+ wp_enqueue_script( 'jquery-ui-draggable');
+ }
+
+ return $posts;
+}
+
+add_filter('the_posts', 'delibera_the_posts'); // the_posts gets triggered before wp_head
\ No newline at end of file
From acb8b79799b735d66f7c6926c2b70bc4ea1a0e19 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Tue, 19 Jan 2016 12:20:29 -0200
Subject: [PATCH 017/435] =?UTF-8?q?Corrige=20bug=20quando=20coment=C3=A1ri?=
=?UTF-8?q?o=20=C3=A9=20feito=20em=20post=20comum?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera_comments.php | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/delibera_comments.php b/delibera_comments.php
index 3248c80..74ab1f0 100644
--- a/delibera_comments.php
+++ b/delibera_comments.php
@@ -126,8 +126,11 @@ function delibera_get_comment_link($comment_pass = false)
function delibera_comment_post_redirect( $location ) {
global $post, $comment_id;
-
- return ( $post->post_type == 'pauta' ) ? preg_replace("/#comment-([\d]+)/", "#delibera-comment-" . $comment_id, $location) : $location;
+ if (empty($global)) {
+ return $location;
+ } else {
+ return ( $post->post_type == 'pauta' ) ? preg_replace("/#comment-([\d]+)/", "#delibera-comment-" . $comment_id, $location) : $location;
+ }
}
add_filter( 'comment_post_redirect', 'delibera_comment_post_redirect' );
From dd866cc828f97fcdc3c0f977bc2b035b99e39783 Mon Sep 17 00:00:00 2001
From: Lucas Pirola
Date: Tue, 19 Jan 2016 13:21:08 -0200
Subject: [PATCH 018/435] =?UTF-8?q?Adiciona=20documenta=C3=A7=C3=A3o=20par?=
=?UTF-8?q?a=20template?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
delibera-edit-form-comment.php | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/delibera-edit-form-comment.php b/delibera-edit-form-comment.php
index 096d167..e874fb2 100644
--- a/delibera-edit-form-comment.php
+++ b/delibera-edit-form-comment.php
@@ -1,17 +1,28 @@
+
+