customer_product_details.blade.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. @extends('frontend.layouts.app')
  2. @section('meta')
  3. <!-- Schema.org markup for Google+ -->
  4. <meta itemprop="name" content="{{ $customer_product->meta_title }}">
  5. <meta itemprop="description" content="{{ $customer_product->meta_description }}">
  6. <meta itemprop="image" content="{{ uploaded_asset($customer_product->meta_img) }}">
  7. <!-- Twitter Card data -->
  8. <meta name="twitter:card" content="product">
  9. <meta name="twitter:site" content="@publisher_handle">
  10. <meta name="twitter:title" content="{{ $customer_product->meta_title }}">
  11. <meta name="twitter:description" content="{{ $customer_product->meta_description }}">
  12. <meta name="twitter:creator" content="@author_handle">
  13. <meta name="twitter:image" content="{{ uploaded_asset($customer_product->meta_img) }}">
  14. <meta name="twitter:data1" content="{{ single_price($customer_product->unit_price) }}">
  15. <meta name="twitter:label1" content="Price">
  16. <!-- Open Graph data -->
  17. <meta property="og:title" content="{{ $customer_product->meta_title }}" />
  18. <meta property="og:type" content="product" />
  19. <meta property="og:url" content="{{ route('product', $customer_product->slug) }}" />
  20. <meta property="og:image" content="{{ uploaded_asset($customer_product->meta_img) }}" />
  21. <meta property="og:description" content="{{ $customer_product->meta_description }}" />
  22. <meta property="og:site_name" content="{{ get_setting('meta_title') }}" />
  23. <meta property="og:price:amount" content="{{ single_price($customer_product->unit_price) }}" />
  24. @endsection
  25. @section('content')
  26. <section class="mb-4 pt-3">
  27. <div class="container">
  28. <div class="bg-white shadow-sm rounded p-3">
  29. <div class="row ">
  30. <div class="col-xl-5 col-lg-6 mb-4">
  31. <div class="sticky-top z-3 row gutters-10">
  32. @if($customer_product->photos != null)
  33. @php
  34. $photos = explode(',',$customer_product->photos);
  35. @endphp
  36. <div class="col order-1 order-md-2">
  37. <div class="aiz-carousel product-gallery" data-nav-for='.product-gallery-thumb' data-fade='true'>
  38. @foreach ($photos as $key => $photo)
  39. <div class="carousel-box img-zoom rounded">
  40. <img
  41. class="img-fluid lazyload"
  42. src="{{ static_asset('assets/img/placeholder.jpg') }}"
  43. data-src="{{ uploaded_asset($photo) }}"
  44. onerror="this.onerror=null;this.src='{{ static_asset('assets/img/placeholder.jpg') }}';"
  45. >
  46. </div>
  47. @endforeach
  48. </div>
  49. </div>
  50. <div class="col-12 col-md-auto w-md-80px order-2 order-md-1 mt-3 mt-md-0">
  51. <div class="aiz-carousel product-gallery-thumb" data-items='5' data-nav-for='.product-gallery' data-vertical='true' data-vertical-sm='false' data-focus-select='true'>
  52. @foreach ($photos as $key => $photo)
  53. <div class="carousel-box c-pointer border p-1 rounded">
  54. <img
  55. class="lazyload mw-100 size-60px mx-auto"
  56. src="{{ static_asset('assets/img/placeholder.jpg') }}"
  57. data-src="{{ uploaded_asset($photo) }}"
  58. onerror="this.onerror=null;this.src='{{ static_asset('assets/img/placeholder.jpg') }}';"
  59. >
  60. </div>
  61. @endforeach
  62. </div>
  63. </div>
  64. @endif
  65. </div>
  66. </div>
  67. <div class="col-xl-7 col-lg-6">
  68. <div class="text-left">
  69. <h1 class="mb-2 fs-20 fw-600">
  70. {{ $customer_product->getTranslation('name') }}
  71. </h1>
  72. <div class="row no-gutters mt-3">
  73. <div class="col-2">
  74. <div class="opacity-50 mt-2">{{ translate('Price')}}:</div>
  75. </div>
  76. <div class="col-10">
  77. <div class="">
  78. <strong class="h2 fw-600 text-primary">
  79. {{ single_price($customer_product->unit_price) }}
  80. </strong>
  81. @if($customer_product->unit != null || $customer_product->unit != '')
  82. <span class="opacity-70">/{{ $customer_product->getTranslation('unit') }}</span>
  83. @endif
  84. </div>
  85. </div>
  86. </div>
  87. <ul class="list-group rounded mt-5">
  88. <li class="list-group-item">
  89. <div class="d-flex">
  90. <span class="d-flex align-items-center justify-content-center rounded-circle size-30px bg-soft-secondary mr-2">
  91. <i class="la la-user fs-18"></i>
  92. </span>
  93. <div class="flex-grow-1 fs-17 fw-600">
  94. {{ $customer_product->user->name }}
  95. </div>
  96. </div>
  97. </li>
  98. <li class="list-group-item">
  99. <div class="d-flex">
  100. <span class="d-flex align-items-center justify-content-center rounded-circle size-30px bg-soft-secondary mr-2">
  101. <i class="la la-map-marker fs-18"></i>
  102. </span>
  103. <div class="flex-grow-1 fs-17 fw-600">
  104. {{ $customer_product->location }}
  105. </div>
  106. </div>
  107. </li>
  108. <li class="list-group-item c-pointer" onclick="show_number(this)">
  109. <div class="d-flex">
  110. <span class="d-flex align-items-center justify-content-center rounded-circle size-30px bg-primary text-white mr-2">
  111. <i class="la la-phone fs-18"></i>
  112. </span>
  113. <div class="flex-grow-1">
  114. <h3 class="h5 fw-700 mb-0">
  115. <span class="dummy">{{ str_replace(substr($customer_product->user->phone,3),'XXXXXXXX', $customer_product->user->phone) }}</span>
  116. <span class="real d-none">{{ $customer_product->user->phone }}</span>
  117. </h3>
  118. <p class="mb-0 opacity-50">{{ translate('Click to show phone number') }}</p>
  119. </div>
  120. </div>
  121. </li>
  122. </ul>
  123. <div class="row no-gutters mt-5">
  124. <div class="col-2">
  125. <div class="opacity-50 mt-2">{{ translate('Share')}}:</div>
  126. </div>
  127. <div class="col-10">
  128. <div class="aiz-share"></div>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. </div>
  135. </div>
  136. </section>
  137. <section class="mb-4">
  138. <div class="container">
  139. <div class="bg-white mb-3 shadow-sm rounded">
  140. <div class="nav border-bottom aiz-nav-tabs">
  141. <a href="#tab_default_1" data-toggle="tab" class="p-3 fs-16 fw-600 text-reset active show">{{ translate('Description')}}</a>
  142. @if($customer_product->video_link != null)
  143. <a href="#tab_default_2" data-toggle="tab" class="p-3 fs-16 fw-600 text-reset">{{ translate('Video')}}</a>
  144. @endif
  145. @if($customer_product->pdf != null)
  146. <a href="#tab_default_3" data-toggle="tab" class="p-3 fs-16 fw-600 text-reset">{{ translate('Downloads')}}</a>
  147. @endif
  148. </div>
  149. <div class="tab-content pt-0">
  150. <div class="tab-pane active show" id="tab_default_1">
  151. <div class="p-4">
  152. <div class="mw-100 overflow-hidden text-left">
  153. <?php echo $customer_product->getTranslation('description'); ?>
  154. </div>
  155. </div>
  156. </div>
  157. <div class="tab-pane" id="tab_default_2">
  158. <div class="p-4">
  159. <div class="embed-responsive embed-responsive-16by9 mb-5">
  160. @if ($customer_product->video_provider == 'youtube' && isset(explode('=', $customer_product->video_link)[1]))
  161. <iframe class="embed-responsive-item" src="https://www.youtube.com/embed/{{ explode('=', $customer_product->video_link)[1] }}"></iframe>
  162. @elseif ($customer_product->video_provider == 'dailymotion' && isset(explode('video/', $customer_product->video_link)[1]))
  163. <iframe class="embed-responsive-item" src="https://www.dailymotion.com/embed/video/{{ explode('video/', $customer_product->video_link)[1] }}"></iframe>
  164. @elseif ($customer_product->video_provider == 'vimeo' && isset(explode('vimeo.com/', $customer_product->video_link)[1]))
  165. <iframe src="https://player.vimeo.com/video/{{ explode('vimeo.com/', $customer_product->video_link)[1] }}" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
  166. @endif
  167. </div>
  168. </div>
  169. </div>
  170. <div class="tab-pane" id="tab_default_3">
  171. <div class="p-4 text-center ">
  172. <a href="{{ uploaded_asset($customer_product->pdf) }}" class="btn btn-primary">{{ translate('Download') }}</a>
  173. </div>
  174. </div>
  175. </div>
  176. </div>
  177. </div>
  178. </section>
  179. <section class="mb-4">
  180. <div class="container">
  181. <div class="bg-white shadow-sm rounded">
  182. <div class="d-flex mb-3 align-items-baseline border-bottom px-3 py-2">
  183. <h3 class="fs-16 fw-600 mb-0">
  184. {{ translate('Other Ads of') }} {{$customer_product->category->getTranslation('name') }}
  185. </h3>
  186. <a href="{{ route('customer_products.category', $customer_product->category->slug) }}" class="ml-auto mr-0 btn btn-primary btn-sm shadow-md">{{ translate('View More') }}</a>
  187. </div>
  188. <div class="p-3">
  189. <div class="aiz-carousel gutters-5 half-outside-arrow" data-items="6" data-xl-items="5" data-lg-items="4" data-md-items="3" data-sm-items="2" data-xs-items="2" data-arrows='true' data-infinite='true'>
  190. @php
  191. $products = \App\Models\CustomerProduct::where('category_id', $customer_product->category_id)->where('id', '!=', $customer_product->id)->where('status', '1')->where('published', '1')->limit(10)->get();
  192. @endphp
  193. @foreach ($products as $key => $product)
  194. <div class="carousel-box">
  195. <div class="aiz-card-box border border-light rounded hov-shadow-md my-2 has-transition">
  196. <div class="position-relative">
  197. <a href="{{ route('customer.product', $product->slug) }}" class="d-block">
  198. <img
  199. class="img-fit lazyload mx-auto h-140px h-md-210px"
  200. src="{{ static_asset('assets/img/placeholder.jpg') }}"
  201. data-src="{{ uploaded_asset($product->thumbnail_img) }}"
  202. alt="{{ $product->getTranslation('name') }}"
  203. onerror="this.onerror=null;this.src='{{ static_asset('assets/img/placeholder.jpg') }}';"
  204. >
  205. </a>
  206. <div class="absolute-top-left pt-2 pl-2">
  207. @if($product->conditon == 'new')
  208. <span class="badge badge-inline badge-success">{{translate('new')}}</span>
  209. @elseif($product->conditon == 'used')
  210. <span class="badge badge-inline badge-danger">{{translate('Used')}}</span>
  211. @endif
  212. </div>
  213. </div>
  214. <div class="p-md-3 p-2 text-left">
  215. <div class="fs-15 mb-1">
  216. <span class="fw-700 text-primary">{{ single_price($product->unit_price) }}</span>
  217. </div>
  218. <h3 class="fw-600 fs-13 text-truncate-2 lh-1-4 mb-0 h-35px">
  219. <a href="{{ route('customer.product', $product->slug) }}" class="d-block text-reset">{{ $product->getTranslation('name') }}</a>
  220. </h3>
  221. </div>
  222. </div>
  223. </div>
  224. @endforeach
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. </section>
  230. @endsection
  231. @section('script')
  232. <script type="text/javascript">
  233. function show_number(el){
  234. $(el).find('.dummy').addClass('d-none');
  235. $(el).find('.real').removeClass('d-none').addClass('d-block');
  236. }
  237. </script>
  238. @endsection