X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=view%2Ftheme%2Ffrio%2Fstyle.php;h=c39e672dfa4dd74781ecc1c9d23e54496861dc10;hb=2064470b1309134e46f137bf1f77c63a183b17e0;hp=811db092a21e7fad932aeecb4269d2ad48f63594;hpb=0f82c3348dccbc9f3ce5023e14d042a4113232ac;p=friendica.git diff --git a/view/theme/frio/style.php b/view/theme/frio/style.php index 811db092a2..c39e672dfa 100644 --- a/view/theme/frio/style.php +++ b/view/theme/frio/style.php @@ -2,60 +2,53 @@ /** * @file view/theme/frio/style.php */ + use Friendica\Core\Config; use Friendica\Core\PConfig; -use Friendica\Model\Profile; +use Friendica\Util\Strings; require_once 'view/theme/frio/php/PHPColors/Color.php'; +$scheme = ''; $schemecss = ''; $schemecssfile = false; $scheme_modified = 0; -if ($a->module !== 'install') { - // Get the UID of the profile owner. - $uid = Profile::getThemeUid(); - if ($uid) { - PConfig::load($uid, 'frio'); - - // Load the profile owners pconfig. - $scheme = PConfig::get($uid, 'frio', 'scheme'); - $nav_bg = PConfig::get($uid, 'frio', 'nav_bg'); - $nav_icon_color = PConfig::get($uid, 'frio', 'nav_icon_color'); - $link_color = PConfig::get($uid, 'frio', 'link_color'); - $background_color = PConfig::get($uid, 'frio', 'background_color'); - $contentbg_transp = PConfig::get($uid, 'frio', 'contentbg_transp'); - $background_image = PConfig::get($uid, 'frio', 'background_image'); - $bg_image_option = PConfig::get($uid, 'frio', 'bg_image_option'); - $modified = PConfig::get($uid, 'frio', 'css_modified'); - - // There is maybe the case that the user did never modify the theme settings. - // In this case we store the present time. - if (empty($modified)) { - PConfig::set($uid, 'frio', 'css_modified', time()); - } - } else { - Config::load('frio'); - - // Load frios system config. - $scheme = Config::get('frio', 'scheme'); - $nav_bg = Config::get('frio', 'nav_bg'); - $nav_icon_color = Config::get('frio', 'nav_icon_color'); - $link_color = Config::get('frio', 'link_color'); - $background_color = Config::get('frio', 'background_color'); - $contentbg_transp = Config::get('frio', 'contentbg_transp'); - $background_image = Config::get('frio', 'background_image'); - $bg_image_option = Config::get('frio', 'bg_image_option'); - $login_bg_image = Config::get('frio', 'login_bg_image'); - $login_bg_color = Config::get('frio', 'login_bg_color'); - $modified = Config::get('frio', 'css_modified'); - - // There is maybe the case that the user did never modify the theme settings. - // In this case we store the present time. - if (empty($modified)) { - Config::set('frio', 'css_modified', time()); - } - } +Config::load('frio'); + +// Default to hard-coded values for empty settings +$scheme = Config::get('frio', 'scheme', Config::get('frio', 'schema')); +$nav_bg = Config::get('frio', 'nav_bg') ?: '#708fa0'; +$nav_icon_color = Config::get('frio', 'nav_icon_color') ?: '#ffffff'; +$link_color = Config::get('frio', 'link_color') ?: '#6fdbe8'; +$background_color = Config::get('frio', 'background_color') ?: '#ededed'; +$contentbg_transp = Config::get('frio', 'contentbg_transp') ?: ''; +$background_image = Config::get('frio', 'background_image') ?: 'img/none.png'; +$bg_image_option = Config::get('frio', 'bg_image_option') ?: ''; +$login_bg_image = Config::get('frio', 'login_bg_image') ?: ''; +$login_bg_color = Config::get('frio', 'login_bg_color') ?: ''; +$modified = Config::get('frio', 'css_modified') ?: time(); + +if (!$login_bg_image && !$login_bg_color) { + $login_bg_image = 'img/login_bg.jpg'; +} +$login_bg_color = $login_bg_color ?: '#ededed'; + +// Get the UID of the profile owner. +$uid = $_REQUEST['puid'] ?? 0; +if ($uid) { + PConfig::load($uid, 'frio'); + + // Only override display settings that have actually been set + $scheme = PConfig::get($uid, 'frio', 'scheme', PConfig::get($uid, 'frio', 'schema')) ?: $scheme; + $nav_bg = PConfig::get($uid, 'frio', 'nav_bg') ?: $nav_bg; + $nav_icon_color = PConfig::get($uid, 'frio', 'nav_icon_color') ?: $nav_icon_color; + $link_color = PConfig::get($uid, 'frio', 'link_color') ?: $link_color; + $background_color = PConfig::get($uid, 'frio', 'background_color') ?: $background_color; + $contentbg_transp = PConfig::get($uid, 'frio', 'contentbg_transp') ?: $contentbg_transp; + $background_image = PConfig::get($uid, 'frio', 'background_image') ?: $background_image; + $bg_image_option = PConfig::get($uid, 'frio', 'bg_image_option') ?: $bg_image_option; + $modified = PConfig::get($uid, 'frio', 'css_modified') ?: $modified; } // Now load the scheme. If a value is changed above, we'll keep the settings @@ -63,13 +56,11 @@ if ($a->module !== 'install') { // 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 (x($_REQUEST, 'scheme')) { +if (!empty($_REQUEST['scheme'])) { $scheme = $_REQUEST['scheme']; } -// Sanitize the data. -$scheme = !empty($scheme) ? basename($scheme) : ''; - +$scheme = Strings::sanitizeFilePathItem($scheme); if (($scheme) && ($scheme != '---')) { if (file_exists('view/theme/frio/scheme/' . $scheme . '.php')) { @@ -94,23 +85,6 @@ if (!$scheme) { } } -//Set some defaults - we have to do this after pulling owner settings, and we have to check for each setting -//individually. If we don't, we'll have problems if a user has set one, but not all options. -$nav_bg = (empty($nav_bg) ? '#708fa0' : $nav_bg); -$nav_icon_color = (empty($nav_icon_color) ? '#fff' : $nav_icon_color); -$link_color = (empty($link_color) ? '#6fdbe8' : $link_color); -$background_color = (empty($background_color) ? '#ededed' : $background_color); -// The background image can not be empty. So we use a dummy jpg if no image was set. -$background_image = (empty($background_image) ? 'img/none.jpg' : $background_image); -$modified = (empty($modified) ? time() : $modified); - - -// set a default login bg image if no custom image and no custom bg color are set. -if (empty($login_bg_image) && empty($login_bg_color)) { - $login_bg_image = 'img/login_bg.jpg'; -} -$login_bg_color = (empty($login_bg_color) ? '#ededed' : $login_bg_color); - $contentbg_transp = ((isset($contentbg_transp) && $contentbg_transp != '') ? $contentbg_transp : 100); // Calculate some colors in dependance of existing colors. @@ -152,22 +126,28 @@ if (!isset($link_hover_color)) { if (!isset($bg_image_option)) { $bg_image_option = null; } + switch ($bg_image_option) { case 'stretch': $background_size_img = '100%'; + $background_repeat = 'no-repeat'; break; case 'cover': $background_size_img = 'cover'; + $background_repeat = 'no-repeat'; break; case 'repeat': $background_size_img = 'auto'; + $background_repeat = 'repeat'; break; case 'contain': $background_size_img = 'contain'; + $background_repeat = 'repeat'; break; default: $background_size_img = 'auto'; + $background_repeat = 'no-repeat'; break; } @@ -187,6 +167,7 @@ $options = [ '$contentbg_transp' => $contentbg_transp, '$background_image' => $background_image, '$background_size_img' => $background_size_img, + '$background_repeat' => $background_repeat, '$login_bg_image' => $login_bg_image, '$login_bg_color' => $login_bg_color ]; @@ -217,7 +198,8 @@ header('ETag: "' . $etag . '"'); header('Last-Modified: ' . $modified); // Only send the CSS file if it was changed. -if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || isset($_SERVER['HTTP_IF_NONE_MATCH'])) { +/// @todo Check if this works at all (possibly clients are sending only the one or the other header) - compare with mod/photo.php +if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && isset($_SERVER['HTTP_IF_NONE_MATCH'])) { $cached_modified = gmdate('r', strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])); $cached_etag = str_replace(['"', '-gzip'], ['', ''], stripslashes($_SERVER['HTTP_IF_NONE_MATCH']));