Tôi muốn thêm một nút khác trong phần phụ trợ trên giao diện chỉnh sửa trang cms. Vì vậy, tôi đã tạo một mô-đun (với sự trợ giúp của: https://community.magento.com/t5/Programming-Questions/Overriding-a-block-in-Magento-2/mp/6831 ):
ứng dụng / mã / Công ty / 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>
ứng dụng / mã / Công ty / 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>
ứng dụng / mã / Công ty / Modulename / Chặn / adminhtml / Trang / 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')
]);
}
}
Và thêm nó vào tập tin app / etc / config.php :'Company_Modulename' => 1
Nhưng điều này cho tôi một lỗi:
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
Tôi có cần tham chiếu đến cái gì khác không, vì tệp ứng dụng / code / Magento / Cms / Block / adminhtml / Page / Edit.php bắt đầu bằng:
namespace Magento\Cms\Block\Adminhtml\Page;
class Edit extends \Magento\Backend\Block\Widget\Form\Container
Và đây có phải là cách sạch nhất để thực hiện điều này trong Magento 2?