yii\twig\ViewRenderer::addFallbackPaths PHP Method

addFallbackPaths() protected method

Adds fallback paths to twig loader
Since: 2.0.5
protected addFallbackPaths ( Twig_Loader_Filesystem $loader, Theme | null $theme )
$loader Twig_Loader_Filesystem
$theme yii\base\Theme | null
    protected function addFallbackPaths($loader, $theme)
    {
        foreach ($this->twigFallbackPaths as $namespace => $path) {
            $path = Yii::getAlias($path);
            if (!is_dir($path)) {
                continue;
            }
            if (is_string($namespace)) {
                $loader->addPath($path, $namespace);
            } else {
                $loader->addPath($path);
            }
        }
        if ($theme instanceof \yii\base\Theme && is_array($theme->pathMap)) {
            $pathMap = $theme->pathMap;
            if (isset($pathMap['@app/views'])) {
                foreach ((array) $pathMap['@app/views'] as $path) {
                    $path = Yii::getAlias($path);
                    if (is_dir($path)) {
                        $loader->addPath($path, $this->twigViewsNamespace);
                    }
                }
            }
            if (isset($pathMap['@app/modules'])) {
                foreach ((array) $pathMap['@app/modules'] as $path) {
                    $path = Yii::getAlias($path);
                    if (is_dir($path)) {
                        $loader->addPath($path, $this->twigModulesNamespace);
                    }
                }
            }
            if (isset($pathMap['@app/widgets'])) {
                foreach ((array) $pathMap['@app/widgets'] as $path) {
                    $path = Yii::getAlias($path);
                    if (is_dir($path)) {
                        $loader->addPath($path, $this->twigWidgetsNamespace);
                    }
                }
            }
        }
        $defaultViewsPath = Yii::getAlias('@app/views');
        if (is_dir($defaultViewsPath)) {
            $loader->addPath($defaultViewsPath, $this->twigViewsNamespace);
        }
        $defaultModulesPath = Yii::getAlias('@app/modules');
        if (is_dir($defaultModulesPath)) {
            $loader->addPath($defaultModulesPath, $this->twigModulesNamespace);
        }
        $defaultWidgetsPath = Yii::getAlias('@app/widgets');
        if (is_dir($defaultWidgetsPath)) {
            $loader->addPath($defaultWidgetsPath, $this->twigWidgetsNamespace);
        }
    }