added curve footer theme part

fixed live edit bugs
master
A1Gard 2 weeks ago
parent 893b6ac19a
commit 7eefdef9bc

@ -1,4 +1,4 @@
<section class='GridClips'> <section class='GridClips live-setting' data-live="{{$data->area_name.'_'.$data->part}}" >
<div class="{{gfx()['container']}}"> <div class="{{gfx()['container']}}">
<div class="grid-video-container"> <div class="grid-video-container">
@foreach(\App\Models\Clip::where('status',1)->orderByDesc('id')->limit(4)->get() as $clip) @foreach(\App\Models\Clip::where('status',1)->orderByDesc('id')->limit(4)->get() as $clip)

@ -0,0 +1,32 @@
<section class='CurveFooter live-setting' data-live="{{$data->area_name.'_'.$data->part}}">
<div class="curve-footer-top">
</div>
<div class="{{gfx()['container']}} wrapper">
<div class="row">
<div class="col-md-4">
<ul class="social">
@foreach(getSettingsGroup('social_')??[] as $k => $social)
<li class="d-inline-block mx-2">
<a href="{{$social}}">
<i class="ri-{{$k}}-line"></i>
</a>
</li>
@endforeach
</ul>
</div>
<div class="col-md-4 text-center">
<img src="{{asset('upload/images/logo.png')}}" class="logo" alt="">
</div>
<div class="col-md-4 pt-2">
{!! getSetting($data->area_name.'_'.$data->part.'_text')!!}
</div>
</div>
</div>
<div class="copyright">
<div class="{{gfx()['container']}} py-3 text-center">
{{getSetting('copyright')}}
</div>
</div>
</section>

