mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-03-23 22:45:14 +08:00
Made it possible to override icons via custom theme
This commit is contained in:
parent
981d215155
commit
dc1a16be4c
@ -130,13 +130,42 @@ function redirect($to = null, $status = 302, $headers = [], $secure = null)
|
||||
return app('redirect')->to($to, $status, $headers, $secure);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a path to a theme resource.
|
||||
* @param string $path
|
||||
* @return string|boolean
|
||||
*/
|
||||
function theme_path($path = '')
|
||||
{
|
||||
$theme = config('view.theme');
|
||||
if (!$theme) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return base_path('themes/' . $theme .($path ? DIRECTORY_SEPARATOR.$path : $path));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get fetch an SVG icon as a string.
|
||||
* Checks for icons defined within a custom theme before defaulting back
|
||||
* to the 'resources/assets/icons' folder.
|
||||
* @param $name
|
||||
* @param array $attrs
|
||||
* @return mixed
|
||||
*/
|
||||
function icon($name, $attrs = [])
|
||||
{
|
||||
$iconPath = resource_path('assets/icons/' . $name . '.svg');
|
||||
$attrString = ' ';
|
||||
foreach ($attrs as $attrName => $attr) {
|
||||
$attrString .= $attrName . '="' . $attr . '" ';
|
||||
}
|
||||
|
||||
$iconPath = resource_path('assets/icons/' . $name . '.svg');
|
||||
$themeIconPath = theme_path('icons/' . $name . '.svg');
|
||||
if ($themeIconPath && file_exists($themeIconPath)) {
|
||||
$iconPath = $themeIconPath;
|
||||
}
|
||||
|
||||
$fileContents = file_get_contents($iconPath);
|
||||
return str_replace('<svg', '<svg' . $attrString, $fileContents);
|
||||
}
|
||||
|
@ -7,6 +7,19 @@ if ($theme = env('APP_THEME', false)) {
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App theme
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option defines the theme to use for the application. When a theme
|
||||
| is set there mush be a `themes/<theme_name>` folder to hold the
|
||||
| custom theme overrides.
|
||||
|
|
||||
*/
|
||||
|
||||
'theme' => env('APP_THEME', false),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| View Storage Paths
|
||||
|
Loading…
x
Reference in New Issue
Block a user