From 18afa1f78551d57022cc3d527501299aee78fb92 Mon Sep 17 00:00:00 2001 From: mrNikto9 Date: Sat, 13 Jul 2024 11:45:03 +0500 Subject: [PATCH 1/5] added website reviews --- ...11_183251_create_website_reviews_table.php | 35 +++ .../Controllers/WebsiteReviewController.php | 43 +++ .../TPS/Shop/src/Models/WebsiteReview.php | 23 ++ .../Repositories/WebsiteReviewRepository.php | 28 ++ .../TPS/Shop/src/Resources/lang/ru/app.php | 14 +- .../TPS/Shop/src/Resources/lang/tm/app.php | 11 + .../Resources/views/shop/home/index.blade.php | 270 ++++++++++++++++++ .../views/shop/home/reviews.blade.php | 60 ++++ .../views/shop/products/add-buttons.blade.php | 42 +-- .../views/shop/products/popup-card.blade.php | 138 +++++++++ .../views/shop/websiteReview/index.blade.php | 103 +++++++ .../shop/websiteReview/review-popup.blade.php | 41 +++ .../Shop/src/Routes/store-front-routes.php | 4 + .../views/shop/products/view/stock.blade.php | 2 +- 14 files changed, 793 insertions(+), 21 deletions(-) create mode 100644 packages/TPS/Shop/src/Database/Migrations/2024_07_11_183251_create_website_reviews_table.php create mode 100644 packages/TPS/Shop/src/Http/Controllers/WebsiteReviewController.php create mode 100644 packages/TPS/Shop/src/Models/WebsiteReview.php create mode 100644 packages/TPS/Shop/src/Repositories/WebsiteReviewRepository.php create mode 100644 packages/TPS/Shop/src/Resources/views/shop/home/reviews.blade.php create mode 100644 packages/TPS/Shop/src/Resources/views/shop/products/popup-card.blade.php create mode 100644 packages/TPS/Shop/src/Resources/views/shop/websiteReview/index.blade.php create mode 100644 packages/TPS/Shop/src/Resources/views/shop/websiteReview/review-popup.blade.php 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/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..9a3f915f1 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,6 +64,9 @@ @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')) @@ -90,6 +93,7 @@ @endpush diff --git a/packages/TPS/Shop/src/Resources/views/shop/home/reviews.blade.php b/packages/TPS/Shop/src/Resources/views/shop/home/reviews.blade.php new file mode 100644 index 000000000..3d0ef21f4 --- /dev/null +++ b/packages/TPS/Shop/src/Resources/views/shop/home/reviews.blade.php @@ -0,0 +1,60 @@ +@inject ('websiteReviewRepository', 'TPS\Shop\Repositories\WebsiteReviewRepository') +@php + $websiteReview = $websiteReviewRepository->paginate(4) +@endphp + +
+
+
+ + @if ($websiteReview->count() > 0) +
+

{{__('shop::app.review.reviews')}}

+ {{__('shop::app.review.all-reviews')}} + + +
+ @endif + +
+ + @if ($websiteReview->count() > 0) + + @foreach($websiteReview as $vol) + +
+
+ @for ($i = 1; $i <= 5; $i++) + + + + @endfor +
+
+

{{ $vol->review_text }}

+
+

{{ $vol->customer->first_name }}

+
{{ $vol->created_at->format('d.m.Y') }}
+
+
+
+ @endforeach + + @endif +
+ + @auth('customer') + + @else + + @endauth + + + +
+
+
\ No newline at end of file diff --git a/packages/TPS/Shop/src/Resources/views/shop/products/add-buttons.blade.php b/packages/TPS/Shop/src/Resources/views/shop/products/add-buttons.blade.php index 3c8be8bbf..8addabeda 100644 --- a/packages/TPS/Shop/src/Resources/views/shop/products/add-buttons.blade.php +++ b/packages/TPS/Shop/src/Resources/views/shop/products/add-buttons.blade.php @@ -2,27 +2,31 @@ @php $showWishlist = core()->getConfigData('general.content.shop.wishlist_option') == "1" ? true : false; + //dd($product->getTypeInstance()->totalQuantity()); @endphp +@if ($product->haveSufficientQuantity(1) > 0) + +@else + +@endif diff --git a/packages/TPS/Shop/src/Resources/views/shop/products/popup-card.blade.php b/packages/TPS/Shop/src/Resources/views/shop/products/popup-card.blade.php new file mode 100644 index 000000000..8ff8cca1a --- /dev/null +++ b/packages/TPS/Shop/src/Resources/views/shop/products/popup-card.blade.php @@ -0,0 +1,138 @@ + + + \ No newline at end of file diff --git a/packages/TPS/Shop/src/Resources/views/shop/websiteReview/index.blade.php b/packages/TPS/Shop/src/Resources/views/shop/websiteReview/index.blade.php new file mode 100644 index 000000000..b61382cab --- /dev/null +++ b/packages/TPS/Shop/src/Resources/views/shop/websiteReview/index.blade.php @@ -0,0 +1,103 @@ +@extends('shop::layouts.master') + +@section('page_title') + {{ __('shop::app.search.page-title') }} +@endsection + +@push('css') + + +@endpush + +@section('content-wrapper') + + + + + + +
+
+
+ + @foreach($websiteReviews as $vol) +
+

