From 14697aaedf185fceeb88d0328da94b583f6d46c0 Mon Sep 17 00:00:00 2001 From: Diatrex Date: Mon, 2 Dec 2019 13:30:17 +0300 Subject: [PATCH 1/6] #162 update gives an error --- .../cats-module/resources/lang/en/section.php | 2 +- .../cats-module/resources/lang/en/view.php | 5 ++ .../Category/Table/CategoryTableBuilder.php | 8 ++- .../src/CatsModuleServiceProvider.php | 1 + .../Controller/Admin/CategoryController.php | 57 ++++++++++++++++--- 5 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 addons/default/visiosoft/cats-module/resources/lang/en/view.php diff --git a/addons/default/visiosoft/cats-module/resources/lang/en/section.php b/addons/default/visiosoft/cats-module/resources/lang/en/section.php index 61e315f84..702c3a147 100644 --- a/addons/default/visiosoft/cats-module/resources/lang/en/section.php +++ b/addons/default/visiosoft/cats-module/resources/lang/en/section.php @@ -5,6 +5,6 @@ return [ 'title' => 'Category', ], 'placeholderforsearch' => [ - 'title' => 'Placeholderforsearch', + 'title' => 'Placeholder', ], ]; diff --git a/addons/default/visiosoft/cats-module/resources/lang/en/view.php b/addons/default/visiosoft/cats-module/resources/lang/en/view.php new file mode 100644 index 000000000..cebdced2c --- /dev/null +++ b/addons/default/visiosoft/cats-module/resources/lang/en/view.php @@ -0,0 +1,5 @@ + 'Clean Subcategories', +]; diff --git a/addons/default/visiosoft/cats-module/src/Category/Table/CategoryTableBuilder.php b/addons/default/visiosoft/cats-module/src/Category/Table/CategoryTableBuilder.php index 8d38cc343..d26355d27 100644 --- a/addons/default/visiosoft/cats-module/src/Category/Table/CategoryTableBuilder.php +++ b/addons/default/visiosoft/cats-module/src/Category/Table/CategoryTableBuilder.php @@ -10,7 +10,13 @@ class CategoryTableBuilder extends TableBuilder * * @var array|string */ - protected $views = []; + protected $views = [ + 'all', + 'trash', + 'clean_subcategories' => [ + 'href' => '/admin/cats/clean_subcats', + ], + ]; /** * The table filters. diff --git a/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php b/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php index aaa63322a..659543e1e 100644 --- a/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php +++ b/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php @@ -50,6 +50,7 @@ class CatsModuleServiceProvider extends AddonServiceProvider * @type array|null */ protected $routes = [ + 'admin/cats/clean_subcats' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@cleanSubcats', 'admin/cats/placeholderforsearch' => 'Visiosoft\CatsModule\Http\Controller\Admin\PlaceholderforsearchController@index', 'admin/cats/placeholderforsearch/create' => 'Visiosoft\CatsModule\Http\Controller\Admin\PlaceholderforsearchController@create', 'admin/cats/placeholderforsearch/edit/{id}' => 'Visiosoft\CatsModule\Http\Controller\Admin\PlaceholderforsearchController@edit', 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 a0c4ebef5..e990d154e 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 @@ -1,10 +1,8 @@ categoryRepository = $categoryRepository; $this->categoryEntryTranslationsModel = $categoryEntryTranslationsModel; $this->str = $str; + parent::__construct(); } public function index(CategoryTableBuilder $table, Request $request) @@ -73,20 +71,21 @@ class CategoryController extends AdminController return $this->redirect->back(); } - $locale = DB::table('cats_category_translations')->select('locale')->distinct()->get()->toArray(); + $locale = $this->getRequestLang($all); + $translatable = array(); foreach ($all as $key => $value) { foreach ($locale as $lang) { - if ($this->endsWith($key, "_$lang->locale") && !in_array(substr($key, 0, -3), $translatable)) { + if ($this->endsWith($key, "_$lang") && !in_array(substr($key, 0, -3), $translatable)) { $translatable[] = substr($key, 0, -3); } } } $translatableEntries = array(); foreach ($locale as $lang) { - $translatableEntries[$lang->locale] = array(); + $translatableEntries[$lang] = array(); foreach ($translatable as $translatableEntry) { - $translatableEntries[$lang->locale][$translatableEntry] = $all[$translatableEntry . '_' . $lang->locale]; + $translatableEntries[$lang][$translatableEntry] = $all[$translatableEntry . '_' . $lang]; } } @@ -99,7 +98,7 @@ class CategoryController extends AdminController foreach ($multiCat as $cat) { $secondArray = array(); foreach ($locale as $lang) { - if ($key === $lang->locale) { + if ($key === $lang) { $secondArray[$key]['name'] = trim($cat); } } @@ -109,7 +108,7 @@ class CategoryController extends AdminController } } if (empty($isMultiCat)) { - $this->categoryRepository->create(array_merge($translatableEntries, [ + $this->categoryRepository->create(array_merge($translatableEntries, [ 'slug' => $all['slug'], 'parent_category' => $all['parent_category'] === "" ? null : $all['parent_category'], 'icon' => $all['icon'], @@ -172,6 +171,30 @@ class CategoryController extends AdminController return substr_compare($string, $test, $strlen - $testlen, $testlen) === 0; } + public function getRequestLang($request) { + $locale = array(); + foreach ($request as $key => $field) { + $locale[] = substr($key, 0, -2); + } + $notTrans = array(); + $trans = array(); + foreach ($locale as $translatable) { + if (!in_array($translatable, $notTrans)) { + $notTrans[] = $translatable; + } else { + $trans[] = $translatable; + } + } + $locale = array(); + foreach ($request as $key => $field) { + foreach (array_unique($trans) as $entry) { + if (strpos($key, $entry) === 0) { + $locale[] = substr($key, -2); + } + } + } + return $locale; + } public function edit(CategoryFormBuilder $form, Request $request, $id) { @@ -220,5 +243,21 @@ class CategoryController extends AdminController return redirect('admin/cats?cat=' . $request->parent)->with('success', ['Category and related sub-categories deleted successfully.']); } + public function cleanSubcats() + { + $cats = $this->categoryRepository->all(); + $deletedCatsCount = 0; + foreach ($cats as $cat) { + $parentCatId = $cat->parent_category_id; + $parentCat = $this->categoryRepository->find($parentCatId); + if (is_null($parentCat) && !is_null($parentCatId)) { + $this->categoryEntryTranslationsModel->where('entry_id', $cat->id)->delete(); + $this->categoryRepository->DeleteCategories($cat->id); + $deletedCatsCount++; + } + } + return redirect('admin/cats')->with('success', [$deletedCatsCount . ' categories has been deleted.']); + } + } From b988c962d63684ef925dd486ea2a1a99ec2bdd91 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Thu, 5 Dec 2019 18:26:50 +0300 Subject: [PATCH 2/6] fixed deleted sub category name error --- .../cats-module/src/Category/CategoryModel.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php index ae8053411..4077ee784 100644 --- a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php +++ b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php @@ -9,7 +9,10 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface public function getCat($id) { - return CategoryModel::query()->where('cats_category.id', $id)->first(); + return CategoryModel::query() + ->where('cats_category.id', $id) + ->whereRaw('deleted_at IS NULL') + ->first(); } public function getParentCats($id, $type = null) @@ -34,7 +37,11 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface } } if ($type == 'category_ids') { - return CategoryModel::query()->whereIn('cats_category.id', $cat_ids)->orderBy('cats_category.id', 'asc')->get(); + return CategoryModel::query() + ->whereIn('cats_category.id', $cat_ids) + ->whereRaw('deleted_at IS NULL') + ->orderBy('cats_category.id', 'asc') + ->get(); } if ($type == "parent_id") { $cat_ids = array_reverse($cat_ids); @@ -92,7 +99,8 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface $cats = $cats->where('cats_category.id', '!=', $selected); } } - $cats = $cats->where('name', 'like', $keyword . '%'); + $cats = $cats->where('name', 'like', $keyword . '%') + ->whereRaw('deleted_at IS NULL'); $cats = $cats->leftJoin('cats_category_translations', function ($join) { $join->on('cats_category.id', '=', 'cats_category_translations.entry_id'); From 7dc34dc411b8d16e174b67fa26b1a9e90813fa2a Mon Sep 17 00:00:00 2001 From: vedatakd Date: Fri, 6 Dec 2019 16:18:29 +0300 Subject: [PATCH 3/6] customfields repair list page && customfields bootsrap 4 template --- .../views/ad-detail/partials/content.twig | 1 - .../views/list/partials/list-filter.twig | 2 +- .../resources/views/list/table.twig | 2 ++ .../advs-module/src/Adv/AdvRepository.php | 6 ++++- .../src/Http/Controller/advsController.php | 5 ++-- .../src/Category/CategoryModel.php | 22 +++++++++++++++- .../src/Category/CategoryPresenter.php | 25 ++++--------------- 7 files changed, 37 insertions(+), 26 deletions(-) diff --git a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/content.twig b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/content.twig index 33884813e..75afea255 100644 --- a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/content.twig +++ b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/content.twig @@ -1,7 +1,6 @@
-