403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/vkapi.market/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/vkapi.market/lib/admin.php
<?php

namespace VKapi\Market;

use Bitrix\Main\Localization\Loc;
/**
     * ����� �� �������� ������� � ����������������� �������
     * Class Admin
     * 
     * @package VKapi\Market
     */
class Admin
{
    protected $moduleId = '';
    protected $tableId = '';
    protected $arSortFields = array();
    // ������ ����� ��������� � ������ �������
    protected $defaultSortField = '';
    // ���� ���������� �� ������� � ������ �������
    /**
         * ������ ������� ����� ������
         * 
         * @var array
         */
    protected $arFilterFields = array();
    /**
         * @var \VKapi\Market\Message
         */
    private $oMessage = null;
    /**
         * @var \CAdminList
         */
    private $oAdminList = null;
    /**
         * ������ � ����������� �������� ������
         * @var array
         */
    private $arFilter = array();
    /**
         * ����� �� �������� ������� � ����������������� �������
         * Admin constructor.
         * 
         * @param $moduleId - ������������� ������� �����
         */
    public function __construct($moduleId)
    {
        $this->moduleId = $moduleId;
    }
    /**
         * ������� ������ �� ����� ���������� ������� ���������������� ������
         * 
         * @param \CAdminList $oAdminList
         */
    public function setAdminList($oAdminList)
    {
        $this->oAdminList = $oAdminList;
    }
    /**
         * ������� ����� ����� � ������� ���������
         * 
         * @param \VKapi\Market\Message $oMessage
         */
    public function setMessage(\VKapi\Market\Message $oMessage)
    {
        $this->oMessage = $oMessage;
    }
    public function getModuleId()
    {
        return $this->moduleId;
    }
    /**
         * ����� �� ����� ����� ��������
         * 
         * @return \VKapi\Market\Message
         */
    public function message()
    {
        return $this->oMessage;
    }
    /**
         * ��������� �������������� �����/�������
         * 
         * @param $tableId
         */
    public function setTableId($tableId)
    {
        $this->tableId = $tableId;
    }
    /**
         * ������ ������������� �����/������
         * 
         * @return string
         */
    public function getTableId()
    {
        return $this->tableId;
    }
    /**
         * ��� �� ���������� � ������ �������
         * 
         * @param $arSortFields - ������ ����� �� ����������
         * @param string $defaultSortField - ���� �� ���������� �� �������
         */
    public function setSortFields($arSortFields, $defaultSortField = null)
    {
        $this->arSortFields = $arSortFields;
        $this->defaultSortField = !is_null($defaultSortField) ? $defaultSortField : reset($arSortFields);
    }
    /**
         * ������ ������ ������
         * 
         * @return mixed
         */
    public function getSiteList()
    {
        static $arSite;
        if (!isset($arSite)) {
            $dbr = \CSite::GetList($by = 'sort', $order = 'asc');
            while ($ar = $dbr->Fetch()) {
                $arSite[$ar['ID']] = '[' . $ar['ID'] . '] ' . $ar['NAME'];
            }
        }
        return $arSite;
    }
    /**
         * ������ ������ �� ������� ������ ������� �� ������� ������
         * 
         * @return array
         */
    public function getListQuery()
    {
        global $APPLICATION;
        $arQuery = array('select' => array('*'), 'filter' => $this->getFilter());
        $by = $this->defaultSortField;
        if (isset($_GET['by']) && in_array($_GET['by'], $this->arSortFields)) {
            $by = $_GET['by'];
        }
        $arOrder = array($by => strtoupper($_GET['order']) == 'ASC' ? 'ASC' : 'DESC');
        $arQuery['order'] = $arOrder;
        $navyParams = \CDBResult::GetNavParams(\CAdminResult::GetNavSize($this->getTableId(), array('nPageSize' => 20, 'sNavID' => $APPLICATION->GetCurPage())));
        $usePageNavigation = true;
        if ($navyParams['SHOW_ALL']) {
            $usePageNavigation = false;
        } else {
            $navyParams['PAGEN'] = (int) $navyParams['PAGEN'];
            $navyParams['SIZEN'] = (int) $navyParams['SIZEN'];
        }
        if ($usePageNavigation) {
            $arQuery['limit'] = $navyParams['SIZEN'];
            $arQuery['offset'] = $navyParams['SIZEN'] * ($navyParams['PAGEN'] - 1);
        }
        return $arQuery;
    }
    /**
         * ���������� url ������ �� ������ ���������� �������, �������� {module_id}_list.php?lang=ru
         * 
         * @param $pageCode - ��� ������, �������� list
         * @param array $arParams - �������� � url, �� �������� ��������� ������������� ����
         * @param array $arDeleteParams - �������� �� ������� �� url
         * @return string
         */
    public function getPageUrl($pageCode, $arParams = array(), $arDeleteParams = array())
    {
        $arParams['lang'] = LANG;
        $arParams = array_diff_key($arParams, array_flip($arDeleteParams));
        return $this->getModuleId() . '_' . $pageCode . '.php?' . http_build_query($arParams);
    }
    /**
         * ������ ����� url �� ������� ���� /bitrix/admin/...
         * 
         * @param $pageCode - ��� ������, �������� list
         * @param array $arParams - �������� � url, �� �������� ��������� ������������� ����
         * @param array $arDeleteParams - �������� �� ������� �� url
         * @return string
         */
    public function getFullPageUrl($pageCode, $arParams = array(), $arDeleteParams = array())
    {
        return '/bitrix/admin/' . $this->getPageUrl($pageCode, $arParams, $arDeleteParams);
    }
    // ������ � ������� ------------------------
    /**
         * ��������� ��� �� ��������
         * 
         * @param $name
         */
    public function addFilterField($code, $arParams = array())
    {
        $this->arFilterFields[$code] = $arParams;
    }
    /**
         * ������ html ������ ��� ������� ���������
         */
    public function showFilter()
    {
        global $APPLICATION;
        $arFilterNames = array();
        foreach ($this->arFilterFields as $fieldCode => $arField) {
            $arFilterNames[] = $this->message()->get('FILTER.' . $fieldCode);
        }
        // �������� ����� ������
        $oFilter = new \CAdminFilter($this->getTableId() . "_filter", $arFilterNames);
        ?>
            <form name="filter_form" method="get" action="<?php 
        echo $APPLICATION->GetCurPage();
        ?>">
                <?php 
        $oFilter->Begin();
        foreach ($this->arFilterFields as $fieldCode => $arField) {
            $arFilterNames[] = $this->message()->get('FILTER.' . $fieldCode);
            $filterCode = 'filter_field_' . $fieldCode;
            $fieldValue = $GLOBALS['filter_field_' . $filterCode];
            $fieldValueFrom = $GLOBALS['filter_field_' . $filterCode . '_from'];
            $fieldValueTo = $GLOBALS['filter_field_' . $filterCode . '_to'];
            ?>
                        <tr>
                            <td><?php 
            echo $this->message()->get('FILTER.' . $fieldCode);
            ?>:</td>
                            <td>
                                <?php 
            switch ($arField['TYPE']) {
                case 'LIST':
                    echo SelectBoxFromArray($filterCode, $arField['VALUES'], $fieldValue);
                    break;
                case 'PERIOD':
                    echo CalendarPeriod($filterCode . "_from", $fieldValueFrom, $filterCode . "_to", $fieldValueTo, "filter_form", "Y");
                    break;
                default:
                    echo InputType("text", $filterCode, $fieldValue, '');
                    break;
            }
            ?>
                            </td>
                        </tr>
                        <?php 
        }
        $oFilter->Buttons(array("table_id" => $this->getTableId(), "url" => $APPLICATION->GetCurPage(), "form" => "filter_form"));
        $oFilter->End();
        ?>
            </form>

            <?php 
    }
    public function checkFilter()
    {
        $this->arFilter = array();
        if (empty($this->oAdminList)) {
            return false;
        }
        $arPrepiredFields = array();
        foreach (array_keys($this->arFilterFields) as $filterCode) {
            $arPrepiredFields[] = 'filter_field_' . $filterCode;
        }
        // ������������� �����
        $this->oAdminList->InitFilter($arPrepiredFields);
        // ���� ��� ������ ������ ��������, ���������� ���
        if (count($this->oAdminList->arFilterErrors) == 0) {
            // ���������� ������
            foreach ($this->arFilterFields as $filterCode => $arField) {
                $fieldValue = $GLOBALS['filter_field_' . $filterCode];
                $fieldValueFrom = $GLOBALS['filter_field_' . $filterCode . '_from'];
                $fieldValueTo = $GLOBALS['filter_field_' . $filterCode . '_to'];
                switch ($arField['TYPE']) {
                    case 'LIST':
                        if (strlen(trim($fieldValue)) > 0 && in_array(trim($fieldValue), $arField['VALUES']['REFERENCE_ID'])) {
                            $this->arFilter[$filterCode] = trim($fieldValue);
                        }
                        break;
                    case 'PERIOD':
                        if (strlen(trim($fieldValueFrom)) > 0 || strlen(trim($fieldValueTo)) > 0) {
                            if (strlen(trim($fieldValueFrom)) > 0 && strlen(trim($fieldValueTo)) > 0) {
                                $dateStart = new \Bitrix\Main\Type\DateTime($fieldValueFrom);
                                $dateStart->setTime(0, 0, 0);
                                $dateStop = new \Bitrix\Main\Type\DateTime($fieldValueTo);
                                $dateStop->setTime(23, 23, 59);
                                $this->arFilter['><' . $filterCode] = array($dateStart, $dateStop);
                            } elseif (strlen(trim($fieldValueFrom)) > 0) {
                                $dateStart = new \Bitrix\Main\Type\DateTime($fieldValueFrom);
                                $dateStart->setTime(0, 0, 0);
                                $this->arFilter['>' . $filterCode] = $dateStart;
                            } elseif (strlen(trim($fieldValueTo)) > 0) {
                                $dateStop = new \Bitrix\Main\Type\DateTime($fieldValueTo);
                                $dateStop->setTime(23, 23, 59);
                                $this->arFilter['<' . $filterCode] = $dateStop;
                            }
                        }
                        break;
                    default:
                        if (strlen(trim($fieldValue)) > 0) {
                            $this->arFilter[$filterCode] = $fieldValue;
                        }
                        break;
                }
            }
        }
    }
    /**
         * ������ ������ � ����������� �������� ������ ��������� � ������
         * @return array
         */
    public function getFilter()
    {
        return $this->arFilter;
    }
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit