How to override protected _prepareLayout function in block in Magento 2?Why protected methods can't be...
Making a sword in the stone, in a medieval world without magic
How do anti-virus programs start at Windows boot?
Should we release the security issues we found in our product as CVE or we can just update those on weekly release notes?
Running a subshell from the middle of the current command
Counter-example to the existence of left Bousfield localization of combinatorial model category
US to Europe trip with Montreal layover - is 52 minutes enough?
How to deal with a cynical class?
Is it ok to include an epilogue dedicated to colleagues who passed away in the end of the manuscript?
How could a female member of a species produce eggs unto death?
Make a transparent 448*448 image
What does おとこえしや mean?
Coworker uses her breast-pump everywhere in the office
Latest web browser compatible with Windows 98
What is the blue range indicating on this manifold pressure gauge?
Extension of Splitting Fields over An Arbitrary Field
Draw arrow on sides of triangle
What Happens when Passenger Refuses to Fly Boeing 737 Max?
It's a yearly task, alright
My adviser wants to be the first author
Plywood subfloor won't screw down in a trailer home
My story is written in English, but is set in my home country. What language should I use for the dialogue?
What has been your most complicated TikZ drawing?
What does it mean when multiple 々 marks follow a 、?
How does Dispel Magic work against Stoneskin?
How to override protected _prepareLayout function in block in Magento 2?
Why protected methods can't be intercepted?Override block functionMagento 2 : How to Override Block FileHow to override _registerJsPrice($price) function in Configurable.php Block in Magento2?Invalid template file override Magento 2 blockOverride protected function of block class in Magento 2.1.7how to override adminhtml block for a function?How to override tax Block In magento2How to override part of a function for a blockOverride admin block file issue in magento2GoogleAnalytics Block Override
I wanted to make changes in _prepareLayout() in block.
Code is as follow:
Block: MagentoCatalogBlockCategoryView
protected function _prepareLayout()
{
parent::_prepareLayout();
$this->getLayout()->createBlock(MagentoCatalogBlockBreadcrumbs::class);
$category = $this->getCurrentCategory();
if ($category) {
$title = $category->getMetaTitle();
if ($title) {
$this->pageConfig->getTitle()->set($title);
}
$description = $category->getMetaDescription();
if ($description) {
$this->pageConfig->setDescription($description);
}
$keywords = $category->getMetaKeywords();
if ($keywords) {
$this->pageConfig->setKeywords($keywords);
}
if ($this->_categoryHelper->canUseCanonicalTag()) {
$this->pageConfig->addRemotePageAsset(
$category->getUrl(),
'canonical',
['attributes' => ['rel' => 'canonical']]
);
}
$pageMainTitle = $this->getLayout()->getBlock('page.main.title');
if ($pageMainTitle) {
$pageMainTitle->setPageTitle($this->getCurrentCategory()->getName());
}
}
return $this;
}
As per above code, I want to make change in below data:
if ($this->_categoryHelper->canUseCanonicalTag()) {
$this->pageConfig->addRemotePageAsset(
$category->getUrl(),
'canonical',
['attributes' => ['rel' => 'canonical']]
);
}
Help me to change the parameter passed to addRemotePageAsset() by overriding block.
blocks magento-2.2.5 override-block
add a comment |
I wanted to make changes in _prepareLayout() in block.
Code is as follow:
Block: MagentoCatalogBlockCategoryView
protected function _prepareLayout()
{
parent::_prepareLayout();
$this->getLayout()->createBlock(MagentoCatalogBlockBreadcrumbs::class);
$category = $this->getCurrentCategory();
if ($category) {
$title = $category->getMetaTitle();
if ($title) {
$this->pageConfig->getTitle()->set($title);
}
$description = $category->getMetaDescription();
if ($description) {
$this->pageConfig->setDescription($description);
}
$keywords = $category->getMetaKeywords();
if ($keywords) {
$this->pageConfig->setKeywords($keywords);
}
if ($this->_categoryHelper->canUseCanonicalTag()) {
$this->pageConfig->addRemotePageAsset(
$category->getUrl(),
'canonical',
['attributes' => ['rel' => 'canonical']]
);
}
$pageMainTitle = $this->getLayout()->getBlock('page.main.title');
if ($pageMainTitle) {
$pageMainTitle->setPageTitle($this->getCurrentCategory()->getName());
}
}
return $this;
}
As per above code, I want to make change in below data:
if ($this->_categoryHelper->canUseCanonicalTag()) {
$this->pageConfig->addRemotePageAsset(
$category->getUrl(),
'canonical',
['attributes' => ['rel' => 'canonical']]
);
}
Help me to change the parameter passed to addRemotePageAsset() by overriding block.
blocks magento-2.2.5 override-block
add a comment |
I wanted to make changes in _prepareLayout() in block.
Code is as follow:
Block: MagentoCatalogBlockCategoryView
protected function _prepareLayout()
{
parent::_prepareLayout();
$this->getLayout()->createBlock(MagentoCatalogBlockBreadcrumbs::class);
$category = $this->getCurrentCategory();
if ($category) {
$title = $category->getMetaTitle();
if ($title) {
$this->pageConfig->getTitle()->set($title);
}
$description = $category->getMetaDescription();
if ($description) {
$this->pageConfig->setDescription($description);
}
$keywords = $category->getMetaKeywords();
if ($keywords) {
$this->pageConfig->setKeywords($keywords);
}
if ($this->_categoryHelper->canUseCanonicalTag()) {
$this->pageConfig->addRemotePageAsset(
$category->getUrl(),
'canonical',
['attributes' => ['rel' => 'canonical']]
);
}
$pageMainTitle = $this->getLayout()->getBlock('page.main.title');
if ($pageMainTitle) {
$pageMainTitle->setPageTitle($this->getCurrentCategory()->getName());
}
}
return $this;
}
As per above code, I want to make change in below data:
if ($this->_categoryHelper->canUseCanonicalTag()) {
$this->pageConfig->addRemotePageAsset(
$category->getUrl(),
'canonical',
['attributes' => ['rel' => 'canonical']]
);
}
Help me to change the parameter passed to addRemotePageAsset() by overriding block.
blocks magento-2.2.5 override-block
I wanted to make changes in _prepareLayout() in block.
Code is as follow:
Block: MagentoCatalogBlockCategoryView
protected function _prepareLayout()
{
parent::_prepareLayout();
$this->getLayout()->createBlock(MagentoCatalogBlockBreadcrumbs::class);
$category = $this->getCurrentCategory();
if ($category) {
$title = $category->getMetaTitle();
if ($title) {
$this->pageConfig->getTitle()->set($title);
}
$description = $category->getMetaDescription();
if ($description) {
$this->pageConfig->setDescription($description);
}
$keywords = $category->getMetaKeywords();
if ($keywords) {
$this->pageConfig->setKeywords($keywords);
}
if ($this->_categoryHelper->canUseCanonicalTag()) {
$this->pageConfig->addRemotePageAsset(
$category->getUrl(),
'canonical',
['attributes' => ['rel' => 'canonical']]
);
}
$pageMainTitle = $this->getLayout()->getBlock('page.main.title');
if ($pageMainTitle) {
$pageMainTitle->setPageTitle($this->getCurrentCategory()->getName());
}
}
return $this;
}
As per above code, I want to make change in below data:
if ($this->_categoryHelper->canUseCanonicalTag()) {
$this->pageConfig->addRemotePageAsset(
$category->getUrl(),
'canonical',
['attributes' => ['rel' => 'canonical']]
);
}
Help me to change the parameter passed to addRemotePageAsset() by overriding block.
blocks magento-2.2.5 override-block
blocks magento-2.2.5 override-block
edited 5 mins ago
magefms
1,493224
1,493224
asked 59 mins ago
ParthaviParthavi
879
879
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
you can not override protected methods in Magento 2, only the public method can be overridden using plugin or preference. there is no way to override protected and private method in Magento 2.
So how can i add custom code to _prepareLayout() as i have mentioned in my code?
– Parthavi
45 mins ago
using preference we can rewrite the whole class, I don't know about what you've mentioned. Give me any document where it shows it cannot possible to override a protected function
– Prathap Gunasekaran
45 mins ago
@Parthavi have a look at it magento.stackexchange.com/questions/126260/…
– Prathap Gunasekaran
42 mins ago
@PrathapGunasekaran u mean that we can use preference for overwriting protected method
– Parthavi
39 mins ago
1
@PrathapGunasekaran okay Thanks
– Parthavi
34 mins ago
|
show 1 more comment
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f265799%2fhow-to-override-protected-preparelayout-function-in-block-in-magento-2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
you can not override protected methods in Magento 2, only the public method can be overridden using plugin or preference. there is no way to override protected and private method in Magento 2.
So how can i add custom code to _prepareLayout() as i have mentioned in my code?
– Parthavi
45 mins ago
using preference we can rewrite the whole class, I don't know about what you've mentioned. Give me any document where it shows it cannot possible to override a protected function
– Prathap Gunasekaran
45 mins ago
@Parthavi have a look at it magento.stackexchange.com/questions/126260/…
– Prathap Gunasekaran
42 mins ago
@PrathapGunasekaran u mean that we can use preference for overwriting protected method
– Parthavi
39 mins ago
1
@PrathapGunasekaran okay Thanks
– Parthavi
34 mins ago
|
show 1 more comment
you can not override protected methods in Magento 2, only the public method can be overridden using plugin or preference. there is no way to override protected and private method in Magento 2.
So how can i add custom code to _prepareLayout() as i have mentioned in my code?
– Parthavi
45 mins ago
using preference we can rewrite the whole class, I don't know about what you've mentioned. Give me any document where it shows it cannot possible to override a protected function
– Prathap Gunasekaran
45 mins ago
@Parthavi have a look at it magento.stackexchange.com/questions/126260/…
– Prathap Gunasekaran
42 mins ago
@PrathapGunasekaran u mean that we can use preference for overwriting protected method
– Parthavi
39 mins ago
1
@PrathapGunasekaran okay Thanks
– Parthavi
34 mins ago
|
show 1 more comment
you can not override protected methods in Magento 2, only the public method can be overridden using plugin or preference. there is no way to override protected and private method in Magento 2.
you can not override protected methods in Magento 2, only the public method can be overridden using plugin or preference. there is no way to override protected and private method in Magento 2.
answered 49 mins ago
Anand OntigeriAnand Ontigeri
5991821
5991821
So how can i add custom code to _prepareLayout() as i have mentioned in my code?
– Parthavi
45 mins ago
using preference we can rewrite the whole class, I don't know about what you've mentioned. Give me any document where it shows it cannot possible to override a protected function
– Prathap Gunasekaran
45 mins ago
@Parthavi have a look at it magento.stackexchange.com/questions/126260/…
– Prathap Gunasekaran
42 mins ago
@PrathapGunasekaran u mean that we can use preference for overwriting protected method
– Parthavi
39 mins ago
1
@PrathapGunasekaran okay Thanks
– Parthavi
34 mins ago
|
show 1 more comment
So how can i add custom code to _prepareLayout() as i have mentioned in my code?
– Parthavi
45 mins ago
using preference we can rewrite the whole class, I don't know about what you've mentioned. Give me any document where it shows it cannot possible to override a protected function
– Prathap Gunasekaran
45 mins ago
@Parthavi have a look at it magento.stackexchange.com/questions/126260/…
– Prathap Gunasekaran
42 mins ago
@PrathapGunasekaran u mean that we can use preference for overwriting protected method
– Parthavi
39 mins ago
1
@PrathapGunasekaran okay Thanks
– Parthavi
34 mins ago
So how can i add custom code to _prepareLayout() as i have mentioned in my code?
– Parthavi
45 mins ago
So how can i add custom code to _prepareLayout() as i have mentioned in my code?
– Parthavi
45 mins ago
using preference we can rewrite the whole class, I don't know about what you've mentioned. Give me any document where it shows it cannot possible to override a protected function
– Prathap Gunasekaran
45 mins ago
using preference we can rewrite the whole class, I don't know about what you've mentioned. Give me any document where it shows it cannot possible to override a protected function
– Prathap Gunasekaran
45 mins ago
@Parthavi have a look at it magento.stackexchange.com/questions/126260/…
– Prathap Gunasekaran
42 mins ago
@Parthavi have a look at it magento.stackexchange.com/questions/126260/…
– Prathap Gunasekaran
42 mins ago
@PrathapGunasekaran u mean that we can use preference for overwriting protected method
– Parthavi
39 mins ago
@PrathapGunasekaran u mean that we can use preference for overwriting protected method
– Parthavi
39 mins ago
1
1
@PrathapGunasekaran okay Thanks
– Parthavi
34 mins ago
@PrathapGunasekaran okay Thanks
– Parthavi
34 mins ago
|
show 1 more comment
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f265799%2fhow-to-override-protected-preparelayout-function-in-block-in-magento-2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown