setText(''); $childNames = $this->getChildNames(); usort($childNames, [$this, 'sortChilds']); $layout = $this->getLayout(); foreach ($childNames as $child) { $this->addText($layout->renderElement($child, false)); } return parent::_toHtml(); } /** * Sort by sort order param * @param string $a * @param string $b * @return boolean */ public function sortChilds($a, $b) { $layout = $this->getLayout(); $blockA = $layout->getBlock($a); $blockB = $layout->getBlock($b); if ($blockA && $blockB) { $r = $blockA->getSortOrder() > $blockB->getSortOrder() ? 1 : - 1; return $r; } } }