[frio] Remove legacy schemes

- [frio] Replace default scheme file by default scheme value
- [frio] Simplify frio theme settings
- [frio] Remove query string scheme setting
This commit is contained in:
Hypolite Petovan
2024-02-29 09:17:09 -05:00
parent 39d25b9699
commit 2c259c5c6f
6 changed files with 74 additions and 76 deletions
+54 -5
View File
@@ -37,15 +37,13 @@
use Friendica\DI;
use Friendica\Util\Strings;
require_once 'view/theme/frio/theme.php';
function get_scheme_info($scheme)
{
$theme = DI::app()->getCurrentTheme();
$themepath = 'view/theme/' . $theme . '/';
if (empty($scheme)) {
$scheme = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'scheme', DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'schema', '---'));
}
$scheme = Strings::sanitizeFilePathItem($scheme);
$scheme = Strings::sanitizeFilePathItem($scheme) ?: FRIO_DEFAULT_SCHEME;
$info = [
'name' => $scheme,
@@ -100,3 +98,54 @@ function get_scheme_info($scheme)
return $info;
}
function frio_scheme_get_list(): array
{
$schemes = [
'light' => DI::l10n()->t('Light'),
'dark' => DI::l10n()->t('Dark'),
'black' => DI::l10n()->t('Black'),
];
foreach (glob('view/theme/frio/scheme/*.php') ?: [] as $file) {
$scheme = basename($file, '.php');
if (!in_array($scheme, ['default', 'light', 'dark', 'black'])) {
$scheme_info = get_scheme_info($scheme);
$schemes[$scheme] = $scheme_info['name'] ?? ucfirst($scheme);
}
}
$schemes[FRIO_CUSTOM_SCHEME] = DI::l10n()->t('Custom');
return $schemes;
}
function frio_scheme_get_current()
{
$available = array_keys(frio_scheme_get_list());
$scheme = DI::config()->get('frio', 'scheme') ?: DI::config()->get('frio', 'schema');
if (!in_array($scheme, $available)) {
return FRIO_DEFAULT_SCHEME;
}
return $scheme;
}
function frio_scheme_get_current_for_user(int $uid)
{
$available = array_keys(frio_scheme_get_list());
$scheme =
DI::pConfig()->get($uid, 'frio', 'scheme') ?:
DI::pConfig()->get($uid, 'frio', 'schema') ?:
DI::config()->get('frio', 'scheme') ?:
DI::config()->get('frio', 'schema');
if (!in_array($scheme, $available)) {
return FRIO_DEFAULT_SCHEME;
}
return $scheme;
}