From 1624051d34867b5c0e16c809bdbc0d771bc1a770 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Wed, 24 Jun 2020 16:00:56 +0300 Subject: [PATCH] fix category delete --- .../src/Category/CategoryRepository.php | 22 +++++++++++-------- .../Controller/Admin/CategoryController.php | 17 +++++++------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php b/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php index 8f60bd3a1..685ffde42 100644 --- a/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php +++ b/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php @@ -76,10 +76,12 @@ class CategoryRepository extends EntryRepository implements CategoryRepositoryIn return $this->model->orderBy('sort_order')->get(); } - public function removeCatFromAds($id) + public function removeCatFromAds($category) { - $category = $this->find($id); - $catLevelNum = is_null($category->parent_category_id) ? 1 : $this->model->getCatLevel($category->id); + $catLevelNum = 1; + if (!is_null($category->parent_category_id)) { + $catLevelNum = $this->model->getCatLevel($category->id); + } $catLevelText = "cat" . $catLevelNum; $advs = $this->advRepository->newQuery()->where($catLevelText, $category->id)->get(); @@ -94,13 +96,15 @@ class CategoryRepository extends EntryRepository implements CategoryRepositoryIn public function DeleteCategories($id) { - // Remove deleted category from ads - $this->removeCatFromAds($id); + if (!is_null($category = $this->find($id))) { + // Remove deleted category from ads + $this->removeCatFromAds($category); - // Delete the category - $this->model->find($id)->delete(); + // Delete the category + $this->model->find($id)->delete(); - // Delete the subcategories - $this->model->deleteSubCategories($id); + // Delete the subcategories + $this->model->deleteSubCategories($id); + } } } diff --git a/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php b/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php index b6731aefe..50de9afc8 100644 --- a/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php +++ b/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php @@ -47,8 +47,7 @@ class CategoryController extends AdminController $this->messages->error('Selected category has no sub-categories.'); return back(); } - if($request->view != "trash") - { + if ($request->view != "trash") { $table->setTableEntries($categories); } @@ -157,7 +156,8 @@ class CategoryController extends AdminController return $this->view->make('visiosoft.module.cats::cats/admin-cat'); } - public function endsWith($string, $test) { + public function endsWith($string, $test) + { $strlen = strlen($string); $testlen = strlen($test); if ($testlen > $strlen) return false; @@ -185,12 +185,13 @@ class CategoryController extends AdminController public function delete(CategoryRepositoryInterface $categoryRepository, Request $request, CategoryModel $categoryModel, $id) { $categoryRepository->DeleteCategories($id); - $subCats = $categoryRepository->getSubCatById($request->parent); - if (count($subCats)) { - return redirect('admin/cats?cat=' . $request->parent)->with('success', ['Category and related sub-categories deleted successfully.']); - } else { - return redirect('admin/cats')->with('success', ['Category and related sub-categories deleted successfully.']); + if ($request->parent != "") { + $subCats = $categoryRepository->getSubCatById($request->parent); + if (count($subCats)) { + return redirect('admin/cats?cat=' . $request->parent)->with('success', ['Category and related sub-categories deleted successfully.']); + } } + return redirect('admin/cats')->with('success', ['Category and related sub-categories deleted successfully.']); } public function cleanSubcats()