console.log('.json_encode($obj).');'; } function get_page_header( ?string $page_title = null, bool $include_app_name = true, array $scripts = [] ): string { global $api; $greeting = ''; $logout_link = ''; $newpoll_class = ''; if ($api->isAuthenticated(false, true)) { $u = $api->getAuthorizedUser(); $greeting = 'Welcome, ' . ($u->name ?? '@'.$u->username); $logout_link = 'Logout'; } else { $newpoll_class = 'disabled'; $greeting = 'Login with pnut'; } $title = ''; if ($include_app_name) { $title = $api->app_name; } if (!empty($page_title)) { $title .= $include_app_name ? ' > ' : ''; $title .= $page_title; } $script_str = ''; foreach ($scripts as $script) { $script_str .= ''; } return ''.$title.'' . $script_str . '
' . '
' . file_get_contents(__DIR__.'/icons/home.svg') . 'Home
' . '
' . file_get_contents(__DIR__.'/icons/plus.svg') //TODO . 'New Poll
' . $greeting . '
' . $logout_link . '
'; } function get_page_footer() { $version = json_decode(file_get_contents(__DIR__ . '/composer.json'), true)['version']; return '
'; } function redirect($to) { header('Location: '.$to); die('' .''); } function get_source_set($user, int $base_size, int $max_scale = 3): string { $srcset_entries = [$user->getAvatarUrl($base_size)]; for ($s = 2; $s <= $max_scale; $s++) { $srcset_entries[] = $user->getAvatarUrl($base_size * $s) . ' ' . $s . 'x'; } return implode(', ', $srcset_entries); }