Source
xxxxxxxxxx
private function getItemRowTemplate($ds_num = '#{dsNum}', $row_num = '#{rowNum}', $itemid = '#{itemid}',
<?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\PieChart\Includes;
use CButton,
CButtonIcon,
CButtonLink,
CCol,
CColorPicker,
CDiv,
CFormField,
CFormGrid,
CHorList,
CItemHelper,
CLabel,
CLink,
CList,
CListItem,
CPatternSelect,
CRow,
CScriptTag,
CSelect,
CSimpleButton,
CSpan,
CTable,
CTableColumn,
CTag,
CTemplateTag,
CTextBox,
CVar,
CWidgetFieldView;
use Zabbix\Widgets\CWidgetField;
class CWidgetFieldDataSetView extends CWidgetFieldView {
public function __construct(CWidgetFieldDataSet $field) {
$this->field = $field;
}
public function getView(): CList {
$view = (new CList())->setId('data_sets');
$values = $this->field->getValue();
if (!$values) {
$values[] = CWidgetFieldDataSet::getDefaults();
}
// Get item names for single item datasets.
$itemids = [];
foreach (array_column($values, 'itemids') as $items_spec) {
foreach ($items_spec as $item_spec) {
if (!is_array($item_spec)) {
$itemids[$item_spec] = true;
}
}
}
$item_names = $itemids
? CWidgetFieldDataSet::getItemNames(array_keys($itemids), !$this->field->isTemplateDashboard())
: [];
foreach ($values as $i => $value) {
if ($value['dataset_type'] == CWidgetFieldDataSet::DATASET_TYPE_SINGLE_ITEM) {
$value['item_names'] = $item_names;
}
$view->addItem(
$this->getDataSetLayout($value, $value['dataset_type'], $i == 0, $i)
);
}
return $view;
}