Improved lighthouse score for default theme
|
|
@ -537,6 +537,7 @@ class CartRule
|
|||
}
|
||||
|
||||
$coupons = $this->cartRuleCouponRepository->where(['code' => $cart->coupon_code])->get();
|
||||
|
||||
foreach ($coupons as $coupon) {
|
||||
if (in_array($coupon->cart_rule_id, explode(',', $cart->applied_cart_rule_ids))) {
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -293,6 +293,7 @@ class Cart
|
|||
public function getItemByProduct($data)
|
||||
{
|
||||
$items = $this->getCart()->all_items;
|
||||
|
||||
foreach ($items as $item) {
|
||||
if ($item->product->getTypeInstance()->compareOptions($item->additional, $data['additional'])) {
|
||||
if (isset($data['additional']['parent_id'])) {
|
||||
|
|
@ -402,6 +403,7 @@ class Cart
|
|||
public function getCart(): ?\Webkul\Checkout\Contracts\Cart
|
||||
{
|
||||
$cart = null;
|
||||
|
||||
if ($this->getCurrentCustomer()->check()) {
|
||||
$cart = $this->cartRepository->findOneWhere([
|
||||
'customer_id' => $this->getCurrentCustomer()->user()->id,
|
||||
|
|
@ -591,6 +593,7 @@ class Cart
|
|||
if (! $cart = $this->getCart()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (count($cart->items) === 0) {
|
||||
$this->cartRepository->delete($cart->id);
|
||||
|
||||
|
|
@ -604,7 +607,9 @@ class Cart
|
|||
|
||||
if ($validationResult->isItemInactive()) {
|
||||
$this->removeItem($item->id);
|
||||
|
||||
$isInvalid = true;
|
||||
|
||||
session()->flash('info', __('shop::app.checkout.cart.item.inactive'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,11 @@ class ChannelTableSeeder extends Seeder
|
|||
'name' => 'Default',
|
||||
'theme' => 'velocity',
|
||||
'root_category_id' => 1,
|
||||
'home_page_content' => '<p>@include("shop::home.slider") @include("shop::home.featured-products") @include("shop::home.new-products")</p><div class="banner-container"><div class="left-banner"><img src="https://s3-ap-southeast-1.amazonaws.com/cdn.uvdesk.com/website/1/201902045c581f9494b8a1.png" /></div><div class="right-banner"><img src="https://s3-ap-southeast-1.amazonaws.com/cdn.uvdesk.com/website/1/201902045c581fb045cf02.png" /> <img src="https://s3-ap-southeast-1.amazonaws.com/cdn.uvdesk.com/website/1/201902045c581fc352d803.png" /></div></div>',
|
||||
'home_page_content' => '<p>@include("shop::home.slider") @include("shop::home.featured-products") @include("shop::home.new-products")</p>
|
||||
<div class="banner-container">
|
||||
<div class="left-banner"><img data-src="themes/default/assets/images/1.webp" class="lazyload" alt="test" width="720" height="720" /></div>
|
||||
<div class="right-banner"><img data-src="themes/default/assets/images/2.webp" class="lazyload" alt="test" width="460" height="330" /> <img data-src="themes/default/assets/images/3.webp" class="lazyload" alt="test" width="460" height="330" /></div>
|
||||
</div>',
|
||||
'footer_content' => '<div class="list-container"><span class="list-heading">Quick Links</span><ul class="list-group"><li><a href="@php echo route(\'shop.cms.page\', \'about-us\') @endphp">About Us</a></li><li><a href="@php echo route(\'shop.cms.page\', \'return-policy\') @endphp">Return Policy</a></li><li><a href="@php echo route(\'shop.cms.page\', \'refund-policy\') @endphp">Refund Policy</a></li><li><a href="@php echo route(\'shop.cms.page\', \'terms-conditions\') @endphp">Terms and conditions</a></li><li><a href="@php echo route(\'shop.cms.page\', \'terms-of-use\') @endphp">Terms of Use</a></li><li><a href="@php echo route(\'shop.cms.page\', \'contact-us\') @endphp">Contact Us</a></li></ul></div><div class="list-container"><span class="list-heading">Connect With Us</span><ul class="list-group"><li><a href="#"><span class="icon icon-facebook"></span>Facebook </a></li><li><a href="#"><span class="icon icon-twitter"></span> Twitter </a></li><li><a href="#"><span class="icon icon-instagram"></span> Instagram </a></li><li><a href="#"> <span class="icon icon-google-plus"></span>Google+ </a></li><li><a href="#"> <span class="icon icon-linkedin"></span>LinkedIn </a></li></ul></div>',
|
||||
'name' => 'Default',
|
||||
'default_locale_id' => 1,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
@if (request()->route()->getName() == 'shop.checkout.onepage.index')
|
||||
<script src="https://www.paypal.com/sdk/js?client-id={{core()->getConfigData('sales.paymentmethods.paypal_smart_button.client_id')}}"></script>
|
||||
|
||||
<script>
|
||||
|
|
@ -51,4 +52,5 @@
|
|||
paypal.Buttons(options).render(".paypal-button-container");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
@endif
|
||||
|
|
@ -35,10 +35,10 @@ class ProductImage extends AbstractProduct
|
|||
|
||||
if (! $product->parent_id && ! count($images)) {
|
||||
$images[] = [
|
||||
'small_image_url' => asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.png'),
|
||||
'medium_image_url' => asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png'),
|
||||
'large_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'),
|
||||
'original_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'),
|
||||
'small_image_url' => asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.webp'),
|
||||
'medium_image_url' => asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.webp'),
|
||||
'large_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.webp'),
|
||||
'original_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.webp'),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -64,10 +64,10 @@ class ProductImage extends AbstractProduct
|
|||
];
|
||||
} else {
|
||||
$image = [
|
||||
'small_image_url' => asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.png'),
|
||||
'medium_image_url' => asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png'),
|
||||
'large_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'),
|
||||
'original_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.png'),
|
||||
'small_image_url' => asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.webp'),
|
||||
'medium_image_url' => asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.webp'),
|
||||
'large_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.webp'),
|
||||
'original_image_url' => asset('vendor/webkul/ui/assets/images/product/large-product-placeholder.webp'),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
"dependencies": {
|
||||
"accounting": "^0.4.1",
|
||||
"ez-plus": "^1.2.1",
|
||||
"lazysizes": "^5.2.2",
|
||||
"vee-validate": "^2.2.15",
|
||||
"vue-flatpickr": "^2.3.0",
|
||||
"vue-slider-component": "^3.1.0"
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 936 B |
|
After Width: | Height: | Size: 694 B |
|
After Width: | Height: | Size: 338 B |
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/shop.js": "/js/shop.js?id=e8a8f56c4e7037f09d9f",
|
||||
"/css/shop.css": "/css/shop.css?id=5921caa0500dc820d23f"
|
||||
"/js/shop.js": "/js/shop.js?id=e47aa8374e8e18deedd0",
|
||||
"/css/shop.css": "/css/shop.css?id=4d6a80790b697b2dc931"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,11 +7,13 @@ import axios from 'axios';
|
|||
import VueSlider from 'vue-slider-component';
|
||||
import accounting from 'accounting';
|
||||
import ImageSlider from './components/image-slider';
|
||||
import 'lazysizes';
|
||||
|
||||
window.jQuery = window.$ = $;
|
||||
window.Vue = Vue;
|
||||
window.VeeValidate = VeeValidate;
|
||||
window.axios = axios;
|
||||
|
||||
require("./bootstrap");
|
||||
require("ez-plus/src/jquery.ez-plus.js");
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +1,23 @@
|
|||
<template>
|
||||
<transition name="slide">
|
||||
<div class="slider-content" v-if="images.length>0">
|
||||
<transition name="slide">
|
||||
<div class="slider-content" v-if="images.length > 0">
|
||||
|
||||
<ul class="slider-images">
|
||||
<li v-for="(image, index) in images" :key="index" v-bind:class="{'show': index==currentIndex}">
|
||||
<img class="slider-item" :src="image" />
|
||||
<div class="show-content" v-bind:class="{'show': index==currentIndex}" :key="index" v-html="content[index]"></div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="slider-images">
|
||||
<li v-for="(image, index) in images" :key="index" v-bind:class="{'show': index==currentIndex}">
|
||||
<img class="slider-item" :alt="image.title" :src="image.path"/>
|
||||
<div class="show-content" v-bind:class="{'show': index==currentIndex}" :key="index" v-html="content[index]"></div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="slider-control" v-if="images_loaded">
|
||||
<span class="icon dark-left-icon slider-left" @click="changeIndexLeft"></span>
|
||||
<span class="icon light-right-icon slider-right" @click="changeIndexRight"></span>
|
||||
</div>
|
||||
|
||||
<div class="slider-control" v-if="images_loaded">
|
||||
<span class="icon dark-left-icon slider-left" @click="changeIndexLeft"></span>
|
||||
<span class="icon light-right-icon slider-right" @click="changeIndexRight"></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</transition>
|
||||
</transition>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
|
|
@ -37,11 +38,14 @@ export default {
|
|||
|
||||
return {
|
||||
images: [],
|
||||
currentIndex: -1,
|
||||
content: [],
|
||||
current: false,
|
||||
images_loaded: false,
|
||||
|
||||
currentIndex: -1,
|
||||
|
||||
content: [],
|
||||
|
||||
current: false,
|
||||
|
||||
images_loaded: false,
|
||||
};
|
||||
},
|
||||
|
||||
|
|
@ -56,17 +60,21 @@ export default {
|
|||
},
|
||||
|
||||
setProps() {
|
||||
var this_this = this;
|
||||
var self = this;
|
||||
|
||||
this.slides.forEach(function(slider) {
|
||||
this_this.images.push(this_this.public_path+'/storage/'+slider.path);
|
||||
self.images.push({
|
||||
'path': self.public_path + '/storage/' + slider.path,
|
||||
'title' : slider.title
|
||||
});
|
||||
|
||||
this_this.content.push(slider.content);
|
||||
self.content.push(slider.content);
|
||||
});
|
||||
|
||||
this.currentIndex = 0;
|
||||
|
||||
if(this.images.length == 0) {
|
||||
this.images.push = "vendor/webkul/shop/assets/images/banner.png";
|
||||
if (this.images.length == 0) {
|
||||
this.images.push = {'path': 'vendor/webkul/shop/assets/images/banner.png'};
|
||||
} else {
|
||||
this.images_loaded = true;
|
||||
}
|
||||
|
|
@ -90,24 +98,19 @@ export default {
|
|||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.slide-enter-active {
|
||||
|
||||
transition: all 0.2s cubic-bezier(0.55, 0.085, 0.68, 0.53);
|
||||
|
||||
}
|
||||
|
||||
.slide-leave-active {
|
||||
|
||||
transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
||||
|
||||
}
|
||||
|
||||
.slide-enter, .slide-leave-to {
|
||||
|
||||
-webkit-transform: scaleY(0) translateZ(0);
|
||||
transform: scaleY(0) translateZ(0);
|
||||
opacity: 0;
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
@import url("https://fonts.googleapis.com/css?family=Montserrat:400,500");
|
||||
@import url("https://fonts.googleapis.com/css?family=Montserrat:400,500&display=swap");
|
||||
|
||||
//shop variables
|
||||
$brand-color: #0031F0;
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
<div class="item mt-5">
|
||||
<div class="item-image" style="margin-right: 15px;">
|
||||
<a href="{{ route('shop.productOrCategory.index', $url_key) }}"><img src="{{ $productBaseImage['medium_image_url'] }}" /></a>
|
||||
<a href="{{ route('shop.productOrCategory.index', $url_key) }}"><img src="{{ $productBaseImage['medium_image_url'] }}" alt="" /></a>
|
||||
</div>
|
||||
|
||||
<div class="item-details">
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
@php
|
||||
$images = $item->product->getTypeInstance()->getBaseImage($item);
|
||||
@endphp
|
||||
<img src="{{ $images['small_image_url'] }}" />
|
||||
<img src="{{ $images['small_image_url'] }}" alt=""/>
|
||||
</div>
|
||||
|
||||
<div class="item-details">
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@
|
|||
|
||||
<div class="item mb-5" style="margin-bottom: 5px;">
|
||||
<div class="item-image">
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}" />
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}" alt=""/>
|
||||
</div>
|
||||
|
||||
<div class="item-details">
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@
|
|||
</div>
|
||||
@if (core()->getConfigData('sales.orderSettings.invoice_slip_design.logo'))
|
||||
<div class="image">
|
||||
<img class="logo" src="{{ Storage::url(core()->getConfigData('sales.orderSettings.invoice_slip_design.logo')) }}"/>
|
||||
<img class="logo" src="{{ Storage::url(core()->getConfigData('sales.orderSettings.invoice_slip_design.logo')) }}" alt=""/>
|
||||
</div>
|
||||
@endif
|
||||
<div class="merchant-details">
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
<div class="media-info">
|
||||
<?php $image = $productImageHelper->getProductBaseImage($review->product); ?>
|
||||
<a href="{{ route('shop.productOrCategory.index', $review->product->url_key) }}" title="{{ $review->product->name }}">
|
||||
<img class="media" src="{{ $image['small_image_url'] }}"/>
|
||||
<img class="media" src="{{ $image['small_image_url'] }}" alt=""/>
|
||||
</a>
|
||||
|
||||
<div class="info">
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
<div class="account-item-card mt-15 mb-15">
|
||||
<div class="media-info">
|
||||
<?php $image = $productImageHelper->getGalleryImages($review->product); ?>
|
||||
<img class="media" src="{{ $image[0]['small_image_url'] }}" />
|
||||
<img class="media" src="{{ $image[0]['small_image_url'] }}" alt="" />
|
||||
|
||||
<div class="info mt-20">
|
||||
<div class="product-name">{{$review->product->name}}</div>
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
$image = $item->product->getTypeInstance()->getBaseImage($item);
|
||||
@endphp
|
||||
|
||||
<img class="media" src="{{ $image['small_image_url'] }}" />
|
||||
<img class="media" src="{{ $image['small_image_url'] }}" alt="" />
|
||||
|
||||
<div class="info">
|
||||
<div class="product-name">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@if ($logo = core()->getCurrentChannel()->logo_url)
|
||||
<img src="{{ $logo }}" alt="{{ config('app.name') }}" style="height: 40px; width: 110px;"/>
|
||||
@else
|
||||
<img src="{{ bagisto_asset('images/logo.svg') }}">
|
||||
<img src="{{ bagisto_asset('images/logo.svg') }}" alt="">
|
||||
@endif
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
<img
|
||||
class="image-wrapper"
|
||||
:src="product['{{ $attribute['code'] }}']"
|
||||
:onerror="`this.src='${baseUrl}/vendor/webkul/ui/assets/images/product/large-product-placeholder.png'`" />
|
||||
:onerror="`this.src='${baseUrl}/vendor/webkul/ui/assets/images/product/large-product-placeholder.png'`" alt="" />
|
||||
</a>
|
||||
@break
|
||||
|
||||
|
|
@ -112,7 +112,7 @@
|
|||
<img
|
||||
class="image-wrapper"
|
||||
:src="'storage/' + product.product['{{ $attribute['code'] }}']"
|
||||
:onerror="`this.src='${baseUrl}/vendor/webkul/ui/assets/images/product/large-product-placeholder.png'`" />
|
||||
:onerror="`this.src='${baseUrl}/vendor/webkul/ui/assets/images/product/large-product-placeholder.png'`" alt="" />
|
||||
</a>
|
||||
@break;
|
||||
@default
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<div class="featured-heading">
|
||||
{{ __('shop::app.home.featured-products') }}<br/>
|
||||
|
||||
<span class="featured-seperator" style="color:lightgrey;">_____</span>
|
||||
<span class="featured-seperator" style="color: #d7dfe2;">_____</span>
|
||||
</div>
|
||||
|
||||
<div class="featured-grid product-grid-4">
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<div class="featured-heading">
|
||||
{{ __('shop::app.home.new-products') }}<br/>
|
||||
|
||||
<span class="featured-seperator" style="color:lightgrey;">_____</span>
|
||||
<span class="featured-seperator" style="color: #d7dfe2;">_____</span>
|
||||
</div>
|
||||
|
||||
<div class="product-grid-4">
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
<section class="news-update">
|
||||
<div class="news-update-grid">
|
||||
<div class="block1">
|
||||
<img src="vendor/webkul/shop/assets/images/1.png" />
|
||||
<img src="vendor/webkul/shop/assets/images/1.png" alt="" />
|
||||
</div>
|
||||
<div class="block2">
|
||||
<div class="sub-block1">
|
||||
<img src="vendor/webkul/shop/assets/images/2.png" />
|
||||
<img src="vendor/webkul/shop/assets/images/2.png" alt="" />
|
||||
</div>
|
||||
<div class="sub-block2">
|
||||
<img src="vendor/webkul/shop/assets/images/3.png" />
|
||||
<img src="vendor/webkul/shop/assets/images/3.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
<section class="slider-block">
|
||||
<image-slider :slides='@json($sliderData)' public_path="{{ url()->to('/') }}"></image-slider>
|
||||
</section>
|
||||
@if (count($sliderData))
|
||||
<section class="slider-block" style="height: 500px">
|
||||
<image-slider :slides='@json($sliderData)' public_path="{{ url()->to('/') }}"></image-slider>
|
||||
</section>
|
||||
@endif
|
||||
|
|
@ -29,11 +29,11 @@
|
|||
|
||||
<div class="list-container">
|
||||
@if(core()->getConfigData('customer.settings.newsletter.subscription'))
|
||||
<span class="list-heading">{{ __('shop::app.footer.subscribe-newsletter') }}</span>
|
||||
<label class="list-heading" for="subscribe-field">{{ __('shop::app.footer.subscribe-newsletter') }}</label>
|
||||
<div class="form-container">
|
||||
<form action="{{ route('shop.subscribe') }}">
|
||||
<div class="control-group" :class="[errors.has('subscriber_email') ? 'has-error' : '']">
|
||||
<input type="email" class="control subscribe-field" name="subscriber_email" placeholder="Email Address" required><br/>
|
||||
<input type="email" id="subscribe-field" class="control subscribe-field" name="subscriber_email" placeholder="Email Address" required><br/>
|
||||
|
||||
<button class="btn btn-md btn-primary">{{ __('shop::app.subscription.subscribe') }}</button>
|
||||
</div>
|
||||
|
|
@ -49,10 +49,10 @@
|
|||
}
|
||||
?>
|
||||
|
||||
<span class="list-heading">{{ __('shop::app.footer.locale') }}</span>
|
||||
<label class="list-heading" for="locale-switcher">{{ __('shop::app.footer.locale') }}</label>
|
||||
<div class="form-container">
|
||||
<div class="control-group">
|
||||
<select class="control locale-switcher" onchange="window.location.href = this.value" @if (count(core()->getCurrentChannel()->locales) == 1) disabled="disabled" @endif>
|
||||
<select class="control locale-switcher" id="locale-switcher" onchange="window.location.href = this.value" @if (count(core()->getCurrentChannel()->locales) == 1) disabled="disabled" @endif>
|
||||
|
||||
@foreach (core()->getCurrentChannel()->locales as $locale)
|
||||
@if (isset($serachQuery))
|
||||
|
|
@ -67,10 +67,10 @@
|
|||
</div>
|
||||
|
||||
<div class="currency">
|
||||
<span class="list-heading">{{ __('shop::app.footer.currency') }}</span>
|
||||
<label class="list-heading" for="currency-switcher">{{ __('shop::app.footer.currency') }}</label>
|
||||
<div class="form-container">
|
||||
<div class="control-group">
|
||||
<select class="control locale-switcher" onchange="window.location.href = this.value">
|
||||
<select class="control locale-switcher" id="currency-switcher" onchange="window.location.href = this.value">
|
||||
|
||||
@foreach (core()->getCurrentChannel()->currencies as $currency)
|
||||
@if (isset($serachQuery))
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@
|
|||
<div class="left-content">
|
||||
<ul class="logo-container">
|
||||
<li>
|
||||
<a href="{{ route('shop.home.index') }}">
|
||||
<a href="{{ route('shop.home.index') }}" aria-label="Logo">
|
||||
@if ($logo = core()->getCurrentChannel()->logo_url)
|
||||
<img class="logo" src="{{ $logo }}" />
|
||||
<img class="logo" src="{{ $logo }}" alt="" />
|
||||
@else
|
||||
<img class="logo" src="{{ bagisto_asset('images/logo.svg') }}" />
|
||||
<img class="logo" src="{{ bagisto_asset('images/logo.svg') }}" alt="" />
|
||||
@endif
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -24,12 +24,14 @@
|
|||
<ul class="search-container">
|
||||
<li class="search-group">
|
||||
<form role="search" action="{{ route('shop.search.index') }}" method="GET" style="display: inherit;">
|
||||
<label for="search-bar" style="position: absolute; z-index: -1;">Search</label>
|
||||
<input
|
||||
required
|
||||
name="term"
|
||||
type="search"
|
||||
value="{{ $term }}"
|
||||
class="search-field"
|
||||
id="search-bar"
|
||||
placeholder="{{ __('shop::app.header.search-text') }}"
|
||||
>
|
||||
|
||||
|
|
@ -37,7 +39,7 @@
|
|||
|
||||
<div class="search-icon-wrapper">
|
||||
|
||||
<button class="" class="background: none;">
|
||||
<button class="" class="background: none;" aria-label="Search">
|
||||
<i class="icon icon-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -217,17 +219,17 @@
|
|||
</div>
|
||||
|
||||
@push('scripts')
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs" defer></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet" defer></script>
|
||||
|
||||
<script type="text/x-template" id="image-search-component-template">
|
||||
<div>
|
||||
<label class="image-search-container" for="image-search-container">
|
||||
<label class="image-search-container" :for="'image-search-container-' + _uid">
|
||||
<i class="icon camera-icon"></i>
|
||||
|
||||
<input type="file" id="image-search-container" ref="image_search_input" v-on:change="uploadImage()"/>
|
||||
<input type="file" :id="'image-search-container-' + _uid" ref="image_search_input" v-on:change="uploadImage()"/>
|
||||
|
||||
<img id="uploaded-image-url" :src="uploaded_image_url"/>
|
||||
<img :id="'uploaded-image-url-' + + _uid" :src="uploaded_image_url" alt=""/>
|
||||
</label>
|
||||
</div>
|
||||
</script>
|
||||
|
|
@ -271,7 +273,7 @@
|
|||
|
||||
net = await mobilenet.load();
|
||||
|
||||
const imgElement = document.getElementById('uploaded-image-url');
|
||||
const imgElement = document.getElementById('uploaded-image-url-' + + self._uid);
|
||||
|
||||
try {
|
||||
const result = await net.classify(imgElement);
|
||||
|
|
|
|||
|
|
@ -5,8 +5,9 @@
|
|||
$categories = [];
|
||||
|
||||
foreach (app('Webkul\Category\Repositories\CategoryRepository')->getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) {
|
||||
if ($category->slug)
|
||||
if ($category->slug) {
|
||||
array_push($categories, $category);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
<meta http-equiv="content-language" content="{{ app()->getLocale() }}">
|
||||
<link rel="stylesheet" href="{{ asset('vendor/webkul/ui/assets/css/ui.css') }}">
|
||||
|
||||
<link rel="stylesheet" href="{{ bagisto_asset('css/shop.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('vendor/webkul/ui/assets/css/ui.css') }}">
|
||||
|
||||
@if ($favicon = core()->getCurrentChannel()->favicon_url)
|
||||
<link rel="icon" sizes="16x16" href="{{ $favicon }}" />
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
|
||||
@yield('slider')
|
||||
|
||||
<div class="content-container">
|
||||
<main class="content-container">
|
||||
|
||||
{!! view_render_event('bagisto.shop.layout.content.before') !!}
|
||||
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
|
||||
{!! view_render_event('bagisto.shop.layout.content.after') !!}
|
||||
|
||||
</div>
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
title="{{ __('shop::app.customer.compare.add-tooltip') }}"
|
||||
@click="addProductToCompare"
|
||||
style="cursor: pointer">
|
||||
<img src="{{ asset('themes/default/assets/images/compare_arrows.png') }}" />
|
||||
<img src="{{ asset('themes/default/assets/images/compare_arrows.png') }}" alt="" />
|
||||
</a>
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
<div class="category-block" @if ($category->display_mode == 'description_only') style="width: 100%" @endif>
|
||||
<div class="hero-image mb-35">
|
||||
@if (!is_null($category->image))
|
||||
<img class="logo" src="{{ $category->image_url }}" />
|
||||
<img class="logo" src="{{ $category->image_url }}" alt="" />
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<div class="product-image">
|
||||
<a href="{{ route('shop.productOrCategory.index', $product->url_key) }}" title="{{ $product->name }}">
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}" onerror="this.src='{{ asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png') }}'"/>
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}" onerror="this.src='{{ asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png') }}'" alt="" height="500"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
<i class="icon grid-view-icon"></i>
|
||||
</span>
|
||||
@else
|
||||
<a href="{{ $toolbarHelper->getModeUrl('grid') }}" class="grid-view">
|
||||
<a href="{{ $toolbarHelper->getModeUrl('grid') }}" class="grid-view" aria-label="Grid">
|
||||
<i class="icon grid-view-icon"></i>
|
||||
</a>
|
||||
@endif
|
||||
|
|
@ -33,16 +33,16 @@
|
|||
<i class="icon list-view-icon"></i>
|
||||
</span>
|
||||
@else
|
||||
<a href="{{ $toolbarHelper->getModeUrl('list') }}" class="list-view">
|
||||
<a href="{{ $toolbarHelper->getModeUrl('list') }}" class="list-view" aria-label="list">
|
||||
<i class="icon list-view-icon"></i>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="sorter">
|
||||
<label>{{ __('shop::app.products.sort-by') }}</label>
|
||||
<label for="sort-by-toolbar">{{ __('shop::app.products.sort-by') }}</label>
|
||||
|
||||
<select onchange="window.location.href = this.value">
|
||||
<select onchange="window.location.href = this.value" id="sort-by-toolbar">
|
||||
|
||||
@foreach ($toolbarHelper->getAvailableOrders() as $key => $order)
|
||||
|
||||
|
|
@ -56,9 +56,9 @@
|
|||
</div>
|
||||
|
||||
<div class="limiter">
|
||||
<label>{{ __('shop::app.products.show') }}</label>
|
||||
<label for="show-toolbar">{{ __('shop::app.products.show') }}</label>
|
||||
|
||||
<select onchange="window.location.href = this.value">
|
||||
<select onchange="window.location.href = this.value" id="show-toolbar">
|
||||
|
||||
@foreach ($toolbarHelper->getAvailableLimits() as $limit)
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
<div class="product-image">
|
||||
<a href="{{ route('shop.productOrCategory.index', $product->url_key) }}" title="{{ $product->name }}">
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}" />
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<div class="product-info">
|
||||
<div class="product-image">
|
||||
<a href="{{ route('shop.productOrCategory.index', $product->url_key) }}" title="{{ $product->name }}">
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}" />
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
@elseif ($attribute['type'] == 'image' && $attribute['value'])
|
||||
<td>
|
||||
<a href="{{ route('shop.product.file.download', [$product->product_id, $attribute['id']])}}">
|
||||
<img src="{{ Storage::url($attribute['value']) }}" style="height: 20px; width: 20px;"/>
|
||||
<img src="{{ Storage::url($attribute['value']) }}" style="height: 20px; width: 20px;" alt=""/>
|
||||
</a>
|
||||
</td>
|
||||
@else
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
|
||||
<span v-if="attribute.swatch_type == 'color'" :style="{ background: option.swatch_value }"></span>
|
||||
|
||||
<img v-if="attribute.swatch_type == 'image'" :src="option.swatch_value" />
|
||||
<img v-if="attribute.swatch_type == 'image'" :src="option.swatch_value" alt="" />
|
||||
|
||||
<span v-if="attribute.swatch_type == 'text'">
|
||||
@{{ option.label }}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
</li>
|
||||
|
||||
<li class="thumb-frame" v-for='(thumb, index) in thumbs' @mouseover="changeImage(thumb)" :class="[thumb.large_image_url == currentLargeImageUrl ? 'active' : '']" id="thumb-frame">
|
||||
<img :src="thumb.small_image_url"/>
|
||||
<img :src="thumb.small_image_url" alt=""/>
|
||||
</li>
|
||||
|
||||
<li class="gallery-control bottom" @click="moveThumbs('bottom')" v-if="(thumbs.length > 4) && this.is_move.down">
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
</ul>
|
||||
|
||||
<div class="product-hero-image" id="product-hero-image">
|
||||
<img :src="currentLargeImageUrl" id="pro-img" :data-image="currentOriginalImageUrl"/>
|
||||
<img :src="currentLargeImageUrl" id="pro-img" :data-image="currentOriginalImageUrl" alt=""/>
|
||||
|
||||
@auth('customer')
|
||||
<a @if ($wishListHelper->getWishlistProduct($product)) class="add-to-wishlist already" @else class="add-to-wishlist" @endif href="{{ route('customer.wishlist.add', $product->product_id) }}">
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
<script type="text/x-template" id="image-search-result-component-template">
|
||||
<div class="image-search-result">
|
||||
<div class="searched-image">
|
||||
<img :src="searched_image_url"/>
|
||||
<img :src="searched_image_url" alt=""/>
|
||||
</div>
|
||||
|
||||
<div class="searched-terms">
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 936 B |
|
After Width: | Height: | Size: 694 B |
|
After Width: | Height: | Size: 338 B |
|
|
@ -19,3 +19,9 @@
|
|||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^ index.php [L]
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_expires.c>
|
||||
<filesMatch ".(css|jpg|jpeg|png|gif|js|svg|ico|webp)$">
|
||||
Header set Cache-Control "max-age=31536000, public"
|
||||
</filesMatch>
|
||||
</IfModule>
|
||||