/** * @param $inheritance * @return array|LessDefinition[] */ private function collectInheritanceLess($inheritance) { $definitions = []; //use array_reverse to compile the bare themes first. foreach (array_reverse($inheritance) as $shopTemplate) { $definition = new LessDefinition(); $definition->setImportDirectory($this->pathResolver->getPublicDirectory($shopTemplate)); $definition->setFiles([$this->pathResolver->getThemeLessFile($shopTemplate)]); $definitions[] = $definition; } return $definitions; }
/** * Helper function which collects the defined theme javascript * files for the passed shop template. * This function uses a recursive call to collect * all files of the template inheritance. * * @param Shop\Template $template * @return array */ private function getJavascriptFilesRecursive(Shop\Template $template) { $theme = $this->util->getThemeByTemplate($template); $files = $theme->getJavascript(); $directory = $this->pathResolver->getPublicDirectory($template); foreach ($files as &$file) { $file = $directory . DIRECTORY_SEPARATOR . $file; } if ($template->getParent() instanceof Shop\Template) { $files = array_merge($this->getJavascriptFilesRecursive($template->getParent()), $files); } return $files; }