X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=view%2Ftheme%2Fvier%2Fstyle.php;h=74975893ce8ac6d17a288a2562d94ee58f6cfdad;hb=07162e557db7447741b6bcfb71a3ccbb476aab43;hp=b1386ad7076dbebf7c48631b553251086a21fe00;hpb=a21f6135fcd8f0bfdb49de38a5ab4954d1784503;p=friendica.git diff --git a/view/theme/vier/style.php b/view/theme/vier/style.php index b1386ad707..74975893ce 100644 --- a/view/theme/vier/style.php +++ b/view/theme/vier/style.php @@ -1,42 +1,57 @@ . + * + */ -use Friendica\Core\Config; -use Friendica\Core\PConfig; +use Friendica\Core\Logger; +use Friendica\DI; +use Friendica\Network\HTTPException\NotModifiedException; -$uid = get_theme_uid(); +/* + * This script can be included when the maintenance mode is on, which requires us to avoid any config call and + * use the following hardcoded default + */ +$style = 'plus'; -$style = PConfig::get($uid, 'vier', 'style'); +if (DI::mode()->has(\Friendica\App\Mode::MAINTENANCEDISABLED)) { + $uid = $_REQUEST['puid'] ?? 0; -if ($style == "") - $style = Config::get('vier', 'style'); - -if ($style == "") - $style = "plus"; - -if ($style == "flat") - $stylecssfile = 'view/theme/vier/flat.css'; -else if ($style == "netcolour") - $stylecssfile = 'view/theme/vier/netcolour.css'; -else if ($style == "breathe") - $stylecssfile = 'view/theme/vier/breathe.css'; -else if ($style == "plus") - $stylecssfile = 'view/theme/vier/plus.css'; -else if ($style == "dark") - $stylecssfile = 'view/theme/vier/dark.css'; -else if ($style == "plusminus") - $stylecssfile = 'view/theme/vier/plusminus.css'; - -if (file_exists($THEMEPATH."//style.css")) { - $stylecss = file_get_contents($THEMEPATH."//style.css")."\n"; - $modified = filemtime($THEMEPATH."//style.css"); + $style = DI::pConfig()->get($uid, 'vier', 'style', DI::config()->get('vier', 'style', $style)); } -$stylemodified = filemtime($stylecssfile); -$stylecss .= file_get_contents($stylecssfile); +$stylecss = ''; +$modified = ''; -if ($stylemodified > $modified) - $modified = $stylemodified; +$style = \Friendica\Util\Strings::sanitizeFilePathItem($style); +foreach (['style', $style] as $file) { + $stylecssfile = $THEMEPATH . DIRECTORY_SEPARATOR . $file .'.css'; + if (file_exists($stylecssfile)) { + $stylecss .= file_get_contents($stylecssfile); + $stylemodified = filemtime($stylecssfile); + if ($stylemodified > $modified) { + $modified = $stylemodified; + } + } else { + Logger::warning('Missing CSS file', ['file' => $stylecssfile, 'uid' => $uid]); + } +} $modified = gmdate('r', $modified); $etag = md5($stylecss); @@ -46,15 +61,13 @@ header('Cache-Control: public'); header('ETag: "'.$etag.'"'); header('Last-Modified: '.$modified); -if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || isset($_SERVER['HTTP_IF_NONE_MATCH'])) { - +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(array('"', "-gzip"), array('', ''), + $cached_etag = str_replace(['"', "-gzip"], ['', ''], stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])); if (($cached_modified == $modified) && ($cached_etag == $etag)) { - header('HTTP/1.1 304 Not Modified'); - exit(); + throw new NotModifiedException(); } } echo $stylecss;