Bạn có thể làm điều đó bằng cách sử dụng xml cho các sản phẩm số lượng lớn. cho rằng bạn sẽ phải ghi đè trình trợ giúp và tạo thuộc tính cho điều đó. Hãy để tôi giải thích cho bạn mô tả.
Bước 1: Tạo thuộc tính sản phẩm ' customlayout '.
- Tạo thuộc tính sản phẩm cutom cho bố cục tùy chỉnh, ở đây tôi vừa tạo thuộc tính ' customlayout ' với kiểu boolean (có / không) .
- Gán thuộc tính này trong tập thuộc tính thích hợp.
- Bây giờ ' customlayout ' hiển thị trong các sản phẩm, đặt có trong các sản phẩm mà bạn muốn đặt bố cục khác nhau.
Bước 2: Ghi đè chức năng Trình trợ giúp init ProducttLayout ().
Ghi đè chức năng của trình trợ giúp trong mô-đun tùy chỉnh của bạn và cũng thay đổi trong tệp di.xml để ghi đè trình trợ giúp.
ứng dụng / mã / YourCompany / YourModule / etc / di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Catalog\Helper\Product\View" type="YourCompany\YourModule\Helper\Product\View" />
</config>
trong tệp YourCompany \ YourModule \ Helper \ Product \ view.php .
public function initProductLayout(ResultPage $resultPage, $product, $params = null)
{
......
// add handle params
......
if ($params && $params->getBeforeHandles()) {
foreach ($params->getBeforeHandles() as $handle) {
$resultPage->addPageLayoutHandles(['customlayout' => $product->getCustomlayout(), 'id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], $handle, false);
}
}
$resultPage->addPageLayoutHandles(['customlayout' => $product->getCustomlayout(), 'id' => $product->getId(), 'sku' => $urlSafeSku]);
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], null, false);
if ($params && $params->getAfterHandles()) {
foreach ($params->getAfterHandles() as $handle) {
$resultPage->addPageLayoutHandles(['customlayout' => $product->getCustomlayout(), 'id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], $handle, false);
}
}
........
}
Ở đây tôi đã thêm thuộc tính tùy chỉnh để xử lý bố trí tùy chỉnh. bây giờ bạn có thể tạo tập tin bố trí tùy chỉnh để sử dụng thuộc tính này.
hãy tạo tập tin xử lý tùy chỉnh.
Bước 3: Tạo tập tin bố cục để bố trí tùy chỉnh.
Tạo tập tin bố trí trong chủ đề tùy chỉnh / mô-đun tùy chỉnh của bạn.
catalog_product_view_customlayout_1.xml
Ở đây bạn có thể thiết lập các thay đổi tùy chỉnh của bạn trong đó. nó sẽ được áp dụng cho tất cả các sản phẩm có giá trị tùy chỉnh ' customlayout ' là ' có '.
$layout->getUpdate()->addHandle('your_handler_name');
, Tôi không hiểu trình xử lý, tôi cũng R & D cho trình xử lý bố cục, Tài nguyên không làm tôi hiểu. Nếu bạn có thể giúp tôi ra HOẶC một số liên kết hữu ích.