/** * buildMarkup * * @param $properties * @param $templateConfig * @param $containerTag * @param $containerAttributes * * @return void */ protected function buildMarkup($properties, $templateConfig, $containerTag, $containerAttributes) { $templateConfigOptions = new BasicOptions($templateConfig); $markup = ''; foreach ($properties as $property => $content) { if (!$templateConfigOptions->has($property)) { continue; } $templateOptions = $templateConfigOptions->getOptions($property); $subTemplateConfig = $templateOptions->get('properties', []); if (!empty($subProperties)) { $markup = $markup . $this->buildMarkup($subProperties, $subTemplateConfig->get($property)); } $markup = $this->buildTag($content, $templateOptions->get, $attr = []); } return $this->buildTag($markup, $containerTag, $containerAttributes); }