mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
194 lines
5.6 KiB
PHP
194 lines
5.6 KiB
PHP
<?php
|
|
|
|
/*
|
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
|
* @license http://opensource.org/licenses/AGPL-3.0
|
|
*/
|
|
|
|
namespace Combodo\iTop\Application\WelcomePopup;
|
|
|
|
use iWelcomePopupExtension;
|
|
use utils;
|
|
|
|
/**
|
|
* Class Message
|
|
*
|
|
* @author Guillaume Lajarige <guillaume.lajarige@combodo.com>
|
|
* @package Combodo\iTop\Application\WelcomePopup
|
|
*/
|
|
class Message
|
|
{
|
|
/** @var string Default TWIG template */
|
|
protected const DEFAULT_TWIG_TEMPLATE_REL_PATH = 'templates/application/welcome-popup/templates/left-title-description-right-illustration.html.twig';
|
|
|
|
/** @var string Unique ID of the message within its provider */
|
|
protected readonly string $sId;
|
|
/** @var int Importance of the message {@see \iWelcomePopupExtension::ENUM_IMPORTANCE_HIGH} and {@see \iWelcomePopupExtension::ENUM_IMPORTANCE_CRITICAL} */
|
|
protected int $iImportance;
|
|
/** @var string Title of the message in plain text */
|
|
protected string $sTitle;
|
|
/** @var string Description of the message, can contain HTML */
|
|
protected string $sDescription;
|
|
/** @var string|null Optional illustration to display with the description, should be an absolute URI (illustration can be on another server) */
|
|
protected null|string $sIllustrationAbsURI;
|
|
/** @var array Additional parameters to pass to {@see \Combodo\iTop\Application\WelcomePopup\Message::$sTWIGTemplateRelPath} */
|
|
protected array $aAdditionalParameters;
|
|
/** @var string|null TWIG template to use for the rendering of the message content (title, description, illustration) */
|
|
protected readonly null|string $sTWIGTemplateRelPath;
|
|
|
|
/**
|
|
* @param string $sId {@see \Combodo\iTop\Application\WelcomePopup\Message::$sId}
|
|
* @param string $sTitle {@see \Combodo\iTop\Application\WelcomePopup\Message::$sTitle}
|
|
* @param string $sDescription {@see \Combodo\iTop\Application\WelcomePopup\Message::$sDescription}
|
|
* @param string|null $sIllustrationAbsURI {@see \Combodo\iTop\Application\WelcomePopup\Message::$sIllustrationAbsURI}
|
|
* @param array $aAdditionalParameters {@see \Combodo\iTop\Application\WelcomePopup\Message::$aAdditionalParameters}
|
|
* @param int $iImportance {@see \Combodo\iTop\Application\WelcomePopup\Message::$iImportance}
|
|
* @param string|null $sTWIGTemplateRelPath {@see \Combodo\iTop\Application\WelcomePopup\Message::$sTWIGTemplateRelPath}
|
|
*/
|
|
public function __construct(string $sId, string $sTitle, string $sDescription, null|string $sIllustrationAbsURI = null, array $aAdditionalParameters = [], int $iImportance = iWelcomePopupExtension::DEFAULT_IMPORTANCE, null|string $sTWIGTemplateRelPath = null)
|
|
{
|
|
$this->sId = $sId;
|
|
$this->sTitle = $sTitle;
|
|
$this->sDescription = $sDescription;
|
|
$this->sIllustrationAbsURI = $sIllustrationAbsURI;
|
|
$this->aAdditionalParameters = $aAdditionalParameters;
|
|
$this->iImportance = $iImportance;
|
|
$this->sTWIGTemplateRelPath = $sTWIGTemplateRelPath ?? static::DEFAULT_TWIG_TEMPLATE_REL_PATH;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$sId
|
|
* @return string
|
|
*/
|
|
public function GetID(): string
|
|
{
|
|
return $this->sId;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$sDescription
|
|
* @return string
|
|
*/
|
|
public function GetTitle(): string
|
|
{
|
|
return $this->sTitle;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$sTitle
|
|
* @param string $sTitle
|
|
*
|
|
* @return static
|
|
*/
|
|
public function SetTitle(string $sTitle): static
|
|
{
|
|
$this->sTitle = $sTitle;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$sDescription
|
|
* @return string
|
|
*/
|
|
public function GetDescription(): string
|
|
{
|
|
return $this->sDescription;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$sDescription
|
|
* @param string $sDescription
|
|
*
|
|
* @return static
|
|
*/
|
|
public function SetDescription(string $sDescription): static
|
|
{
|
|
$this->sDescription = $sDescription;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$sIllustrationAbsURI
|
|
* @return string|null
|
|
*/
|
|
public function GetIllustrationAbsURI(): ?string
|
|
{
|
|
return $this->sIllustrationAbsURI;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$sIllustrationAbsURI
|
|
*
|
|
* @param string|null $sIllustrationAbsURI
|
|
*
|
|
* @return static
|
|
*/
|
|
public function SetIllustrationAbsURI(?string $sIllustrationAbsURI): static
|
|
{
|
|
$this->sIllustrationAbsURI = $sIllustrationAbsURI;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::HasIllustration()
|
|
* @return bool
|
|
*/
|
|
public function HasIllustration(): bool
|
|
{
|
|
return utils::IsNotNullOrEmptyString($this->sIllustrationAbsURI);
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$aAdditionalParameters
|
|
* @return array
|
|
*/
|
|
public function GetAdditionalParameters(): array
|
|
{
|
|
return $this->aAdditionalParameters;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$aAdditionalParameters
|
|
*
|
|
* @param array $aAdditionalParameters
|
|
*
|
|
* @return static
|
|
*/
|
|
public function SetAdditionalParameters(array $aAdditionalParameters): static
|
|
{
|
|
$this->aAdditionalParameters = $aAdditionalParameters;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$iImportance
|
|
* @return int
|
|
*/
|
|
public function GetImportance(): int
|
|
{
|
|
return $this->iImportance;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$iImportance
|
|
*
|
|
* @param int $iImportance
|
|
*
|
|
* @return static
|
|
*/
|
|
public function SetImportance(int $iImportance): static
|
|
{
|
|
$this->iImportance = $iImportance;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @see \Combodo\iTop\Application\WelcomePopup\Message::$sTWIGTemplateRelPath
|
|
* @return string|null
|
|
*/
|
|
public function GetTWIGTemplateRelPath(): ?string
|
|
{
|
|
return $this->sTWIGTemplateRelPath;
|
|
}
|
|
}
|