<?php /** * Widget Example Pandora FMS Console * * @category Console Class * @package Pandora FMS * @subpackage Widget Example * @version 1.0.0 * @license See below * * ______ ___ _______ _______ ________ * | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __| * | __/| _ | | _ || _ | _| _ | | ___| |__ | * |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______| * * ============================================================================ * Copyright (c) 2005-2021 Artica Soluciones Tecnologicas * Please see http://pandorafms.org for full contribution list * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation for version 2. * 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 General Public License for more details. * ============================================================================ */ namespace PandoraFMS\Dashboard; /** * Example Widgets */ class WelcomeWidget extends Widget { /** * Name widget. * * @var string */ protected $name; /** * Title widget. * * @var string */ protected $title; /** * Page widget; * * @var string */ protected $page; /** * Class name widget. * * @var [type] */ protected $className; /** * Values options for each widget. * * @var [type] */ protected $values; /** * Configuration required. * * @var boolean */ protected $configurationRequired; /** * Error load widget. * * @var boolean */ protected $loadError; /** * Width. * * @var integer */ protected $width; /** * Heigth. * * @var integer */ protected $height; /** * Grid Width. * * @var integer */ protected $gridWidth; /** * Construct. * * @param integer $cellId Cell ID. * @param integer $dashboardId Dashboard ID. * @param integer $widgetId Widget ID. * @param integer|null $width New width. * @param integer|null $height New height. * @param integer|null $gridWidth Grid width. */ public function __construct( int $cellId, int $dashboardId=0, int $widgetId=0, ?int $width=0, ?int $height=0, ?int $gridWidth=0 ) { global $config; // WARNING: Do not edit. This chunk must be in the constructor. parent::__construct( $cellId, $dashboardId, $widgetId ); // Width. $this->width = $width; // Height. $this->height = $height; // Grid Width. $this->gridWidth = $gridWidth; // Options. $this->values = $this->decoders($this->getOptionsWidget()); // Positions. $this->position = $this->getPositionWidget(); // Page. $this->page = basename(__FILE__); // ClassName. $class = new \ReflectionClass($this); $this->className = $class->getShortName(); // Title. $this->title = __('Welcome message to %s', get_product_name()); // Name. if (empty($this->name) === true) { $this->name = 'example'; } $this->configurationRequired = false; $this->overflow_scrollbars = false; } /** * Decoders hack for retrocompability. * * @param array $decoder Values. * * @return array Returns the values with the correct key. */ public function decoders(array $decoder): array { $values = []; // Retrieve global - common inputs. $values = parent::decoders($decoder); return $values; } /** * Generates inputs for form (specific). * * @return array Of inputs. * * @throws Exception On error. */ public function getFormInputs(): array { $values = $this->values; // Retrieve global - common inputs. $inputs = parent::getFormInputs(); return $inputs; } /** * Get Post for widget. * * @return array */ public function getPost():array { // Retrieve global - common inputs. $values = parent::getPost(); $values['agentId'] = \get_parameter('agentId', 0); return $values; } /** * Draw widget. * * @return string; */ public function load() { $output = ''; $size = parent::getSize(); if (isset($this->values['message']) === true) { $output .= \io_safe_output( str_replace('
', '<br>', $this->values['message']) ); return $output; } $style = 'height:'.$size['height'].'px; width:'.$size['width'].'px;'; $style .= 'text-align: left;'; $output .= '<div style="'.$style.'">'; $output .= '<h2>'; $output .= __('Welcome to %s', \get_product_name()); $output .= '</h2>'; $output .= '<div id="welcome_example">'; $output .= '<div class="w75p">'; $output .= __('This is an example of a dashboard widget. A widget may contain elements'); $output .= __('To add more elements, click on "<em>Add widgets</em>" on the top of this page.'); $output .= __('To delete this message, click on the delete button on top right corner of this element.'); $output .= __('To do so, just click on the title and drag and drop it to the desired place.'); $output .= __('To delete this message, click on the delete button on top right corner of this element.'); $output .= __('Thanks for using %s.', \get_product_name()); $output .= '</div>'; $output .= "<div class='w25p'>"; $output .= \html_print_image( \ui_get_logo_to_center_networkmap(), true, ['style' => 'margin-top:-27px;width:75%;'] ); $output .= '</div>'; $output .= '</div>'; $output .= '</div>'; return $output; } /** * Get description. * * @return string. */ public static function getDescription() { return __('Welcome message to %s', get_product_name()); } /** * Get Name. * * @return string. */ public static function getName() { return 'example'; } /** * Get size Modal Configuration. * * @return array */ public function getSizeModalConfiguration(): array { $size = [ 'width' => 500, 'height' => 220, ]; return $size; } }