Skip to content

Commit

Permalink
Fixed saving page in expert mode
Browse files Browse the repository at this point in the history
  • Loading branch information
mahagr committed Jan 26, 2021
1 parent 9e2ab9e commit 064facb
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# v1.0.2
## mm/dd/2021

1. [](#bugfix)
* Fixed saving page in expert mode [grav#3174](https://github.com/getgrav/grav/issues/3174)

# v1.0.1
## 01/20/2021

Expand Down
2 changes: 1 addition & 1 deletion blueprints.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ docs: https://github.com/trilbymedia/grav-plugin-flex-objects/blob/develop/READM
license: MIT

dependencies:
- { name: grav, version: '>=1.7.0' }
- { name: grav, version: '>=1.7.4' }
- { name: form, version: '>=4.3.0' }

form:
Expand Down
15 changes: 15 additions & 0 deletions classes/Admin/AdminController.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
use Grav\Framework\File\Interfaces\FileFormatterInterface;
use Grav\Framework\Flex\FlexForm;
use Grav\Framework\Flex\FlexFormFlash;
use Grav\Framework\Flex\FlexObject;
use Grav\Framework\Flex\Interfaces\FlexAuthorizeInterface;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexDirectoryInterface;
Expand Down Expand Up @@ -729,6 +730,20 @@ public function taskSave(): bool

/** @var FlexForm $form */
$form = $this->getForm($object);

$callable = static function (array $data, array $files, FlexObject $object) use ($form) {
$object->update($data, $files);

// Support for expert mode.
if (str_ends_with($form->getId(), '-raw') && isset($data['frontmatter']) && is_callable([$object, 'frontmatter'])) {
$object->frontmatter($data['frontmatter']);
unset($data['frontmatter']);
}

$object->save();
};

$form->setSubmitMethod($callable);
$form->handleRequest($request);
$error = $form->getError();
$errors = $form->getErrors();
Expand Down

0 comments on commit 064facb

Please sign in to comment.