Fix default_colors plugin: update CSS file on color change

Last update of this plugin remove the save_plugin_parameters hook.

Fixes #1657
This commit is contained in:
ArthurHoaro 2020-12-29 11:59:14 +01:00
parent f2e309b67d
commit 035a002edc
2 changed files with 37 additions and 0 deletions

View 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. * When linklist is displayed, include default_colors CSS file.
* *

View file

@ -193,4 +193,27 @@ public function testFormatCssRuleInvalid()
$result = default_colors_format_css_rule($data, ''); $result = default_colors_format_css_rule($data, '');
$this->assertEmpty($result); $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);
}
} }