Magento 2 - Как иметь 2 отдельных p html для обработки списка продуктов и сетки продуктов? - PullRequest
0 голосов
/ 02 апреля 2020

Я создаю новый веб-сайт на основе Magento 2. Я все еще изучаю эту CMS и мне интересно одно. Основываясь на работе веб-дизайнера, у меня слишком много различий между компоновкой сетки списка продуктов и списка.

Сейчас, чтобы стилизовать сетку товара, я продублирую и отредактирую этот файл: app/design/frontend/MYTHEME/default/Magento_Catalog/templates/product/list.phtml

Но, конечно, он обрабатывает и сетку, и макет списка:

<div class="products wrapper <?= /* @noEscape */ $viewMode ?> products-<?= /* @noEscape */ $viewMode ?>">

Мне нужно переместить слишком много вещей для макета списка, поэтому я стараюсь иметь 2 отдельных p html, один для макета списка и один для макета сетки. Возможно ли, например, определить вещи в app/design/frontend/MYTHEME/default/Magento_Catalog/layout/catalog_category_view.xml Полагаю?

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

В вашем файле p html:

app / design / frontend / MYTHEME / default / Magento_Catalog / templates / product / list.p html

Почему бы тебе просто не сделать что-то вроде этого:

<?php if ($viewMode == 'grid') :?>
    // Grid layout
<?php else :?>
    // List layout
<?php endif; ?>
0 голосов
/ 04 апреля 2020

Если вы хотите отделиться, вы узнаете класс блоков, который вызвал этот шаблон (list.p html).

Там вы увидите функцию setTemplate ( некоторые блоки не будут иметь этого, потому что он уже находится в родительском классе).

Там вы также увидите viewMode, поэтому вам нужно будет установить условие, как показано ниже:

if ($viewMode == 'grid') : 
   $this->setTemplate = '...../grid.phtml';
else : 
   $this->setTemplate = '...../list.phtml';

внутри setTemplate Функция.

Я думаю, вы уже знаете, где и как создать сетка p html файл.

...