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

Нет страниц
 
madhoe
Jr. Member
 
Total Posts:  6
Joined:  2012-02-17
 

Здраствуйте!
Очень нужна ваша помощь, не отображаются страницы с товаром. максимум 30 позиций, а остальной товар нет возможности просмотреть.  предполагаю, что код на отображение страницы просто отсутсвует или кривой, но самому очень сложно в этом разобраться. подскажите, пожалуйста, где в каком файле его искать и если можно скинте сам код. заранее спасибо!

вот ссылка для наглядного примера:
http://belautokit.by/autohimiya-i-kosmetika/po-brendam/hi-gear.html

 
Magento Community Magento Community
Magento Community
Magento Community
 
Sergiy Stotskiy
Member
 
Avatar
Total Posts:  53
Joined:  2011-02-27
 

У Вас пейджер не выводится=)
Нужно смотреть шаблон app/design/frontend/base/default/template/catalog/product/list/toolbar.phtml (путь указан к базовому шаблону, вам по аналогии нужен из вашей темы, чтобы его найти нужно знать какая у вас тема и в каком пакете она хранится, в большинстве случаев - это default, тогда путь будет app/design/frontend/default/YOUR_THEME_NAME/template/catalog/product/list/toolbar.phtml). Если там есть строка вроде

echo $this->getPagerHtml()
тогда смотрим app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php метод getPagerHtml. Добавляем лог
$pagerBlock $this->getChild('product_list_toolbar_pager');
Mage::log(array(
    
'is_object' => is_object($pagerBlock),
    
'is_varien' => $pagerBlock instanceof Varien_Object
), true'my.log');

лог файл можно посмотреть в var/log/my.log. Если первое или второе будет false или 0 или null или пустой строкой в логе, значит у вас проблема с catalog.xml лейаут файлом. Нужно зайти в него (соответственно в Вашу тему) и поискать там, если его нет - нужно добавить как дочерний блок во все блоки вида

<block type="catalog/product_list_toolbar" template="catalog/product/list/toolbar.phtml">

Если есть, значит у вас какая-то кастомная логика в каком-то модули, которая убирает пейджер. Более детально без просмотра кода сказать нельзя

 
Magento Community Magento Community
Magento Community
Magento Community
 
madhoe
Jr. Member
 
Total Posts:  6
Joined:  2012-02-17
 

спасибо огромное!! проделал все как вы написали, в тулбаре все нормально, в логе пустые строчки, а вот в катологе нашелся ответ на проблему, только незнаю куда впихнуть предлагаемый код.

<!-- The following code shows how to set your own pager increments -->
<!-- <
action method="setDefaultListPerPage"><limit>4</limit></action> <action method="setDefaultGridPerPage"><limit>9</limit></action> <action method="addPagerLimit"><mode>list</mode><limit>2</limit></action> <action method="addPagerLimit"><mode>list</mode><limit>4</limit></action> <action method="addPagerLimit"><mode>list</mode><limit>6</limit></action> <action method="addPagerLimit"><mode>list</mode><limit>8</limit></action> <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action> -->
<!-- The following code shows how to set your own pager increments -->
<!-- <
action method="setDefaultListPerPage"><limit>4</limit></action> <action method="setDefaultGridPerPage"><limit>3</limit></action> <action method="addPagerLimit"><mode>list</mode><limit>2</limit></action> <action method="addPagerLimit"><mode>list</mode><limit>4</limit></action> <action method="addPagerLimit"><mode>list</mode><limit>6</limit></action> <action method="addPagerLimit"><mode>list</mode><limit>8</limit></action> <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action> <action method="addPagerLimit"><mode>grid</mode><limit>3</limit></action> <action method="addPagerLimit"><mode>grid</mode><limit>6</limit></action> <action method="addPagerLimit"><mode>grid</mode><limit>9</limit></action> <action method="addPagerLimit"><mode>grid</mode><limit>all</limit><label>All</label></action> -->
File Attachments
catalog.xml  (File Size: 21KB - Downloads: 43)
 
Magento Community Magento Community
Magento Community
Magento Community
 
Sergiy Stotskiy
Member
 
Avatar
Total Posts:  53
Joined:  2011-02-27
 

У Вас есть строчки xml

<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
     <!-- 
The following code shows how to set your own pager increments -->

поменяйте их на

<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
     <
block type="page/html_pager" name="product_list_toolbar_pager"/>
     <!-- 
The following code shows how to set your own pager increments -->

Во всех аналогичных местах в этом файле. И на всякий случай убедитесь прежде есть ли у Вас файл app/code/core/Mage/Page/Block/Html/Pager.php

P.S.: не забудьте почистить кэш

 
Magento Community Magento Community
Magento Community
Magento Community
 
madhoe
Jr. Member
 
Total Posts:  6
Joined:  2012-02-17
 

добавил код, появились страницы, спасибо!!!
но теперь продублировалась надпись: Позиции с 10 по 18 из 103
можно ее как-то убрать?

 
Magento Community Magento Community
Magento Community
Magento Community
 
Sergiy Stotskiy
Member
 
Avatar
Total Posts:  53
Joined:  2011-02-27
 

Конечно можно. Видимо у Вас блок тулбара перезаписан или изменен. Посмотрите есть ли у Вас файл app/code/local/Mage/Catalog/Block/Product/List/Toolbar.php . Если есть, то нужно его изменять. Если нет - значит нужно поправить обратно коровский файл app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php . Метод getPagerHtml должен выглядеть так

public function getPagerHtml()
    
{
        $pagerBlock 
$this->getChild('product_list_toolbar_pager');

        if (
$pagerBlock instanceof Varien_Object{

            
/* @var $pagerBlock Mage_Page_Block_Html_Pager */
            
$pagerBlock->setAvailableLimit($this->getAvailableLimit());

            
$pagerBlock->setUseContainer(false)
                ->
setShowPerPage(false)
                ->
setShowAmounts(false)
                ->
setLimitVarName($this->getLimitVarName())
                ->
setPageVarName($this->getPageVarName())
                ->
setLimit($this->getLimit())
                ->
setFrameLength(Mage::getStoreConfig('design/pagination/pagination_frame'))
                ->
setJump(Mage::getStoreConfig('design/pagination/pagination_frame_skip'))
                ->
setCollection($this->getCollection());

            return 
$pagerBlock->toHtml();
        
}

        
return '';
    
}

По этому коду видно, что пейджер не должен использовать контейнер (->setUseContainer(false)) и не должен показывать к-во всех элементов (->setShowAmounts(false)). Если тут все хорошо тогда нужно найти не переопределен ли у вас темплейт app/design/frontend/base/default/template/page/html/pager.phtml в вашей теме (или в дефолтной каким-то модулем). Если переопределен, то нужно его поправить в соответствии з базовым, чтобы он использовал методы - getUseContainer и getShowAmounts .
Если ни то ни другое, есть вариант, что модель пейджера перезаписана в конфигах какого-то модуля. Тогда Вам нужно узнать имя класса пейджера. Для этого идем в System > Configuration выбираем скоуп вебсайта. Потом в Advanced > Developer > Developer Client Restrictions вводим свой IP адрес (который можно узнать в гугла). Потом на той же странице группа Debug > Template Path Hints и Debug > Add Block Names to Hints ставим в YES. Идем на страницу отображения продуктов и смотрим какой блок ответственный за вывод тулбара и какой шаблон для вывода пейджера используется. И проверяем все на соответствие с тем, что я написал выше.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top