first commit
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
namespace Template;
|
||||
final class Twig {
|
||||
private $data = array();
|
||||
|
||||
public function set($key, $value) {
|
||||
$this->data[$key] = $value;
|
||||
}
|
||||
|
||||
public function render($filename, $code = '') {
|
||||
if (!$code) {
|
||||
$file = DIR_TEMPLATE . $filename . '.twig';
|
||||
|
||||
if (defined('DIR_CATALOG') && is_file(DIR_MODIFICATION . 'admin/view/template/' . $filename . '.twig')) {
|
||||
$code = file_get_contents(DIR_MODIFICATION . 'admin/view/template/' . $filename . '.twig');
|
||||
} elseif (is_file(DIR_MODIFICATION . 'store/view/theme/' . $filename . '.twig')) {
|
||||
$code = file_get_contents(DIR_MODIFICATION . 'store/view/theme/' . $filename . '.twig');
|
||||
} elseif (is_file($file)) {
|
||||
$code = file_get_contents($file);
|
||||
} else {
|
||||
throw new \Exception('Error: Could not load template ' . $file . '!');
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
// initialize Twig environment
|
||||
$config = array(
|
||||
'autoescape' => false,
|
||||
'debug' => false,
|
||||
'auto_reload' => true,
|
||||
'cache' => DIR_CACHE . 'template/'
|
||||
);
|
||||
|
||||
try {
|
||||
$loader1 = new \Twig\Loader\ArrayLoader(array($filename . '.twig' => $code));
|
||||
$loader2 = new \Twig\Loader\FilesystemLoader(array(DIR_TEMPLATE));
|
||||
$loader = new \Twig\Loader\ChainLoader(array($loader1, $loader2));
|
||||
|
||||
$twig = new \Twig\Environment($loader, $config);
|
||||
|
||||
return $twig->render($filename . '.twig', $this->data);
|
||||
} catch (Exception $e) {
|
||||
trigger_error('Error: Could not load template ' . $filename . '!');
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user