Ich möchte eine weitere Schaltfläche im Backend der Bearbeitungsansicht der CMS-Seite hinzufügen. Also habe ich ein Modul erstellt (mit Hilfe von: https://community.magento.com/t5/Programming-Questions/Overriding-a-block-in-Magento-2/mp/6831 ):
app / code / Company / Modulname / 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 / Firma / Modulname / 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 / Firma / Modulname / 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')
]);
}
}
Und fügte es der Datei app / etc / config.php hinzu :'Company_Modulename' => 1
Aber das gibt mir einen Fehler:
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
Muss ich auf etwas anderes verweisen, da die Datei app / code / Magento / Cms / Block / Adminhtml / Page / Edit.php mit Folgendem beginnt:
namespace Magento\Cms\Block\Adminhtml\Page;
class Edit extends \Magento\Backend\Block\Widget\Form\Container
Und ist dies der sauberste Weg, dies in Magento 2 zu erreichen?