diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a899b48..ffbe7c99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ 1. [](#new) * Added a new `permissions` form field, used in the user profile to simplify editing permissions + * Added several new `onAdminAfter...()` events to allow for more 3rd party plugin interaction 1. [](#bugfix) * Updated admin-user-details to allow longer user names in the sidebar [#879](https://github.com/getgrav/grav-plugin-admin/issues/879) * Redirect to a 404 page when accessing nonexistent plugins and themes [#880](https://github.com/getgrav/grav-plugin-admin/issues/880) diff --git a/classes/admincontroller.php b/classes/admincontroller.php index 44fc34f1..5391e944 100644 --- a/classes/admincontroller.php +++ b/classes/admincontroller.php @@ -370,10 +370,13 @@ class AdminController extends AdminBaseController } $orderOfNewFolder = $this->getNextOrderInFolder($path); + $new_path = $path . '/' . $orderOfNewFolder . '.' . $data['folder']; - Folder::create($path . '/' . $orderOfNewFolder . '.' . $data['folder']); + Folder::create($new_path); Cache::clearCache('standard'); + $this->grav->fireEvent('onAdminAfterSaveAs', new Event(['path' => $new_path])); + $this->admin->setMessage($this->admin->translate('PLUGIN_ADMIN.SUCCESSFULLY_SAVED'), 'info'); $multilang = $this->isMultilang(); @@ -532,7 +535,7 @@ class AdminController extends AdminBaseController $this->grav->fireEvent('onAdminSave', new Event(['object' => &$obj])); $obj->save($reorder); $this->admin->setMessage($this->admin->translate('PLUGIN_ADMIN.SUCCESSFULLY_SAVED'), 'info'); - $this->grav->fireEvent('onAdminAfterSave', new Event(['object' => &$obj])); + $this->grav->fireEvent('onAdminAfterSave', new Event(['object' => $obj])); } if ($this->view != 'pages') { @@ -1480,6 +1483,8 @@ class AdminController extends AdminBaseController return false; } + $this->grav->fireEvent('onAdminAfterAddMedia', new Event(['page' => $page])); + $this->admin->json_response = [ 'status' => 'success', 'message' => $this->admin->translate('PLUGIN_ADMIN.FILE_UPLOADED_SUCCESSFULLY') @@ -1550,6 +1555,8 @@ class AdminController extends AdminBaseController } } + $this->grav->fireEvent('onAdminAfterDelMedia', new Event(['page' => $page])); + $this->admin->json_response = [ 'status' => 'success', 'message' => $this->admin->translate('PLUGIN_ADMIN.FILE_DELETED') . ': ' . $filename @@ -1749,6 +1756,9 @@ class AdminController extends AdminBaseController $page->header($header); $page->save(); + + $this->grav->fireEvent('onAdminAfterSave', new Event(['page' => $page])); + // Enqueue message and redirect to new location. $this->admin->setMessage($this->admin->translate('PLUGIN_ADMIN.SUCCESSFULLY_COPIED'), 'info'); $this->setRedirect($redirect); @@ -1871,6 +1881,8 @@ class AdminController extends AdminBaseController Folder::delete($page->path()); } + $this->grav->fireEvent('onAdminAfterDelete', new Event(['page' => $page])); + Cache::clearCache('standard'); // Set redirect to either referrer or pages list. @@ -1954,6 +1966,8 @@ class AdminController extends AdminBaseController $aPage->validate(); $aPage->filter(); $aPage->save(); + + $this->grav->fireEvent('onAdminAfterSave', new Event(['page' => $obj])); } $this->admin->setMessage($this->admin->translate('PLUGIN_ADMIN.SUCCESSFULLY_SWITCHED_LANGUAGE'), 'info');