From 288b1043b514de0b1bc5fb3c71f493e6eaa476f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Mon, 11 Apr 2016 01:15:17 +0200 Subject: [PATCH] FEATURE #1551: add method for deleting extra content --- app/Handlers/Contracts/AppHandler.php | 11 +++++++++++ app/Handlers/Handler.php | 6 ++++++ app/Http/Controllers/Admin/EditContent.php | 3 +++ 3 files changed, 20 insertions(+) diff --git a/app/Handlers/Contracts/AppHandler.php b/app/Handlers/Contracts/AppHandler.php index 127bc94f..b41835f5 100644 --- a/app/Handlers/Contracts/AppHandler.php +++ b/app/Handlers/Contracts/AppHandler.php @@ -53,6 +53,17 @@ interface AppHandler */ public static function edit(Content &$content, Request $request, $revisionID); + /** + * Method called right after content page is marked as deleted + * + * This method is supposed to clean after "deleted" page. + * + * @param Content $content + * + * @return mixed + */ + public static function delete(Content $content); + /** * Does given module manage content? Or is it just module with widgets/something internal/something absolutely else? * diff --git a/app/Handlers/Handler.php b/app/Handlers/Handler.php index d7e318ac..bd09479d 100644 --- a/app/Handlers/Handler.php +++ b/app/Handlers/Handler.php @@ -5,6 +5,7 @@ use App\Enumerations\ModuleNamesWithIds; use App\Enumerations\TemplatePathsHumanReadableRootOnly; use App\Enumerations\WidgetTypes; use App\Handlers\Contracts\AppHandler; +use App\Models\Content; use App\Models\User; /** @@ -42,6 +43,11 @@ abstract class Handler implements AppHandler ]; } + public static function delete(Content $content) + { + // temporarily nothing to do + } + public static function getExtendedFormInputsEdit() { return self::getExtendedFormInputsCreate(); diff --git a/app/Http/Controllers/Admin/EditContent.php b/app/Http/Controllers/Admin/EditContent.php index 809087f5..79c8723e 100644 --- a/app/Http/Controllers/Admin/EditContent.php +++ b/app/Http/Controllers/Admin/EditContent.php @@ -228,6 +228,9 @@ class EditContent extends Controller list ($revision, $changedColumns) = $page->updateWithHistory(['status' => 'status'], ['status' => Content::STATUS_DELETED]); + // let module to delete some extra content created during page's life + call_user_func([$page->module_handler, 'delete'], $page); + // was something changed? if ($changedColumns == 0) { return redirect()