- v_front.php - API 추가 - General/GetFrontInfo - Global/GetGlobalMenu - DTO 추가 - MenuItem, MenuMulti, MenuSplit - 글로벌 메뉴 출력 방식 변경 - d_setting/GlobalMenu.php Reviewed-on: https://storage.hided.net/gitea/devsam/core/pulls/229
48 lines
910 B
PHP
48 lines
910 B
PHP
<?php
|
|
|
|
namespace sammo\API\Global;
|
|
|
|
use LDTO\DTO;
|
|
use sammo\APICacheResult;
|
|
use sammo\BaseAPI;
|
|
use sammo\GlobalMenu;
|
|
use sammo\Session;
|
|
|
|
class GetGlobalMenu extends BaseAPI
|
|
{
|
|
public function getRequiredSessionMode(): int
|
|
{
|
|
return self::NO_SESSION;
|
|
}
|
|
function validateArgs(): ?string
|
|
{
|
|
return null;
|
|
}
|
|
|
|
function launch(Session $session, ?\DateTimeInterface $modifiedSince, ?string $reqEtag)
|
|
{
|
|
if ($reqEtag !== null) {
|
|
$version = GlobalMenu::version;
|
|
if ($reqEtag == "v{$version}") {
|
|
return null;
|
|
}
|
|
}
|
|
return [
|
|
'result' => true,
|
|
'menu' => array_map(function (DTO $dto) {
|
|
return $dto->toArray();
|
|
}, GlobalMenu::getMenu()),
|
|
];
|
|
}
|
|
public function tryCache(): ?APICacheResult
|
|
{
|
|
$version = GlobalMenu::version;
|
|
return new APICacheResult(
|
|
null,
|
|
"v{$version}",
|
|
60 * 60 * 6,
|
|
true
|
|
);
|
|
}
|
|
}
|