簡體   English   中英

自定義塊Magento 2不起作用

[英]Custom Block Magento 2 isnt't working

我想在\\Magento\\Catalog\\Block\\Product\\View添加一個新功能

我做了什么:

1. app/code/Company/Module

composer.json

{
    "name": "Company/Module",
    "description": "N/A",
    "require": {
        "php": "~5.5.0|~5.6.0|~7.0.0"
    },
    "type": "magento2-module",
    "version": "100.0.2",
    "license": [
        "OSL-3.0",
        "AFL-3.0"
    ],
    "autoload": {
        "files": [
            "registration.php"
        ],
        "psr-4": {
            "Magento\\Cms\\": ""
        }
    }
}

為registration.php

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Company_Module',
    __DIR__
);

2. app/code/Company/Module/Product/View

在這個文件里面:

 <?php

namespace Company\Module\Block\Product;

class View extends \Magento\Catalog\Block\Product\View {

    private function trySomething()
    {

        exit('test');return '123';
    }
}


?>

3. app/code/Company/Module/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\Block\Product\View" type="Company\Module\Block\Product\View" />
</config>

也在文件夾中:

module.xml

內容:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Company_Module" setup_version="1.0.0">

    </module>
</config>

我想在模板上調用該函數,包含在product_detail中,如下所示:

/**
 * Product view template
 *
 * @var $block \Company\Module\Block\Product\View
 */

?>
<?php echo  $block->trySomething(); ?>

This is just another test

在product_detail上正確顯示了文本“這只是另一個測試”,但不會調用該函數。

希望可以有人幫幫我。

我自己解決了,問題是塊和布局不在同一個模塊中。 我在app/code/local/Company/Module下創建了一個view/frontend/layoutview/frontend/templates ,這解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM