AzuraCast/templates/partials/bodyjs.phtml

48 lines
1.4 KiB
PHTML

<?php
/** @var App\Customization $customization */
/** @var Psr\Http\Message\RequestInterface $request */
$localeObj = $request->getAttribute(App\Http\ServerRequest::ATTR_LOCALE);
if (!($localeObj instanceof App\Enums\SupportedLocales)) {
$localeObj = App\Enums\SupportedLocales::default();
}
$locale = $localeObj->getLocaleWithoutEncoding();
$localeShort = substr($locale, 0, 2);
$localeWithDashes = str_replace('_', '-', $locale);
// User profile-specific 24-hour display setting.
$userObj = $request->getAttribute(App\Http\ServerRequest::ATTR_USER);
$show24Hours = ($userObj instanceof App\Entity\User)
? $userObj->getShow24HourTime()
: null;
$timeConfig = new \stdClass();
if (null !== $show24Hours) {
$timeConfig->hour12 = !$show24Hours;
}
// CSRF token
$csrf = null;
if (($include_csrf ?? false) === true) {
$csrf = $request->getAttribute(App\Http\ServerRequest::ATTR_SESSION_CSRF);
if ($csrf instanceof App\Session\Csrf) {
$csrf = $csrf->generate(App\Middleware\Auth\ApiAuth::API_CSRF_NAMESPACE);
}
}
$app = [
'locale' => $locale,
'locale_short' => $localeShort,
'locale_with_dashes' => $localeWithDashes,
'time_config' => $timeConfig,
'api_csrf' => $csrf,
'enable_advanced_features' => $customization->enableAdvancedFeatures(),
];
?>
<script type="text/javascript">
var App = <?=json_encode($app, JSON_THROW_ON_ERROR) ?>;
</script>