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 22class CScreenImporter extends CAbstractScreenImporter { 23 24 /** 25 * Import screens. 26 * 27 * @param array $screens 28 */ 29 public function import(array $screens) { 30 $screens_to_create = []; 31 $screens_to_update = []; 32 33 foreach ($screens as $screen) { 34 $screen = $this->resolveScreenReferences($screen); 35 36 if ($screenid = $this->referencer->resolveScreen($screen['name'])) { 37 $screen['screenid'] = $screenid; 38 $screens_to_update[] = $screen; 39 } 40 else { 41 $screens_to_create[] = $screen; 42 } 43 } 44 45 if ($this->options['screens']['createMissing'] && $screens_to_create) { 46 API::Screen()->create($screens_to_create); 47 } 48 49 if ($this->options['screens']['updateExisting'] && $screens_to_update) { 50 API::Screen()->update($screens_to_update); 51 } 52 } 53} 54