protected function compileDialog() { $dialog = $this->getDialog(); foreach ($dialog as $sectionId => $section) { if (!is_array($section)) { $sect = preg_split("/[_\\.:]/", $section); switch ($sect[0]) { case self::MIXIN: $newDialog = new Dialog($sect[1]); $mixin = $newDialog->getDialog(); $dialog = array_merge($dialog, $mixin); break; case self::PLUGIN: break; } } } return $dialog; }