Add Clear cache to Admin\Maintenance page
This commit is contained in:
parent
3546bc3eac
commit
68d8e27396
6 changed files with 116 additions and 2 deletions
app
Controllers
Models/Pages/Admin
lang
templates/admin
public/style/ForkBB
|
@ -754,6 +754,12 @@ class Routing
|
|||
'AdminMaintenance:rebuild',
|
||||
'AdminRebuildIndex'
|
||||
);
|
||||
$r->add(
|
||||
$r::PST,
|
||||
'/admin/maintenance/clear',
|
||||
'AdminMaintenance:clearCache',
|
||||
'AdminMaintenanceClear'
|
||||
);
|
||||
$r->add(
|
||||
$r::GET,
|
||||
'/admin/logs',
|
||||
|
|
|
@ -15,6 +15,7 @@ use ForkBB\Models\Page;
|
|||
use ForkBB\Models\Pages\Admin;
|
||||
use ForkBB\Models\Config\Config;
|
||||
use function \ForkBB\__;
|
||||
use RuntimeException;
|
||||
|
||||
class Maintenance extends Admin
|
||||
{
|
||||
|
@ -56,6 +57,7 @@ class Maintenance extends Admin
|
|||
$this->aIndex = 'maintenance';
|
||||
$this->formMaintenance = $this->formMaintenance($config);
|
||||
$this->formRebuild = $this->formRebuild();
|
||||
$this->formClearCache = $this->formClearCache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
@ -118,7 +120,7 @@ class Maintenance extends Admin
|
|||
],
|
||||
],
|
||||
'indx' => [
|
||||
'legend' => 'Rebuild index head',
|
||||
'legend' => 'Rebuilding search index',
|
||||
'fields' => [
|
||||
'limit' => [
|
||||
'type' => 'number',
|
||||
|
@ -162,6 +164,39 @@ class Maintenance extends Admin
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Подготавливает массив данных для формы
|
||||
*/
|
||||
protected function formClearCache(): array
|
||||
{
|
||||
$form = [
|
||||
'action' => $this->c->Router->link('AdminMaintenanceClear'),
|
||||
'hidden' => [
|
||||
'token' => $this->c->Csrf->create('AdminMaintenanceClear'),
|
||||
],
|
||||
'sets' => [
|
||||
'clear-cache' => [
|
||||
'legend' => 'Clearing the cache',
|
||||
'fields' => [
|
||||
'confirm' => [
|
||||
'type' => 'checkbox',
|
||||
'label' => 'Confirm action',
|
||||
'checked' => false,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'btns' => [
|
||||
'clear' => [
|
||||
'type' => 'submit',
|
||||
'value' => __('Clear'),
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Подстановка значения по умолчанию
|
||||
*/
|
||||
|
@ -239,4 +274,38 @@ class Maintenance extends Admin
|
|||
return $this->c->Redirect->page('AdminMaintenance')->message('Rebuilding index end', FORK_MESS_SUCC);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Пересчитывает количество сообщений пользователей
|
||||
*/
|
||||
public function clearCache(array $args, string $method): Page
|
||||
{
|
||||
$this->c->Lang->load('validator');
|
||||
$this->c->Lang->load('admin_maintenance');
|
||||
|
||||
$v = $this->c->Validator->reset()
|
||||
->addValidators([
|
||||
])->addRules([
|
||||
'confirm' => 'checkbox',
|
||||
'token' => 'token:AdminMaintenanceClear',
|
||||
])->addAliases([
|
||||
])->addArguments([
|
||||
])->addMessages([
|
||||
]);
|
||||
|
||||
if (
|
||||
! $v->validation($_POST)
|
||||
|| '1' !== $v->confirm
|
||||
) {
|
||||
return $this->c->Message->message(
|
||||
'1' !== $v->confirm ? 'No confirm redirect' : ($this->c->Csrf->getError() ?? 'Bad token')
|
||||
);
|
||||
}
|
||||
|
||||
if (true !== $this->c->Cache->clear()) {
|
||||
throw new RuntimeException('Unable to clear cache');
|
||||
}
|
||||
|
||||
return $this->c->Redirect->page('AdminMaintenance')->message('Clear cache redirect', FORK_MESS_SUCC);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ msgid "Rebuild index"
|
|||
msgstr "Rebuild index"
|
||||
|
||||
msgid "Rebuilding search index"
|
||||
msgstr "Rebuilding search index"
|
||||
msgstr "Rebuild search index"
|
||||
|
||||
msgid "Rebuilding index end"
|
||||
msgstr "Rebuilding index is over."
|
||||
|
@ -68,3 +68,15 @@ msgstr "The message that will be displayed to users when the board is in mainten
|
|||
|
||||
msgid "Default maintenance message"
|
||||
msgstr "The forums are temporarily down for maintenance. <b>Please try again in a few minutes.</b>"
|
||||
|
||||
msgid "Clear cache head"
|
||||
msgstr "Clear cache"
|
||||
|
||||
msgid "Clearing the cache"
|
||||
msgstr "Clear cache"
|
||||
|
||||
msgid "Clear"
|
||||
msgstr "Clear"
|
||||
|
||||
msgid "Clear cache redirect"
|
||||
msgstr "Board cache cleared."
|
||||
|
|
|
@ -68,3 +68,15 @@ msgstr "Сообщение, которое будет показываться
|
|||
|
||||
msgid "Default maintenance message"
|
||||
msgstr "Форум временно закрыт на обслуживание. <b>Пожалуйста, попробуйте зайти позже.</b>"
|
||||
|
||||
msgid "Clear cache head"
|
||||
msgstr "Очистка кэша"
|
||||
|
||||
msgid "Clearing the cache"
|
||||
msgstr "Очистка кэша"
|
||||
|
||||
msgid "Clear"
|
||||
msgstr "Очистить"
|
||||
|
||||
msgid "Clear cache redirect"
|
||||
msgstr "Кэш форума очищен."
|
||||
|
|
|
@ -12,6 +12,14 @@
|
|||
<div class="f-fdiv">
|
||||
@if ($form = $p->formRebuild)
|
||||
@include ('layouts/form')
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
<section id="fork-clcch" class="f-admin">
|
||||
<h2>{!! __('Clear cache head') !!}</h2>
|
||||
<div class="f-fdiv">
|
||||
@if ($form = $p->formClearCache)
|
||||
@include ('layouts/form')
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -1031,6 +1031,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
/****************************************/
|
||||
/* Админка/Обслуживание */
|
||||
/****************************************/
|
||||
#fork-clcch #id-dl-confirm > dt {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/****************************************/
|
||||
/* Админка/Провайдеры */
|
||||
/****************************************/
|
||||
|
|
Loading…
Add table
Reference in a new issue