cmsページ編集ビューのバックエンドに別のボタンを追加したいのですが。だから私はモジュールを作成しました(https://community.magento.com/t5/Programming-Questions/Overriding-a-block-in-Magento-2/mp/6831の助けを借りて):
app / code / Company / Modulename / etc / 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_Modulename" schema_version="0.0.1" setup_version="0.0.1">
<sequence>
<module name="Magento_Cms" />
</sequence>
</module>
</config>
app / code / Company / Modulename / etc / di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
<preference for="Magento\Cms\Block\Adminhtml\Page\Edit" type="Company\Modulename\Block\Adminhtml\Page\Edit" />
</config>
app / code / Company / Modulename / Block / Adminhtml / Page / Edit.php
<?php
namespace Company\Modulename\Block\Adminhtml\Page;
class Edit extends Magento\Cms\Block\Adminhtml\Page\Edit {
protected function _construct()
{
parent::_construct();
$this->buttonList->add('Test',[
'label' => __('Test')
]);
}
}
そしてそれをapp / etc / config.phpファイルに追加します:'Company_Modulename' => 1
しかし、これは私にエラーを与えます:
Fatal error: Class 'Company\Modulename\Block\Adminhtml\Page\Magento\Cms\Block\Adminhtml\Page\Edit' not found in C:\git-projects\magento2\app\code\Company\Modulename\Block\Adminhtml\Page\Edit.php on line 4
app / code / Magento / Cms / Block / Adminhtml / Page / Edit.phpファイルは次で始まるので、他のものを参照する必要がありますか?
namespace Magento\Cms\Block\Adminhtml\Page;
class Edit extends \Magento\Backend\Block\Widget\Form\Container
そして、これはMagento 2でこれを達成する最もきれいな方法ですか?