* @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 a
 tag.
	 *
	 * @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; } }