Добавление фильтра по магазину в список продуктов

This commit is contained in:
Konstantin
2026-06-12 11:06:02 +03:00
parent b250f38d42
commit 2bc065115e
3 changed files with 79 additions and 6 deletions
@@ -65,6 +65,10 @@ class ControllerCatalogProduct extends Controller {
$url .= '&filter_status=' . $this->request->get['filter_status']; $url .= '&filter_status=' . $this->request->get['filter_status'];
} }
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$url .= '&filter_category=' . $this->request->get['filter_category']; $url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) { if (isset($this->request->get['filter_sub_category'])) {
@@ -156,6 +160,10 @@ class ControllerCatalogProduct extends Controller {
$url .= '&filter_status=' . $this->request->get['filter_status']; $url .= '&filter_status=' . $this->request->get['filter_status'];
} }
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$url .= '&filter_category=' . $this->request->get['filter_category']; $url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) { if (isset($this->request->get['filter_sub_category'])) {
@@ -241,6 +249,10 @@ class ControllerCatalogProduct extends Controller {
$url .= '&filter_status=' . $this->request->get['filter_status']; $url .= '&filter_status=' . $this->request->get['filter_status'];
} }
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$url .= '&filter_category=' . $this->request->get['filter_category']; $url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) { if (isset($this->request->get['filter_sub_category'])) {
@@ -326,6 +338,10 @@ class ControllerCatalogProduct extends Controller {
$url .= '&filter_status=' . $this->request->get['filter_status']; $url .= '&filter_status=' . $this->request->get['filter_status'];
} }
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$url .= '&filter_category=' . $this->request->get['filter_category']; $url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) { if (isset($this->request->get['filter_sub_category'])) {
@@ -414,6 +430,12 @@ class ControllerCatalogProduct extends Controller {
$filter_status = ''; $filter_status = '';
} }
if (isset($this->request->get['filter_store_id'])) {
$filter_store_id = $this->request->get['filter_store_id'];
} else {
$filter_store_id = '';
}
$filter_sub_category = null; $filter_sub_category = null;
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$filter_category = $this->request->get['filter_category']; $filter_category = $this->request->get['filter_category'];
@@ -551,6 +573,10 @@ class ControllerCatalogProduct extends Controller {
$url .= '&filter_status=' . $this->request->get['filter_status']; $url .= '&filter_status=' . $this->request->get['filter_status'];
} }
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$url .= '&filter_category=' . $this->request->get['filter_category']; $url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) { if (isset($this->request->get['filter_sub_category'])) {
@@ -605,6 +631,7 @@ class ControllerCatalogProduct extends Controller {
'filter_quantity_min' => $filter_quantity_min, 'filter_quantity_min' => $filter_quantity_min,
'filter_quantity_max' => $filter_quantity_max, 'filter_quantity_max' => $filter_quantity_max,
'filter_status' => $filter_status, 'filter_status' => $filter_status,
'filter_store_id' => $filter_store_id,
'filter_category' => $filter_category, 'filter_category' => $filter_category,
'filter_sub_category' => $filter_sub_category, 'filter_sub_category' => $filter_sub_category,
'filter_manufacturer_id'=> $filter_manufacturer_id, 'filter_manufacturer_id'=> $filter_manufacturer_id,
@@ -755,6 +782,10 @@ class ControllerCatalogProduct extends Controller {
$url .= '&filter_status=' . $this->request->get['filter_status']; $url .= '&filter_status=' . $this->request->get['filter_status'];
} }
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$url .= '&filter_category=' . $this->request->get['filter_category']; $url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) { if (isset($this->request->get['filter_sub_category'])) {
@@ -825,6 +856,10 @@ class ControllerCatalogProduct extends Controller {
$url .= '&filter_status=' . $this->request->get['filter_status']; $url .= '&filter_status=' . $this->request->get['filter_status'];
} }
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$url .= '&filter_category=' . $this->request->get['filter_category']; $url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) { if (isset($this->request->get['filter_sub_category'])) {
@@ -867,6 +902,7 @@ class ControllerCatalogProduct extends Controller {
$data['filter_quantity_min'] = $filter_quantity_min; $data['filter_quantity_min'] = $filter_quantity_min;
$data['filter_quantity_max'] = $filter_quantity_max; $data['filter_quantity_max'] = $filter_quantity_max;
$data['filter_status'] = $filter_status; $data['filter_status'] = $filter_status;
$data['filter_store_id'] = $filter_store_id;
$data['filter_category_name'] = $filter_category_name; $data['filter_category_name'] = $filter_category_name;
$data['filter_category'] = $filter_category; $data['filter_category'] = $filter_category;
$data['filter_sub_category'] = $filter_sub_category; $data['filter_sub_category'] = $filter_sub_category;
@@ -965,6 +1001,10 @@ class ControllerCatalogProduct extends Controller {
$url .= '&filter_status=' . $this->request->get['filter_status']; $url .= '&filter_status=' . $this->request->get['filter_status'];
} }
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['filter_category'])) { if (isset($this->request->get['filter_category'])) {
$url .= '&filter_category=' . $this->request->get['filter_category']; $url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) { if (isset($this->request->get['filter_sub_category'])) {
@@ -1803,6 +1843,9 @@ if (isset($this->request->post['price_3'])) {
} }
$this->session->data['success'] = $this->language->get('text_success'); $this->session->data['success'] = $this->language->get('text_success');
$url = ''; $url = '';
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['page'])) { if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page']; $url .= '&page=' . $this->request->get['page'];
} }
@@ -1826,6 +1869,9 @@ if (isset($this->request->post['price_3'])) {
} }
$this->session->data['success'] = $this->language->get('text_success'); $this->session->data['success'] = $this->language->get('text_success');
$url = ''; $url = '';
if (isset($this->request->get['filter_store_id'])) {
$url .= '&filter_store_id=' . $this->request->get['filter_store_id'];
}
if (isset($this->request->get['page'])) { if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page']; $url .= '&page=' . $this->request->get['page'];
} }
+8
View File
@@ -504,6 +504,10 @@ class ModelCatalogProduct extends Model {
$sql .= " AND p.status = '" . (int)$data['filter_status'] . "'"; $sql .= " AND p.status = '" . (int)$data['filter_status'] . "'";
} }
if (isset($data['filter_store_id']) && $data['filter_store_id'] !== '') {
$sql .= " AND EXISTS (SELECT 1 FROM " . DB_PREFIX . "product_to_store p2s WHERE p2s.product_id = p.product_id AND p2s.store_id = '" . (int)$data['filter_store_id'] . "')";
}
if (isset($data['filter_noindex']) && $data['filter_noindex'] !== '') { if (isset($data['filter_noindex']) && $data['filter_noindex'] !== '') {
$sql .= " AND p.noindex = '" . (int)$data['filter_noindex'] . "'"; $sql .= " AND p.noindex = '" . (int)$data['filter_noindex'] . "'";
} }
@@ -861,6 +865,10 @@ class ModelCatalogProduct extends Model {
$sql .= " AND p.status = '" . (int)$data['filter_status'] . "'"; $sql .= " AND p.status = '" . (int)$data['filter_status'] . "'";
} }
if (isset($data['filter_store_id']) && $data['filter_store_id'] !== '') {
$sql .= " AND EXISTS (SELECT 1 FROM " . DB_PREFIX . "product_to_store p2s WHERE p2s.product_id = p.product_id AND p2s.store_id = '" . (int)$data['filter_store_id'] . "')";
}
if (isset($data['filter_noindex']) && $data['filter_noindex'] !== '') { if (isset($data['filter_noindex']) && $data['filter_noindex'] !== '') {
$sql .= " AND p.noindex = '" . (int)$data['filter_noindex'] . "'"; $sql .= " AND p.noindex = '" . (int)$data['filter_noindex'] . "'";
} }
@@ -136,6 +136,19 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label" for="input-store">{{ entry_store }}</label>
<select name="filter_store_id" id="input-store" class="form-control">
<option value=""></option>
{% for store in stores %}
{% if store.store_id == filter_store_id %}
<option value="{{ store.store_id }}" selected="selected">{{ store.name }}</option>
{% else %}
<option value="{{ store.store_id }}">{{ store.name }}</option>
{% endif %}
{% endfor %}
</select>
</div>
<div class="form-group">
<label class="control-label" for="input-noindex">{{ entry_noindex }}</label> <label class="control-label" for="input-noindex">{{ entry_noindex }}</label>
<select name="filter_noindex" id="input-noindex" class="form-control"> <select name="filter_noindex" id="input-noindex" class="form-control">
<option value=""></option> <option value=""></option>
@@ -280,6 +293,12 @@ $('#button-filter').on('click', function() {
url += '&filter_status=' + encodeURIComponent(filter_status); url += '&filter_status=' + encodeURIComponent(filter_status);
} }
var filter_store_id = $('select[name=\'filter_store_id\']').val();
if (filter_store_id !== '') {
url += '&filter_store_id=' + encodeURIComponent(filter_store_id);
}
var filter_category = $('input[name=\'filter_category\']').val(); var filter_category = $('input[name=\'filter_category\']').val();
if (filter_category) { if (filter_category) {
url += '&filter_category=' + encodeURIComponent(filter_category); url += '&filter_category=' + encodeURIComponent(filter_category);