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/cvetdv.ru/bitrix/modules/yandex.market/lib/component/salesboost/ |
Upload File : |
<?php namespace Yandex\Market\Component\SalesBoost; use Yandex\Market; /** @property Market\Components\AdminGridList $component */ class GridList extends Market\Component\Model\GridList { public function processPostAction($action, $data) { if ($action === 'reinstall') { $this->processReinstall($data); } else { parent::processPostAction($action, $data); } } protected function processReinstall($data) { global $APPLICATION; $model = $this->getModelClass(); $successUrl = $APPLICATION->GetCurPageParam('', [ 'postAction' ]); $setupList = $model::loadList(array_diff_key($data, [ 'select' => true, 'limit' => true, 'offset' => true, 'order' => true, ])); /** @var Market\SalesBoost\Setup\Model $setup */ foreach ($setupList as $setup) { Market\Reference\Assert::typeOf($setup, Market\SalesBoost\Setup\Model::class, 'setup'); $setup->updateListener(); } Market\Utils\ServerStamp\Facade::reset(); \CAdminNotify::DeleteByTag(Market\SalesBoost\Agent\Processor::NOTIFY_DISABLED); LocalRedirect($successUrl); } public function filterActions($item, $actions) { $result = $actions; foreach ($result as $actionKey => $action) { $isValid = true; if ($action['TYPE'] === 'ACTIVATE') { $isValid = ($item['ACTIVE'] === Market\SalesBoost\Setup\Table::BOOLEAN_N); } else if ($action['TYPE'] === 'DEACTIVATE') { $isValid = ($item['ACTIVE'] === Market\SalesBoost\Setup\Table::BOOLEAN_Y); } if (!$isValid) { unset($result[$actionKey]); } } return $result; } /** @noinspection DuplicatedCode */ public function processAjaxAction($action, $data) { switch ($action) { case 'activate': $isNeedExport = true; $result = $this->processActivateAction($data); break; case 'deactivate': $isNeedExport = true; $result = $this->processDeactivateAction($data); break; default: $isNeedExport = ($action === 'delete'); $result = parent::processAjaxAction($action, $data); break; } if ($isNeedExport) { $exportQuery = [ 'id' => $result ]; $exportUrl = $this->getComponentParam('EXPORT_URL'); $exportUrl .= (mb_strpos($exportUrl, '?') === false ? '?' : '&') . http_build_query($exportQuery); $this->component->setRedirectUrl($exportUrl); } return $result; } protected function processActivateAction($data) { $selectedIds = $this->getActionSelectedIds($data); foreach ($selectedIds as $id) { $this->activateItem($id); } return $selectedIds; } protected function processDeactivateAction($data) { $selectedIds = $this->getActionSelectedIds($data); foreach ($selectedIds as $id) { $this->deactivateItem($id); } return $selectedIds; } protected function activateItem($id) { $dataClass = $this->getDataClass(); $dataClass::update($id, [ 'ACTIVE' => Market\SalesBoost\Setup\Table::BOOLEAN_Y ]); } protected function deactivateItem($id) { $dataClass = $this->getDataClass(); $dataClass::update($id, [ 'ACTIVE' => Market\SalesBoost\Setup\Table::BOOLEAN_N ]); } public function getDefaultFilter() { return ( parent::getDefaultFilter() + Market\Ui\Trading\Menu::businessFilter($this->getComponentParam('BUSINESS_ID')) ); } public function getFields(array $select = []) { $fields = parent::getFields($select); if (isset($fields['BUSINESS'])) { $fields['BUSINESS']['SETTINGS']['FILTER'] = Market\Ui\Trading\Menu::businessFilter( $this->getComponentParam('BUSINESS_ID'), 'ID' ); } return $fields; } }