Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

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

Просмотров: 4339 RSS Обсудить
Howto » OpenCart

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

Делалось на последней версии с гитхаба, но должно быть аналогично для всех версий. Единственное, что может отличаться - 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 { ?>
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)