* @package UIBlockAPI * @since 3.0.0 * @internal */ class FieldBadgeUIBlockFactory extends AbstractUIBlockFactory { /** @inheritDoc */ public const TWIG_TAG_NAME = 'UIFieldBadge'; /** @inheritDoc */ public const UI_BLOCK_CLASS_NAME = FieldBadge::class; /** * @param string $sValue * @param \ormStyle|null $oStyle * * @return \Combodo\iTop\Application\UI\Base\Component\FieldBadge\FieldBadge */ public static function MakeForField(string $sValue, ?ormStyle $oStyle) { $oBadge = null; $sHtml = ''; // N°5318 - Sanitize value manually as this UIBlock is not using a proper TWIG template 😥 $sValueForHtml = utils::EscapeHtml($sValue); if ($oStyle) { $sStyleClass = $oStyle->GetStyleClass(); $sPrimaryColor = $oStyle->GetMainColor(); $sComplementaryColor = $oStyle->GetComplementaryColor(); if (!is_null($sPrimaryColor) && !is_null($sComplementaryColor)) { $aCSSClasses = array_merge(explode(' ', $sStyleClass), ['ibo-field-badge']); $oBadge = new FieldBadge(null, $aCSSClasses); $sDecorationClasses = $oStyle->GetDecorationClasses(); if (!is_null($sDecorationClasses) && !empty($sDecorationClasses)) { $sHtml .= ""; } $sHtml .= "$sValueForHtml"; } } if (!$oBadge) { $oBadge = new FieldBadge(); $sHtml .= "$sValueForHtml"; } $oBadge->AddHtml($sHtml); return $oBadge; } }