{{ $vol->customer->first_name }}

+
+
+ @for ($i = 1; $i <= 5; $i++) + + + + @endfor +
+ {{ $vol->created_at->format('d.m.Y') }} г. +
+

+ {{ $vol->review_text }} +

+
+ @endforeach + +
+
+
+ +@php + $currentPage = $websiteReviews->currentPage(); + $totalPages = $websiteReviews->lastPage(); +@endphp + +
+
+
+
+
+ @if ($currentPage > 1) + + + + @endif + + {{ $currentPage }} + + @if ($currentPage < $totalPages) + + + + @endif +
+ {{__('shop::app.review.total')}} {{ $totalPages }} {{__('shop::app.review.pages')}} +
+
+
+
+ +@endsection + +@push('scripts') +@endpush \ No newline at end of file diff --git a/packages/TPS/Shop/src/Resources/views/shop/websiteReview/review-popup.blade.php b/packages/TPS/Shop/src/Resources/views/shop/websiteReview/review-popup.blade.php new file mode 100644 index 000000000..d03efbbd0 --- /dev/null +++ b/packages/TPS/Shop/src/Resources/views/shop/websiteReview/review-popup.blade.php @@ -0,0 +1,41 @@ +
+
+ @csrf + + × +

Написать отзыв

+ +
+ + +
+
+

Оцените нас

+
+ + + + + + + + + + + + + + + +
+
+ + +
+ + +
diff --git a/packages/TPS/Shop/src/Routes/store-front-routes.php b/packages/TPS/Shop/src/Routes/store-front-routes.php index 996ca9e94..be36fc193 100644 --- a/packages/TPS/Shop/src/Routes/store-front-routes.php +++ b/packages/TPS/Shop/src/Routes/store-front-routes.php @@ -4,6 +4,7 @@ use Illuminate\Support\Facades\Route; use TPS\Shop\Http\Controllers\Home; use TPS\Shop\Http\Controllers\ReviewController; use TPS\Shop\Http\Controllers\ShopController; +use TPS\Shop\Http\Controllers\WebsiteReviewController; Route::group(['middleware' => ['web', 'locale', 'theme', 'currency']], function () { @@ -19,4 +20,7 @@ Route::group(['middleware' => ['web', 'locale', 'theme', 'currency']], function Route::get('/product_reviews/{product_id}',[ReviewController::class,'index'])->name('shop.product.reviews.index'); Route::post('/product_reviews/{product_id}',[ReviewController::class,'store'])->name('shop.product.reviews.store'); + Route::get('/website_reviews',[WebsiteReviewController::class,'index'])->name('shop.website_reviews.index'); + Route::post('/website_reviews',[WebsiteReviewController::class,'store'])->name('shop.website_reviews.store'); + }); diff --git a/packages/Webkul/Velocity/src/Resources/views/shop/products/view/stock.blade.php b/packages/Webkul/Velocity/src/Resources/views/shop/products/view/stock.blade.php index 5a9c53a47..e98071887 100644 --- a/packages/Webkul/Velocity/src/Resources/views/shop/products/view/stock.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/shop/products/view/stock.blade.php @@ -12,5 +12,5 @@ @endif - + {!! view_render_event('bagisto.shop.products.view.stock.after', ['product' => $product]) !!} \ No newline at end of file From d8263df41109af4b430e6626b43c49b63021e4bd Mon Sep 17 00:00:00 2001 From: mrNikto9 Date: Sat, 13 Jul 2024 11:58:46 +0500 Subject: [PATCH 2/5] changed reviews blade --- .../TPS/Shop/src/Resources/views/shop/home/reviews.blade.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/TPS/Shop/src/Resources/views/shop/home/reviews.blade.php b/packages/TPS/Shop/src/Resources/views/shop/home/reviews.blade.php index 3d0ef21f4..22993b5df 100644 --- a/packages/TPS/Shop/src/Resources/views/shop/home/reviews.blade.php +++ b/packages/TPS/Shop/src/Resources/views/shop/home/reviews.blade.php @@ -7,14 +7,12 @@
- @if ($websiteReview->count() > 0)

{{__('shop::app.review.reviews')}}

{{__('shop::app.review.all-reviews')}}
- @endif
From 9cabcff17f1ff650e3d2aa71ee2d9bc58005e061 Mon Sep 17 00:00:00 2001 From: mrNikto9 Date: Sat, 13 Jul 2024 13:59:55 +0500 Subject: [PATCH 3/5] changed index blade --- .../TPS/Shop/src/Resources/views/shop/home/index.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 9a3f915f1..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 @@ -71,7 +71,7 @@ @if(core()->getConfigData('customer.settings.newsletter.subscription')) -