Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml Magento:通过类别自定义布局更新以自定义块为目标_Xml_Magento - Fatal编程技术网

Xml Magento:通过类别自定义布局更新以自定义块为目标

Xml Magento:通过类别自定义布局更新以自定义块为目标,xml,magento,Xml,Magento,在local.xml中,我添加了一个名为“category_header”的块,它按预期显示 <catalog_category_layered> ... <reference name="root"> <block type="catalog/category_view" name="category.header" as="category_header" template="catalog/category/view_heade

在local.xml中,我添加了一个名为“category_header”的块,它按预期显示

<catalog_category_layered>
    ...
    <reference name="root">
        <block type="catalog/category_view" name="category.header" as="category_header" template="catalog/category/view_header.phtml" />
    </reference>
    ...
</catalog_category_layered>

...
...
在“特定类别/自定义设计/自定义布局更新”下的“管理”中,我尝试使用以下内容将块添加到“类别标题”块中(新闻稿块只是一个示例):


那不行。如果我将引用更改为“content”(reference name=“content”),它将正常工作并显示在内容块中


所以我的问题是:我需要做什么才能以category_头块为目标?

您正在将块添加到根:

<reference name="root"> 
    <!-- ... -->
</reference>

你确定要这样做吗,这是最高级别的

如果有意将块添加到根,则还必须在基本模板文件中输出块

例如,如果您使用的是1列布局,则需要修改页面模板以输出块:

模板/page/1column.phtml

<?php echo $this->getChildHtml('category_header') ?>

当使用内容作为包含时,它起作用的原因是内容容器的所有子容器都会自动输出,但根容器的子容器不会输出,因此需要手动将其添加到模板中

如果您使用任何其他页面布局(2col left等),您还需要将输出添加到每个视图文件中

您还需要输出类别\标题视图/块内的任何块:

<?php echo $this->getChildHtml('newsletter_header') // rename.. ?>

确保catalog/category/view\u header.phtml包含


始终可以找到具有以下内容的子块:

<?php Zend_Debug::dump(array_keys($this->getChild())) ?>

我将“category_header”添加到根目录的原因是我使用的是2col左页面布局,但我希望在左/主列上方显示1列“header”。这很好,我遇到的问题是试图将块添加到“category_header”块中。谢谢,很抱歉我的回复太晚了,benmarks。实际上,我已经在view_header.phtml模板中回显了getChildHtml(“新闻稿”)。不幸的是,它没有起作用。我最终在根模板中调用了新闻稿。这不是一个很好的解决方案,但它必须持续几天,直到我回到那个部分。
<?php echo $this->getChildHtml('newsletter') ?>
<?php Zend_Debug::dump(array_keys($this->getChild())) ?>