mirror of
https://github.com/friendica/friendica
synced 2024-11-17 22:23:41 +00:00
[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:
parent
39d25b9699
commit
2c259c5c6f
6 changed files with 74 additions and 76 deletions
|
@ -24,6 +24,7 @@ use Friendica\Core\Renderer;
|
|||
use Friendica\DI;
|
||||
|
||||
require_once 'view/theme/frio/php/Image.php';
|
||||
require_once 'view/theme/frio/php/scheme.php';
|
||||
|
||||
function theme_post(App $a)
|
||||
{
|
||||
|
@ -93,14 +94,7 @@ function theme_content(): string
|
|||
}
|
||||
|
||||
$arr = [
|
||||
'scheme' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'scheme',
|
||||
DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'schema',
|
||||
DI::config()->get('frio', 'scheme',
|
||||
DI::config()->get('frio', 'schema')
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
'scheme' => frio_scheme_get_current_for_user(DI::userSession()->getLocalUserId()),
|
||||
'share_string' => '',
|
||||
'scheme_accent' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'scheme_accent' , DI::config()->get('frio', 'scheme_accent')),
|
||||
'nav_bg' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'nav_bg' , DI::config()->get('frio', 'nav_bg')),
|
||||
|
@ -123,8 +117,8 @@ function theme_admin(): string
|
|||
}
|
||||
|
||||
$arr = [
|
||||
'scheme' => DI::config()->get('frio', 'scheme', DI::config()->get('frio', 'schema')),
|
||||
'scheme_accent' => DI::config()->get('frio', 'scheme_accent'),
|
||||
'scheme' => frio_scheme_get_current(),
|
||||
'scheme_accent' => DI::config()->get('frio', 'scheme_accent') ?: FRIO_SCHEME_ACCENT_BLUE,
|
||||
'share_string' => '',
|
||||
'nav_bg' => DI::config()->get('frio', 'nav_bg'),
|
||||
'nav_icon_color' => DI::config()->get('frio', 'nav_icon_color'),
|
||||
|
@ -149,33 +143,15 @@ function frio_form($arr)
|
|||
$scheme_info = get_scheme_info($arr['scheme']);
|
||||
$disable = $scheme_info['overwrites'];
|
||||
|
||||
$schemes = [
|
||||
'light' => DI::l10n()->t('Light (Accented)'),
|
||||
'dark' => DI::l10n()->t('Dark (Accented)'),
|
||||
'black' => DI::l10n()->t('Black (Accented)'),
|
||||
];
|
||||
|
||||
$legacy_schemes = [];
|
||||
foreach (glob('view/theme/frio/scheme/*.php') ?: [] as $file) {
|
||||
$scheme = basename($file, '.php');
|
||||
if (!in_array($scheme, ['default', 'light', 'dark', 'black'])) {
|
||||
$scheme_name = ucfirst($scheme);
|
||||
$legacy_schemes[$scheme] = $scheme_name;
|
||||
}
|
||||
}
|
||||
|
||||
$background_image_help = '<strong>' . DI::l10n()->t('Note') . ': </strong>' . DI::l10n()->t('Check image permissions if all users are allowed to see the image');
|
||||
|
||||
$t = Renderer::getMarkupTemplate('theme_settings.tpl');
|
||||
$ctx = [
|
||||
'$submit' => DI::l10n()->t('Submit'),
|
||||
'$title' => DI::l10n()->t('Theme settings'),
|
||||
'$custom' => DI::l10n()->t('Custom'),
|
||||
'$legacy' => DI::l10n()->t('Legacy'),
|
||||
'$accented' => DI::l10n()->t('Accented'),
|
||||
'$scheme' => ['frio_scheme', DI::l10n()->t('Select color scheme'), $arr['scheme'], $schemes, $legacy_schemes],
|
||||
'$scheme_accent' => !$scheme_info['accented'] ? '' : ['frio_scheme_accent', DI::l10n()->t('Select scheme accent'), $arr['scheme_accent'], ['blue' => DI::l10n()->t('Blue'), 'red' => DI::l10n()->t('Red'), 'purple' => DI::l10n()->t('Purple'), 'green' => DI::l10n()->t('Green'), 'pink' => DI::l10n()->t('Pink')]],
|
||||
'$share_string' => $arr['scheme'] != '---' ? '' : ['frio_share_string', DI::l10n()->t('Copy or paste schemestring'), $arr['share_string'], DI::l10n()->t('You can copy this string to share your theme with others. Pasting here applies the schemestring'), false, false],
|
||||
'$scheme' => ['frio_scheme', DI::l10n()->t('Appearance'), $arr['scheme'], frio_scheme_get_list()],
|
||||
'$scheme_accent' => !$scheme_info['accented'] ? '' : ['frio_scheme_accent', DI::l10n()->t('Accent color'), $arr['scheme_accent'], ['blue' => DI::l10n()->t('Blue'), 'red' => DI::l10n()->t('Red'), 'purple' => DI::l10n()->t('Purple'), 'green' => DI::l10n()->t('Green'), 'pink' => DI::l10n()->t('Pink')]],
|
||||
'$share_string' => $arr['scheme'] != FRIO_CUSTOM_SCHEME ? '' : ['frio_share_string', DI::l10n()->t('Copy or paste schemestring'), $arr['share_string'], DI::l10n()->t('You can copy this string to share your theme with others. Pasting here applies the schemestring'), false, false],
|
||||
'$nav_bg' => array_key_exists('nav_bg', $disable) ? '' : ['frio_nav_bg', DI::l10n()->t('Navigation bar background color'), $arr['nav_bg'], '', false],
|
||||
'$nav_icon_color' => array_key_exists('nav_icon_color', $disable) ? '' : ['frio_nav_icon_color', DI::l10n()->t('Navigation bar icon color '), $arr['nav_icon_color'], '', false],
|
||||
'$link_color' => array_key_exists('link_color', $disable) ? '' : ['frio_link_color', DI::l10n()->t('Link color'), $arr['link_color'], '', false],
|
||||
|
|
|
@ -29,6 +29,7 @@ use Friendica\Model\Profile;
|
|||
|
||||
require_once 'view/theme/frio/theme.php';
|
||||
require_once 'view/theme/frio/php/frio_boot.php';
|
||||
require_once 'view/theme/frio/php/scheme.php';
|
||||
|
||||
// $minimal = is_modal();
|
||||
if (!isset($minimal)) {
|
||||
|
@ -59,8 +60,8 @@ $is_singleuser_class = $is_singleuser ? "is-singleuser" : "is-not-singleuser";
|
|||
// Add the theme color meta
|
||||
// It makes mobile Chrome UI match Frio's top bar color.
|
||||
$uid = Profile::getThemeUid($a);
|
||||
$scheme = DI::pConfig()->get($uid, 'frio', 'scheme', DI::pConfig()->get($uid, 'frio', 'schema'));
|
||||
if ($scheme && is_string($scheme) && $scheme != '---') {
|
||||
$scheme = frio_scheme_get_current_for_user($uid);
|
||||
if ($scheme != FRIO_CUSTOM_SCHEME) {
|
||||
if (file_exists('view/theme/frio/scheme/' . $scheme . '.php')) {
|
||||
$schemefile = 'view/theme/frio/scheme/' . $scheme . '.php';
|
||||
$scheme_accent =
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -24,10 +24,9 @@ use Friendica\Network\HTTPException\NotModifiedException;
|
|||
use Friendica\Util\Strings;
|
||||
|
||||
require_once 'view/theme/frio/theme.php';
|
||||
require_once 'view/theme/frio/php/scheme.php';
|
||||
require_once 'view/theme/frio/php/PHPColors/Color.php';
|
||||
|
||||
$scheme = '';
|
||||
$schemecss = '';
|
||||
$schemecssfile = false;
|
||||
$scheme_modified = 0;
|
||||
|
||||
|
@ -35,7 +34,7 @@ $scheme_modified = 0;
|
|||
* This script can be included when the maintenance mode is on, which requires us to avoid any config call and
|
||||
* use the following hardcoded defaults
|
||||
*/
|
||||
$scheme = null;
|
||||
$scheme = FRIO_DEFAULT_SCHEME;
|
||||
$scheme_accent = FRIO_SCHEME_ACCENT_BLUE;
|
||||
$nav_bg = '#708fa0';
|
||||
$nav_icon_color = '#ffffff';
|
||||
|
@ -52,7 +51,7 @@ if (DI::mode()->has(\Friendica\App\Mode::MAINTENANCEDISABLED)) {
|
|||
DI::config()->reload();
|
||||
|
||||
// Default to hard-coded values for empty settings
|
||||
$scheme = DI::config()->get('frio', 'scheme', DI::config()->get('frio', 'schema'));
|
||||
$scheme = frio_scheme_get_current();
|
||||
$scheme_accent = DI::config()->get('frio', 'scheme_accent') ?: $scheme_accent;
|
||||
$nav_bg = DI::config()->get('frio', 'nav_bg') ?: $nav_bg;
|
||||
$nav_icon_color = DI::config()->get('frio', 'nav_icon_color') ?: $nav_icon_color;
|
||||
|
@ -71,7 +70,7 @@ if (DI::mode()->has(\Friendica\App\Mode::MAINTENANCEDISABLED)) {
|
|||
DI::pConfig()->load($uid, 'frio');
|
||||
|
||||
// Only override display settings that have actually been set
|
||||
$scheme = DI::pConfig()->get($uid, 'frio', 'scheme', DI::pConfig()->get($uid, 'frio', 'schema')) ?: $scheme;
|
||||
$scheme = frio_scheme_get_current_for_user($uid);
|
||||
$scheme_accent = DI::pConfig()->get($uid, 'frio', 'scheme_accent') ?: $scheme_accent;
|
||||
$nav_bg = DI::pConfig()->get($uid, 'frio', 'nav_bg') ?: $nav_bg;
|
||||
$nav_icon_color = DI::pConfig()->get($uid, 'frio', 'nav_icon_color') ?: $nav_icon_color;
|
||||
|
@ -89,18 +88,9 @@ if (!$login_bg_image && !$login_bg_color) {
|
|||
}
|
||||
$login_bg_color = $login_bg_color ?: '#ededed';
|
||||
|
||||
// Now load the scheme. If a value is changed above, we'll keep the settings
|
||||
// If not, we'll keep those defined by the scheme
|
||||
// Setting $scheme to '' wasn't working for some reason, so we'll check it's
|
||||
// not --- like the mobile theme does instead.
|
||||
// Allow layouts to over-ride the scheme.
|
||||
if (!empty($_REQUEST['scheme'])) {
|
||||
$scheme = $_REQUEST['scheme'];
|
||||
}
|
||||
$scheme = Strings::sanitizeFilePathItem($scheme);
|
||||
|
||||
$scheme = Strings::sanitizeFilePathItem($scheme ?? '');
|
||||
|
||||
if ($scheme && ($scheme != '---')) {
|
||||
if ($scheme != FRIO_CUSTOM_SCHEME) {
|
||||
if (file_exists('view/theme/frio/scheme/' . $scheme . '.php')) {
|
||||
$schemefile = 'view/theme/frio/scheme/' . $scheme . '.php';
|
||||
require_once $schemefile;
|
||||
|
@ -110,19 +100,6 @@ if ($scheme && ($scheme != '---')) {
|
|||
}
|
||||
}
|
||||
|
||||
// If we haven't got a scheme, load the default. We shouldn't touch this - we
|
||||
// should leave it for admins to define for themselves.
|
||||
// default.php and default.css MUST be symlinks to existing scheme files.
|
||||
if (!$scheme) {
|
||||
if (file_exists('view/theme/frio/scheme/default.php')) {
|
||||
$schemefile = 'view/theme/frio/scheme/default.php';
|
||||
require_once $schemefile;
|
||||
}
|
||||
if (file_exists('view/theme/frio/scheme/default.css')) {
|
||||
$schemecssfile = 'view/theme/frio/scheme/default.css';
|
||||
}
|
||||
}
|
||||
|
||||
$contentbg_transp = $contentbg_transp != '' ? $contentbg_transp : 100;
|
||||
|
||||
// Calculate some colors in dependance of existing colors.
|
||||
|
|
|
@ -4,17 +4,9 @@
|
|||
<div class="form-group field select">
|
||||
<label for="id_{{$scheme.0}}">{{$scheme.1}}</label>
|
||||
<select name="{{$scheme.0}}" id="id_{{$scheme.0}}" class="form-control">
|
||||
<option value="---" {{if '---' == $scheme.2}}selected="selected"{{/if}}>{{$custom}}</option>
|
||||
<optgroup label="{{$accented}}">
|
||||
{{foreach $scheme.3 as $value => $label}}
|
||||
<option value="{{$value}}" {{if $value == $scheme.2}}selected="selected"{{/if}}>{{$label}}</option>
|
||||
<option value="{{$value}}" {{if $value == $scheme.2}}selected="selected"{{/if}}>{{$label}}</option>
|
||||
{{/foreach}}
|
||||
</optgroup>
|
||||
<optgroup label="{{$legacy}}">
|
||||
{{foreach $scheme.4 as $value => $label}}
|
||||
<option value="{{$value}}" {{if $value == $scheme.2}}selected="selected"{{/if}}>{{$label}}</option>
|
||||
{{/foreach}}
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -41,6 +41,9 @@ const FRIO_SCHEME_ACCENT_PURPLE = '#a54bad';
|
|||
const FRIO_SCHEME_ACCENT_GREEN = '#218f39';
|
||||
const FRIO_SCHEME_ACCENT_PINK = '#d900a9';
|
||||
|
||||
const FRIO_DEFAULT_SCHEME = 'light';
|
||||
const FRIO_CUSTOM_SCHEME = '---';
|
||||
|
||||
/*
|
||||
* This script can be included even when the app is in maintenance mode which requires us to avoid any config call
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue