Magento 2 - 如何有 2 个分隔的 phtml 来处理产品列表和产品网格?
Magento 2 - How to have 2 separates phtml to handle products list and products grid?
我正在基于 Magento 2 构建一个新网站。我仍在学习这个 CMS,我想知道一件事。根据网页设计师的工作,我发现产品列表的网格布局与列表布局之间存在太多差异。
现在,为了设计产品网格的样式,我复制并编辑了这个文件:
app/design/frontend/MYTHEME/default/Magento_Catalog/templates/product/list.phtml
但它当然处理网格和列表布局:
<div class="products wrapper <?= /* @noEscape */ $viewMode ?> products-<?= /* @noEscape */ $viewMode ?>">
我需要为列表布局移动太多东西,所以我尝试使用 2 个单独的 phtml,一个用于列表布局,一个用于网格布局。是否有可能,例如我猜 app/design/frontend/MYTHEME/default/Magento_Catalog/layout/catalog_category_view.xml
中定义的东西?
感谢您的帮助。
在您的 phtml 文件中:
app/design/frontend/MYTHEME/default/Magento_Catalog/templates/product/list.phtml
你为什么不做这样的事情:
<?php if ($viewMode == 'grid') :?>
// Grid layout
<?php else :?>
// List layout
<?php endif; ?>
如果你想分开,你会找到调用这个模板(list.phtml)的块Class。
在那里,你会看到 setTemplate 函数(有些块不会有,因为它已经在父 class 中)。
你也会在那里获得 viewMode,所以你必须设置如下条件:
if ($viewMode == 'grid') :
$this->setTemplate = '...../grid.phtml';
else :
$this->setTemplate = '...../list.phtml';
在 setTemplate 函数中。
我想您已经知道在哪里以及如何创建 grid phtml 文件。
我正在基于 Magento 2 构建一个新网站。我仍在学习这个 CMS,我想知道一件事。根据网页设计师的工作,我发现产品列表的网格布局与列表布局之间存在太多差异。
现在,为了设计产品网格的样式,我复制并编辑了这个文件:
app/design/frontend/MYTHEME/default/Magento_Catalog/templates/product/list.phtml
但它当然处理网格和列表布局:
<div class="products wrapper <?= /* @noEscape */ $viewMode ?> products-<?= /* @noEscape */ $viewMode ?>">
我需要为列表布局移动太多东西,所以我尝试使用 2 个单独的 phtml,一个用于列表布局,一个用于网格布局。是否有可能,例如我猜 app/design/frontend/MYTHEME/default/Magento_Catalog/layout/catalog_category_view.xml
中定义的东西?
感谢您的帮助。
在您的 phtml 文件中:
app/design/frontend/MYTHEME/default/Magento_Catalog/templates/product/list.phtml
你为什么不做这样的事情:
<?php if ($viewMode == 'grid') :?>
// Grid layout
<?php else :?>
// List layout
<?php endif; ?>
如果你想分开,你会找到调用这个模板(list.phtml)的块Class。
在那里,你会看到 setTemplate 函数(有些块不会有,因为它已经在父 class 中)。
你也会在那里获得 viewMode,所以你必须设置如下条件:
if ($viewMode == 'grid') :
$this->setTemplate = '...../grid.phtml';
else :
$this->setTemplate = '...../list.phtml';
在 setTemplate 函数中。
我想您已经知道在哪里以及如何创建 grid phtml 文件。