X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=view%2Ftheme%2Fvier%2Fstyle.php;h=74975893ce8ac6d17a288a2562d94ee58f6cfdad;hb=59268c600cc93591006b7f0f0e9de3a0344e7d4f;hp=160b1f94c97e022db09f445d0419dc77502bae8a;hpb=b348692a47e4927306482fd341e79497778eb9ff;p=friendica.git diff --git a/view/theme/vier/style.php b/view/theme/vier/style.php index 160b1f94c9..74975893ce 100644 --- a/view/theme/vier/style.php +++ b/view/theme/vier/style.php @@ -1,44 +1,57 @@ - - . + * + */ + +use Friendica\Core\Logger; +use Friendica\DI; +use Friendica\Network\HTTPException\NotModifiedException; + +/* + * 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'; + +if (DI::mode()->has(\Friendica\App\Mode::MAINTENANCEDISABLED)) { + $uid = $_REQUEST['puid'] ?? 0; + + $style = DI::pConfig()->get($uid, 'vier', 'style', DI::config()->get('vier', 'style', $style)); } -$stylemodified = filemtime($stylecssfile); -$stylecss .= file_get_contents($stylecssfile); - -if ($stylemodified > $modified) - $modified = $stylemodified; - +$stylecss = ''; +$modified = ''; + +$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); @@ -48,16 +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; -