From d8953bb05dbc3bcfa9cfc8da3bc67d603b7c6210 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Thu, 17 Oct 2019 12:57:47 +0300 Subject: [PATCH 01/11] fixed search column error --- addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index 45530dc15..ca0a27261 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -217,7 +217,7 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface break; } } else { - $query = $query->orderBy('created_at', 'desc'); + $query = $query->orderBy('advs_advs.created_at', 'desc'); } From de62d2b1db9a492789e81a3513ed869fbfe2a20f Mon Sep 17 00:00:00 2001 From: vedatakd Date: Thu, 17 Oct 2019 17:03:45 +0300 Subject: [PATCH 02/11] add register ajax subdomain control --- .../src/Http/Controller/UserAuthenticator.php | 65 +++++++++++++------ 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/addons/default/visiosoft/profile-module/src/Http/Controller/UserAuthenticator.php b/addons/default/visiosoft/profile-module/src/Http/Controller/UserAuthenticator.php index de6aed9b0..dff38646e 100644 --- a/addons/default/visiosoft/profile-module/src/Http/Controller/UserAuthenticator.php +++ b/addons/default/visiosoft/profile-module/src/Http/Controller/UserAuthenticator.php @@ -8,6 +8,7 @@ use Anomaly\UsersModule\User\Contract\UserRepositoryInterface; use Anomaly\UsersModule\User\Event\UserWasLoggedIn; use Anomaly\UsersModule\User\User; use Anomaly\UsersModule\User\UserPassword; +use http\Env\Response; use Visiosoft\AdvsModule\Adv\AdvModel; use Visiosoft\AdvsModule\Http\Controller\AdvsController; use Visiosoft\CartsModule\Saleitem\Command\ProcessSaleitem; @@ -102,12 +103,10 @@ class UserAuthenticator if ($response = $this->authenticate($credentials)) { if ($response instanceof UserInterface) { $this->login($response, $remember); - if(isset($_COOKIE['cart'])) - { - foreach ($_COOKIE['cart'] as $adv => $quantity) - { + if (isset($_COOKIE['cart'])) { + foreach ($_COOKIE['cart'] as $adv => $quantity) { $advs = new AdvsController(); - $advs->advAddCart($adv,$quantity); + $advs->advAddCart($adv, $quantity); setcookie("cart[" . $adv . "]", null, -1, '/'); } } @@ -162,6 +161,17 @@ class UserAuthenticator public function registerAjax(UserRepositoryInterface $users, Request $request) { + $required_field = ['first_name', 'last_name', 'email', 'subdomain']; + + foreach ($required_field as $field) { + if (!isset($request->$field) or $request->$field == "") { + return $this->responseJSON('error', $field . ' field is required!'); + die; + } + } + + $siteModel = new SiteModel(); + $userPlan = new UserModel(); $all = $request->all(); $email = explode('@', $all['email']); @@ -171,41 +181,54 @@ class UserAuthenticator $all['activated'] = 1; //Activated User $all['str_id'] = str_random(24); //User random key $planParams['plan'] = 24; - if(isset($all['plan_id'])) - { + + //find plan id for request + if (isset($all['plan_id'])) { $planParams['plan'] = $all['plan_id']; unset($all['plan_id']);//Demo Plan id } - - if (User::withTrashed()->where('email',$all['email'])->first() or User::withTrashed()->where('username',$all['username'])->first()) { - return response()->json(['status' => 'error', 'message' => 'This Username or Email Registered!']); + //find subdomain in allready exit + $isSubdomain = $siteModel->getSitesBySubdomain($all['subdomain']); + if ($this->advModel->is_enabled('cloudsite') and !is_null($isSubdomain)) { + return $this->responseJSON('error', 'This subdomain is already exists!'); } + + + if (User::withTrashed()->where('email', $all['email'])->first() or User::withTrashed()->where('username', $all['username'])->first()) { + return $this->responseJSON('error', 'This Username or Email Registered!'); + + } + + //create random password $opassword = str_random(8); - $user = User::query()->create($all); + + $user_params = $all; + unset($user_params['subdomain']); + + //create user + $user = User::query()->create($user_params); $user->setAttribute('password', $opassword); $users->save($user); $all['password'] = $opassword; //Register Password Original - if(!isset($all['subdomain'])) - { - $all['subdomain'] = $all['username']; - } $all['user'] = $user; $planParams['user'] = $user->id; //Register User id $planParams['name'] = $all['subdomain']; //Subscription Saved Name - if($this->advModel->is_enabled('cloudsite')) - { - $userPlan = new UserModel(); + if ($this->advModel->is_enabled('cloudsite')) { $plan = $userPlan->addPlanAjaxUser($planParams); - $siteModel = new SiteModel(); $siteModel->createSite($all['subdomain'], $user->id, $opassword, $plan->id); //Create Site - $this->events->dispatch(new CreateSite($all, $this->settings)); + //$this->events->dispatch(new CreateSite($all, $this->settings)); } - return response()->json(['status' => 'success', 'message' => 'Thank you for Registering!']); + return $this->responseJSON('success', 'Thank you for Registering!'); } + + public function responseJSON($type, $message) + { + return response()->json(['status' => $type, 'message' => $message]); + } } From cac2a9e089499222779da2b2be27039662b164de Mon Sep 17 00:00:00 2001 From: alp Date: Fri, 18 Oct 2019 09:58:56 +0300 Subject: [PATCH 03/11] Code Quality images added to readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e27d367d8..30ae8c0f1 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ OpenClassify is the extensible and most advanced open source classified app build with Laravel and Pyrocms. - +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/openclassify/openclassify/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/openclassify/openclassify/?branch=master) +[![Build Status](https://scrutinizer-ci.com/g/openclassify/openclassify/badges/build.png?b=master)](https://scrutinizer-ci.com/g/openclassify/openclassify/build-status/master) +[![Code Intelligence Status](https://scrutinizer-ci.com/g/openclassify/openclassify/badges/code-intelligence.svg?b=master)](https://scrutinizer-ci.com/code-intelligence) # Installation From 8a945995efdc370af65a0bb7ddf5f841c0e48c5c Mon Sep 17 00:00:00 2001 From: vedatakd Date: Fri, 18 Oct 2019 11:34:10 +0300 Subject: [PATCH 04/11] #484 --- .../src/Http/Controller/AjaxController.php | 16 +++++----- .../src/Category/CategoryModel.php | 31 +++++++++++++------ .../src/Category/CategoryRepository.php | 10 +++++- .../Contract/CategoryRepositoryInterface.php | 2 ++ 4 files changed, 41 insertions(+), 18 deletions(-) diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php index 4b734d0fe..7d45d3fc4 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php @@ -14,32 +14,34 @@ class AjaxController extends PublicController public function locations(Request $request) { $datas = []; - if($request->level == 1){ + if ($request->level == 1) { $datas = CityModel::where('parent_country_id', $request->cat)->get(); - }else if($request->level == 2){ + } else if ($request->level == 2) { $datas = DistrictModel::where('parent_city_id', $request->cat)->get(); - }else if($request->level == 3){ + } else if ($request->level == 3) { $datas = NeighborhoodModel::where('parent_district_id', $request->cat)->get(); - }else if($request->level == 4){ + } else if ($request->level == 4) { $datas = VillageModel::where('parent_neighborhood_id', $request->cat)->get(); } return response()->json($datas); } + public function categories(Request $request) { $datas = []; - if($request->level == 0){ + if ($request->level == 0) { $datas = CategoryModel::whereNull('parent_category_id')->get(); - }else{ + } else { $datas = CategoryModel::where('parent_category_id', $request->cat)->get(); } return response()->json($datas); } + public function keySearch(Request $request) { $datas = []; $catModel = new CategoryModel(); - $datas['category'] = $catModel->searchKeyword($request->q); + $datas['category'] = $catModel->searchKeyword($request->q, $request->selected); return response()->json($datas); } diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php index d0090e403..f6779088c 100644 --- a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php +++ b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php @@ -12,7 +12,7 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface return CategoryModel::query()->where('cats_category.id', $id)->first(); } - public function getParentCats($id, $type = null, $subCatDeepCount = 5) + public function getParentCats($id, $type = null, $subCatDeepCount = 7) { $cat = $this->getCat($id); $catNames = array(); @@ -21,9 +21,9 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface $cat_ids[] = $cat->id; $subCat = $cat->parent_category_id; if ($subCat != null) { - for ($i = 0; $i < $subCatDeepCount; $i++) { + for ($i = 0; $i < 7; $i++) { $parCat = $this->getCat($subCat); - if ($parCat == null) { + if ($parCat->parent_category_id == "") { break; } $catNames[] = $parCat->name; @@ -77,16 +77,26 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface return true; } - public function searchKeyword($keyword) + public function searchKeyword($keyword, $selected = null) { $data = []; - $cats = DB::table('cats_category_translations') - ->select('cats_category.id', 'cats_category_translations.name', 'cats_category.parent_category_id') - ->where('name', 'like', $keyword . '%') - ->join('cats_category', 'cats_category_translations.entry_id', '=', 'cats_category.id') - ->orderBy('cats_category_translations.id', 'DESC') - ->get(); + $cats = DB::table('cats_category'); + if ($selected != null) { + if (strpos($selected, "-") !== false) { + $selected = explode('-', $selected); + $cats = $cats->whereNotIn('cats_category.id', $selected); + } else { + $cats = $cats->where('cats_category.id', '!=', $selected); + } + } + $cats = $cats->where('name', 'like', $keyword . '%'); + $cats = $cats->leftJoin('cats_category_translations', function ($join) { + $join->on('cats_category.id', '=', 'cats_category_translations.entry_id'); + $join->where('cats_category_translations.locale', '=', Request()->session()->get('_locale')); + }); + $cats = $cats->orderBy('cats_category_translations.id', 'DESC') + ->get(); foreach ($cats as $cat) { $link = ''; $parents = $this->getParentCats($cat->id, null, 2); @@ -101,6 +111,7 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface $data[] = array( 'id' => $cat->id, 'name' => $cat->name, + 'locale' => $cat->locale, 'parents' => $link ); } diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php b/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php index ea2af7763..b0fc13185 100644 --- a/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php +++ b/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php @@ -23,12 +23,14 @@ class CategoryRepository extends EntryRepository implements CategoryRepositoryIn { $this->model = $model; } + public function findById($id) { return $this->model->orderBy('created_at', 'DESC')->where('cats_category.id', $id)->first(); } - public function mainCats(){ + public function mainCats() + { return $this->model->where('parent_category_id', null)->where('deleted_at', null)->get(); } @@ -51,8 +53,14 @@ class CategoryRepository extends EntryRepository implements CategoryRepositoryIn { return CatsCategoryEntryModel::query()->where('cats_category.id', $id)->first(); } + public function findBySlug($slug) { return $this->model->orderBy('created_at', 'DESC')->where('slug', $slug)->first(); } + + public function getCategories() + { + return $this->model->get(); + } } diff --git a/addons/default/visiosoft/cats-module/src/Category/Contract/CategoryRepositoryInterface.php b/addons/default/visiosoft/cats-module/src/Category/Contract/CategoryRepositoryInterface.php index cbf218750..f4c8c8bfb 100644 --- a/addons/default/visiosoft/cats-module/src/Category/Contract/CategoryRepositoryInterface.php +++ b/addons/default/visiosoft/cats-module/src/Category/Contract/CategoryRepositoryInterface.php @@ -17,4 +17,6 @@ interface CategoryRepositoryInterface extends EntryRepositoryInterface public function getSingleCat($id); public function findBySlug($slug); + + public function getCategories(); } From aa86d2fa807c581cae5fcc5338a8b5d108edfd7d Mon Sep 17 00:00:00 2001 From: vedatakd Date: Fri, 18 Oct 2019 17:04:41 +0300 Subject: [PATCH 05/11] repair ad id for search --- addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index ca0a27261..d083eec2b 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -218,6 +218,7 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface } } else { $query = $query->orderBy('advs_advs.created_at', 'desc'); + $query = $query->select('advs_advs.*', 'advs_advs_translations.name as name', 'advs_advs_translations.advs_desc as advs_desc'); } From 9977c01f49bc1e982889a0911e8dc6c53e273611 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Fri, 18 Oct 2019 17:49:26 +0300 Subject: [PATCH 06/11] repair parent category --- .../visiosoft/cats-module/src/Category/CategoryModel.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php index f6779088c..db33f372f 100644 --- a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php +++ b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php @@ -43,7 +43,8 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface public function getCatLevel($id) { - return count($this->getParentCats($id)); + //count parent and itself + return count($this->getParentCats($id))+1; } public function getSubCategories($id, $get = null) From ade7012515ea99373bea0309a84138bd74e786c2 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Mon, 21 Oct 2019 10:30:11 +0300 Subject: [PATCH 07/11] return parent category list for create sub category --- .../src/Http/Controller/Admin/CategoryController.php | 6 ++++++ 1 file changed, 6 insertions(+) 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 52f198c52..edbd28f14 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 @@ -39,6 +39,7 @@ class CategoryController extends AdminController if ($this->request->action == "save") { $all = $this->request->all(); $id = $all['parent_category']; + $parent_id = $all['parent_category']; $k = 1; for ($i = 0; $i < $k; $i++) { $cat1 = CategoryModel::query()->where('cats_category.id', $id)->first(); @@ -57,6 +58,11 @@ class CategoryController extends AdminController if ($form->hasFormErrors()) { return $this->redirect->to('/admin/cats/create'); } + if($parent_id != "") + { + return $this->redirect->to('/admin/cats?cat='.$parent_id); + } + return $this->redirect->to('/admin/cats'); } else { $form->setFields(['name']); From ea13900d1f672279ade5436dde5742ffcb0f85a3 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Mon, 21 Oct 2019 10:51:52 +0300 Subject: [PATCH 08/11] add png field type for favicon upload types --- .../visiosoft/profile-module/src/ProfileModuleSeeder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/default/visiosoft/profile-module/src/ProfileModuleSeeder.php b/addons/default/visiosoft/profile-module/src/ProfileModuleSeeder.php index d14c4b4ce..f921bf9c3 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModuleSeeder.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModuleSeeder.php @@ -72,7 +72,7 @@ class ProfileModuleSeeder extends Seeder 'slug' => 'favicon', 'disk' => $disk, 'allowed_types' => [ - 'ico' + 'ico','png' ], ] ); From a65c359785ef607af6f259071acefbd82d92a74a Mon Sep 17 00:00:00 2001 From: vedatakd Date: Mon, 21 Oct 2019 11:40:18 +0300 Subject: [PATCH 09/11] remove static sub categories for s-type mobile template --- .../resources/views/partials/s-mobile-categories.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/default/visiosoft/default-theme/resources/views/partials/s-mobile-categories.twig b/addons/default/visiosoft/default-theme/resources/views/partials/s-mobile-categories.twig index 33699cbf4..e0e5f46ea 100644 --- a/addons/default/visiosoft/default-theme/resources/views/partials/s-mobile-categories.twig +++ b/addons/default/visiosoft/default-theme/resources/views/partials/s-mobile-categories.twig @@ -9,7 +9,7 @@ class="img-responsive"> {% endif %} {{ main_category.name }} - Konut, İşyeri, Arsa, Projeler, Bina, Devremülk, Turistik Tesis +{# Konut, İşyeri, Arsa, Projeler, Bina, Devremülk, Turistik Tesis#} {% endfor %} From 63a2e3c9c0889e86b70abe7e673c1a341bdd638a Mon Sep 17 00:00:00 2001 From: vedatakd Date: Mon, 21 Oct 2019 17:11:32 +0300 Subject: [PATCH 10/11] remove setting lang F --- .../default/visiosoft/advs-module/resources/lang/tr/setting.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/default/visiosoft/advs-module/resources/lang/tr/setting.php b/addons/default/visiosoft/advs-module/resources/lang/tr/setting.php index 7d943646b..468235bfc 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/tr/setting.php +++ b/addons/default/visiosoft/advs-module/resources/lang/tr/setting.php @@ -70,7 +70,7 @@ ], "default_district" => [ "name" =>"Varsayılan İlan Bölgesi", -F + ], "default_neighborhood" => [ "name" =>"Varsayılan İlan Mahalle", From 72d47dbf7fa4f2274376312039cd0bbd561e4a5b Mon Sep 17 00:00:00 2001 From: vedatakd Date: Tue, 22 Oct 2019 12:57:09 +0300 Subject: [PATCH 11/11] #495 fixed multi lang error for category ,advs and customfields --- .../Http/Controller/Admin/AdvsController.php | 21 ++++++++++--------- .../src/Category/CategoryModel.php | 4 ++-- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php index 5a553fdc3..7d8cf654f 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php @@ -6,7 +6,7 @@ use Anomaly\Streams\Platform\Application\Application; use Anomaly\Streams\Platform\Entry\Contract\EntryInterface; use Anomaly\Streams\Platform\Model\Advs\AdvsAdvsEntryModel; use Anomaly\Streams\Platform\Model\Cats\CatsCategoryEntryModel; -use Anomaly\Streams\Platform\Model\Users\UsersUsersEntryModel; +use Anomaly\UsersModule\User\UserModel; use Illuminate\Filesystem\Filesystem; use Illuminate\Http\Request; use Visiosoft\AdvsModule\Adv\Table\Filter\CategoryFilterQuery; @@ -72,9 +72,8 @@ class AdvsController extends AdminController ] ]); - if($this->model->is_enabled('recommendedads')) - { - $table->addButton('add_recommended',[ + if ($this->model->is_enabled('recommendedads')) { + $table->addButton('add_recommended', [ 'type' => 'default', 'icon' => 'fa fa-gg', 'text' => 'Add Recommended', @@ -96,15 +95,17 @@ class AdvsController extends AdminController 'class' => 'advs-country', ], 'created_by' => [ - 'value' => function (EntryInterface $entry) { - $user = UsersUsersEntryModel::query()->where('users_users.id', $entry->created_by_id)->first(); - return $user->first_name . " " . $user->last_name; + 'value' => function (EntryInterface $entry, UserModel $userModel) { + $user = $userModel->find($entry->created_by_id); + if (!is_null($user)) + return $user->first_name . " " . $user->last_name; } ], 'category' => [ - 'value' => function (EntryInterface $entry) { - $category = CategoryModel::query()->where('cats_category.id', $entry->cat1)->first(); - return $category->name; + 'value' => function (EntryInterface $entry, CategoryModel $categoryModel) { + $category = $categoryModel->getCat($entry->cat1); + if (!is_null($category)) + return $category->name; } ], ]); diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php index db33f372f..849cd2a44 100644 --- a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php +++ b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php @@ -96,7 +96,8 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface $join->on('cats_category.id', '=', 'cats_category_translations.entry_id'); $join->where('cats_category_translations.locale', '=', Request()->session()->get('_locale')); }); - $cats = $cats->orderBy('cats_category_translations.id', 'DESC') + $cats = $cats->select('cats_category.*','cats_category_translations.name as name'); + $cats = $cats->orderBy('id', 'DESC') ->get(); foreach ($cats as $cat) { $link = ''; @@ -112,7 +113,6 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface $data[] = array( 'id' => $cat->id, 'name' => $cat->name, - 'locale' => $cat->locale, 'parents' => $link ); }