diff options
| author | Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> | 2023-09-28 07:56:28 +0000 |
|---|---|---|
| committer | Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> | 2023-09-28 07:56:28 +0000 |
| commit | 9e3cfdbe768375994ca61d22c11039c151e95239 (patch) | |
| tree | c3b8e31b70f39ec8f9e1ce6eef3f3e86fe3982ad | |
| parent | 31bbc46dde3dd06eece5850ad4998b7c74098c7f (diff) | |
add SeparatorElement for sidebar widgets, re #3235
Merge request studip/studip!2204
| -rw-r--r-- | lib/classes/sidebar/ListWidget.php | 12 | ||||
| -rw-r--r-- | lib/classes/sidebar/SeparatorElement.php | 28 | ||||
| -rw-r--r-- | resources/assets/stylesheets/scss/sidebar.scss | 6 | ||||
| -rw-r--r-- | templates/sidebar/list-widget.php | 1 |
4 files changed, 46 insertions, 1 deletions
diff --git a/lib/classes/sidebar/ListWidget.php b/lib/classes/sidebar/ListWidget.php index ed37e4c..e6edce2 100644 --- a/lib/classes/sidebar/ListWidget.php +++ b/lib/classes/sidebar/ListWidget.php @@ -38,6 +38,16 @@ class ListWidget extends SidebarWidget } /** + * Adds a separator to the widget + * + * @param array $attributes Optional additional attributes + */ + public function addSeparator($attributes = []) + { + $this->addElement(new SeparatorElement($attributes)); + } + + /** * */ public function render($variables = []) @@ -46,4 +56,4 @@ class ListWidget extends SidebarWidget return parent::render($variables); } -}
\ No newline at end of file +} diff --git a/lib/classes/sidebar/SeparatorElement.php b/lib/classes/sidebar/SeparatorElement.php new file mode 100644 index 0000000..4cfb1ff --- /dev/null +++ b/lib/classes/sidebar/SeparatorElement.php @@ -0,0 +1,28 @@ +<?php + +class SeparatorElement extends WidgetElement +{ + public $attributes = []; + + /** + * create a separator element + * + * @param array $attributes HTML-attributes in an associative array. + */ + public function __construct($attributes = []) + { + parent::__construct(); + + $this->attributes = $attributes; + } + + /** + * Renders the element. + * + * @return string + */ + public function render() + { + return sprintf('<hr %s>', arrayToHtmlAttributes($this->attributes)); + } +} diff --git a/resources/assets/stylesheets/scss/sidebar.scss b/resources/assets/stylesheets/scss/sidebar.scss index 9a556a4..fd885af 100644 --- a/resources/assets/stylesheets/scss/sidebar.scss +++ b/resources/assets/stylesheets/scss/sidebar.scss @@ -124,6 +124,12 @@ ul.widget-list { word-wrap: break-word; } + hr { + border-style: none; + border-top: thin solid var(--content-color-40); + margin: 4px 0px 4px -20px; + } + button { @extend .as-link; text-align: left; diff --git a/templates/sidebar/list-widget.php b/templates/sidebar/list-widget.php index e9af862..5c94a0e 100644 --- a/templates/sidebar/list-widget.php +++ b/templates/sidebar/list-widget.php @@ -2,6 +2,7 @@ <?= CSRFProtection::tokenTag() ?> <ul class="<?= implode(' ', $css_classes) ?>" aria-label="<?= htmlReady($title) ?>"> <? foreach ($elements as $index => $element): ?> + <? $icon = null ?> <? if ($element instanceof LinkElement): ?> <? $icon = $element->icon ?? null ?> <? if ($icon && $element->isDisabled()): ?> |
