Filter layout by ignored file names

The Layouts get filtered by the filesystem definition of ignored files.
#814
This commit is contained in:
TimFoerster 2017-05-04 14:53:19 +02:00 committed by GitHub
parent 96d0ce1c20
commit 5eb278e883
1 changed files with 17 additions and 0 deletions

View File

@ -4,6 +4,7 @@ use Lang;
use Cms\Classes\Theme; use Cms\Classes\Theme;
use Cms\Classes\Layout; use Cms\Classes\Layout;
use ApplicationException; use ApplicationException;
use October\Rain\Filesystem\Definitions as FileDefinitions;
/** /**
* The CMS page class. * The CMS page class.
@ -88,8 +89,24 @@ class Page extends CmsCompoundObject
$layouts = Layout::listInTheme($theme, true); $layouts = Layout::listInTheme($theme, true);
$result = []; $result = [];
$result[null] = Lang::get('cms::lang.page.no_layout'); $result[null] = Lang::get('cms::lang.page.no_layout');
$ignoreNames = FileDefinitions::get('ignoreFiles');
foreach ($layouts as $layout) { foreach ($layouts as $layout) {
$baseName = $layout->getBaseFileName(); $baseName = $layout->getBaseFileName();
//Filter ignore files
$ignoreFile = false;
foreach ($ignoreNames as $ignoreName) {
if(strpos($baseName, $ignoreName) === 0) {
$ignoreFile = true;
break;
}
}
if($ignoreFile) {
continue;
}
$result[$baseName] = strlen($layout->name) ? $layout->name : $baseName; $result[$baseName] = strlen($layout->name) ? $layout->name : $baseName;
} }