Когда использовать «имя», а когда использовать 'как'
Вопрос
Я обнаружил, что при попытке использовать unsetChild
Метод, иногда мне приходится использовать атрибут «Имя» и других как ». Кажется, что если блок добавляется нормально, вы используете «как», но если он добавлен в блок, используя append
Метод, вам, возможно, придется использовать «имя». Это предположение правильно?
Что стоит за этим, и есть ли стандартный способ понять, какой атрибут вы должны использовать?
Решение
Блок всегда можно ссылаться name
. Анкет Псевдоним (as
) используется для упрощения длинного имени блока, и единственное, что отличается от области. Name
должен быть уникальным в рамках страницы и alias
в родительском блоке.
Другие советы
Когда вы используете в качестве, вы можете позвонить $ this-> getChildhtml ("as_value") на шаблоне PHTML.
А имя должен быть уникальным и может быть использован для <Ссылка> блоки, <Удалить>, так далее.
Например (catalog.xml):
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
<block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
</block>
Если вы откроете каталог/продукт/view.phtml, вы увидите:
<div class="product-img-box">
<?php echo $this->getChildHtml('media') ?>
</div>
Понимаете? как = "Media", а затем $ this-> getChildhtml ('Media') ...
Никто не ответил на конкретный вопрос о unsetChild
пока что. Методы, связанные с дети блока всегда Обратитесь к детским блокам под псевдонимом, который известен только родителям и в отличие от названия, не уникально.
Но если блок был создан без определения псевдонима, псевдоним по умолчанию по имени.
Короче говоря, если у ребенка есть явный псевдоним, вы должны использовать псевдоним. Если нет, используйте имя.
Псевдонимы даны as="..."
Если блок был создан в виде детского блока через XML или по параметру действия, если они были перемещены или динамически добавлены с помощью таких методов, как append()
, insert()
или же setChild()
.