From 679dba01b427ea0357528be367261c2d30a26b22 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de>
Date: Thu, 18 Jan 2018 19:43:45 +0100
Subject: [PATCH] feat: add optionally an SVG to html_btn

---
 inc/Menu/Item/AbstractItem.php |  4 ++--
 inc/html.php                   | 12 +++++++++---
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/inc/Menu/Item/AbstractItem.php b/inc/Menu/Item/AbstractItem.php
index 82b351b81..e943b5900 100644
--- a/inc/Menu/Item/AbstractItem.php
+++ b/inc/Menu/Item/AbstractItem.php
@@ -171,7 +171,6 @@ abstract class AbstractItem {
      *
      * Uses html_btn()
      *
-     * @todo this does currently not support the SVG icon
      * @return string
      */
     public function asHtmlButton() {
@@ -182,7 +181,8 @@ abstract class AbstractItem {
             $this->getParams(),
             $this->method,
             $this->getTitle(),
-            $this->getLabel()
+            $this->getLabel(),
+            inlineSVG($this->getSvg())
         );
     }
 
diff --git a/inc/html.php b/inc/html.php
index b8465a641..cebff851e 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -188,9 +188,10 @@ function html_topbtn(){
  * @param string         $method
  * @param string         $tooltip
  * @param bool|string    $label  label text, false: lookup btn_$name in localization
+ * @param string $inlineSVG (optional) inlineSVG code, inserted into the button
  * @return string
  */
-function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label=false){
+function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label=false, $inlineSVG=null){
     global $conf;
     global $lang;
 
@@ -233,7 +234,12 @@ function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label
         $ret .= 'accesskey="'.$akey.'" ';
     }
     $ret .= 'title="'.$tip.'">';
-    $ret .= hsc($label);
+    if ($inlineSVG) {
+        $ret .= '<span>' . hsc($label) . '</span>';
+        $ret .= $inlineSVG;
+    } else {
+        $ret .= hsc($label);
+    }
     $ret .= '</button>';
     $ret .= '</div></form>';
 
@@ -2314,4 +2320,4 @@ function html_sizechange($sizechange, Doku_Form $form) {
         $form->addElement($value);
         $form->addElement(form_makeCloseTag('span'));
     }
-}
\ No newline at end of file
+}
-- 
GitLab