1<?php 2/* 3** Zabbix 4** Copyright (C) 2001-2021 Zabbix SIA 5** 6** This program is free software; you can redistribute it and/or modify 7** it under the terms of the GNU General Public License as published by 8** the Free Software Foundation; either version 2 of the License, or 9** (at your option) any later version. 10** 11** This program is distributed in the hope that it will be useful, 12** but WITHOUT ANY WARRANTY; without even the implied warranty of 13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14** GNU General Public License for more details. 15** 16** You should have received a copy of the GNU General Public License 17** along with this program; if not, write to the Free Software 18** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19**/ 20 21 22require_once dirname(__FILE__).'/../../include/blocks.inc.php'; 23 24class CControllerWidgetFavMapsView extends CControllerWidget { 25 26 public function __construct() { 27 parent::__construct(); 28 29 $this->setType(WIDGET_FAV_MAPS); 30 $this->setValidationRules([ 31 'name' => 'string', 32 'fields' => 'json' 33 ]); 34 } 35 36 protected function doAction() { 37 $maps = []; 38 $mapids = []; 39 40 foreach (CFavorite::get('web.favorite.sysmapids') as $favourite) { 41 $mapids[$favourite['value']] = true; 42 } 43 44 if ($mapids) { 45 $db_maps = API::Map()->get([ 46 'output' => ['sysmapid', 'name'], 47 'sysmapids' => array_keys($mapids) 48 ]); 49 50 foreach ($db_maps as $db_map) { 51 $maps[] = [ 52 'sysmapid' => $db_map['sysmapid'], 53 'label' => $db_map['name'] 54 ]; 55 } 56 } 57 58 CArrayHelper::sort($maps, ['label']); 59 60 $this->setResponse(new CControllerResponseData([ 61 'name' => $this->getInput('name', CWidgetConfig::getKnownWidgetTypes()[WIDGET_FAV_MAPS]), 62 'maps' => $maps, 63 'user' => [ 64 'debug_mode' => $this->getDebugMode() 65 ] 66 ])); 67 } 68} 69