public function formatTemplateFiles(Presenter $presenter) { $name = $presenter->getName(); $view = $presenter->view; $_presenter = substr($name, strrpos(':' . $name, ':')); $dir = dirname($presenter->getReflection()->getFileName()); $dir = is_dir("{$dir}/templates") ? $dir : dirname($dir); return array("{$dir}/templates/{$_presenter}/{$view}.latte", "{$dir}/templates/{$_presenter}.{$view}.latte", "{$dir}/templates/{$_presenter}/{$view}.phtml", "{$dir}/templates/{$_presenter}.{$view}.phtml"); }
public function formatLayoutFile(Presenter $presenter) { $layoutFiles = []; $layout = $presenter->getLayout() ? $presenter->getLayout() : 'layout'; foreach ([$this->getThemeManager()->getCurrentTheme(), $this->getThemeManager()->getFallbackTheme()] as $theme) { $name = $presenter->getName(); $presenterName = substr($name, strrpos(':' . $name, ':')); $dir = $this->unifyDirectorySeparators($this->getThemeManager()->getThemesDir() . DIRECTORY_SEPARATOR . $theme . DIRECTORY_SEPARATOR . $presenter->getReflection()->getNamespaceName()); $dir = is_dir("{$dir}/templates") ? $dir : dirname($dir); $layoutFiles[] = $this->unifyDirectorySeparators("{$dir}/templates/{$presenterName}/@{$layout}.latte"); $layoutFiles[] = $this->unifyDirectorySeparators("{$dir}/templates/{$presenterName}.@{$layout}.latte"); do { $layoutFiles[] = $this->unifyDirectorySeparators("{$dir}/templates/@{$layout}.latte"); $dir = dirname($dir); } while ($dir && ($name = substr($name, 0, strrpos($name, ':')))); } return $layoutFiles; }