'Name' ne zaman ve 'as' ne zaman kullanılır


26

unsetChildYöntemi kullanmaya çalışırken , bazen 'name' niteliğini ve diğerleri 'olarak' kullanmam gerektiğini öğrendim. Bir blok normal olarak eklenirse, 'as' kullanırsınız, ancak appendyöntemi kullanarak bir bloğa eklerseniz, 'isim' kullanmak zorunda kalabilirsiniz. Bu varsayım doğru mu?

Bunun arkasındaki sebep nedir ve hangi özelliği kullanmanız gerektiğini anlamanın standart bir yolu var mı?

Yanıtlar:


15

Blok her zaman tarafından başvuruda bulunabilir name. Alias ​​( as), bir bloğun uzun adını basitleştirmek için kullanılır ve yalnızca kapsamı ile değişir. NameSayfa aliasiçinde ve bir üst blokta benzersiz olmalıdır .


5
Korkarım bunların hiçbiri doğru değil. Şablonda, bir diğer adı ayarlanmışsa bir bloğa adına göre başvuru yapamazsınız. Takma adı yalnızca kullanabilirsiniz. Takma adın benzersizliği için, bunun tam tersi doğrudur - takma ad, şablon değiştirilmeden farklı bir bloğun oluşturulmasını mümkün kılmak için tanıtılmıştır.
Jan Tomka

5
@JanTomka takma adları kullanmıştır. O açıklamada ise dikkat çekti edilmelidir "bir takma ad kümesi vardır eğer onun adıyla bir blok referans yapamaz" genellikle doğrudur, adlı bir yöntem yoktur getBlockHtml()bazen adıyla blokları işlemek için kullanılır.
benmarks

6

Eğer kullandığınız zaman olduğu gibi , Arayabileceğin $ this-> getChildHtml ( "AS_VALUE") phtml şablonu.

Adı benzersiz olmalıdır ve kullanılabilir <referans> bloklar, <remove> vb

Örneğin (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>

Katalog / ürün / view.phtml açarsanız şunu göreceksiniz:

<div class="product-img-box">
    <?php echo $this->getChildHtml('media') ?>
</div>

Anlıyorsun? as = "media" ve ardından $ this-> getChildHtml ('media') ...


5

unsetChildHenüz kimseyle ilgili özel bir soruya cevap vermedim. Bir bloğun çocuklarıyla ilgili yöntemler , her zaman diğer ana tarafından bilinen ve adından farklı olarak, genel olarak benzersiz olmayan, takma adlarla alt bloklara karşılık gelir.

Ancak, blok bir diğer ad tanımlanmadan oluşturulduysa, diğer ad varsayılan olarak adı alır.

Kısacası, eğer alt bloğun açık bir takma adı varsa, takma adı kullanmanız gerekir. Değilse, adı kullanın.

Takma adlar tarafından verilmektedir as="..."onlar etrafında hareket veya dinamik gibi yöntemlerle eklenmiş olsaydı, veya eylem parametresi tarafından blok XML üzerinden çocuk bloğu olarak oluşturulmuşsa append(), insert()ya setChild().

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.