Opencart (admin): сортировка товаров по колонке с изображениями

- Posted in Opencart by - Permalink

Сортировка по колонке с фото пригодится для быстрого перехода к товарам, у которых нет фото.

Делалось на последней версии с гитхаба, но должно быть аналогично для всех версий. Единственное, что может отличаться - tpl файл, т.к. админка в v2.0 существенно переделывалась. Но думаю, не составит труда адаптировать одну строчку под необходимую вам версию.

commit d19311b80b518c7b076b459985486d7d0c2190db
Author: Ruslan Brest <rb@labtodo.com>
Date:   Wed Aug 14 14:14:18 2013 +0300
    admin: add sort by "image" column (to quick access to products without images)
diff --git a/upload/admin/controller/catalog/product.php b/upload/admin/controller/catalog/product.php
index b867b0d..55cd8fc 100644
--- a/upload/admin/controller/catalog/product.php
+++ b/upload/admin/controller/catalog/product.php
@@ -450,6 +450,7 @@ class ControllerCatalogProduct extends Controller {
            $url .= '&page=' . $this->request->get['page'];
        }

+       $this->data['sort_image'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.image' . $url, 'SSL');
        $this->data['sort_name'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=pd.name' . $url, 'SSL');
        $this->data['sort_model'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.model' . $url, 'SSL');
        $this->data['sort_price'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.price' . $url, 'SSL');
diff --git a/upload/admin/model/catalog/product.php b/upload/admin/model/catalog/product.php
index 9a3589e..991c868 100644
--- a/upload/admin/model/catalog/product.php
+++ b/upload/admin/model/catalog/product.php
@@ -346,6 +346,7 @@ class ModelCatalogProduct extends Model {
        $sql .= " GROUP BY p.product_id";

        $sort_data = array(
+           'p.image',
            'pd.name',
            'p.model',
            'p.price',
diff --git a/upload/admin/view/template/catalog/product_list.tpl b/upload/admin/view/template/catalog/product_list.tpl
index 75cddd6..2b8aa81 100644
--- a/upload/admin/view/template/catalog/product_list.tpl
+++ b/upload/admin/view/template/catalog/product_list.tpl
@@ -29,7 +29,12 @@
           <thead>
             <tr>
               <td width="1" class="center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td>
-              <td class="center"><?php echo $column_image; ?></td>
+
+              <?php $html_class_order = 'class="' . strtolower($order) . '"'; ?>
+
+              <td class="center">
+                <a href="<?php echo $sort_image; ?>" <?php echo ($sort == 'p.image') ? $html_class_order : '' ?>><?php echo $column_image; ?></a>
+              </td>
               <td class="left"><?php if ($sort == 'pd.name') { ?>
                 <a href="<?php echo $sort_name; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_name; ?></a>
                 <?php } else { ?>
Tags: