Количество новых продуктов, отображаемых на домашней странице CMS Magento - PullRequest
0 голосов
/ 28 февраля 2012

Я использую

{
    {
        block type="catalog/product_new" 
        name="home.catalog.product.new" alias="product_homepage"
        template="catalog/product/new.phtml"
    }
} 

на странице cms, чтобы показать новые продукты.Сейчас он показывает только один продукт.

Есть ли способ изменить его, чтобы показать указанное количество товаров?Например: 16 продуктов

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Вот что у меня есть:

{{block type="catalog/product_list_random" num_products="9" category_id="231" template="catalog/product/list_no_toolbar.phtml" columnCount="3"}}

num_products - это параметр, в котором вы говорите, сколько продуктов нужно показать на этой странице.

в приложении / коде / локальном файле создания Маг / Каталог/ Block / Product / List В вашем новом каталоге List создайте следующий файл с именем Random.php

<?php
class Mage_Catalog_Block_Product_List_Random extends Mage_Catalog_Block_Product_List
{
    protected function _getProductCollection()
    {
        if (is_null($this->_productCollection)) {
            $categoryID = $this->getCategoryId();
            if($categoryID)
            {
              $category = new Mage_Catalog_Model_Category();
              $category->load($categoryID); // this is category id
              $collection = $category->getProductCollection();
            } else
            {
              $collection = Mage::getResourceModel('catalog/product_collection');
            }
            Mage::getModel('catalog/layer')->prepareProductCollection($collection);
            $collection->getSelect()->order('rand()');
            $collection->addStoreFilter();
            $numProducts = $this->getNumProducts() ? $this->getNumProducts() : 3;
            $collection->setPage(1, $numProducts)->load();

            $this->_productCollection = $collection;
        }
        return $this->_productCollection;
    }
}

$ collection-> getSelect () -> order ('rand ()'); - это строка, которая устанавливает случайность, вы можете это закомментировать.

0 голосов
/ 28 февраля 2012

Ваш код отлично работает на моем сайте.Откройте /app/code/core/Mage/Catalog/Block/Product/New.php

Вокруг строки 38 вы должны увидеть что-то вроде этого:

const DEFAULT_PRODUCTS_COUNT = 5;

Скорее всего, число установлено на "1".Если нет, то посмотрите в /app/code/local/Mage/Catalog/Block/Product/New.php, чтобы убедиться, что кто-то не создал локальное переопределение вашего основного файла.

Если число равно «1», то вы должны создать модуль для изменения значения, которое расширяется Mage_Catalog_Block_Product_New.

...