403Webshell
Server IP : 37.9.174.138  /  Your IP : 216.73.216.117
Web Server : Apache
System : Linux vps6.backend.sk 6.12.100+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.100-1 (2026-07-30) x86_64
User : ftpuser ( 1001)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/backend-accounting.sk/app/modules/extendedDatatable/code/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/backend-accounting.sk/app/modules/extendedDatatable/code/ColumnController.php
<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace modules\extendedDatatable\code;

/**
 * Description of ColumnController
 *
 * @author maros
 */
abstract class ColumnController {

    protected $column;
    protected $config;
    protected $filterOptions = array();
    protected $isUsingLikeConditions = false;

    public function __construct(string $column, &$config) {
        $this->column = $column;
        $this->config = $config;
    }

    public function renderFilterInput() {
        if (!(key_exists(ExtendedDatatable::COLUMN_DISABLE_FILTER, $this->config) && $this->config[ExtendedDatatable::COLUMN_DISABLE_FILTER] === true)) {
            $this->initFilterOptions();
            if (count($this->filterOptions) !== 0) {
                $element = new \PFBC\Element\Select("", $this->column, $this->filterOptions, array("class" => "form-control form-filter input-sm selectpickerManual", "multiple" => "multiple", "data-none-selected-text" => ""));
                $element->render();
            } else {
                $element = new \PFBC\Element\Textbox("", $this->column, array("class" => "form-control form-filter input-sm"));
                $element->render();
            }
        }
    }

    protected function initFilterOptions() {
        if (isset($this->config[ExtendedDatatable::COLUMN_FILTER])) {
            $filter = $this->config[ExtendedDatatable::COLUMN_FILTER];
            if (substr($filter, 0, 6) === "SELECT") {
                $idColumn = trim(substr($filter, strpos($filter, "SELECT") + 6, strpos($filter, "FROM") - 6));
                $table = trim(substr($filter, strpos($filter, "FROM") + 4, strpos($filter, "WHERE") - strpos($filter, "FROM") - 4));
                $collection = new \app\classes\PDOCollection($table, $idColumn, $filter, $this->getFilterOptionsBindArray());
                $collection = array_column($collection->toArray(), $idColumn, $idColumn);
                if (isset($this->config[ExtendedDatatable::COLUMN_TRANSLATE_FILTER_OPTIONS]) && $this->config[ExtendedDatatable::COLUMN_TRANSLATE_FILTER_OPTIONS]) {
                    $t = \app\classes\Translator::getInstance();
                    foreach ($collection as $key => $val) {
                        $collection[$key] = $t->_get(
                                (key_exists(ExtendedDatatable::COLUMN_TRANSLATE_FILTER_OPTIONS_PREFIX, $this->config) ? $this->config[ExtendedDatatable::COLUMN_TRANSLATE_FILTER_OPTIONS_PREFIX] . "_" : "")
                                . $val
                        );
                    }
                }
                $defaultOptions = array("" => "");
                if (isset($this->config[ExtendedDatatable::COLUMN_FILTER_NULL_OPTION])) {
                    $defaultOptions['null'] = $this->config[ExtendedDatatable::COLUMN_FILTER_NULL_OPTION];
                }
                $this->filterOptions = $defaultOptions + $collection;
            }
        }
    }

    public function getDatatableSqlConditionValue($value) {
        if (is_array($value) && count($value) === 1 && strlen(trim($value[0])) === 0) {
            return false;
        }
        if (is_array($value)) {
            $outputValue = [];
            foreach ($value as $key => $val) {
                if (strlen(trim($val)) !== 0) {
                    if ($val === 'null') {
                        $outputValue[] = 'null';
                    } else {
                        $outputValue[] = $val;
                    }
                }
            }
            return $outputValue;
        }
        return '%' . $this->getDbValue($value) . '%';
    }

    public function getDatatableSqlCondition($sqlVarName, $bindArrayVarName, $value) {
        $orNull = false;
        if (is_array($value) && count($value) === 1 && strlen(trim($value[0])) === 0) {
            return false;
        }
        if (is_array($value)) {
            $vars = range(0, count($value) - 1);
            foreach ($vars as $key => $val) {
                if ($value[$val] === 'null') {
                    $orNull = true;
                    unset($vars[$key]);
                    continue;
                }
                $vars[$key] = $bindArrayVarName . $val;
            }
                       
            if ($orNull === false) {
                return $sqlVarName . " IN (:" . implode(", :", $vars) . ")";
            } else if (count($vars) > 0) {
                return "(" . $sqlVarName . " IN (:" . implode(", :", $vars) . ") OR " . $sqlVarName . " IS NULL)";
            } else {
                return $sqlVarName . " IS NULL";
            }
        }

        return $sqlVarName . " LIKE :" . $bindArrayVarName . " COLLATE " . \app\constants\Config::DB_COLLATE;
    }

    public function getDbValue($val, $required = false) {
        if ($val === "NULL") {
            return NULL;
        }
        return $val;
    }

    public function getTableValue($val) {
        return $val;
    }

    public function getFilterOptions() {
        return $this->filterOptions;
    }

    protected function getFilterOptionsBindArray() {
        return array();
    }

    public function isUsingLikeConditions() {
        return $this->isUsingLikeConditions;
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit