1

私は次のものを持っています:

local.xml

<?xml version="1.0" encoding="UTF-8"?>
<layout>

    <default>

        <reference name="root">
            <block type="core/text_list" name="foo" as="foo" translate="label">
                <label>Foo</label>
            </block>
        </reference>

        <reference name="foo">
            <block type="core/template" name="fooblock" template="foo.phtml" />
        </reference>

        <reference name="bar">
            <block type="core/template" name="barblock" template="bar.phtml" />
        </reference>

        <reference name="foo">
            <action method="insert">
                <name>barblock</name>
            </action>
        </reference>

    </default>

</layout>

foo.phtml

<div>
<h1 style="background-color:yellow">Hello New Reference!</h1>
<div><?php echo $this->getChildHtml() ?></div>
</div>

bar.phtml

<h1 style="background-color:yellow">Hello New Reference child!</h1>

1column.phtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->getLang() ?>" lang="<?php echo $this->getLang() ?>">
<head>
<?php echo $this->getChildHtml('head') ?>
</head>
<body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
<?php echo $this->getChildHtml('after_body_start') ?>
<div class="wrapper">
    <?php echo $this->getChildHtml('global_notices') ?>
    <div class="page">
        <?php echo $this->getChildHtml('header') ?>
        <?php echo $this->getChildHtml('global_messages') ?>
        <?php echo $this->getChildHtml('breadcrumbsContainer') ?>
        <div class="main col1-layout">
            <div class="col-main">
                <h1>Custom package, Primary theme</h1>
                <?php echo $this->getChildHtml('content') ?>
            </div>
        </div>
        <?php echo $this->getChildHtml('footer_before') ?>
        <?php echo $this->getChildHtml('footer') ?>
        <?php echo $this->getChildHtml('before_body_end') ?>
    </div>
</div>
<?php echo $this->getChildHtml('foo') ?>
<?php echo $this->getAbsoluteFooter() ?>
</body>
</html>

これは次のように表示されます (スクリーンショットの下部を見てください)。

http://i.stack.imgur.com/BC9bf.png

スクリーンショットにリストされている「子ブロック」を実際に最初の子ブロックにするにはどうすればよいですか?

4

1 に答える 1

1

使用<reference name="bar">していますが、レイアウトに「バー」という名前のブロックはありません。「fooblock」内に「barblock」を定義します。

<?xml version="1.0" encoding="UTF-8"?>
<layout>

    <default>

        <reference name="root">
            <block type="core/text_list" name="foo" as="foo" translate="label">
                <label>Foo</label>
            </block>
        </reference>

        <reference name="foo">
            <block type="core/template" name="fooblock" template="foo.phtml" />
        </reference>

        <reference name="fooblock">
            <block type="core/template" name="barblock" template="bar.phtml" />
        </reference>

    </default>

</layout>
于 2013-03-05T22:34:28.473 に答える