Jump to content

как изменить поле сортировки в админке?


Recommended Posts

В админке в выводе товаров поле нач. цена мне совсем не нужно. А было бы неплохо добавить поле сортировки закупочная цена.

Кто подскажет как это сделать в 1.5. престе?

 

Спасибо.

Link to comment
Share on other sites

Привет!

Для этого нужно открыть файл

override/controllers/admin/AdminProductsController.php

и заменить весь код на следующий:

 

<?php
class AdminProductsController extends AdminProductsControllerCore
{
public function __construct()
{
 parent::__construct();
 $this->fields_list['price_final'] = array(
  'title' => $this->l('Final price'),
  'width' => 90,
  'type' => 'price',
  'align' => 'right',
 );
}

public function getList($id_lang, $orderBy = null, $orderWay = null, $start = 0, $limit = null, $id_lang_shop = null)
{
 $orderByPriceFinal = (empty($orderBy) ? ($this->context->cookie->__get($this->table.'Orderby') ? $this->context->cookie->__get($this->table.'Orderby') : 'id_'.$this->table) : $orderBy);
 $orderWayPriceFinal = (empty($orderWay) ? ($this->context->cookie->__get($this->table.'Orderway') ? $this->context->cookie->__get($this->table.'Orderby') : 'ASC') : $orderWay);
 AdminController::getList($id_lang, $orderBy, $orderWay, $start, $limit, $this->context->shop->id);
 $nb = count($this->_list);
 if ($this->_list)
 {
  for ($i = 0; $i < $nb; $i++)
  {
$this->_list[$i]['price'] = Tools::convertPrice($this->_list[$i]['price'], $this->context->currency, true, $this->context);
$this->_list[$i]['price_tmp'] = Product::getPriceStatic($this->_list[$i]['id_product'], true, null, 2, null, false, true, 1, true);
  }
 }
 if ($orderByPriceFinal == 'price_final')
 {
  if (strtolower($orderWayPriceFinal) == 'desc')
uasort($this->_list, 'cmpPriceDesc');
  else
uasort($this->_list, 'cmpPriceAsc');
 }
 for ($i = 0; $this->_list && $i < $nb; $i++)
 {
  $this->_list[$i]['price_final'] = $this->_list[$i]['price_tmp'];
  unset($this->_list[$i]['price_tmp']);
 }
  if ($orderByPriceFinal == 'price_final')
 {
  $order = (string)Tools::getValue('productOrderway');
  usort($this->_list,
create_function('$a, $b','return $a["price_final"] ' . (strtolower($order) == 'desc' ? '<' : '>') . ' $b["price_final"];')
  );
 }
}
}

Link to comment
Share on other sites

Большое спасибо за ответ.

 

Я внес этот код в override/controllers/admin/AdminProductsController.php

до этого там был такой код

<?php

 

class AdminProductsController extends AdminProductsControllerCore

{

 

}

 

 

но ничего не изменилось.

 

Не подскажешь почему? может еще что-нибудь надо сделать?

Link to comment
Share on other sites

Я поставил чистую версию 1.5.1.0 не ставил никаких доп. модулей. только тему добавил свою.

И еще я включил мультимагазин. и настраиваю два магазина. с оптовыми и розничными ценами. Возможно из-за этого не работает? вот скрин с админки.http://savepic.ru/3224193.png

Edited by felihan (see edit history)
Link to comment
Share on other sites

Прошу прощения, но я не так сразу понял вопрос)

 

Вот код для файла override/controllers/admin/AdminProductsController.php:

 

<?php
class AdminProductsController extends AdminProductsControllerCore
{
public function __construct()
{
 parent::__construct();
 $this->fields_list['wholesale_price'] = array(
  'title' => $this->l('Wholesale price'),
  'width' => 90,
  'type' => 'price',
  'align' => 'right',
 );	  
}
}

Link to comment
Share on other sites

Нет, остальной код не нужен.

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

У меня колонка добавилась без проблем:

 

3226280.png

 

Включите отображение ошибок в файле config/config.inc.php

заменив строчку

 

@ini_set('display_errors', 'off');

 

на эту:

 

@ini_set('display_errors', 'on');

  • Like 1
Link to comment
Share on other sites

код проверил, такой как у вас.

включение отображение ошибок, ошибок не выявило.

после надписи конфигурация мультимагазина больше ничего нет, пусто.

 

Может это быть из-за того что у меня включен мультимагазин?

Link to comment
Share on other sites

Установил чистую престу без русификации без своей темы. работает там ваша фича. :-) Спасибо.

Буду теперь разбираться где собака порылась.

Link to comment
Share on other sites

Русификация то совсем не причем. Как только включаешь мультимагазин и добавляешь второй магазин . фича сразу перестает работать, и вместо каталога товара мы видим пустой экран. Стоит нам удалить второй магазин, все опять работатет нормально.

Link to comment
Share on other sites

  • 1 year later...

Для ps 1.6 ваш способ, к сожалению, не подходит. Выдает ошибку "Неверный SQL запрос Column 'wholesale_price' in field list is ambiguous". Кто-нибудь подскажет как сделать для ps 1.6? Заранее спасибо!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...