Hãy nói rằng bạn đang ở phtml file template khối rễ, và bạn có một cấu trúc khối đơn giản mà trông như thế này
root
left
promo_top
navigation
promo_bottom
center
right
Từ mẫu tập tin khối rễ, để in các khối còn lại bạn muốn sử dụng getChildHtml
.
echo $this->getChildHtml('left');
Tuy nhiên, nếu vì một lý do bạn muốn in khối promo_top trong mẫu gốc, bạn sẽ phải làm một cái gì đó giống như
$left = $this->getChildBlock('left')
echo $left->getChildHtml('promo_top')
Phương pháp getChildChildHtml
này cho phép bạn làm loại điều này trong một cuộc gọi phương thức đơn giản. Một lần nữa, từ mẫu gốc
echo $this->getChildChildHtml('left','promo_top');
Vì vậy, ngữ nghĩa là
- Nhận Khối Child của tôi với tên X
- Sau đó, có được nó khối đứa trẻ với Y
- Render HTML
Nếu bạn nhìn vào mã nguồn bạn có thể thấy, u ltimately, phương pháp này chỉ kết thúc cuộc gọi đến getChildHtml
#File: app/code/core/Mage/Core/Block/Abstract.php
public function getChildChildHtml($name, $childName = '', $useCache = true, $sorted = false)
{
if (empty($name)) {
return '';
}
$child = $this->getChild($name);
if (!$child) {
return '';
}
return $child->getChildHtml($childName, $useCache, $sorted);
}
Nguồn
2012-01-18 20:00:24
rất hữu ích cho tôi, cảm ơn Alan – davidselo
Giải thích tuyệt vời. Cảm ơn Alan. – RIK