I would like to overwrite the the Block files and .phtml files of the magento modules.Here is example
-Magento Newsletter Module
I want to extended the Block file '\Magento\Newsletter\Block\Subscribe' to the custom Module as mentioned in the below code
<?php
namespace Sample\Test\Block;
class Customsubscribe extends \Magento\Newsletter\Block\Subscribe
{
/**
* Retrieve form action url and set "secure" param to avoid confirm
* message when we submit form from secure page to unsecure
*
* @return string
*/
public function getFormActionUrl()
{
return $this->getUrl('newsletter/subscriber/new1231', ['_secure' => true]);
}
}
?>
Add tried to override the subscriber.phtml for Magento newsletter Module to My sample Module 'Test'
In the custom modules folder i add the below code
app\code\Sample\Test\view\frontend\layout\default.xml
<!--remove name ='form.subscribe'/-->
<referenceContainer name="footer">
<block class="Training\Test\Block\Customsubscribe" name="form.subscribe" as="subscribe" before="-" template="subscribe.phtml"/>
</referenceContainer>
</body>
After Doing that i run the CLI : php bin/magento setup:upgrade, but still the file is loading from the Magento_Newsletter Module .
Can any one please help on the this issues.
One of your errors is you have specified a wrong namespace: you use Sample\Test\Block in the class declaration but Training\Test\Block is the layout default.xml file.
Hi Dmitry_Fedyuk,
I have done correction and tried ,but is not working:
<referenceContainer name="footer">
<block class="Sample\Test\Block\Customsubscribe" name="form.subscribe" as="subscribe" before="-" template="subscribe.phtml"/>
</referenceContainer>
I think you need to remove block 'form.subscribe' and then redeclare it.
<referenceBlock name="form.subscribe" remove="true"></referenceBlock>
<referenceContainer name="footer">
<block class="Training\Test\Block\Customsubscribe" name="form.subscribe" as="subscribe" before="-" template="subscribe.phtml"/>
</referenceContainer>
</body>