diff --git a/sources/application/UI/Base/Component/Button/Button.php b/sources/application/UI/Base/Component/Button/Button.php index 29cfcfe16..b5b1f815a 100644 --- a/sources/application/UI/Base/Component/Button/Button.php +++ b/sources/application/UI/Base/Component/Button/Button.php @@ -94,8 +94,6 @@ class Button extends UIBlock protected $sJsCode; /** @var string $sOnClickJsCode */ protected $sOnClickJsCode; - /** @var array */ - protected $aAdditionalCSSClasses; /** * Button constructor. @@ -131,7 +129,6 @@ class Button extends UIBlock $this->sJsCode = $sJsCode; $this->sOnClickJsCode = $sOnClickJsCode; $this->bIsDisabled = false; - $this->aAdditionalCSSClasses = []; $this->aDataAttributes = ['role' => 'ibo-button']; } @@ -346,24 +343,4 @@ class Button extends UIBlock return $this; } - - /** - * @return string - */ - public function GetAdditionalCSSClass(): string - { - return implode(' ', $this->aAdditionalCSSClasses); - } - - public function AddCSSClasses(string $sCSSClasses): self - { - foreach (explode(' ', $sCSSClasses) as $sCSSClass) { - if (!empty($sCSSClass)) { - $this->aAdditionalCSSClasses[$sCSSClass] = $sCSSClass; - } - } - return $this; - } - - } \ No newline at end of file diff --git a/sources/application/UI/Base/Component/DataTable/StaticTable/FormTable/FormTable.php b/sources/application/UI/Base/Component/DataTable/StaticTable/FormTable/FormTable.php index 0509f29bd..a6a0c0863 100644 --- a/sources/application/UI/Base/Component/DataTable/StaticTable/FormTable/FormTable.php +++ b/sources/application/UI/Base/Component/DataTable/StaticTable/FormTable/FormTable.php @@ -29,9 +29,9 @@ class FormTable extends StaticTable /** @var iUIBlock[] */ private $aRows; - public function __construct(string $sRef, string $sContainerCSSClass = '') + public function __construct(string $sRef, string $sContainerCSSClasses = '') { - parent::__construct($sRef, $sContainerCSSClass); + parent::__construct($sRef, $sContainerCSSClasses); $this->SetRef($sRef); $this->aRows = []; } diff --git a/sources/application/UI/Base/Component/DataTable/StaticTable/StaticTable.php b/sources/application/UI/Base/Component/DataTable/StaticTable/StaticTable.php index fe1b2c4ec..9feb1d5f3 100644 --- a/sources/application/UI/Base/Component/DataTable/StaticTable/StaticTable.php +++ b/sources/application/UI/Base/Component/DataTable/StaticTable/StaticTable.php @@ -51,10 +51,10 @@ class StaticTable extends UIContentBlock * ] */ private $aData; - - public function __construct(string $sId = null, string $sContainerCSSClass = '') + + public function __construct(string $sId = null, string $sContainerCSSClasses = '') { - parent::__construct($sId, $sContainerCSSClass); + parent::__construct($sId, $sContainerCSSClasses); $this->aColumns = []; $this->aData = []; } diff --git a/sources/application/UI/Base/Component/FieldBadge/FieldBadge.php b/sources/application/UI/Base/Component/FieldBadge/FieldBadge.php index 72154a620..6813f50f5 100644 --- a/sources/application/UI/Base/Component/FieldBadge/FieldBadge.php +++ b/sources/application/UI/Base/Component/FieldBadge/FieldBadge.php @@ -19,8 +19,8 @@ class FieldBadge extends UIContentBlock // Overloaded constants public const BLOCK_CODE = 'ibo-field-badge'; - public function __construct(string $sId = null, string $sContainerClass = '') + public function __construct(string $sId = null, string $sContainerClasses = '') { - parent::__construct($sId, $sContainerClass); + parent::__construct($sId, $sContainerClasses); } } \ No newline at end of file diff --git a/sources/application/UI/Base/Component/PopoverMenu/PopoverMenuItem/PopoverMenuItem.php b/sources/application/UI/Base/Component/PopoverMenu/PopoverMenuItem/PopoverMenuItem.php index 56a316c96..765ac30cd 100644 --- a/sources/application/UI/Base/Component/PopoverMenu/PopoverMenuItem/PopoverMenuItem.php +++ b/sources/application/UI/Base/Component/PopoverMenu/PopoverMenuItem/PopoverMenuItem.php @@ -69,13 +69,13 @@ class PopoverMenuItem extends UIBlock } /** - * @see \ApplicationPopupMenuItem::SetCssClasses() - * * @param array $aCssClasses * * @return $this + * @uses oPopupMenuItem + * @uses \ApplicationPopupMenuItem::SetCssClasses() */ - public function SetCssClasses(array $aCssClasses) + public function SetMenuItemCssClasses(array $aCssClasses) { $this->oPopupMenuItem->SetCssClasses($aCssClasses); @@ -83,13 +83,13 @@ class PopoverMenuItem extends UIBlock } /** - * @see \ApplicationPopupMenuItem::AddCssClass() - * * @param string $sCssClass * * @return $this + * @uses oPopupMenuItem + * @uses \ApplicationPopupMenuItem::AddCssClass() */ - public function AddCssClass(string $sCssClass) + public function AddMenuItemCssClass(string $sCssClass) { $this->oPopupMenuItem->AddCssClass($sCssClass); @@ -97,10 +97,11 @@ class PopoverMenuItem extends UIBlock } /** - * @see \ApplicationPopupMenuItem::GetCssClasses() * @return array + * @uses oPopupMenuItem + * @uses \ApplicationPopupMenuItem::GetCssClasses() */ - public function GetCssClasses() + public function GetMenuItemCssClasses(): array { return $this->oPopupMenuItem->GetCssClasses(); } diff --git a/sources/application/UI/Base/Layout/UIContentBlock.php b/sources/application/UI/Base/Layout/UIContentBlock.php index 9238e0f05..84fc37623 100644 --- a/sources/application/UI/Base/Layout/UIContentBlock.php +++ b/sources/application/UI/Base/Layout/UIContentBlock.php @@ -28,8 +28,6 @@ class UIContentBlock extends UIBlock implements iUIContentBlock public const BLOCK_CODE = 'ibo-content-block'; public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/layouts/content-block/layout'; - /** @var array */ - protected $aCSSClasses; /** @var array */ protected $aSubBlocks; /** @var array */ @@ -40,15 +38,15 @@ class UIContentBlock extends UIBlock implements iUIContentBlock * Generates a
ibo-is-hidden ibo-alert--body
+ *
+ * @return $this
+ *
+ * @use aAdditionalCSSClasses
+ */
+ public function AddCSSClasses(string $sCSSClasses)
+ {
+ foreach (explode(' ', $sCSSClasses) as $sCSSClass) {
+ if (!empty($sCSSClass)) {
+ $this->aAdditionalCSSClasses[$sCSSClass] = $sCSSClass;
+ }
+ }
+
+ return $this;
+ }
+
+ /**
+ * Overrides additional classes with the specified value
+ *
+ * @param string $sCSSClasses with space as separator, like ibo-is-hidden ibo-alert--body
+ *
+ * @return $this
+ *
+ * @use aAdditionalCSSClasses
+ */
+ public function SetCSSClasses(string $sCSSClasses)
+ {
+ $this->aAdditionalCSSClasses = [];
+ $this->AddCSSClasses($sCSSClasses);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function GetAdditionalCSSClasses(): string
+ {
+ return implode(' ', $this->aAdditionalCSSClasses);
+ }
+
/**
* Return an array of the URL of the block $sFilesType and its sub blocks.
* URL is relative unless the $bAbsoluteUrl is set to true.
@@ -343,6 +390,7 @@ abstract class UIBlock implements iUIBlock
public function SetDataAttributes(array $aDataAttributes)
{
$this->aDataAttributes = $aDataAttributes;
+
return $this;
}
@@ -356,6 +404,7 @@ abstract class UIBlock implements iUIBlock
public function AddDataAttribute(string $sName, string $sValue)
{
$this->aDataAttributes[$sName] = $sValue;
+
return $this;
}
@@ -375,6 +424,7 @@ abstract class UIBlock implements iUIBlock
public function SetIsHidden(bool $bIsHidden)
{
$this->bIsHidden = $bIsHidden;
+
return $this;
}
}
diff --git a/templates/base/components/alert/layout.html.twig b/templates/base/components/alert/layout.html.twig
index 4784fe226..d67d3a224 100644
--- a/templates/base/components/alert/layout.html.twig
+++ b/templates/base/components/alert/layout.html.twig
@@ -1,5 +1,5 @@