fuc/src/Controllers/User/DocsController.php
2025-02-23 13:30:57 +08:00

56 lines
1.4 KiB
PHP
Executable File

<?php
declare(strict_types=1);
namespace App\Controllers\User;
use App\Controllers\BaseController;
use App\Models\Config;
use App\Models\Docs;
use Exception;
use Psr\Http\Message\ResponseInterface;
use Slim\Http\Response;
use Slim\Http\ServerRequest;
final class DocsController extends BaseController
{
/**
* @throws Exception
*/
public function index(ServerRequest $request, Response $response, array $args): ResponseInterface
{
if (! Config::obtain('display_docs') ||
(Config::obtain('display_docs_only_for_paid_user') && $this->user->class === 0)) {
return $response->withRedirect('/user');
}
$docs = (new Docs())->orderBy('id', 'desc')->get();
return $response->write(
$this->view()
->assign('docs', $docs)
->fetch('user/docs/index.tpl')
);
}
/**
* @throws Exception
*/
public function detail(ServerRequest $request, Response $response, array $args): ResponseInterface
{
if (! Config::obtain('display_docs') ||
(Config::obtain('display_docs_only_for_paid_user') && $this->user->class === 0)) {
return $response->withRedirect('/user');
}
$id = $args['id'];
$doc = (new Docs())->find($id);
return $response->write(
$this->view()
->assign('doc', $doc)
->fetch('user/docs/view.tpl')
);
}
}