mirror of
https://github.com/getgrav/grav.git
synced 2026-02-14 18:47:42 +01:00
Added support for not instantiating pages, useful to speed up tasks
This commit is contained in:
@@ -55,6 +55,9 @@ class Pages
|
||||
/** @var Blueprints */
|
||||
protected $blueprints;
|
||||
|
||||
/** @var bool */
|
||||
protected $enable_pages = true;
|
||||
|
||||
/** @var int */
|
||||
protected $last_modified;
|
||||
|
||||
@@ -91,6 +94,14 @@ class Pages
|
||||
$this->grav = $c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method used in admin to disable pages from being loaded.
|
||||
*/
|
||||
public function disablePages(): void
|
||||
{
|
||||
$this->enable_pages = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get or set base path for the pages.
|
||||
*
|
||||
@@ -830,7 +841,7 @@ class Pages
|
||||
/** @var UniformResourceLocator $locator */
|
||||
$locator = $this->grav['locator'];
|
||||
|
||||
return $this->instances[rtrim($locator->findResource('page://'), DS)];
|
||||
return $this->instances[rtrim($locator->findResource('page://'), '/')];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1194,8 +1205,15 @@ class Pages
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
protected function buildPages()
|
||||
protected function buildPages(): void
|
||||
{
|
||||
if ($this->enable_pages === false) {
|
||||
$page = $this->buildRootPage();
|
||||
$this->instances[$page->path()] = $page;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var Config $config */
|
||||
$config = $this->grav['config'];
|
||||
|
||||
@@ -1272,6 +1290,29 @@ class Pages
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected function buildRootPage()
|
||||
{
|
||||
$grav = Grav::instance();
|
||||
|
||||
/** @var UniformResourceLocator $locator */
|
||||
$locator = $grav['locator'];
|
||||
|
||||
/** @var Config $config */
|
||||
$config = $grav['config'];
|
||||
|
||||
$page = new Page();
|
||||
$page->path($locator->findResource('page://'));
|
||||
$page->orderDir($config->get('system.pages.order.dir'));
|
||||
$page->orderBy($config->get('system.pages.order.by'));
|
||||
$page->modified(0);
|
||||
$page->routable(false);
|
||||
$page->template('default');
|
||||
$page->extension('.md');
|
||||
|
||||
return $page;
|
||||
}
|
||||
|
||||
protected function buildRegularPages()
|
||||
{
|
||||
/** @var Config $config */
|
||||
|
||||
Reference in New Issue
Block a user