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

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
+51 -5
View File
@@ -64,7 +64,11 @@ class ControllerCatalogProduct extends Controller {
if (isset($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'])) {
$url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) {
@@ -155,7 +159,11 @@ class ControllerCatalogProduct extends Controller {
if (isset($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'])) {
$url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) {
@@ -240,7 +248,11 @@ class ControllerCatalogProduct extends Controller {
if (isset($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'])) {
$url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) {
@@ -325,7 +337,11 @@ class ControllerCatalogProduct extends Controller {
if (isset($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'])) {
$url .= '&filter_category=' . $this->request->get['filter_category'];
if (isset($this->request->get['filter_sub_category'])) {
@@ -413,6 +429,12 @@ class ControllerCatalogProduct extends Controller {
} else {
$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;
if (isset($this->request->get['filter_category'])) {
@@ -550,6 +572,10 @@ class ControllerCatalogProduct extends Controller {
if (isset($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'])) {
$url .= '&filter_category=' . $this->request->get['filter_category'];
@@ -605,6 +631,7 @@ class ControllerCatalogProduct extends Controller {
'filter_quantity_min' => $filter_quantity_min,
'filter_quantity_max' => $filter_quantity_max,
'filter_status' => $filter_status,
'filter_store_id' => $filter_store_id,
'filter_category' => $filter_category,
'filter_sub_category' => $filter_sub_category,
'filter_manufacturer_id'=> $filter_manufacturer_id,
@@ -754,6 +781,10 @@ class ControllerCatalogProduct extends Controller {
if (isset($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'])) {
$url .= '&filter_category=' . $this->request->get['filter_category'];
@@ -824,6 +855,10 @@ class ControllerCatalogProduct extends Controller {
if (isset($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'])) {
$url .= '&filter_category=' . $this->request->get['filter_category'];
@@ -867,6 +902,7 @@ class ControllerCatalogProduct extends Controller {
$data['filter_quantity_min'] = $filter_quantity_min;
$data['filter_quantity_max'] = $filter_quantity_max;
$data['filter_status'] = $filter_status;
$data['filter_store_id'] = $filter_store_id;
$data['filter_category_name'] = $filter_category_name;
$data['filter_category'] = $filter_category;
$data['filter_sub_category'] = $filter_sub_category;
@@ -964,7 +1000,11 @@ class ControllerCatalogProduct extends Controller {
if (isset($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'])) {
$url .= '&filter_category=' . $this->request->get['filter_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');
$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'])) {
$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');
$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'])) {
$url .= '&page=' . $this->request->get['page'];
}
+8
View File
@@ -503,6 +503,10 @@ class ModelCatalogProduct extends Model {
if (isset($data['filter_status']) && $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'] !== '') {
$sql .= " AND p.noindex = '" . (int)$data['filter_noindex'] . "'";
@@ -860,6 +864,10 @@ class ModelCatalogProduct extends Model {
if (isset($data['filter_status']) && $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'] !== '') {
$sql .= " AND p.noindex = '" . (int)$data['filter_noindex'] . "'";
@@ -136,6 +136,19 @@
</select>
</div>
<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>
<select name="filter_noindex" id="input-noindex" class="form-control">
<option value=""></option>
@@ -279,7 +292,13 @@ $('#button-filter').on('click', function() {
if (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();
if (filter_category) {
url += '&filter_category=' + encodeURIComponent(filter_category);