Compare commits

...

8 Commits

@ -680,9 +680,10 @@ function getSetting($key)
// $a = new \stdClass(); // $a = new \stdClass();
return ''; return '';
} }
if (config('app.xlang') && ($x->type == 'group' || $x->type == 'category')) {
$defLang = config('app.xlang_main'); $txtType = ['TEXT','LONGTEXT','EDITOR'];
return $x->getTranslations('value')[$defLang]; if (config('app.xlang') && !in_array($x->type, $txtType)) {
return $x->raw;
} }
return $x->value; return $x->value;
} }

@ -80,6 +80,7 @@ class SettingController extends Controller
if ($set != null && !$request->hasFile($key)) { if ($set != null && !$request->hasFile($key)) {
$set->value = validateSettingRequest($set,$val); $set->value = validateSettingRequest($set,$val);
$set->raw = validateSettingRequest($set,$val);
// need to test // need to test
if (config('app.xlang.active') && config('app.xlang.main') != 'en' && ( if (config('app.xlang.active') && config('app.xlang.main') != 'en' && (
$set->type != 'TEXT' && $set->type != 'EDITOR' && $set->type != 'LONGTEXT')){ $set->type != 'TEXT' && $set->type != 'EDITOR' && $set->type != 'LONGTEXT')){

@ -19,6 +19,7 @@ return new class extends Migration
$table->boolean('active')->default(true); $table->boolean('active')->default(true);
$table->string('key')->unique(); $table->string('key')->unique();
$table->text('value')->nullable(); $table->text('value')->nullable();
$table->text('raw')->nullable();
$table->boolean('ltr')->default(false); $table->boolean('ltr')->default(false);
$table->boolean('is_basic')->default(false); $table->boolean('is_basic')->default(false);
$table->boolean('size')->default('12'); $table->boolean('size')->default('12');

@ -29,7 +29,20 @@ html {
body { body {
background: var(--xshop-background); background: var(--xshop-background);
color: var(--xshop-text); color: var(--xshop-text);
overflow-x: hidden; }
html, body {
overscroll-behavior-x: none;
max-width: 100% !important;
overflow-x: hidden !important;
zoom: 0;
position: relative;
}
main{
-webkit-overflow-scrolling: touch;
overflow-x: hidden !important;
width: 100%;
} }

@ -0,0 +1,17 @@
<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>

@ -0,0 +1,10 @@
{
"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": []
}

@ -0,0 +1,21 @@
<?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;
}
}

@ -0,0 +1,67 @@
#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.

After

Width:  |  Height:  |  Size: 19 KiB

@ -0,0 +1,15 @@
<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>

@ -0,0 +1,10 @@
{
"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": []
}

@ -0,0 +1,65 @@
<?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;
}
}

@ -0,0 +1,79 @@
.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.

After

Width:  |  Height:  |  Size: 838 KiB

@ -21,6 +21,7 @@
</div> </div>
<div class="col-md-6 nata-bg" <div class="col-md-6 nata-bg"
style="background-image: url('{{$bg??asset('upload/images/'.$part->area_name . '.' . $part->part.'.webp')}}')"> style="background-image: url('{{$bg??asset('upload/images/'.$part->area_name . '.' . $part->part.'.webp')}}')">
<img src="{{asset('upload/images/'.$part->area_name . '.' . $part->part.'.webp')}}" alt="">
</div> </div>
</div> </div>
</div> </div>

@ -9,8 +9,9 @@
top: -3rem; top: -3rem;
padding-bottom: 5rem; padding-bottom: 5rem;
margin-bottom: -3rem; margin-bottom: -3rem;
*{ img{
opacity: 0; width: 75%;
display: none;
} }
} }
@ -41,4 +42,17 @@
} }
} }
} }
/*-768px width*/
@media (max-width: 768px) {
.nata-bg{
background-image: none !important;
padding-bottom: 0;
img{
display: block;
margin: auto;
}
}
}
} }

@ -0,0 +1,179 @@
<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>
&nbsp;
{{$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>

@ -0,0 +1,43 @@
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 {
}
});

@ -0,0 +1,10 @@
{
"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": []
}

@ -0,0 +1,21 @@
<?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;
}
}

@ -0,0 +1,42 @@
#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.

After

Width:  |  Height:  |  Size: 1.1 MiB

