4 * Plugin default_colors.
6 * Allow users to easily overrides colors of the default theme.
9 use Shaarli\Plugin\PluginManager
;
11 const DEFAULT_COLORS_PLACEHOLDERS
= [
12 'DEFAULT_COLORS_MAIN',
13 'DEFAULT_COLORS_BACKGROUND',
14 'DEFAULT_COLORS_DARK_MAIN',
18 * When plugin parameters are saved
20 function hook_default_colors_save_plugin_parameters($data)
22 $file = PluginManager
::$PLUGINS_PATH . '/default_colors/default_colors.css';
23 $template = file_get_contents(PluginManager
::$PLUGINS_PATH . '/default_colors/default_colors.css.template');
25 foreach (DEFAULT_COLORS_PLACEHOLDERS
as $rule) {
26 $content .= ! empty($data[$rule])
27 ? default_colors_format_css_rule($data, $rule) .';'. PHP_EOL
30 file_put_contents($file, sprintf($template, $content));
35 * When linklist is displayed, include isso CSS file.
37 * @param array $data - header data.
39 * @return mixed - header data with isso CSS file added.
41 function hook_default_colors_render_includes($data)
43 $file = PluginManager
::$PLUGINS_PATH . '/default_colors/default_colors.css';
44 if (file_exists($file )) {
45 $data['css_files'][] = $file ;
52 * This function is never called, but contains translation calls for GNU gettext extraction.
54 function default_colors_translation()
57 t('Override default theme colors. Use any CSS valid color.');
58 t('Main color (navbar green)');
59 t('Background color (light grey)');
60 t('Dark main color (e.g. visited links)');
63 function default_colors_format_css_rule($data, $parameter)
65 $key = str_replace('DEFAULT_COLORS_', '', $parameter);
66 $key = str_replace('_', '-', strtolower($key)) .'-color';
67 return ' --'. $key .': '. $data[$parameter];