Magento sử dụng tệp được gọi view.xml
là duy trì ở cấp chủ đề của ứng dụng.
Vì vậy, ví dụ, nếu bạn đang sử dụng chủ đề mặc định, luma
bạn nên tìm bên view.xml
dướivendor/magento/theme-frontend-luma/etc/view.xml
Trong tệp này, bạn sẽ thấy <images/>
nút bên trong <media>
nút.
<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
<media>
<images module="Magento_Catalog">
<image id="bundled_product_customization_page" type="thumbnail">
<width>140</width>
<height>140</height>
</image>
<image id="cart_cross_sell_products" type="thumbnail">
<width>200</width>
<height>248</height>
</image>
<image id="cart_page_product_thumbnail" type="small_image">
<width>165</width>
<height>165</height>
</image>
........
</images>
</media>
......
</view>
Kích thước của hình ảnh được duy trì ở đây dưới <image/>
nút.
Các id
giá trị thuộc tính của <image/>
nút được tham chiếu trong codebase.
Ví dụ:
<image id="related_products_list" type="small_image">
<width>152</width>
<height>190</height>
</image>
Giá trị id được sử dụng trong tệp xem vendor/magento/module-catalog/view/frontend/templates/product/list/items.phtml
case 'related':
/** @var \Magento\Catalog\Block\Product\ProductList\Related $block */
if ($exist = $block->getItems()->getSize()) {
$type = 'related';
$class = $type;
$image = 'related_products_list';
$title = __('Related Products');
$items = $block->getItems();
$limit = 0;
$shuffle = 0;
$canItemsAddToCart = $block->canItemsAddToCart();
$showWishlist = true;
$showCompare = true;
$showCart = false;
$templateType = null;
$description = false;
}
break;
Ở đây $image
đề cập đến giá trị của kích thước hình ảnh ở đây:
<?php echo $block->getImage($_item, $image)->toHtml(); ?>
Trong trường hợp chủ đề không có view.xml
, thì có thể sử dụng chủ đề dự phòng (chủ đề gốc) có view.xml
tệp.
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>Magento Luma</title>
<parent>Magento/blank</parent>
.....
</theme>
Đây Magento/blank
là chủ đề phụ huynh.
Trong trường hợp thay đổi / ghi đè các giá trị của view.xml
tệp, bạn cần sao chép hoàn toàn toàn bộ view.xml
tệp vào chủ đề tùy chỉnh của mình và thay đổi các giá trị.
view.xml
không có hệ thống dự phòng giá trị nút, có nghĩa là nếu giá trị của nút không có trong chủ đề tùy chỉnh của view.xml
bạn thì nó sẽ không dự phòng theo giá trị view.xml của chủ đề gốc, đó là lý do tại sao toàn bộ tệp cần được sao chép.
Khi các thay đổi giá trị đã được thực hiện, bạn sẽ phải chạy
php bin/magento catalog:images:resize
Điều này sẽ tạo lại kích thước hình ảnh mới.