]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Fix default_colors plugin: update CSS file on color change 1671/head
authorArthurHoaro <arthur@hoa.ro>
Tue, 29 Dec 2020 10:59:14 +0000 (11:59 +0100)
committerArthurHoaro <arthur@hoa.ro>
Tue, 29 Dec 2020 10:59:14 +0000 (11:59 +0100)
Last update of this plugin remove the save_plugin_parameters hook.

Fixes #1657

plugins/default_colors/default_colors.php
tests/plugins/PluginDefaultColorsTest.php

index 574a0bd4df3170decd74967988d8d1c8fb8bb2cb..d3e1fa761a86501127bad13a985c42c6f45540ae 100644 (file)
@@ -46,6 +46,20 @@ function default_colors_init($conf)
     }
 }
 
+/**
+ * When plugin parameters are saved, we regenerate the custom CSS file with provided settings.
+ *
+ * @param array         $data $_POST array
+ *
+ * @return array Updated $_POST array
+ */
+function hook_default_colors_save_plugin_parameters($data)
+{
+    default_colors_generate_css_file($data);
+
+    return $data;
+}
+
 /**
  * When linklist is displayed, include default_colors CSS file.
  *
index cc844c60f41e34edc0b61665e97c6f1227d6b3ac..54e97612538858d08f47e7a145f824399ad23805 100644 (file)
@@ -193,4 +193,27 @@ class PluginDefaultColorsTest extends TestCase
         $result = default_colors_format_css_rule($data, '');
         $this->assertEmpty($result);
     }
+
+    /**
+     * Make sure that a new CSS file is generated when save_plugin_parameters hook is triggered.
+     */
+    public function testHookSavePluginParameters(): void
+    {
+        $params = [
+            'other1' => true,
+            'DEFAULT_COLORS_BACKGROUND' => 'pink',
+            'other2' => ['yep'],
+            'DEFAULT_COLORS_DARK_MAIN' => '',
+        ];
+
+        hook_default_colors_save_plugin_parameters($params);
+        $this->assertFileExists($file = 'sandbox/default_colors/default_colors.css');
+        $content = file_get_contents($file);
+        $expected = ':root {
+  --background-color: pink;
+
+}
+';
+        $this->assertEquals($expected, $content);
+    }
 }