public function getNode($key, $default = null, $getCopy = false) { $val = $this->get($key); if ($val === self::VALUE_UNSET) { if ($default === null) { return new \stdClass(); } else { $val = $default; } } if ($getCopy) { return Tools::deepCloneObject($val); } return $val; }
private function processConfigurationTemplates($node) { if (!isset($node->templates)) { return $node; } $nodeCopy = Tools::deepCloneObject($node); $templates = Tools::singleOrMultipleValuesToArray($node->templates); foreach ($templates as $template) { $templateData = null; if (preg_match('!\\.yml$!', $template)) { $templateData = Configuration::createFromFile($this->getPath($template))->configuration; } else { $subConfig = $this->configuration->getSubConfiguration('templates'); if ($subConfig->has($template)) { $templateData = $subConfig->getNode($template); } else { $templateFile = $this->getApplicationPath('templates/' . $template . '.yml'); $templateData = Configuration::createFromFile($templateFile)->configuration; } } if ($templateData) { $this->processConfigurationTemplates($templateData); Tools::extendObject($node, $templateData); } } Tools::extendObject($node, $nodeCopy); return $node; }