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="grid-video-container">
@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>
</div>
<div class="address mt-3" >
<div class="address-box">
<div class="address-box second">
<h4>
{{getSetting($data->area_name.'_'.$data->part.'_title')}}
</h4>

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

Loading…
Cancel
Save