mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-03 11:55:52 +01:00
Optimize admin performance / caching
This commit is contained in:
@@ -91,9 +91,6 @@ class AdminPlugin extends Plugin
|
||||
|
||||
// Only activate admin if we're inside the admin path.
|
||||
if (substr($this->uri->route(), 0, strlen($this->base)) == $this->base) {
|
||||
// Disable system caching.
|
||||
$this->config->set('system.cache.enabled', false);
|
||||
|
||||
// Change login behavior.
|
||||
$this->config->set('plugins.login', $this->config->get('plugins.admin.login'));
|
||||
|
||||
@@ -239,10 +236,6 @@ class AdminPlugin extends Plugin
|
||||
'onTwigSiteVariables' => ['onTwigSiteVariables', 1000]
|
||||
]);
|
||||
|
||||
|
||||
// Disable system caching.
|
||||
$this->config->set('system.cache.enabled', false);
|
||||
|
||||
// Change login behavior.
|
||||
$this->config->set('plugins.login', $this->config->get('plugins.admin.login'));
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Grav\Plugin;
|
||||
|
||||
use Grav\Common\File\CompiledYamlFile;
|
||||
use Grav\Common\User\User;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Plugins;
|
||||
@@ -12,7 +13,7 @@ use Grav\Common\Data;
|
||||
use Grav\Common\GPM\Local\Packages as LocalPackages;
|
||||
use RocketTheme\Toolbox\File\File;
|
||||
use RocketTheme\Toolbox\File\LogFile;
|
||||
use RocketTheme\Toolbox\File\YamlFile;
|
||||
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
|
||||
use RocketTheme\Toolbox\Session\Message;
|
||||
use RocketTheme\Toolbox\Session\Session;
|
||||
use Symfony\Component\Yaml\Yaml;
|
||||
@@ -135,7 +136,7 @@ class Admin
|
||||
public function authenticate($form)
|
||||
{
|
||||
if (!$this->user->authenticated && isset($form['username']) && isset($form['password'])) {
|
||||
$file = YamlFile::instance(ACCOUNTS_DIR . $form['username'] . YAML_EXT);
|
||||
$file = CompiledYamlFile::instance(ACCOUNTS_DIR . $form['username'] . YAML_EXT);
|
||||
if ($file->exists()) {
|
||||
$user = new User($file->content());
|
||||
$user->authenticated = true;
|
||||
@@ -226,7 +227,7 @@ class Admin
|
||||
$config = $this->grav['config'];
|
||||
$obj = new Data\Data($config->get('system'), $blueprints);
|
||||
$obj->merge($post);
|
||||
$file = YamlFile::instance(USER_DIR . "config/{$type}.yaml");
|
||||
$file = CompiledYamlFile::instance(USER_DIR . "config/{$type}.yaml");
|
||||
$obj->file($file);
|
||||
$data[$type] = $obj;
|
||||
break;
|
||||
@@ -238,7 +239,7 @@ class Admin
|
||||
$config = $this->grav['config'];
|
||||
$obj = new Data\Data($config->get('site'), $blueprints);
|
||||
$obj->merge($post);
|
||||
$file = YamlFile::instance(USER_DIR . "config/{$type}.yaml");
|
||||
$file = CompiledYamlFile::instance(USER_DIR . "config/{$type}.yaml");
|
||||
$obj->file($file);
|
||||
$data[$type] = $obj;
|
||||
break;
|
||||
@@ -248,11 +249,17 @@ class Admin
|
||||
break;
|
||||
|
||||
default:
|
||||
/** @var UniformResourceLocator $locator */
|
||||
$locator = $this->grav['locator'];
|
||||
$filename = $locator->findResource("config://{$type}.yaml", true, true);
|
||||
$file = CompiledYamlFile::instance($filename);
|
||||
|
||||
if (preg_match('|plugins/|', $type)) {
|
||||
/** @var Plugins $plugins */
|
||||
$plugins = $this->grav['plugins'];
|
||||
$obj = $plugins->get(preg_replace('|plugins/|', '', $type));
|
||||
$obj->merge($post);
|
||||
$obj->file($file);
|
||||
|
||||
$data[$type] = $obj;
|
||||
} elseif (preg_match('|themes/|', $type)) {
|
||||
@@ -260,6 +267,7 @@ class Admin
|
||||
$themes = $this->grav['themes'];
|
||||
$obj = $themes->get(preg_replace('|themes/|', '', $type));
|
||||
$obj->merge($post);
|
||||
$obj->file($file);
|
||||
|
||||
$data[$type] = $obj;
|
||||
} else {
|
||||
|
||||
@@ -305,6 +305,13 @@ class AdminController
|
||||
$this->admin->setMessage('Successfully saved');
|
||||
}
|
||||
|
||||
if ($this->view != 'pages') {
|
||||
// Force configuration reload.
|
||||
/** @var Config $config */
|
||||
$config = $this->grav['config'];
|
||||
$config->reload();
|
||||
}
|
||||
|
||||
// Redirect to new location.
|
||||
if ($obj instanceof Page\Page && $obj->route() != $this->admin->route()) {
|
||||
$this->setRedirect($this->view . '/' . $obj->route());
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<h1><i class="fa fa-fw fa-plug"></i> Plugins</h1>
|
||||
{% else %}
|
||||
<div class="button-bar">
|
||||
<button class="button" type="submit" name="task" value="add"><i class="fa fa-check"></i> Save</button>
|
||||
<button class="button" type="submit" name="task" value="save" form="blueprints"><i class="fa fa-check"></i> Save</button>
|
||||
</div>
|
||||
<h1><i class="fa fa-fw fa-plug"></i> Plugin: {{ plugin.name|e }}</h1>
|
||||
{% endif %}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<h1><i class="fa fa-fw fa-plug"></i> Themes</h1>
|
||||
{% else %}
|
||||
<div class="button-bar">
|
||||
<button class="button" type="submit" name="task" value="add"><i class="fa fa-check"></i> Save</button>
|
||||
<button class="button" type="submit" name="task" value="save" form="blueprints"><i class="fa fa-check"></i> Save</button>
|
||||
</div>
|
||||
<h1><i class="fa fa-fw fa-plug"></i> Theme: {{ theme.name|e }}</h1>
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user