protected static function fallback(Page $page)
    {
        // remove redundant '.twig' extension
        $layout = str_replace('.twig', '', $page->getLayout());

        switch ($page->getNodeType()) {
            case NodeType::HOMEPAGE:
                $layouts = [
                    'index.html.twig',
                    '_default/list.html.twig',
                    '_default/page.html.twig',
                ];
                break;
            case NodeType::SECTION:
                $layouts = [
                    // 'section/$section.html.twig',
                    '_default/section.html.twig',
                    '_default/list.html.twig',
                ];
                if ($page->getPathname()) {
                    $section = explode('/', $page->getPathname())[0];
                    $layouts = array_merge(
                        [sprintf('section/%s.html.twig', $section)],
                        $layouts
                    );
                }
                break;
            case NodeType::TAXONOMY:
                $layouts = [
                    // 'taxonomy/$singular.html.twig',
                    '_default/taxonomy.html.twig',
                    '_default/list.html.twig',
                ];
                if ($page->getVariable('singular')) {
                    $layouts = array_merge(
                        [sprintf('taxonomy/%s.html.twig', $page->getVariable('singular'))],
                        $layouts
                    );
                }
                break;
            case NodeType::TERMS:
                $layouts = [
                    // 'taxonomy/$singular.terms.html.twig',
                    '_default/terms.html.twig',
                ];
                if ($page->getVariable('singular')) {
                    $layouts = array_merge(
                        [sprintf('taxonomy/%s.terms.html.twig', $page->getVariable('singular'))],
                        $layouts
                    );
                }
                break;
            default:
                $layouts = [
                    // '$section/$layout.twig',
                    // '$layout.twig',
                    // '$section/page.html.twig',
                    // 'page.html.twig',
                    '_default/page.html.twig',
                ];
                $layouts = array_merge(
                    ['page.html.twig'],
                    $layouts
                );

                if ($page->getSection()) {
                    $layouts = array_merge(
                        [sprintf('%s/page.html.twig', $page->getSection())],
                        $layouts
                    );
                }
                if ($page->getLayout()) {
                    $layouts = array_merge(
                        [sprintf('%s.twig', $layout)],
                        $layouts
                    );
                    if ($page->getSection()) {
                        $layouts = array_merge(
                            [sprintf('%s/%s.twig', $page->getSection(), $layout)],
                            $layouts
                        );
                    }
                }
        }

        return $layouts;
    }
protected static function fallback(Page $page)
    {
        // remove redundant '.twig' extension
        $layout = str_replace('.twig', '', $page->getLayout());

        switch ($page->getNodeType()) {
            case NodeType::HOMEPAGE:
                $layouts = [
                    'index.html.twig',
                    '_default/list.html.twig',
                    '_default/page.html.twig',
                ];
                break;
            case NodeType::SECTION:
                $layouts = [
                    // 'section/$section.html.twig',
                    '_default/section.html.twig',
                    '_default/list.html.twig',
                ];
                if ($page->getPathname()) {
                    $section = explode('/', $page->getPathname())[0];
                    $layouts = array_merge(
                        [sprintf('section/%s.html.twig', $section)],
                        $layouts
                    );
                }
                break;
            case NodeType::TAXONOMY:
                $layouts = [
                    // 'taxonomy/$singular.html.twig',
                    '_default/taxonomy.html.twig',
                    '_default/list.html.twig',
                ];
                if ($page->getVariable('singular')) {
                    $layouts = array_merge(
                        [sprintf('taxonomy/%s.html.twig', $page->getVariable('singular'))],
                        $layouts
                    );
                }
                break;
            case NodeType::TERMS:
                $layouts = [
                    // 'taxonomy/$singular.terms.html.twig',
                    '_default/terms.html.twig',
                ];
                if ($page->getVariable('singular')) {
                    $layouts = array_merge(
                        [sprintf('taxonomy/%s.terms.html.twig', $page->getVariable('singular'))],
                        $layouts
                    );
                }
                break;
            default:
                $layouts = [
                    // '$section/$layout.twig',
                    // '$layout.twig',
                    // '$section/page.html.twig',
                    // 'page.html.twig',
                    '_default/page.html.twig',
                ];
                $layouts = array_merge(
                    ['page.html.twig'],
                    $layouts
                );

                if ($page->getSection()) {
                    $layouts = array_merge(
                        [sprintf('%s/page.html.twig', $page->getSection())],
                        $layouts
                    );
                }
                if ($page->getLayout()) {
                    $layouts = array_merge(
                        [sprintf('%s.twig', $layout)],
                        $layouts
                    );
                    if ($page->getSection()) {
                        $layouts = array_merge(
                            [sprintf('%s/%s.twig', $page->getSection(), $layout)],
                            $layouts
                        );
                    }
                }
        }

        return $layouts;
    }
protected static function fallback ( Page $ page ) { // remove redundant '.twig' extension $ layout = str_replace ( '.twig' , '' , $ page -> getLayout ( ) ) ; switch ( $ page -> getNodeType ( ) ) { case NodeType :: HOMEPAGE : $ layouts = [ 'index.html.twig' , '_default/list.html.twig' , '_default/page.html.twig' , ] ; break ; case NodeType :: SECTION : $ layouts = [ // 'section/$section.html.twig', '_default/section.html.twig' , '_default/list.html.twig' , ] ; if ( $ page -> getPathname ( ) ) { $ section = explode ( '/' , $ page -> getPathname ( ) ) [ 0 ] ; $ layouts = array_merge ( [ sprintf ( 'section/%s.html.twig' , $ section ) ] , $ layouts ) ; } break ; case NodeType :: TAXONOMY : $ layouts = [ // 'taxonomy/$singular.html.twig', '_default/taxonomy.html.twig' , '_default/list.html.twig' , ] ; if ( $ page -> getVariable ( 'singular' ) ) { $ layouts = array_merge ( [ sprintf ( 'taxonomy/%s.html.twig' , $ page -> getVariable ( 'singular' ) ) ] , $ layouts ) ; } break ; case NodeType :: TERMS : $ layouts = [ // 'taxonomy/$singular.terms.html.twig', '_default/terms.html.twig' , ] ; if ( $ page -> getVariable ( 'singular' ) ) { $ layouts = array_merge ( [ sprintf ( 'taxonomy/%s.terms.html.twig' , $ page -> getVariable ( 'singular' ) ) ] , $ layouts ) ; } break ; default : $ layouts = [ // '$section/$layout.twig', // '$layout.twig', // '$section/page.html.twig', // 'page.html.twig', '_default/page.html.twig' , ] ; $ layouts = array_merge ( [ 'page.html.twig' ] , $ layouts ) ; if ( $ page -> getSection ( ) ) { $ layouts = array_merge ( [ sprintf ( '%s/page.html.twig' , $ page -> getSection ( ) ) ] , $ layouts ) ; } if ( $ page -> getLayout ( ) ) { $ layouts = array_merge ( [ sprintf ( '%s.twig' , $ layout ) ] , $ layouts ) ; if ( $ page -> getSection ( ) ) { $ layouts = array_merge ( [ sprintf ( '%s/%s.twig' , $ page -> getSection ( ) , $ layout ) ] , $ layouts ) ; } } } return $ layouts ; }
Layout fall-back.

@param $page

@return string[]

@see finder()
Layout fall - back .