@ -0,0 +1,10 @@
{
"name": "CurveFooter",
"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,54 @@
<?php
namespace Resources\Views\Segments;
use App\Models\Part;
use App\Models\Setting;
class CurveFooter
{
public static function onAdd(Part $part = null)
{
$setting = new Setting();
$setting->section = 'theme';
$setting->key = $part->area_name . '_' . $part->part.'_bg';
$setting->value = gfx()['secondary'];
$setting->type = 'COLOR';
$setting->data = json_encode(['name' => 'curve-footer-bg']);
$setting->size = 6;
$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';
$setting->value = getGrayscaleTextColor(gfx()['secondary']) ?? '#6e0000';
$setting->type = 'COLOR';
$setting->data = json_encode(['name' => 'curve-footer-color']);
$setting->size = 6;
$setting->title = $part->area_name . ' ' . $part->part .' text color';
$setting->save();
$setting = new Setting();
$setting->section = 'theme';
$setting->key = $part->area_name . '_' . $part->part.'_text';
$setting->value = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus aliquid consequuntur culpa cupiditate dignissimos dolor doloremque error facilis ipsum iure officia quam qui, tempora! Fuga harum impedit iusto magnam veniam.';
$setting->size = 12;
$setting->title = $part->area_name . ' ' . $part->part. ' content';
$setting->type = 'EDITOR';
$setting->save();
}
public static function onRemove(Part $part = null)
{
Setting::where('key',$part->area_name . '_' . $part->part.'_bg')->first()?->delete();
Setting::where('key',$part->area_name . '_' . $part->part.'_color')->first()?->delete();
Setting::where('key',$part->area_name . '_' . $part->part.'_text')->first()?->delete();
}
public static function onMount(Part $part = null)
{
return $part;
}
}

@ -0,0 +1,54 @@
.CurveFooter {
position: relative;
background: var(--curve-footer-bg);
color: var(--curve-footer-color);
// scss
.curve-footer-top {
height: 10rem;
position: relative;
background: transparent;
overflow: hidden;
margin-bottom: -1.5rem;
z-index: 15;
&:before {
content: " ";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 700%;
background: var(--xshop-background);
border-radius: 50%;
transform: scaleX(1.75);
}
}
.wrapper{
padding: 2rem 0;
min-height: 150px;
}
.copyright{
background: #00000044;
}
a{
color: var(--curve-footer-color);
}
.social i{
font-size: 25px;
}
.social{
margin-top: 3rem;
display: flex;
align-items: center;
justify-content: start;
}
.logo{
height: 120px;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@ -62,7 +62,7 @@
</form> </form>
</div> </div>
<div class="address mt-3" > <div class="address mt-3" >
<div class="address-box"> <div class="address-box second">
<h4> <h4>
{{getSetting($data->area_name.'_'.$data->part.'_title')}} {{getSetting($data->area_name.'_'.$data->part.'_title')}}
</h4> </h4>

@ -5,10 +5,12 @@
height: 340px; height: 340px;
position: relative; position: relative;
z-index: 88; z-index: 88;
&.dark-mode { &.dark-mode {
filter: invert(100%) hue-rotate(120deg) brightness(95%) contrast(90%); filter: invert(100%) hue-rotate(120deg) brightness(95%) contrast(90%);
} }
} }
.footer-logo { .footer-logo {
width: 100px; width: 100px;
} }
@ -19,8 +21,10 @@
background: var(--xshop-primary); background: var(--xshop-primary);
color: #ffffff; color: #ffffff;
} }
.channle { .channle {
position: relative; position: relative;
&::after { &::after {
position: absolute; position: absolute;
content: ""; content: "";
@ -29,10 +33,11 @@
top: 73%; top: 73%;
margin-top: -1px; margin-top: -1px;
background: #ffffff14; background: #ffffff14;
right: 73px; inset-inline-end: 73px;
margin-right: 64px; margin-right: 64px;
} }
} }
.form-control { .form-control {
&:focus { &:focus {
color: #495057; color: #495057;
@ -42,45 +47,55 @@
box-shadow: none !important; box-shadow: none !important;
} }
} }
h4 { h4 {
color: #ffffff; color: #ffffff;
} }
p { p {
color: #b3b3b3; color: #b3b3b3;
font-weight: 300; font-weight: 300;
} }
a { a {
color: #ffffff; color: #ffffff;
} }
.footer-copyright2 { .footer-copyright2 {
border-top: 1px solid #fffdfd26; border-top: 1px solid #fffdfd26;
} }
footer { footer {
background: #282f36; background: #282f36;
position: relative; position: relative;
text-align: right; text-align: start;
iframe { iframe {
height: 240px; height: 240px;
} }
.gallery { .gallery {
flex-basis: 30%; flex-basis: 30%;
} }
.form { .form {
form { form {
margin-bottom: -70px; margin-bottom: -70px;
transform: translateY(-160px); transform: translateY(-160px);
background-color: #ffffff; background-color: #ffffff;
width: 473px; width: 473px;
text-align: right; text-align: start;
height: fit-content; height: fit-content;
padding: 15px; padding: 15px;
border-radius: 8px; border-radius: 8px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25);
position: relative; position: relative;
z-index: 99; z-index: 99;
div { div {
position: relative; position: relative;
direction: rtl; direction: rtl;
label { label {
display: flex; display: flex;
font-size: 14px; font-size: 14px;
@ -89,20 +104,22 @@
position: absolute; position: absolute;
color: #6c757d; color: #6c757d;
transition: 320ms; transition: 320ms;
text-align: right; text-align: start;
transform: translateY(-18px); transform: translateY(-18px);
padding: 0 8px; padding: 0 8px;
background: #Fff; background: #Fff;
} }
label.active { label.active {
background-color: #ffffff; background-color: #ffffff;
width: fit-content; width: fit-content;
text-align: right; text-align: start;
} }
input { input {
margin: 46px 0; margin: 46px 0;
overflow: hidden; overflow: hidden;
text-align: right; text-align: start;
background: rgba(255, 255, 255, 0.075); background: rgba(255, 255, 255, 0.075);
padding: 24px 15px; padding: 24px 15px;
color: #aaa; color: #aaa;
@ -112,70 +129,90 @@
transition-delay: 0.2s; transition-delay: 0.2s;
width: 100%; width: 100%;
} }
textarea { textarea {
margin: 25px 0; margin: 25px 0;
border: 1px solid #6c757d; border: 1px solid #6c757d;
padding: 15px 15px; padding: 15px 15px;
} }
} }
* { * {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
} }
} }
.address { .address {
flex-basis: 30%; flex-basis: 30%;
.address-box { .address-box {
overflow: hidden;
background-color: rgba(0, 0, 0, 0.25); background-color: rgba(0, 0, 0, 0.25);
padding: 14px 27px; padding: 14px 27px;
position: relative; position: relative;
height: 277px; min-height: 277px;
box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px; box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;
&:before { &:before {
content: ""; content: "";
position: absolute; position: absolute;
right: 0; inset-inline-end: 0;
width: 3px; width: 3px;
height: 80%; height: 80%;
top: 10%; top: 10%;
background-color: var(--xshop-primary); background-color: var(--xshop-primary);
} }
span { span {
margin-left: 10px; margin-left: 10px;
} }
p { p {
font-size: 14px; font-size: 14px;
margin: 33px 0; margin: 33px 0;
} }
.icons { .icons {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
margin: 15px 0; margin: 15px 0;
} }
&.second:before {
inset-inline-start: 0;
inset-inline-end: auto;
}
} }
} }
} }
@media (max-width: 968px) { @media (max-width: 968px) {
footer { footer {
iframe { iframe {
height: auto; height: auto;
} }
.gallery { .gallery {
order: 2; order: 2;
margin: 15px 0; margin: 15px 0;
} }
.form { .form {
width: 100%; width: 100%;
margin: 15px 0; margin: 15px 0;
form { form {
transform: translateY(0); transform: translateY(0);
width: 100%; width: 100%;
order: 0; order: 0;
} }
} }
.address { .address {
.address-box { .address-box {
margin: 15px 0; margin: 15px 0;

@ -1,4 +1,4 @@
<section id='SamiraProductSlider'> <section id='SamiraProductSlider' class='live-setting' data-live="{{$data->area_name.'_'.$data->part}}">
<div class="{{gfx()['container']}}"> <div class="{{gfx()['container']}}">
<div id="samira-container"> <div id="samira-container">
<div id="sam-nxt" class="sld-btn"> <div id="sam-nxt" class="sld-btn">

@ -68,7 +68,7 @@ class SamiraProductSlider
{ {
Setting::where('key',$part->area_name . '_' . $part->part.'_title')->first()?->delete(); Setting::where('key',$part->area_name . '_' . $part->part.'_title')->first()?->delete();
Setting::where('key',$part->area_name . '_' . $part->part.'_category')->first()?->delete(); Setting::where('key',$part->area_name . '_' . $part->part.'_category')->first()?->delete();
Setting::where('key',$part->area_name . '_' . $part->part.'bg')->first()?->delete(); Setting::where('key',$part->area_name . '_' . $part->part.'_bg')->first()?->delete();
Setting::where('key',$part->area_name . '_' . $part->part.'_webp')->first()?->delete(); Setting::where('key',$part->area_name . '_' . $part->part.'_webp')->first()?->delete();
} }

Loading…
Cancel
Save