ViewModel PDP에 사용자 정의 제목 추가 - Magento 2

2100 단어 magento2
Magento 2의 제품 세부내용 페이지에 추가 제목을 추가해야 할 경우 ViewModel을 통해 완료하는 것이 좋습니다.
편집할 파일 3개,
  • 뷰 모델의 PHP 파일
  • 레이아웃 파일
  • phtml 템플릿 파일
  • app/code/Vendor/Module/ViewModel/CustomTitle.php
    namespace Vendor\Module\ViewModel;
    
    use Magento\Framework\Registry;
    
    class CustomTitle implements \Magento\Framework\View\Element\Block\ArgumentInterface
    {
        /**
         * @var Registry
         */
        protected $registry;
    
        /**
         * ProductTitle constructor.
         * @param Registry $registry
         */
        public function __construct(
            Registry $registry
        ) {
            $this->registry = $registry;
        }
    
        /**
         * @return mixed
         */
        public function getOptionTitle()
        {
            return $this->registry->registry('current_product')->getHasOptions();
        }
    }
    
    app/design/frontend/Vendor/default/Magento_Catalog/layout/Catalog_product_view.xml
    <referenceContainer name="product.info.main">
        <container name="product.attribute.title.extra" as="productattributetitleextra" label="Product Attribute Title Extra" htmlTag="div" htmlClass="addon-title"  before="-">
            <block class="Magento\Framework\View\Element\Template" name="product.attribute.title.extra.template" template="Magento_Catalog::title.phtml">
                <arguments>
                    <argument name="view_model" xsi:type="object">Vendor\Module\ViewModel\CustomTitle</argument>
                </arguments>
            </block>
        </container>        
    </referenceContainer>
    
    응용 프로그램/디자인/프런트엔드/공급업체/기본/Magento 디렉토리/템플릿/제목phtml
    <?php
    /* @var $block \Magento\Framework\View\Element\Template */
    ?>
    <?php $viewModel = $block->getData('view_model'); ?>
    
     <?php if ($viewModel->getOptionTitle()): ?>
        <h2>Customized title</h2>
     <?php endif; ?>
    

    좋은 웹페이지 즐겨찾기