Server IP : 85.193.89.191 / Your IP : 18.116.21.180 Web Server : Apache System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 User : bitrix ( 600) PHP Version : 8.1.27 Disable Function : NONE MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/bitrix/www/bitrix/modules/sender/lib/connector/ |
Upload File : |
<?php /** * Bitrix Framework * @package bitrix * @subpackage sender * @copyright 2001-2018 Bitrix */ namespace Bitrix\Sender\Connector; use Bitrix\Main\ArgumentException; use Bitrix\Sender\UI\PageNavigation; /** * Class ResultView * * @package Bitrix\Sender\Connector */ Class ResultView { const Title = 'title'; const Draw = 'draw'; const Filter = 'filter'; const FilterModifier = 'filter-modifier'; const ColumnModifier = 'column-modifier'; /** @var Base $connector Connector. */ protected $connector; /** @var array $callbacks Callbacks. */ protected $callbacks; /** @var PageNavigation $nav Page navigation. */ protected $nav; /** * Constructor. * * @param Base $connector Connector. */ public function __construct(Base $connector) { $this->connector = $connector; } /** * Set callback. * * @param string $name Name. * @param callable $callable Callback. * @return $this * @throws ArgumentException */ public function setCallback($name, $callable) { if (!is_callable($callable)) { throw new ArgumentException('Parameter \'callable\' should be callable.'); } $this->callbacks[$name] = $callable; return $this; } protected function runCallback($name, array $arguments = []) { if (!isset($this->callbacks[$name])) { return null; } return call_user_func_array($this->callbacks[$name], $arguments); } /** * Get filter. * * @return string|null */ public function getTitle() { return $this->runCallback(self::Title) ?: $this->connector->getName(); } /** * Modify result view filter. * * @param array $filter Filter. * @return void */ public function modifyFilter(array &$filter) { $this->runCallback(self::FilterModifier, [&$filter]); } /** * Modify result view columns. * * @param array $columns columns. * @return void */ public function modifyColumns(array &$columns) { $this->runCallback(self::ColumnModifier, [&$columns]); } /** * Set page navigation. * * @param PageNavigation|null $nav Page navigation. * @return $this */ public function setNav(PageNavigation $nav = null) { $this->nav = $nav; return $this; } /** * Get page navigation. * * @return PageNavigation|null */ public function getNav() { return $this->nav; } /** * Has page navigation. * * @return bool */ public function hasNav() { return !empty($this->nav); } /** * Callback on filter of result view. * * @return void */ public function onFilter() { $this->runCallback(self::Filter); } /** * Callback on draw of result view. * * @param array $raw Raw. * @return void */ public function onDraw(array &$raw) { $this->runCallback(self::Draw, [&$raw]); } }