aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/classes/sidebar/ListWidget.php12
-rw-r--r--lib/classes/sidebar/SeparatorElement.php28
-rw-r--r--resources/assets/stylesheets/scss/sidebar.scss6
-rw-r--r--templates/sidebar/list-widget.php1
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()): ?>