getChildBlock($type) ?: $this->getChildBlock($default); if (!$renderer instanceof BlockInterface) { throw new \RuntimeException('Renderer for type "' . $type . '" does not exist.'); } $renderer->setRenderedBlock($this); if (!isset($this->rendererTemplates[$type])) { $this->rendererTemplates[$type] = $renderer->getTemplate(); } else { $renderer->setTemplate($this->rendererTemplates[$type]); } if ($rendererTemplate) { $renderer->setTemplate($rendererTemplate); } return $renderer; } }