mirror of https://github.com/4xmen/xshop.git
Compare commits
No commits in common. 'cad797d8bf1576743efbb98afdafc18c9b787d9c' and 'ee0069dcd0827b5f809e6578dd15fef464b28a5d' have entirely different histories.
cad797d8bf
...
ee0069dcd0
@ -1,17 +0,0 @@
|
|||||||
<div id='FarhadSocial'>
|
|
||||||
<div id="fari-btn">
|
|
||||||
<i class="ri-customer-service-2-fill"></i>
|
|
||||||
</div>
|
|
||||||
<div id="fari-collapse">
|
|
||||||
<a href="tel:{{getSetting('tel')}}" " data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
|
|
||||||
data-bs-title="{{__("Phone")}}">
|
|
||||||
<i class="ri-phone-line"></i>
|
|
||||||
</a>
|
|
||||||
@foreach(getSettingsGroup('social_')??[] as $k => $social)
|
|
||||||
<a href="{{$social}}" data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
|
|
||||||
data-bs-title="{{ucfirst($k)}}">
|
|
||||||
<i class="ri-{{$k}}-line"></i>
|
|
||||||
</a>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "FarhadSocial",
|
|
||||||
"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": []
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Resources\Views\Segments;
|
|
||||||
|
|
||||||
use App\Models\Part;
|
|
||||||
|
|
||||||
class FarhadSocial
|
|
||||||
{
|
|
||||||
public static function onAdd(Part $part = null)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
public static function onRemove(Part $part = null)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
public static function onMount(Part $part = null)
|
|
||||||
{
|
|
||||||
return $part;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
#FarhadSocial {
|
|
||||||
// scss
|
|
||||||
position: fixed;
|
|
||||||
z-index: 99;
|
|
||||||
inset-inline-start: 1rem;
|
|
||||||
bottom: 1rem;
|
|
||||||
i{
|
|
||||||
font-size: 37px;
|
|
||||||
}
|
|
||||||
#fari-btn{
|
|
||||||
background: var(--xshop-secondary);
|
|
||||||
color: var(--xshop-diff2);
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border-radius: 50%;
|
|
||||||
position: absolute;
|
|
||||||
inset-inline-start: 0;
|
|
||||||
bottom: 0;
|
|
||||||
z-index: 98;
|
|
||||||
}
|
|
||||||
#fari-collapse{
|
|
||||||
a{
|
|
||||||
background: var(--xshop-primary);
|
|
||||||
color: var(--xshop-diff);
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border-radius: 50%;
|
|
||||||
position: absolute;
|
|
||||||
inset-inline-start: 0;
|
|
||||||
bottom: 0;
|
|
||||||
z-index: 96;
|
|
||||||
transition: 500ms;
|
|
||||||
box-shadow: var(--xshop-shadow);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:hover{
|
|
||||||
#fari-collapse{
|
|
||||||
a:nth-child(1){
|
|
||||||
bottom: 3.5rem;
|
|
||||||
}
|
|
||||||
a:nth-child(2){
|
|
||||||
bottom: 7rem;
|
|
||||||
}
|
|
||||||
a:nth-child(3){
|
|
||||||
bottom: 10.5rem;
|
|
||||||
}
|
|
||||||
a:nth-child(4){
|
|
||||||
bottom: 14rem;
|
|
||||||
}
|
|
||||||
a:nth-child(5){
|
|
||||||
bottom: 17.5rem;
|
|
||||||
}
|
|
||||||
a:nth-child(6){
|
|
||||||
bottom: 21rem;
|
|
||||||
}
|
|
||||||
a:nth-child(7){
|
|
||||||
bottom: 24.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 19 KiB |
@ -1,15 +0,0 @@
|
|||||||
<section class='MaryamCategoryProducts'>
|
|
||||||
<div class="{{gfx()['container']}}">
|
|
||||||
<h1>
|
|
||||||
{{getSetting($data->area_name.'_'.$data->part.'_title')}}
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<div class="maryam-row">
|
|
||||||
@foreach(getCategoryProductBySetting($part->area_name . '_' . $part->part.'_category',12) as $product)
|
|
||||||
<a class="maryam-item" href="{{$product->webUrl()}}">
|
|
||||||
<img src="{{$product->imgUrl()}}" alt="{{$product->name}}" class="img-fluid" loading="lazy">
|
|
||||||
</a>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "MaryamCategoryProducts",
|
|
||||||
"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": []
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Resources\Views\Segments;
|
|
||||||
|
|
||||||
use App\Models\Category;
|
|
||||||
use App\Models\Part;
|
|
||||||
use App\Models\Setting;
|
|
||||||
|
|
||||||
class MaryamCategoryProducts
|
|
||||||
{
|
|
||||||
public static function onAdd(Part $part = null)
|
|
||||||
{
|
|
||||||
|
|
||||||
$setting = new Setting();
|
|
||||||
$setting->section = 'theme';
|
|
||||||
$setting->key = $part->area_name . '_' . $part->part.'_title';
|
|
||||||
$setting->value = 'Another products';
|
|
||||||
$setting->type = 'TEXT';
|
|
||||||
$setting->size = 12;
|
|
||||||
$setting->title = $part->area_name . ' ' . $part->part .' title';
|
|
||||||
$setting->save();
|
|
||||||
|
|
||||||
|
|
||||||
$setting = new Setting();
|
|
||||||
$setting->section = 'theme';
|
|
||||||
$setting->key = $part->area_name . '_' . $part->part.'_color_bg';
|
|
||||||
$setting->value = '#1c213a';
|
|
||||||
$setting->data = json_encode(['name' => 'maryam-bg-color']);
|
|
||||||
$setting->type = 'COLOR';
|
|
||||||
$setting->size = 4;
|
|
||||||
$setting->title = $part->area_name . ' ' . $part->part .' background color';
|
|
||||||
$setting->save();
|
|
||||||
|
|
||||||
$setting = new Setting();
|
|
||||||
$setting->section = 'theme';
|
|
||||||
$setting->key = $part->area_name . '_' . $part->part.'_color_text';
|
|
||||||
$setting->value = '#ffae00';
|
|
||||||
$setting->data = json_encode(['name' => 'maryam-text-color']);
|
|
||||||
$setting->type = 'COLOR';
|
|
||||||
$setting->size = 4;
|
|
||||||
$setting->title = $part->area_name . ' ' . $part->part .' text color';
|
|
||||||
$setting->save();
|
|
||||||
|
|
||||||
$setting = new Setting();
|
|
||||||
$setting->section = 'theme';
|
|
||||||
$setting->key = $part->area_name . '_' . $part->part.'_category';
|
|
||||||
$setting->value = Category::first()->id;
|
|
||||||
$setting->type = 'CATEGORY';
|
|
||||||
$setting->size = 4;
|
|
||||||
$setting->title = $part->area_name . ' ' . $part->part .' category';
|
|
||||||
$setting->save();
|
|
||||||
|
|
||||||
}
|
|
||||||
public static function onRemove(Part $part = null)
|
|
||||||
{
|
|
||||||
Setting::where('key',$part->area_name . '_' . $part->part.'_title')->first()?->delete();
|
|
||||||
Setting::where('key',$part->area_name . '_' . $part->part.'_color_bg')->first()?->delete();
|
|
||||||
Setting::where('key',$part->area_name . '_' . $part->part.'_color_text')->first()?->delete();
|
|
||||||
Setting::where('key',$part->area_name . '_' . $part->part.'_category')->first()?->delete();
|
|
||||||
}
|
|
||||||
public static function onMount(Part $part = null)
|
|
||||||
{
|
|
||||||
return $part;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,79 +0,0 @@
|
|||||||
.MaryamCategoryProducts {
|
|
||||||
// scss
|
|
||||||
position: relative;
|
|
||||||
background: var(--maryam-bg-color);
|
|
||||||
color: var(--maryam-text-color);
|
|
||||||
padding: 3rem 0;
|
|
||||||
|
|
||||||
h1{
|
|
||||||
font-size: 27px;
|
|
||||||
text-align: center;
|
|
||||||
font-weight: 200;
|
|
||||||
position: relative;
|
|
||||||
padding: 1rem;
|
|
||||||
|
|
||||||
&:after,&:before{
|
|
||||||
content: ' ';
|
|
||||||
border-bottom: 1px solid var(--maryam-text-color);
|
|
||||||
position: absolute;
|
|
||||||
top: 47% ;
|
|
||||||
z-index: 2;
|
|
||||||
width: 15%;
|
|
||||||
opacity: .5;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:before{
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
&:after{
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:after{
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background: linear-gradient(0deg, var(--maryam-bg-color) 35%, transparent 100%);
|
|
||||||
height: 50%;
|
|
||||||
content: ' ';
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.maryam-row{
|
|
||||||
column-count: 4;
|
|
||||||
.maryam-item{
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*-1000px width*/
|
|
||||||
@media (max-width: 1000px) {
|
|
||||||
.maryam-row {
|
|
||||||
column-count: 3 ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*-768px width*/
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
.maryam-row {
|
|
||||||
column-count: 2 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:after{
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background: linear-gradient(0deg, var(--maryam-bg-color) 35%, transparent 100%);
|
|
||||||
height: 25%;
|
|
||||||
content: ' ';
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 838 KiB |
@ -1,179 +0,0 @@
|
|||||||
<section id='ProductYasamin' >
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-5">
|
|
||||||
<div class="ps-2">
|
|
||||||
<nav aria-label="breadcrumb" class="pt-1 my-2">
|
|
||||||
<ol class="breadcrumb">
|
|
||||||
<li class="breadcrumb-item">
|
|
||||||
<a href="{{homeUrl()}}">
|
|
||||||
{{config('app.name')}}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="breadcrumb-item">
|
|
||||||
<a href="{{$product->category->webUrl()}}">
|
|
||||||
{{$product->category->name}}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="breadcrumb-item active" aria-current="page">
|
|
||||||
{{$product->name}}
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
<h1>
|
|
||||||
{{$product->name}}
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
<div class="yac-product-data">
|
|
||||||
<rate-input xtitle="{{__("Rate")}}" xname="" :xvalue="{{$product->rate}}"></rate-input>
|
|
||||||
</div>
|
|
||||||
@if($product->sku != null && $product->sku != '')
|
|
||||||
<div class="yac-product-data">
|
|
||||||
|
|
||||||
<span>
|
|
||||||
{{__("SKU")}}:
|
|
||||||
</span>
|
|
||||||
<b class="float-end">
|
|
||||||
{{$product->sku}}
|
|
||||||
</b>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
<div class="row text-center">
|
|
||||||
<div id="price" class="col">
|
|
||||||
{{$product->getPrice()}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if($product->hasDiscount())
|
|
||||||
<div id="price-old" class="col">
|
|
||||||
{{$product->oldPrice()}}
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
@if($product->quantities()->count()>0)
|
|
||||||
<quantities-add-to-card
|
|
||||||
:qz='@json($product->quantities)'
|
|
||||||
:props='@json(usableProp($product->category->props))'
|
|
||||||
currency="{{config('app.currency.symbol')}}"
|
|
||||||
card-link="{{ route('client.product-card-toggle',$product->slug) }}"
|
|
||||||
:translate='@json(['add-to-card' => __('Add to card')])'
|
|
||||||
@if($product->hasDiscount())
|
|
||||||
:discount='@json($product->activeDiscounts()->first())'
|
|
||||||
@endif
|
|
||||||
></quantities-add-to-card>
|
|
||||||
@else
|
|
||||||
<div class="text-center">
|
|
||||||
<a href="{{ route('client.product-card-toggle',$product->slug) }}"
|
|
||||||
class="btn btn-outline-primary add-to-card btn-lg">
|
|
||||||
<i class="ri-shopping-bag-3-line"></i>
|
|
||||||
{{__("Add to card")}}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
<h4>
|
|
||||||
{{__("Description")}}
|
|
||||||
</h4>
|
|
||||||
<div class="p-3">
|
|
||||||
<div class="alert alert-info">
|
|
||||||
{{$product->excerpt}}
|
|
||||||
</div>
|
|
||||||
{!! $product->description !!}
|
|
||||||
|
|
||||||
@if($product->table != null || trim($product->table) != '')
|
|
||||||
{!! $product->table !!}
|
|
||||||
@endif
|
|
||||||
|
|
||||||
<table class="table table-striped table-striped">
|
|
||||||
<tr class="text-center">
|
|
||||||
<th class="w-50">
|
|
||||||
{{__("Item")}}
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
{{__("Value")}}
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
@foreach($product->fullMeta() as $meta)
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<i class="{{$meta['data']->icon}}"></i>
|
|
||||||
|
|
||||||
{{$meta['data']->label}}
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
{!! $meta['human_value'] !!}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
@endforeach
|
|
||||||
</table>
|
|
||||||
|
|
||||||
@if(auth('customer')->check())
|
|
||||||
<form id="rating-form" method="post" data-url="{{route('client.rate')}}">
|
|
||||||
@csrf
|
|
||||||
<input type="hidden" name="rateable_id" value="{{$product->id}}">
|
|
||||||
<input type="hidden" name="rateable_type" value="{{\App\Models\Product::class}}">
|
|
||||||
@foreach($product->evaluations() as $e)
|
|
||||||
<rate-input xtitle="{{$e->title}}" xname="rate[{{ $e->id }}]" :xvalue="{{detectRateCustomer(\App\Models\Product::class,$product->id,$e->id)}}"></rate-input>
|
|
||||||
<hr>
|
|
||||||
@endforeach
|
|
||||||
<button class="btn btn-primary w-100">
|
|
||||||
<i class="ri-send-plane-line"></i>
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
@if($product->categories()->count() > 0)
|
|
||||||
<div class="yac-product-data">
|
|
||||||
<span>
|
|
||||||
{{__("Categories")}}:
|
|
||||||
</span>
|
|
||||||
@foreach($product->categories()->where('id','<>',$product->category->id)->get() as $cat)
|
|
||||||
<a href="{{$cat->webUrl()}}">
|
|
||||||
{{$cat->name}},
|
|
||||||
</a>
|
|
||||||
@endforeach
|
|
||||||
<a href="{{$product->category->webUrl()}}">
|
|
||||||
{{$product->category->name}}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@if($product->tags()->count() > 0)
|
|
||||||
<div class="yac-product-data">
|
|
||||||
<span>
|
|
||||||
{{__("Tags")}}:
|
|
||||||
</span>
|
|
||||||
@foreach($product->tags as $tag)
|
|
||||||
<a href="{{tagUrl($tag->slug)}}" class="tag me-2">
|
|
||||||
<i class="ri-price-tag-line"></i>
|
|
||||||
{{$tag->name}}
|
|
||||||
</a>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-7">
|
|
||||||
<div id="yac-images">
|
|
||||||
@foreach($product->getMedia() as $media)
|
|
||||||
<div class="item">
|
|
||||||
<a href="{{$media->getUrl('product-image')}}" class="light-box"
|
|
||||||
data-gallery="yac-products">
|
|
||||||
<img src="{{$media->getUrl('product-image')}}" alt="{{$product->name}}">
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="container-fluid">
|
|
||||||
<h3 class="mt-4">
|
|
||||||
{{__("Related products")}}
|
|
||||||
</h3>
|
|
||||||
<div id="rel-products" class="mb-2">
|
|
||||||
@foreach($product->category->products()->where('status',1)->limit(10)->get() as $p)
|
|
||||||
<div class="item">
|
|
||||||
@include(\App\Models\Area::where('name','product-grid')->first()->defPart(),['$product' => $p])
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
@ -1,43 +0,0 @@
|
|||||||
import Lightbox from "bs5-lightbox";
|
|
||||||
import {tns} from "tiny-slider";
|
|
||||||
|
|
||||||
var YacRelativeSlider;
|
|
||||||
document.addEventListener('DOMContentLoaded',function () {
|
|
||||||
for (const el of document.querySelectorAll('.light-box')) {
|
|
||||||
el.addEventListener('click', Lightbox.initialize);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
YacRelativeSlider = tns({
|
|
||||||
container: '#rel-products',
|
|
||||||
items: 3,
|
|
||||||
autoplay: true,
|
|
||||||
autoplayButton: false,
|
|
||||||
// nextButton: false,
|
|
||||||
controls: false,
|
|
||||||
autoplayHoverPause: true,
|
|
||||||
mouseDrag: true,
|
|
||||||
gutter: 5,
|
|
||||||
slideBy: 1,
|
|
||||||
autoplayTimeout: 5000,
|
|
||||||
responsive:{
|
|
||||||
560:{
|
|
||||||
items: 1,
|
|
||||||
},
|
|
||||||
768:{
|
|
||||||
items: 2,
|
|
||||||
},
|
|
||||||
1000:{
|
|
||||||
items: 4,
|
|
||||||
},
|
|
||||||
1400:{
|
|
||||||
items: 5,
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
|
||||||
// speed:10000,
|
|
||||||
});
|
|
||||||
} catch {
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "ProductYasamin",
|
|
||||||
"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": []
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Resources\Views\Segments;
|
|
||||||
|
|
||||||
use App\Models\Part;
|
|
||||||
|
|
||||||
class ProductYasamin
|
|
||||||
{
|
|
||||||
public static function onAdd(Part $part = null)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
public static function onRemove(Part $part = null)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
public static function onMount(Part $part = null)
|
|
||||||
{
|
|
||||||
return $part;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
#ProductYasamin {
|
|
||||||
// scss
|
|
||||||
|
|
||||||
h1{
|
|
||||||
font-size: 27px;
|
|
||||||
font-weight: 300;
|
|
||||||
}
|
|
||||||
#yac-images{
|
|
||||||
font-size: 0;
|
|
||||||
|
|
||||||
|
|
||||||
.item{
|
|
||||||
display: inline-block;
|
|
||||||
|
|
||||||
&:nth-child(3n+1) {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
&:nth-child(3n+2) ,&:nth-child(3n+3) {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
img{
|
|
||||||
width: 100%;
|
|
||||||
height: 45vh;
|
|
||||||
object-fit: cover;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.yac-product-data{
|
|
||||||
padding: 1rem 1.3rem;
|
|
||||||
|
|
||||||
.p-2{
|
|
||||||
padding: 0 !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#price, #old-price{
|
|
||||||
font-size: 27px;
|
|
||||||
font-size: 27px;
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.1 MiB |
@ -1,28 +0,0 @@
|
|||||||
<section class='ProductGridHiddenSidebar'>
|
|
||||||
<div class="{{gfx()['container']}}">
|
|
||||||
<h1>
|
|
||||||
{{$title}}
|
|
||||||
|
|
||||||
<div class="btn btn-dark" id="filter-btn-show" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-custom-class="custom-tooltip"
|
|
||||||
data-bs-title="{{__("Sort & filter")}}">
|
|
||||||
<i class="ri-sort-desc"></i>
|
|
||||||
</div>
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<div id="hidden-sidebar">
|
|
||||||
@include('segments.products_page.ProductGridHiddenSidebar.inc.product-sidebar-filter')
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="py-3">
|
|
||||||
<div class="row">
|
|
||||||
@foreach($products as $product)
|
|
||||||
<div class="col-md-4 p-2">
|
|
||||||
@include(\App\Models\Area::where('name','product-grid')->first()->defPart(),compact('product'))
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
{{$products->withQueryString()->links()}}
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
@ -1,10 +0,0 @@
|
|||||||
document.addEventListener('DOMContentLoaded',function () {
|
|
||||||
document.querySelector('#filter-btn-show')?.addEventListener('click',function () {
|
|
||||||
document.querySelector('#hidden-sidebar').style.display = 'block';
|
|
||||||
});
|
|
||||||
document.querySelector('#hidden-sidebar')?.addEventListener('click',function (e) {
|
|
||||||
if (e.target == document.querySelector('#hidden-sidebar') ) {
|
|
||||||
document.querySelector('#hidden-sidebar').style.display = 'none';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "ProductGridHiddenSidebar",
|
|
||||||
"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": []
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Resources\Views\Segments;
|
|
||||||
|
|
||||||
use App\Models\Part;
|
|
||||||
|
|
||||||
class ProductGridHiddenSidebar
|
|
||||||
{
|
|
||||||
public static function onAdd(Part $part = null)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
public static function onRemove(Part $part = null)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
public static function onMount(Part $part = null)
|
|
||||||
{
|
|
||||||
return $part;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
.ProductGridHiddenSidebar {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// scss
|
|
||||||
h1 {
|
|
||||||
font-size: 27px;
|
|
||||||
text-align: center;
|
|
||||||
background: var(--xshop-secondary);
|
|
||||||
color: var(--xshop-diff2);
|
|
||||||
margin: 1rem 0;
|
|
||||||
padding: .5rem;
|
|
||||||
font-weight: 200;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
position: absolute;
|
|
||||||
inset-inline-end: 0;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
width: 75px;
|
|
||||||
i{
|
|
||||||
font-size: 25px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#hidden-sidebar{
|
|
||||||
background: #ffffff44;
|
|
||||||
backdrop-filter: grayscale(1);
|
|
||||||
position: fixed;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
top: 0;
|
|
||||||
display: none;
|
|
||||||
z-index: 999;
|
|
||||||
|
|
||||||
aside{
|
|
||||||
width: 300px;
|
|
||||||
max-width: 95%;
|
|
||||||
background: var(--xshop-background);
|
|
||||||
position: absolute;
|
|
||||||
inset-inline-start: 0;
|
|
||||||
padding: 1rem;
|
|
||||||
box-sizing: border-box;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
overflow-y: auto;
|
|
||||||
padding-top: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
<aside class="mt-2">
|
|
||||||
<div class="side-item">
|
|
||||||
<h4>
|
|
||||||
{{__("Filter")}}
|
|
||||||
</h4>
|
|
||||||
<div class="side-data">
|
|
||||||
<meta-filter
|
|
||||||
props-api-link="{{route('v1.category.prop','')}}/"
|
|
||||||
@if(isset($category))
|
|
||||||
category="{{$category->id}}"
|
|
||||||
@endif
|
|
||||||
>
|
|
||||||
</meta-filter>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
Binary file not shown.
Before Width: | Height: | Size: 866 KiB |
Loading…
Reference in New Issue