Source
foreach (array_slice(explode("\n", $label, self::LABEL_MAX_LINES + 1), 0, self::LABEL_MAX_LINES) as $line) {
<?php declare(strict_types = 0);
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
namespace Widgets\Honeycomb\Actions;
use API,
CArrayHelper,
CControllerDashboardWidgetView,
CControllerResponseData,
CMacrosResolverHelper,
CNumberParser,
CSettingsHelper,
Manager;
use Widgets\Honeycomb\Includes\WidgetForm;
class WidgetView extends CControllerDashboardWidgetView {
private const LABEL_MAX_LINES = 10;
private const LABEL_MAX_LINE_LENGTH = 250;
private const MAX_ITEMS = 1000;
protected function init(): void {
parent::init();
$this->addValidationRules([
'with_config' => 'in 1',
'max_items' => 'int32'
]);
}
protected function doAction(): void {
$data = [
'name' => $this->getInput('name', $this->widget->getDefaultName()),
'user' => [
'debug_mode' => $this->getDebugMode()
],
'vars' => [
'cells' => $this->getCells($this->getInput('max_items', self::MAX_ITEMS) + 1)
]
];
if ($this->hasInput('with_config')) {
$data['vars']['config'] = $this->getConfig();
}
$this->setResponse(new CControllerResponseData($data));
}
private function getCells(int $limit): array {