TYPE-0 PERFECT SEIHA
Server Info:
FreeBSD scimitar.blueboard.cz 13.5-STABLE FreeBSD 13.5-STABLE stable/13-4f2925105 GENERIC amd64
Software:
Apache
User:
www
Crot
Crot File
Crot Dir
Crot Command
[LockSelf]
[HOME]
data
www
19068
fszoo_net
addlogo
home
vendor
latte
latte
src
Latte
Show Hidden Files
Edit File: /data/www/19068/fszoo_net/addlogo/home/vendor/latte/latte/src/Latte/Engine.php
<?php /** * This file is part of the Latte (http://latte.nette.org) * Copyright (c) 2008 David Grudl (http://davidgrudl.com) */ namespace Latte; /** * Templating engine Latte. */ class Engine extends Object { const VERSION = '2.3.4'; /** Content types */ const CONTENT_HTML = 'html', CONTENT_XHTML = 'xhtml', CONTENT_XML = 'xml', CONTENT_JS = 'js', CONTENT_CSS = 'css', CONTENT_URL = 'url', CONTENT_ICAL = 'ical', CONTENT_TEXT = 'text'; /** @var callable[] */ public $onCompile = array(); /** @var Parser */ private $parser; /** @var Compiler */ private $compiler; /** @var ILoader */ private $loader; /** @var string */ private $contentType = self::CONTENT_HTML; /** @var string */ private $tempDirectory; /** @var bool */ private $autoRefresh = TRUE; /** @var array run-time filters */ private $filters = array( NULL => array(), // dynamic 'bytes' => 'Latte\Runtime\Filters::bytes', 'capitalize' => 'Latte\Runtime\Filters::capitalize', 'datastream' => 'Latte\Runtime\Filters::dataStream', 'date' => 'Latte\Runtime\Filters::date', 'escapecss' => 'Latte\Runtime\Filters::escapeCss', 'escapehtml' => 'Latte\Runtime\Filters::escapeHtml', 'escapehtmlcomment' => 'Latte\Runtime\Filters::escapeHtmlComment', 'escapeical' => 'Latte\Runtime\Filters::escapeICal', 'escapejs' => 'Latte\Runtime\Filters::escapeJs', 'escapeurl' => 'rawurlencode', 'escapexml' => 'Latte\Runtime\Filters::escapeXML', 'firstupper' => 'Latte\Runtime\Filters::firstUpper', 'implode' => 'implode', 'indent' => 'Latte\Runtime\Filters::indent', 'lower' => 'Latte\Runtime\Filters::lower', 'nl2br' => 'Latte\Runtime\Filters::nl2br', 'number' => 'number_format', 'repeat' => 'str_repeat', 'replace' => 'Latte\Runtime\Filters::replace', 'replacere' => 'Latte\Runtime\Filters::replaceRe', 'safeurl' => 'Latte\Runtime\Filters::safeUrl', 'strip' => 'Latte\Runtime\Filters::strip', 'striptags' => 'strip_tags', 'substr' => 'Latte\Runtime\Filters::substring', 'trim' => 'Latte\Runtime\Filters::trim', 'truncate' => 'Latte\Runtime\Filters::truncate', 'upper' => 'Latte\Runtime\Filters::upper', ); /** * Renders template to output. * @return void */ public function render($name, array $params = array()) { $class = $this->getTemplateClass($name); if (!class_exists($class, FALSE)) { $this->loadCacheFile($name); } $template = new $class($params, $this, $name); $template->render(); } /** * Renders template to string. * @return string */ public function renderToString($name, array $params = array()) { ob_start(); try { $this->render($name, $params); } catch (\Exception $e) { ob_end_clean(); throw $e; } return ob_get_clean(); } /** * Compiles template to PHP code. * @return string */ public function compile($name) { foreach ($this->onCompile ?: array() as $cb) { call_user_func(Helpers::checkCallback($cb), $this); } $this->onCompile = array(); $source = $this->getLoader()->getContent($name); try { $tokens = $this->getParser()->setContentType($this->contentType) ->parse($source); $code = $this->getCompiler()->setContentType($this->contentType) ->compile($tokens, $this->getTemplateClass($name)); } catch (\Exception $e) { if (!$e instanceof CompileException) { $e = new CompileException("Thrown exception '{$e->getMessage()}'", NULL, $e); } $line = isset($tokens) ? $this->getCompiler()->getLine() : $this->getParser()->getLine(); throw $e->setSource($source, $line, $name); } if (!preg_match('#\n|\?#', $name)) { $code = "<?php\n// source: $name\n?>" . $code; } $code = Helpers::optimizePhp($code); return $code; } /** * Compiles template to cache. * @param string * @return void * @throws \LogicException */ public function warmupCache($name) { if (!$this->tempDirectory) { throw new \LogicException('Path to temporary directory is not set.'); } $class = $this->getTemplateClass($name); if (!class_exists($class, FALSE)) { $this->loadCacheFile($name); } } /** * @return void */ private function loadCacheFile($name) { if (!$this->tempDirectory) { eval('?>' . $this->compile($name)); return; } $file = $this->getCacheFile($name); if (!$this->isExpired($file, $name) && (@include $file) !== FALSE) { // @ - file may not exist return; } if (!is_dir($this->tempDirectory)) { @mkdir($this->tempDirectory); // @ - directory may already exist } $handle = fopen("$file.lock", 'c+'); if (!$handle || !flock($handle, LOCK_EX)) { throw new \RuntimeException("Unable to acquire exclusive lock '$file.lock'."); } if (!is_file($file) || $this->isExpired($file, $name)) { $code = $this->compile($name); if (file_put_contents("$file.tmp", $code) !== strlen($code) || !rename("$file.tmp", $file)) { @unlink("$file.tmp"); // @ - file may not exist throw new \RuntimeException("Unable to create '$file'."); } } if ((include $file) === FALSE) { throw new \RuntimeException("Unable to load '$file'."); } flock($handle, LOCK_UN); } /** * @param string * @param string * @return bool */ private function isExpired($file, $name) { return $this->autoRefresh && $this->getLoader()->isExpired($name, (int) @filemtime($file)); // @ - file may not exist } /** * @return string */ public function getCacheFile($name) { $file = $this->getTemplateClass($name); if (preg_match('#\b\w.{10,50}$#', $name, $m)) { $file = trim(preg_replace('#\W+#', '-', $m[0]), '-') . '-' . $file; } return $this->tempDirectory . '/' . $file . '.php'; } /** * @return string */ public function getTemplateClass($name) { return 'Template' . md5("$this->tempDirectory\00$name"); } /** * Registers run-time filter. * @param string|NULL * @param callable * @return self */ public function addFilter($name, $callback) { if ($name == NULL) { // intentionally == array_unshift($this->filters[NULL], $callback); } else { $this->filters[strtolower($name)] = $callback; } return $this; } /** * Returns all run-time filters. * @return callable[] */ public function getFilters() { return $this->filters; } /** * Call a run-time filter. * @param string filter name * @param array arguments * @return mixed */ public function invokeFilter($name, array $args) { $lname = strtolower($name); if (!isset($this->filters[$lname])) { $args2 = $args; array_unshift($args2, $lname); foreach ($this->filters[NULL] as $filter) { $res = call_user_func_array(Helpers::checkCallback($filter), $args2); if ($res !== NULL) { return $res; } elseif (isset($this->filters[$lname])) { return call_user_func_array(Helpers::checkCallback($this->filters[$lname]), $args); } } throw new \LogicException("Filter '$name' is not defined."); } return call_user_func_array(Helpers::checkCallback($this->filters[$lname]), $args); } /** * Adds new macro. * @return self */ public function addMacro($name, IMacro $macro) { $this->getCompiler()->addMacro($name, $macro); return $this; } /** * @return self */ public function setContentType($type) { $this->contentType = $type; return $this; } /** * Sets path to temporary directory. * @return self */ public function setTempDirectory($path) { $this->tempDirectory = $path; return $this; } /** * Sets auto-refresh mode. * @return self */ public function setAutoRefresh($on = TRUE) { $this->autoRefresh = (bool) $on; return $this; } /** * @return Parser */ public function getParser() { if (!$this->parser) { $this->parser = new Parser; } return $this->parser; } /** * @return Compiler */ public function getCompiler() { if (!$this->compiler) { $this->compiler = new Compiler; Macros\CoreMacros::install($this->compiler); Macros\BlockMacros::install($this->compiler); } return $this->compiler; } /** * @return self */ public function setLoader(ILoader $loader) { $this->loader = $loader; return $this; } /** * @return ILoader */ public function getLoader() { if (!$this->loader) { $this->loader = new Loaders\FileLoader; } return $this->loader; } }
Crotin
Name
Size
Permissions
Modified
User/Group
MacroNode.php
1657
0644
2015-09-30 18:29:09
Unknown/Unknown
Tokenizer.php
1869
0644
2015-09-30 18:29:09
Unknown/Unknown
Token.php
1243
0644
2015-09-30 18:29:09
Unknown/Unknown
IMacro.php
591
0644
2015-09-30 18:29:08
Unknown/Unknown
Helpers.php
3075
0644
2015-09-30 18:29:08
Unknown/Unknown
Engine.php
8325
0644
2015-09-30 18:29:08
Unknown/Unknown
Parser.php
11824
0644
2015-09-30 18:29:09
Unknown/Unknown
Template.php
3094
0644
2015-09-30 18:29:09
Unknown/Unknown
Object.php
1277
0644
2015-09-30 18:29:08
Unknown/Unknown
TokenIterator.php
4764
0644
2015-09-30 18:29:08
Unknown/Unknown
PhpWriter.php
10495
0644
2015-09-30 18:29:09
Unknown/Unknown
ILoader.php
519
0644
2015-09-30 18:29:08
Unknown/Unknown
Macros
-
0755
2015-09-30 18:29:30
Unknown/Unknown
Compiler.php
16527
0644
2015-09-30 18:29:09
Unknown/Unknown
HtmlNode.php
677
0644
2015-09-30 18:29:08
Unknown/Unknown
MacroTokens.php
3134
0644
2015-09-30 18:29:09
Unknown/Unknown
Loaders
-
0755
2015-09-30 18:29:30
Unknown/Unknown
exceptions.php
1554
0644
2015-09-30 18:29:08
Unknown/Unknown
Runtime
-
0755
2015-09-30 18:29:29
Unknown/Unknown
NGANU
Rename
Hapus
Chmod
Chown
Touch
Zip
Unzip
Download
Crotin