Untitled
unknown
php
2 years ago
22 kB
5
Indexable
<?php
ini_set('max_execution_time', 0);
$pastaId = get_field('pasta');
define("PASTA_ID", $pastaId);
echo PASTA_ID;
//ID CORTE CARTEGORIAS 26
//ID CORTE DOCUMENTO 12
if ($pastaId):
$isValid = true;
// Navega pelos subdiretórios
if (isset($_GET['sub'])) {
$tree = explode(':', strip_tags($_GET['sub']));
// Checa se o caminho de subdiretórios é válido
foreach($tree as $dir) {
$sub = new WP_Term_Query(array(
'taxonomy' => 'nt_wmc_folder',
'parent' => $pastaId,
'slug' => $dir,
'hide_empty' => false
));
if (count($sub->get_terms())) {
$pastaId = $sub->get_terms()[0]->term_taxonomy_id;
} else {
$isValid = false;
}
}
} else {
$sub = new WP_Term_Query(array(
'taxonomy' => 'nt_wmc_folder',
'parent' => $pastaId,
'slug' => $dir,
'hide_empty' => false
));
}
function get_con()
{
// $con = new PDO("mysql:host=10.211.0.59;dbname=transparencia", "usrtransparencia", "tDQW7J$53B6j");
//$con = new PDO("mysql:host=localhost;dbname=transparencia;charset=utf8", "root", "root",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$con = new PDO("mysql:host=10.0.70.78;dbname=transparencia;charset=utf8","usrtransparencia", "tDQW7J$53B6j",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// $con->exec("set names utf8");
return $con;
}
function existe_arquivo($importacao_id,$importacao_id_pai)
{
$con = get_con();
$id_pai = get_id_categoria($importacao_id_pai);
// echo $id_pai;
// echo $importacao_id;
$rs = $con->prepare("SELECT id FROM transparencia.documento WHERE importacao_id = ? AND categoria_id = ?");
$rs->bindParam(1, $importacao_id);
$rs->bindParam(2, $id_pai);
if($rs->execute())
{
if($rs->rowCount() > 0)
{
return true;
}
}
else
{
print_r($rs->errorInfo());
}
return false;
}
function existe_categoria($importacao_id,$importacao_id_pai)
{
$con = get_con();
$id_pai = get_id_categoria($importacao_id_pai);
// echo $id_pai;
// echo $importacao_id;
$rs = $con->prepare("SELECT id FROM transparencia.categoria WHERE importacao_id = ? AND categoria_id = ?");
$rs->bindParam(1, $importacao_id);
$rs->bindParam(2, $id_pai);
if($rs->execute())
{
if($rs->rowCount() > 0)
{
return true;
}
}
return false;
}
function get_id_categoria($importacao_id)
{
$con = get_con();
$rs = $con->prepare("SELECT id FROM transparencia.categoria WHERE categoria.importacao_id = ?");
$rs->bindParam(1, $importacao_id);
if($rs->execute()){
if($rs->rowCount() > 0){
while($row = $rs->fetch(PDO::FETCH_OBJ)){
return $row->id;
}
}
}
return null;
}
function get_categoria_name_pai($nome,$pai_importacao)
{
$con = get_con();
$nome = html_entity_decode($nome);
$rs = $con->prepare("SELECT importacao_id FROM transparencia.categoria WHERE categoria.nome = ? and categoria.categoria_id = ?");
$id_pai = get_id_categoria($pai_importacao);
$rs->bindParam(1, $nome,PDO::PARAM_STR);
$rs->bindParam(2,$id_pai);
// echo '<br>'.$id_pai .'<---->'. $nome;
if($rs->execute()){
if($rs->rowCount() > 0){
while($row = $rs->fetch(PDO::FETCH_OBJ)){
return $row->importacao_id;
}
}
else
{
echo 'sem registros';
return null;
}
}
else
{
print_r($rs->errorInfo());
}
return null;
}
function add_arquivo($nome,$arquivo,$ano,$mes,$importacao_id_pai,$importacao_id,$tipo,$create_at,$update_at)
{
// echo $importacao_id_pai;
$de_para = [710,625];
if(in_array($importacao_id_pai, $de_para))
{
$importacao_id_pai = PASTA_ID;
}
if (!existe_arquivo($importacao_id,$importacao_id_pai))
{
$id_pai = get_id_categoria($importacao_id_pai);
insert_arquivo($nome,$arquivo,$ano,$mes,$id_pai,$importacao_id,$tipo,$create_at,$update_at);
}
return false;
}
function insert_arquivo($nome,$arquivo,$ano,$mes,$categoria_id,$importacao_id,$tipo,$create_at,$update_at)
{
try {
ECHO 'TENTOU INSERIR ARQUIVO!';
$publicado = 1;
$ordem = 1;
$usuario_created_id = 2;
$con = get_con();
$stmt = $con->prepare("INSERT INTO transparencia.documento (nome, arquivo, ano,mes,categoria_id,importacao_id, tipo,publicado,usuario_created_id,usuario_updated_id,created_at,updated_at) VALUES(?, ?, ?, ?, ?, ?, ?,?,?,?,?,?)");
$stmt->bindParam(1,$nome);
$stmt->bindParam(2,$arquivo);
$stmt->bindParam(3,$ano);
$stmt->bindParam(4,$mes);
$stmt->bindParam(5,$categoria_id);
$stmt->bindParam(6,$importacao_id);
$stmt->bindParam(7,$tipo);
$stmt->bindParam(8,$publicado);
$stmt->bindParam(9,$usuario_created_id);
$stmt->bindParam(10,$usuario_created_id);
$stmt->bindParam(11,$create_at);
$stmt->bindParam(12,$update_at);
// $stmt->bindParam(4,1);
$stmt->execute();
}
catch (PDOException $e) {
echo("Error ao adicionar novo arquivo: ".$nome);
echo "Insert Error: " . $e->getMessage();
}
}
function insert_categoria($nome,$categoria_id,$importacao_id,$slug)
{
try {
$ordem = 1;
$con = get_con();
$now = date('Y-m-d H:i:s');
$stmt = $con->prepare("INSERT INTO transparencia.categoria (nome, categoria_id, importacao_id,slug,ordem,created_at,updated_at) VALUES(?, ?,?,?,?,?,?)");
$stmt->bindParam(1,$nome);
$stmt->bindParam(2,$categoria_id);
$stmt->bindParam(3,$importacao_id);
$stmt->bindParam(4,$slug);
$stmt->bindParam(5,$ordem);
$stmt->bindParam(6,$now);
$stmt->bindParam(7,$now);
// $stmt->bindParam(4,1);
$stmt->execute();
}
catch (PDOException $e) {
echo("Error ao adicionar nova categoria: ".$nome);
echo "Insert Error: " . $e->getMessage();
}
}
function add_categoria($nome,$id_importacao,$importacao_id_pai,$slug)
{
// echo $importacao_id_pai;
$de_para = [710,625];
if(in_array($importacao_id_pai, $de_para))
{
$importacao_id_pai = PASTA_ID;
}
if (!existe_categoria($id_importacao,$importacao_id_pai))
{
$id_pai = get_id_categoria($importacao_id_pai);
echo $id_pai;
$nome = html_entity_decode($nome);
insert_categoria($nome,$id_pai,$id_importacao,$slug);
}
return false;
}
function get_pasta_object($pasta_id)
{
$pastas = new WP_Term_Query(array(
'taxonomy' => 'nt_wmc_folder',
'term_taxonomy_id' => $pasta_id,
// 'term_ids' => 750,
'hide_empty' => false,
'meta_key' => 'folder_position',
'orderby' => 'meta_value_num',
'order' => 'ASC'
));
foreach($pastas->get_terms() as $pasta)
{
return $pasta;
}
}
function get_pasta($pasta_id,$nome_pasta)
{
$pasta = get_pasta_object($pasta_id);
$pai = get_pasta_object($pasta->parent);
// var_dump($pasta);
echo '<li><i class="fas fa-folder mr-2"></i> <a href="?sub='. $pai->term_id .''. $pai->slug .'">'. $pai->name .'(' .$pai->term_id.')</a></li>';
echo '<ul class="pastas">';
// echo $pasta->name;
add_categoria($pasta->name,$pasta->term_id,$pai->term_id,$pasta->slug);
get_files($pasta->term_id,null,$pasta->term_id,null);
echo '<li><i class="fas fa-folder mr-2" ></i>'. $nome_pasta .'('.$pasta_id.')</li>';
// exit();
get_pastas($pasta_id,null,$pai->term_id);
echo '</ul>';
}
function get_query_sub_pastas($pasta_id)
{
$pastas = new WP_Term_Query(array(
'taxonomy' => 'nt_wmc_folder',
'parent' => $pasta_id,
'hide_empty' => false,
'meta_key' => 'folder_position',
'orderby' => 'meta_value_num',
'order' => 'ASC'
));
return $pastas;
}
function get_files($pasta_id,$periodo_ano=null,$categoria_pai_migracao=null,$new_local=null)
{
$meses = ['janeiro','fevereiro','marco','abril','maio','junho','julho','agosto','setembro','outubro','novembro','dezembro'];
$comAcentos = array('à', 'á', 'â', 'ã', 'ä', 'å', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ü', 'ú', 'ÿ', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'O', 'Ù', 'Ü', 'Ú');
$semAcentos = 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', 'O', 'U', 'U', 'U');
$meses_value = ['janeiro' => 1,
'fevereiro' => 2,
'marco' => 3,
'abril'=> 4,
'maio'=> 5,
'junho'=> 6,
'julho'=> 7,
'agosto'=> 8,
'setembro'=> 9,
'outubro'=> 10,
'novembro'=> 11,
'dezembro' => 12];
$arquivos = new WP_Query(array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => 1000000,
'orderby' => 'title',
'order' => 'DESC',
'tax_query' => array(
array(
'include_children' => false,
'taxonomy' => 'nt_wmc_folder',
'field' => 'term_taxonomy_id',
'terms' => $pasta_id
)
)
));
if ($arquivos->have_posts())
{
echo '<ul class="pastas">';
while($arquivos->have_posts())
{
$arquivos->the_post();
// print get_the_title();
$get_the_title = str_replace($comAcentos, $semAcentos, get_the_title());
$periodo_mes = contains(strtolower($get_the_title),$meses) == false ? null: $meses_value[contains(strtolower($get_the_title),$meses)];
$url_file = wp_get_attachment_url();
$parametros = "'".get_the_title()."','".$pasta_id."','".$url_file."','".$periodo_ano."','".$periodo_mes."'";
//adicionando os arquivos!
$nome = html_entity_decode(get_the_title());
$base_url = 'http://localhost:8888/portal/';
$base_url_2 = 'http://localhost/portal/';
$remote_url = 'https://www.mppi.mp.br/internet/';
$arquivo = str_replace($base_url,$remote_url,wp_get_attachment_url());
$arquivo = str_replace($base_url_2,$remote_url,$arquivo);
$extension = pathinfo($arquivo, PATHINFO_EXTENSION);
if (preg_match('/\b\d{4}\b/', $nome, $matches))
{
$ano = $matches[0];
}
else
{
$ano = 1900;
}
if($ano == null)
{
$ano = $periodo_ano;
}
$mes = $periodo_mes;
$categoria_id = ($new_local != null) ? $new_local : $pasta_id;
$importacao_id = get_the_ID();
$tipo = 1;
if($extension == 'pdf'){
$tipo = 2;
}
$now = date('Y-m-d H:i:s');
$print = 'Nome: ->'.$nome;
$print .= '<br>Arquivo: ->'.$arquivo;
$print .= '<br>ano: ->'.$ano;
$print .= '<br>mes: ->'.$mes;
$print .= '<br>categoria_id: ->'.$categoria_id;
$print .= '<br>importacao_id: ->'.$importacao_id;
$print .= '<br>tipo: ->'.$tipo;
$print .= '<br>now: ->'.$now;
var_dump($nome);
echo $print;
// $nome,$arquivo,$ano,$mes,$categoria_id,$importacao_id,$tipo,$create_at,$update_at
add_arquivo($nome,$arquivo,$ano,$mes,$categoria_id,$importacao_id,$tipo,$now,$now);
// exit();
echo '<li onclick="alerta_file('.$parametros.')"><i class="fas fa-file mr-2"></i>'.$periodo_mes.'/'.$periodo_ano.' -> '.get_the_title() .'('.$categoria_pai_migracao.') </li>';
}
echo '</ul>';
}
}
function contains($str, $arr=null)
{
foreach($arr as $a) {
if (stripos($str,$a) !== false) return $a;
}
return false;
}
function get_pai_object($id_importacao)
{
$pasta = get_pasta_object($id_importacao);
echo '<br>NOME DA PASTA NO GET PAI ' .$pasta->name;
$pai = get_pasta_object($pasta->parent);
echo '<br>NOME DO PAI NO GET PAI ' .$pai->name;
if(is_numeric($pai->name))
{
while(is_numeric($pai->name))
{
$pai = get_pasta_object($pai->parent);
}
}
echo '<br>NOME DO PAI RETORNADO NO GET PAI ' .$pai->name;
return $pai;
}
function return_pai_imported($pai_object)
{
$importacao_id_pai = $pai_object->term_id;
$de_para = [710,625];
if(in_array($importacao_id_pai, $de_para))
{
$importacao_id_pai = PASTA_ID;
}
return get_categoria_name_pai($pai_object->name,$importacao_id_pai);
}
function get_pastas($pasta_id,$periodo_ano=null,$categoria_pai_migracao=null)
{
$pastas = get_query_sub_pastas($pasta_id);
if (count($pastas->get_terms()))
{
echo !is_numeric($periodo_ano) ? '<ul class="pastas">' : '';
foreach($pastas->get_terms() as $pasta) {
$pai = return_pai_imported(get_pai_object($pasta->term_id));
echo '<br>ID DO PAI RETORNADO PELO NOME ' .$pai;
// while(is_numeric($pai->name))
// {
// $pai = get_pasta_object($pasta->parent);
// }
// $categoria_pai_migracao = is_numeric($pai->name) ? $pai->parent : $pasta_id;
$categoria_pai_migracao = $pai;
$str_cat = ' ( IDIMPORTACAO : '. $pasta->term_id.') ( IDIMPORTACAO-PAI : '.$categoria_pai_migracao.')( PASTA_ID'.$pasta_id.')';
echo !is_numeric($pasta->name) ? '<li><i class="fas fa-folder mr-2"></i><a href="?sub='.$pasta->slug .'">'. $pasta->name .$str_cat.'</a>' : '';
$periodo_ano = $periodo_ano;
$periodo_ano = is_numeric($pasta->name) ? intval($pasta->name) : $periodo_ano;
// $categoria_pai_migracao = $categoria_pai_migracao == null ? $pasta_id: $categoria_pai_migracao;
$pasta_id_file = $pasta->term_id;
$new_local = null;
// echo $pasta->name.'<------>'.$categoria_pai_migracao;
if(get_categoria_name_pai($pasta->name,$categoria_pai_migracao) == null )
{
if (!is_numeric($pasta->name))
{
ECHO 'NAO ENTROU NO NEW LOCAL';
echo $categoria_pai_migracao.'-'.$pasta->name;
add_categoria($pasta->name,$pasta->term_id,$categoria_pai_migracao,$pasta->slug);
}
else
{
$new_local = $categoria_pai_migracao;
}
}
else
{
// echo 'ENTROU NO NEWLOCAL';
$new_local = get_categoria_name_pai($pasta->name,$categoria_pai_migracao);
}
// if(is_numeric($pasta->name))
// {
// echo 'ENTROU NO NEWLOCAL2';
// $new_local = $categoria_pai_migracao;
// }
get_files($pasta->term_id,$periodo_ano,$categoria_pai_migracao,$new_local);
get_pastas($pasta->term_id,$periodo_ano,$categoria_pai_migracao);
echo !is_numeric($periodo_ano) ? '</li>' : '';
}
echo !is_numeric($pasta->name) ? '</ul>' : '';
}
}
// $nome = 'TESTE IGO ARQUIVO';
// $arquivo = 'documentos/2023/07/62ef8d942ad82ab1cc290caf57d4f494/doc.odt';
// $mes = 1;
// $ano = 2022;
// $categoria_id = 24;
// $importacao_id = 10000;
// $tipo = 3;
// insert_arquivo($nome,$arquivo,$ano,$mes,$categoria_id,$importacao_id,$tipo);
// var_dump(existe_categoria(null,'Contato'));
// echo existe_categoria(1,4);
// var_dump(the_title());
get_pasta($pastaId, get_the_title());
echo 'TUDO TERMINADO';
// Lista os diretórios
if ($isValid):
$pastas = new WP_Term_Query(array(
'taxonomy' => 'nt_wmc_folder',
'parent' => $pastaId,
'hide_empty' => false,
'meta_key' => 'folder_position',
'orderby' => 'meta_value_num',
'order' => 'ASC'
));
$parentSlug = isset($_GET['sub']) ? $_GET['sub'] .':' : '';
echo '<ul class="pastas">';
foreach($pastas->get_terms() as $pasta) {
echo '<li><i class="fas fa-folder mr-2"></i> <a href="?sub='. $parentSlug .''. $pasta->slug .'">'. $pasta->name .'</a></li>';
}
echo '</ul>';
// if (!count($pastas->get_terms())):
// Lista os arquivos
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$ordenacao = get_field('ordenacao_de_arquivos');
if ($ordenacao && $ordenacao == 'nome') {
$arquivos = new WP_Query(array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => 25,
'paged' => $paged,
'orderby' => 'title',
'order' => 'DESC',
'tax_query' => array(
array(
'include_children' => false,
'taxonomy' => 'nt_wmc_folder',
'field' => 'term_taxonomy_id',
'terms' => $pastaId
)
)
));
} else {
$arquivos = new WP_Query(array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => 25,
'paged' => $paged,
'tax_query' => array(
array(
'include_children' => false,
'taxonomy' => 'nt_wmc_folder',
'field' => 'term_taxonomy_id',
'terms' => $pastaId
)
)
));
}
?>
<ul class="pasta-arquivos">
<?php if ($arquivos->have_posts()): while($arquivos->have_posts()): $arquivos->the_post(); ?>
<li>
<?php include 'content/content-file.php' ?>
</li>
<?php endwhile; endif; ?>
</ul>
<?php
$total = $arquivos->max_num_pages;
if ($total > 1){
$current_page = max(1, get_query_var('paged'));
// Pagination fix
$temp_query = $wp_query;
$wp_query = NULL;
$wp_query = $arquivos;
the_posts_pagination(array(
'type' => 'list',
'current' => $current_page,
'total' => $total
));
$wp_query = NULL;
$wp_query = $temp_query;
}
?>
<?php //endif; ?>
<?php endif; ?>
<?php endif; ?>
<script>
function alerta_file(nome,categoria_pai_id,url_file,periodo_ano,periodo_mes) {
alert('nome :' + nome + ' categoria_pai_id :' + categoria_pai_id + ' url_file : ' + url_file + ' periodo_ano : ' + periodo_ano + ' periodo_mes :' + periodo_mes);
}
</script>
<?php exit; ?>Editor is loading...