add ability to override modified date via frontmatter

This commit is contained in:
Andy Miller 2023-10-02 09:36:22 -06:00
parent e3b0aa0c50
commit 65aeb82e21
No known key found for this signature in database
GPG Key ID: 9F2CF38AEBDB0AE0
2 changed files with 11 additions and 4 deletions

View File

@ -1,6 +1,8 @@
# v1.7.42.4
## mm/dd/2023
1. [](#new)
* Add the ability to programtically set a page's `modified` timestamp via a `modified:` frontmatter entry
2. [](#improved)
* Include `phar` in the list of `security.uploads_dangerous_extensions`

View File

@ -415,15 +415,17 @@ class Page implements PageInterface
if (!Utils::isAdminPlugin()) {
// If there's a `frontmatter.yaml` file merge that in with the page header
// note page's own frontmatter has precedence and will overwrite any defaults
$frontmatterFile = CompiledYamlFile::instance($this->path . '/' . $this->folder . '/frontmatter.yaml');
if ($frontmatterFile->exists()) {
$frontmatter_data = (array)$frontmatterFile->content();
$frontmatter_filename = $this->path . '/' . $this->folder . '/frontmatter.yaml';
if (file_exists($frontmatter_filename)) {
$frontmatter_file = CompiledYamlFile::instance($frontmatter_filename);
$frontmatter_data = $frontmatter_file->content();
$this->header = (object)array_replace_recursive(
$frontmatter_data,
(array)$this->header
);
$frontmatterFile->free();
$frontmatter_file->free();
}
// Process frontmatter with Twig if enabled
if (Grav::instance()['config']->get('system.pages.frontmatter.process_twig') === true) {
$this->processFrontmatter();
@ -446,6 +448,9 @@ class Page implements PageInterface
}
if ($var) {
if (isset($this->header->modified)) {
$this->modified($this->header->modified);
}
if (isset($this->header->slug)) {
$this->slug($this->header->slug);
}