Add Theme::getBackgroundColor and Theme::getThemeColor methods

This commit is contained in:
Hypolite Petovan 2020-02-19 10:28:57 -05:00
parent abe1e37dd9
commit b9325251e8
6 changed files with 188 additions and 0 deletions

View file

@ -257,4 +257,56 @@ class Theme
return 'view/theme/' . $theme . '/style.pcss' . (!empty($query_params) ? '?' . http_build_query($query_params) : ''); return 'view/theme/' . $theme . '/style.pcss' . (!empty($query_params) ? '?' . http_build_query($query_params) : '');
} }
/**
* Returns the background color of the provided theme if available.
*
* @param string $theme
* @param int|null $uid Current logged-in user id
* @return string|null
*/
public static function getBackgroundColor(string $theme, $uid = null)
{
$theme = Strings::sanitizeFilePathItem($theme);
$return = null;
// silently fail if theme was removed or if $theme is funky
if (file_exists("view/theme/$theme/theme.php")) {
include_once "view/theme/$theme/theme.php";
$func = "{$theme}_get_background_color";
if (function_exists($func)) {
$return = $func($uid);
}
}
return $return;
}
/**
* Returns the theme color of the provided theme if available.
*
* @param string $theme
* @param int|null $uid Current logged-in user id
* @return string|null
*/
public static function getThemeColor(string $theme, int $uid = null)
{
$theme = Strings::sanitizeFilePathItem($theme);
$return = null;
// silently fail if theme was removed or if $theme is funky
if (file_exists("view/theme/$theme/theme.php")) {
include_once "view/theme/$theme/theme.php";
$func = "{$theme}_get_theme_color";
if (function_exists($func)) {
$return = $func($uid);
}
}
return $return;
}
} }

View file

@ -98,3 +98,25 @@ $(document).ready(function() {
</script> </script>
EOT; EOT;
} }
/**
* @param int|null $uid
* @return null
* @see \Friendica\Core\Theme::getBackgroundColor()
* @TODO Implement this function
*/
function duepuntozero_get_background_color(int $uid = null)
{
return null;
}
/**
* @param int|null $uid
* @return null
* @see \Friendica\Core\Theme::getThemeColor()
* @TODO Implement this function
*/
function duepuntozero_get_theme_color(int $uid = null)
{
return null;
}

View file

@ -366,3 +366,51 @@ function frio_display_item(App $a, &$arr)
} }
$arr['output']['subthread'] = $subthread; $arr['output']['subthread'] = $subthread;
} }
/**
* @param int|null $uid
* @return string
* @see \Friendica\Core\Theme::getBackgroundColor()
*/
function frio_get_background_color(int $uid = null)
{
$background_color = DI::config()->get('frio', 'background_color') ?: '#ededed';
if ($uid) {
$background_color = DI::pConfig()->get($uid, 'frio', 'background_color') ?: $background_color;
}
$scheme = DI::config()->get('frio', 'scheme', DI::config()->get('frio', 'schema'));
$scheme = Strings::sanitizeFilePathItem($scheme);
if ($scheme && ($scheme != '---') && file_exists('view/theme/frio/scheme/' . $scheme . '.php')) {
$schemefile = 'view/theme/frio/scheme/' . $scheme . '.php';
require_once $schemefile;
}
return $background_color;
}
/**
* @param int|null $uid
* @return string
* @see \Friendica\Core\Theme::getThemeColor()
*/
function frio_get_theme_color(int $uid = null)
{
$nav_bg = DI::config()->get('frio', 'nav_bg') ?: '#708fa0';
if ($uid) {
$nav_bg = DI::pConfig()->get($uid, 'frio', 'background_color') ?: $nav_bg;
}
$scheme = DI::config()->get('frio', 'scheme', DI::config()->get('frio', 'schema'));
$scheme = Strings::sanitizeFilePathItem($scheme);
if ($scheme && ($scheme != '---') && file_exists('view/theme/frio/scheme/' . $scheme . '.php')) {
$schemefile = 'view/theme/frio/scheme/' . $scheme . '.php';
require_once $schemefile;
}
return $nav_bg;
}

View file

@ -14,3 +14,25 @@ function quattro_init(App $a) {
DI::page()['htmlhead'] .= '<script src="'.DI::baseUrl().'/view/theme/quattro/tinycon.min.js"></script>'; DI::page()['htmlhead'] .= '<script src="'.DI::baseUrl().'/view/theme/quattro/tinycon.min.js"></script>';
DI::page()['htmlhead'] .= '<script src="'.DI::baseUrl().'/view/theme/quattro/js/quattro.js"></script>';; DI::page()['htmlhead'] .= '<script src="'.DI::baseUrl().'/view/theme/quattro/js/quattro.js"></script>';;
} }
/**
* @param int|null $uid
* @return null
* @see \Friendica\Core\Theme::getBackgroundColor()
* @TODO Implement this function
*/
function quattro_get_background_color(int $uid = null)
{
return null;
}
/**
* @param int|null $uid
* @return null
* @see \Friendica\Core\Theme::getThemeColor()
* @TODO Implement this function
*/
function quattro_get_theme_color(int $uid = null)
{
return null;
}

View file

@ -93,3 +93,25 @@ if (! function_exists('_js_in_foot')) {
return DI::page()['bottom'] = Renderer::replaceMacros($tpl, $bottom); return DI::page()['bottom'] = Renderer::replaceMacros($tpl, $bottom);
} }
} }
/**
* @param int|null $uid
* @return null
* @see \Friendica\Core\Theme::getBackgroundColor()
* @TODO Implement this function
*/
function smoothly_get_background_color(int $uid = null)
{
return null;
}
/**
* @param int|null $uid
* @return null
* @see \Friendica\Core\Theme::getThemeColor()
* @TODO Implement this function
*/
function smoothly_get_theme_color(int $uid = null)
{
return null;
}

View file

@ -364,3 +364,25 @@ function vier_community_info()
$tpl = Renderer::getMarkupTemplate('communityhome.tpl'); $tpl = Renderer::getMarkupTemplate('communityhome.tpl');
DI::page()['right_aside'] = Renderer::replaceMacros($tpl, $aside); DI::page()['right_aside'] = Renderer::replaceMacros($tpl, $aside);
} }
/**
* @param int|null $uid
* @return null
* @see \Friendica\Core\Theme::getBackgroundColor()
* @TODO Implement this function
*/
function vier_get_background_color(int $uid = null)
{
return null;
}
/**
* @param int|null $uid
* @return null
* @see \Friendica\Core\Theme::getThemeColor()
* @TODO Implement this function
*/
function vier_get_theme_color(int $uid = null)
{
return null;
}