Контроллер связанных продуктов Magento — Показать связанные, даже если коллекция = 0

Я ищу контроллер/функцию, которая показывает дочерний HTML-код связанного продукта.

На странице просмотра товара вызывается просто через <?php echo $this->getChildHtml('related'); ?>

Я изменил этот файл phtml, чтобы подсчитать связанные элементы и показать альтернативный вариант случайного выбора продуктов, используя это:

(Within /catalog/product/list/related.phtml)
<?php if($this->getItems()->getSize() > 1): ?>
Show the products
<?php else: echo $this->getLayout()->createBlock('cms/block')->setBlockId('related-products-fallback')->toHtml(); 
endif;
 ?>

Это отлично работает при тестировании страниц с 1 или более связанными продуктами, но если связанных продуктов нет, то Child 'related.phtml' никогда не вызывается.

Я искал в файловой структуре magento что-нибудь «связанное», но нигде не могу найти волшебный файл. Я полагаю, что где-то это будет относительно простое выражение if.


person James    schedule 09.01.2013    source источник


Ответы (1)


Контроллер находится в app/code/core/Mage/Catalog/Block/Product/List, но вам действительно следует избегать прямого редактирования ядра. Проверьте идентификатор своего блока и убедитесь, что вы очистили кеш! Сбросьте все типы кеша и проверьте еще раз!

person djthoms    schedule 09.01.2013
comment
Я всегда копирую на локальный и да, я задал вопрос немного преждевременно - это были некоторые проблемы с кэшированием. - person James; 09.01.2013
comment
Здорово! Кэширование всегда является самой большой проблемой, с которой я сталкиваюсь в Magento (как и большинство разработчиков). - person djthoms; 09.01.2013
comment
На самом деле это было кеширование сервера через обратные прокси, это просто усугубляет проблемы, связанные с забыванием очистить кеш magento: S. Спасибо за ссылку на контроллер - она ​​ответила на вопрос и будет полезна в будущем. - person James; 09.01.2013
comment
Это сделает это! Удачи! - person djthoms; 09.01.2013