115 lines
3.7 KiB
PHP
115 lines
3.7 KiB
PHP
<?php declare(strict_types=1);
|
|
/**
|
|
* Hummingbird Anime List Client
|
|
*
|
|
* An API client for Kitsu to manage anime and manga watch lists
|
|
*
|
|
* PHP version 8.1
|
|
*
|
|
* @copyright 2015 - 2023 Timothy J. Warren <tim@timshome.page>
|
|
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
|
* @version 5.2
|
|
* @link https://git.timshomepage.net/timw4mail/HummingBirdAnimeClient
|
|
*/
|
|
|
|
namespace Aviat\AnimeClient;
|
|
|
|
$whose = $_->config->get('whose_list') . "'s ";
|
|
$lastSegment = $_->lastSegment();
|
|
$extraSegment = $lastSegment === 'list' ? '/list' : '';
|
|
$hasAnime = str_contains($GLOBALS['_SERVER']['REQUEST_URI'], 'anime');
|
|
$hasManga = str_contains($GLOBALS['_SERVER']['REQUEST_URI'], 'manga');
|
|
|
|
?>
|
|
<div id="main-nav" class="flex flex-align-end flex-wrap">
|
|
<span class="flex-no-wrap grow-1">
|
|
<?php if( ! str_contains($route_path, 'collection')): ?>
|
|
<?= $_->h->a(
|
|
$_->defaultUrl($url_type),
|
|
$whose . ucfirst($url_type) . ' List',
|
|
['aria-current'=> 'page']
|
|
) ?>
|
|
<?php if($_->config->get("show_{$url_type}_collection")): ?>
|
|
[<?= $_->h->a(
|
|
$_->urlFromRoute("{$url_type}.collection.view") . $extraSegment,
|
|
ucfirst($url_type) . ' Collection'
|
|
) ?>]
|
|
<?php endif ?>
|
|
<?php if($_->config->get("show_{$other_type}_collection")): ?>
|
|
[<?= $_->h->a(
|
|
$_->urlFromRoute("{$other_type}.collection.view") . $extraSegment,
|
|
ucfirst($other_type) . ' Collection'
|
|
) ?>]
|
|
<?php endif ?>
|
|
[<?= $_->h->a(
|
|
$_->defaultUrl($other_type) . $extraSegment,
|
|
ucfirst($other_type) . ' List'
|
|
) ?>]
|
|
<?php else: ?>
|
|
<?= $_->h->a(
|
|
$_->urlFromRoute("{$url_type}.collection.view") . $extraSegment,
|
|
$whose . ucfirst($url_type) . ' Collection',
|
|
['aria-current'=> 'page']
|
|
) ?>
|
|
<?php if($_->config->get("show_{$other_type}_collection")): ?>
|
|
[<?= $_->h->a(
|
|
$_->urlFromRoute("{$other_type}.collection.view") . $extraSegment,
|
|
ucfirst($other_type) . ' Collection'
|
|
) ?>]
|
|
<?php endif ?>
|
|
[<?= $_->h->a($_->defaultUrl('anime') . $extraSegment, 'Anime List') ?>]
|
|
[<?= $_->h->a($_->defaultUrl('manga') . $extraSegment, 'Manga List') ?>]
|
|
<?php endif ?>
|
|
<?php if ($_->isAuthenticated() && $_->config->get(['cache', 'driver']) !== 'null'): ?>
|
|
<span class="flex-no-wrap small-font">
|
|
<button type="button" class="js-clear-cache user-btn">Clear API Cache</button>
|
|
</span>
|
|
<?php endif ?>
|
|
</span>
|
|
|
|
<span class="flex-no-wrap small-font">[<?= $_->h->a(
|
|
$_->urlFromRoute('default_user_info'),
|
|
'About '. $_->config->get('whose_list')
|
|
) ?>]</span>
|
|
|
|
<?php if ($_->isAuthenticated()): ?>
|
|
<span class="flex-no-wrap small-font">
|
|
<?= $_->h->a(
|
|
$_->urlFromRoute('settings'),
|
|
'Settings',
|
|
['class' => 'bracketed']
|
|
) ?>
|
|
</span>
|
|
<span class="flex-no-wrap small-font">
|
|
<?= $_->h->a(
|
|
$_->urlFromRoute('logout'),
|
|
'Logout',
|
|
['class' => 'bracketed']
|
|
) ?>
|
|
</span>
|
|
<?php else: ?>
|
|
<span class="flex-no-wrap small-font">
|
|
[<?= $_->h->a($_->urlFromRoute('login'), "{$whose} Login") ?>]
|
|
</span>
|
|
<?php endif ?>
|
|
</div>
|
|
<?php if ($_->isViewPage() && ($hasAnime || $hasManga)): ?>
|
|
<nav>
|
|
<?= $_->h->menu($menu_name) ?>
|
|
<?php if (stripos($GLOBALS['_SERVER']['REQUEST_URI'], 'history') === FALSE): ?>
|
|
<br />
|
|
<ul>
|
|
<?php $currentView = Util::eq('list', $lastSegment) ? 'list' : 'cover' ?>
|
|
<li class="<?= Util::isNotSelected('list', $lastSegment) ?>">
|
|
<a aria-current="<?= Util::ariaCurrent($currentView === 'cover') ?>"
|
|
href="<?= $_->urlFromPath($route_path) ?>">Cover View</a>
|
|
</li>
|
|
<li class="<?= Util::isSelected('list', $lastSegment) ?>">
|
|
<a aria-current="<?= Util::ariaCurrent($currentView === 'list') ?>"
|
|
href="<?= $_->urlFromPath("{$route_path}/list") ?>">List View</a>
|
|
</li>
|
|
</ul>
|
|
<?php endif ?>
|
|
</nav>
|
|
<?php endif ?>
|