@ -1,4 +1,4 @@
<div class="DefaultProductGrid"> <div class="DefaultProductGrid xshop-product-item">
<a class="fav-btn" data-slug="{{$product->slug}}" data-is-fav="{{$product->isFav()}}" <a class="fav-btn" data-slug="{{$product->slug}}" data-is-fav="{{$product->isFav()}}"
data-bs-custom-class="custom-tooltip" data-bs-custom-class="custom-tooltip"
data-bs-toggle="tooltip" data-bs-placement="auto" title="{{__("Add to / Remove from favorites")}}"> data-bs-toggle="tooltip" data-bs-placement="auto" title="{{__("Add to / Remove from favorites")}}">
@ -12,7 +12,7 @@
<i class="ri-scales-3-line"></i> <i class="ri-scales-3-line"></i>
</a> </a>
<a href="{{$product->webUrl()}}"> <a href="{{$product->webUrl()}}">
<img src="{{$product->imgUrl()}}" alt="{{$product->name}}" loading="lazy"> <img src="{{$product->thumbUrl()}}" alt="{{$product->name}}" loading="lazy">
<h3> <h3>
{{$product->name}} {{$product->name}}
</h3> </h3>

@ -1,7 +1,7 @@
<div class="MinooProductGrid"> <div class="MinooProductGrid xshop-product-item">
<a href="{{$product->webUrl()}}"> <a href="{{$product->webUrl()}}">
<img src="{{$product->imgUrl()}}" alt="{{$product->name}}" loading="lazy"> <img src="{{$product->thumbUrl()}}" alt="{{$product->name}}" loading="lazy">
<img src="{{$product->imgUrl2()}}" class="img-2" alt="{{$product->name}}" loading="lazy"> <img src="{{$product->thumbUrl2()}}" class="img-2" alt="{{$product->name}}" loading="lazy">
<div class=""> <div class="">
<div class="btns"> <div class="btns">
<a href="{{ route('client.product-card-toggle',$product->slug) }}" <a href="{{ route('client.product-card-toggle',$product->slug) }}"

@ -8,6 +8,8 @@
img { img {
width: 100%; width: 100%;
height: 40vh;
object-fit: cover;
} }
h3 { h3 {

@ -1,4 +1,4 @@
<section class='ShivaProductGrid'> <section class='ShivaProductGrid xshop-product-item'>
<a class="fav-btn" data-slug="{{$product->slug}}" data-is-fav="{{$product->isFav()}}" <a class="fav-btn" data-slug="{{$product->slug}}" data-is-fav="{{$product->isFav()}}"
data-bs-custom-class="custom-tooltip" data-bs-custom-class="custom-tooltip"
data-bs-toggle="tooltip" data-bs-placement="auto" title="{{__("Add to / Remove from favorites")}}"> data-bs-toggle="tooltip" data-bs-placement="auto" title="{{__("Add to / Remove from favorites")}}">
@ -12,7 +12,7 @@
<i class="ri-scales-3-line"></i> <i class="ri-scales-3-line"></i>
</a> </a>
<a href="{{$product->webUrl()}}"> <a href="{{$product->webUrl()}}">
<img src="{{$product->imgUrl()}}" alt="{{$product->name}}" loading="lazy"> <img src="{{$product->thumbUrl()}}" alt="{{$product->name}}" loading="lazy">
<h3> <h3>
{{$product->name}} {{$product->name}}
</h3> </h3>

@ -0,0 +1,28 @@
<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>

@ -0,0 +1,10 @@
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';
}
});
});

@ -0,0 +1,10 @@
{
"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": []
}

@ -0,0 +1,21 @@
<?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;
}
}

@ -0,0 +1,53 @@
.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;
}
}
}

@ -0,0 +1,16 @@
<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.

After

Width:  |  Height:  |  Size: 866 KiB

