Модуль "Фильтр по артикулу в админ панели v1.5.x"
ВНИМАНИЕ! ЕСЛИ ИСПОЛЬЗУЕТЕ ГОТОВЫЕ ФАЙЛЫ, СДЕЛАЙТЕ БЭКАП ЗАМЕНЯЕМЫХ ФАЙЛОВ!
Проверял на версии 1.5.5.1.1, для остальных версий будет делаться все наподобие.
1) Идем в файл admin/controller/catalog/product.php
После (примерно 34 строчка)
if (isset($this->request->get['filter_model'])) {
$filter_model = $this->request->get['filter_model'];
} else {
$filter_model = null;
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$filter_sku = $this->request->get['filter_sku'];
} else {
$filter_sku = null;
}
После (примерно 100 строчка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . $this->request->get['filter_model'];
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . $this->request->get['filter_sku'];
}
После (примерно 132 строчка)
'filter_model' => $filter_model,
Добавляем
'filter_sku' => $filter_sku,
После(примерно 182 строчка)
'model' => $result['model'],
Добавляем
'sku' => $result['sku'],
После (примерно 232 строчка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8'));
}
После (примерно 296 строчка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8'));
}
После (примерно 362 строчка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8'));
}
После (примерно 428 строчка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8'));
}
После (примерно 483 строчка)
if (isset($this->request->get['filter_model'])) {
$filter_model = $this->request->get['filter_model'];
} else {
$filter_model = null;
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$filter_sku = $this->request->get['filter_sku'];
} else {
$filter_sku = null;
}
После (примерно 549 строчка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . $this->request->get['filter_model'];
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . $this->request->get['filter_sku'];
}
После (примерно 605 строчка)
'filter_model' => $filter_model,
Добавляем
'filter_sku' => $filter_sku,
После (примерно 653 строчка)
'model' => $result['model'],
Добавляем
'sku' => $result['sku'],
После (примерно 677 строчка)
$this->data['column_model'] = $this->language->get('column_model');
Добавляем
$this->data['column_sku'] = $this->language->get('column_sku');
После (примерно 719 строчка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . $this->request->get['filter_model'];
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . $this->request->get['filter_sku'];
}
После (примерно 750 строка)
$this->data['sort_model'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.model' . $url, 'SSL');
Добавляем
$this->data['sort_sku'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.sku' . $url, 'SSL');
После (примерно 771 строка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . $this->request->get['filter_model'];
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . $this->request->get['filter_sku'];
}
После (примерно 811 строка)
$this->data['filter_model'] = $filter_model;
Добавляем
$this->data['filter_sku'] = $filter_sku;
После (примерно 986 строка)
if (isset($this->request->get['filter_model'])) {
$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
}
Добавляем
if (isset($this->request->get['filter_sku'])) {
$url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8'));
}
2) Идем в файл admin/model/catalog/product.php
После (примерно 365 строчка)
if (!empty($data['filter_model'])) {
$sql .= " AND LCASE(p.model) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_model'])) . "%'";
}
Добавляем
if (!empty($data['filter_sku'])) {
$sql .= " AND LCASE(p.sku) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_sku'])) . "%'";
}
После (примерно 413 строчка)
'p.model',
Добавляем
'p.sku',
После (примерно 677 строчка)
if (!empty($data['filter_model'])) {
$sql .= " AND LCASE(p.model) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_model'])) . "%'";
}
Добавляем
if (!empty($data['filter_sku'])) {
$sql .= " AND LCASE(p.sku) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_sku'])) . "%'";
}
3) Идем в файл admin/view/template/catalog/product_list.tpl
После (примерно 40 строчка)
<td class="left"><?php if ($sort == 'p.model') { ?>
<a href="<?php echo $sort_model; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_model; ?></a>
<?php } else { ?>
<a href="<?php echo $sort_model; ?>"><?php echo $column_model; ?></a>
<?php } ?></td>
Добавляем
<td class="left"><?php if ($sort == 'p.sku') { ?>
<a href="<?php echo $sort_sku; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_sku; ?></a>
<?php } else { ?>
<a href="<?php echo $sort_sku; ?>">Артикул</a>
<?php } ?></td>
После (примерно 90 строчка)
<td><input type="text" name="filter_model" value="<?php echo $filter_model; ?>" /></td>
Добавляем
<td><input type="text" name="filter_sku" value="<?php echo $filter_sku; ?>" /></td>
После (примерно 122 строчка)
<td class="left"><?php echo $product['model']; ?></td>
Добавляем
<td class="left"><?php echo $product['sku']; ?></td>
После (примерно 164 строка)
<td class="left">${model}</td>
Добавляем
<td class="left">${sku}</td>
После (примерно 212 строчка)
var filter_model = $('input[name=\'filter_model\']').attr('value');
if (filter_model) {
url += '&filter_model=' + encodeURIComponent(filter_model);
}
Добавляем
var filter_sku = $('input[name=\'filter_sku\']').attr('value');
if (filter_sku) {
url += '&filter_sku=' + encodeURIComponent(filter_sku);
}
В самом конце файла перед
//--></script>
<?php echo $footer; ?>
Добавляем
$('input[name=\'filter_sku\']').autocomplete({
delay: 0,
source: function(request, response) {
$.ajax({
url: 'index.php?route=catalog/product/autocomplete&token=<?php echo $token; ?>&filter_sku=' + encodeURIComponent(request.term),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item.sku,
value: item.product_id
}
}));
}
});
},
select: function(event, ui) {
$('input[name=\'filter_sku\']').val(ui.item.label);
return false;
}
});
На этом все, фильтр по артикулу готов и работает, будьте внимательны при редактировании файлов и все получится!
Для ленивых выкладываю уже отредактированные файлы версии движка 1.5.5.1.1(при копировании заменятся родные файлы движка, делайте бекапы!) - модуль sku.zip