Nuevos cambios hechos de diseño
This commit is contained in:
335
desarrollo2/resources/views/frontend/product_details.blade.php
Normal file
335
desarrollo2/resources/views/frontend/product_details.blade.php
Normal file
@@ -0,0 +1,335 @@
|
||||
@extends('frontend.layouts.app')
|
||||
|
||||
@section('meta_title'){{ $detailedProduct->meta_title }}@stop
|
||||
|
||||
@section('meta_description'){{ $detailedProduct->meta_description }}@stop
|
||||
|
||||
@section('meta_keywords'){{ $detailedProduct->tags }}@stop
|
||||
|
||||
@section('meta')
|
||||
<!-- Schema.org markup for Google+ -->
|
||||
<meta itemprop="name" content="{{ $detailedProduct->meta_title }}">
|
||||
<meta itemprop="description" content="{{ $detailedProduct->meta_description }}">
|
||||
<meta itemprop="image" content="{{ uploaded_asset($detailedProduct->meta_img) }}">
|
||||
|
||||
<!-- Twitter Card data -->
|
||||
<meta name="twitter:card" content="product">
|
||||
<meta name="twitter:site" content="@publisher_handle">
|
||||
<meta name="twitter:title" content="{{ $detailedProduct->meta_title }}">
|
||||
<meta name="twitter:description" content="{{ $detailedProduct->meta_description }}">
|
||||
<meta name="twitter:creator" content="@author_handle">
|
||||
<meta name="twitter:image" content="{{ uploaded_asset($detailedProduct->meta_img) }}">
|
||||
<meta name="twitter:data1" content="{{ single_price($detailedProduct->unit_price) }}">
|
||||
<meta name="twitter:label1" content="Price">
|
||||
|
||||
<!-- Open Graph data -->
|
||||
<meta property="og:title" content="{{ $detailedProduct->meta_title }}" />
|
||||
<meta property="og:type" content="og:product" />
|
||||
<meta property="og:url" content="{{ route('product', $detailedProduct->slug) }}" />
|
||||
<meta property="og:image" content="{{ uploaded_asset($detailedProduct->meta_img) }}" />
|
||||
<meta property="og:description" content="{{ $detailedProduct->meta_description }}" />
|
||||
<meta property="og:site_name" content="{{ get_setting('meta_title') }}" />
|
||||
<meta property="og:price:amount" content="{{ single_price($detailedProduct->unit_price) }}" />
|
||||
<meta property="product:price:currency"
|
||||
content="{{ \App\Models\Currency::findOrFail(get_setting('system_default_currency'))->code }}" />
|
||||
<meta property="fb:app_id" content="{{ env('FACEBOOK_PIXEL_ID') }}">
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<section class="mb-4 pt-3">
|
||||
<div class="container">
|
||||
<div class="bg-white py-3">
|
||||
<div class="row">
|
||||
<!-- Product Image Gallery -->
|
||||
<div class="col-xl-5 col-lg-6 mb-4">
|
||||
@include('frontend.product_details.image_gallery')
|
||||
</div>
|
||||
|
||||
<!-- Product Details -->
|
||||
<div class="col-xl-7 col-lg-6">
|
||||
@include('frontend.product_details.details')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-4">
|
||||
<div class="container">
|
||||
@if ($detailedProduct->auction_product)
|
||||
<!-- Reviews & Ratings -->
|
||||
@include('frontend.product_details.review_section')
|
||||
|
||||
<!-- Description, Video, Downloads -->
|
||||
@include('frontend.product_details.description')
|
||||
|
||||
<!-- Product Query -->
|
||||
@include('frontend.product_details.product_queries')
|
||||
@else
|
||||
<div class="row gutters-16">
|
||||
<!-- Left side -->
|
||||
<div class="col-lg-3">
|
||||
<!-- Seller Info -->
|
||||
@include('frontend.product_details.seller_info')
|
||||
|
||||
<!-- Top Selling Products -->
|
||||
<div class="d-none d-lg-block">
|
||||
@include('frontend.product_details.top_selling_products')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right side -->
|
||||
<div class="col-lg-9">
|
||||
|
||||
<!-- Reviews & Ratings -->
|
||||
@include('frontend.product_details.review_section')
|
||||
|
||||
<!-- Description, Video, Downloads -->
|
||||
@include('frontend.product_details.description')
|
||||
|
||||
<!-- Related products -->
|
||||
@include('frontend.product_details.related_products')
|
||||
|
||||
<!-- Product Query -->
|
||||
@include('frontend.product_details.product_queries')
|
||||
|
||||
<!-- Top Selling Products -->
|
||||
<div class="d-lg-none">
|
||||
@include('frontend.product_details.top_selling_products')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('modal')
|
||||
<!-- Image Modal -->
|
||||
<div class="modal fade" id="image_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered modal-dialog-zoom product-modal" id="modal-size" role="document">
|
||||
<div class="modal-content position-relative">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="p-4">
|
||||
<div class="size-300px size-lg-450px">
|
||||
<img class="img-fit h-100 lazyload"
|
||||
src="{{ static_asset('assets/img/placeholder.jpg') }}"
|
||||
data-src=""
|
||||
onerror="this.onerror=null;this.src='{{ static_asset('assets/img/placeholder.jpg') }}';">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Chat Modal -->
|
||||
<div class="modal fade" id="chat_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered modal-dialog-zoom product-modal" id="modal-size" role="document">
|
||||
<div class="modal-content position-relative">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title fw-600 h5">{{ translate('Any query about this product') }}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<form class="" action="{{ route('conversations.store') }}" method="POST"
|
||||
enctype="multipart/form-data">
|
||||
@csrf
|
||||
<input type="hidden" name="product_id" value="{{ $detailedProduct->id }}">
|
||||
<div class="modal-body gry-bg px-3 pt-3">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control mb-3 rounded-0" name="title"
|
||||
value="{{ $detailedProduct->name }}" placeholder="{{ translate('Product Name') }}"
|
||||
required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<textarea class="form-control rounded-0" rows="8" name="message" required
|
||||
placeholder="{{ translate('Your Question') }}">{{ route('product', $detailedProduct->slug) }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-outline-primary fw-600 rounded-0"
|
||||
data-dismiss="modal">{{ translate('Cancel') }}</button>
|
||||
<button type="submit" class="btn btn-primary fw-600 rounded-0 w-100px">{{ translate('Send') }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Bid Modal -->
|
||||
@if($detailedProduct->auction_product == 1)
|
||||
@php
|
||||
$highest_bid = $detailedProduct->bids->max('amount');
|
||||
$min_bid_amount = $highest_bid != null ? $highest_bid+1 : $detailedProduct->starting_bid;
|
||||
@endphp
|
||||
<div class="modal fade" id="bid_for_detail_product" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">{{ translate('Bid For Product') }} <small>({{ translate('Min Bid Amount: ').$min_bid_amount }})</small> </h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" action="{{ route('auction_product_bids.store') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<input type="hidden" name="product_id" value="{{ $detailedProduct->id }}">
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
{{translate('Place Bid Price')}}
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<div class="form-group">
|
||||
<input type="number" step="0.01" class="form-control form-control-sm" name="amount" min="{{ $min_bid_amount }}" placeholder="{{ translate('Enter Amount') }}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary transition-3d-hover mr-1">{{ translate('Submit') }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- Product Review Modal -->
|
||||
<div class="modal fade" id="product-review-modal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content" id="product-review-modal-content">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
getVariantPrice();
|
||||
});
|
||||
|
||||
function CopyToClipboard(e) {
|
||||
var url = $(e).data('url');
|
||||
var $temp = $("<input>");
|
||||
$("body").append($temp);
|
||||
$temp.val(url).select();
|
||||
try {
|
||||
document.execCommand("copy");
|
||||
AIZ.plugins.notify('success', '{{ translate('Link copied to clipboard') }}');
|
||||
} catch (err) {
|
||||
AIZ.plugins.notify('danger', '{{ translate('Oops, unable to copy') }}');
|
||||
}
|
||||
$temp.remove();
|
||||
// if (document.selection) {
|
||||
// var range = document.body.createTextRange();
|
||||
// range.moveToElementText(document.getElementById(containerid));
|
||||
// range.select().createTextRange();
|
||||
// document.execCommand("Copy");
|
||||
|
||||
// } else if (window.getSelection) {
|
||||
// var range = document.createRange();
|
||||
// document.getElementById(containerid).style.display = "block";
|
||||
// range.selectNode(document.getElementById(containerid));
|
||||
// window.getSelection().addRange(range);
|
||||
// document.execCommand("Copy");
|
||||
// document.getElementById(containerid).style.display = "none";
|
||||
|
||||
// }
|
||||
// AIZ.plugins.notify('success', 'Copied');
|
||||
}
|
||||
|
||||
function show_chat_modal() {
|
||||
@if (Auth::check())
|
||||
$('#chat_modal').modal('show');
|
||||
@else
|
||||
$('#login_modal').modal('show');
|
||||
@endif
|
||||
}
|
||||
|
||||
// Pagination using ajax
|
||||
$(window).on('hashchange', function() {
|
||||
if(window.history.pushState) {
|
||||
window.history.pushState('', '/', window.location.pathname);
|
||||
} else {
|
||||
window.location.hash = '';
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
$(document).on('click', '.product-queries-pagination .pagination a', function(e) {
|
||||
getPaginateData($(this).attr('href').split('page=')[1], 'query', 'queries-area');
|
||||
e.preventDefault();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
$(document).on('click', '.product-reviews-pagination .pagination a', function(e) {
|
||||
getPaginateData($(this).attr('href').split('page=')[1], 'review', 'reviews-area');
|
||||
e.preventDefault();
|
||||
});
|
||||
});
|
||||
|
||||
function getPaginateData(page, type, section) {
|
||||
$.ajax({
|
||||
url: '?page=' + page,
|
||||
dataType: 'json',
|
||||
data: {type: type},
|
||||
}).done(function(data) {
|
||||
$('.'+section).html(data);
|
||||
location.hash = page;
|
||||
}).fail(function() {
|
||||
alert('Something went worng! Data could not be loaded.');
|
||||
});
|
||||
}
|
||||
// Pagination end
|
||||
|
||||
function showImage(photo) {
|
||||
$('#image_modal img').attr('src', photo);
|
||||
$('#image_modal img').attr('data-src', photo);
|
||||
$('#image_modal').modal('show');
|
||||
}
|
||||
|
||||
function bid_modal(){
|
||||
@if (Auth::check() && (isCustomer() || isSeller()))
|
||||
$('#bid_for_detail_product').modal('show');
|
||||
@elseif (Auth::check() && isAdmin())
|
||||
AIZ.plugins.notify('warning', '{{ translate("Sorry, Only customers & Sellers can Bid.") }}');
|
||||
@else
|
||||
$('#login_modal').modal('show');
|
||||
@endif
|
||||
}
|
||||
|
||||
function product_review(product_id) {
|
||||
@if (Auth::check() && isCustomer())
|
||||
@if ($review_status == 1)
|
||||
$.post('{{ route('product_review_modal') }}', {
|
||||
_token: '{{ @csrf_token() }}',
|
||||
product_id: product_id
|
||||
}, function(data) {
|
||||
$('#product-review-modal-content').html(data);
|
||||
$('#product-review-modal').modal('show', {
|
||||
backdrop: 'static'
|
||||
});
|
||||
AIZ.extra.inputRating();
|
||||
});
|
||||
@else
|
||||
AIZ.plugins.notify('warning', '{{ translate("Sorry, You need to buy this product to give review.") }}');
|
||||
@endif
|
||||
@elseif (Auth::check() && !isCustomer())
|
||||
AIZ.plugins.notify('warning', '{{ translate("Sorry, Only customers can give review.") }}');
|
||||
@else
|
||||
$('#login_modal').modal('show');
|
||||
@endif
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user