%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.142.98.153 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/main/lib/update/ |
Upload File : |
<? namespace Bitrix\Main\Update; use Bitrix\Main\Application; use Bitrix\Main\Config\Option; /** * Class GridOption * The class is designed to convert the settings of the old administrative grid into a new one. * * An example of how this miracle works can be seen here: sale,18.5.7; iblock,18.5.5; catalog,18.5.6; * * @package Bitrix\Main\Update */ class AdminGridOption extends Stepper { protected static $moduleId = "main"; protected $limit = 100; /** * The method records the necessary data for conversion into an option. * @param string $tableId Grid id. * @throws \Bitrix\Main\ArgumentNullException * @throws \Bitrix\Main\ArgumentOutOfRangeException */ public static function setGridToConvert($tableId) { $listGrid = Option::get(self::$moduleId, "listGridToConvert", ""); if ($listGrid !== "") { $listGrid = unserialize($listGrid, ['allowed_classes' => false]); } $listGrid = is_array($listGrid) ? $listGrid : []; if (!array_key_exists($tableId, $listGrid)) { $listGrid[$tableId] = [ "offset" => 0, "tableId"=> $tableId, ]; Option::set(self::$moduleId, "listGridToConvert", serialize($listGrid)); } } public function execute(array &$option) { $listGrid = Option::get(self::$moduleId, "listGridToConvert", ""); if ($listGrid !== "" ) { $listGrid = unserialize($listGrid, ['allowed_classes' => false]); } $listGrid = is_array($listGrid) ? $listGrid : []; if (empty($listGrid)) { Option::delete(self::$moduleId, ["name" => "listGridToConvert"]); $GLOBALS["CACHE_MANAGER"]->cleanDir("user_option"); return false; } $connection = Application::getInstance()->getConnection(); $sqlHelper = $connection->getSqlHelper(); foreach ($listGrid as $tableId => $table) { $queryObject = $connection->query("SELECT * FROM `b_user_option` WHERE `CATEGORY` = 'list' AND `NAME` = '". $sqlHelper->forSql($table["tableId"])."' ORDER BY ID ASC LIMIT ".$this->limit." OFFSET ".$table["offset"]); $selectedRowsCount = $queryObject->getSelectedRowsCount(); while ($optionOldGrid = $queryObject->fetch()) { $oldGridData = (!empty($optionOldGrid["VALUE"]) ? unserialize($optionOldGrid["VALUE"], ['allowed_classes' => false]) : []); if (!$oldGridData) { continue; } $queryResultObject = $connection->query( "SELECT ID FROM `b_user_option` WHERE `CATEGORY` = 'main.interface.grid' AND `NAME` = '". $sqlHelper->forSql($table["tableId"])."' AND `USER_ID` = '".$optionOldGrid["USER_ID"]."'"); if (!$queryResultObject->fetch()) { if (!array_diff_key(array_flip(["page_size", "by", "order", "columns"]), $oldGridData)) { $gridOptions = new \CGridOptions($tableId); $gridOptions->setSorting($oldGridData["by"], $oldGridData["order"]); $gridOptions->setColumns($oldGridData["columns"]); $options = $gridOptions->getOptions(); $options["views"]["default"]["page_size"] = intval($oldGridData["page_size"]); \CUserOptions::setOption( "main.interface.grid", $tableId, $options, false, $optionOldGrid["USER_ID"]); } } } if ($selectedRowsCount < $this->limit) { unset($listGrid[$tableId]); } else { $listGrid[$tableId]["offset"] = $listGrid[$tableId]["offset"] + $selectedRowsCount; } } $GLOBALS["CACHE_MANAGER"]->cleanDir("user_option"); if (!empty($listGrid)) { Option::set(self::$moduleId, "listGridToConvert", serialize($listGrid)); return true; } else { Option::delete(self::$moduleId, ["name" => "listGridToConvert"]); return false; } } }