Пример #1
0
    /**
     * @param string $file Absolut path to template file
     * @param array $params Variables for template
     */
    public function __construct($file, $params)
    {
        $prefix = "main-";
        $file = basename($file, '.php');
        $file = self::$templatesDir . "/%s{$file}.php";
        if (is_file(sprintf($file, $prefix))) {
            $file = sprintf($file, $prefix);
        } else {
            $prefix = "";
            $file = sprintf($file, $prefix);
        }
        parent::__construct($file);
        $params['site'] = WpLatteSiteEntity::getInstance();
        if (file_exists(self::$templatesDir . '/main-layout.php')) {
            $params['layout'] = 'main-layout.php';
        } elseif (file_exists(self::$templatesDir . '/layout.php')) {
            $params['layout'] = 'layout.php';
        } else {
            $params['layout'] = '@layout.php';
        }
        $params['headerNotCalled'] = did_action('get_header') == 0;
        $params['footerNotCalled'] = did_action('get_footer') == 0;
        $params['sidebarNotCalled'] = did_action('get_sidebar') == 0;
        $this->setParams($params);
        $this->registerHelperLoader('NTemplateHelpers::loader');
        $this->registerHelper("printf", "sprintf");
        $this->setCacheStorage(new NPhpFileStorage(realpath(self::$cacheDir)));
        $this->onPrepareFilters[] = create_function('$template', '
			$engine = new NLatteFilter();
			WpLatteMacros::install($engine->parser);
			$template->registerFilter($engine);
			');
    }