/** * @param string|array $match * @param BaseEntity $entity * @param Control $controlContainer * @param $vars * @param $useControl * @return mixed */ private function getReplacement($match, $entity, $controlContainer, $vars, $useControl) { if ($match === 'controls') { // Unter-Controls ausgeben return $controlContainer->renderChildren(); } elseif (is_array($match)) { if (array_key_exists($match[0], $vars)) { // Zusammengesetzter Wert $variable = $match[0]; $property = $match[1]; return $vars[$variable]->{$property}; } elseif (Configuration::get($match[0] . '.' . $match[1]) !== null) { // Konfigurations-Wert return Configuration::get($match[0] . '.' . $match[1]); } } elseif (array_key_exists($match, $vars)) { // Ein Wert im Variablen-Array return $this->getWertFromVars($match, $vars); } elseif ($entity !== null && $match === $entity->primaryKey) { // Primärschlüssel des Entity return $entity->id; } elseif ($controlContainer !== null && $controlContainer->get($match) !== null) { // Control ausgeben [nur HTML] return $controlContainer->get($match)->toHtml(); } elseif ($entity !== null && $entity->hasField($match)) { // String-Repräsentation eines Felds [oder das Control] return $this->getWertFromEntity($match, $entity, $useControl); } elseif ($entity !== null && $entity->getParserText($match) !== '') { // Text aus dem Entity return $entity->getParserText($match); } return ''; }