added search for teamstore
This commit is contained in:
@@ -32,7 +32,43 @@ class TeamStoreController extends Controller
|
|||||||
$UserModel = new UserModel;
|
$UserModel = new UserModel;
|
||||||
|
|
||||||
$store_array = $m->selectTeamStore('StoreUrl', $teamStoreURL);
|
$store_array = $m->selectTeamStore('StoreUrl', $teamStoreURL);
|
||||||
$product_array = $m->selectTeamStoreProducts('TeamStoreId', $store_array[0]->Id);
|
// $product_array = $m->selectTeamStoreProducts('TeamStoreId', $store_array[0]->Id);
|
||||||
|
|
||||||
|
$q = $request->input('q');
|
||||||
|
$sort = $request->input('s');
|
||||||
|
|
||||||
|
if (isset($q) && isset($sort)) {
|
||||||
|
|
||||||
|
if ($sort == "latest") {
|
||||||
|
$field = "Id";
|
||||||
|
$sort_value = "DESC";
|
||||||
|
} elseif ($sort == "al-desc") {
|
||||||
|
$field = "ProductName";
|
||||||
|
$sort_value = "DESC";
|
||||||
|
} elseif ($sort == "oldest") {
|
||||||
|
$field = "Id";
|
||||||
|
$sort_value = "ASC";
|
||||||
|
} else {
|
||||||
|
$field = "ProductName";
|
||||||
|
$sort_value = "ASC";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($q != "") {
|
||||||
|
// keyword and sort
|
||||||
|
$product_array = $m->searchTeamstoreProducts('TeamStoreId', $store_array[0]->Id, $field, $sort_value, $q);
|
||||||
|
} else {
|
||||||
|
// sort only
|
||||||
|
$product_array = $m->filterTeamstoreProducts('TeamStoreId', $store_array[0]->Id, $field, $sort_value);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$field = "ProductName";
|
||||||
|
$sort_value = "ASC";
|
||||||
|
$sort = "al-asc";
|
||||||
|
$product_array = $m->filterTeamstoreProducts('TeamStoreId', $store_array[0]->Id, $field, $sort_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$user_role = '';
|
$user_role = '';
|
||||||
|
|
||||||
if (Auth::check()) {
|
if (Auth::check()) {
|
||||||
@@ -59,10 +95,14 @@ class TeamStoreController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$thumbnails = [];
|
||||||
foreach ($product_array as $p => $pr_arr) {
|
foreach ($product_array as $p => $pr_arr) {
|
||||||
|
|
||||||
$thumbnails_array = $m->getProductThumbnails($pr_arr->Id);
|
$thumbnails_array = $m->getProductThumbnails($pr_arr->Id);
|
||||||
|
$displayThumbnails = "product-image-placeholder.png";
|
||||||
|
|
||||||
|
|
||||||
if (!empty($thumbnails_array)) {
|
if (!empty($thumbnails_array)) {
|
||||||
foreach ($thumbnails_array as $t => $thumb) {
|
foreach ($thumbnails_array as $t => $thumb) {
|
||||||
|
|
||||||
@@ -104,11 +144,13 @@ class TeamStoreController extends Controller
|
|||||||
'DateCreated' => ""
|
'DateCreated' => ""
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// var_dump($thumbnails);
|
||||||
return view('teamstore-sublayouts.index')
|
return view('teamstore-sublayouts.index')
|
||||||
->with('store_array', $store_array)
|
->with('store_array', $store_array)
|
||||||
->with('product_array', $product_array)
|
->with('product_array', $product_array)
|
||||||
->with('announcement', $data)
|
->with('announcement', $data)
|
||||||
|
->with('keyword', $q)
|
||||||
|
->with('filter', $sort)
|
||||||
->with('thumbnails', $thumbnails);
|
->with('thumbnails', $thumbnails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -286,11 +286,35 @@ class TeamStoreModel extends Model
|
|||||||
return $i;
|
return $i;
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectRoster($productId){
|
function selectRoster($productId)
|
||||||
|
{
|
||||||
|
|
||||||
$i = DB::table('roster')
|
$i = DB::table('roster')
|
||||||
->where("ProductId", $productId)
|
->where("ProductId", $productId)
|
||||||
->get();
|
->get();
|
||||||
|
return $i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function filterTeamstoreProducts($field1, $value1, $field2, $value2)
|
||||||
|
{
|
||||||
|
|
||||||
|
$i = DB::table('teamstore_products')
|
||||||
|
->where($field1, $value1)
|
||||||
|
->where('PrivacyStatus', 'public')
|
||||||
|
->orderBy($field2, $value2)->get();
|
||||||
|
// ->orderBy('Ordering', 'ASC')->get();
|
||||||
|
return $i;
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchTeamstoreProducts($field1, $value1, $field2, $value2, $keyword)
|
||||||
|
{
|
||||||
|
$i = DB::table('teamstore_products')
|
||||||
|
->where($field1, $value1)
|
||||||
|
->where('PrivacyStatus', 'public')
|
||||||
|
->where("ProductName", "LIKE", "%$keyword%")
|
||||||
|
->orderBy($field2, $value2)->get();
|
||||||
|
// ->orderBy('Ordering', 'ASC')->get();
|
||||||
return $i;
|
return $i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -796,6 +796,11 @@
|
|||||||
var name = selected.val();
|
var name = selected.val();
|
||||||
$(this).closest("tr").find("input[name='order_number[]']").val(number)
|
$(this).closest("tr").find("input[name='order_number[]']").val(number)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$('#filter_product').change(function() {
|
||||||
|
this.form.submit();
|
||||||
|
});
|
||||||
}); //end document ready
|
}); //end document ready
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1,186 +1,172 @@
|
|||||||
@extends('merchbay_main')
|
@extends('merchbay_main')
|
||||||
@section('main-content')
|
@section('main-content')
|
||||||
|
@if ($store_array[0]->IsHibernated)
|
||||||
@if ($store_array[0]->IsHibernated)
|
<script>
|
||||||
<script>
|
window.location = "../";
|
||||||
window.location = "../";
|
</script>
|
||||||
</script>
|
@endif
|
||||||
@endif
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pb-5">
|
<div class="pb-5">
|
||||||
<div class="main__banner">
|
<div class="main__banner">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12 text-center">
|
<div class="col-lg-12 text-center">
|
||||||
<div class="store-banner border-top">
|
<div class="store-banner border-top">
|
||||||
<img
|
<img src="{{ config('site_config.uploads') .'teamstore/' .$store_array[0]->ImageFolder .'/' .$store_array[0]->StoreBanner }}"
|
||||||
src="{{ config('site_config.uploads') . 'teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner }}"
|
id="storeBanner" class="shadow-sm img-fluid w-100" alt="{{ $store_array[0]->StoreName }}" />
|
||||||
id="storeBanner"
|
</div>
|
||||||
class="shadow-sm img-fluid w-100"
|
</div>
|
||||||
alt="{{$store_array[0]->StoreName}}"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="main__content">
|
||||||
<div class="main__content">
|
<div class="container">
|
||||||
<div class="container">
|
<div class="row">
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<div class="pt-4 b">
|
|
||||||
<p class="please-read-title">Please read:</p>
|
|
||||||
<ol class="please-read">
|
|
||||||
<li>
|
|
||||||
Items purchased are made on demand. Orders will be shipped
|
|
||||||
based on dates set by your store administrator.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Store payments are processed through PayPal. A PayPal
|
|
||||||
account is not required to make a purchase.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Orders will be batch processed on a weekly basis, please allow 4-8 weeks for delivery
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
We are currently only shipping to US locations. For
|
|
||||||
international orders, please contact orders@merchbay.com
|
|
||||||
if you'd like to place an order.
|
|
||||||
</li>
|
|
||||||
<li>Expect shipping delays due to COVID-19.</li>
|
|
||||||
<li>
|
|
||||||
All sales are final. No returns or exchanges will be
|
|
||||||
accepted.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Be advised payments made on merchbay will show up as crewsportswear on your receipt
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="bg-black py-2">
|
|
||||||
<p class="disclaimer text-white">Disclaimer</p>
|
|
||||||
<div class="disclaimer-message">
|
|
||||||
Masks and gaiters sold by Merchbay are not intended for
|
|
||||||
medical use. Merchbay does not make any medical or health
|
|
||||||
claims.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if ($announcement->IsActive)
|
|
||||||
<div class="bg-announcement py-2 mt-2">
|
|
||||||
<p class="announcement text-white">Announcements:</p>
|
|
||||||
<div class="announcement-message">
|
|
||||||
{!! nl2br(e($announcement->Announcement)) !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row py-4">
|
|
||||||
<div class="col-lg-7">
|
|
||||||
<form class="row g-2 g-lg-5">
|
|
||||||
<div class="col-lg-9">
|
|
||||||
<div class="input-group">
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
class="form-control border-end-0"
|
|
||||||
placeholder="Search Item"
|
|
||||||
aria-label="Search Item"
|
|
||||||
aria-describedby="basic-addon2"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
class="input-group-text bg-white border-start-0"
|
|
||||||
id="basic-addon2"
|
|
||||||
><i class="bi bi-search"></i
|
|
||||||
></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-5">
|
|
||||||
<form
|
|
||||||
class="row g-2 g-lg-5 justify-content-end align-items-center"
|
|
||||||
>
|
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="row">
|
<div class="pt-4 b">
|
||||||
<div class="col-md-5 sort-by">
|
<p class="please-read-title">Please read:</p>
|
||||||
<label for="selectSortBy" class="col-form-label"
|
<ol class="please-read">
|
||||||
>Sort by:</label
|
<li>
|
||||||
>
|
Items purchased are made on demand. Orders will be shipped
|
||||||
|
based on dates set by your store administrator.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Store payments are processed through PayPal. A PayPal
|
||||||
|
account is not required to make a purchase.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Orders will be batch processed on a weekly basis, please allow 4-8 weeks for delivery
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
We are currently only shipping to US locations. For
|
||||||
|
international orders, please contact orders@merchbay.com
|
||||||
|
if you'd like to place an order.
|
||||||
|
</li>
|
||||||
|
<li>Expect shipping delays due to COVID-19.</li>
|
||||||
|
<li>
|
||||||
|
All sales are final. No returns or exchanges will be
|
||||||
|
accepted.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Be advised payments made on merchbay will show up as crewsportswear on your receipt
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-7">
|
|
||||||
<select name="sort" class="form-control" id="sort">
|
<div class="bg-black py-2">
|
||||||
<option value="">Store Name A → Z</option>
|
<p class="disclaimer text-white">Disclaimer</p>
|
||||||
<option value="">Store Name Z → A</option>
|
<div class="disclaimer-message">
|
||||||
<option value="">Newest → Oldest</option>
|
Masks and gaiters sold by Merchbay are not intended for
|
||||||
<option value="">Oldest → Newest</option>
|
medical use. Merchbay does not make any medical or health
|
||||||
</select>
|
claims.
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@if ($announcement->IsActive)
|
||||||
|
<div class="bg-announcement py-2 mt-2">
|
||||||
|
<p class="announcement text-white">Announcements:</p>
|
||||||
|
<div class="announcement-message">
|
||||||
|
{!! nl2br(e($announcement->Announcement)) !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form id="frm_product_filter">
|
||||||
|
<div class="row py-4">
|
||||||
|
|
||||||
|
<div class="col-lg-7">
|
||||||
|
<div method="get" class="row g-2 g-lg-5">
|
||||||
|
<div class="col-lg-9">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control border-end-0" placeholder="Search Item"
|
||||||
|
aria-label="Search Item" aria-describedby="basic-addon2" name="q"
|
||||||
|
value="{{ $keyword }}" />
|
||||||
|
<span class="input-group-text bg-white border-start-0" id="basic-addon2"><i
|
||||||
|
class="fa fa-search"></i></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-5">
|
||||||
|
<div class="row g-2 g-lg-5 justify-content-end align-items-center">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-5 sort-by">
|
||||||
|
<label for="selectSortBy" class="col-form-label">Sort by:</label>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-7">
|
||||||
|
<select name="s" class="form-control" id="filter_product">
|
||||||
|
<option value="latest" @if ($filter === 'latest') selected @endif
|
||||||
|
selected>Newest → Oldest</option>
|
||||||
|
<option value="oldest" @if ($filter === 'oldest') selected @endif>
|
||||||
|
Oldest → Newest</option>
|
||||||
|
<option value="al-asc" @if ($filter === 'al-asc') selected @endif>
|
||||||
|
Store Name A → Z</option>
|
||||||
|
<option value="al-desc" @if ($filter === 'al-desc') selected @endif>
|
||||||
|
Store Name Z → A</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h4>Catalog</h4>
|
<h4>Catalog</h4>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
@if (count($thumbnails))
|
||||||
|
<div class="row">
|
||||||
|
@foreach ($product_array as $i => $product)
|
||||||
|
@foreach ($thumbnails as $t => $thumb)
|
||||||
|
@if ($thumb['product_id'] == $product->Id)
|
||||||
|
@define $storeFolder = $thumb['folder']
|
||||||
|
@define $filename = $thumb['thumb']
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
|
||||||
<div class="row">
|
<div class="col-lg-3 col-md-3 col-sm-4">
|
||||||
@foreach($product_array as $i => $product)
|
<div class="p-3 product">
|
||||||
@if($product->PrivacyStatus == "public")
|
<a
|
||||||
@foreach($thumbnails as $t => $thumb)
|
href="{{ url('store') }}/{{ $store_array[0]->StoreUrl }}/product/{{ $product->ProductURL }}">
|
||||||
@if($thumb['product_id'] == $product->Id)
|
<div class="product-image">
|
||||||
@define $storeFolder = $thumb['folder']
|
<img src="{{ config('site_config.images_url') }}/{{ $filename }}"
|
||||||
@define $filename = $thumb['thumb']
|
class="d-block border shadow-sm" alt="{{ $product->ProductName }}" />
|
||||||
@endif
|
</div>
|
||||||
|
</a>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<div class="store-name">{{ $product->ProductName }}</div>
|
||||||
|
<div class="product-price d-flex">
|
||||||
|
<div class="price">{{ $store_array[0]->StoreCurrency }}
|
||||||
|
{{ $product->ProductPrice }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-4 py-2">
|
||||||
|
<a href="{{ url('store') }}/{{ $store_array[0]->StoreUrl }}/product/{{ $product->ProductURL }}"
|
||||||
|
class="btn btn-sm btn-black w-100">View</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
<!-- END PRODUCTS -->
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-lg-3 col-md-3 col-sm-4">
|
@else
|
||||||
<div class="p-3 product">
|
<div class="row">
|
||||||
<a href="{{ url('store') }}/{{ $store_array[0]->StoreUrl }}/product/{{ $product->ProductURL }}">
|
<div class="col-lg-12">
|
||||||
<div class="product-image">
|
<h4 class="text-center py-4 text-muted">No Product Found.</h4>
|
||||||
<img
|
</div>
|
||||||
src="{{ config('site_config.images_url') }}/{{ $filename }}"
|
|
||||||
class="d-block border shadow-sm"
|
|
||||||
alt="{{ $product->ProductName }}"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-8">
|
|
||||||
<div class="store-name">{{ $product->ProductName }}</div>
|
|
||||||
<div class="product-price d-flex">
|
|
||||||
<div class="price">{{ $store_array[0]->StoreCurrency }} {{ $product->ProductPrice }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4 py-2">
|
|
||||||
<a
|
|
||||||
href="{{ url('store') }}/{{ $store_array[0]->StoreUrl }}/product/{{ $product->ProductURL }}"
|
|
||||||
class="btn btn-sm btn-black w-100"
|
|
||||||
>View</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@endforeach
|
|
||||||
<!-- END PRODUCTS -->
|
|
||||||
|
|
||||||
{{--
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<div class="py-4 text-center">
|
|
||||||
<button type="submit" class="btn btn-black mb-3 px-5">
|
|
||||||
View more
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div> --}}
|
|
||||||
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
Reference in New Issue
Block a user