373 lines
17 KiB
PHP
373 lines
17 KiB
PHP
@extends('admin::layouts.content')
|
|
|
|
@section('page_title')
|
|
{{ __('velocity::app.admin.meta-data.title') }}
|
|
@stop
|
|
|
|
@php
|
|
$locale = request()->get('locale') ?: app()->getLocale();
|
|
$channel = request()->get('channel') ?: core()->getCurrentChannelCode();
|
|
@endphp
|
|
|
|
@section('content')
|
|
<div class="content">
|
|
<form
|
|
method="POST"
|
|
@submit.prevent="onSubmit"
|
|
enctype="multipart/form-data"
|
|
@if ($metaData)
|
|
action="{{ route('velocity.admin.store.meta-data', ['id' => $metaData->id]) }}"
|
|
@else
|
|
action="{{ route('velocity.admin.store.meta-data', ['id' => 'new']) }}"
|
|
@endif
|
|
>
|
|
|
|
@csrf
|
|
|
|
<div class="page-header">
|
|
<div class="page-title">
|
|
<h1>{{ __('velocity::app.admin.meta-data.title') }}</h1>
|
|
</div>
|
|
|
|
<input type="hidden" name="locale" value="{{ $locale }}" />
|
|
<input type="hidden" name="channel" value="{{ $channel }}" />
|
|
|
|
<div class="control-group">
|
|
<select class="control" id="channel-switcher" name="channel">
|
|
@foreach (core()->getAllChannels() as $channelModel)
|
|
|
|
<option
|
|
value="{{ $channelModel->code }}" {{ ($channelModel->code) == $channel ? 'selected' : '' }}>
|
|
{{ $channelModel->name }}
|
|
</option>
|
|
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<select class="control" id="locale-switcher" name="locale">
|
|
@foreach (app('Webkul\Core\Repositories\ChannelRepository')->findOneByField('code', $channel)->locales as $localeModel)
|
|
|
|
<option
|
|
value="{{ $localeModel->code }}" {{ ($localeModel->code) == $locale ? 'selected' : '' }}>
|
|
{{ $localeModel->name }}
|
|
</option>
|
|
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
|
|
<div class="page-action">
|
|
<button type="submit" class="btn btn-lg btn-primary">
|
|
{{ __('velocity::app.admin.meta-data.update-meta-data') }}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<accordian :title="'{{ __('velocity::app.admin.meta-data.general') }}'" :active="true">
|
|
<div slot="body">
|
|
<div class="control-group">
|
|
<label>{{ __('velocity::app.admin.meta-data.activate-slider') }}</label>
|
|
|
|
<label class="switch">
|
|
<input
|
|
id="slides"
|
|
name="slides"
|
|
type="checkbox"
|
|
class="control"
|
|
data-vv-as=""slides""
|
|
{{ $metaData && $metaData->slider ? 'checked' : ''}} />
|
|
|
|
<span class="slider round"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label>{{ __('velocity::app.admin.meta-data.sidebar-categories') }}</label>
|
|
|
|
<input
|
|
type="number"
|
|
min="0"
|
|
class="control"
|
|
id="sidebar_category_count"
|
|
name="sidebar_category_count"
|
|
value="{{ $metaData ? $metaData->sidebar_category_count : '10' }}" />
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label>{{ __('velocity::app.admin.meta-data.header_content_count') }}</label>
|
|
|
|
<input
|
|
type="number"
|
|
min="0"
|
|
class="control"
|
|
id="header_content_count"
|
|
name="header_content_count"
|
|
value="{{ $metaData ? $metaData->header_content_count : '5' }}" />
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="control-group">
|
|
<label style="width:100%;">
|
|
{{ __('velocity::app.admin.meta-data.home-page-content') }}
|
|
<span class="locale">[{{ $metaData ? $metaData->channel : $channel }} - {{ $metaData ? $metaData->locale : $locale }}]</span>
|
|
</label>
|
|
|
|
<textarea
|
|
class="control"
|
|
id="home_page_content"
|
|
name="home_page_content">
|
|
{{ $metaData ? $metaData->home_page_content : '' }}
|
|
</textarea>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label style="width:100%;">
|
|
{{ __('velocity::app.admin.meta-data.product-policy') }}
|
|
<span class="locale">[{{ $metaData ? $metaData->channel : $channel }} - {{ $metaData ? $metaData->locale : $locale }}]</span>
|
|
</label>
|
|
|
|
<textarea
|
|
class="control"
|
|
id="product-policy"
|
|
name="product_policy">
|
|
{{ $metaData ? $metaData->product_policy : '' }}
|
|
</textarea>
|
|
</div>
|
|
|
|
</div>
|
|
</accordian>
|
|
|
|
<accordian :title="'{{ __('velocity::app.admin.meta-data.images') }}'" :active="false">
|
|
<div slot="body">
|
|
<div class="control-group">
|
|
<label>{{ __('velocity::app.admin.meta-data.advertisement-four') }}</label>
|
|
|
|
@php
|
|
$images = [
|
|
4 => [],
|
|
3 => [],
|
|
2 => [],
|
|
];
|
|
|
|
$index = 0;
|
|
|
|
foreach ($metaData->get('locale')->all() as $key => $value) {
|
|
if ($value->locale == $locale) {
|
|
$index = $key;
|
|
}
|
|
}
|
|
|
|
$advertisement = json_decode($metaData->get('advertisement')->all()[$index]->advertisement, true);
|
|
@endphp
|
|
|
|
@if(! isset($advertisement[4]) || ! count($advertisement[4]))
|
|
@php
|
|
$images[4][] = [
|
|
'id' => 'image_1',
|
|
'url' => asset('/themes/velocity/assets/images/big-sale-banner.webp'),
|
|
];
|
|
$images[4][] = [
|
|
'id' => 'image_2',
|
|
'url' => asset('/themes/velocity/assets/images/seasons.webp'),
|
|
];
|
|
$images[4][] = [
|
|
'id' => 'image_3',
|
|
'url' => asset('/themes/velocity/assets/images/deals.webp'),
|
|
];
|
|
$images[4][] = [
|
|
'id' => 'image_4',
|
|
'url' => asset('/themes/velocity/assets/images/kids.webp'),
|
|
];
|
|
@endphp
|
|
|
|
<image-wrapper
|
|
:multiple="true"
|
|
input-name="images[4]"
|
|
:images='@json($images[4])'
|
|
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
|
|
</image-wrapper>
|
|
@else
|
|
@foreach ($advertisement[4] as $index => $image)
|
|
@php
|
|
$images[4][] = [
|
|
'id' => 'image_' . $index,
|
|
'url' => asset('/storage/' . $image),
|
|
];
|
|
@endphp
|
|
@endforeach
|
|
|
|
<image-wrapper
|
|
:multiple="true"
|
|
input-name="images[4]"
|
|
:images='@json($images[4])'
|
|
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
|
|
</image-wrapper>
|
|
@endif
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label>{{ __('velocity::app.admin.meta-data.advertisement-three') }}</label>
|
|
@if(! isset($advertisement[3]) || ! count($advertisement[3]))
|
|
@php
|
|
$images[3][] = [
|
|
'id' => 'image_1',
|
|
'url' => asset('/themes/velocity/assets/images/headphones.webp'),
|
|
];
|
|
$images[3][] = [
|
|
'id' => 'image_2',
|
|
'url' => asset('/themes/velocity/assets/images/watch.webp'),
|
|
];
|
|
$images[3][] = [
|
|
'id' => 'image_3',
|
|
'url' => asset('/themes/velocity/assets/images/kids-2.webp'),
|
|
];
|
|
@endphp
|
|
|
|
<image-wrapper
|
|
input-name="images[3]"
|
|
:images='@json($images[3])'
|
|
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
|
|
</image-wrapper>
|
|
@else
|
|
@foreach ($advertisement[3] as $index => $image)
|
|
@php
|
|
$images[3][] = [
|
|
'id' => 'image_' . $index,
|
|
'url' => asset('/storage/' . $image),
|
|
];
|
|
@endphp
|
|
@endforeach
|
|
|
|
<image-wrapper
|
|
input-name="images[3]"
|
|
:images='@json($images[3])'
|
|
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
|
|
</image-wrapper>
|
|
@endif
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label>{{ __('velocity::app.admin.meta-data.advertisement-two') }}</label>
|
|
|
|
@if(! isset($advertisement[2]) || ! count($advertisement[2]))
|
|
@php
|
|
$images[2][] = [
|
|
'id' => 'image_1',
|
|
'url' => asset('/themes/velocity/assets/images/toster.webp'),
|
|
];
|
|
$images[2][] = [
|
|
'id' => 'image_2',
|
|
'url' => asset('/themes/velocity/assets/images/trimmer.webp'),
|
|
];
|
|
@endphp
|
|
|
|
<image-wrapper
|
|
input-name="images[2]"
|
|
:images='@json($images[2])'
|
|
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
|
|
</image-wrapper>
|
|
@else
|
|
@foreach ($advertisement[2] as $index => $image)
|
|
@php
|
|
$images[2][] = [
|
|
'id' => 'image_' . $index,
|
|
'url' => asset('/storage/' . $image),
|
|
];
|
|
@endphp
|
|
@endforeach
|
|
|
|
<image-wrapper
|
|
input-name="images[2]"
|
|
:images='@json($images[2])'
|
|
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
|
|
</image-wrapper>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</accordian>
|
|
|
|
<accordian :title="'{{ __('velocity::app.admin.meta-data.footer') }}'" :active="false">
|
|
<div slot="body">
|
|
<div class="control-group">
|
|
<label style="width:100%;">
|
|
{{ __('velocity::app.admin.meta-data.subscription-content') }}
|
|
<span class="locale">[{{ $metaData ? $metaData->channel : $channel }} - {{ $metaData ? $metaData->locale : $locale }}]</span>
|
|
</label>
|
|
|
|
<textarea
|
|
class="control"
|
|
id="subscription_bar_content"
|
|
name="subscription_bar_content">
|
|
{{ $metaData ? $metaData->subscription_bar_content : '' }}
|
|
</textarea>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label style="width:100%;">
|
|
{{ __('velocity::app.admin.meta-data.footer-left-content') }}
|
|
<span class="locale">[{{ $metaData ? $metaData->channel : $channel }} - {{ $metaData ? $metaData->locale : $locale }}]</span>
|
|
</label>
|
|
|
|
<textarea
|
|
class="control"
|
|
id="footer_left_content"
|
|
name="footer_left_content">
|
|
{{ $metaData ? $metaData->footer_left_content : '' }}
|
|
</textarea>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label style="width:100%;">
|
|
{{ __('velocity::app.admin.meta-data.footer-middle-content') }}
|
|
<span class="locale">[{{ $metaData ? $metaData->channel : $channel }} - {{ $metaData ? $metaData->locale : $locale }}]</span>
|
|
</label>
|
|
|
|
<textarea
|
|
class="control"
|
|
id="footer_middle_content"
|
|
name="footer_middle_content">
|
|
{{ $metaData ? $metaData->footer_middle_content : '' }}
|
|
</textarea>
|
|
</div>
|
|
</div>
|
|
</accordian>
|
|
</form>
|
|
</div>
|
|
@stop
|
|
|
|
@push('scripts')
|
|
<script src="{{ asset('vendor/webkul/admin/assets/js/tinyMCE/tinymce.min.js') }}"></script>
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function () {
|
|
tinymce.init({
|
|
height: 200,
|
|
width: "100%",
|
|
image_advtab: true,
|
|
valid_elements : '*[*]',
|
|
selector: 'textarea#home_page_content,textarea#footer_left_content,textarea#subscription_bar_content,textarea#footer_middle_content,textarea#product-policy',
|
|
plugins: 'image imagetools media wordcount save fullscreen code',
|
|
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
|
|
});
|
|
|
|
$('#channel-switcher, #locale-switcher').on('change', function (e) {
|
|
$('#channel-switcher').val()
|
|
|
|
if (event.target.id == 'channel-switcher') {
|
|
let locale = "{{ app('Webkul\Core\Repositories\ChannelRepository')->findOneByField('code', $channel)->locales->first()->code }}";
|
|
|
|
$('#locale-switcher').val(locale);
|
|
}
|
|
|
|
var query = '?channel=' + $('#channel-switcher').val() + '&locale=' + $('#locale-switcher').val();
|
|
|
|
window.location.href = "{{ route('velocity.admin.meta-data') }}" + query;
|
|
})
|
|
});
|
|
</script>
|
|
@endpush
|