public function display($tpl = null)
{
$eventName = 'onBefore' . ucfirst($this->doTask);
$this->triggerEvent($eventName, array($tpl));
$preRenderResult = '';
if ($this->doPreRender) {
@ob_start();
$this->preRender();
$preRenderResult = @ob_get_contents();
@ob_end_clean();
}
$templateResult = $this->loadTemplate($tpl);
$eventName = 'onAfter' . ucfirst($this->doTask);
$this->triggerEvent($eventName, array($tpl));
if (is_object($templateResult) && $templateResult instanceof \Exception) {
throw $templateResult;
}
echo $preRenderResult . $templateResult;
if ($this->doPostRender) {
$this->postRender();
}
return true;
}