diff --git a/packages/TPS/Shop/src/Database/Migrations/2024_07_11_183251_create_website_reviews_table.php b/packages/TPS/Shop/src/Database/Migrations/2024_07_11_183251_create_website_reviews_table.php new file mode 100644 index 000000000..5c31eaf6a --- /dev/null +++ b/packages/TPS/Shop/src/Database/Migrations/2024_07_11_183251_create_website_reviews_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('customer_id')->unsigned(); + $table->foreign('customer_id')->references('id')->on('customers')->onDelete('cascade'); + $table->text('review_text')->nullable(); + $table->integer('rating')->unsigned(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('website_reviews'); + } +}; diff --git a/packages/TPS/Shop/src/Http/Controllers/WebsiteReviewController.php b/packages/TPS/Shop/src/Http/Controllers/WebsiteReviewController.php new file mode 100644 index 000000000..b45b85030 --- /dev/null +++ b/packages/TPS/Shop/src/Http/Controllers/WebsiteReviewController.php @@ -0,0 +1,43 @@ +customer = auth()->guard('customer')->user();} + + public function index() + { + $websiteReviews = $this->websiteReviewRepository->paginate(10); // 10 reviews per page + + return view('shop::websiteReview.index', compact('websiteReviews')); + } + + + public function store(Request $request){ + + $request->validate([ + 'web_review_text' => 'required', + 'web_review_rating' => 'required' + ]); + + $data = array_merge(request()->all(), [ + 'customer_id' => auth()->guard('customer')->user()->id, + ]); + + if($this->websiteReviewRepository->create($data)){ + return response()->json(['success' => true,'message'=>trans('shop::app.review.success')]); + } + + return response()->json(['success' => false,'message'=>trans('shop::app.review.error')]); + } + +} \ No newline at end of file diff --git a/packages/TPS/Shop/src/Models/WebsiteReview.php b/packages/TPS/Shop/src/Models/WebsiteReview.php new file mode 100644 index 000000000..6363f7fd4 --- /dev/null +++ b/packages/TPS/Shop/src/Models/WebsiteReview.php @@ -0,0 +1,23 @@ +belongsTo(CustomerProxy::modelClass(), 'customer_id'); + } + +} \ No newline at end of file diff --git a/packages/TPS/Shop/src/Repositories/WebsiteReviewRepository.php b/packages/TPS/Shop/src/Repositories/WebsiteReviewRepository.php new file mode 100644 index 000000000..e10befd13 --- /dev/null +++ b/packages/TPS/Shop/src/Repositories/WebsiteReviewRepository.php @@ -0,0 +1,28 @@ + $data['customer_id'], + 'review_text' => $data['web_review_text'], + 'rating' => $data['web_review_rating'] + ]); + + return $websiteReview ? true : false; + } + + public function paginate($perPage) + { + return WebsiteReview::with('customer') + ->orderBy('created_at', 'desc') + ->paginate($perPage); + } + +} \ No newline at end of file diff --git a/packages/TPS/Shop/src/Resources/assets/js/components/mini-card.vue b/packages/TPS/Shop/src/Resources/assets/js/components/mini-card.vue new file mode 100644 index 000000000..f6e535afa --- /dev/null +++ b/packages/TPS/Shop/src/Resources/assets/js/components/mini-card.vue @@ -0,0 +1,358 @@ + + + + + \ No newline at end of file diff --git a/packages/TPS/Shop/src/Resources/lang/ru/app.php b/packages/TPS/Shop/src/Resources/lang/ru/app.php index 57e78a697..d9a2d59cf 100644 --- a/packages/TPS/Shop/src/Resources/lang/ru/app.php +++ b/packages/TPS/Shop/src/Resources/lang/ru/app.php @@ -15,8 +15,20 @@ return [ 'downloadable-products' => 'Загружаемые продукты', ], + 'review' => [ + 'error' => 'Что-то пошло не так. Пожалуйста, повторите попытку позже.', + 'success' => 'Отзыв успешно создан.', + 'write-review' => 'Напиши свой отзыв!', + 'all-reviews' => 'Все отзывы!', + 'reviews' => 'Отзывы', + 'reviews-about-us' => 'Отзывы о нас', + 'total' => 'Всего', + 'pages' => 'страниц' + ], + 'common' => [ 'error' => 'Что-то пошло не так. Пожалуйста, повторите попытку позже.', + 'success' => 'Успешно создано.', 'image-upload-limit' => 'Максимальный размер загружаемого изображения – 2 МБ', 'no-result-found' => 'Нам не удалось найти никаких записей.', 'delete' => 'Удалить' @@ -798,7 +810,7 @@ return [ ], 'response' => [ - 'create-success' => ':name успешно создано.', + 'create-success' => ':name успешно создано.', 'update-success' => ':name успешно обновлено.', 'delete-success' => ':name успешно удалено.', 'submit-success' => ':name успешно отправлено.', diff --git a/packages/TPS/Shop/src/Resources/lang/tm/app.php b/packages/TPS/Shop/src/Resources/lang/tm/app.php index 1e675a366..ba852954e 100644 --- a/packages/TPS/Shop/src/Resources/lang/tm/app.php +++ b/packages/TPS/Shop/src/Resources/lang/tm/app.php @@ -15,6 +15,17 @@ return [ 'downloadable-products' => 'Göçürip alyp bolýan önümler' ], + 'review' => [ + 'error' => 'Teswir döredilip bilinmedi !', + 'success' => 'Teswir üstünlikli döredildi !', + 'write-review' => 'Teswir ýazyň !', + 'all-reviews' => 'Hemme teswirler', + 'reviews' => 'Teswirler', + 'reviews-about-us' => 'Biz hakda teswirler', + 'total' => 'Hemme', + 'pages' => 'sahypalar' + ], + 'pagenames' =>[ 'homepage' => 'Baş sahypa', 'cartpage' => 'Sebet', diff --git a/packages/TPS/Shop/src/Resources/views/shop/home/index.blade.php b/packages/TPS/Shop/src/Resources/views/shop/home/index.blade.php index 8eb5e3335..ddc40791e 100644 --- a/packages/TPS/Shop/src/Resources/views/shop/home/index.blade.php +++ b/packages/TPS/Shop/src/Resources/views/shop/home/index.blade.php @@ -64,11 +64,14 @@ @include('shop::home.banner',['banner'=>$bannerData->where('type','banner')->last()]) @endif @include('shop::home.featured-products') + @include('shop::home.reviews') + @include('shop::websiteReview.review-popup') + @include('shop::products.popup-card') {{-- @endif--}} @if(core()->getConfigData('customer.settings.newsletter.subscription')) -