diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php
index c9bc7ed..fc7cffc 100644
--- a/app/Http/Controllers/ClientController.php
+++ b/app/Http/Controllers/ClientController.php
@@ -206,6 +206,8 @@ class ClientController extends Controller
->where('data', 'LIKE', '%"'.$prop->name.'":"' . $request->meta[$prop->name] . '"%')
->pluck('product_id')->toArray();
+ $id = array_merge($id,$query->whereMeta($prop->name, $request->input('meta')[$prop->name])->pluck('id')->toArray());
+ $id = array_unique($id);
$query->whereIn('id', $id);
}else{
$query->whereMeta($prop->name, $request->input('meta')[$prop->name]);
@@ -347,4 +349,17 @@ class ClientController extends Controller
return redirect()->back()->with(['message' => $message]);
}
}
+
+
+
+ public function compare()
+ {
+ $area = 'compare';
+ $title = __("Compare products");
+ $subtitle = '';
+ $ids = json_decode(\Cookie::get('compares'), true);
+ $products = Product::whereIn('id',$ids)->where('status',1)->get();
+ return view('client.default-list', compact('area', 'products', 'title', 'subtitle'));
+ }
+
}
diff --git a/app/Models/Product.php b/app/Models/Product.php
index 4b50b4c..5a5193d 100644
--- a/app/Models/Product.php
+++ b/app/Models/Product.php
@@ -232,13 +232,18 @@ class Product extends Model implements HasMedia
$result[$key]['human_value'] = "
";
break;
case 'checkbox':
- $result[$key]['human_value'] = $value ? '✅' : '❌';
+ $result[$key]['human_value'] = $value ? '' : '';
break;
- case 'multi':
case 'select':
case 'singlemulti':
if (!is_array($value)) {
- $result[$key]['human_value'] = $result[$key]['data']->datas[$value];
+ if (isset( $result[$key]['data']->datas[$value])){
+
+ $result[$key]['human_value'] =
+ $result[$key]['data']->datas[$value];
+ }else{
+ $result[$key]['human_value'] = '-';
+ }
} else {
$result[$key]['human_value'] = '';
foreach ($value as $k => $v) {
@@ -249,10 +254,13 @@ class Product extends Model implements HasMedia
break;
default:
if (is_array($value)) {
- $result[$key]['human_value'] = implode(', ', $value);
+ $result[$key]['human_value'] = ''.implode(' ', $value).'';
} else {
-
- $result[$key]['human_value'] = $value;
+ if ($value == '' || $value == null) {
+ $result[$key]['human_value'] = '-';
+ }else{
+ $result[$key]['human_value'] = $value;
+ }
}
}
diff --git a/resources/views/segments/compare/CompareProducts/CompareProducts.blade.php b/resources/views/segments/compare/CompareProducts/CompareProducts.blade.php
new file mode 100644
index 0000000..8fd0332
--- /dev/null
+++ b/resources/views/segments/compare/CompareProducts/CompareProducts.blade.php
@@ -0,0 +1,47 @@
+
+
+
+ {{$title}}
+
+
+ @foreach($products as $product)
+
+
+
+
}})
+
+ {{$product->name}}
+
+
+
+ -
+
+ {{__("Price")}}
+
+
+ {{$product->getPrice()}}
+
+
+ @foreach($product->fullMeta() as $meta)
+ -
+
+ {{$meta['data']->label}}
+
+
+ {!! $meta['human_value'] !!}
+
+
+ @endforeach
+
+
+
+
+ @endforeach
+
+
+
diff --git a/resources/views/segments/compare/CompareProducts/CompareProducts.js b/resources/views/segments/compare/CompareProducts/CompareProducts.js
new file mode 100644
index 0000000..e69de29
diff --git a/resources/views/segments/compare/CompareProducts/CompareProducts.json b/resources/views/segments/compare/CompareProducts/CompareProducts.json
new file mode 100644
index 0000000..1c72aae
--- /dev/null
+++ b/resources/views/segments/compare/CompareProducts/CompareProducts.json
@@ -0,0 +1,10 @@
+{
+ "name": "CompareProducts",
+ "version": "1.0",
+ "author": "xStack",
+ "email": "xshop@xstack.ir",
+ "license": "GPL-3.0-or-later",
+ "url": "https:\/\/xstack.ir",
+ "author_url": "https:\/\/4xmen.ir",
+ "packages": []
+}
\ No newline at end of file
diff --git a/resources/views/segments/compare/CompareProducts/CompareProducts.php b/resources/views/segments/compare/CompareProducts/CompareProducts.php
new file mode 100644
index 0000000..a00caa7
--- /dev/null
+++ b/resources/views/segments/compare/CompareProducts/CompareProducts.php
@@ -0,0 +1,21 @@
+name('welcome');
Route::get('/posts', [\App\Http\Controllers\ClientController::class,'posts'])->name('posts');
+ Route::get('/compare', [\App\Http\Controllers\ClientController::class,'compare'])->name('compare');
Route::get('/galleries', [\App\Http\Controllers\ClientController::class,'galleries'])->name('galleries');
Route::get('/products', [\App\Http\Controllers\ClientController::class,'products'])->name('products');
Route::get('/tag/{post}', [\App\Http\Controllers\ClientController::class,'tag'])->name('tag'); // wip