* @package UIBlockAPI * @api * @since 3.0.0 */ class UIContentBlockUIBlockFactory extends AbstractUIBlockFactory { /** @inheritDoc */ public const TWIG_TAG_NAME = 'UIContentBlock'; /** @inheritDoc */ public const UI_BLOCK_CLASS_NAME = UIContentBlock::class; /** * Make an empty UIContentBlock which can be used to embed anything or to surround another block with specific CSS classes. * * @api * @param string|null $sId * @param array $aContainerClasses * * @return \Combodo\iTop\Application\UI\Base\Layout\UIContentBlock */ public static function MakeStandard(string $sId = null, array $aContainerClasses = []) { return new UIContentBlock($sId, $aContainerClasses); } /** * Used to display a block of code like
but allows line break. * The \n are replaced by
* * @api * @param string $sCode plain text code * @param string|null $sId * * @return \Combodo\iTop\Application\UI\Base\Layout\UIContentBlock */ public static function MakeForCode(string $sCode, string $sId = null) { $sCode = str_replace("\n", '
', \utils::HtmlEntities($sCode)); return self::MakeFromHTMLCode($sId, $sCode); } /** * Used to display a block of preformatted text in atag. * * @api * @param string $sCode plain text code * @param string|null $sId * * @return \Combodo\iTop\Application\UI\Base\Layout\UIContentBlock */ public static function MakeForPreformatted(string $sCode, string $sId = null) { $sCode = ''.\utils::HtmlEntities($sCode).''; return self::MakeFromHTMLCode($sId, $sCode); } /** * @param string|null $sId * @param string $sCode * * @return \Combodo\iTop\Application\UI\Base\Layout\UIContentBlock */ private static function MakeFromHTMLCode(?string $sId, string $sCode): UIContentBlock { $oCode = new UIContentBlock($sId, ['ibo-is-code']); $oCode->AddSubBlock(new Html($sCode)); return $oCode; } }