Pico::registerTwig PHP Method

registerTwig() protected method

This method also registers Pico's core Twig filters link and content as well as Pico's {@link PicoTwigExtension} Twig extension.
See also: Pico::getTwig()
protected registerTwig ( ) : void
return void
    protected function registerTwig()
    {
        $twigLoader = new Twig_Loader_Filesystem($this->getThemesDir() . $this->getConfig('theme'));
        $this->twig = new Twig_Environment($twigLoader, $this->getConfig('twig_config'));
        $this->twig->addExtension(new Twig_Extension_Debug());
        $this->twig->addExtension(new PicoTwigExtension($this));
        // register link filter
        $this->twig->addFilter(new Twig_SimpleFilter('link', array($this, 'getPageUrl')));
        // register content filter
        // we pass the $pages array by reference to prevent multiple parser runs for the same page
        // this is the reason why we can't register this filter as part of PicoTwigExtension
        $pico = $this;
        $pages =& $this->pages;
        $this->twig->addFilter(new Twig_SimpleFilter('content', function ($page) use($pico, &$pages) {
            if (isset($pages[$page])) {
                $pageData =& $pages[$page];
                if (!isset($pageData['content'])) {
                    $pageData['content'] = $pico->prepareFileContent($pageData['raw_content'], $pageData['meta']);
                    $pageData['content'] = $pico->parseFileContent($pageData['content']);
                }
                return $pageData['content'];
            }
            return null;
        }));
    }