@ -3,6 +3,7 @@
namespace Resources\Views\Segments; namespace Resources\Views\Segments;
use App\Models\Part; use App\Models\Part;
use App\Models\Setting;
use App\Models\Slider; use App\Models\Slider;
class ParallaxSlider class ParallaxSlider
@ -12,12 +13,22 @@ class ParallaxSlider
Slider::addData($part->area_name . '_' . $part->part . '_btn','View offer'); Slider::addData($part->area_name . '_' . $part->part . '_btn','View offer');
Slider::addData($part->area_name . '_' . $part->part . '_link','/'); Slider::addData($part->area_name . '_' . $part->part . '_link','/');
Slider::addData($part->area_name . '_' . $part->part . '_subtitle','Lorem ipsum dolor sit amet, consectetur adipisicing elit. A adipisci aliquid aspernatur, commodi corporis cupiditate'); Slider::addData($part->area_name . '_' . $part->part . '_subtitle','Lorem ipsum dolor sit amet, consectetur adipisicing elit. A adipisci aliquid aspernatur, commodi corporis cupiditate');
$setting = new Setting();
$setting->section = 'theme';
$setting->key = $part->area_name . '_' . $part->part.'_color';
$setting->value = '#000000';
$setting->data = json_encode(['name' => 'parallax-color']);
$setting->type = 'COLOR';
$setting->size = 12;
$setting->title = $part->area_name . ' ' . $part->part .' text color';
$setting->save();
} }
public static function onRemove(Part $part = null) public static function onRemove(Part $part = null)
{ {
Slider::remData($part->area_name . '_' . $part->part . '_btn'); Slider::remData($part->area_name . '_' . $part->part . '_btn');
Slider::remData($part->area_name . '_' . $part->part . '_link'); Slider::remData($part->area_name . '_' . $part->part . '_link');
Slider::remData($part->area_name . '_' . $part->part . '_subtitle'); Slider::remData($part->area_name . '_' . $part->part . '_subtitle');
Setting::where('key',$part->area_name . '_' . $part->part.'_color')->first()?->delete();
} }
public static function onMount(Part $part = null) public static function onMount(Part $part = null)
{ {

@ -17,6 +17,7 @@
justify-content: start; justify-content: start;
width: 100%; width: 100%;
height: 750px; height: 750px;
color: var(--parallax-color);
} }
// scss // scss
.parallax-slider { .parallax-slider {

@ -12,7 +12,7 @@
<loc>{{route('client.attachments')}}</loc> <loc>{{route('client.attachments')}}</loc>
<lastmod>{{\App\Models\Attachment::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{\App\Models\Attachment::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>2</priority> <priority>0.7</priority>
</url> </url>
@endif @endif
@foreach(\App\Models\Attachment::where('is_fillable',1)->orderBy('id')->get(['slug','updated_at']) as $item) @foreach(\App\Models\Attachment::where('is_fillable',1)->orderBy('id')->get(['slug','updated_at']) as $item)
@ -21,7 +21,7 @@
<loc>{{route('client.attachment',$item->slug)}}</loc> <loc>{{route('client.attachment',$item->slug)}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@if(config('app.xlang.active')) @if(config('app.xlang.active'))
@ -34,7 +34,7 @@
<loc>{{route('client.attachments')}}/{{$lang}}</loc> <loc>{{route('client.attachments')}}/{{$lang}}</loc>
<lastmod>{{\App\Models\Attachment::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{\App\Models\Attachment::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>2</priority> <priority>0.7</priority>
</url> </url>
@endif @endif
@foreach(\App\Models\Attachment::where('is_fillable',1)->whereLocale('title',$lang)->orderBy('id')->get(['slug','updated_at','title']) as $item) @foreach(\App\Models\Attachment::where('is_fillable',1)->whereLocale('title',$lang)->orderBy('id')->get(['slug','updated_at','title']) as $item)
@ -43,7 +43,7 @@
<loc>{{$item->webUrl()}}</loc> <loc>{{$item->webUrl()}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@endforeach @endforeach

@ -11,7 +11,7 @@
<loc>{{route('client.clips')}}</loc> <loc>{{route('client.clips')}}</loc>
<lastmod>{{\App\Models\Clip::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{\App\Models\Clip::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>2</priority> <priority>0.7</priority>
</url> </url>
@endif @endif
@foreach(\App\Models\Clip::where('status',1)->orderBy('id')->get(['slug','updated_at']) as $item) @foreach(\App\Models\Clip::where('status',1)->orderBy('id')->get(['slug','updated_at']) as $item)
@ -19,7 +19,7 @@
<loc>{{route('client.clip',$item->slug)}}</loc> <loc>{{route('client.clip',$item->slug)}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@if(config('app.xlang.active')) @if(config('app.xlang.active'))
@ -32,7 +32,7 @@
<loc>{{route('client.clips')}}/{{$lang}}</loc> <loc>{{route('client.clips')}}/{{$lang}}</loc>
<lastmod>{{\App\Models\Clip::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{\App\Models\Clip::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>2</priority> <priority>0.7</priority>
</url> </url>
@endif @endif
@foreach(\App\Models\Clip::where('status',1)->whereLocale('title',$lang)->orderBy('id')->get(['slug','updated_at','title']) as $item) @foreach(\App\Models\Clip::where('status',1)->whereLocale('title',$lang)->orderBy('id')->get(['slug','updated_at','title']) as $item)
@ -41,7 +41,7 @@
<loc>{{$item->webUrl()}}</loc> <loc>{{$item->webUrl()}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@endforeach @endforeach

@ -12,7 +12,7 @@
<loc>{{route('client.galleries')}}</loc> <loc>{{route('client.galleries')}}</loc>
<lastmod>{{\App\Models\Gallery::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{\App\Models\Gallery::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>2</priority> <priority>0.7</priority>
</url> </url>
@endif @endif
@foreach(\App\Models\Gallery::where('status',1)->orderBy('id')->get(['slug','updated_at']) as $item) @foreach(\App\Models\Gallery::where('status',1)->orderBy('id')->get(['slug','updated_at']) as $item)
@ -21,7 +21,7 @@
<loc>{{route('client.gallery',$item->slug)}}</loc> <loc>{{route('client.gallery',$item->slug)}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@if(config('app.xlang.active')) @if(config('app.xlang.active'))
@ -34,7 +34,7 @@
<loc>{{route('client.galleries')}}/{{$lang}}</loc> <loc>{{route('client.galleries')}}/{{$lang}}</loc>
<lastmod>{{\App\Models\Gallery::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{\App\Models\Gallery::orderByDesc('updated_at')->first()->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>2</priority> <priority>0.7</priority>
</url> </url>
@endif @endif
@foreach(\App\Models\Gallery::where('status',1)->whereLocale('title',$lang)->orderBy('id')->get(['slug','updated_at','title']) as $item) @foreach(\App\Models\Gallery::where('status',1)->whereLocale('title',$lang)->orderBy('id')->get(['slug','updated_at','title']) as $item)
@ -43,7 +43,7 @@
<loc>{{$item->webUrl()}}</loc> <loc>{{$item->webUrl()}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@endforeach @endforeach

@ -12,7 +12,7 @@
<loc>{{route('client.group',$item->slug)}}</loc> <loc>{{route('client.group',$item->slug)}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@foreach(\App\Models\Category::orderBy('id')->get(['slug','updated_at']) as $item) @foreach(\App\Models\Category::orderBy('id')->get(['slug','updated_at']) as $item)
@ -21,7 +21,7 @@
<loc>{{route('client.category',$item->slug)}}</loc> <loc>{{route('client.category',$item->slug)}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@if(config('app.xlang.active')) @if(config('app.xlang.active'))
@ -34,7 +34,7 @@
<loc>{{$item->webUrl()}}</loc> <loc>{{$item->webUrl()}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@foreach(\App\Models\Category::whereLocale('name',$lang)->orderBy('id')->get(['slug','updated_at','name']) as $item) @foreach(\App\Models\Category::whereLocale('name',$lang)->orderBy('id')->get(['slug','updated_at','name']) as $item)
@ -43,7 +43,7 @@
<loc>{{$item->webUrl()}}</loc> <loc>{{$item->webUrl()}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@endforeach @endforeach

@ -21,7 +21,7 @@
<loc>{{route('client.post',$item->slug)}}</loc> <loc>{{route('client.post',$item->slug)}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@if(config('app.xlang.active')) @if(config('app.xlang.active'))
@ -44,7 +44,7 @@
<loc>{{$item->webUrl()}}</loc> <loc>{{$item->webUrl()}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@endforeach @endforeach

@ -21,7 +21,7 @@
<loc>{{route('client.product',$item->slug)}}</loc> <loc>{{route('client.product',$item->slug)}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@if(config('app.xlang.active')) @if(config('app.xlang.active'))
@ -43,7 +43,7 @@
<loc>{{$item->webUrl()}}</loc> <loc>{{$item->webUrl()}}</loc>
<lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod> <lastmod>{{$item->updated_at->tz('UTC')->toAtomString()}}</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>3</priority> <priority>0.5</priority>
</url> </url>
@endforeach @endforeach
@endforeach @endforeach

Loading…
Cancel
Save