Magento 2.3 - Extend layout to add new custom block after existing block from another module
What I hope to accomplish is adding a new option to an existing menu of options in category edit page, specifically adding a new option below the "Match products by rule" switch toggle.
This menu is currently defined in the Magento module visual-merchandiser
using the following XML files:
module-visual-merchandiserviewadminhtmllayoutcatalog_category_edit.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="merchandiser"/>
<body>
<referenceContainer name="content">
<block class="MagentoFrameworkViewElementTemplate" name="catalog.category.add.product.content" template="Magento_VisualMerchandiser::category/add_product.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryAddProductTabs" name="catalog.category.add.product.tabs" as="catalog_category_add_product_tabs" template="Magento_Backend::widget/tabshoriz.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_add_product</argument>
<argument name="dest_element_id" xsi:type="string">catalog_category_add_product_tabs_content</argument>
</arguments>
<block class="MagentoFrameworkViewElementTemplate" name="catalog.category.add.product.tabs.nametab" template="Magento_VisualMerchandiser::category/add_product/tabs/nametab.phtml" />
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryAddProductTabsSkuTab" name="catalog.category.add.product.tabs.skutab" template="Magento_VisualMerchandiser::category/add_product/tabs/skutab.phtml" />
</block>
</block>
</referenceContainer>
</body>
</page>
and
module-visual-merchandiserviewadminhtmllayoutmerchandiser.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiser" name="category.merchandiser.container" template="Magento_VisualMerchandiser::category/merchandiser.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiserGrid" name="category.merchandiser.grid" as="grid"/>
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiserTile" name="category.merchandiser.tile" as="tile"/>
<block class="MagentoBackendBlockWidgetButton" name="category.merchandiser.add_product_button" as="add_products_button">
<arguments>
<argument name="id" xsi:type="string">catalog_category_add_product_tabs</argument>
<argument name="label" translate="true" xsi:type="string">Add Products</argument>
<argument name="class" xsi:type="string">secondary add-products</argument>
</arguments>
</block>
<block class="MagentoBackendBlockWidgetButton" name="category.merchandiser.sort_products_button" as="sort_products_button">
<arguments>
<argument name="id" xsi:type="string">catalog_category_sort_products_tabs</argument>
<argument name="label" translate="true" xsi:type="string">Sort</argument>
<argument name="class" xsi:type="string">secondary sort-products</argument>
</arguments>
</block>
<block class="MagentoFrameworkViewElementTemplate" name="category.merchandiser.smart_category" as="smart_category" template="Magento_VisualMerchandiser::category/smart_category.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlWidgetSmartCategorySwitch" name="category.merchandiser.smart_category.smart_category_onoff" as="smart_category_onoff" template="Magento_VisualMerchandiser::widget/smart_category_switch.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_smart_category_onoff</argument>
</arguments>
</block>
<!-- TRUNCATED FOR SPACE -->
</block>
<block class="MagentoVisualMerchandiserBlockAdminhtmlWidgetSelectSortOrderSelect" name="category.merchandiser.sort_order" as="sort_order">
<arguments>
<argument name="label" translate="true" xsi:type="string">Sort order</argument>
<argument name="class" xsi:type="string">sort_order</argument>
<argument name="name" xsi:type="string">sort_order</argument>
</arguments>
</block>
</block>
</body>
</page>
Here is my attempt at extending the layout:
appCodeVENDORMODULEviewadminhtmllayoutmerchandiser.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="category.merchandiser.smart_category">
<block class="VENDORMODULEBlockAdminhtmlWidgetTestSwitch" name="category.merchandiser.smart_category.test_onoff" as="test_onoff" template="VENDOR_MODULE::widget/test_switch.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_test_switch_onoff</argument>
</arguments>
</block>
</referenceBlock>
</body>
</page>
Note: There is no error with the .phtml
or .php
files, if I replace <referenceBlock>
with a <referenceContainer>
(for "content
") the switch appears (albeit at the foot of the page) and does function as anticipated.
I seems to me that the only thing I can do is override the entire layout which I specifically do not want to do.
I have also attempted to use a <move>
directive with adding the element to a <referenceContainer>
, this does not work.
Dependency is set up correctly to load my module after visual-merchandiser
.
magento2 module layout magento2.3 custom-block
add a comment |
What I hope to accomplish is adding a new option to an existing menu of options in category edit page, specifically adding a new option below the "Match products by rule" switch toggle.
This menu is currently defined in the Magento module visual-merchandiser
using the following XML files:
module-visual-merchandiserviewadminhtmllayoutcatalog_category_edit.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="merchandiser"/>
<body>
<referenceContainer name="content">
<block class="MagentoFrameworkViewElementTemplate" name="catalog.category.add.product.content" template="Magento_VisualMerchandiser::category/add_product.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryAddProductTabs" name="catalog.category.add.product.tabs" as="catalog_category_add_product_tabs" template="Magento_Backend::widget/tabshoriz.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_add_product</argument>
<argument name="dest_element_id" xsi:type="string">catalog_category_add_product_tabs_content</argument>
</arguments>
<block class="MagentoFrameworkViewElementTemplate" name="catalog.category.add.product.tabs.nametab" template="Magento_VisualMerchandiser::category/add_product/tabs/nametab.phtml" />
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryAddProductTabsSkuTab" name="catalog.category.add.product.tabs.skutab" template="Magento_VisualMerchandiser::category/add_product/tabs/skutab.phtml" />
</block>
</block>
</referenceContainer>
</body>
</page>
and
module-visual-merchandiserviewadminhtmllayoutmerchandiser.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiser" name="category.merchandiser.container" template="Magento_VisualMerchandiser::category/merchandiser.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiserGrid" name="category.merchandiser.grid" as="grid"/>
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiserTile" name="category.merchandiser.tile" as="tile"/>
<block class="MagentoBackendBlockWidgetButton" name="category.merchandiser.add_product_button" as="add_products_button">
<arguments>
<argument name="id" xsi:type="string">catalog_category_add_product_tabs</argument>
<argument name="label" translate="true" xsi:type="string">Add Products</argument>
<argument name="class" xsi:type="string">secondary add-products</argument>
</arguments>
</block>
<block class="MagentoBackendBlockWidgetButton" name="category.merchandiser.sort_products_button" as="sort_products_button">
<arguments>
<argument name="id" xsi:type="string">catalog_category_sort_products_tabs</argument>
<argument name="label" translate="true" xsi:type="string">Sort</argument>
<argument name="class" xsi:type="string">secondary sort-products</argument>
</arguments>
</block>
<block class="MagentoFrameworkViewElementTemplate" name="category.merchandiser.smart_category" as="smart_category" template="Magento_VisualMerchandiser::category/smart_category.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlWidgetSmartCategorySwitch" name="category.merchandiser.smart_category.smart_category_onoff" as="smart_category_onoff" template="Magento_VisualMerchandiser::widget/smart_category_switch.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_smart_category_onoff</argument>
</arguments>
</block>
<!-- TRUNCATED FOR SPACE -->
</block>
<block class="MagentoVisualMerchandiserBlockAdminhtmlWidgetSelectSortOrderSelect" name="category.merchandiser.sort_order" as="sort_order">
<arguments>
<argument name="label" translate="true" xsi:type="string">Sort order</argument>
<argument name="class" xsi:type="string">sort_order</argument>
<argument name="name" xsi:type="string">sort_order</argument>
</arguments>
</block>
</block>
</body>
</page>
Here is my attempt at extending the layout:
appCodeVENDORMODULEviewadminhtmllayoutmerchandiser.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="category.merchandiser.smart_category">
<block class="VENDORMODULEBlockAdminhtmlWidgetTestSwitch" name="category.merchandiser.smart_category.test_onoff" as="test_onoff" template="VENDOR_MODULE::widget/test_switch.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_test_switch_onoff</argument>
</arguments>
</block>
</referenceBlock>
</body>
</page>
Note: There is no error with the .phtml
or .php
files, if I replace <referenceBlock>
with a <referenceContainer>
(for "content
") the switch appears (albeit at the foot of the page) and does function as anticipated.
I seems to me that the only thing I can do is override the entire layout which I specifically do not want to do.
I have also attempted to use a <move>
directive with adding the element to a <referenceContainer>
, this does not work.
Dependency is set up correctly to load my module after visual-merchandiser
.
magento2 module layout magento2.3 custom-block
add a comment |
What I hope to accomplish is adding a new option to an existing menu of options in category edit page, specifically adding a new option below the "Match products by rule" switch toggle.
This menu is currently defined in the Magento module visual-merchandiser
using the following XML files:
module-visual-merchandiserviewadminhtmllayoutcatalog_category_edit.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="merchandiser"/>
<body>
<referenceContainer name="content">
<block class="MagentoFrameworkViewElementTemplate" name="catalog.category.add.product.content" template="Magento_VisualMerchandiser::category/add_product.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryAddProductTabs" name="catalog.category.add.product.tabs" as="catalog_category_add_product_tabs" template="Magento_Backend::widget/tabshoriz.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_add_product</argument>
<argument name="dest_element_id" xsi:type="string">catalog_category_add_product_tabs_content</argument>
</arguments>
<block class="MagentoFrameworkViewElementTemplate" name="catalog.category.add.product.tabs.nametab" template="Magento_VisualMerchandiser::category/add_product/tabs/nametab.phtml" />
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryAddProductTabsSkuTab" name="catalog.category.add.product.tabs.skutab" template="Magento_VisualMerchandiser::category/add_product/tabs/skutab.phtml" />
</block>
</block>
</referenceContainer>
</body>
</page>
and
module-visual-merchandiserviewadminhtmllayoutmerchandiser.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiser" name="category.merchandiser.container" template="Magento_VisualMerchandiser::category/merchandiser.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiserGrid" name="category.merchandiser.grid" as="grid"/>
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiserTile" name="category.merchandiser.tile" as="tile"/>
<block class="MagentoBackendBlockWidgetButton" name="category.merchandiser.add_product_button" as="add_products_button">
<arguments>
<argument name="id" xsi:type="string">catalog_category_add_product_tabs</argument>
<argument name="label" translate="true" xsi:type="string">Add Products</argument>
<argument name="class" xsi:type="string">secondary add-products</argument>
</arguments>
</block>
<block class="MagentoBackendBlockWidgetButton" name="category.merchandiser.sort_products_button" as="sort_products_button">
<arguments>
<argument name="id" xsi:type="string">catalog_category_sort_products_tabs</argument>
<argument name="label" translate="true" xsi:type="string">Sort</argument>
<argument name="class" xsi:type="string">secondary sort-products</argument>
</arguments>
</block>
<block class="MagentoFrameworkViewElementTemplate" name="category.merchandiser.smart_category" as="smart_category" template="Magento_VisualMerchandiser::category/smart_category.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlWidgetSmartCategorySwitch" name="category.merchandiser.smart_category.smart_category_onoff" as="smart_category_onoff" template="Magento_VisualMerchandiser::widget/smart_category_switch.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_smart_category_onoff</argument>
</arguments>
</block>
<!-- TRUNCATED FOR SPACE -->
</block>
<block class="MagentoVisualMerchandiserBlockAdminhtmlWidgetSelectSortOrderSelect" name="category.merchandiser.sort_order" as="sort_order">
<arguments>
<argument name="label" translate="true" xsi:type="string">Sort order</argument>
<argument name="class" xsi:type="string">sort_order</argument>
<argument name="name" xsi:type="string">sort_order</argument>
</arguments>
</block>
</block>
</body>
</page>
Here is my attempt at extending the layout:
appCodeVENDORMODULEviewadminhtmllayoutmerchandiser.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="category.merchandiser.smart_category">
<block class="VENDORMODULEBlockAdminhtmlWidgetTestSwitch" name="category.merchandiser.smart_category.test_onoff" as="test_onoff" template="VENDOR_MODULE::widget/test_switch.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_test_switch_onoff</argument>
</arguments>
</block>
</referenceBlock>
</body>
</page>
Note: There is no error with the .phtml
or .php
files, if I replace <referenceBlock>
with a <referenceContainer>
(for "content
") the switch appears (albeit at the foot of the page) and does function as anticipated.
I seems to me that the only thing I can do is override the entire layout which I specifically do not want to do.
I have also attempted to use a <move>
directive with adding the element to a <referenceContainer>
, this does not work.
Dependency is set up correctly to load my module after visual-merchandiser
.
magento2 module layout magento2.3 custom-block
What I hope to accomplish is adding a new option to an existing menu of options in category edit page, specifically adding a new option below the "Match products by rule" switch toggle.
This menu is currently defined in the Magento module visual-merchandiser
using the following XML files:
module-visual-merchandiserviewadminhtmllayoutcatalog_category_edit.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="merchandiser"/>
<body>
<referenceContainer name="content">
<block class="MagentoFrameworkViewElementTemplate" name="catalog.category.add.product.content" template="Magento_VisualMerchandiser::category/add_product.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryAddProductTabs" name="catalog.category.add.product.tabs" as="catalog_category_add_product_tabs" template="Magento_Backend::widget/tabshoriz.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_add_product</argument>
<argument name="dest_element_id" xsi:type="string">catalog_category_add_product_tabs_content</argument>
</arguments>
<block class="MagentoFrameworkViewElementTemplate" name="catalog.category.add.product.tabs.nametab" template="Magento_VisualMerchandiser::category/add_product/tabs/nametab.phtml" />
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryAddProductTabsSkuTab" name="catalog.category.add.product.tabs.skutab" template="Magento_VisualMerchandiser::category/add_product/tabs/skutab.phtml" />
</block>
</block>
</referenceContainer>
</body>
</page>
and
module-visual-merchandiserviewadminhtmllayoutmerchandiser.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiser" name="category.merchandiser.container" template="Magento_VisualMerchandiser::category/merchandiser.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiserGrid" name="category.merchandiser.grid" as="grid"/>
<block class="MagentoVisualMerchandiserBlockAdminhtmlCategoryMerchandiserTile" name="category.merchandiser.tile" as="tile"/>
<block class="MagentoBackendBlockWidgetButton" name="category.merchandiser.add_product_button" as="add_products_button">
<arguments>
<argument name="id" xsi:type="string">catalog_category_add_product_tabs</argument>
<argument name="label" translate="true" xsi:type="string">Add Products</argument>
<argument name="class" xsi:type="string">secondary add-products</argument>
</arguments>
</block>
<block class="MagentoBackendBlockWidgetButton" name="category.merchandiser.sort_products_button" as="sort_products_button">
<arguments>
<argument name="id" xsi:type="string">catalog_category_sort_products_tabs</argument>
<argument name="label" translate="true" xsi:type="string">Sort</argument>
<argument name="class" xsi:type="string">secondary sort-products</argument>
</arguments>
</block>
<block class="MagentoFrameworkViewElementTemplate" name="category.merchandiser.smart_category" as="smart_category" template="Magento_VisualMerchandiser::category/smart_category.phtml">
<block class="MagentoVisualMerchandiserBlockAdminhtmlWidgetSmartCategorySwitch" name="category.merchandiser.smart_category.smart_category_onoff" as="smart_category_onoff" template="Magento_VisualMerchandiser::widget/smart_category_switch.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_smart_category_onoff</argument>
</arguments>
</block>
<!-- TRUNCATED FOR SPACE -->
</block>
<block class="MagentoVisualMerchandiserBlockAdminhtmlWidgetSelectSortOrderSelect" name="category.merchandiser.sort_order" as="sort_order">
<arguments>
<argument name="label" translate="true" xsi:type="string">Sort order</argument>
<argument name="class" xsi:type="string">sort_order</argument>
<argument name="name" xsi:type="string">sort_order</argument>
</arguments>
</block>
</block>
</body>
</page>
Here is my attempt at extending the layout:
appCodeVENDORMODULEviewadminhtmllayoutmerchandiser.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="category.merchandiser.smart_category">
<block class="VENDORMODULEBlockAdminhtmlWidgetTestSwitch" name="category.merchandiser.smart_category.test_onoff" as="test_onoff" template="VENDOR_MODULE::widget/test_switch.phtml">
<arguments>
<argument name="id" xsi:type="string">catalog_category_test_switch_onoff</argument>
</arguments>
</block>
</referenceBlock>
</body>
</page>
Note: There is no error with the .phtml
or .php
files, if I replace <referenceBlock>
with a <referenceContainer>
(for "content
") the switch appears (albeit at the foot of the page) and does function as anticipated.
I seems to me that the only thing I can do is override the entire layout which I specifically do not want to do.
I have also attempted to use a <move>
directive with adding the element to a <referenceContainer>
, this does not work.
Dependency is set up correctly to load my module after visual-merchandiser
.
magento2 module layout magento2.3 custom-block
magento2 module layout magento2.3 custom-block
asked 7 mins ago
GMJGMJ
13
13
add a comment |
add a comment |
0
active
oldest
votes
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%2f259895%2fmagento-2-3-extend-layout-to-add-new-custom-block-after-existing-block-from-an%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f259895%2fmagento-2-3-extend-layout-to-add-new-custom-block-after-existing-block-from-an%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