Files
roi-theme/wp-content/plugins/wp-ultimate-csv-importer/Dashboard.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

181 lines
7.2 KiB
PHP
Executable File

<?php
/**
* WP Ultimate CSV Importer plugin file.
*
* Copyright (C) 2010-2020, Smackcoders Inc - info@smackcoders.com
*/
namespace Smackcoders\FCSV;
if ( ! defined( 'ABSPATH' ) )
exit; // Exit if accessed directly
class Dashboard {
private static $dashboard_instance = null;
private static $extension_instance = null;
private function __construct(){
add_action('wp_ajax_LineChart',array($this,'fetch_LineChart_data'));
add_action('wp_ajax_BarChart',array($this,'fetch_BarStackedChart_data'));
}
public static function getInstance() {
if (Dashboard::$dashboard_instance == null) {
Dashboard::$dashboard_instance = new Dashboard;
Dashboard::$extension_instance = new ExtensionHandler;
return Dashboard::$dashboard_instance;
}
return Dashboard::$dashboard_instance;
}
public function fetch_LineChart_data() {
check_ajax_referer('smack-ultimate-csv-importer', 'securekey');
global $wpdb;
$available_types = array();
$import_type_data = array();
$data_arr = array();
$cli_template = $wpdb->prefix ."cli_csv_template";
$log_table_name = $wpdb->prefix. "import_detail_log";
foreach(Dashboard::$extension_instance->get_import_post_types() as $name => $type) {
$available_types[$name] = $type;
}
foreach (get_taxonomies() as $item => $taxonomy_name) {
$available_types[$item] = $taxonomy_name;
}
$available_types = array_flip($available_types);
$myarr = array();
$today = date("Y-m-d H:i:s");
$j = 0;
for($i = 11; $i >= 0; $i--) {
$month[$j] = date("M", strtotime( $today." -$i months"));
$year[$j] = date("Y", strtotime( $today." -$i months"));
$j++;
}
$get_list_of_imported_types = $wpdb->get_results("SELECT distinct( import_type ) from {$wpdb->prefix}smackuci_events",ARRAY_A);
$get_list_of_imported_types = array_column($get_list_of_imported_types,'import_type');
$cli_list_of_imported_types = $wpdb->get_results("select distinct(type) from $cli_template", ARRAY_A);
$cli_list_of_imported_types = array_column($cli_list_of_imported_types,'type');
if(empty($get_list_of_imported_types) && !empty($cli_list_of_imported_types)){
$get_list_of_imported_types = $cli_list_of_imported_types;
}
else {
foreach($cli_list_of_imported_types as $import_type){
$type = in_array($import_type,$get_list_of_imported_types,true);
if(!$type){
array_push($get_list_of_imported_types,$import_type);
}
}
}
foreach($get_list_of_imported_types as $import_type) {
$data = array();
for($i = 0; $i <= 11; $i++) {
$get_chart_data = $wpdb->get_results("SELECT sum(created) as '$import_type' from {$wpdb->prefix}smackuci_events where import_type = '$import_type' and month = '$month[$i]' and year = '$year[$i]' ");
if($import_type != 'event-recurring'){
$get_cli_data = $wpdb->get_results("select sum(log.created) as '$import_type' from $log_table_name as log inner join $cli_template as cli on cli.templatekey = log.templatekey
where cli.type = '$import_type' and cli.month = '$month[$i]' and cli.year = '$year[$i]' group by cli.type");
}
$created_chart = !empty($get_chart_data) ? $get_chart_data[0]->$import_type : 0;
$created_clichart = !empty($get_cli_data) ? $get_cli_data[0]->$import_type : 0;
$data[] = $created_chart + $created_clichart;
}
if(array_key_exists($import_type,$available_types)){
$import_type_data[] = $available_types[$import_type];
} else {
$import_type_data[] = $import_type;
}
array_push($data_arr , $data);
}
$myarr['success'] = true;
$myarr['label'] = $import_type_data;
$myarr['data'] = $data_arr;
echo wp_json_encode($myarr);
wp_die();
}
public function fetch_BarStackedChart_data() {
check_ajax_referer('smack-ultimate-csv-importer', 'securekey');
global $wpdb;
$available_types = array();
$cli_template = $wpdb->prefix ."cli_csv_template";
$log_table_name = $wpdb->prefix. "import_detail_log";
foreach(Dashboard::$extension_instance->get_import_post_types() as $name => $type) {
$available_types[$name] = $type;
}
foreach (get_taxonomies() as $item => $taxonomy_name) {
$available_types[$item] = $taxonomy_name;
}
$available_types = array_flip($available_types);
$returnArray = array();
$today = date("Y-m-d H:i:s");
$j = 0;
for($i = 11; $i >= 0; $i--) {
$month[$j] = date("M", strtotime( $today." -$i months"));
$year[$j] = date("Y", strtotime( $today." -$i months"));
$j++;
}
$get_list_of_imported_types = $wpdb->get_results("select distinct( import_type ) from {$wpdb->prefix}smackuci_events",ARRAY_A);
$get_list_of_imported_types = array_column($get_list_of_imported_types,'import_type');
$cli_list_of_imported_types = $wpdb->get_results("select distinct(type) from $cli_template", ARRAY_A);
$cli_list_of_imported_types = array_column($cli_list_of_imported_types,'type');
if(empty($get_list_of_imported_types) && !empty($cli_list_of_imported_types)){
$get_list_of_imported_types = $cli_list_of_imported_types;
}
else {
foreach($cli_list_of_imported_types as $import_type){
$type = in_array($import_type,$get_list_of_imported_types,true);
if(!$type){
array_push($get_list_of_imported_types,$import_type);
}
}
}
$count = 1;
foreach($get_list_of_imported_types as $import_type) {
$get_chart_data = $wpdb->get_results("select sum(created) as created, sum(updated) as updated, sum(skipped) as skipped from {$wpdb->prefix}smackuci_events where import_type = '$import_type' ");
$get_cli_data = $wpdb->get_results("select sum(log.created) as created,sum(log.updated) as updated,sum(log.skipped) as skipped from $log_table_name as log inner join $cli_template as cli on cli.templatekey = log.templatekey where cli.type = '$import_type' group by cli.type");
if(array_key_exists($import_type,$available_types)){
$import_type_data = $available_types[$import_type];
} else {
$import_type_data = $import_type;
}
$returnArray['success'] = true;
$created_chart = !empty($get_chart_data) ? $get_chart_data[0]->created : 0;
$created_clichart = !empty($get_cli_data) ? $get_cli_data[0]->created : 0;
$returnArray[ $import_type_data ]['created'] = $created_chart + $created_clichart;
$updated_chart = !empty($get_chart_data) ? $get_chart_data[0]->updated : 0;
$updated_clichart = !empty($get_cli_data) ? $get_cli_data[0]->updated : 0;
$returnArray[ $import_type_data ]['updated'] = $updated_chart + $updated_clichart;
$skipped_chart = !empty($get_chart_data) ? $get_chart_data[0]->skipped : 0;
$skipped_clichart = !empty($get_cli_data) ? $get_cli_data[0]->skipped : 0;
$returnArray[ $import_type_data ]['skipped'] = $skipped_chart + $skipped_clichart;
$count++;
}
echo wp_json_encode($returnArray);
wp_die();
}
public function get_config_bytes($val) {
$val = trim($val);
$last = strtolower($val[strlen($val) - 1]);
switch ($last) {
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
}