Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Новые товары из определенной категории
 
evgen_rus
Jr. Member
 
Total Posts:  27
Joined:  2009-03-07
 

Товарищи может кто подскажет решение , как вывести скажем последнии добавленные товары (либо те которые помечены как новые ) из определенной категории? Версия 1.4.1

 
Magento Community Magento Community
Magento Community
Magento Community
 
evgen_rus
Jr. Member
 
Total Posts:  27
Joined:  2009-03-07
 

Спасибо Дмитрий , Ваше решение работает. Но есть маленькое но, почему то выводятся и те продукты которые не помеченные в адмике как новые.
п.с.вообще можно впринципе переделать стандартный вывод в категориях (list.phtml), под наши нужды. Там товары выводятся по умолчанию в обратном хронологическом порядке, так что если собрать массив с данными о товрах (имя, описание , изображение) а потом его инвентировать, то должно получится то что нужно.  Хотя может это извращенство smile

 
Magento Community Magento Community
Magento Community
Magento Community
 
t_rodriguez
Sr. Member
 
Avatar
Total Posts:  229
Joined:  2009-01-14
 

Не извращение, наоборот, адекватная логика ) Сортировка “Позиция” должна идти от нового к старому, сверху вниз. Но по умолчанию в Мадженто сделано наоборот. Сортировка по цене и алфавиту работает адекватно, можно не трогать. Ð’ старых версиях это исправлялось легко, Ñ‚.к. за каждый вид сортировки отвечала своя функция. Потом ее свели в одну, и получалась лажечка, Ñ‚.к. менять нам нужно только сортировку по позиции, а цену и алфавит оставить как есть.

Вобщем, этот код от версии к версии менялся, и в 1.4 хз как выглядит, пробейте по поиску, была на английском большая тема посвященная этому вопросу.

Решение для 1.3.2.4, может сработает и для более поздних версий.

Хак для инвертирования сортировки по позиции: устанавливаем от нового к старому.

1. Меняем в файле app / code / core / Mage / Catalog / Block / Product / List / Toolbar.php фу-ию getCurrentDirection() на следующую:

public function getCurrentDirection() {
        $directions 
= array('asc''desc');
        
$dir strtolower($this->getRequest()->getParam($this->getDirectionVarName()));
        if (
$dir && in_array($dir$directions)) {
                Mage
::getSingleton('catalog/session')->setSortDirection($dir);
        
}
        
else {
                $dir 
Mage::getSingleton('catalog/session')->getSortDirection();
        
}

        
// validate direction
        
if (!$dir || !in_array($dir$directions)) {
                $dir 
$this->_direction;
        
}
        
if ($this->getCurrentOrder() == 'position'{
                
if (Mage::getSingleton('catalog/session')->getSortDirection() == '' || Mage::getSingleton('catalog/session')->getSortDirection() == 'asc'{
                        $dir 
'desc';
                
else {
                        $dir 
'asc';
                
}
        }
        
return $dir;
}

Напоминаю, если мы меняем что-то в app / code / core-файле, то копируем его с сохранением структуры папок в app / code / local. В таком случае внесенные изменения не будут затронуты при обновлении движка.

2. Вносим в файл app / design / frontend / your-theme / your-default / template / catalog / product / list / toolbar.phtml что-то вроде этого:

<?php if($this->getCurrentDirection() == 'desc'): ?>
        <?php 
if ($this->getCurrentOrder() == 'position'): ?>
                
<a href="<?php echo $this->getOrderUrl(null, 'desc') ?>" class="ascend-arrow" title="<?php echo $this->__('Сортируется Ð¿Ð¾ Ð²Ð¾Ð·Ñ€Ð°ÑÑ‚анию. Ð£ÑÑ‚ановить Ð¿Ð¾ ÑƒÐ±Ñ‹Ð²Ð°Ð½Ð¸ÑŽ') ?>"><?php echo $this->__('Сортируется Ð¿Ð¾ Ð²Ð¾Ð·Ñ€Ð°ÑÑ‚анию. Ð£ÑÑ‚ановить Ð¿Ð¾ ÑƒÐ±Ñ‹Ð²Ð°Ð½Ð¸ÑŽ'?></a>
        
<?php else: ?>
                
<a href="<?php echo $this->getOrderUrl(null, 'asc') ?>" class="descend-arrow" title="<?php echo $this->__('Сортируется Ð¿Ð¾ ÑƒÐ±Ñ‹Ð²Ð°Ð½Ð¸ÑŽ. Ð£ÑÑ‚ановить Ð¿Ð¾ Ð²Ð¾Ð·Ñ€Ð°ÑÑ‚анию') ?>"><?php echo $this->__('Сортируется Ð¿Ð¾ ÑƒÐ±Ñ‹Ð²Ð°Ð½Ð¸ÑŽ. Ð£ÑÑ‚ановить Ð¿Ð¾ Ð²Ð¾Ð·Ñ€Ð°ÑÑ‚анию'?></a>
        
<?php endif ?>
<?php 
else: ?>
        <?php 
if ($this->getCurrentOrder() == 'position'): ?>
                
<a href="<?php echo $this->getOrderUrl(null, 'asc') ?>" class="descend-arrow" title="<?php echo $this->__('Сортируется Ð¿Ð¾ ÑƒÐ±Ñ‹Ð²Ð°Ð½Ð¸ÑŽ. Ð£ÑÑ‚ановить Ð¿Ð¾ Ð²Ð¾Ð·Ñ€Ð°ÑÑ‚анию') ?>"><?php echo $this->__('Сортируется Ð¿Ð¾ ÑƒÐ±Ñ‹Ð²Ð°Ð½Ð¸ÑŽ. Ð£ÑÑ‚ановить Ð¿Ð¾ Ð²Ð¾Ð·Ñ€Ð°ÑÑ‚анию'?></a>
        
<?php else: ?>
                
<a href="<?php echo $this->getOrderUrl(null, 'desc') ?>" class="ascend-arrow" title="<?php echo $this->__('Сортируется Ð¿Ð¾ Ð²Ð¾Ð·Ñ€Ð°ÑÑ‚анию. Ð£ÑÑ‚ановить Ð¿Ð¾ ÑƒÐ±Ñ‹Ð²Ð°Ð½Ð¸ÑŽ') ?>"><?php echo $this->__('Сортируется Ð¿Ð¾ Ð²Ð¾Ð·Ñ€Ð°ÑÑ‚анию. Ð£ÑÑ‚ановить Ð¿Ð¾ ÑƒÐ±Ñ‹Ð²Ð°Ð½Ð¸ÑŽ'?></a>
        
<?php endif ?>
<?php 
endif ?>
 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top